; LLVM IR from facebook/redex :: service/shrinker (Shrinker)

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

%"struct.constant_propagation::Transform::Stats" = type { i64, i64, i64, i64, i64, i64, i64, i64, i64 }
%"struct.LocalDce::Stats" = type { i64, i64, i64, i64, i64, i64, %"struct.init_classes::Stats" }
%"struct.init_classes::Stats" = type { i64, i64, i64 }
%"struct.copy_propagation_impl::Stats" = type { i64, i64, i64, i64, i64 }
%"class.std::unique_ptr.631" = type { %"struct.std::__uniq_ptr_data.632" }
%"struct.std::__uniq_ptr_data.632" = type { %"class.std::__uniq_ptr_impl.633" }
%"class.std::__uniq_ptr_impl.633" = type { %"class.std::tuple.634" }
%"class.std::tuple.634" = type { %"struct.std::_Tuple_impl.635" }
%"struct.std::_Tuple_impl.635" = type { %"struct.std::_Head_base.638" }
%"struct.std::_Head_base.638" = type { ptr }
%"struct.cse_impl::Stats" = type { i64, i64, i64, i64, i64, i64, %class.UnorderedMap.162, i64, i64 }
%class.UnorderedMap.162 = type { %"class.std::unordered_map.164" }
%"class.std::unordered_map.164" = type { %"class.std::_Hashtable.165" }
%"class.std::_Hashtable.165" = 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 }
%"struct.dedup_blocks_impl::Stats" = type { i32, i32, i32, i32, i32, %class.UnorderedMap.184 }
%class.UnorderedMap.184 = type { %"class.std::unordered_map.186" }
%"class.std::unordered_map.186" = type { %"class.std::_Hashtable.187" }
%"class.std::_Hashtable.187" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.AccumulatingTimer::AccumulatingTimerScope" = type { ptr, %"class.std::chrono::time_point" }
%"class.std::chrono::time_point" = type { %"class.std::chrono::duration" }
%"class.std::chrono::duration" = type { i64 }
%"struct.constant_propagation::Transform::Config" = type { i8, i8, i8, i8, i8, i8, ptr, ptr, ptr }
%class.ConstantEnvironment = type { %"class.sparta::ReducedProductAbstractDomain" }
%"class.sparta::ReducedProductAbstractDomain" = type { %"class.sparta::DirectProductAbstractDomain" }
%"class.sparta::DirectProductAbstractDomain" = type { %"class.std::tuple.344" }
%"class.std::tuple.344" = type { %"struct.std::_Tuple_impl.345" }
%"struct.std::_Tuple_impl.345" = type { %"struct.std::_Tuple_impl.346", %"struct.std::_Head_base.370" }
%"struct.std::_Tuple_impl.346" = type { %"struct.std::_Tuple_impl.347", %"struct.std::_Head_base.351" }
%"struct.std::_Tuple_impl.347" = type { %"struct.std::_Head_base.348" }
%"struct.std::_Head_base.348" = type { %"class.sparta::AbstractEnvironment" }
%"class.sparta::AbstractEnvironment" = type { %"class.sparta::AbstractDomainScaffolding" }
%"class.sparta::AbstractDomainScaffolding" = type { i32, %"class.sparta::environment_impl::MapValue" }
%"class.sparta::environment_impl::MapValue" = type { %"class.sparta::PatriciaTreeMap" }
%"class.sparta::PatriciaTreeMap" = type { %"class.sparta::pt_core::PatriciaTreeCore" }
%"class.sparta::pt_core::PatriciaTreeCore" = type { %"class.boost::intrusive_ptr" }
%"class.boost::intrusive_ptr" = type { ptr }
%"struct.std::_Head_base.351" = type { %"class.sparta::AbstractEnvironment.352" }
%"class.sparta::AbstractEnvironment.352" = type { %"class.sparta::AbstractDomainScaffolding.353" }
%"class.sparta::AbstractDomainScaffolding.353" = type { i32, %"class.sparta::environment_impl::MapValue.358" }
%"class.sparta::environment_impl::MapValue.358" = type { %"class.sparta::PatriciaTreeMap.361" }
%"class.sparta::PatriciaTreeMap.361" = type { %"class.sparta::pt_core::PatriciaTreeCore.366" }
%"class.sparta::pt_core::PatriciaTreeCore.366" = type { %"class.boost::intrusive_ptr.367" }
%"class.boost::intrusive_ptr.367" = type { ptr }
%"struct.std::_Head_base.370" = type { %"class.sparta::AbstractEnvironment.371" }
%"class.sparta::AbstractEnvironment.371" = type { %"class.sparta::AbstractDomainScaffolding.372" }
%"class.sparta::AbstractDomainScaffolding.372" = type { i32, %"class.sparta::environment_impl::MapValue.377" }
%"class.sparta::environment_impl::MapValue.377" = type { %"class.sparta::PatriciaTreeMap.380" }
%"class.sparta::PatriciaTreeMap.380" = type { %"class.sparta::pt_core::PatriciaTreeCore.385" }
%"class.sparta::pt_core::PatriciaTreeCore.385" = type { %"class.boost::intrusive_ptr.386" }
%"class.boost::intrusive_ptr.386" = type { ptr }
%"class.cse_impl::CommonSubexpressionElimination" = type { %class.UnorderedMap.639, %"class.std::vector.661", %"class.std::vector.549", %"class.std::vector.666", ptr, %"struct.cse_impl::Stats", i8, ptr, ptr, %"class.std::vector.493", ptr }
%class.UnorderedMap.639 = type { %"class.std::unordered_map.641" }
%"class.std::unordered_map.641" = type { %"class.std::_Hashtable.642" }
%"class.std::_Hashtable.642" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.661" = type { %"struct.std::_Vector_base.662" }
%"struct.std::_Vector_base.662" = type { %"struct.std::_Vector_base<cse_impl::CommonSubexpressionElimination::Forward, std::allocator<cse_impl::CommonSubexpressionElimination::Forward>>::_Vector_impl" }
%"struct.std::_Vector_base<cse_impl::CommonSubexpressionElimination::Forward, std::allocator<cse_impl::CommonSubexpressionElimination::Forward>>::_Vector_impl" = type { %"struct.std::_Vector_base<cse_impl::CommonSubexpressionElimination::Forward, std::allocator<cse_impl::CommonSubexpressionElimination::Forward>>::_Vector_impl_data" }
%"struct.std::_Vector_base<cse_impl::CommonSubexpressionElimination::Forward, std::allocator<cse_impl::CommonSubexpressionElimination::Forward>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.549" = type { %"struct.std::_Vector_base.550" }
%"struct.std::_Vector_base.550" = type { %"struct.std::_Vector_base<cfg::Edge *, std::allocator<cfg::Edge *>>::_Vector_impl" }
%"struct.std::_Vector_base<cfg::Edge *, std::allocator<cfg::Edge *>>::_Vector_impl" = type { %"struct.std::_Vector_base<cfg::Edge *, std::allocator<cfg::Edge *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<cfg::Edge *, std::allocator<cfg::Edge *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.666" = type { %"struct.std::_Vector_base.667" }
%"struct.std::_Vector_base.667" = type { %"struct.std::_Vector_base<sparta::PatriciaTreeSet<const IRInstruction *>, std::allocator<sparta::PatriciaTreeSet<const IRInstruction *>>>::_Vector_impl" }
%"struct.std::_Vector_base<sparta::PatriciaTreeSet<const IRInstruction *>, std::allocator<sparta::PatriciaTreeSet<const IRInstruction *>>>::_Vector_impl" = type { %"struct.std::_Vector_base<sparta::PatriciaTreeSet<const IRInstruction *>, std::allocator<sparta::PatriciaTreeSet<const IRInstruction *>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sparta::PatriciaTreeSet<const IRInstruction *>, std::allocator<sparta::PatriciaTreeSet<const IRInstruction *>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.493" = type { %"struct.std::_Vector_base.494" }
%"struct.std::_Vector_base.494" = type { %"struct.std::_Vector_base<IRInstruction *, std::allocator<IRInstruction *>>::_Vector_impl" }
%"struct.std::_Vector_base<IRInstruction *, std::allocator<IRInstruction *>>::_Vector_impl" = type { %"struct.std::_Vector_base<IRInstruction *, std::allocator<IRInstruction *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<IRInstruction *, std::allocator<IRInstruction *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::function.627" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon.671 = type { ptr }
%"class.std::tuple.672" = type { %"struct.std::_Tuple_impl.673" }
%"struct.std::_Tuple_impl.673" = type { %"struct.std::_Tuple_impl.674", %"struct.std::_Head_base.680" }
%"struct.std::_Tuple_impl.674" = type { %"struct.std::_Tuple_impl.675", %"struct.std::_Head_base.679" }
%"struct.std::_Tuple_impl.675" = type { %"struct.std::_Tuple_impl.676", %"struct.std::_Head_base.678" }
%"struct.std::_Tuple_impl.676" = type { %"struct.std::_Head_base.677" }
%"struct.std::_Head_base.677" = type { i64 }
%"struct.std::_Head_base.678" = type { i64 }
%"struct.std::_Head_base.679" = type { i64 }
%"struct.std::_Head_base.680" = type { i64 }
%"struct.regalloc::graph_coloring::Allocator::Config" = type { i8, i8 }
%"struct.regalloc::graph_coloring::Allocator::Stats" = type { i64, i64, i64, i64, i64, i64, i64 }
%"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.fastregalloc::LinearScanAllocator" = type <{ %"class.cfg::ScopedCFG", i8, [7 x i8], %"class.std::vector.681", %class.UnorderedMap.686, %class.UnorderedSet.702, %class.UnorderedMap.718, %"class.std::vector.738", %"class.std::optional", %"class.std::priority_queue", i32, [4 x i8] }>
%"class.cfg::ScopedCFG" = type <{ ptr, i8, [7 x i8] }>
%"class.std::vector.681" = type { %"struct.std::_Vector_base.682" }
%"struct.std::_Vector_base.682" = type { %"struct.std::_Vector_base<fastregalloc::VRegLiveInterval, std::allocator<fastregalloc::VRegLiveInterval>>::_Vector_impl" }
%"struct.std::_Vector_base<fastregalloc::VRegLiveInterval, std::allocator<fastregalloc::VRegLiveInterval>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastregalloc::VRegLiveInterval, std::allocator<fastregalloc::VRegLiveInterval>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastregalloc::VRegLiveInterval, std::allocator<fastregalloc::VRegLiveInterval>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.UnorderedMap.686 = type { %"class.std::unordered_map.688" }
%"class.std::unordered_map.688" = type { %"class.std::_Hashtable.689" }
%"class.std::_Hashtable.689" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%class.UnorderedSet.702 = type { %"class.std::unordered_set.704" }
%"class.std::unordered_set.704" = type { %"class.std::_Hashtable.705" }
%"class.std::_Hashtable.705" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%class.UnorderedMap.718 = type { %"class.std::unordered_map.720" }
%"class.std::unordered_map.720" = type { %"class.std::_Hashtable.721" }
%"class.std::_Hashtable.721" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.738" = type { %"struct.std::_Vector_base.739" }
%"struct.std::_Vector_base.739" = type { %"struct.std::_Vector_base<fastregalloc::LiveIntervalPoint, std::allocator<fastregalloc::LiveIntervalPoint>>::_Vector_impl" }
%"struct.std::_Vector_base<fastregalloc::LiveIntervalPoint, std::allocator<fastregalloc::LiveIntervalPoint>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastregalloc::LiveIntervalPoint, std::allocator<fastregalloc::LiveIntervalPoint>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastregalloc::LiveIntervalPoint, std::allocator<fastregalloc::LiveIntervalPoint>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::optional" = type { %"struct.std::_Optional_base" }
%"struct.std::_Optional_base" = type { %"struct.std::_Optional_payload" }
%"struct.std::_Optional_payload" = type { %"struct.std::_Optional_payload_base.base", [3 x i8] }
%"struct.std::_Optional_payload_base.base" = type <{ %"union.std::_Optional_payload_base<unsigned int>::_Storage", i8 }>
%"union.std::_Optional_payload_base<unsigned int>::_Storage" = type { i32 }
%"class.std::priority_queue" = type <{ %"class.std::vector.743", [8 x i8] }>
%"class.std::vector.743" = type { %"struct.std::_Vector_base.744" }
%"struct.std::_Vector_base.744" = type { %"struct.std::_Vector_base<fastregalloc::ActiveInterval, std::allocator<fastregalloc::ActiveInterval>>::_Vector_impl" }
%"struct.std::_Vector_base<fastregalloc::ActiveInterval, std::allocator<fastregalloc::ActiveInterval>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastregalloc::ActiveInterval, std::allocator<fastregalloc::ActiveInterval>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastregalloc::ActiveInterval, std::allocator<fastregalloc::ActiveInterval>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.dedup_blocks_impl::Config" = type <{ %class.UnorderedSet.146, i32, i8, i8, i8, i8, i32, [4 x i8] }>
%class.UnorderedSet.146 = type { %"class.std::unordered_set.148" }
%"class.std::unordered_set.148" = type { %"class.std::_Hashtable.149" }
%"class.std::_Hashtable.149" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.dedup_blocks_impl::DedupBlocks" = type { ptr, ptr, i8, ptr, ptr, %"struct.dedup_blocks_impl::Stats" }
%class.Lazy = type { %"class.std::function.748", %"class.std::unique_ptr.750" }
%"class.std::function.748" = type { %"class.std::_Function_base", ptr }
%"class.std::unique_ptr.750" = type { %"struct.std::__uniq_ptr_data.751" }
%"struct.std::__uniq_ptr_data.751" = type { %"class.std::__uniq_ptr_impl.752" }
%"class.std::__uniq_ptr_impl.752" = type { %"class.std::tuple.753" }
%"class.std::tuple.753" = type { %"struct.std::_Tuple_impl.754" }
%"struct.std::_Tuple_impl.754" = type { %"struct.std::_Head_base.757" }
%"struct.std::_Head_base.757" = type { ptr }
%class.anon.758 = type { ptr, ptr, ptr, ptr, ptr }
%"class.std::lock_guard" = type { ptr }
%"class.shrinker::Shrinker" = type { %"class.random_forest::Forest", %class.XStoreRefs, %"struct.shrinker::ShrinkerConfig", i32, i8, %"class.std::unique_ptr", ptr, %class.UnorderedSet, %class.UnorderedSet.42, %class.UnorderedSet.64, %"struct.constant_propagation::ImmutableAttributeAnalyzerState", %"struct.constant_propagation::StringAnalyzerState", %"struct.constant_propagation::PackageNameState", %"class.constant_propagation::State", %"class.std::mutex", %class.AccumulatingTimer, %"struct.constant_propagation::Transform::Stats", %class.AccumulatingTimer, %"struct.cse_impl::Stats", %class.AccumulatingTimer, %"struct.copy_propagation_impl::Stats", %class.AccumulatingTimer, %"struct.LocalDce::Stats", %class.AccumulatingTimer, i64, %class.AccumulatingTimer, %"struct.dedup_blocks_impl::Stats", %class.AccumulatingTimer, i64, i64 }
%"class.random_forest::Forest" = type { %"class.std::vector" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::unique_ptr<random_forest::Forest<const shrinker::Shrinker::MethodContext &>::DecisionTreeNode>, std::allocator<std::unique_ptr<random_forest::Forest<const shrinker::Shrinker::MethodContext &>::DecisionTreeNode>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<random_forest::Forest<const shrinker::Shrinker::MethodContext &>::DecisionTreeNode>, std::allocator<std::unique_ptr<random_forest::Forest<const shrinker::Shrinker::MethodContext &>::DecisionTreeNode>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<random_forest::Forest<const shrinker::Shrinker::MethodContext &>::DecisionTreeNode>, std::allocator<std::unique_ptr<random_forest::Forest<const shrinker::Shrinker::MethodContext &>::DecisionTreeNode>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<random_forest::Forest<const shrinker::Shrinker::MethodContext &>::DecisionTreeNode>, std::allocator<std::unique_ptr<random_forest::Forest<const shrinker::Shrinker::MethodContext &>::DecisionTreeNode>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.XStoreRefs = type { %class.InsertOnlyConcurrentMap, %"class.std::vector.9", i64, %class.UnorderedMap, %class.UnorderedMap, %"class.std::__cxx11::basic_string" }
%class.InsertOnlyConcurrentMap = type { %class.ConcurrentContainer }
%class.ConcurrentContainer = type { ptr, [83 x %"class.cc_impl::ConcurrentHashtable"] }
%"class.cc_impl::ConcurrentHashtable" = type { %"struct.std::atomic", %"struct.std::atomic.3", %"struct.std::atomic.5", %"struct.std::atomic.7" }
%"struct.std::atomic" = type { %"struct.std::__atomic_base" }
%"struct.std::__atomic_base" = type { ptr }
%"struct.std::atomic.3" = type { %"struct.std::__atomic_base.4" }
%"struct.std::__atomic_base.4" = type { i64 }
%"struct.std::atomic.5" = type { %"struct.std::__atomic_base.6" }
%"struct.std::__atomic_base.6" = type { i8 }
%"struct.std::atomic.7" = type { %"struct.std::__atomic_base.8" }
%"struct.std::__atomic_base.8" = type { ptr }
%"class.std::vector.9" = type { %"struct.std::_Vector_base.10" }
%"struct.std::_Vector_base.10" = type { %"struct.std::_Vector_base<const DexStore *, std::allocator<const DexStore *>>::_Vector_impl" }
%"struct.std::_Vector_base<const DexStore *, std::allocator<const DexStore *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const DexStore *, std::allocator<const DexStore *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const DexStore *, std::allocator<const DexStore *>>::_Vector_impl_data" = type { ptr, ptr, 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 }
%"struct.shrinker::ShrinkerConfig" = type <{ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [6 x i8], %"class.std::__cxx11::basic_string", 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.21" }
%"struct.std::_Head_base.21" = type { ptr }
%class.UnorderedSet = type { %"class.std::unordered_set" }
%"class.std::unordered_set" = type { %"class.std::_Hashtable.23" }
%"class.std::_Hashtable.23" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%class.UnorderedSet.42 = type { %"class.std::unordered_set.44" }
%"class.std::unordered_set.44" = type { %"class.std::_Hashtable.45" }
%"class.std::_Hashtable.45" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%class.UnorderedSet.64 = type { %"class.std::unordered_set.66" }
%"class.std::unordered_set.66" = type { %"class.std::_Hashtable.67" }
%"class.std::_Hashtable.67" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.constant_propagation::ImmutableAttributeAnalyzerState" = type { %class.ConcurrentMap, %class.ConcurrentSet, %class.ConcurrentSet.100, %class.UnorderedMap.108, %class.ConcurrentSet.130, %class.InsertOnlyConcurrentMap.138 }
%class.ConcurrentMap = type { %class.ConcurrentContainer.86, [83 x %"class.std::mutex"] }
%class.ConcurrentContainer.86 = type { ptr, [83 x %"class.cc_impl::ConcurrentHashtable.87"] }
%"class.cc_impl::ConcurrentHashtable.87" = type { %"struct.std::atomic.88", %"struct.std::atomic.3", %"struct.std::atomic.5", %"struct.std::atomic.90" }
%"struct.std::atomic.88" = type { %"struct.std::__atomic_base.89" }
%"struct.std::__atomic_base.89" = type { ptr }
%"struct.std::atomic.90" = type { %"struct.std::__atomic_base.91" }
%"struct.std::__atomic_base.91" = type { ptr }
%class.ConcurrentSet = type { %class.ConcurrentContainer.93 }
%class.ConcurrentContainer.93 = type { ptr, [83 x %"class.cc_impl::ConcurrentHashtable.94"] }
%"class.cc_impl::ConcurrentHashtable.94" = type { %"struct.std::atomic.95", %"struct.std::atomic.3", %"struct.std::atomic.5", %"struct.std::atomic.97" }
%"struct.std::atomic.95" = type { %"struct.std::__atomic_base.96" }
%"struct.std::__atomic_base.96" = type { ptr }
%"struct.std::atomic.97" = type { %"struct.std::__atomic_base.98" }
%"struct.std::__atomic_base.98" = type { ptr }
%class.ConcurrentSet.100 = type { %class.ConcurrentContainer.101 }
%class.ConcurrentContainer.101 = type { ptr, [83 x %"class.cc_impl::ConcurrentHashtable.102"] }
%"class.cc_impl::ConcurrentHashtable.102" = type { %"struct.std::atomic.103", %"struct.std::atomic.3", %"struct.std::atomic.5", %"struct.std::atomic.105" }
%"struct.std::atomic.103" = type { %"struct.std::__atomic_base.104" }
%"struct.std::__atomic_base.104" = type { ptr }
%"struct.std::atomic.105" = type { %"struct.std::__atomic_base.106" }
%"struct.std::__atomic_base.106" = type { ptr }
%class.UnorderedMap.108 = type { %"class.std::unordered_map.110" }
%"class.std::unordered_map.110" = type { %"class.std::_Hashtable.111" }
%"class.std::_Hashtable.111" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%class.ConcurrentSet.130 = type { %class.ConcurrentContainer.131 }
%class.ConcurrentContainer.131 = type { ptr, [83 x %"class.cc_impl::ConcurrentHashtable.132"] }
%"class.cc_impl::ConcurrentHashtable.132" = type { %"struct.std::atomic.133", %"struct.std::atomic.3", %"struct.std::atomic.5", %"struct.std::atomic.135" }
%"struct.std::atomic.133" = type { %"struct.std::__atomic_base.134" }
%"struct.std::__atomic_base.134" = type { ptr }
%"struct.std::atomic.135" = type { %"struct.std::__atomic_base.136" }
%"struct.std::__atomic_base.136" = type { ptr }
%class.InsertOnlyConcurrentMap.138 = type { %class.ConcurrentContainer.139 }
%class.ConcurrentContainer.139 = type { ptr, [83 x %"class.cc_impl::ConcurrentHashtable.140"] }
%"class.cc_impl::ConcurrentHashtable.140" = type { %"struct.std::atomic.141", %"struct.std::atomic.3", %"struct.std::atomic.5", %"struct.std::atomic.143" }
%"struct.std::atomic.141" = type { %"struct.std::__atomic_base.142" }
%"struct.std::__atomic_base.142" = type { ptr }
%"struct.std::atomic.143" = type { %"struct.std::__atomic_base.144" }
%"struct.std::__atomic_base.144" = type { ptr }
%"struct.constant_propagation::StringAnalyzerState" = type { %class.UnorderedSet.146 }
%"struct.constant_propagation::PackageNameState" = type { %class.UnorderedSet, ptr }
%"class.constant_propagation::State" = type { %class.UnorderedSet, ptr }
%"class.std::mutex" = type { %"class.std::__mutex_base" }
%"class.std::__mutex_base" = type { %union.pthread_mutex_t }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%class.AccumulatingTimer = type { %"class.std::shared_ptr" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }

@.str.11 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [27 x i8], align 1
@__PRETTY_FUNCTION__._ZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE = external hidden unnamed_addr constant [121 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [50 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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN20constant_propagation9Transform5StatsC2Ev(ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #2 align 2

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

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

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

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

; Function Attrs: noreturn
declare void @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ...) #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8shrinker8Shrinker20constant_propagationEbP7DexTypeP8DexProtoP6IRCodeRK19ConstantEnvironmentRKN20constant_propagation9Transform6ConfigE(ptr dead_on_unwind noalias writable sret(%"struct.constant_propagation::Transform::Stats") align 8, ptr noundef nonnull align 8 dereferenceable(20552), i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) #5 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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8shrinker8Shrinker9local_dceEP6IRCodebP7DexType(ptr dead_on_unwind noalias writable sret(%"struct.LocalDce::Stats") align 8, ptr noundef nonnull align 8 dereferenceable(20552), ptr noundef, i1 noundef zeroext, ptr noundef) #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8shrinker8Shrinker16copy_propagationEP6IRCodebP7DexTypeS4_P11DexTypeListSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE(ptr dead_on_unwind noalias writable sret(%"struct.copy_propagation_impl::Stats") align 8, ptr noundef nonnull align 8 dereferenceable(20552), ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #5 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE(ptr noundef nonnull align 8 dereferenceable(20552) %0, ptr noundef %1, i1 noundef zeroext %2, i1 noundef zeroext %3, ptr noundef %4, ptr noundef %5, ptr noundef nonnull align 8 dereferenceable(32) %6) #5 align 2 personality ptr @__gxx_personality_v0 {
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i8, align 1
  %11 = alloca i8, align 1
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca %"class.std::unique_ptr.631", align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca %"struct.constant_propagation::Transform::Stats", align 8
  %19 = alloca %"struct.cse_impl::Stats", align 8
  %20 = alloca %"struct.copy_propagation_impl::Stats", align 8
  %21 = alloca %"struct.LocalDce::Stats", align 8
  %22 = alloca %"struct.dedup_blocks_impl::Stats", align 8
  %23 = alloca i64, align 8
  %24 = alloca %"class.AccumulatingTimer::AccumulatingTimerScope", align 8
  %25 = alloca %"struct.constant_propagation::Transform::Config", align 8
  %26 = alloca %"struct.constant_propagation::Transform::Stats", align 8
  %27 = alloca %class.ConstantEnvironment, align 8
  %28 = alloca %"class.AccumulatingTimer::AccumulatingTimerScope", align 8
  %29 = alloca %"class.cse_impl::CommonSubexpressionElimination", align 8
  %30 = alloca %"class.AccumulatingTimer::AccumulatingTimerScope", align 8
  %31 = alloca %"struct.copy_propagation_impl::Stats", align 8
  %32 = alloca %"class.std::function.627", align 8
  %33 = alloca %"class.AccumulatingTimer::AccumulatingTimerScope", align 8
  %34 = alloca %"struct.LocalDce::Stats", align 8
  %35 = alloca %class.anon.671, align 8
  %36 = alloca i64, align 8
  %37 = alloca %"class.std::tuple.672", align 8
  %38 = alloca i64, align 8
  %39 = alloca %"class.AccumulatingTimer::AccumulatingTimerScope", align 8
  %40 = alloca %"class.std::tuple.672", align 8
  %41 = alloca %"struct.regalloc::graph_coloring::Allocator::Config", align 1
  %42 = alloca %"struct.regalloc::graph_coloring::Allocator::Stats", align 8
  %43 = alloca %"class.std::tuple.672", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.AccumulatingTimer::AccumulatingTimerScope", align 8
  %46 = alloca %"class.fastregalloc::LinearScanAllocator", align 8
  %47 = alloca %"class.AccumulatingTimer::AccumulatingTimerScope", align 8
  %48 = alloca %"struct.dedup_blocks_impl::Config", align 8
  %49 = alloca %"class.dedup_blocks_impl::DedupBlocks", align 8
  %50 = alloca %"class.AccumulatingTimer::AccumulatingTimerScope", align 8
  %51 = alloca ptr, align 8
  %52 = alloca %class.Lazy, align 8
  %53 = alloca %"class.std::function.748", align 8
  %54 = alloca %class.anon.758, align 8
  %55 = alloca %"class.std::tuple.672", align 8
  %56 = alloca %"class.std::lock_guard", align 8
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  %57 = zext i1 %2 to i8
  store i8 %57, ptr %10, align 1, !tbaa !9
  %58 = zext i1 %3 to i8
  store i8 %58, ptr %11, align 1, !tbaa !9
  store ptr %4, ptr %12, align 8, !tbaa !5
  store ptr %5, ptr %13, align 8, !tbaa !5
  store ptr %6, ptr %14, align 8, !tbaa !5
  %59 = load ptr, ptr %8, align 8
  %60 = load ptr, ptr %9, align 8, !tbaa !5
  %61 = call noundef zeroext i1 @_ZNK6IRCode18editable_cfg_builtEv(ptr noundef nonnull align 8 dereferenceable(32) %60)
  br i1 %61, label %62, label %63

62:                                               ; preds = %7
  br label %65

63:                                               ; preds = %7
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef @.str.13, ptr noundef @.str.11, i32 noundef 220, ptr noundef @__PRETTY_FUNCTION__._ZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE, i32 noundef 2, ptr noundef @.str.12) #9
  unreachable

64:                                               ; No predecessors!
  br label %65

65:                                               ; preds = %64, %62
  %66 = load ptr, ptr %9, align 8, !tbaa !5
  %67 = call noundef nonnull align 8 dereferenceable(160) ptr @_ZN6IRCode3cfgEv(ptr noundef nonnull align 8 dereferenceable(32) %66)
  call void @_ZN3cfg16ControlFlowGraph24recompute_registers_sizeEv(ptr noundef nonnull align 8 dereferenceable(160) %67)
  %68 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  call void @_ZNSt10unique_ptrIN3cfg21LinearizationStrategyESt14default_deleteIS1_EEC2IS3_vEEDn(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr null) #10
  invoke void @_ZN6IRCode9clear_cfgERKSt10unique_ptrIN3cfg21LinearizationStrategyESt14default_deleteIS2_EEPSt6vectorIP13IRInstructionSaISA_EE(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef null)
          to label %69 unwind label %90

69:                                               ; preds = %65
  call void @_ZNSt10unique_ptrIN3cfg21LinearizationStrategyESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  call void @llvm.lifetime.start.p0(i64 72, ptr %18) #10
  call void @_ZN20constant_propagation9Transform5StatsC2Ev(ptr noundef nonnull align 8 dereferenceable(72) %18) #10
  call void @llvm.lifetime.start.p0(i64 120, ptr %19) #10
  call void @_ZN8cse_impl5StatsC2Ev(ptr noundef nonnull align 8 dereferenceable(120) %19)
  call void @llvm.lifetime.start.p0(i64 40, ptr %20) #10
  call void @_ZN21copy_propagation_impl5StatsC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %20) #10
  call void @llvm.lifetime.start.p0(i64 72, ptr %21) #10
  call void @_ZN8LocalDce5StatsC2Ev(ptr noundef nonnull align 8 dereferenceable(72) %21) #10
  call void @llvm.lifetime.start.p0(i64 80, ptr %22) #10
  invoke void @_ZN17dedup_blocks_impl5StatsC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %22)
          to label %70 unwind label %94

70:                                               ; preds = %69
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #10
  store i64 0, ptr %23, align 8, !tbaa !11
  %71 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_ZN6IRCode9build_cfgEbb(ptr noundef nonnull align 8 dereferenceable(32) %71, i1 noundef zeroext true, i1 noundef zeroext true)
          to label %72 unwind label %98

72:                                               ; preds = %70
  %73 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 2
  %74 = getelementptr inbounds %"struct.shrinker::ShrinkerConfig", ptr %73, i32 0, i32 0
  %75 = load i8, ptr %74, align 8, !tbaa !13, !range !90, !noundef !91
  %76 = trunc i8 %75 to i1
  br i1 %76, label %77, label %121

77:                                               ; preds = %72
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #10
  %78 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 15
  invoke void @_ZN17AccumulatingTimer5scopeEv(ptr dead_on_unwind writable sret(%"class.AccumulatingTimer::AccumulatingTimerScope") align 8 %24, ptr noundef nonnull align 8 dereferenceable(16) %78)
          to label %79 unwind label %102

79:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #10
  invoke void @_ZN20constant_propagation9Transform6ConfigC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %80 unwind label %106

80:                                               ; preds = %79
  %81 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 7
  %82 = getelementptr inbounds %"struct.constant_propagation::Transform::Config", ptr %25, i32 0, i32 8
  store ptr %81, ptr %82, align 8, !tbaa !92
  call void @llvm.lifetime.start.p0(i64 72, ptr %26) #10
  %83 = load i8, ptr %10, align 1, !tbaa !9, !range !90, !noundef !91
  %84 = trunc i8 %83 to i1
  %85 = load ptr, ptr %12, align 8, !tbaa !5
  %86 = load ptr, ptr %13, align 8, !tbaa !5
  %87 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 48, ptr %27) #10
  call void @llvm.memset.p0.i64(ptr align 8 %27, i8 0, i64 48, i1 false)
  invoke void @_ZN19ConstantEnvironmentC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %27)
          to label %88 unwind label %110

88:                                               ; preds = %80
  invoke void @_ZN8shrinker8Shrinker20constant_propagationEbP7DexTypeP8DexProtoP6IRCodeRK19ConstantEnvironmentRKN20constant_propagation9Transform6ConfigE(ptr dead_on_unwind writable sret(%"struct.constant_propagation::Transform::Stats") align 8 %26, ptr noundef nonnull align 8 dereferenceable(20552) %59, i1 noundef zeroext %84, ptr noundef %85, ptr noundef %86, ptr noundef %87, ptr noundef nonnull align 8 dereferenceable(48) %27, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %89 unwind label %114

89:                                               ; preds = %88
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %18, ptr align 8 %26, i64 72, i1 false), !tbaa.struct !94
  call void @_ZN6sparta28ReducedProductAbstractDomainI19ConstantEnvironmentJNS_19AbstractEnvironmentINS_15PatriciaTreeMapIj37DisjointUnionWithSignedConstantDomainI17is_object_visitorJNS_22ConstantAbstractDomainIPK8DexFieldEENS_17SetAbstractDomainINS_7HashSetIlSt4hashIlESt8equal_toIlEEEEENSB_INS_15PatriciaTreeSetIPK9DexStringEEEENS6_ISM_EENS6_IPK7DexTypeEENS6_IiEE25ObjectWithImmutAttrDomain15NewObjectDomainNS6_IPK13IRInstructionEEEENS_17TopValueInterfaceIS11_EEEEEENS2_INS3_IS9_S11_S13_EEEENS2_INS3_ISZ_NS_27DisjointUnionAbstractDomainI19ConstantArrayDomainIS11_25ConstantValueDefaultValueEJ12ObjectDomainIS11_EEEENS12_IS1E_EEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %27) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #10
  br label %121

90:                                               ; preds = %65
  %91 = landingpad { ptr, i32 }
          cleanup
  %92 = extractvalue { ptr, i32 } %91, 0
  store ptr %92, ptr %16, align 8
  %93 = extractvalue { ptr, i32 } %91, 1
  store i32 %93, ptr %17, align 4
  call void @_ZNSt10unique_ptrIN3cfg21LinearizationStrategyESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  br label %503

94:                                               ; preds = %69
  %95 = landingpad { ptr, i32 }
          cleanup
  %96 = extractvalue { ptr, i32 } %95, 0
  store ptr %96, ptr %16, align 8
  %97 = extractvalue { ptr, i32 } %95, 1
  store i32 %97, ptr %17, align 4
  br label %502

98:                                               ; preds = %70
  %99 = landingpad { ptr, i32 }
          cleanup
  %100 = extractvalue { ptr, i32 } %99, 0
  store ptr %100, ptr %16, align 8
  %101 = extractvalue { ptr, i32 } %99, 1
  store i32 %101, ptr %17, align 4
  br label %501

102:                                              ; preds = %77
  %103 = landingpad { ptr, i32 }
          cleanup
  %104 = extractvalue { ptr, i32 } %103, 0
  store ptr %104, ptr %16, align 8
  %105 = extractvalue { ptr, i32 } %103, 1
  store i32 %105, ptr %17, align 4
  br label %120

106:                                              ; preds = %79
  %107 = landingpad { ptr, i32 }
          cleanup
  %108 = extractvalue { ptr, i32 } %107, 0
  store ptr %108, ptr %16, align 8
  %109 = extractvalue { ptr, i32 } %107, 1
  store i32 %109, ptr %17, align 4
  br label %119

110:                                              ; preds = %80
  %111 = landingpad { ptr, i32 }
          cleanup
  %112 = extractvalue { ptr, i32 } %111, 0
  store ptr %112, ptr %16, align 8
  %113 = extractvalue { ptr, i32 } %111, 1
  store i32 %113, ptr %17, align 4
  br label %118

114:                                              ; preds = %88
  %115 = landingpad { ptr, i32 }
          cleanup
  %116 = extractvalue { ptr, i32 } %115, 0
  store ptr %116, ptr %16, align 8
  %117 = extractvalue { ptr, i32 } %115, 1
  store i32 %117, ptr %17, align 4
  call void @_ZN6sparta28ReducedProductAbstractDomainI19ConstantEnvironmentJNS_19AbstractEnvironmentINS_15PatriciaTreeMapIj37DisjointUnionWithSignedConstantDomainI17is_object_visitorJNS_22ConstantAbstractDomainIPK8DexFieldEENS_17SetAbstractDomainINS_7HashSetIlSt4hashIlESt8equal_toIlEEEEENSB_INS_15PatriciaTreeSetIPK9DexStringEEEENS6_ISM_EENS6_IPK7DexTypeEENS6_IiEE25ObjectWithImmutAttrDomain15NewObjectDomainNS6_IPK13IRInstructionEEEENS_17TopValueInterfaceIS11_EEEEEENS2_INS3_IS9_S11_S13_EEEENS2_INS3_ISZ_NS_27DisjointUnionAbstractDomainI19ConstantArrayDomainIS11_25ConstantValueDefaultValueEJ12ObjectDomainIS11_EEEENS12_IS1E_EEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %27) #10
  br label %118

118:                                              ; preds = %114, %110
  call void @llvm.lifetime.end.p0(i64 48, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr %26) #10
  br label %119

119:                                              ; preds = %118, %106
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #10
  br label %120

120:                                              ; preds = %119, %102
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #10
  br label %501

121:                                              ; preds = %89, %72
  %122 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 2
  %123 = getelementptr inbounds %"struct.shrinker::ShrinkerConfig", ptr %122, i32 0, i32 1
  %124 = load i8, ptr %123, align 1, !tbaa !95, !range !90, !noundef !91
  %125 = trunc i8 %124 to i1
  br i1 %125, label %126, label %163

126:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 16, ptr %28) #10
  %127 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 17
  invoke void @_ZN17AccumulatingTimer5scopeEv(ptr dead_on_unwind writable sret(%"class.AccumulatingTimer::AccumulatingTimerScope") align 8 %28, ptr noundef nonnull align 8 dereferenceable(16) %127)
          to label %128 unwind label %149

128:                                              ; preds = %126
  call void @llvm.lifetime.start.p0(i64 312, ptr %29) #10
  %129 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 5
  %130 = call noundef ptr @_ZNKSt10unique_ptrIN8cse_impl11SharedStateESt14default_deleteIS1_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %129) #10
  %131 = load ptr, ptr %9, align 8, !tbaa !5
  %132 = invoke noundef nonnull align 8 dereferenceable(160) ptr @_ZN6IRCode3cfgEv(ptr noundef nonnull align 8 dereferenceable(32) %131)
          to label %133 unwind label %153

133:                                              ; preds = %128
  %134 = load i8, ptr %10, align 1, !tbaa !9, !range !90, !noundef !91
  %135 = trunc i8 %134 to i1
  %136 = load i8, ptr %11, align 1, !tbaa !9, !range !90, !noundef !91
  %137 = trunc i8 %136 to i1
  %138 = load ptr, ptr %12, align 8, !tbaa !5
  %139 = load ptr, ptr %13, align 8, !tbaa !5
  %140 = invoke noundef ptr @_ZNK8DexProto8get_argsEv(ptr noundef nonnull align 8 dereferenceable(24) %139)
          to label %141 unwind label %153

141:                                              ; preds = %133
  invoke void @_ZN8cse_impl30CommonSubexpressionEliminationC1EPNS_11SharedStateERN3cfg16ControlFlowGraphEbbP7DexTypeP11DexTypeList(ptr noundef nonnull align 8 dereferenceable(312) %29, ptr noundef %130, ptr noundef nonnull align 8 dereferenceable(160) %132, i1 noundef zeroext %135, i1 noundef zeroext %137, ptr noundef %138, ptr noundef %140)
          to label %142 unwind label %153

142:                                              ; preds = %141
  %143 = invoke noundef zeroext i1 @_ZN8cse_impl30CommonSubexpressionElimination5patchEb(ptr noundef nonnull align 8 dereferenceable(312) %29, i1 noundef zeroext false)
          to label %144 unwind label %157

144:                                              ; preds = %142
  %145 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZNK8cse_impl30CommonSubexpressionElimination9get_statsEv(ptr noundef nonnull align 8 dereferenceable(312) %29)
          to label %146 unwind label %157

146:                                              ; preds = %144
  %147 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN8cse_impl5StatsaSERKS0_(ptr noundef nonnull align 8 dereferenceable(120) %19, ptr noundef nonnull align 8 dereferenceable(120) %145)
          to label %148 unwind label %157

148:                                              ; preds = %146
  call void @_ZN8cse_impl30CommonSubexpressionEliminationD2Ev(ptr noundef nonnull align 8 dereferenceable(312) %29) #10
  call void @llvm.lifetime.end.p0(i64 312, ptr %29) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #10
  br label %163

149:                                              ; preds = %126
  %150 = landingpad { ptr, i32 }
          cleanup
  %151 = extractvalue { ptr, i32 } %150, 0
  store ptr %151, ptr %16, align 8
  %152 = extractvalue { ptr, i32 } %150, 1
  store i32 %152, ptr %17, align 4
  br label %162

153:                                              ; preds = %141, %133, %128
  %154 = landingpad { ptr, i32 }
          cleanup
  %155 = extractvalue { ptr, i32 } %154, 0
  store ptr %155, ptr %16, align 8
  %156 = extractvalue { ptr, i32 } %154, 1
  store i32 %156, ptr %17, align 4
  br label %161

157:                                              ; preds = %146, %144, %142
  %158 = landingpad { ptr, i32 }
          cleanup
  %159 = extractvalue { ptr, i32 } %158, 0
  store ptr %159, ptr %16, align 8
  %160 = extractvalue { ptr, i32 } %158, 1
  store i32 %160, ptr %17, align 4
  call void @_ZN8cse_impl30CommonSubexpressionEliminationD2Ev(ptr noundef nonnull align 8 dereferenceable(312) %29) #10
  br label %161

161:                                              ; preds = %157, %153
  call void @llvm.lifetime.end.p0(i64 312, ptr %29) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #10
  br label %162

162:                                              ; preds = %161, %149
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #10
  br label %501

163:                                              ; preds = %148, %121
  %164 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 2
  %165 = getelementptr inbounds %"struct.shrinker::ShrinkerConfig", ptr %164, i32 0, i32 2
  %166 = load i8, ptr %165, align 2, !tbaa !96, !range !90, !noundef !91
  %167 = trunc i8 %166 to i1
  br i1 %167, label %168, label %198

168:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #10
  %169 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 19
  invoke void @_ZN17AccumulatingTimer5scopeEv(ptr dead_on_unwind writable sret(%"class.AccumulatingTimer::AccumulatingTimerScope") align 8 %30, ptr noundef nonnull align 8 dereferenceable(16) %169)
          to label %170 unwind label %184

170:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 40, ptr %31) #10
  %171 = load ptr, ptr %9, align 8, !tbaa !5
  %172 = load i8, ptr %10, align 1, !tbaa !9, !range !90, !noundef !91
  %173 = trunc i8 %172 to i1
  %174 = load ptr, ptr %12, align 8, !tbaa !5
  %175 = load ptr, ptr %13, align 8, !tbaa !5
  %176 = invoke noundef ptr @_ZNK8DexProto9get_rtypeEv(ptr noundef nonnull align 8 dereferenceable(24) %175)
          to label %177 unwind label %188

177:                                              ; preds = %170
  %178 = load ptr, ptr %13, align 8, !tbaa !5
  %179 = invoke noundef ptr @_ZNK8DexProto8get_argsEv(ptr noundef nonnull align 8 dereferenceable(24) %178)
          to label %180 unwind label %188

180:                                              ; preds = %177
  %181 = load ptr, ptr %14, align 8, !tbaa !5
  invoke void @_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(32) %181)
          to label %182 unwind label %188

182:                                              ; preds = %180
  invoke void @_ZN8shrinker8Shrinker16copy_propagationEP6IRCodebP7DexTypeS4_P11DexTypeListSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE(ptr dead_on_unwind writable sret(%"struct.copy_propagation_impl::Stats") align 8 %31, ptr noundef nonnull align 8 dereferenceable(20552) %59, ptr noundef %171, i1 noundef zeroext %173, ptr noundef %174, ptr noundef %176, ptr noundef %179, ptr noundef %32)
          to label %183 unwind label %192

183:                                              ; preds = %182
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %20, ptr align 8 %31, i64 40, i1 false), !tbaa.struct !97
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %31) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #10
  br label %198

184:                                              ; preds = %168
  %185 = landingpad { ptr, i32 }
          cleanup
  %186 = extractvalue { ptr, i32 } %185, 0
  store ptr %186, ptr %16, align 8
  %187 = extractvalue { ptr, i32 } %185, 1
  store i32 %187, ptr %17, align 4
  br label %197

188:                                              ; preds = %180, %177, %170
  %189 = landingpad { ptr, i32 }
          cleanup
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %16, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %17, align 4
  br label %196

192:                                              ; preds = %182
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %16, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %17, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #10
  br label %196

196:                                              ; preds = %192, %188
  call void @llvm.lifetime.end.p0(i64 40, ptr %31) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #10
  br label %197

197:                                              ; preds = %196, %184
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #10
  br label %501

198:                                              ; preds = %183, %163
  %199 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 2
  %200 = getelementptr inbounds %"struct.shrinker::ShrinkerConfig", ptr %199, i32 0, i32 3
  %201 = load i8, ptr %200, align 1, !tbaa !98, !range !90, !noundef !91
  %202 = trunc i8 %201 to i1
  br i1 %202, label %203, label %222

203:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #10
  %204 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 21
  invoke void @_ZN17AccumulatingTimer5scopeEv(ptr dead_on_unwind writable sret(%"class.AccumulatingTimer::AccumulatingTimerScope") align 8 %33, ptr noundef nonnull align 8 dereferenceable(16) %204)
          to label %205 unwind label %213

205:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 72, ptr %34) #10
  %206 = load ptr, ptr %9, align 8, !tbaa !5
  %207 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 2
  %208 = getelementptr inbounds %"struct.shrinker::ShrinkerConfig", ptr %207, i32 0, i32 8
  %209 = load i8, ptr %208, align 8, !tbaa !99, !range !90, !noundef !91
  %210 = trunc i8 %209 to i1
  %211 = load ptr, ptr %12, align 8, !tbaa !5
  invoke void @_ZN8shrinker8Shrinker9local_dceEP6IRCodebP7DexType(ptr dead_on_unwind writable sret(%"struct.LocalDce::Stats") align 8 %34, ptr noundef nonnull align 8 dereferenceable(20552) %59, ptr noundef %206, i1 noundef zeroext %210, ptr noundef %211)
          to label %212 unwind label %217

212:                                              ; preds = %205
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %21, ptr align 8 %34, i64 72, i1 false), !tbaa.struct !94
  call void @llvm.lifetime.end.p0(i64 72, ptr %34) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #10
  br label %222

213:                                              ; preds = %203
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %16, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %17, align 4
  br label %221

217:                                              ; preds = %205
  %218 = landingpad { ptr, i32 }
          cleanup
  %219 = extractvalue { ptr, i32 } %218, 0
  store ptr %219, ptr %16, align 8
  %220 = extractvalue { ptr, i32 } %218, 1
  store i32 %220, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 72, ptr %34) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #10
  br label %221

221:                                              ; preds = %217, %213
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #10
  br label %501

222:                                              ; preds = %212, %198
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #10
  %223 = getelementptr inbounds %class.anon.671, ptr %35, i32 0, i32 0
  store ptr %9, ptr %223, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #10
  store i64 10, ptr %36, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #10
  invoke void @"_ZZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEENK3$_1clEm"(ptr dead_on_unwind writable sret(%"class.std::tuple.672") align 8 %37, ptr noundef nonnull align 8 dereferenceable(8) %35, i64 noundef 10)
          to label %224 unwind label %270

224:                                              ; preds = %222
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #10
  store i64 0, ptr %38, align 8, !tbaa !11
  %225 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 2
  %226 = getelementptr inbounds %"struct.shrinker::ShrinkerConfig", ptr %225, i32 0, i32 4
  %227 = load i8, ptr %226, align 4, !tbaa !100, !range !90, !noundef !91
  %228 = trunc i8 %227 to i1
  br i1 %228, label %229, label %311

229:                                              ; preds = %224
  %230 = load ptr, ptr %9, align 8, !tbaa !5
  %231 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 0
  %232 = invoke noundef zeroext i1 @_ZN8shrinker12_GLOBAL__N_113should_shrinkEP6IRCodeRKN13random_forest6ForestIJRKNS_8Shrinker13MethodContextEEEE(ptr noundef %230, ptr noundef nonnull align 8 dereferenceable(24) %231)
          to label %233 unwind label %274

233:                                              ; preds = %229
  br i1 %232, label %237, label %234

234:                                              ; preds = %233
  %235 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 77, i32 noundef 10)
          to label %236 unwind label %274

236:                                              ; preds = %234
  br i1 %235, label %237, label %310

237:                                              ; preds = %236, %233
  call void @llvm.lifetime.start.p0(i64 16, ptr %39) #10
  %238 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 27
  invoke void @_ZN17AccumulatingTimer5scopeEv(ptr dead_on_unwind writable sret(%"class.AccumulatingTimer::AccumulatingTimerScope") align 8 %39, ptr noundef nonnull align 8 dereferenceable(16) %238)
          to label %239 unwind label %278

239:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #10
  invoke void @"_ZZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEENK3$_1clEm"(ptr dead_on_unwind writable sret(%"class.std::tuple.672") align 8 %40, ptr noundef nonnull align 8 dereferenceable(8) %35, i64 noundef 4)
          to label %240 unwind label %282

240:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 2, ptr %41) #10
  %241 = getelementptr inbounds %"struct.regalloc::graph_coloring::Allocator::Config", ptr %41, i32 0, i32 0
  store i8 0, ptr %241, align 1, !tbaa !101
  %242 = getelementptr inbounds %"struct.regalloc::graph_coloring::Allocator::Config", ptr %41, i32 0, i32 1
  store i8 0, ptr %242, align 1, !tbaa !103
  %243 = getelementptr inbounds %"struct.regalloc::graph_coloring::Allocator::Config", ptr %41, i32 0, i32 0
  store i8 1, ptr %243, align 1, !tbaa !101
  %244 = load ptr, ptr %9, align 8, !tbaa !5
  %245 = load i8, ptr %10, align 1, !tbaa !9, !range !90, !noundef !91
  %246 = trunc i8 %245 to i1
  %247 = load ptr, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 56, ptr %42) #10
  invoke void @_ZN8regalloc14graph_coloring8allocateERKNS0_9Allocator6ConfigEP6IRCodebRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE(ptr dead_on_unwind writable sret(%"struct.regalloc::graph_coloring::Allocator::Stats") align 8 %42, ptr noundef nonnull align 1 dereferenceable(2) %41, ptr noundef %244, i1 noundef zeroext %246, ptr noundef nonnull align 8 dereferenceable(32) %247)
          to label %248 unwind label %286

248:                                              ; preds = %240
  call void @llvm.lifetime.end.p0(i64 56, ptr %42) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #10
  invoke void @"_ZZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEENK3$_1clEm"(ptr dead_on_unwind writable sret(%"class.std::tuple.672") align 8 %43, ptr noundef nonnull align 8 dereferenceable(8) %35, i64 noundef 4)
          to label %249 unwind label %290

249:                                              ; preds = %248
  br label %250

250:                                              ; preds = %249
  %251 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 77, i32 noundef 4)
          to label %252 unwind label %290

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

253:                                              ; preds = %252
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #10
  %254 = load ptr, ptr %14, align 8, !tbaa !5
  invoke void @_ZNKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEclEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %254)
          to label %255 unwind label %294

255:                                              ; preds = %253
  %256 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  %257 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  %258 = load i64, ptr %257, align 8, !tbaa !11
  %259 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  %260 = load i64, ptr %259, align 8, !tbaa !11
  %261 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm2EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  %262 = load i64, ptr %261, align 8, !tbaa !11
  %263 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  %264 = load i64, ptr %263, align 8, !tbaa !11
  %265 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  %266 = load i64, ptr %265, align 8, !tbaa !11
  %267 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm2EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  %268 = load i64, ptr %267, align 8, !tbaa !11
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 77, i32 noundef 4, i1 noundef zeroext false, ptr noundef @.str.14, ptr noundef %256, i64 noundef %258, i64 noundef %260, i64 noundef %262, i64 noundef %264, i64 noundef %266, i64 noundef %268)
          to label %269 unwind label %298

269:                                              ; preds = %255
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #10
  br label %303

270:                                              ; preds = %222
  %271 = landingpad { ptr, i32 }
          cleanup
  %272 = extractvalue { ptr, i32 } %271, 0
  store ptr %272, ptr %16, align 8
  %273 = extractvalue { ptr, i32 } %271, 1
  store i32 %273, ptr %17, align 4
  br label %500

274:                                              ; preds = %234, %229
  %275 = landingpad { ptr, i32 }
          cleanup
  %276 = extractvalue { ptr, i32 } %275, 0
  store ptr %276, ptr %16, align 8
  %277 = extractvalue { ptr, i32 } %275, 1
  store i32 %277, ptr %17, align 4
  br label %499

278:                                              ; preds = %237
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %16, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %17, align 4
  br label %309

282:                                              ; preds = %239
  %283 = landingpad { ptr, i32 }
          cleanup
  %284 = extractvalue { ptr, i32 } %283, 0
  store ptr %284, ptr %16, align 8
  %285 = extractvalue { ptr, i32 } %283, 1
  store i32 %285, ptr %17, align 4
  br label %308

286:                                              ; preds = %240
  %287 = landingpad { ptr, i32 }
          cleanup
  %288 = extractvalue { ptr, i32 } %287, 0
  store ptr %288, ptr %16, align 8
  %289 = extractvalue { ptr, i32 } %287, 1
  store i32 %289, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 56, ptr %42) #10
  br label %307

290:                                              ; preds = %250, %248
  %291 = landingpad { ptr, i32 }
          cleanup
  %292 = extractvalue { ptr, i32 } %291, 0
  store ptr %292, ptr %16, align 8
  %293 = extractvalue { ptr, i32 } %291, 1
  store i32 %293, ptr %17, align 4
  br label %306

294:                                              ; preds = %253
  %295 = landingpad { ptr, i32 }
          cleanup
  %296 = extractvalue { ptr, i32 } %295, 0
  store ptr %296, ptr %16, align 8
  %297 = extractvalue { ptr, i32 } %295, 1
  store i32 %297, ptr %17, align 4
  br label %302

298:                                              ; preds = %255
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %16, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  br label %302

302:                                              ; preds = %298, %294
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #10
  br label %306

303:                                              ; preds = %269, %252
  br label %304

304:                                              ; preds = %303
  br label %305

305:                                              ; preds = %304
  store i64 1, ptr %38, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 2, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #10
  br label %310

306:                                              ; preds = %302, %290
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #10
  br label %307

307:                                              ; preds = %306, %286
  call void @llvm.lifetime.end.p0(i64 2, ptr %41) #10
  br label %308

308:                                              ; preds = %307, %282
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #10
  br label %309

309:                                              ; preds = %308, %278
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #10
  br label %499

310:                                              ; preds = %305, %236
  br label %311

311:                                              ; preds = %310, %224
  %312 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 2
  %313 = getelementptr inbounds %"struct.shrinker::ShrinkerConfig", ptr %312, i32 0, i32 5
  %314 = load i8, ptr %313, align 1, !tbaa !104, !range !90, !noundef !91
  %315 = trunc i8 %314 to i1
  br i1 %315, label %316, label %339

316:                                              ; preds = %311
  call void @llvm.lifetime.start.p0(i64 16, ptr %45) #10
  %317 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 27
  invoke void @_ZN17AccumulatingTimer5scopeEv(ptr dead_on_unwind writable sret(%"class.AccumulatingTimer::AccumulatingTimerScope") align 8 %45, ptr noundef nonnull align 8 dereferenceable(16) %317)
          to label %318 unwind label %325

318:                                              ; preds = %316
  call void @llvm.lifetime.start.p0(i64 288, ptr %46) #10
  %319 = load ptr, ptr %9, align 8, !tbaa !5
  %320 = load i8, ptr %10, align 1, !tbaa !9, !range !90, !noundef !91
  %321 = trunc i8 %320 to i1
  %322 = load ptr, ptr %14, align 8, !tbaa !5
  invoke void @_ZN12fastregalloc19LinearScanAllocatorC1EP6IRCodebRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE(ptr noundef nonnull align 8 dereferenceable(288) %46, ptr noundef %319, i1 noundef zeroext %321, ptr noundef nonnull align 8 dereferenceable(32) %322)
          to label %323 unwind label %329

323:                                              ; preds = %318
  invoke void @_ZN12fastregalloc19LinearScanAllocator8allocateEv(ptr noundef nonnull align 8 dereferenceable(288) %46)
          to label %324 unwind label %333

324:                                              ; preds = %323
  call void @_ZN12fastregalloc19LinearScanAllocatorD2Ev(ptr noundef nonnull align 8 dereferenceable(288) %46) #10
  call void @llvm.lifetime.end.p0(i64 288, ptr %46) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #10
  br label %339

325:                                              ; preds = %316
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %16, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %17, align 4
  br label %338

329:                                              ; preds = %318
  %330 = landingpad { ptr, i32 }
          cleanup
  %331 = extractvalue { ptr, i32 } %330, 0
  store ptr %331, ptr %16, align 8
  %332 = extractvalue { ptr, i32 } %330, 1
  store i32 %332, ptr %17, align 4
  br label %337

333:                                              ; preds = %323
  %334 = landingpad { ptr, i32 }
          cleanup
  %335 = extractvalue { ptr, i32 } %334, 0
  store ptr %335, ptr %16, align 8
  %336 = extractvalue { ptr, i32 } %334, 1
  store i32 %336, ptr %17, align 4
  call void @_ZN12fastregalloc19LinearScanAllocatorD2Ev(ptr noundef nonnull align 8 dereferenceable(288) %46) #10
  br label %337

337:                                              ; preds = %333, %329
  call void @llvm.lifetime.end.p0(i64 288, ptr %46) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #10
  br label %338

338:                                              ; preds = %337, %325
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #10
  br label %499

339:                                              ; preds = %324, %311
  %340 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 2
  %341 = getelementptr inbounds %"struct.shrinker::ShrinkerConfig", ptr %340, i32 0, i32 6
  %342 = load i8, ptr %341, align 2, !tbaa !105, !range !90, !noundef !91
  %343 = trunc i8 %342 to i1
  br i1 %343, label %344, label %380

344:                                              ; preds = %339
  call void @llvm.lifetime.start.p0(i64 16, ptr %47) #10
  %345 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 25
  invoke void @_ZN17AccumulatingTimer5scopeEv(ptr dead_on_unwind writable sret(%"class.AccumulatingTimer::AccumulatingTimerScope") align 8 %47, ptr noundef nonnull align 8 dereferenceable(16) %345)
          to label %346 unwind label %361

346:                                              ; preds = %344
  call void @llvm.lifetime.start.p0(i64 72, ptr %48) #10
  invoke void @_ZN17dedup_blocks_impl6ConfigC2Ev(ptr noundef nonnull align 8 dereferenceable(68) %48)
          to label %347 unwind label %365

347:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 120, ptr %49) #10
  %348 = load ptr, ptr %9, align 8, !tbaa !5
  %349 = load i8, ptr %10, align 1, !tbaa !9, !range !90, !noundef !91
  %350 = trunc i8 %349 to i1
  %351 = load ptr, ptr %12, align 8, !tbaa !5
  %352 = load ptr, ptr %13, align 8, !tbaa !5
  %353 = invoke noundef ptr @_ZNK8DexProto8get_argsEv(ptr noundef nonnull align 8 dereferenceable(24) %352)
          to label %354 unwind label %369

354:                                              ; preds = %347
  invoke void @_ZN17dedup_blocks_impl11DedupBlocksC1EPKNS_6ConfigEP6IRCodebP7DexTypeP11DexTypeList(ptr noundef nonnull align 8 dereferenceable(120) %49, ptr noundef %48, ptr noundef %348, i1 noundef zeroext %350, ptr noundef %351, ptr noundef %353)
          to label %355 unwind label %369

355:                                              ; preds = %354
  invoke void @_ZN17dedup_blocks_impl11DedupBlocks3runEv(ptr noundef nonnull align 8 dereferenceable(120) %49)
          to label %356 unwind label %373

356:                                              ; preds = %355
  %357 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZNK17dedup_blocks_impl11DedupBlocks9get_statsEv(ptr noundef nonnull align 8 dereferenceable(120) %49)
          to label %358 unwind label %373

358:                                              ; preds = %356
  %359 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZN17dedup_blocks_impl5StatsaSERKS0_(ptr noundef nonnull align 8 dereferenceable(80) %22, ptr noundef nonnull align 8 dereferenceable(80) %357)
          to label %360 unwind label %373

360:                                              ; preds = %358
  call void @_ZN17dedup_blocks_impl11DedupBlocksD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %49) #10
  call void @llvm.lifetime.end.p0(i64 120, ptr %49) #10
  call void @_ZN17dedup_blocks_impl6ConfigD2Ev(ptr noundef nonnull align 8 dereferenceable(68) %48) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr %48) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #10
  br label %380

361:                                              ; preds = %344
  %362 = landingpad { ptr, i32 }
          cleanup
  %363 = extractvalue { ptr, i32 } %362, 0
  store ptr %363, ptr %16, align 8
  %364 = extractvalue { ptr, i32 } %362, 1
  store i32 %364, ptr %17, align 4
  br label %379

365:                                              ; preds = %346
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %16, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %17, align 4
  br label %378

369:                                              ; preds = %354, %347
  %370 = landingpad { ptr, i32 }
          cleanup
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %16, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %17, align 4
  br label %377

373:                                              ; preds = %358, %356, %355
  %374 = landingpad { ptr, i32 }
          cleanup
  %375 = extractvalue { ptr, i32 } %374, 0
  store ptr %375, ptr %16, align 8
  %376 = extractvalue { ptr, i32 } %374, 1
  store i32 %376, ptr %17, align 4
  call void @_ZN17dedup_blocks_impl11DedupBlocksD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %49) #10
  br label %377

377:                                              ; preds = %373, %369
  call void @llvm.lifetime.end.p0(i64 120, ptr %49) #10
  call void @_ZN17dedup_blocks_impl6ConfigD2Ev(ptr noundef nonnull align 8 dereferenceable(68) %48) #10
  br label %378

378:                                              ; preds = %377, %365
  call void @llvm.lifetime.end.p0(i64 72, ptr %48) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #10
  br label %379

379:                                              ; preds = %378, %361
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #10
  br label %499

380:                                              ; preds = %360, %339
  %381 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 2
  %382 = getelementptr inbounds %"struct.shrinker::ShrinkerConfig", ptr %381, i32 0, i32 7
  %383 = load i8, ptr %382, align 1, !tbaa !106, !range !90, !noundef !91
  %384 = trunc i8 %383 to i1
  br i1 %384, label %385, label %427

385:                                              ; preds = %380
  call void @llvm.lifetime.start.p0(i64 16, ptr %50) #10
  %386 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 23
  invoke void @_ZN17AccumulatingTimer5scopeEv(ptr dead_on_unwind writable sret(%"class.AccumulatingTimer::AccumulatingTimerScope") align 8 %50, ptr noundef nonnull align 8 dereferenceable(16) %386)
          to label %387 unwind label %403

387:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #10
  %388 = load ptr, ptr %9, align 8, !tbaa !5
  %389 = invoke noundef nonnull align 8 dereferenceable(160) ptr @_ZN6IRCode3cfgEv(ptr noundef nonnull align 8 dereferenceable(32) %388)
          to label %390 unwind label %407

390:                                              ; preds = %387
  store ptr %389, ptr %51, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr %52) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr %54) #10
  %391 = getelementptr inbounds %class.anon.758, ptr %54, i32 0, i32 0
  %392 = load ptr, ptr %51, align 8, !tbaa !5
  store ptr %392, ptr %391, align 8, !tbaa !5
  %393 = getelementptr inbounds %class.anon.758, ptr %54, i32 0, i32 1
  store ptr %10, ptr %393, align 8, !tbaa !5
  %394 = getelementptr inbounds %class.anon.758, ptr %54, i32 0, i32 2
  store ptr %12, ptr %394, align 8, !tbaa !5
  %395 = getelementptr inbounds %class.anon.758, ptr %54, i32 0, i32 3
  store ptr %13, ptr %395, align 8, !tbaa !5
  %396 = getelementptr inbounds %class.anon.758, ptr %54, i32 0, i32 4
  %397 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %397, ptr %396, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFSt10unique_ptrIKN13constant_uses12ConstantUsesESt14default_deleteIS3_EEvEEC2IZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKS_IFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(40) %54)
          to label %398 unwind label %411

398:                                              ; preds = %390
  invoke void @_ZN4LazyIKN13constant_uses12ConstantUsesEEC2ERKSt8functionIFSt10unique_ptrIS2_St14default_deleteIS2_EEvEE(ptr noundef nonnull align 8 dereferenceable(40) %52, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %399 unwind label %415

399:                                              ; preds = %398
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %54) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #10
  %400 = load ptr, ptr %51, align 8, !tbaa !5
  %401 = invoke noundef i64 @_ZN27branch_prefix_hoisting_impl11process_cfgERN3cfg16ControlFlowGraphER4LazyIKN13constant_uses12ConstantUsesEEb(ptr noundef nonnull align 8 dereferenceable(160) %400, ptr noundef nonnull align 8 dereferenceable(40) %52, i1 noundef zeroext true)
          to label %402 unwind label %420

402:                                              ; preds = %399
  store i64 %401, ptr %23, align 8, !tbaa !11
  call void @_ZN4LazyIKN13constant_uses12ConstantUsesEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %52) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %52) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #10
  br label %427

403:                                              ; preds = %385
  %404 = landingpad { ptr, i32 }
          cleanup
  %405 = extractvalue { ptr, i32 } %404, 0
  store ptr %405, ptr %16, align 8
  %406 = extractvalue { ptr, i32 } %404, 1
  store i32 %406, ptr %17, align 4
  br label %426

407:                                              ; preds = %387
  %408 = landingpad { ptr, i32 }
          cleanup
  %409 = extractvalue { ptr, i32 } %408, 0
  store ptr %409, ptr %16, align 8
  %410 = extractvalue { ptr, i32 } %408, 1
  store i32 %410, ptr %17, align 4
  br label %425

411:                                              ; preds = %390
  %412 = landingpad { ptr, i32 }
          cleanup
  %413 = extractvalue { ptr, i32 } %412, 0
  store ptr %413, ptr %16, align 8
  %414 = extractvalue { ptr, i32 } %412, 1
  store i32 %414, ptr %17, align 4
  br label %419

415:                                              ; preds = %398
  %416 = landingpad { ptr, i32 }
          cleanup
  %417 = extractvalue { ptr, i32 } %416, 0
  store ptr %417, ptr %16, align 8
  %418 = extractvalue { ptr, i32 } %416, 1
  store i32 %418, ptr %17, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  br label %419

419:                                              ; preds = %415, %411
  call void @llvm.lifetime.end.p0(i64 40, ptr %54) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #10
  br label %424

420:                                              ; preds = %399
  %421 = landingpad { ptr, i32 }
          cleanup
  %422 = extractvalue { ptr, i32 } %421, 0
  store ptr %422, ptr %16, align 8
  %423 = extractvalue { ptr, i32 } %421, 1
  store i32 %423, ptr %17, align 4
  call void @_ZN4LazyIKN13constant_uses12ConstantUsesEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %52) #10
  br label %424

424:                                              ; preds = %420, %419
  call void @llvm.lifetime.end.p0(i64 40, ptr %52) #10
  br label %425

425:                                              ; preds = %424, %407
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #10
  br label %426

426:                                              ; preds = %425, %403
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #10
  br label %499

427:                                              ; preds = %402, %380
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #10
  invoke void @"_ZZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEENK3$_1clEm"(ptr dead_on_unwind writable sret(%"class.std::tuple.672") align 8 %55, ptr noundef nonnull align 8 dereferenceable(8) %35, i64 noundef 10)
          to label %428 unwind label %453

428:                                              ; preds = %427
  %429 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 77, i32 noundef 10)
          to label %430 unwind label %453

430:                                              ; preds = %428
  br i1 %429, label %431, label %460

431:                                              ; preds = %430
  br label %432

432:                                              ; preds = %431
  %433 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 77, i32 noundef 10)
          to label %434 unwind label %453

434:                                              ; preds = %432
  br i1 %433, label %435, label %457

435:                                              ; preds = %434
  %436 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  %437 = load i64, ptr %436, align 8, !tbaa !11
  %438 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  %439 = load i64, ptr %438, align 8, !tbaa !11
  %440 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm2EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  %441 = load i64, ptr %440, align 8, !tbaa !11
  %442 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm3EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  %443 = load i64, ptr %442, align 8, !tbaa !11
  %444 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  %445 = load i64, ptr %444, align 8, !tbaa !11
  %446 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  %447 = load i64, ptr %446, align 8, !tbaa !11
  %448 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm2EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  %449 = load i64, ptr %448, align 8, !tbaa !11
  %450 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm3EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  %451 = load i64, ptr %450, align 8, !tbaa !11
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 77, i32 noundef 10, i1 noundef zeroext false, ptr noundef @.str.15, i64 noundef %437, i64 noundef %439, i64 noundef %441, i64 noundef %443, i64 noundef %445, i64 noundef %447, i64 noundef %449, i64 noundef %451)
          to label %452 unwind label %453

452:                                              ; preds = %435
  br label %457

453:                                              ; preds = %435, %432, %428, %427
  %454 = landingpad { ptr, i32 }
          cleanup
  %455 = extractvalue { ptr, i32 } %454, 0
  store ptr %455, ptr %16, align 8
  %456 = extractvalue { ptr, i32 } %454, 1
  store i32 %456, ptr %17, align 4
  br label %498

457:                                              ; preds = %452, %434
  br label %458

458:                                              ; preds = %457
  br label %459

459:                                              ; preds = %458
  br label %460

460:                                              ; preds = %459, %430
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #10
  %461 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 14
  invoke void @_ZNSt10lock_guardISt5mutexEC2ERS0_(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(40) %461)
          to label %462 unwind label %489

462:                                              ; preds = %460
  %463 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 16
  %464 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN20constant_propagation9Transform5StatspLERKS1_(ptr noundef nonnull align 8 dereferenceable(72) %463, ptr noundef nonnull align 8 dereferenceable(72) %18)
          to label %465 unwind label %493

465:                                              ; preds = %462
  %466 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 18
  %467 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN8cse_impl5StatspLERKS0_(ptr noundef nonnull align 8 dereferenceable(120) %466, ptr noundef nonnull align 8 dereferenceable(120) %19)
          to label %468 unwind label %493

468:                                              ; preds = %465
  %469 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 20
  %470 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN21copy_propagation_impl5StatspLERKS0_(ptr noundef nonnull align 8 dereferenceable(40) %469, ptr noundef nonnull align 8 dereferenceable(40) %20)
          to label %471 unwind label %493

471:                                              ; preds = %468
  %472 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 22
  %473 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN8LocalDce5StatspLERKS0_(ptr noundef nonnull align 8 dereferenceable(72) %472, ptr noundef nonnull align 8 dereferenceable(72) %21)
          to label %474 unwind label %493

474:                                              ; preds = %471
  %475 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 26
  %476 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZN17dedup_blocks_impl5StatspLERKS0_(ptr noundef nonnull align 8 dereferenceable(80) %475, ptr noundef nonnull align 8 dereferenceable(80) %22)
          to label %477 unwind label %493

477:                                              ; preds = %474
  %478 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 28
  %479 = load i64, ptr %478, align 8, !tbaa !107
  %480 = add i64 %479, 1
  store i64 %480, ptr %478, align 8, !tbaa !107
  %481 = load i64, ptr %38, align 8, !tbaa !11
  %482 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 29
  %483 = load i64, ptr %482, align 8, !tbaa !108
  %484 = add i64 %483, %481
  store i64 %484, ptr %482, align 8, !tbaa !108
  %485 = load i64, ptr %23, align 8, !tbaa !11
  %486 = getelementptr inbounds %"class.shrinker::Shrinker", ptr %59, i32 0, i32 24
  %487 = load i64, ptr %486, align 8, !tbaa !109
  %488 = add i64 %487, %485
  store i64 %488, ptr %486, align 8, !tbaa !109
  call void @_ZNSt10lock_guardISt5mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #10
  call void @_ZN17dedup_blocks_impl5StatsD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %22) #10
  call void @llvm.lifetime.end.p0(i64 80, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %20) #10
  call void @_ZN8cse_impl5StatsD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %19) #10
  call void @llvm.lifetime.end.p0(i64 120, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr %18) #10
  ret void

489:                                              ; preds = %460
  %490 = landingpad { ptr, i32 }
          cleanup
  %491 = extractvalue { ptr, i32 } %490, 0
  store ptr %491, ptr %16, align 8
  %492 = extractvalue { ptr, i32 } %490, 1
  store i32 %492, ptr %17, align 4
  br label %497

493:                                              ; preds = %474, %471, %468, %465, %462
  %494 = landingpad { ptr, i32 }
          cleanup
  %495 = extractvalue { ptr, i32 } %494, 0
  store ptr %495, ptr %16, align 8
  %496 = extractvalue { ptr, i32 } %494, 1
  store i32 %496, ptr %17, align 4
  call void @_ZNSt10lock_guardISt5mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #10
  br label %497

497:                                              ; preds = %493, %489
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #10
  br label %498

498:                                              ; preds = %497, %453
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #10
  br label %499

499:                                              ; preds = %498, %426, %379, %338, %309, %274
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #10
  br label %500

500:                                              ; preds = %499, %270
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  br label %501

501:                                              ; preds = %500, %221, %197, %162, %120, %98
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #10
  call void @_ZN17dedup_blocks_impl5StatsD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %22) #10
  br label %502

502:                                              ; preds = %501, %94
  call void @llvm.lifetime.end.p0(i64 80, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %20) #10
  call void @_ZN8cse_impl5StatsD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %19) #10
  call void @llvm.lifetime.end.p0(i64 120, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr %18) #10
  br label %503

503:                                              ; preds = %502, %90
  %504 = load ptr, ptr %16, align 8
  %505 = load i32, ptr %17, align 4
  %506 = insertvalue { ptr, i32 } poison, ptr %504, 0
  %507 = insertvalue { ptr, i32 } %506, i32 %505, 1
  resume { ptr, i32 } %507
}

declare noundef zeroext i1 @_ZNK6IRCode18editable_cfg_builtEv(ptr noundef nonnull align 8 dereferenceable(32)) #8

declare void @_ZN3cfg16ControlFlowGraph24recompute_registers_sizeEv(ptr noundef nonnull align 8 dereferenceable(160)) #8

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

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

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

declare void @_ZN6IRCode9build_cfgEbb(ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext, i1 noundef zeroext) #8

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN17AccumulatingTimer5scopeEv(ptr dead_on_unwind noalias writable sret(%"class.AccumulatingTimer::AccumulatingTimerScope") align 8, ptr noundef nonnull align 8 dereferenceable(16)) #5 align 2

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

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

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

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

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

declare void @_ZN8cse_impl30CommonSubexpressionEliminationC1EPNS_11SharedStateERN3cfg16ControlFlowGraphEbbP7DexTypeP11DexTypeList(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef, ptr noundef nonnull align 8 dereferenceable(160), i1 noundef zeroext, i1 noundef zeroext, ptr noundef, ptr noundef) unnamed_addr #8

declare noundef zeroext i1 @_ZN8cse_impl30CommonSubexpressionElimination5patchEb(ptr noundef nonnull align 8 dereferenceable(312), i1 noundef zeroext) #8

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEENK3$_1clEm"(ptr dead_on_unwind noalias writable sret(%"class.std::tuple.672") align 8, ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN8shrinker12_GLOBAL__N_113should_shrinkEP6IRCodeRKN13random_forest6ForestIJRKNS_8Shrinker13MethodContextEEEE(ptr noundef, ptr noundef nonnull align 8 dereferenceable(24)) #5

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

declare void @_ZN8regalloc14graph_coloring8allocateERKNS0_9Allocator6ConfigEP6IRCodebRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE(ptr dead_on_unwind writable sret(%"struct.regalloc::graph_coloring::Allocator::Stats") align 8, ptr noundef nonnull align 1 dereferenceable(2), ptr noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(32)) #8

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEclEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #5 align 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 nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32)) #1

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

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

declare void @_ZN12fastregalloc19LinearScanAllocatorC1EP6IRCodebRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE(ptr noundef nonnull align 8 dereferenceable(288), ptr noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #8

declare void @_ZN12fastregalloc19LinearScanAllocator8allocateEv(ptr noundef nonnull align 8 dereferenceable(288)) #8

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

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

declare void @_ZN17dedup_blocks_impl11DedupBlocksC1EPKNS_6ConfigEP6IRCodebP7DexTypeP11DexTypeList(ptr noundef nonnull align 8 dereferenceable(120), ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef) unnamed_addr #8

declare void @_ZN17dedup_blocks_impl11DedupBlocks3runEv(ptr noundef nonnull align 8 dereferenceable(120)) #8

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFSt10unique_ptrIKN13constant_uses12ConstantUsesESt14default_deleteIS3_EEvEEC2IZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKS_IFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #5 align 2

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

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

declare noundef i64 @_ZN27branch_prefix_hoisting_impl11process_cfgERN3cfg16ControlFlowGraphER4LazyIKN13constant_uses12ConstantUsesEEb(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(40), i1 noundef zeroext) #8

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

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

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

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

declare noundef nonnull align 8 dereferenceable(120) ptr @_ZN8cse_impl5StatspLERKS0_(ptr noundef nonnull align 8 dereferenceable(120), ptr noundef nonnull align 8 dereferenceable(120)) #8

declare noundef nonnull align 8 dereferenceable(40) ptr @_ZN21copy_propagation_impl5StatspLERKS0_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(40)) #8

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

declare noundef nonnull align 8 dereferenceable(80) ptr @_ZN17dedup_blocks_impl5StatspLERKS0_(ptr noundef nonnull align 8 dereferenceable(80), ptr noundef nonnull align 8 dereferenceable(80)) #8

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10lock_guardISt5mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1 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 = { 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 #3 = { 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 #4 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress 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 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #8 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { noreturn }
attributes #10 = { 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, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!14, !10, i64 2864}
!14 = !{!"_ZTSN8shrinker8ShrinkerE", !15, i64 0, !20, i64 24, !35, i64 2864, !36, i64 2920, !10, i64 2924, !37, i64 2928, !6, i64 2936, !43, i64 2944, !46, i64 3000, !49, i64 3056, !52, i64 3112, !66, i64 19808, !70, i64 19864, !71, i64 19928, !72, i64 19992, !74, i64 20032, !78, i64 20048, !74, i64 20120, !79, i64 20136, !74, i64 20256, !83, i64 20272, !74, i64 20312, !84, i64 20328, !74, i64 20400, !12, i64 20416, !74, i64 20424, !86, i64 20440, !74, i64 20520, !12, i64 20536, !12, i64 20544}
!15 = !{!"_ZTSN13random_forest6ForestIJRKN8shrinker8Shrinker13MethodContextEEEE", !16, i64 0}
!16 = !{!"_ZTSSt6vectorISt10unique_ptrIN13random_forest6ForestIJRKN8shrinker8Shrinker13MethodContextEEE16DecisionTreeNodeESt14default_deleteIS9_EESaISC_EE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN13random_forest6ForestIJRKN8shrinker8Shrinker13MethodContextEEE16DecisionTreeNodeESt14default_deleteIS9_EESaISC_EE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN13random_forest6ForestIJRKN8shrinker8Shrinker13MethodContextEEE16DecisionTreeNodeESt14default_deleteIS9_EESaISC_EE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN13random_forest6ForestIJRKN8shrinker8Shrinker13MethodContextEEE16DecisionTreeNodeESt14default_deleteIS9_EESaISC_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!20 = !{!"_ZTS10XStoreRefs", !21, i64 0, !23, i64 2664, !12, i64 2688, !27, i64 2696, !27, i64 2752, !33, i64 2808}
!21 = !{!"_ZTS23InsertOnlyConcurrentMapIPK7DexTypemSt4hashIS2_ESt8equal_toIS2_ELm83EE", !22, i64 0}
!22 = !{!"_ZTS19ConcurrentContainerISt13unordered_mapIPK7DexTypemSt4hashIS3_ESt8equal_toIS3_ESaISt4pairIKS3_mEEELm83EE", !7, i64 8}
!23 = !{!"_ZTSSt6vectorIPK8DexStoreSaIS2_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIPK8DexStoreSaIS2_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIPK8DexStoreSaIS2_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIPK8DexStoreSaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!"_ZTS12UnorderedMapIPK8DexStore12UnorderedSetIS2_St4hashIS2_ESt8equal_toIS2_EES5_S7_E", !28, i64 0}
!28 = !{!"_ZTSSt13unordered_mapIPK8DexStore12UnorderedSetIS2_St4hashIS2_ESt8equal_toIS2_EES5_S7_SaISt4pairIKS2_S8_EEE", !29, i64 0}
!29 = !{!"_ZTSSt10_HashtableIPK8DexStoreSt4pairIKS2_12UnorderedSetIS2_St4hashIS2_ESt8equal_toIS2_EEESaISB_ENSt8__detail10_Select1stES9_S7_NSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !12, i64 8, !30, i64 16, !12, i64 24, !31, i64 32, !6, i64 48}
!30 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!31 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !32, i64 0, !12, i64 8}
!32 = !{!"float", !7, i64 0}
!33 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !34, i64 0, !12, i64 8, !7, i64 16}
!34 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!35 = !{!"_ZTSN8shrinker14ShrinkerConfigE", !10, i64 0, !10, i64 1, !10, i64 2, !10, i64 3, !10, i64 4, !10, i64 5, !10, i64 6, !10, i64 7, !10, i64 8, !10, i64 9, !33, i64 16, !10, i64 48}
!36 = !{!"int", !7, i64 0}
!37 = !{!"_ZTSSt10unique_ptrIN8cse_impl11SharedStateESt14default_deleteIS1_EE", !38, i64 0}
!38 = !{!"_ZTSSt15__uniq_ptr_dataIN8cse_impl11SharedStateESt14default_deleteIS1_ELb1ELb1EE", !39, i64 0}
!39 = !{!"_ZTSSt15__uniq_ptr_implIN8cse_impl11SharedStateESt14default_deleteIS1_EE", !40, i64 0}
!40 = !{!"_ZTSSt5tupleIJPN8cse_impl11SharedStateESt14default_deleteIS1_EEE", !41, i64 0}
!41 = !{!"_ZTSSt11_Tuple_implILm0EJPN8cse_impl11SharedStateESt14default_deleteIS1_EEE", !42, i64 0}
!42 = !{!"_ZTSSt10_Head_baseILm0EPN8cse_impl11SharedStateELb0EE", !6, i64 0}
!43 = !{!"_ZTS12UnorderedSetIP12DexMethodRefSt4hashIS1_ESt8equal_toIS1_EE", !44, i64 0}
!44 = !{!"_ZTSSt13unordered_setIP12DexMethodRefSt4hashIS1_ESt8equal_toIS1_ESaIS1_EE", !45, i64 0}
!45 = !{!"_ZTSSt10_HashtableIP12DexMethodRefS1_SaIS1_ENSt8__detail9_IdentityESt8equal_toIS1_ESt4hashIS1_ENS3_18_Mod_range_hashingENS3_20_Default_ranged_hashENS3_20_Prime_rehash_policyENS3_17_Hashtable_traitsILb0ELb1ELb1EEEE", !6, i64 0, !12, i64 8, !30, i64 16, !12, i64 24, !31, i64 32, !6, i64 48}
!46 = !{!"_ZTS12UnorderedSetIPK9DexStringSt4hashIS2_ESt8equal_toIS2_EE", !47, i64 0}
!47 = !{!"_ZTSSt13unordered_setIPK9DexStringSt4hashIS2_ESt8equal_toIS2_ESaIS2_EE", !48, i64 0}
!48 = !{!"_ZTSSt10_HashtableIPK9DexStringS2_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, !12, i64 8, !30, i64 16, !12, i64 24, !31, i64 32, !6, i64 48}
!49 = !{!"_ZTS12UnorderedSetIPK8DexFieldSt4hashIS2_ESt8equal_toIS2_EE", !50, i64 0}
!50 = !{!"_ZTSSt13unordered_setIPK8DexFieldSt4hashIS2_ESt8equal_toIS2_ESaIS2_EE", !51, i64 0}
!51 = !{!"_ZTSSt10_HashtableIPK8DexFieldS2_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, !12, i64 8, !30, i64 16, !12, i64 24, !31, i64 32, !6, i64 48}
!52 = !{!"_ZTSN20constant_propagation31ImmutableAttributeAnalyzerStateE", !53, i64 0, !55, i64 5984, !57, i64 8648, !59, i64 11312, !62, i64 11368, !64, i64 14032}
!53 = !{!"_ZTS13ConcurrentMapIP9DexMethodSt6vectorISt10unique_ptrIN20constant_propagation31ImmutableAttributeAnalyzerState11InitializerESt14default_deleteIS6_EESaIS9_EESt4hashIS1_ESt8equal_toIS1_ELm83EE", !54, i64 0, !7, i64 2664}
!54 = !{!"_ZTS19ConcurrentContainerISt13unordered_mapIP9DexMethodSt6vectorISt10unique_ptrIN20constant_propagation31ImmutableAttributeAnalyzerState11InitializerESt14default_deleteIS7_EESaISA_EESt4hashIS2_ESt8equal_toIS2_ESaISt4pairIKS2_SC_EEELm83EE", !7, i64 8}
!55 = !{!"_ZTS13ConcurrentSetIP9DexMethodSt4hashIS1_ESt8equal_toIS1_ELm83EE", !56, i64 0}
!56 = !{!"_ZTS19ConcurrentContainerISt13unordered_setIP9DexMethodSt4hashIS2_ESt8equal_toIS2_ESaIS2_EELm83EE", !7, i64 8}
!57 = !{!"_ZTS13ConcurrentSetIP8DexFieldSt4hashIS1_ESt8equal_toIS1_ELm83EE", !58, i64 0}
!58 = !{!"_ZTS19ConcurrentContainerISt13unordered_setIP8DexFieldSt4hashIS2_ESt8equal_toIS2_ESaIS2_EELm83EE", !7, i64 8}
!59 = !{!"_ZTS12UnorderedMapIP9DexMethodN20constant_propagation31ImmutableAttributeAnalyzerState18CachedBoxedObjectsESt4hashIS1_ESt8equal_toIS1_EE", !60, i64 0}
!60 = !{!"_ZTSSt13unordered_mapIP9DexMethodN20constant_propagation31ImmutableAttributeAnalyzerState18CachedBoxedObjectsESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S4_EEE", !61, i64 0}
!61 = !{!"_ZTSSt10_HashtableIP9DexMethodSt4pairIKS1_N20constant_propagation31ImmutableAttributeAnalyzerState18CachedBoxedObjectsEESaIS7_ENSt8__detail10_Select1stESt8equal_toIS1_ESt4hashIS1_ENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !12, i64 8, !30, i64 16, !12, i64 24, !31, i64 32, !6, i64 48}
!62 = !{!"_ZTS13ConcurrentSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_ELm83EE", !63, i64 0}
!63 = !{!"_ZTS19ConcurrentContainerISt13unordered_setIP7DexTypeSt4hashIS2_ESt8equal_toIS2_ESaIS2_EELm83EE", !7, i64 8}
!64 = !{!"_ZTS23InsertOnlyConcurrentMapIP7DexTypebSt4hashIS1_ESt8equal_toIS1_ELm83EE", !65, i64 0}
!65 = !{!"_ZTS19ConcurrentContainerISt13unordered_mapIP7DexTypebSt4hashIS2_ESt8equal_toIS2_ESaISt4pairIKS2_bEEELm83EE", !7, i64 8}
!66 = !{!"_ZTSN20constant_propagation19StringAnalyzerStateE", !67, i64 0}
!67 = !{!"_ZTS12UnorderedSetIP9DexMethodSt4hashIS1_ESt8equal_toIS1_EE", !68, i64 0}
!68 = !{!"_ZTSSt13unordered_setIP9DexMethodSt4hashIS1_ESt8equal_toIS1_ESaIS1_EE", !69, i64 0}
!69 = !{!"_ZTSSt10_HashtableIP9DexMethodS1_SaIS1_ENSt8__detail9_IdentityESt8equal_toIS1_ESt4hashIS1_ENS3_18_Mod_range_hashingENS3_20_Default_ranged_hashENS3_20_Prime_rehash_policyENS3_17_Hashtable_traitsILb0ELb1ELb1EEEE", !6, i64 0, !12, i64 8, !30, i64 16, !12, i64 24, !31, i64 32, !6, i64 48}
!70 = !{!"_ZTSN20constant_propagation16PackageNameStateE", !43, i64 0, !6, i64 56}
!71 = !{!"_ZTSN20constant_propagation5StateE", !43, i64 0, !6, i64 56}
!72 = !{!"_ZTSSt5mutex", !73, i64 0}
!73 = !{!"_ZTSSt12__mutex_base", !7, i64 0}
!74 = !{!"_ZTS17AccumulatingTimer", !75, i64 0}
!75 = !{!"_ZTSSt10shared_ptrISt6atomicImEE", !76, i64 0}
!76 = !{!"_ZTSSt12__shared_ptrISt6atomicImELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !77, i64 8}
!77 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!78 = !{!"_ZTSN20constant_propagation9Transform5StatsE", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !12, i64 56, !12, i64 64}
!79 = !{!"_ZTSN8cse_impl5StatsE", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !80, i64 48, !12, i64 104, !12, i64 112}
!80 = !{!"_ZTS12UnorderedMapItmSt4hashItESt8equal_toItEE", !81, i64 0}
!81 = !{!"_ZTSSt13unordered_mapItmSt4hashItESt8equal_toItESaISt4pairIKtmEEE", !82, i64 0}
!82 = !{!"_ZTSSt10_HashtableItSt4pairIKtmESaIS2_ENSt8__detail10_Select1stESt8equal_toItESt4hashItENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !12, i64 8, !30, i64 16, !12, i64 24, !31, i64 32, !6, i64 48}
!83 = !{!"_ZTSN21copy_propagation_impl5StatsE", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32}
!84 = !{!"_ZTSN8LocalDce5StatsE", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !85, i64 48}
!85 = !{!"_ZTSN12init_classes5StatsE", !12, i64 0, !12, i64 8, !12, i64 16}
!86 = !{!"_ZTSN17dedup_blocks_impl5StatsE", !36, i64 0, !36, i64 4, !36, i64 8, !36, i64 12, !36, i64 16, !87, i64 24}
!87 = !{!"_ZTS12UnorderedMapImmSt4hashImESt8equal_toImEE", !88, i64 0}
!88 = !{!"_ZTSSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEE", !89, i64 0}
!89 = !{!"_ZTSSt10_HashtableImSt4pairIKmmESaIS2_ENSt8__detail10_Select1stESt8equal_toImESt4hashImENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !12, i64 8, !30, i64 16, !12, i64 24, !31, i64 32, !6, i64 48}
!90 = !{i8 0, i8 2}
!91 = !{}
!92 = !{!93, !6, i64 24}
!93 = !{!"_ZTSN20constant_propagation9Transform6ConfigE", !10, i64 0, !10, i64 1, !10, i64 2, !10, i64 3, !10, i64 4, !10, i64 5, !6, i64 8, !6, i64 16, !6, i64 24}
!94 = !{i64 0, i64 8, !11, i64 8, i64 8, !11, i64 16, i64 8, !11, i64 24, i64 8, !11, i64 32, i64 8, !11, i64 40, i64 8, !11, i64 48, i64 8, !11, i64 56, i64 8, !11, i64 64, i64 8, !11}
!95 = !{!14, !10, i64 2865}
!96 = !{!14, !10, i64 2866}
!97 = !{i64 0, i64 8, !11, i64 8, i64 8, !11, i64 16, i64 8, !11, i64 24, i64 8, !11, i64 32, i64 8, !11}
!98 = !{!14, !10, i64 2867}
!99 = !{!14, !10, i64 2872}
!100 = !{!14, !10, i64 2868}
!101 = !{!102, !10, i64 0}
!102 = !{!"_ZTSN8regalloc14graph_coloring9Allocator6ConfigE", !10, i64 0, !10, i64 1}
!103 = !{!102, !10, i64 1}
!104 = !{!14, !10, i64 2869}
!105 = !{!14, !10, i64 2870}
!106 = !{!14, !10, i64 2871}
!107 = !{!14, !12, i64 20536}
!108 = !{!14, !12, i64 20544}
!109 = !{!14, !12, i64 20416}


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

%"struct.constant_propagation::Transform::Stats" = type { i64, i64, i64, i64, i64, i64, i64, i64, i64 }
%"struct.LocalDce::Stats" = type { i64, i64, i64, i64, i64, i64, %"struct.init_classes::Stats" }
%"struct.init_classes::Stats" = type { i64, i64, i64 }
%"struct.copy_propagation_impl::Stats" = type { i64, i64, i64, i64, i64 }
%"class.std::unique_ptr.631" = type { %"struct.std::__uniq_ptr_data.632" }
%"struct.std::__uniq_ptr_data.632" = type { %"class.std::__uniq_ptr_impl.633" }
%"class.std::__uniq_ptr_impl.633" = type { %"class.std::tuple.634" }
%"class.std::tuple.634" = type { %"struct.std::_Tuple_impl.635" }
%"struct.std::_Tuple_impl.635" = type { %"struct.std::_Head_base.638" }
%"struct.std::_Head_base.638" = type { ptr }
%"struct.cse_impl::Stats" = type { i64, i64, i64, i64, i64, i64, %class.UnorderedMap.162, i64, i64 }
%class.UnorderedMap.162 = type { %"class.std::unordered_map.164" }
%"class.std::unordered_map.164" = type { %"class.std::_Hashtable.165" }
%"class.std::_Hashtable.165" = 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 }
%"struct.dedup_blocks_impl::Stats" = type { i32, i32, i32, i32, i32, %class.UnorderedMap.184 }
%class.UnorderedMap.184 = type { %"class.std::unordered_map.186" }
%"class.std::unordered_map.186" = type { %"class.std::_Hashtable.187" }
%"class.std::_Hashtable.187" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.AccumulatingTimer::AccumulatingTimerScope" = type { ptr, %"class.std::chrono::time_point" }
%"class.std::chrono::time_point" = type { %"class.std::chrono::duration" }
%"class.std::chrono::duration" = type { i64 }
%"struct.constant_propagation::Transform::Config" = type { i8, i8, i8, i8, i8, i8, ptr, ptr, ptr }
%class.ConstantEnvironment = type { %"class.sparta::ReducedProductAbstractDomain" }
%"class.sparta::ReducedProductAbstractDomain" = type { %"class.sparta::DirectProductAbstractDomain" }
%"class.sparta::DirectProductAbstractDomain" = type { %"class.std::tuple.344" }
%"class.std::tuple.344" = type { %"struct.std::_Tuple_impl.345" }
%"struct.std::_Tuple_impl.345" = type { %"struct.std::_Tuple_impl.346", %"struct.std::_Head_base.370" }
%"struct.std::_Tuple_impl.346" = type { %"struct.std::_Tuple_impl.347", %"struct.std::_Head_base.351" }
%"struct.std::_Tuple_impl.347" = type { %"struct.std::_Head_base.348" }
%"struct.std::_Head_base.348" = type { %"class.sparta::AbstractEnvironment" }
%"class.sparta::AbstractEnvironment" = type { %"class.sparta::AbstractDomainScaffolding" }
%"class.sparta::AbstractDomainScaffolding" = type { i32, %"class.sparta::environment_impl::MapValue" }
%"class.sparta::environment_impl::MapValue" = type { %"class.sparta::PatriciaTreeMap" }
%"class.sparta::PatriciaTreeMap" = type { %"class.sparta::pt_core::PatriciaTreeCore" }
%"class.sparta::pt_core::PatriciaTreeCore" = type { %"class.boost::intrusive_ptr" }
%"class.boost::intrusive_ptr" = type { ptr }
%"struct.std::_Head_base.351" = type { %"class.sparta::AbstractEnvironment.352" }
%"class.sparta::AbstractEnvironment.352" = type { %"class.sparta::AbstractDomainScaffolding.353" }
%"class.sparta::AbstractDomainScaffolding.353" = type { i32, %"class.sparta::environment_impl::MapValue.358" }
%"class.sparta::environment_impl::MapValue.358" = type { %"class.sparta::PatriciaTreeMap.361" }
%"class.sparta::PatriciaTreeMap.361" = type { %"class.sparta::pt_core::PatriciaTreeCore.366" }
%"class.sparta::pt_core::PatriciaTreeCore.366" = type { %"class.boost::intrusive_ptr.367" }
%"class.boost::intrusive_ptr.367" = type { ptr }
%"struct.std::_Head_base.370" = type { %"class.sparta::AbstractEnvironment.371" }
%"class.sparta::AbstractEnvironment.371" = type { %"class.sparta::AbstractDomainScaffolding.372" }
%"class.sparta::AbstractDomainScaffolding.372" = type { i32, %"class.sparta::environment_impl::MapValue.377" }
%"class.sparta::environment_impl::MapValue.377" = type { %"class.sparta::PatriciaTreeMap.380" }
%"class.sparta::PatriciaTreeMap.380" = type { %"class.sparta::pt_core::PatriciaTreeCore.385" }
%"class.sparta::pt_core::PatriciaTreeCore.385" = type { %"class.boost::intrusive_ptr.386" }
%"class.boost::intrusive_ptr.386" = type { ptr }
%"class.cse_impl::CommonSubexpressionElimination" = type { %class.UnorderedMap.639, %"class.std::vector.661", %"class.std::vector.549", %"class.std::vector.666", ptr, %"struct.cse_impl::Stats", i8, ptr, ptr, %"class.std::vector.493", ptr }
%class.UnorderedMap.639 = type { %"class.std::unordered_map.641" }
%"class.std::unordered_map.641" = type { %"class.std::_Hashtable.642" }
%"class.std::_Hashtable.642" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.661" = type { %"struct.std::_Vector_base.662" }
%"struct.std::_Vector_base.662" = type { %"struct.std::_Vector_base<cse_impl::CommonSubexpressionElimination::Forward, std::allocator<cse_impl::CommonSubexpressionElimination::Forward>>::_Vector_impl" }
%"struct.std::_Vector_base<cse_impl::CommonSubexpressionElimination::Forward, std::allocator<cse_impl::CommonSubexpressionElimination::Forward>>::_Vector_impl" = type { %"struct.std::_Vector_base<cse_impl::CommonSubexpressionElimination::Forward, std::allocator<cse_impl::CommonSubexpressionElimination::Forward>>::_Vector_impl_data" }
%"struct.std::_Vector_base<cse_impl::CommonSubexpressionElimination::Forward, std::allocator<cse_impl::CommonSubexpressionElimination::Forward>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.549" = type { %"struct.std::_Vector_base.550" }
%"struct.std::_Vector_base.550" = type { %"struct.std::_Vector_base<cfg::Edge *, std::allocator<cfg::Edge *>>::_Vector_impl" }
%"struct.std::_Vector_base<cfg::Edge *, std::allocator<cfg::Edge *>>::_Vector_impl" = type { %"struct.std::_Vector_base<cfg::Edge *, std::allocator<cfg::Edge *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<cfg::Edge *, std::allocator<cfg::Edge *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.666" = type { %"struct.std::_Vector_base.667" }
%"struct.std::_Vector_base.667" = type { %"struct.std::_Vector_base<sparta::PatriciaTreeSet<const IRInstruction *>, std::allocator<sparta::PatriciaTreeSet<const IRInstruction *>>>::_Vector_impl" }
%"struct.std::_Vector_base<sparta::PatriciaTreeSet<const IRInstruction *>, std::allocator<sparta::PatriciaTreeSet<const IRInstruction *>>>::_Vector_impl" = type { %"struct.std::_Vector_base<sparta::PatriciaTreeSet<const IRInstruction *>, std::allocator<sparta::PatriciaTreeSet<const IRInstruction *>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sparta::PatriciaTreeSet<const IRInstruction *>, std::allocator<sparta::PatriciaTreeSet<const IRInstruction *>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.493" = type { %"struct.std::_Vector_base.494" }
%"struct.std::_Vector_base.494" = type { %"struct.std::_Vector_base<IRInstruction *, std::allocator<IRInstruction *>>::_Vector_impl" }
%"struct.std::_Vector_base<IRInstruction *, std::allocator<IRInstruction *>>::_Vector_impl" = type { %"struct.std::_Vector_base<IRInstruction *, std::allocator<IRInstruction *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<IRInstruction *, std::allocator<IRInstruction *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::function.627" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon.671 = type { ptr }
%"class.std::tuple.672" = type { %"struct.std::_Tuple_impl.673" }
%"struct.std::_Tuple_impl.673" = type { %"struct.std::_Tuple_impl.674", %"struct.std::_Head_base.680" }
%"struct.std::_Tuple_impl.674" = type { %"struct.std::_Tuple_impl.675", %"struct.std::_Head_base.679" }
%"struct.std::_Tuple_impl.675" = type { %"struct.std::_Tuple_impl.676", %"struct.std::_Head_base.678" }
%"struct.std::_Tuple_impl.676" = type { %"struct.std::_Head_base.677" }
%"struct.std::_Head_base.677" = type { i64 }
%"struct.std::_Head_base.678" = type { i64 }
%"struct.std::_Head_base.679" = type { i64 }
%"struct.std::_Head_base.680" = type { i64 }
%"struct.regalloc::graph_coloring::Allocator::Config" = type { i8, i8 }
%"struct.regalloc::graph_coloring::Allocator::Stats" = type { i64, i64, i64, i64, i64, i64, i64 }
%"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.fastregalloc::LinearScanAllocator" = type <{ %"class.cfg::ScopedCFG", i8, [7 x i8], %"class.std::vector.681", %class.UnorderedMap.686, %class.UnorderedSet.702, %class.UnorderedMap.718, %"class.std::vector.738", %"class.std::optional", %"class.std::priority_queue", i32, [4 x i8] }>
%"class.cfg::ScopedCFG" = type <{ ptr, i8, [7 x i8] }>
%"class.std::vector.681" = type { %"struct.std::_Vector_base.682" }
%"struct.std::_Vector_base.682" = type { %"struct.std::_Vector_base<fastregalloc::VRegLiveInterval, std::allocator<fastregalloc::VRegLiveInterval>>::_Vector_impl" }
%"struct.std::_Vector_base<fastregalloc::VRegLiveInterval, std::allocator<fastregalloc::VRegLiveInterval>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastregalloc::VRegLiveInterval, std::allocator<fastregalloc::VRegLiveInterval>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastregalloc::VRegLiveInterval, std::allocator<fastregalloc::VRegLiveInterval>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.UnorderedMap.686 = type { %"class.std::unordered_map.688" }
%"class.std::unordered_map.688" = type { %"class.std::_Hashtable.689" }
%"class.std::_Hashtable.689" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%class.UnorderedSet.702 = type { %"class.std::unordered_set.704" }
%"class.std::unordered_set.704" = type { %"class.std::_Hashtable.705" }
%"class.std::_Hashtable.705" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%class.UnorderedMap.718 = type { %"class.std::unordered_map.720" }
%"class.std::unordered_map.720" = type { %"class.std::_Hashtable.721" }
%"class.std::_Hashtable.721" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.738" = type { %"struct.std::_Vector_base.739" }
%"struct.std::_Vector_base.739" = type { %"struct.std::_Vector_base<fastregalloc::LiveIntervalPoint, std::allocator<fastregalloc::LiveIntervalPoint>>::_Vector_impl" }
%"struct.std::_Vector_base<fastregalloc::LiveIntervalPoint, std::allocator<fastregalloc::LiveIntervalPoint>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastregalloc::LiveIntervalPoint, std::allocator<fastregalloc::LiveIntervalPoint>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastregalloc::LiveIntervalPoint, std::allocator<fastregalloc::LiveIntervalPoint>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::optional" = type { %"struct.std::_Optional_base" }
%"struct.std::_Optional_base" = type { %"struct.std::_Optional_payload" }
%"struct.std::_Optional_payload" = type { %"struct.std::_Optional_payload_base.base", [3 x i8] }
%"struct.std::_Optional_payload_base.base" = type <{ %"union.std::_Optional_payload_base<unsigned int>::_Storage", i8 }>
%"union.std::_Optional_payload_base<unsigned int>::_Storage" = type { i32 }
%"class.std::priority_queue" = type <{ %"class.std::vector.743", [8 x i8] }>
%"class.std::vector.743" = type { %"struct.std::_Vector_base.744" }
%"struct.std::_Vector_base.744" = type { %"struct.std::_Vector_base<fastregalloc::ActiveInterval, std::allocator<fastregalloc::ActiveInterval>>::_Vector_impl" }
%"struct.std::_Vector_base<fastregalloc::ActiveInterval, std::allocator<fastregalloc::ActiveInterval>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastregalloc::ActiveInterval, std::allocator<fastregalloc::ActiveInterval>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastregalloc::ActiveInterval, std::allocator<fastregalloc::ActiveInterval>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.dedup_blocks_impl::Config" = type <{ %class.UnorderedSet.146, i32, i8, i8, i8, i8, i32, [4 x i8] }>
%class.UnorderedSet.146 = type { %"class.std::unordered_set.148" }
%"class.std::unordered_set.148" = type { %"class.std::_Hashtable.149" }
%"class.std::_Hashtable.149" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.dedup_blocks_impl::DedupBlocks" = type { ptr, ptr, i8, ptr, ptr, %"struct.dedup_blocks_impl::Stats" }
%class.Lazy = type { %"class.std::function.748", %"class.std::unique_ptr.750" }
%"class.std::function.748" = type { %"class.std::_Function_base", ptr }
%"class.std::unique_ptr.750" = type { %"struct.std::__uniq_ptr_data.751" }
%"struct.std::__uniq_ptr_data.751" = type { %"class.std::__uniq_ptr_impl.752" }
%"class.std::__uniq_ptr_impl.752" = type { %"class.std::tuple.753" }
%"class.std::tuple.753" = type { %"struct.std::_Tuple_impl.754" }
%"struct.std::_Tuple_impl.754" = type { %"struct.std::_Head_base.757" }
%"struct.std::_Head_base.757" = type { ptr }
%class.anon.758 = type { ptr, ptr, ptr, ptr, ptr }
%"class.std::lock_guard" = type { ptr }

@.str.11 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [27 x i8], align 1
@__PRETTY_FUNCTION__._ZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE = external hidden unnamed_addr constant [121 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [50 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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN20constant_propagation9Transform5StatsC2Ev(ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #2 align 2

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

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

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

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

; Function Attrs: noreturn
declare void @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ...) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8shrinker8Shrinker20constant_propagationEbP7DexTypeP8DexProtoP6IRCodeRK19ConstantEnvironmentRKN20constant_propagation9Transform6ConfigE(ptr dead_on_unwind noalias writable sret(%"struct.constant_propagation::Transform::Stats") align 8, ptr noundef nonnull align 8 dereferenceable(20552), i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5 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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8shrinker8Shrinker9local_dceEP6IRCodebP7DexType(ptr dead_on_unwind noalias writable sret(%"struct.LocalDce::Stats") align 8, ptr noundef nonnull align 8 dereferenceable(20552), ptr noundef, i1 noundef zeroext, ptr noundef) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8shrinker8Shrinker16copy_propagationEP6IRCodebP7DexTypeS4_P11DexTypeListSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE(ptr dead_on_unwind noalias writable sret(%"struct.copy_propagation_impl::Stats") align 8, ptr noundef nonnull align 8 dereferenceable(20552), ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE(ptr noundef nonnull align 8 dereferenceable(20552) %0, ptr noundef nonnull %1, i1 noundef zeroext %2, i1 noundef zeroext %3, ptr noundef %4, ptr noundef %5, ptr noundef nonnull align 8 dereferenceable(32) %6) local_unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 {
  %8 = alloca ptr, align 8
  %9 = alloca i8, align 1
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca %"class.std::unique_ptr.631", align 8
  %13 = alloca %"struct.constant_propagation::Transform::Stats", align 8
  %14 = alloca %"struct.cse_impl::Stats", align 8
  %15 = alloca %"struct.copy_propagation_impl::Stats", align 8
  %16 = alloca %"struct.LocalDce::Stats", align 8
  %17 = alloca %"struct.dedup_blocks_impl::Stats", align 8
  %18 = alloca %"class.AccumulatingTimer::AccumulatingTimerScope", align 8
  %19 = alloca %"struct.constant_propagation::Transform::Config", align 8
  %20 = alloca %"struct.constant_propagation::Transform::Stats", align 8
  %21 = alloca %class.ConstantEnvironment, align 8
  %22 = alloca %"class.AccumulatingTimer::AccumulatingTimerScope", align 8
  %23 = alloca %"class.cse_impl::CommonSubexpressionElimination", align 8
  %24 = alloca %"class.AccumulatingTimer::AccumulatingTimerScope", align 8
  %25 = alloca %"struct.copy_propagation_impl::Stats", align 8
  %26 = alloca %"class.std::function.627", align 8
  %27 = alloca %"class.AccumulatingTimer::AccumulatingTimerScope", align 8
  %28 = alloca %"struct.LocalDce::Stats", align 8
  %29 = alloca %class.anon.671, align 8
  %30 = alloca %"class.std::tuple.672", align 8
  %31 = alloca %"class.AccumulatingTimer::AccumulatingTimerScope", align 8
  %32 = alloca %"class.std::tuple.672", align 8
  %33 = alloca %"struct.regalloc::graph_coloring::Allocator::Config", align 1
  %34 = alloca %"struct.regalloc::graph_coloring::Allocator::Stats", align 8
  %35 = alloca %"class.std::tuple.672", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.AccumulatingTimer::AccumulatingTimerScope", align 8
  %38 = alloca %"class.fastregalloc::LinearScanAllocator", align 8
  %39 = alloca %"class.AccumulatingTimer::AccumulatingTimerScope", align 8
  %40 = alloca %"struct.dedup_blocks_impl::Config", align 8
  %41 = alloca %"class.dedup_blocks_impl::DedupBlocks", align 8
  %42 = alloca %"class.AccumulatingTimer::AccumulatingTimerScope", align 8
  %43 = alloca %class.Lazy, align 8
  %44 = alloca %"class.std::function.748", align 8
  %45 = alloca %class.anon.758, align 8
  %46 = alloca %"class.std::tuple.672", align 8
  %47 = alloca %"class.std::lock_guard", align 8
  store ptr %1, ptr %8, align 8, !tbaa !5
  %48 = zext i1 %2 to i8
  store i8 %48, ptr %9, align 1, !tbaa !9
  store ptr %4, ptr %10, align 8, !tbaa !5
  store ptr %5, ptr %11, align 8, !tbaa !5
  %49 = tail call noundef zeroext i1 @_ZNK6IRCode18editable_cfg_builtEv(ptr noundef nonnull align 8 dereferenceable(32) %1)
  br i1 %49, label %51, label %50

50:                                               ; preds = %7
  tail call void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.11, i32 noundef 220, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE, i32 noundef 2, ptr noundef nonnull @.str.12) #9
  unreachable

51:                                               ; preds = %7
  %52 = tail call noundef nonnull align 8 dereferenceable(160) ptr @_ZN6IRCode3cfgEv(ptr noundef nonnull align 8 dereferenceable(32) %1)
  tail call void @_ZN3cfg16ControlFlowGraph24recompute_registers_sizeEv(ptr noundef nonnull align 8 dereferenceable(160) %52)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #10
  call void @_ZNSt10unique_ptrIN3cfg21LinearizationStrategyESt14default_deleteIS1_EEC2IS3_vEEDn(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr null) #10
  invoke void @_ZN6IRCode9clear_cfgERKSt10unique_ptrIN3cfg21LinearizationStrategyESt14default_deleteIS2_EEPSt6vectorIP13IRInstructionSaISA_EE(ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef null)
          to label %53 unwind label %68

53:                                               ; preds = %51
  call void @_ZNSt10unique_ptrIN3cfg21LinearizationStrategyESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #10
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %13) #10
  call void @_ZN20constant_propagation9Transform5StatsC2Ev(ptr noundef nonnull align 8 dereferenceable(72) %13) #10
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %14) #10
  call void @_ZN8cse_impl5StatsC2Ev(ptr noundef nonnull align 8 dereferenceable(120) %14)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %15) #10
  call void @_ZN21copy_propagation_impl5StatsC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %15) #10
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %16) #10
  call void @_ZN8LocalDce5StatsC2Ev(ptr noundef nonnull align 8 dereferenceable(72) %16) #10
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %17) #10
  invoke void @_ZN17dedup_blocks_impl5StatsC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %17)
          to label %54 unwind label %70

54:                                               ; preds = %53
  %55 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN6IRCode9build_cfgEbb(ptr noundef nonnull align 8 dereferenceable(32) %55, i1 noundef zeroext true, i1 noundef zeroext true)
          to label %56 unwind label %72

56:                                               ; preds = %54
  %57 = getelementptr inbounds i8, ptr %0, i64 2864
  %58 = load i8, ptr %57, align 8, !tbaa !11, !range !89, !noundef !90
  %59 = trunc nuw i8 %58 to i1
  br i1 %59, label %60, label %82

60:                                               ; preds = %56
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #10
  %61 = getelementptr inbounds i8, ptr %0, i64 20032
  invoke void @_ZN17AccumulatingTimer5scopeEv(ptr dead_on_unwind nonnull writable sret(%"class.AccumulatingTimer::AccumulatingTimerScope") align 8 %18, ptr noundef nonnull align 8 dereferenceable(16) %61)
          to label %62 unwind label %74

62:                                               ; preds = %60
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #10
  call void @_ZN20constant_propagation9Transform6ConfigC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19)
  %63 = getelementptr inbounds i8, ptr %0, i64 2944
  %64 = getelementptr inbounds i8, ptr %19, i64 24
  store ptr %63, ptr %64, align 8, !tbaa !91
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %20) #10
  %65 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %21) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %21, i8 0, i64 48, i1 false)
  invoke void @_ZN19ConstantEnvironmentC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %21)
          to label %66 unwind label %76

66:                                               ; preds = %62
  invoke void @_ZN8shrinker8Shrinker20constant_propagationEbP7DexTypeP8DexProtoP6IRCodeRK19ConstantEnvironmentRKN20constant_propagation9Transform6ConfigE(ptr dead_on_unwind nonnull writable sret(%"struct.constant_propagation::Transform::Stats") align 8 %20, ptr noundef nonnull align 8 dereferenceable(20552) %0, i1 noundef zeroext %2, ptr noundef %4, ptr noundef %5, ptr noundef %65, ptr noundef nonnull align 8 dereferenceable(48) %21, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %67 unwind label %78

67:                                               ; preds = %66
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %13, ptr noundef nonnull align 8 dereferenceable(72) %20, i64 72, i1 false), !tbaa.struct !93
  call void @_ZN6sparta28ReducedProductAbstractDomainI19ConstantEnvironmentJNS_19AbstractEnvironmentINS_15PatriciaTreeMapIj37DisjointUnionWithSignedConstantDomainI17is_object_visitorJNS_22ConstantAbstractDomainIPK8DexFieldEENS_17SetAbstractDomainINS_7HashSetIlSt4hashIlESt8equal_toIlEEEEENSB_INS_15PatriciaTreeSetIPK9DexStringEEEENS6_ISM_EENS6_IPK7DexTypeEENS6_IiEE25ObjectWithImmutAttrDomain15NewObjectDomainNS6_IPK13IRInstructionEEEENS_17TopValueInterfaceIS11_EEEEEENS2_INS3_IS9_S11_S13_EEEENS2_INS3_ISZ_NS_27DisjointUnionAbstractDomainI19ConstantArrayDomainIS11_25ConstantValueDefaultValueEJ12ObjectDomainIS11_EEEENS12_IS1E_EEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %21) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %21) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %20) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #10
  br label %82

68:                                               ; preds = %51
  %69 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt10unique_ptrIN3cfg21LinearizationStrategyESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #10
  br label %336

70:                                               ; preds = %53
  %71 = landingpad { ptr, i32 }
          cleanup
  br label %335

72:                                               ; preds = %54
  %73 = landingpad { ptr, i32 }
          cleanup
  br label %334

74:                                               ; preds = %60
  %75 = landingpad { ptr, i32 }
          cleanup
  br label %81

76:                                               ; preds = %62
  %77 = landingpad { ptr, i32 }
          cleanup
  br label %80

78:                                               ; preds = %66
  %79 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6sparta28ReducedProductAbstractDomainI19ConstantEnvironmentJNS_19AbstractEnvironmentINS_15PatriciaTreeMapIj37DisjointUnionWithSignedConstantDomainI17is_object_visitorJNS_22ConstantAbstractDomainIPK8DexFieldEENS_17SetAbstractDomainINS_7HashSetIlSt4hashIlESt8equal_toIlEEEEENSB_INS_15PatriciaTreeSetIPK9DexStringEEEENS6_ISM_EENS6_IPK7DexTypeEENS6_IiEE25ObjectWithImmutAttrDomain15NewObjectDomainNS6_IPK13IRInstructionEEEENS_17TopValueInterfaceIS11_EEEEEENS2_INS3_IS9_S11_S13_EEEENS2_INS3_ISZ_NS_27DisjointUnionAbstractDomainI19ConstantArrayDomainIS11_25ConstantValueDefaultValueEJ12ObjectDomainIS11_EEEENS12_IS1E_EEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %21) #10
  br label %80

80:                                               ; preds = %78, %76
  %.pn = phi { ptr, i32 } [ %79, %78 ], [ %77, %76 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %21) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %20) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #10
  br label %81

81:                                               ; preds = %80, %74
  %.pn.pn = phi { ptr, i32 } [ %.pn, %80 ], [ %75, %74 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #10
  br label %334

82:                                               ; preds = %67, %56
  %83 = getelementptr inbounds i8, ptr %0, i64 2865
  %84 = load i8, ptr %83, align 1, !tbaa !95, !range !89, !noundef !90
  %85 = trunc nuw i8 %84 to i1
  br i1 %85, label %86, label %108

86:                                               ; preds = %82
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %22) #10
  %87 = getelementptr inbounds i8, ptr %0, i64 20120
  invoke void @_ZN17AccumulatingTimer5scopeEv(ptr dead_on_unwind nonnull writable sret(%"class.AccumulatingTimer::AccumulatingTimerScope") align 8 %22, ptr noundef nonnull align 8 dereferenceable(16) %87)
          to label %88 unwind label %100

88:                                               ; preds = %86
  call void @llvm.lifetime.start.p0(i64 312, ptr nonnull %23) #10
  %89 = getelementptr inbounds i8, ptr %0, i64 2928
  %90 = call noundef ptr @_ZNKSt10unique_ptrIN8cse_impl11SharedStateESt14default_deleteIS1_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %89) #10
  %91 = load ptr, ptr %8, align 8, !tbaa !5
  %92 = call noundef nonnull align 8 dereferenceable(160) ptr @_ZN6IRCode3cfgEv(ptr noundef nonnull align 8 dereferenceable(32) %91)
  %93 = call noundef ptr @_ZNK8DexProto8get_argsEv(ptr noundef nonnull align 8 dereferenceable(24) %5)
  invoke void @_ZN8cse_impl30CommonSubexpressionEliminationC1EPNS_11SharedStateERN3cfg16ControlFlowGraphEbbP7DexTypeP11DexTypeList(ptr noundef nonnull align 8 dereferenceable(312) %23, ptr noundef %90, ptr noundef nonnull align 8 dereferenceable(160) %92, i1 noundef zeroext %2, i1 noundef zeroext %3, ptr noundef %4, ptr noundef %93)
          to label %94 unwind label %102

94:                                               ; preds = %88
  %95 = invoke noundef zeroext i1 @_ZN8cse_impl30CommonSubexpressionElimination5patchEb(ptr noundef nonnull align 8 dereferenceable(312) %23, i1 noundef zeroext false)
          to label %96 unwind label %104

96:                                               ; preds = %94
  %97 = call noundef nonnull align 8 dereferenceable(120) ptr @_ZNK8cse_impl30CommonSubexpressionElimination9get_statsEv(ptr noundef nonnull align 8 dereferenceable(312) %23)
  %98 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN8cse_impl5StatsaSERKS0_(ptr noundef nonnull align 8 dereferenceable(120) %14, ptr noundef nonnull align 8 dereferenceable(120) %97)
          to label %99 unwind label %104

99:                                               ; preds = %96
  call void @_ZN8cse_impl30CommonSubexpressionEliminationD2Ev(ptr noundef nonnull align 8 dereferenceable(312) %23) #10
  call void @llvm.lifetime.end.p0(i64 312, ptr nonnull %23) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #10
  br label %108

100:                                              ; preds = %86
  %101 = landingpad { ptr, i32 }
          cleanup
  br label %107

102:                                              ; preds = %88
  %103 = landingpad { ptr, i32 }
          cleanup
  br label %106

104:                                              ; preds = %96, %94
  %105 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8cse_impl30CommonSubexpressionEliminationD2Ev(ptr noundef nonnull align 8 dereferenceable(312) %23) #10
  br label %106

106:                                              ; preds = %104, %102
  %.pn43 = phi { ptr, i32 } [ %105, %104 ], [ %103, %102 ]
  call void @llvm.lifetime.end.p0(i64 312, ptr nonnull %23) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #10
  br label %107

107:                                              ; preds = %106, %100
  %.pn43.pn = phi { ptr, i32 } [ %.pn43, %106 ], [ %101, %100 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #10
  br label %334

108:                                              ; preds = %99, %82
  %109 = getelementptr inbounds i8, ptr %0, i64 2866
  %110 = load i8, ptr %109, align 2, !tbaa !96, !range !89, !noundef !90
  %111 = trunc nuw i8 %110 to i1
  br i1 %111, label %112, label %128

112:                                              ; preds = %108
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #10
  %113 = getelementptr inbounds i8, ptr %0, i64 20256
  invoke void @_ZN17AccumulatingTimer5scopeEv(ptr dead_on_unwind nonnull writable sret(%"class.AccumulatingTimer::AccumulatingTimerScope") align 8 %24, ptr noundef nonnull align 8 dereferenceable(16) %113)
          to label %114 unwind label %120

114:                                              ; preds = %112
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %25) #10
  %115 = load ptr, ptr %8, align 8, !tbaa !5
  %116 = call noundef ptr @_ZNK8DexProto9get_rtypeEv(ptr noundef nonnull align 8 dereferenceable(24) %5)
  %117 = call noundef ptr @_ZNK8DexProto8get_argsEv(ptr noundef nonnull align 8 dereferenceable(24) %5)
  invoke void @_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %118 unwind label %122

118:                                              ; preds = %114
  invoke void @_ZN8shrinker8Shrinker16copy_propagationEP6IRCodebP7DexTypeS4_P11DexTypeListSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE(ptr dead_on_unwind nonnull writable sret(%"struct.copy_propagation_impl::Stats") align 8 %25, ptr noundef nonnull align 8 dereferenceable(20552) %0, ptr noundef %115, i1 noundef zeroext %2, ptr noundef %4, ptr noundef %116, ptr noundef %117, ptr noundef nonnull %26)
          to label %119 unwind label %124

119:                                              ; preds = %118
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %15, ptr noundef nonnull align 8 dereferenceable(40) %25, i64 40, i1 false), !tbaa.struct !97
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %25) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #10
  br label %128

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

122:                                              ; preds = %114
  %123 = landingpad { ptr, i32 }
          cleanup
  br label %126

124:                                              ; preds = %118
  %125 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #10
  br label %126

126:                                              ; preds = %124, %122
  %.pn46 = phi { ptr, i32 } [ %125, %124 ], [ %123, %122 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %25) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #10
  br label %127

127:                                              ; preds = %126, %120
  %.pn46.pn = phi { ptr, i32 } [ %.pn46, %126 ], [ %121, %120 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #10
  br label %334

128:                                              ; preds = %119, %108
  %129 = getelementptr inbounds i8, ptr %0, i64 2867
  %130 = load i8, ptr %129, align 1, !tbaa !98, !range !89, !noundef !90
  %131 = trunc nuw i8 %130 to i1
  br i1 %131, label %132, label %145

132:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #10
  %133 = getelementptr inbounds i8, ptr %0, i64 20312
  invoke void @_ZN17AccumulatingTimer5scopeEv(ptr dead_on_unwind nonnull writable sret(%"class.AccumulatingTimer::AccumulatingTimerScope") align 8 %27, ptr noundef nonnull align 8 dereferenceable(16) %133)
          to label %134 unwind label %140

134:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %28) #10
  %135 = load ptr, ptr %8, align 8, !tbaa !5
  %136 = getelementptr inbounds i8, ptr %0, i64 2872
  %137 = load i8, ptr %136, align 8, !tbaa !99, !range !89, !noundef !90
  %138 = trunc nuw i8 %137 to i1
  invoke void @_ZN8shrinker8Shrinker9local_dceEP6IRCodebP7DexType(ptr dead_on_unwind nonnull writable sret(%"struct.LocalDce::Stats") align 8 %28, ptr noundef nonnull align 8 dereferenceable(20552) %0, ptr noundef %135, i1 noundef zeroext %138, ptr noundef %4)
          to label %139 unwind label %142

139:                                              ; preds = %134
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %16, ptr noundef nonnull align 8 dereferenceable(72) %28, i64 72, i1 false), !tbaa.struct !93
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %28) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #10
  br label %145

140:                                              ; preds = %132
  %141 = landingpad { ptr, i32 }
          cleanup
  br label %144

142:                                              ; preds = %134
  %143 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %28) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #10
  br label %144

144:                                              ; preds = %142, %140
  %.pn49 = phi { ptr, i32 } [ %143, %142 ], [ %141, %140 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #10
  br label %334

145:                                              ; preds = %139, %128
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #10
  store ptr %8, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #10
  invoke void @"_ZZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEENK3$_1clEm"(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple.672") align 8 %30, ptr noundef nonnull align 8 dereferenceable(8) %29, i64 noundef 10)
          to label %146 unwind label %183

146:                                              ; preds = %145
  %147 = getelementptr inbounds i8, ptr %0, i64 2868
  %148 = load i8, ptr %147, align 4, !tbaa !100, !range !89, !noundef !90
  %149 = trunc nuw i8 %148 to i1
  br i1 %149, label %150, label %205

150:                                              ; preds = %146
  %151 = load ptr, ptr %8, align 8, !tbaa !5
  %152 = invoke noundef zeroext i1 @_ZN8shrinker12_GLOBAL__N_113should_shrinkEP6IRCodeRKN13random_forest6ForestIJRKNS_8Shrinker13MethodContextEEEE(ptr noundef %151, ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %153 unwind label %185

153:                                              ; preds = %150
  br i1 %152, label %157, label %154

154:                                              ; preds = %153
  %155 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 77, i32 noundef 10)
          to label %156 unwind label %185

156:                                              ; preds = %154
  br i1 %155, label %157, label %205

157:                                              ; preds = %156, %153
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #10
  %158 = getelementptr inbounds i8, ptr %0, i64 20520
  invoke void @_ZN17AccumulatingTimer5scopeEv(ptr dead_on_unwind nonnull writable sret(%"class.AccumulatingTimer::AccumulatingTimerScope") align 8 %31, ptr noundef nonnull align 8 dereferenceable(16) %158)
          to label %159 unwind label %187

159:                                              ; preds = %157
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #10
  invoke void @"_ZZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEENK3$_1clEm"(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple.672") align 8 %32, ptr noundef nonnull align 8 dereferenceable(8) %29, i64 noundef 4)
          to label %160 unwind label %189

160:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %33) #10
  %161 = getelementptr inbounds i8, ptr %33, i64 1
  store i8 0, ptr %161, align 1, !tbaa !101
  store i8 1, ptr %33, align 1, !tbaa !103
  %162 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %34) #10
  invoke void @_ZN8regalloc14graph_coloring8allocateERKNS0_9Allocator6ConfigEP6IRCodebRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE(ptr dead_on_unwind nonnull writable sret(%"struct.regalloc::graph_coloring::Allocator::Stats") align 8 %34, ptr noundef nonnull align 1 dereferenceable(2) %33, ptr noundef %162, i1 noundef zeroext %2, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %163 unwind label %191

163:                                              ; preds = %160
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %34) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #10
  invoke void @"_ZZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEENK3$_1clEm"(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple.672") align 8 %35, ptr noundef nonnull align 8 dereferenceable(8) %29, i64 noundef 4)
          to label %164 unwind label %193

164:                                              ; preds = %163
  %165 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 77, i32 noundef 4)
          to label %166 unwind label %193

166:                                              ; preds = %164
  br i1 %165, label %167, label %200

167:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #10
  invoke void @_ZNKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEclEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %168 unwind label %195

168:                                              ; preds = %167
  %169 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  %170 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %32) #10
  %171 = load i64, ptr %170, align 8, !tbaa !94
  %172 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %32) #10
  %173 = load i64, ptr %172, align 8, !tbaa !94
  %174 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm2EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %32) #10
  %175 = load i64, ptr %174, align 8, !tbaa !94
  %176 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %35) #10
  %177 = load i64, ptr %176, align 8, !tbaa !94
  %178 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %35) #10
  %179 = load i64, ptr %178, align 8, !tbaa !94
  %180 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm2EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %35) #10
  %181 = load i64, ptr %180, align 8, !tbaa !94
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 77, i32 noundef 4, i1 noundef zeroext false, ptr noundef nonnull @.str.14, ptr noundef %169, i64 noundef %171, i64 noundef %173, i64 noundef %175, i64 noundef %177, i64 noundef %179, i64 noundef %181)
          to label %182 unwind label %197

182:                                              ; preds = %168
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #10
  br label %200

183:                                              ; preds = %145
  %184 = landingpad { ptr, i32 }
          cleanup
  br label %333

185:                                              ; preds = %154, %150
  %186 = landingpad { ptr, i32 }
          cleanup
  br label %333

187:                                              ; preds = %157
  %188 = landingpad { ptr, i32 }
          cleanup
  br label %204

189:                                              ; preds = %159
  %190 = landingpad { ptr, i32 }
          cleanup
  br label %203

191:                                              ; preds = %160
  %192 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %34) #10
  br label %202

193:                                              ; preds = %164, %163
  %194 = landingpad { ptr, i32 }
          cleanup
  br label %201

195:                                              ; preds = %167
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %199

197:                                              ; preds = %168
  %198 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  br label %199

199:                                              ; preds = %197, %195
  %.pn51 = phi { ptr, i32 } [ %198, %197 ], [ %196, %195 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #10
  br label %201

200:                                              ; preds = %182, %166
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #10
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %33) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #10
  br label %205

201:                                              ; preds = %199, %193
  %.pn51.pn = phi { ptr, i32 } [ %.pn51, %199 ], [ %194, %193 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #10
  br label %202

202:                                              ; preds = %201, %191
  %.pn51.pn.pn = phi { ptr, i32 } [ %.pn51.pn, %201 ], [ %192, %191 ]
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %33) #10
  br label %203

203:                                              ; preds = %202, %189
  %.pn51.pn.pn.pn = phi { ptr, i32 } [ %.pn51.pn.pn, %202 ], [ %190, %189 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #10
  br label %204

204:                                              ; preds = %203, %187
  %.pn51.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn51.pn.pn.pn, %203 ], [ %188, %187 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #10
  br label %333

205:                                              ; preds = %156, %200, %146
  %.012 = phi i64 [ 1, %200 ], [ 0, %156 ], [ 0, %146 ]
  %206 = getelementptr inbounds i8, ptr %0, i64 2869
  %207 = load i8, ptr %206, align 1, !tbaa !104, !range !89, !noundef !90
  %208 = trunc nuw i8 %207 to i1
  br i1 %208, label %209, label %223

209:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #10
  %210 = getelementptr inbounds i8, ptr %0, i64 20520
  invoke void @_ZN17AccumulatingTimer5scopeEv(ptr dead_on_unwind nonnull writable sret(%"class.AccumulatingTimer::AccumulatingTimerScope") align 8 %37, ptr noundef nonnull align 8 dereferenceable(16) %210)
          to label %211 unwind label %215

211:                                              ; preds = %209
  call void @llvm.lifetime.start.p0(i64 288, ptr nonnull %38) #10
  %212 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN12fastregalloc19LinearScanAllocatorC1EP6IRCodebRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE(ptr noundef nonnull align 8 dereferenceable(288) %38, ptr noundef %212, i1 noundef zeroext %2, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %213 unwind label %217

213:                                              ; preds = %211
  invoke void @_ZN12fastregalloc19LinearScanAllocator8allocateEv(ptr noundef nonnull align 8 dereferenceable(288) %38)
          to label %214 unwind label %219

214:                                              ; preds = %213
  call void @_ZN12fastregalloc19LinearScanAllocatorD2Ev(ptr noundef nonnull align 8 dereferenceable(288) %38) #10
  call void @llvm.lifetime.end.p0(i64 288, ptr nonnull %38) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #10
  br label %223

215:                                              ; preds = %209
  %216 = landingpad { ptr, i32 }
          cleanup
  br label %222

217:                                              ; preds = %211
  %218 = landingpad { ptr, i32 }
          cleanup
  br label %221

219:                                              ; preds = %213
  %220 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN12fastregalloc19LinearScanAllocatorD2Ev(ptr noundef nonnull align 8 dereferenceable(288) %38) #10
  br label %221

221:                                              ; preds = %219, %217
  %.pn57 = phi { ptr, i32 } [ %220, %219 ], [ %218, %217 ]
  call void @llvm.lifetime.end.p0(i64 288, ptr nonnull %38) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #10
  br label %222

222:                                              ; preds = %221, %215
  %.pn57.pn = phi { ptr, i32 } [ %.pn57, %221 ], [ %216, %215 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #10
  br label %333

223:                                              ; preds = %214, %205
  %224 = getelementptr inbounds i8, ptr %0, i64 2870
  %225 = load i8, ptr %224, align 2, !tbaa !105, !range !89, !noundef !90
  %226 = trunc nuw i8 %225 to i1
  br i1 %226, label %227, label %249

227:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #10
  %228 = getelementptr inbounds i8, ptr %0, i64 20424
  invoke void @_ZN17AccumulatingTimer5scopeEv(ptr dead_on_unwind nonnull writable sret(%"class.AccumulatingTimer::AccumulatingTimerScope") align 8 %39, ptr noundef nonnull align 8 dereferenceable(16) %228)
          to label %229 unwind label %238

229:                                              ; preds = %227
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %40) #10
  invoke void @_ZN17dedup_blocks_impl6ConfigC2Ev(ptr noundef nonnull align 8 dereferenceable(68) %40)
          to label %230 unwind label %240

230:                                              ; preds = %229
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %41) #10
  %231 = load ptr, ptr %8, align 8, !tbaa !5
  %232 = call noundef ptr @_ZNK8DexProto8get_argsEv(ptr noundef nonnull align 8 dereferenceable(24) %5)
  invoke void @_ZN17dedup_blocks_impl11DedupBlocksC1EPKNS_6ConfigEP6IRCodebP7DexTypeP11DexTypeList(ptr noundef nonnull align 8 dereferenceable(120) %41, ptr noundef nonnull %40, ptr noundef %231, i1 noundef zeroext %2, ptr noundef %4, ptr noundef %232)
          to label %233 unwind label %242

233:                                              ; preds = %230
  invoke void @_ZN17dedup_blocks_impl11DedupBlocks3runEv(ptr noundef nonnull align 8 dereferenceable(120) %41)
          to label %234 unwind label %244

234:                                              ; preds = %233
  %235 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK17dedup_blocks_impl11DedupBlocks9get_statsEv(ptr noundef nonnull align 8 dereferenceable(120) %41)
  %236 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZN17dedup_blocks_impl5StatsaSERKS0_(ptr noundef nonnull align 8 dereferenceable(80) %17, ptr noundef nonnull align 8 dereferenceable(80) %235)
          to label %237 unwind label %244

237:                                              ; preds = %234
  call void @_ZN17dedup_blocks_impl11DedupBlocksD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %41) #10
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %41) #10
  call void @_ZN17dedup_blocks_impl6ConfigD2Ev(ptr noundef nonnull align 8 dereferenceable(68) %40) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %40) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #10
  br label %249

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

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

242:                                              ; preds = %230
  %243 = landingpad { ptr, i32 }
          cleanup
  br label %246

244:                                              ; preds = %234, %233
  %245 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN17dedup_blocks_impl11DedupBlocksD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %41) #10
  br label %246

246:                                              ; preds = %244, %242
  %.pn60 = phi { ptr, i32 } [ %245, %244 ], [ %243, %242 ]
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %41) #10
  call void @_ZN17dedup_blocks_impl6ConfigD2Ev(ptr noundef nonnull align 8 dereferenceable(68) %40) #10
  br label %247

247:                                              ; preds = %246, %240
  %.pn60.pn = phi { ptr, i32 } [ %.pn60, %246 ], [ %241, %240 ]
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %40) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #10
  br label %248

248:                                              ; preds = %247, %238
  %.pn60.pn.pn = phi { ptr, i32 } [ %.pn60.pn, %247 ], [ %239, %238 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #10
  br label %333

249:                                              ; preds = %237, %223
  %250 = getelementptr inbounds i8, ptr %0, i64 2871
  %251 = load i8, ptr %250, align 1, !tbaa !106, !range !89, !noundef !90
  %252 = trunc nuw i8 %251 to i1
  br i1 %252, label %253, label %277

253:                                              ; preds = %249
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %42) #10
  %254 = getelementptr inbounds i8, ptr %0, i64 20400
  invoke void @_ZN17AccumulatingTimer5scopeEv(ptr dead_on_unwind nonnull writable sret(%"class.AccumulatingTimer::AccumulatingTimerScope") align 8 %42, ptr noundef nonnull align 8 dereferenceable(16) %254)
          to label %255 unwind label %266

255:                                              ; preds = %253
  %256 = load ptr, ptr %8, align 8, !tbaa !5
  %257 = call noundef nonnull align 8 dereferenceable(160) ptr @_ZN6IRCode3cfgEv(ptr noundef nonnull align 8 dereferenceable(32) %256)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %43) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %45) #10
  store ptr %257, ptr %45, align 8, !tbaa !5
  %258 = getelementptr inbounds i8, ptr %45, i64 8
  store ptr %9, ptr %258, align 8, !tbaa !5
  %259 = getelementptr inbounds i8, ptr %45, i64 16
  store ptr %10, ptr %259, align 8, !tbaa !5
  %260 = getelementptr inbounds i8, ptr %45, i64 24
  store ptr %11, ptr %260, align 8, !tbaa !5
  %261 = getelementptr inbounds i8, ptr %45, i64 32
  store ptr %6, ptr %261, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFSt10unique_ptrIKN13constant_uses12ConstantUsesESt14default_deleteIS3_EEvEEC2IZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKS_IFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(40) %45)
          to label %262 unwind label %268

262:                                              ; preds = %255
  invoke void @_ZN4LazyIKN13constant_uses12ConstantUsesEEC2ERKSt8functionIFSt10unique_ptrIS2_St14default_deleteIS2_EEvEE(ptr noundef nonnull align 8 dereferenceable(40) %43, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %263 unwind label %270

263:                                              ; preds = %262
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %45) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #10
  %264 = invoke noundef i64 @_ZN27branch_prefix_hoisting_impl11process_cfgERN3cfg16ControlFlowGraphER4LazyIKN13constant_uses12ConstantUsesEEb(ptr noundef nonnull align 8 dereferenceable(160) %257, ptr noundef nonnull align 8 dereferenceable(40) %43, i1 noundef zeroext true)
          to label %265 unwind label %273

265:                                              ; preds = %263
  call void @_ZN4LazyIKN13constant_uses12ConstantUsesEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %43) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %43) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #10
  br label %277

266:                                              ; preds = %253
  %267 = landingpad { ptr, i32 }
          cleanup
  br label %276

268:                                              ; preds = %255
  %269 = landingpad { ptr, i32 }
          cleanup
  br label %272

270:                                              ; preds = %262
  %271 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  br label %272

272:                                              ; preds = %270, %268
  %.pn64 = phi { ptr, i32 } [ %271, %270 ], [ %269, %268 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %45) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #10
  br label %275

273:                                              ; preds = %263
  %274 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4LazyIKN13constant_uses12ConstantUsesEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %43) #10
  br label %275

275:                                              ; preds = %273, %272
  %.pn66 = phi { ptr, i32 } [ %274, %273 ], [ %.pn64, %272 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %43) #10
  call void @_ZN17AccumulatingTimer22AccumulatingTimerScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #10
  br label %276

276:                                              ; preds = %275, %266
  %.pn66.pn = phi { ptr, i32 } [ %.pn66, %275 ], [ %267, %266 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #10
  br label %333

277:                                              ; preds = %265, %249
  %.040 = phi i64 [ %264, %265 ], [ 0, %249 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #10
  invoke void @"_ZZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEENK3$_1clEm"(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple.672") align 8 %46, ptr noundef nonnull align 8 dereferenceable(8) %29, i64 noundef 10)
          to label %278 unwind label %301

278:                                              ; preds = %277
  %279 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 77, i32 noundef 10)
          to label %280 unwind label %301

280:                                              ; preds = %278
  br i1 %279, label %281, label %303

281:                                              ; preds = %280
  %282 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 77, i32 noundef 10)
          to label %283 unwind label %301

283:                                              ; preds = %281
  br i1 %282, label %284, label %303

284:                                              ; preds = %283
  %285 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %30) #10
  %286 = load i64, ptr %285, align 8, !tbaa !94
  %287 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %30) #10
  %288 = load i64, ptr %287, align 8, !tbaa !94
  %289 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm2EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %30) #10
  %290 = load i64, ptr %289, align 8, !tbaa !94
  %291 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm3EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %30) #10
  %292 = load i64, ptr %291, align 8, !tbaa !94
  %293 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %46) #10
  %294 = load i64, ptr %293, align 8, !tbaa !94
  %295 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %46) #10
  %296 = load i64, ptr %295, align 8, !tbaa !94
  %297 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm2EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %46) #10
  %298 = load i64, ptr %297, align 8, !tbaa !94
  %299 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm3EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32) %46) #10
  %300 = load i64, ptr %299, align 8, !tbaa !94
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 77, i32 noundef 10, i1 noundef zeroext false, ptr noundef nonnull @.str.15, i64 noundef %286, i64 noundef %288, i64 noundef %290, i64 noundef %292, i64 noundef %294, i64 noundef %296, i64 noundef %298, i64 noundef %300)
          to label %303 unwind label %301

301:                                              ; preds = %284, %281, %278, %277
  %302 = landingpad { ptr, i32 }
          cleanup
  br label %332

303:                                              ; preds = %283, %284, %280
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #10
  %304 = getelementptr inbounds i8, ptr %0, i64 19992
  invoke void @_ZNSt10lock_guardISt5mutexEC2ERS0_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(40) %304)
          to label %305 unwind label %327

305:                                              ; preds = %303
  %306 = getelementptr inbounds i8, ptr %0, i64 20048
  %307 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZN20constant_propagation9Transform5StatspLERKS1_(ptr noundef nonnull align 8 dereferenceable(72) %306, ptr noundef nonnull align 8 dereferenceable(72) %13)
  %308 = getelementptr inbounds i8, ptr %0, i64 20136
  %309 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN8cse_impl5StatspLERKS0_(ptr noundef nonnull align 8 dereferenceable(120) %308, ptr noundef nonnull align 8 dereferenceable(120) %14)
          to label %310 unwind label %329

310:                                              ; preds = %305
  %311 = getelementptr inbounds i8, ptr %0, i64 20272
  %312 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN21copy_propagation_impl5StatspLERKS0_(ptr noundef nonnull align 8 dereferenceable(40) %311, ptr noundef nonnull align 8 dereferenceable(40) %15)
          to label %313 unwind label %329

313:                                              ; preds = %310
  %314 = getelementptr inbounds i8, ptr %0, i64 20328
  %315 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN8LocalDce5StatspLERKS0_(ptr noundef nonnull align 8 dereferenceable(72) %314, ptr noundef nonnull align 8 dereferenceable(72) %16)
          to label %316 unwind label %329

316:                                              ; preds = %313
  %317 = getelementptr inbounds i8, ptr %0, i64 20440
  %318 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZN17dedup_blocks_impl5StatspLERKS0_(ptr noundef nonnull align 8 dereferenceable(80) %317, ptr noundef nonnull align 8 dereferenceable(80) %17)
          to label %319 unwind label %329

319:                                              ; preds = %316
  %320 = getelementptr inbounds i8, ptr %0, i64 20536
  %321 = load <2 x i64>, ptr %320, align 8, !tbaa !94
  %322 = insertelement <2 x i64> <i64 1, i64 poison>, i64 %.012, i64 1
  %323 = add <2 x i64> %321, %322
  store <2 x i64> %323, ptr %320, align 8, !tbaa !94
  %324 = getelementptr inbounds i8, ptr %0, i64 20416
  %325 = load i64, ptr %324, align 8, !tbaa !107
  %326 = add i64 %325, %.040
  store i64 %326, ptr %324, align 8, !tbaa !107
  call void @_ZNSt10lock_guardISt5mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #10
  call void @_ZN17dedup_blocks_impl5StatsD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %17) #10
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %16) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #10
  call void @_ZN8cse_impl5StatsD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %14) #10
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %14) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %13) #10
  ret void

327:                                              ; preds = %303
  %328 = landingpad { ptr, i32 }
          cleanup
  br label %331

329:                                              ; preds = %316, %313, %310, %305
  %330 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt10lock_guardISt5mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #10
  br label %331

331:                                              ; preds = %329, %327
  %.pn69 = phi { ptr, i32 } [ %330, %329 ], [ %328, %327 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #10
  br label %332

332:                                              ; preds = %331, %301
  %.pn69.pn = phi { ptr, i32 } [ %.pn69, %331 ], [ %302, %301 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #10
  br label %333

333:                                              ; preds = %185, %204, %222, %248, %276, %332, %183
  %.pn69.pn.pn.pn = phi { ptr, i32 } [ %184, %183 ], [ %.pn69.pn, %332 ], [ %.pn66.pn, %276 ], [ %.pn60.pn.pn, %248 ], [ %.pn57.pn, %222 ], [ %.pn51.pn.pn.pn.pn, %204 ], [ %186, %185 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #10
  br label %334

334:                                              ; preds = %333, %144, %127, %107, %81, %72
  %.pn69.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn69.pn.pn.pn, %333 ], [ %.pn49, %144 ], [ %.pn46.pn, %127 ], [ %.pn43.pn, %107 ], [ %.pn.pn, %81 ], [ %73, %72 ]
  call void @_ZN17dedup_blocks_impl5StatsD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %17) #10
  br label %335

335:                                              ; preds = %334, %70
  %.pn69.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn69.pn.pn.pn.pn, %334 ], [ %71, %70 ]
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %16) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #10
  call void @_ZN8cse_impl5StatsD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %14) #10
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %14) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %13) #10
  br label %336

336:                                              ; preds = %335, %68
  %.pn69.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn69.pn.pn.pn.pn.pn, %335 ], [ %69, %68 ]
  resume { ptr, i32 } %.pn69.pn.pn.pn.pn.pn.pn
}

declare noundef zeroext i1 @_ZNK6IRCode18editable_cfg_builtEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #8

declare void @_ZN3cfg16ControlFlowGraph24recompute_registers_sizeEv(ptr noundef nonnull align 8 dereferenceable(160)) local_unnamed_addr #8

declare void @_ZN6IRCode9clear_cfgERKSt10unique_ptrIN3cfg21LinearizationStrategyESt14default_deleteIS2_EEPSt6vectorIP13IRInstructionSaISA_EE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #8

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

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

declare void @_ZN6IRCode9build_cfgEbb(ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN17AccumulatingTimer5scopeEv(ptr dead_on_unwind noalias writable sret(%"class.AccumulatingTimer::AccumulatingTimerScope") align 8, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #5 align 2

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

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

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

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

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

declare void @_ZN8cse_impl30CommonSubexpressionEliminationC1EPNS_11SharedStateERN3cfg16ControlFlowGraphEbbP7DexTypeP11DexTypeList(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef, ptr noundef nonnull align 8 dereferenceable(160), i1 noundef zeroext, i1 noundef zeroext, ptr noundef, ptr noundef) unnamed_addr #8

declare noundef zeroext i1 @_ZN8cse_impl30CommonSubexpressionElimination5patchEb(ptr noundef nonnull align 8 dereferenceable(312), i1 noundef zeroext) local_unnamed_addr #8

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(120) ptr @_ZN8cse_impl5StatsaSERKS0_(ptr noundef nonnull align 8 dereferenceable(120), ptr noundef nonnull align 8 dereferenceable(120)) local_unnamed_addr #3 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEENK3$_1clEm"(ptr dead_on_unwind noalias writable sret(%"class.std::tuple.672") align 8, ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN8shrinker12_GLOBAL__N_113should_shrinkEP6IRCodeRKN13random_forest6ForestIJRKNS_8Shrinker13MethodContextEEEE(ptr noundef, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #5

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

declare void @_ZN8regalloc14graph_coloring8allocateERKNS0_9Allocator6ConfigEP6IRCodebRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE(ptr dead_on_unwind writable sret(%"struct.regalloc::graph_coloring::Allocator::Stats") align 8, ptr noundef nonnull align 1 dereferenceable(2), ptr noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #8

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEclEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5 align 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 nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EJmmmmEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS4_(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1

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

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

declare void @_ZN12fastregalloc19LinearScanAllocatorC1EP6IRCodebRKSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE(ptr noundef nonnull align 8 dereferenceable(288), ptr noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #8

declare void @_ZN12fastregalloc19LinearScanAllocator8allocateEv(ptr noundef nonnull align 8 dereferenceable(288)) local_unnamed_addr #8

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

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

declare void @_ZN17dedup_blocks_impl11DedupBlocksC1EPKNS_6ConfigEP6IRCodebP7DexTypeP11DexTypeList(ptr noundef nonnull align 8 dereferenceable(120), ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef) unnamed_addr #8

declare void @_ZN17dedup_blocks_impl11DedupBlocks3runEv(ptr noundef nonnull align 8 dereferenceable(120)) local_unnamed_addr #8

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(80) ptr @_ZN17dedup_blocks_impl5StatsaSERKS0_(ptr noundef nonnull align 8 dereferenceable(80), ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFSt10unique_ptrIKN13constant_uses12ConstantUsesESt14default_deleteIS3_EEvEEC2IZN8shrinker8Shrinker11shrink_codeEP6IRCodebbP7DexTypeP8DexProtoRKS_IFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #5 align 2

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

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

declare noundef i64 @_ZN27branch_prefix_hoisting_impl11process_cfgERN3cfg16ControlFlowGraphER4LazyIKN13constant_uses12ConstantUsesEEb(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(40), i1 noundef zeroext) local_unnamed_addr #8

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

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

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

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

declare noundef nonnull align 8 dereferenceable(120) ptr @_ZN8cse_impl5StatspLERKS0_(ptr noundef nonnull align 8 dereferenceable(120), ptr noundef nonnull align 8 dereferenceable(120)) local_unnamed_addr #8

declare noundef nonnull align 8 dereferenceable(40) ptr @_ZN21copy_propagation_impl5StatspLERKS0_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(72) ptr @_ZN8LocalDce5StatspLERKS0_(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #5 align 2

declare noundef nonnull align 8 dereferenceable(80) ptr @_ZN17dedup_blocks_impl5StatspLERKS0_(ptr noundef nonnull align 8 dereferenceable(80), ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #8

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10lock_guardISt5mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1 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 = { 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 #3 = { 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 #4 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress 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 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #8 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { noreturn }
attributes #10 = { 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, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !10, i64 2864}
!12 = !{!"_ZTSN8shrinker8ShrinkerE", !13, i64 0, !18, i64 24, !34, i64 2864, !35, i64 2920, !10, i64 2924, !36, i64 2928, !6, i64 2936, !42, i64 2944, !45, i64 3000, !48, i64 3056, !51, i64 3112, !65, i64 19808, !69, i64 19864, !70, i64 19928, !71, i64 19992, !73, i64 20032, !77, i64 20048, !73, i64 20120, !78, i64 20136, !73, i64 20256, !82, i64 20272, !73, i64 20312, !83, i64 20328, !73, i64 20400, !25, i64 20416, !73, i64 20424, !85, i64 20440, !73, i64 20520, !25, i64 20536, !25, i64 20544}
!13 = !{!"_ZTSN13random_forest6ForestIJRKN8shrinker8Shrinker13MethodContextEEEE", !14, i64 0}
!14 = !{!"_ZTSSt6vectorISt10unique_ptrIN13random_forest6ForestIJRKN8shrinker8Shrinker13MethodContextEEE16DecisionTreeNodeESt14default_deleteIS9_EESaISC_EE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN13random_forest6ForestIJRKN8shrinker8Shrinker13MethodContextEEE16DecisionTreeNodeESt14default_deleteIS9_EESaISC_EE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN13random_forest6ForestIJRKN8shrinker8Shrinker13MethodContextEEE16DecisionTreeNodeESt14default_deleteIS9_EESaISC_EE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN13random_forest6ForestIJRKN8shrinker8Shrinker13MethodContextEEE16DecisionTreeNodeESt14default_deleteIS9_EESaISC_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!18 = !{!"_ZTS10XStoreRefs", !19, i64 0, !21, i64 2664, !25, i64 2688, !26, i64 2696, !26, i64 2752, !32, i64 2808}
!19 = !{!"_ZTS23InsertOnlyConcurrentMapIPK7DexTypemSt4hashIS2_ESt8equal_toIS2_ELm83EE", !20, i64 0}
!20 = !{!"_ZTS19ConcurrentContainerISt13unordered_mapIPK7DexTypemSt4hashIS3_ESt8equal_toIS3_ESaISt4pairIKS3_mEEELm83EE", !7, i64 8}
!21 = !{!"_ZTSSt6vectorIPK8DexStoreSaIS2_EE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseIPK8DexStoreSaIS2_EE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIPK8DexStoreSaIS2_EE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIPK8DexStoreSaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!25 = !{!"long", !7, i64 0}
!26 = !{!"_ZTS12UnorderedMapIPK8DexStore12UnorderedSetIS2_St4hashIS2_ESt8equal_toIS2_EES5_S7_E", !27, i64 0}
!27 = !{!"_ZTSSt13unordered_mapIPK8DexStore12UnorderedSetIS2_St4hashIS2_ESt8equal_toIS2_EES5_S7_SaISt4pairIKS2_S8_EEE", !28, i64 0}
!28 = !{!"_ZTSSt10_HashtableIPK8DexStoreSt4pairIKS2_12UnorderedSetIS2_St4hashIS2_ESt8equal_toIS2_EEESaISB_ENSt8__detail10_Select1stES9_S7_NSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !25, i64 8, !29, i64 16, !25, i64 24, !30, i64 32, !6, i64 48}
!29 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!30 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !31, i64 0, !25, i64 8}
!31 = !{!"float", !7, i64 0}
!32 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !33, i64 0, !25, i64 8, !7, i64 16}
!33 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!34 = !{!"_ZTSN8shrinker14ShrinkerConfigE", !10, i64 0, !10, i64 1, !10, i64 2, !10, i64 3, !10, i64 4, !10, i64 5, !10, i64 6, !10, i64 7, !10, i64 8, !10, i64 9, !32, i64 16, !10, i64 48}
!35 = !{!"int", !7, i64 0}
!36 = !{!"_ZTSSt10unique_ptrIN8cse_impl11SharedStateESt14default_deleteIS1_EE", !37, i64 0}
!37 = !{!"_ZTSSt15__uniq_ptr_dataIN8cse_impl11SharedStateESt14default_deleteIS1_ELb1ELb1EE", !38, i64 0}
!38 = !{!"_ZTSSt15__uniq_ptr_implIN8cse_impl11SharedStateESt14default_deleteIS1_EE", !39, i64 0}
!39 = !{!"_ZTSSt5tupleIJPN8cse_impl11SharedStateESt14default_deleteIS1_EEE", !40, i64 0}
!40 = !{!"_ZTSSt11_Tuple_implILm0EJPN8cse_impl11SharedStateESt14default_deleteIS1_EEE", !41, i64 0}
!41 = !{!"_ZTSSt10_Head_baseILm0EPN8cse_impl11SharedStateELb0EE", !6, i64 0}
!42 = !{!"_ZTS12UnorderedSetIP12DexMethodRefSt4hashIS1_ESt8equal_toIS1_EE", !43, i64 0}
!43 = !{!"_ZTSSt13unordered_setIP12DexMethodRefSt4hashIS1_ESt8equal_toIS1_ESaIS1_EE", !44, i64 0}
!44 = !{!"_ZTSSt10_HashtableIP12DexMethodRefS1_SaIS1_ENSt8__detail9_IdentityESt8equal_toIS1_ESt4hashIS1_ENS3_18_Mod_range_hashingENS3_20_Default_ranged_hashENS3_20_Prime_rehash_policyENS3_17_Hashtable_traitsILb0ELb1ELb1EEEE", !6, i64 0, !25, i64 8, !29, i64 16, !25, i64 24, !30, i64 32, !6, i64 48}
!45 = !{!"_ZTS12UnorderedSetIPK9DexStringSt4hashIS2_ESt8equal_toIS2_EE", !46, i64 0}
!46 = !{!"_ZTSSt13unordered_setIPK9DexStringSt4hashIS2_ESt8equal_toIS2_ESaIS2_EE", !47, i64 0}
!47 = !{!"_ZTSSt10_HashtableIPK9DexStringS2_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, !25, i64 8, !29, i64 16, !25, i64 24, !30, i64 32, !6, i64 48}
!48 = !{!"_ZTS12UnorderedSetIPK8DexFieldSt4hashIS2_ESt8equal_toIS2_EE", !49, i64 0}
!49 = !{!"_ZTSSt13unordered_setIPK8DexFieldSt4hashIS2_ESt8equal_toIS2_ESaIS2_EE", !50, i64 0}
!50 = !{!"_ZTSSt10_HashtableIPK8DexFieldS2_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, !25, i64 8, !29, i64 16, !25, i64 24, !30, i64 32, !6, i64 48}
!51 = !{!"_ZTSN20constant_propagation31ImmutableAttributeAnalyzerStateE", !52, i64 0, !54, i64 5984, !56, i64 8648, !58, i64 11312, !61, i64 11368, !63, i64 14032}
!52 = !{!"_ZTS13ConcurrentMapIP9DexMethodSt6vectorISt10unique_ptrIN20constant_propagation31ImmutableAttributeAnalyzerState11InitializerESt14default_deleteIS6_EESaIS9_EESt4hashIS1_ESt8equal_toIS1_ELm83EE", !53, i64 0, !7, i64 2664}
!53 = !{!"_ZTS19ConcurrentContainerISt13unordered_mapIP9DexMethodSt6vectorISt10unique_ptrIN20constant_propagation31ImmutableAttributeAnalyzerState11InitializerESt14default_deleteIS7_EESaISA_EESt4hashIS2_ESt8equal_toIS2_ESaISt4pairIKS2_SC_EEELm83EE", !7, i64 8}
!54 = !{!"_ZTS13ConcurrentSetIP9DexMethodSt4hashIS1_ESt8equal_toIS1_ELm83EE", !55, i64 0}
!55 = !{!"_ZTS19ConcurrentContainerISt13unordered_setIP9DexMethodSt4hashIS2_ESt8equal_toIS2_ESaIS2_EELm83EE", !7, i64 8}
!56 = !{!"_ZTS13ConcurrentSetIP8DexFieldSt4hashIS1_ESt8equal_toIS1_ELm83EE", !57, i64 0}
!57 = !{!"_ZTS19ConcurrentContainerISt13unordered_setIP8DexFieldSt4hashIS2_ESt8equal_toIS2_ESaIS2_EELm83EE", !7, i64 8}
!58 = !{!"_ZTS12UnorderedMapIP9DexMethodN20constant_propagation31ImmutableAttributeAnalyzerState18CachedBoxedObjectsESt4hashIS1_ESt8equal_toIS1_EE", !59, i64 0}
!59 = !{!"_ZTSSt13unordered_mapIP9DexMethodN20constant_propagation31ImmutableAttributeAnalyzerState18CachedBoxedObjectsESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S4_EEE", !60, i64 0}
!60 = !{!"_ZTSSt10_HashtableIP9DexMethodSt4pairIKS1_N20constant_propagation31ImmutableAttributeAnalyzerState18CachedBoxedObjectsEESaIS7_ENSt8__detail10_Select1stESt8equal_toIS1_ESt4hashIS1_ENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !25, i64 8, !29, i64 16, !25, i64 24, !30, i64 32, !6, i64 48}
!61 = !{!"_ZTS13ConcurrentSetIP7DexTypeSt4hashIS1_ESt8equal_toIS1_ELm83EE", !62, i64 0}
!62 = !{!"_ZTS19ConcurrentContainerISt13unordered_setIP7DexTypeSt4hashIS2_ESt8equal_toIS2_ESaIS2_EELm83EE", !7, i64 8}
!63 = !{!"_ZTS23InsertOnlyConcurrentMapIP7DexTypebSt4hashIS1_ESt8equal_toIS1_ELm83EE", !64, i64 0}
!64 = !{!"_ZTS19ConcurrentContainerISt13unordered_mapIP7DexTypebSt4hashIS2_ESt8equal_toIS2_ESaISt4pairIKS2_bEEELm83EE", !7, i64 8}
!65 = !{!"_ZTSN20constant_propagation19StringAnalyzerStateE", !66, i64 0}
!66 = !{!"_ZTS12UnorderedSetIP9DexMethodSt4hashIS1_ESt8equal_toIS1_EE", !67, i64 0}
!67 = !{!"_ZTSSt13unordered_setIP9DexMethodSt4hashIS1_ESt8equal_toIS1_ESaIS1_EE", !68, i64 0}
!68 = !{!"_ZTSSt10_HashtableIP9DexMethodS1_SaIS1_ENSt8__detail9_IdentityESt8equal_toIS1_ESt4hashIS1_ENS3_18_Mod_range_hashingENS3_20_Default_ranged_hashENS3_20_Prime_rehash_policyENS3_17_Hashtable_traitsILb0ELb1ELb1EEEE", !6, i64 0, !25, i64 8, !29, i64 16, !25, i64 24, !30, i64 32, !6, i64 48}
!69 = !{!"_ZTSN20constant_propagation16PackageNameStateE", !42, i64 0, !6, i64 56}
!70 = !{!"_ZTSN20constant_propagation5StateE", !42, i64 0, !6, i64 56}
!71 = !{!"_ZTSSt5mutex", !72, i64 0}
!72 = !{!"_ZTSSt12__mutex_base", !7, i64 0}
!73 = !{!"_ZTS17AccumulatingTimer", !74, i64 0}
!74 = !{!"_ZTSSt10shared_ptrISt6atomicImEE", !75, i64 0}
!75 = !{!"_ZTSSt12__shared_ptrISt6atomicImELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !76, i64 8}
!76 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!77 = !{!"_ZTSN20constant_propagation9Transform5StatsE", !25, i64 0, !25, i64 8, !25, i64 16, !25, i64 24, !25, i64 32, !25, i64 40, !25, i64 48, !25, i64 56, !25, i64 64}
!78 = !{!"_ZTSN8cse_impl5StatsE", !25, i64 0, !25, i64 8, !25, i64 16, !25, i64 24, !25, i64 32, !25, i64 40, !79, i64 48, !25, i64 104, !25, i64 112}
!79 = !{!"_ZTS12UnorderedMapItmSt4hashItESt8equal_toItEE", !80, i64 0}
!80 = !{!"_ZTSSt13unordered_mapItmSt4hashItESt8equal_toItESaISt4pairIKtmEEE", !81, i64 0}
!81 = !{!"_ZTSSt10_HashtableItSt4pairIKtmESaIS2_ENSt8__detail10_Select1stESt8equal_toItESt4hashItENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !25, i64 8, !29, i64 16, !25, i64 24, !30, i64 32, !6, i64 48}
!82 = !{!"_ZTSN21copy_propagation_impl5StatsE", !25, i64 0, !25, i64 8, !25, i64 16, !25, i64 24, !25, i64 32}
!83 = !{!"_ZTSN8LocalDce5StatsE", !25, i64 0, !25, i64 8, !25, i64 16, !25, i64 24, !25, i64 32, !25, i64 40, !84, i64 48}
!84 = !{!"_ZTSN12init_classes5StatsE", !25, i64 0, !25, i64 8, !25, i64 16}
!85 = !{!"_ZTSN17dedup_blocks_impl5StatsE", !35, i64 0, !35, i64 4, !35, i64 8, !35, i64 12, !35, i64 16, !86, i64 24}
!86 = !{!"_ZTS12UnorderedMapImmSt4hashImESt8equal_toImEE", !87, i64 0}
!87 = !{!"_ZTSSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEE", !88, i64 0}
!88 = !{!"_ZTSSt10_HashtableImSt4pairIKmmESaIS2_ENSt8__detail10_Select1stESt8equal_toImESt4hashImENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !25, i64 8, !29, i64 16, !25, i64 24, !30, i64 32, !6, i64 48}
!89 = !{i8 0, i8 2}
!90 = !{}
!91 = !{!92, !6, i64 24}
!92 = !{!"_ZTSN20constant_propagation9Transform6ConfigE", !10, i64 0, !10, i64 1, !10, i64 2, !10, i64 3, !10, i64 4, !10, i64 5, !6, i64 8, !6, i64 16, !6, i64 24}
!93 = !{i64 0, i64 8, !94, i64 8, i64 8, !94, i64 16, i64 8, !94, i64 24, i64 8, !94, i64 32, i64 8, !94, i64 40, i64 8, !94, i64 48, i64 8, !94, i64 56, i64 8, !94, i64 64, i64 8, !94}
!94 = !{!25, !25, i64 0}
!95 = !{!12, !10, i64 2865}
!96 = !{!12, !10, i64 2866}
!97 = !{i64 0, i64 8, !94, i64 8, i64 8, !94, i64 16, i64 8, !94, i64 24, i64 8, !94, i64 32, i64 8, !94}
!98 = !{!12, !10, i64 2867}
!99 = !{!12, !10, i64 2872}
!100 = !{!12, !10, i64 2868}
!101 = !{!102, !10, i64 1}
!102 = !{!"_ZTSN8regalloc14graph_coloring9Allocator6ConfigE", !10, i64 0, !10, i64 1}
!103 = !{!102, !10, i64 0}
!104 = !{!12, !10, i64 2869}
!105 = !{!12, !10, i64 2870}
!106 = !{!12, !10, i64 2871}
!107 = !{!12, !25, i64 20416}


; Effective O3 passes: DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass