; LLVM IR from facebook/redex :: opt/object-escape-analysis (ObjectEscapeAnalysisImpl)

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

%class.anon.302 = type { ptr, ptr, ptr }
%"class.sparta::SetAbstractDomain" = type { %"class.sparta::PowersetAbstractDomain" }
%"class.sparta::PowersetAbstractDomain" = type { %"class.sparta::AbstractDomainScaffolding.293" }
%"class.sparta::AbstractDomainScaffolding.293" = type { i32, %"class.sparta::set_impl::SetValue" }
%"class.sparta::set_impl::SetValue" = type { %"class.sparta::PatriciaTreeSet" }
%"class.sparta::PatriciaTreeSet" = type { %"class.sparta::pt_core::PatriciaTreeCore.300" }
%"class.sparta::pt_core::PatriciaTreeCore.300" = type { %"class.boost::intrusive_ptr.301" }
%"class.boost::intrusive_ptr.301" = type { ptr }
%"class.sparta::pt_core::PatriciaTreeIterator" = type { %"class.sparta::pt_core::PatriciaTreePostOrder" }
%"class.sparta::pt_core::PatriciaTreePostOrder" = type { %"class.boost::intrusive_ptr.301", %"class.std::stack", ptr }
%"class.std::stack" = type { %"class.std::deque" }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *>>::_Deque_impl" }
%"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *>>::_Deque_impl" = type { %"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *>>::_Deque_impl_data" }
%"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }
%"class.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", i8 }
%"struct.std::_Optional_payload_base.base" = type <{ %"union.std::_Optional_payload_base<unsigned short>::_Storage", i8 }>
%"union.std::_Optional_payload_base<unsigned short>::_Storage" = type { i16 }
%"class.object_escape_analysis_impl::Analyzer" = type { %"class.ir_analyzer::BaseIRAnalyzer", ptr, ptr, ptr, ptr, ptr, %class.UnorderedMap.233, %class.UnorderedSet.255, ptr, ptr }
%"class.ir_analyzer::BaseIRAnalyzer" = type { %"class.sparta::MonotonicFixpointIterator" }
%"class.sparta::MonotonicFixpointIterator" = type { %"class.sparta::fp_impl::MonotonicFixpointIteratorBase", %"class.sparta::WeakPartialOrdering" }
%"class.sparta::fp_impl::MonotonicFixpointIteratorBase" = type { %"class.sparta::FixpointIterator", ptr, %"class.sparta::AbstractEnvironment", %"class.std::unordered_map.189", %"class.std::unordered_map.189" }
%"class.sparta::FixpointIterator" = type { ptr }
%"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 }
%"class.std::unordered_map.189" = type { %"class.std::_Hashtable.190" }
%"class.std::_Hashtable.190" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.sparta::WeakPartialOrdering" = type <{ %"class.std::vector.209", %"class.std::vector.214", %"class.std::unordered_map.219", i8, [7 x i8] }>
%"class.std::vector.209" = type { %"struct.std::_Vector_base.210" }
%"struct.std::_Vector_base.210" = type { %"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl" }
%"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl" = type { %"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.214" = type { %"struct.std::_Vector_base.215" }
%"struct.std::_Vector_base.215" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map.219" = type { %"class.std::_Hashtable.220" }
%"class.std::_Hashtable.220" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%class.UnorderedMap.233 = type { %"class.std::unordered_map.235" }
%"class.std::unordered_map.235" = type { %"class.std::_Hashtable.236" }
%"class.std::_Hashtable.236" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%class.UnorderedSet.255 = type { %"class.std::unordered_set.257" }
%"class.std::unordered_set.257" = type { %"class.std::_Hashtable.258" }
%"class.std::_Hashtable.258" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.object_escape_analysis_impl::MethodSummary" = type { %class.UnorderedSet.332, %"class.std::variant" }
%class.UnorderedSet.332 = type { %"class.std::unordered_set.334" }
%"class.std::unordered_set.334" = type { %"class.std::_Hashtable.335" }
%"class.std::_Hashtable.335" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::variant" = type { %"struct.std::__detail::__variant::_Variant_base.base", [7 x i8] }
%"struct.std::__detail::__variant::_Variant_base.base" = type { %"struct.std::__detail::__variant::_Move_assign_base.base" }
%"struct.std::__detail::__variant::_Move_assign_base.base" = type { %"struct.std::__detail::__variant::_Copy_assign_base.base" }
%"struct.std::__detail::__variant::_Copy_assign_base.base" = type { %"struct.std::__detail::__variant::_Move_ctor_base.base" }
%"struct.std::__detail::__variant::_Move_ctor_base.base" = type { %"struct.std::__detail::__variant::_Copy_ctor_base.base" }
%"struct.std::__detail::__variant::_Copy_ctor_base.base" = type { %"struct.std::__detail::__variant::_Variant_storage.base" }
%"struct.std::__detail::__variant::_Variant_storage.base" = type <{ %"union.std::__detail::__variant::_Variadic_union", i8 }>
%"union.std::__detail::__variant::_Variadic_union" = type { %"union.std::__detail::__variant::_Variadic_union.354" }
%"union.std::__detail::__variant::_Variadic_union.354" = type { %"struct.std::__detail::__variant::_Uninitialized.355" }
%"struct.std::__detail::__variant::_Uninitialized.355" = type { ptr }

@_ZN12_GLOBAL__N_14ZEROE = external hidden global ptr, align 8
@.str.10 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [42 x i8], align 1
@_ZL15RESULT_REGISTER = external hidden constant i32, align 4
@__PRETTY_FUNCTION__._ZNK27object_escape_analysis_impl8Analyzer19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIS3_EEEENS4_17TopValueInterfaceISA_EEEEEE = external hidden unnamed_addr constant [116 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: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

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

declare noundef ptr @_Z10type_classPK7DexType(ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK13IRInstruction10get_methodEv(ptr noundef nonnull align 8 dereferenceable(32)) #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: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN27object_escape_analysis_impl9is_benignEPK12DexMethodRef(ptr noundef) #3

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZNK27object_escape_analysis_impl8Analyzer19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIS3_EEEENS4_17TopValueInterfaceISA_EEEEEE(ptr noundef nonnull align 8 dereferenceable(424) %0, ptr noundef %1, ptr noundef %2) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca %class.anon.302, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca %"class.sparta::SetAbstractDomain", align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca %"class.sparta::SetAbstractDomain", align 8
  %16 = alloca i32, align 4
  %17 = alloca %"class.sparta::SetAbstractDomain", align 8
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca %"class.sparta::pt_core::PatriciaTreeIterator", align 8
  %21 = alloca %"class.sparta::pt_core::PatriciaTreeIterator", align 8
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca ptr, align 8
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca %"class.sparta::SetAbstractDomain", align 8
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca %"class.sparta::SetAbstractDomain", align 8
  %34 = alloca ptr, align 8
  %35 = alloca i16, align 2
  %36 = alloca i32, align 4
  %37 = alloca %"class.sparta::SetAbstractDomain", align 8
  %38 = alloca %"class.sparta::SetAbstractDomain", align 8
  %39 = alloca %"class.std::optional", align 2
  %40 = alloca i32, align 4
  %41 = alloca i16, align 2
  %42 = alloca i32, align 4
  %43 = alloca %"class.sparta::SetAbstractDomain", align 8
  %44 = alloca i32, align 4
  %45 = alloca %"class.sparta::SetAbstractDomain", align 8
  %46 = alloca %"class.sparta::SetAbstractDomain", align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  %47 = load ptr, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr %7) #7
  %48 = getelementptr inbounds %class.anon.302, ptr %7, i32 0, i32 0
  store ptr %5, ptr %48, align 8, !tbaa !5
  %49 = getelementptr inbounds %class.anon.302, ptr %7, i32 0, i32 1
  store ptr %6, ptr %49, align 8, !tbaa !5
  %50 = getelementptr inbounds %class.anon.302, ptr %7, i32 0, i32 2
  store ptr %47, ptr %50, align 8, !tbaa !9
  %51 = load ptr, ptr %5, align 8, !tbaa !5
  %52 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %51)
  %53 = zext i16 %52 to i32
  %54 = icmp eq i32 %53, 21
  br i1 %54, label %55, label %85

55:                                               ; preds = %3
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #7
  %56 = load ptr, ptr %5, align 8, !tbaa !5
  %57 = call noundef ptr @_ZNK13IRInstruction8get_typeEv(ptr noundef nonnull align 8 dereferenceable(32) %56)
  store ptr %57, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  %58 = load ptr, ptr %8, align 8, !tbaa !5
  %59 = call noundef ptr @_Z10type_classPK7DexType(ptr noundef %58)
  store ptr %59, ptr %9, align 8, !tbaa !5
  %60 = load ptr, ptr %9, align 8, !tbaa !5
  %61 = icmp ne ptr %60, null
  br i1 %61, label %62, label %81

62:                                               ; preds = %55
  %63 = load ptr, ptr %9, align 8, !tbaa !5
  %64 = call noundef zeroext i1 @_ZNK8DexClass11is_externalEv(ptr noundef nonnull align 8 dereferenceable(176) %63)
  br i1 %64, label %81, label %65

65:                                               ; preds = %62
  %66 = getelementptr inbounds %"class.object_escape_analysis_impl::Analyzer", ptr %47, i32 0, i32 2
  %67 = load ptr, ptr %66, align 8, !tbaa !11
  %68 = call noundef i64 @_ZNK12UnorderedSetIP8DexClassSt4hashIS1_ESt8equal_toIS1_EE5countERKS1_(ptr noundef nonnull align 8 dereferenceable(56) %67, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %69 = icmp ne i64 %68, 0
  br i1 %69, label %81, label %70

70:                                               ; preds = %65
  %71 = getelementptr inbounds %"class.object_escape_analysis_impl::Analyzer", ptr %47, i32 0, i32 6
  %72 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN12UnorderedMapIPK13IRInstruction12UnorderedSetIN10live_range3UseESt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EEixERKS2_(ptr noundef nonnull align 8 dereferenceable(56) %71, ptr noundef nonnull align 8 dereferenceable(8) %5)
  %73 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %10) #7
  %74 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEC2ES4_(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %74)
  %75 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjOS8_(ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef nonnull align 4 dereferenceable(4) @_ZL15RESULT_REGISTER, ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %76 unwind label %77

76:                                               ; preds = %70
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #7
  store i32 1, ptr %13, align 4
  br label %82

77:                                               ; preds = %70
  %78 = landingpad { ptr, i32 }
          cleanup
  %79 = extractvalue { ptr, i32 } %78, 0
  store ptr %79, ptr %11, align 8
  %80 = extractvalue { ptr, i32 } %78, 1
  store i32 %80, ptr %12, align 4
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  br label %444

81:                                               ; preds = %65, %62, %55
  store i32 0, ptr %13, align 4
  br label %82

82:                                               ; preds = %81, %76
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  %83 = load i32, ptr %13, align 4
  switch i32 %83, label %441 [
    i32 0, label %84
  ]

84:                                               ; preds = %82
  br label %388

85:                                               ; preds = %3
  %86 = load ptr, ptr %5, align 8, !tbaa !5
  %87 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %86)
  %88 = zext i16 %87 to i32
  %89 = icmp eq i32 %88, 161
  br i1 %89, label %90, label %103

90:                                               ; preds = %85
  %91 = getelementptr inbounds %"class.object_escape_analysis_impl::Analyzer", ptr %47, i32 0, i32 6
  %92 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN12UnorderedMapIPK13IRInstruction12UnorderedSetIN10live_range3UseESt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EEixERKS2_(ptr noundef nonnull align 8 dereferenceable(56) %91, ptr noundef nonnull align 8 dereferenceable(8) %5)
  %93 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #7
  %94 = load ptr, ptr %5, align 8, !tbaa !5
  %95 = call noundef i32 @_ZNK13IRInstruction4destEv(ptr noundef nonnull align 8 dereferenceable(32) %94)
  store i32 %95, ptr %14, align 4, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 16, ptr %15) #7
  %96 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEC2ES4_(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef %96)
  %97 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjOS8_(ptr noundef nonnull align 8 dereferenceable(16) %93, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull align 8 dereferenceable(16) %15)
          to label %98 unwind label %99

98:                                               ; preds = %90
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  store i32 1, ptr %13, align 4
  br label %441

99:                                               ; preds = %90
  %100 = landingpad { ptr, i32 }
          cleanup
  %101 = extractvalue { ptr, i32 } %100, 0
  store ptr %101, ptr %11, align 8
  %102 = extractvalue { ptr, i32 } %100, 1
  store i32 %102, ptr %12, align 4
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  br label %444

103:                                              ; preds = %85
  %104 = load ptr, ptr %5, align 8, !tbaa !5
  %105 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %104)
  %106 = zext i16 %105 to i32
  %107 = icmp eq i32 %106, 12
  br i1 %107, label %108, label %123

108:                                              ; preds = %103
  %109 = load ptr, ptr %5, align 8, !tbaa !5
  %110 = call noundef i64 @_ZNK13IRInstruction11get_literalEv(ptr noundef nonnull align 8 dereferenceable(32) %109)
  %111 = icmp eq i64 %110, 0
  br i1 %111, label %112, label %123

112:                                              ; preds = %108
  %113 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  %114 = load ptr, ptr %5, align 8, !tbaa !5
  %115 = call noundef i32 @_ZNK13IRInstruction4destEv(ptr noundef nonnull align 8 dereferenceable(32) %114)
  store i32 %115, ptr %16, align 4, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #7
  %116 = load ptr, ptr @_ZN12_GLOBAL__N_14ZEROE, align 8, !tbaa !5
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEC2ES4_(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef %116)
  %117 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjOS8_(ptr noundef nonnull align 8 dereferenceable(16) %113, ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 8 dereferenceable(16) %17)
          to label %118 unwind label %119

118:                                              ; preds = %112
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  store i32 1, ptr %13, align 4
  br label %441

119:                                              ; preds = %112
  %120 = landingpad { ptr, i32 }
          cleanup
  %121 = extractvalue { ptr, i32 } %120, 0
  store ptr %121, ptr %11, align 8
  %122 = extractvalue { ptr, i32 } %120, 1
  store i32 %122, ptr %12, align 4
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  br label %444

123:                                              ; preds = %108, %103
  %124 = load ptr, ptr %5, align 8, !tbaa !5
  %125 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %124)
  %126 = zext i16 %125 to i32
  %127 = icmp eq i32 %126, 11
  br i1 %127, label %128, label %157

128:                                              ; preds = %123
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  %129 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  %130 = load ptr, ptr %5, align 8, !tbaa !5
  %131 = call noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %130, i16 noundef zeroext 0)
  store i32 %131, ptr %19, align 4, !tbaa !48
  %132 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %129, ptr noundef nonnull align 4 dereferenceable(4) %19)
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  store ptr %132, ptr %18, align 8, !tbaa !5
  %133 = load ptr, ptr %18, align 8, !tbaa !5
  %134 = call noundef i32 @_ZNK6sparta25AbstractDomainScaffoldingINS_8set_impl8SetValueINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17SetAbstractDomainIS7_EEE4kindEv(ptr noundef nonnull align 8 dereferenceable(16) %133)
  %135 = icmp eq i32 %134, 1
  br i1 %135, label %136, label %137

136:                                              ; preds = %128
  br label %139

137:                                              ; preds = %128
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef @.str.23, ptr noundef @.str.10, i32 noundef 379, ptr noundef @__PRETTY_FUNCTION__._ZNK27object_escape_analysis_impl8Analyzer19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIS3_EEEENS4_17TopValueInterfaceISA_EEEEEE, i32 noundef 2, ptr noundef @.str.11) #8
  unreachable

138:                                              ; No predecessors!
  br label %139

139:                                              ; preds = %138, %136
  %140 = getelementptr inbounds %"class.object_escape_analysis_impl::Analyzer", ptr %47, i32 0, i32 7
  %141 = load ptr, ptr %18, align 8, !tbaa !5
  %142 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK6sparta22PowersetAbstractDomainIPK13IRInstructionNS_8set_impl8SetValueINS_15PatriciaTreeSetIS3_EEEERKS7_NS_17SetAbstractDomainIS7_EEE8elementsEv(ptr noundef nonnull align 8 dereferenceable(16) %141)
  call void @_ZNK6sparta15PatriciaTreeSetIPK13IRInstructionE5beginEv(ptr dead_on_unwind writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8 %20, ptr noundef nonnull align 8 dereferenceable(8) %142)
  %143 = load ptr, ptr %18, align 8, !tbaa !5
  %144 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK6sparta22PowersetAbstractDomainIPK13IRInstructionNS_8set_impl8SetValueINS_15PatriciaTreeSetIS3_EEEERKS7_NS_17SetAbstractDomainIS7_EEE8elementsEv(ptr noundef nonnull align 8 dereferenceable(16) %143)
          to label %145 unwind label %148

145:                                              ; preds = %139
  invoke void @_ZNK6sparta15PatriciaTreeSetIPK13IRInstructionE3endEv(ptr dead_on_unwind writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8 %21, ptr noundef nonnull align 8 dereferenceable(8) %144)
          to label %146 unwind label %148

146:                                              ; preds = %145
  invoke void @_ZN12UnorderedSetIPK13IRInstructionSt4hashIS2_ESt8equal_toIS2_EE6insertIN6sparta7pt_core20PatriciaTreeIteratorIS2_NSA_10EmptyValueEEEEEvT_SE_(ptr noundef nonnull align 8 dereferenceable(56) %140, ptr noundef %20, ptr noundef %21)
          to label %147 unwind label %152

147:                                              ; preds = %146
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIPK13IRInstructionNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %21) #7
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIPK13IRInstructionNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %20) #7
  store i32 1, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  br label %441

148:                                              ; preds = %145, %139
  %149 = landingpad { ptr, i32 }
          cleanup
  %150 = extractvalue { ptr, i32 } %149, 0
  store ptr %150, ptr %11, align 8
  %151 = extractvalue { ptr, i32 } %149, 1
  store i32 %151, ptr %12, align 4
  br label %156

152:                                              ; preds = %146
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %11, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %12, align 4
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIPK13IRInstructionNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %21) #7
  br label %156

156:                                              ; preds = %152, %148
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIPK13IRInstructionNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  br label %444

157:                                              ; preds = %123
  %158 = load ptr, ptr %5, align 8, !tbaa !5
  %159 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %158)
  %160 = zext i16 %159 to i32
  %161 = icmp eq i32 %160, 6
  br i1 %161, label %167, label %162

162:                                              ; preds = %157
  %163 = load ptr, ptr %5, align 8, !tbaa !5
  %164 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %163)
  %165 = zext i16 %164 to i32
  %166 = icmp eq i32 %165, 164
  br i1 %166, label %167, label %175

167:                                              ; preds = %162, %157
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %168 = load ptr, ptr %6, align 8, !tbaa !5
  %169 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %168, ptr noundef nonnull align 4 dereferenceable(4) @_ZL15RESULT_REGISTER)
  store ptr %169, ptr %22, align 8, !tbaa !5
  %170 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #7
  %171 = load ptr, ptr %5, align 8, !tbaa !5
  %172 = call noundef i32 @_ZNK13IRInstruction4destEv(ptr noundef nonnull align 8 dereferenceable(32) %171)
  store i32 %172, ptr %23, align 4, !tbaa !48
  %173 = load ptr, ptr %22, align 8, !tbaa !5
  %174 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjRKS8_(ptr noundef nonnull align 8 dereferenceable(16) %170, ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef nonnull align 8 dereferenceable(16) %173)
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  store i32 1, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  br label %441

175:                                              ; preds = %162
  %176 = load ptr, ptr %5, align 8, !tbaa !5
  %177 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %176)
  %178 = zext i16 %177 to i32
  %179 = icmp eq i32 %178, 3
  br i1 %179, label %180, label %190

180:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %181 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #7
  %182 = load ptr, ptr %5, align 8, !tbaa !5
  %183 = call noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %182, i16 noundef zeroext 0)
  store i32 %183, ptr %25, align 4, !tbaa !48
  %184 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %181, ptr noundef nonnull align 4 dereferenceable(4) %25)
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  store ptr %184, ptr %24, align 8, !tbaa !5
  %185 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #7
  %186 = load ptr, ptr %5, align 8, !tbaa !5
  %187 = call noundef i32 @_ZNK13IRInstruction4destEv(ptr noundef nonnull align 8 dereferenceable(32) %186)
  store i32 %187, ptr %26, align 4, !tbaa !48
  %188 = load ptr, ptr %24, align 8, !tbaa !5
  %189 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjRKS8_(ptr noundef nonnull align 8 dereferenceable(16) %185, ptr noundef nonnull align 4 dereferenceable(4) %26, ptr noundef nonnull align 8 dereferenceable(16) %188)
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  store i32 1, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  br label %441

190:                                              ; preds = %175
  %191 = load ptr, ptr %5, align 8, !tbaa !5
  %192 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %191)
  %193 = zext i16 %192 to i32
  %194 = icmp eq i32 %193, 18
  br i1 %194, label %195, label %203

195:                                              ; preds = %190
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %196 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #7
  %197 = load ptr, ptr %5, align 8, !tbaa !5
  %198 = call noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %197, i16 noundef zeroext 0)
  store i32 %198, ptr %28, align 4, !tbaa !48
  %199 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %196, ptr noundef nonnull align 4 dereferenceable(4) %28)
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  store ptr %199, ptr %27, align 8, !tbaa !5
  %200 = load ptr, ptr %6, align 8, !tbaa !5
  %201 = load ptr, ptr %27, align 8, !tbaa !5
  %202 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjRKS8_(ptr noundef nonnull align 8 dereferenceable(16) %200, ptr noundef nonnull align 4 dereferenceable(4) @_ZL15RESULT_REGISTER, ptr noundef nonnull align 8 dereferenceable(16) %201)
  store i32 1, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %441

203:                                              ; preds = %190
  %204 = load ptr, ptr %5, align 8, !tbaa !5
  %205 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %204)
  %206 = zext i16 %205 to i32
  %207 = icmp eq i32 %206, 19
  br i1 %207, label %212, label %208

208:                                              ; preds = %203
  %209 = load ptr, ptr %5, align 8, !tbaa !5
  %210 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %209)
  %211 = call noundef zeroext i1 @_ZN6opcode10is_an_igetE8IROpcode(i16 noundef zeroext %210)
  br i1 %211, label %212, label %228

212:                                              ; preds = %208, %203
  %213 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  %214 = load ptr, ptr %5, align 8, !tbaa !5
  %215 = call noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %214, i16 noundef zeroext 0)
  store i32 %215, ptr %29, align 4, !tbaa !48
  %216 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %213, ptr noundef nonnull align 4 dereferenceable(4) %29)
  %217 = call noundef ptr @_ZN27object_escape_analysis_impl24get_singleton_allocationERKN6sparta17SetAbstractDomainINS0_15PatriciaTreeSetIPK13IRInstructionEEEE(ptr noundef nonnull align 8 dereferenceable(16) %216)
  %218 = icmp ne ptr %217, null
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br i1 %218, label %219, label %227

219:                                              ; preds = %212
  %220 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #7
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEC2ES4_(ptr noundef nonnull align 8 dereferenceable(16) %30, ptr noundef null)
  %221 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjOS8_(ptr noundef nonnull align 8 dereferenceable(16) %220, ptr noundef nonnull align 4 dereferenceable(4) @_ZL15RESULT_REGISTER, ptr noundef nonnull align 8 dereferenceable(16) %30)
          to label %222 unwind label %223

222:                                              ; preds = %219
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #7
  store i32 1, ptr %13, align 4
  br label %441

223:                                              ; preds = %219
  %224 = landingpad { ptr, i32 }
          cleanup
  %225 = extractvalue { ptr, i32 } %224, 0
  store ptr %225, ptr %11, align 8
  %226 = extractvalue { ptr, i32 } %224, 1
  store i32 %226, ptr %12, align 4
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #7
  br label %444

227:                                              ; preds = %212
  br label %381

228:                                              ; preds = %208
  %229 = load ptr, ptr %5, align 8, !tbaa !5
  %230 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %229)
  %231 = call noundef zeroext i1 @_ZN6opcode12is_a_monitorE8IROpcode(i16 noundef zeroext %230)
  br i1 %231, label %242, label %232

232:                                              ; preds = %228
  %233 = load ptr, ptr %5, align 8, !tbaa !5
  %234 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %233)
  %235 = zext i16 %234 to i32
  %236 = icmp eq i32 %235, 39
  br i1 %236, label %242, label %237

237:                                              ; preds = %232
  %238 = load ptr, ptr %5, align 8, !tbaa !5
  %239 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %238)
  %240 = zext i16 %239 to i32
  %241 = icmp eq i32 %240, 40
  br i1 %241, label %242, label %251

242:                                              ; preds = %237, %232, %228
  %243 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  %244 = load ptr, ptr %5, align 8, !tbaa !5
  %245 = call noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %244, i16 noundef zeroext 0)
  store i32 %245, ptr %31, align 4, !tbaa !48
  %246 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %243, ptr noundef nonnull align 4 dereferenceable(4) %31)
  %247 = call noundef ptr @_ZN27object_escape_analysis_impl24get_singleton_allocationERKN6sparta17SetAbstractDomainINS0_15PatriciaTreeSetIPK13IRInstructionEEEE(ptr noundef nonnull align 8 dereferenceable(16) %246)
  %248 = icmp ne ptr %247, null
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  br i1 %248, label %249, label %250

249:                                              ; preds = %242
  store i32 1, ptr %13, align 4
  br label %441

250:                                              ; preds = %242
  br label %380

251:                                              ; preds = %237
  %252 = load ptr, ptr %5, align 8, !tbaa !5
  %253 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %252)
  %254 = call noundef zeroext i1 @_ZN6opcode10is_an_iputE8IROpcode(i16 noundef zeroext %253)
  br i1 %254, label %255, label %264

255:                                              ; preds = %251
  %256 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #7
  %257 = load ptr, ptr %5, align 8, !tbaa !5
  %258 = call noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %257, i16 noundef zeroext 1)
  store i32 %258, ptr %32, align 4, !tbaa !48
  %259 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %256, ptr noundef nonnull align 4 dereferenceable(4) %32)
  %260 = call noundef ptr @_ZN27object_escape_analysis_impl24get_singleton_allocationERKN6sparta17SetAbstractDomainINS0_15PatriciaTreeSetIPK13IRInstructionEEEE(ptr noundef nonnull align 8 dereferenceable(16) %259)
  %261 = icmp ne ptr %260, null
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  br i1 %261, label %262, label %263

262:                                              ; preds = %255
  call void @"_ZZNK27object_escape_analysis_impl8Analyzer19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIS3_EEEENS4_17TopValueInterfaceISA_EEEEEEENK3$_0clEt"(ptr noundef nonnull align 8 dereferenceable(24) %7, i16 noundef zeroext 0)
  store i32 1, ptr %13, align 4
  br label %441

263:                                              ; preds = %255
  br label %379

264:                                              ; preds = %251
  %265 = load ptr, ptr %5, align 8, !tbaa !5
  %266 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %265)
  %267 = call noundef zeroext i1 @_ZN6opcode12is_an_invokeE8IROpcode(i16 noundef zeroext %266)
  br i1 %267, label %268, label %378

268:                                              ; preds = %264
  %269 = load ptr, ptr %5, align 8, !tbaa !5
  %270 = call noundef ptr @_ZNK13IRInstruction10get_methodEv(ptr noundef nonnull align 8 dereferenceable(32) %269)
  %271 = call noundef zeroext i1 @_ZN27object_escape_analysis_impl9is_benignEPK12DexMethodRef(ptr noundef %270)
  br i1 %271, label %275, label %272

272:                                              ; preds = %268
  %273 = load ptr, ptr %5, align 8, !tbaa !5
  %274 = call noundef zeroext i1 @_ZNK27object_escape_analysis_impl8Analyzer20is_incomplete_markerEPK13IRInstruction(ptr noundef nonnull align 8 dereferenceable(424) %47, ptr noundef %273)
  br i1 %274, label %275, label %283

275:                                              ; preds = %272, %268
  %276 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #7
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEC2ES4_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef null)
  %277 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjOS8_(ptr noundef nonnull align 8 dereferenceable(16) %276, ptr noundef nonnull align 4 dereferenceable(4) @_ZL15RESULT_REGISTER, ptr noundef nonnull align 8 dereferenceable(16) %33)
          to label %278 unwind label %279

278:                                              ; preds = %275
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #7
  store i32 1, ptr %13, align 4
  br label %441

279:                                              ; preds = %275
  %280 = landingpad { ptr, i32 }
          cleanup
  %281 = extractvalue { ptr, i32 } %280, 0
  store ptr %281, ptr %11, align 8
  %282 = extractvalue { ptr, i32 } %280, 1
  store i32 %282, ptr %12, align 4
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #7
  br label %444

283:                                              ; preds = %272
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #7
  %284 = getelementptr inbounds %"class.object_escape_analysis_impl::Analyzer", ptr %47, i32 0, i32 1
  %285 = load ptr, ptr %284, align 8, !tbaa !50
  %286 = getelementptr inbounds %"class.object_escape_analysis_impl::Analyzer", ptr %47, i32 0, i32 3
  %287 = load ptr, ptr %286, align 8, !tbaa !51
  %288 = load ptr, ptr %5, align 8, !tbaa !5
  %289 = getelementptr inbounds %"class.object_escape_analysis_impl::Analyzer", ptr %47, i32 0, i32 5
  %290 = load ptr, ptr %289, align 8, !tbaa !52
  %291 = getelementptr inbounds %"class.object_escape_analysis_impl::Analyzer", ptr %47, i32 0, i32 8
  %292 = load ptr, ptr %291, align 8, !tbaa !53
  %293 = getelementptr inbounds %"class.object_escape_analysis_impl::Analyzer", ptr %47, i32 0, i32 9
  %294 = load ptr, ptr %293, align 8, !tbaa !54
  %295 = call noundef ptr @_ZN27object_escape_analysis_impl29resolve_invoke_method_summaryERKN21method_override_graph5GraphERK12UnorderedMapIP9DexMethodNS_13MethodSummaryESt4hashIS6_ESt8equal_toIS6_EEPK13IRInstructionPKS5_PA2_23InsertOnlyConcurrentMapISt4pairIS6_PK7DexTypeENS_7CalleesEN5boost4hashISP_EESA_ISP_ELm83EEPSK_IPKSQ_S7_S8_ISZ_ESA_ISZ_ELm83EE(ptr noundef nonnull align 8 dereferenceable(5984) %285, ptr noundef nonnull align 8 dereferenceable(56) %287, ptr noundef %288, ptr noundef %290, ptr noundef %292, ptr noundef %294)
  store ptr %295, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 2, ptr %35) #7
  store i16 0, ptr %35, align 2, !tbaa !55
  br label %296

296:                                              ; preds = %322, %283
  %297 = load i16, ptr %35, align 2, !tbaa !55
  %298 = zext i16 %297 to i64
  %299 = load ptr, ptr %5, align 8, !tbaa !5
  %300 = call noundef i64 @_ZNK13IRInstruction9srcs_sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %299)
  %301 = icmp ult i64 %298, %300
  br i1 %301, label %303, label %302

302:                                              ; preds = %296
  store i32 2, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %35) #7
  br label %325

303:                                              ; preds = %296
  %304 = load ptr, ptr %34, align 8, !tbaa !5
  %305 = getelementptr inbounds %"struct.object_escape_analysis_impl::MethodSummary", ptr %304, i32 0, i32 0
  %306 = call noundef i64 @_ZNK12UnorderedSetItSt4hashItESt8equal_toItEE5countERKt(ptr noundef nonnull align 8 dereferenceable(56) %305, ptr noundef nonnull align 2 dereferenceable(2) %35)
  %307 = icmp ne i64 %306, 0
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #7
  br i1 %307, label %308, label %317

308:                                              ; preds = %303
  %309 = load ptr, ptr %6, align 8, !tbaa !5
  %310 = load ptr, ptr %5, align 8, !tbaa !5
  %311 = load i16, ptr %35, align 2, !tbaa !55
  %312 = call noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %310, i16 noundef zeroext %311)
  store i32 %312, ptr %36, align 4, !tbaa !48
  %313 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %309, ptr noundef nonnull align 4 dereferenceable(4) %36)
  %314 = call noundef ptr @_ZN27object_escape_analysis_impl24get_singleton_allocationERKN6sparta17SetAbstractDomainINS0_15PatriciaTreeSetIPK13IRInstructionEEEE(ptr noundef nonnull align 8 dereferenceable(16) %313)
  %315 = icmp ne ptr %314, null
  %316 = xor i1 %315, true
  br label %317

317:                                              ; preds = %308, %303
  %318 = phi i1 [ true, %303 ], [ %316, %308 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  br i1 %318, label %319, label %321

319:                                              ; preds = %317
  %320 = load i16, ptr %35, align 2, !tbaa !55
  call void @"_ZZNK27object_escape_analysis_impl8Analyzer19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIS3_EEEENS4_17TopValueInterfaceISA_EEEEEEENK3$_0clEt"(ptr noundef nonnull align 8 dereferenceable(24) %7, i16 noundef zeroext %320)
  br label %321

321:                                              ; preds = %319, %317
  br label %322

322:                                              ; preds = %321
  %323 = load i16, ptr %35, align 2, !tbaa !55
  %324 = add i16 %323, 1
  store i16 %324, ptr %35, align 2, !tbaa !55
  br label %296, !llvm.loop !57

325:                                              ; preds = %302
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #7
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEC2ES4_(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef null)
  %326 = load ptr, ptr %34, align 8, !tbaa !5
  %327 = invoke noundef ptr @_ZNK27object_escape_analysis_impl13MethodSummary15allocation_insnEv(ptr noundef nonnull align 8 dereferenceable(72) %326)
          to label %328 unwind label %337

328:                                              ; preds = %325
  %329 = icmp ne ptr %327, null
  br i1 %329, label %330, label %345

330:                                              ; preds = %328
  %331 = getelementptr inbounds %"class.object_escape_analysis_impl::Analyzer", ptr %47, i32 0, i32 6
  %332 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZN12UnorderedMapIPK13IRInstruction12UnorderedSetIN10live_range3UseESt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EEixERKS2_(ptr noundef nonnull align 8 dereferenceable(56) %331, ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %333 unwind label %337

333:                                              ; preds = %330
  call void @llvm.lifetime.start.p0(i64 16, ptr %38) #7
  %334 = load ptr, ptr %5, align 8, !tbaa !5
  invoke void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEC2ES4_(ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef %334)
          to label %335 unwind label %341

335:                                              ; preds = %333
  %336 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef nonnull align 8 dereferenceable(16) %38) #7
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %38) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %38) #7
  br label %373

337:                                              ; preds = %373, %330, %325
  %338 = landingpad { ptr, i32 }
          cleanup
  %339 = extractvalue { ptr, i32 } %338, 0
  store ptr %339, ptr %11, align 8
  %340 = extractvalue { ptr, i32 } %338, 1
  store i32 %340, ptr %12, align 4
  br label %377

341:                                              ; preds = %333
  %342 = landingpad { ptr, i32 }
          cleanup
  %343 = extractvalue { ptr, i32 } %342, 0
  store ptr %343, ptr %11, align 8
  %344 = extractvalue { ptr, i32 } %342, 1
  store i32 %344, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %38) #7
  br label %377

345:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  %346 = load ptr, ptr %34, align 8, !tbaa !5
  %347 = invoke i32 @_ZNK27object_escape_analysis_impl13MethodSummary20returned_param_indexEv(ptr noundef nonnull align 8 dereferenceable(72) %346)
          to label %348 unwind label %363

348:                                              ; preds = %345
  %349 = getelementptr inbounds %"class.std::optional", ptr %39, i32 0, i32 0
  %350 = getelementptr inbounds %"struct.std::_Optional_base", ptr %349, i32 0, i32 0
  store i32 %347, ptr %350, align 2
  %351 = call noundef zeroext i1 @_ZNKSt8optionalItEcvbEv(ptr noundef nonnull align 2 dereferenceable(4) %39) #7
  br i1 %351, label %352, label %371

352:                                              ; preds = %348
  %353 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #7
  %354 = load ptr, ptr %5, align 8, !tbaa !5
  %355 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNRSt8optionalItEdeEv(ptr noundef nonnull align 2 dereferenceable(4) %39) #7
  %356 = load i16, ptr %355, align 2, !tbaa !55
  %357 = invoke noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %354, i16 noundef zeroext %356)
          to label %358 unwind label %367

358:                                              ; preds = %352
  store i32 %357, ptr %40, align 4, !tbaa !48
  %359 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %353, ptr noundef nonnull align 4 dereferenceable(4) %40)
          to label %360 unwind label %367

360:                                              ; preds = %358
  %361 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef nonnull align 8 dereferenceable(16) %359)
          to label %362 unwind label %367

362:                                              ; preds = %360
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  br label %371

363:                                              ; preds = %345
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %11, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %12, align 4
  br label %372

367:                                              ; preds = %360, %358, %352
  %368 = landingpad { ptr, i32 }
          cleanup
  %369 = extractvalue { ptr, i32 } %368, 0
  store ptr %369, ptr %11, align 8
  %370 = extractvalue { ptr, i32 } %368, 1
  store i32 %370, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  br label %372

371:                                              ; preds = %362, %348
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br label %373

372:                                              ; preds = %367, %363
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br label %377

373:                                              ; preds = %371, %335
  %374 = load ptr, ptr %6, align 8, !tbaa !5
  %375 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjRKS8_(ptr noundef nonnull align 8 dereferenceable(16) %374, ptr noundef nonnull align 4 dereferenceable(4) @_ZL15RESULT_REGISTER, ptr noundef nonnull align 8 dereferenceable(16) %37)
          to label %376 unwind label %337

376:                                              ; preds = %373
  store i32 1, ptr %13, align 4
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  br label %441

377:                                              ; preds = %372, %341, %337
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  br label %444

378:                                              ; preds = %264
  br label %379

379:                                              ; preds = %378, %263
  br label %380

380:                                              ; preds = %379, %250
  br label %381

381:                                              ; preds = %380, %227
  br label %382

382:                                              ; preds = %381
  br label %383

383:                                              ; preds = %382
  br label %384

384:                                              ; preds = %383
  br label %385

385:                                              ; preds = %384
  br label %386

386:                                              ; preds = %385
  br label %387

387:                                              ; preds = %386
  br label %388

388:                                              ; preds = %387, %84
  call void @llvm.lifetime.start.p0(i64 2, ptr %41) #7
  store i16 0, ptr %41, align 2, !tbaa !55
  br label %389

389:                                              ; preds = %398, %388
  %390 = load i16, ptr %41, align 2, !tbaa !55
  %391 = zext i16 %390 to i64
  %392 = load ptr, ptr %5, align 8, !tbaa !5
  %393 = call noundef i64 @_ZNK13IRInstruction9srcs_sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %392)
  %394 = icmp ult i64 %391, %393
  br i1 %394, label %396, label %395

395:                                              ; preds = %389
  store i32 5, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %41) #7
  br label %401

396:                                              ; preds = %389
  %397 = load i16, ptr %41, align 2, !tbaa !55
  call void @"_ZZNK27object_escape_analysis_impl8Analyzer19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIS3_EEEENS4_17TopValueInterfaceISA_EEEEEEENK3$_0clEt"(ptr noundef nonnull align 8 dereferenceable(24) %7, i16 noundef zeroext %397)
  br label %398

398:                                              ; preds = %396
  %399 = load i16, ptr %41, align 2, !tbaa !55
  %400 = add i16 %399, 1
  store i16 %400, ptr %41, align 2, !tbaa !55
  br label %389, !llvm.loop !59

401:                                              ; preds = %395
  %402 = load ptr, ptr %5, align 8, !tbaa !5
  %403 = call noundef zeroext i1 @_ZNK13IRInstruction8has_destEv(ptr noundef nonnull align 8 dereferenceable(32) %402)
  br i1 %403, label %404, label %428

404:                                              ; preds = %401
  %405 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #7
  %406 = load ptr, ptr %5, align 8, !tbaa !5
  %407 = call noundef i32 @_ZNK13IRInstruction4destEv(ptr noundef nonnull align 8 dereferenceable(32) %406)
  store i32 %407, ptr %42, align 4, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 16, ptr %43) #7
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEC2ES4_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef null)
  %408 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjOS8_(ptr noundef nonnull align 8 dereferenceable(16) %405, ptr noundef nonnull align 4 dereferenceable(4) %42, ptr noundef nonnull align 8 dereferenceable(16) %43)
          to label %409 unwind label %419

409:                                              ; preds = %404
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  %410 = load ptr, ptr %5, align 8, !tbaa !5
  %411 = call noundef zeroext i1 @_ZNK13IRInstruction12dest_is_wideEv(ptr noundef nonnull align 8 dereferenceable(32) %410)
  br i1 %411, label %412, label %427

412:                                              ; preds = %409
  %413 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #7
  %414 = load ptr, ptr %5, align 8, !tbaa !5
  %415 = call noundef i32 @_ZNK13IRInstruction4destEv(ptr noundef nonnull align 8 dereferenceable(32) %414)
  %416 = add i32 %415, 1
  store i32 %416, ptr %44, align 4, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 16, ptr %45) #7
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEE3topEv(ptr dead_on_unwind writable sret(%"class.sparta::SetAbstractDomain") align 8 %45)
  %417 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjOS8_(ptr noundef nonnull align 8 dereferenceable(16) %413, ptr noundef nonnull align 4 dereferenceable(4) %44, ptr noundef nonnull align 8 dereferenceable(16) %45)
          to label %418 unwind label %423

418:                                              ; preds = %412
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  br label %427

419:                                              ; preds = %404
  %420 = landingpad { ptr, i32 }
          cleanup
  %421 = extractvalue { ptr, i32 } %420, 0
  store ptr %421, ptr %11, align 8
  %422 = extractvalue { ptr, i32 } %420, 1
  store i32 %422, ptr %12, align 4
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  br label %444

423:                                              ; preds = %412
  %424 = landingpad { ptr, i32 }
          cleanup
  %425 = extractvalue { ptr, i32 } %424, 0
  store ptr %425, ptr %11, align 8
  %426 = extractvalue { ptr, i32 } %424, 1
  store i32 %426, ptr %12, align 4
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  br label %444

427:                                              ; preds = %418, %409
  br label %440

428:                                              ; preds = %401
  %429 = load ptr, ptr %5, align 8, !tbaa !5
  %430 = call noundef zeroext i1 @_ZNK13IRInstruction19has_move_result_anyEv(ptr noundef nonnull align 8 dereferenceable(32) %429)
  br i1 %430, label %431, label %439

431:                                              ; preds = %428
  %432 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %46) #7
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEC2ES4_(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef null)
  %433 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjOS8_(ptr noundef nonnull align 8 dereferenceable(16) %432, ptr noundef nonnull align 4 dereferenceable(4) @_ZL15RESULT_REGISTER, ptr noundef nonnull align 8 dereferenceable(16) %46)
          to label %434 unwind label %435

434:                                              ; preds = %431
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #7
  br label %439

435:                                              ; preds = %431
  %436 = landingpad { ptr, i32 }
          cleanup
  %437 = extractvalue { ptr, i32 } %436, 0
  store ptr %437, ptr %11, align 8
  %438 = extractvalue { ptr, i32 } %436, 1
  store i32 %438, ptr %12, align 4
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #7
  br label %444

439:                                              ; preds = %434, %428
  br label %440

440:                                              ; preds = %439, %427
  store i32 0, ptr %13, align 4
  br label %441

441:                                              ; preds = %440, %376, %278, %262, %249, %222, %195, %180, %167, %147, %118, %98, %82
  call void @llvm.lifetime.end.p0(i64 24, ptr %7) #7
  %442 = load i32, ptr %13, align 4
  switch i32 %442, label %450 [
    i32 0, label %443
    i32 1, label %443
  ]

443:                                              ; preds = %441, %441
  ret void

444:                                              ; preds = %435, %423, %419, %377, %279, %223, %156, %119, %99, %77
  call void @llvm.lifetime.end.p0(i64 24, ptr %7) #7
  br label %445

445:                                              ; preds = %444
  %446 = load ptr, ptr %11, align 8
  %447 = load i32, ptr %12, align 4
  %448 = insertvalue { ptr, i32 } poison, ptr %446, 0
  %449 = insertvalue { ptr, i32 } %448, i32 %447, 1
  resume { ptr, i32 } %449

450:                                              ; preds = %441
  unreachable
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZNK27object_escape_analysis_impl8Analyzer19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIS3_EEEENS4_17TopValueInterfaceISA_EEEEEEENK3$_0clEt"(ptr noundef nonnull align 8 dereferenceable(24), i16 noundef zeroext) #6 align 2

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

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

declare noundef i64 @_ZNK13IRInstruction9srcs_sizeEv(ptr noundef nonnull align 8 dereferenceable(32)) #2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #5 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEE3topEv(ptr dead_on_unwind noalias writable sret(%"class.sparta::SetAbstractDomain") align 8) #3 align 2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 16}
!10 = !{!"_ZTSZNK27object_escape_analysis_impl8Analyzer19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIS3_EEEENS4_17TopValueInterfaceISA_EEEEEEE3$_0", !6, i64 0, !6, i64 8, !6, i64 16}
!11 = !{!12, !6, i64 264}
!12 = !{!"_ZTSN27object_escape_analysis_impl8AnalyzerE", !13, i64 0, !6, i64 256, !6, i64 264, !6, i64 272, !6, i64 280, !6, i64 288, !42, i64 296, !45, i64 352, !6, i64 408, !6, i64 416}
!13 = !{!"_ZTSN11ir_analyzer14BaseIRAnalyzerIN6sparta19AbstractEnvironmentINS1_15PatriciaTreeMapIjNS1_17SetAbstractDomainINS1_15PatriciaTreeSetIPK13IRInstructionEEEENS1_17TopValueInterfaceISA_EEEEEEEE", !14, i64 0}
!14 = !{!"_ZTSN6sparta25MonotonicFixpointIteratorIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceISB_EEEEEESt4hashIPNS1_5BlockEEEE", !15, i64 0, !30, i64 144}
!15 = !{!"_ZTSN6sparta7fp_impl29MonotonicFixpointIteratorBaseIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceISC_EEEEEESt4hashIPNS2_5BlockEEEE", !16, i64 0, !6, i64 8, !17, i64 16, !24, i64 32, !24, i64 88}
!16 = !{!"_ZTSN6sparta16FixpointIteratorIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceISB_EEEEEEEE"}
!17 = !{!"_ZTSN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEEE", !18, i64 0}
!18 = !{!"_ZTSN6sparta25AbstractDomainScaffoldingINS_16environment_impl8MapValueINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceISA_EEEEEENS_19AbstractEnvironmentISD_EEEE", !19, i64 0, !20, i64 8}
!19 = !{!"_ZTSN6sparta17AbstractValueKindE", !7, i64 0}
!20 = !{!"_ZTSN6sparta16environment_impl8MapValueINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS9_EEEEEE", !21, i64 0}
!21 = !{!"_ZTSN6sparta15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS7_EEEE", !22, i64 0}
!22 = !{!"_ZTSN6sparta7pt_core16PatriciaTreeCoreIjNS_17TopValueInterfaceINS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEEEEEE", !23, i64 0}
!23 = !{!"_ZTSN5boost13intrusive_ptrIN6sparta7pt_core16PatriciaTreeNodeIjNS1_17TopValueInterfaceINS1_17SetAbstractDomainINS1_15PatriciaTreeSetIPK13IRInstructionEEEEEEEEEE", !6, i64 0}
!24 = !{!"_ZTSSt13unordered_mapIPN3cfg5BlockEN6sparta19AbstractEnvironmentINS3_15PatriciaTreeMapIjNS3_17SetAbstractDomainINS3_15PatriciaTreeSetIPK13IRInstructionEEEENS3_17TopValueInterfaceISC_EEEEEESt4hashIS2_ESt8equal_toIS2_ESaISt4pairIKS2_SG_EEE", !25, i64 0}
!25 = !{!"_ZTSSt10_HashtableIPN3cfg5BlockESt4pairIKS2_N6sparta19AbstractEnvironmentINS5_15PatriciaTreeMapIjNS5_17SetAbstractDomainINS5_15PatriciaTreeSetIPK13IRInstructionEEEENS5_17TopValueInterfaceISE_EEEEEEESaISJ_ENSt8__detail10_Select1stESt8equal_toIS2_ESt4hashIS2_ENSL_18_Mod_range_hashingENSL_20_Default_ranged_hashENSL_20_Prime_rehash_policyENSL_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !26, i64 8, !27, i64 16, !26, i64 24, !28, i64 32, !6, i64 48}
!26 = !{!"long", !7, i64 0}
!27 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!28 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !29, i64 0, !26, i64 8}
!29 = !{!"float", !7, i64 0}
!30 = !{!"_ZTSN6sparta19WeakPartialOrderingIPN3cfg5BlockESt4hashIS3_ELb0EEE", !31, i64 0, !35, i64 24, !39, i64 48, !41, i64 104}
!31 = !{!"_ZTSSt6vectorIN6sparta7WpoNodeIPN3cfg5BlockEEESaIS5_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIN6sparta7WpoNodeIPN3cfg5BlockEEESaIS5_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIN6sparta7WpoNodeIPN3cfg5BlockEEESaIS5_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIN6sparta7WpoNodeIPN3cfg5BlockEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!35 = !{!"_ZTSSt6vectorIjSaIjEE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!39 = !{!"_ZTSSt13unordered_mapIPN3cfg5BlockEjSt4hashIS2_ESt8equal_toIS2_ESaISt4pairIKS2_jEEE", !40, i64 0}
!40 = !{!"_ZTSSt10_HashtableIPN3cfg5BlockESt4pairIKS2_jESaIS5_ENSt8__detail10_Select1stESt8equal_toIS2_ESt4hashIS2_ENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !26, i64 8, !27, i64 16, !26, i64 24, !28, i64 32, !6, i64 48}
!41 = !{!"bool", !7, i64 0}
!42 = !{!"_ZTS12UnorderedMapIPK13IRInstruction12UnorderedSetIN10live_range3UseESt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EE", !43, i64 0}
!43 = !{!"_ZTSSt13unordered_mapIPK13IRInstruction12UnorderedSetIN10live_range3UseESt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_ESaISt4pairIKS2_SA_EEE", !44, i64 0}
!44 = !{!"_ZTSSt10_HashtableIPK13IRInstructionSt4pairIKS2_12UnorderedSetIN10live_range3UseESt4hashIS7_ESt8equal_toIS7_EEESaISD_ENSt8__detail10_Select1stESA_IS2_ES8_IS2_ENSF_18_Mod_range_hashingENSF_20_Default_ranged_hashENSF_20_Prime_rehash_policyENSF_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !26, i64 8, !27, i64 16, !26, i64 24, !28, i64 32, !6, i64 48}
!45 = !{!"_ZTS12UnorderedSetIPK13IRInstructionSt4hashIS2_ESt8equal_toIS2_EE", !46, i64 0}
!46 = !{!"_ZTSSt13unordered_setIPK13IRInstructionSt4hashIS2_ESt8equal_toIS2_ESaIS2_EE", !47, i64 0}
!47 = !{!"_ZTSSt10_HashtableIPK13IRInstructionS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE", !6, i64 0, !26, i64 8, !27, i64 16, !26, i64 24, !28, i64 32, !6, i64 48}
!48 = !{!49, !49, i64 0}
!49 = !{!"int", !7, i64 0}
!50 = !{!12, !6, i64 256}
!51 = !{!12, !6, i64 272}
!52 = !{!12, !6, i64 288}
!53 = !{!12, !6, i64 408}
!54 = !{!12, !6, i64 416}
!55 = !{!56, !56, i64 0}
!56 = !{!"short", !7, i64 0}
!57 = distinct !{!57, !58}
!58 = !{!"llvm.loop.mustprogress"}
!59 = distinct !{!59, !58}


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

%class.anon.302 = type { ptr, ptr, ptr }
%"class.sparta::SetAbstractDomain" = type { %"class.sparta::PowersetAbstractDomain" }
%"class.sparta::PowersetAbstractDomain" = type { %"class.sparta::AbstractDomainScaffolding.293" }
%"class.sparta::AbstractDomainScaffolding.293" = type { i32, %"class.sparta::set_impl::SetValue" }
%"class.sparta::set_impl::SetValue" = type { %"class.sparta::PatriciaTreeSet" }
%"class.sparta::PatriciaTreeSet" = type { %"class.sparta::pt_core::PatriciaTreeCore.300" }
%"class.sparta::pt_core::PatriciaTreeCore.300" = type { %"class.boost::intrusive_ptr.301" }
%"class.boost::intrusive_ptr.301" = type { ptr }
%"class.sparta::pt_core::PatriciaTreeIterator" = type { %"class.sparta::pt_core::PatriciaTreePostOrder" }
%"class.sparta::pt_core::PatriciaTreePostOrder" = type { %"class.boost::intrusive_ptr.301", %"class.std::stack", ptr }
%"class.std::stack" = type { %"class.std::deque" }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *>>::_Deque_impl" }
%"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *>>::_Deque_impl" = type { %"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *>>::_Deque_impl_data" }
%"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned long, sparta::pt_core::EmptyValue> *>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }
%"class.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", i8 }
%"struct.std::_Optional_payload_base.base" = type <{ %"union.std::_Optional_payload_base<unsigned short>::_Storage", i8 }>
%"union.std::_Optional_payload_base<unsigned short>::_Storage" = type { i16 }

@_ZN12_GLOBAL__N_14ZEROE = external hidden local_unnamed_addr global ptr, align 8
@.str.10 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [42 x i8], align 1
@_ZL15RESULT_REGISTER = external hidden constant i32, align 4
@__PRETTY_FUNCTION__._ZNK27object_escape_analysis_impl8Analyzer19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIS3_EEEENS4_17TopValueInterfaceISA_EEEEEE = external hidden unnamed_addr constant [116 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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

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

declare noundef ptr @_Z10type_classPK7DexType(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: 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: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN27object_escape_analysis_impl9is_benignEPK12DexMethodRef(ptr noundef) local_unnamed_addr #3

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZNK27object_escape_analysis_impl8Analyzer19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIS3_EEEENS4_17TopValueInterfaceISA_EEEEEE(ptr noundef nonnull align 8 dereferenceable(424) %0, ptr noundef nonnull %1, ptr noundef %2) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca %class.anon.302, align 8
  %7 = alloca ptr, align 8
  %8 = alloca %"class.sparta::SetAbstractDomain", align 8
  %9 = alloca i32, align 4
  %10 = alloca %"class.sparta::SetAbstractDomain", align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.sparta::SetAbstractDomain", align 8
  %13 = alloca i32, align 4
  %14 = alloca %"class.sparta::pt_core::PatriciaTreeIterator", align 8
  %15 = alloca %"class.sparta::pt_core::PatriciaTreeIterator", align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca %"class.sparta::SetAbstractDomain", align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca %"class.sparta::SetAbstractDomain", align 8
  %25 = alloca i16, align 2
  %26 = alloca i32, align 4
  %27 = alloca %"class.sparta::SetAbstractDomain", align 8
  %28 = alloca %"class.sparta::SetAbstractDomain", align 8
  %29 = alloca %"class.std::optional", align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca %"class.sparta::SetAbstractDomain", align 8
  %33 = alloca i32, align 4
  %34 = alloca %"class.sparta::SetAbstractDomain", align 8
  %35 = alloca %"class.sparta::SetAbstractDomain", align 8
  store ptr %1, ptr %4, align 8, !tbaa !5
  store ptr %2, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #7
  store ptr %4, ptr %6, align 8, !tbaa !5
  %36 = getelementptr inbounds i8, ptr %6, i64 8
  store ptr %5, ptr %36, align 8, !tbaa !5
  %37 = getelementptr inbounds i8, ptr %6, i64 16
  store ptr %0, ptr %37, align 8, !tbaa !9
  %38 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %1)
  %39 = icmp eq i16 %38, 21
  %40 = load ptr, ptr %4, align 8, !tbaa !5
  br i1 %39, label %41, label %59

41:                                               ; preds = %3
  %42 = call noundef ptr @_ZNK13IRInstruction8get_typeEv(ptr noundef nonnull align 8 dereferenceable(32) %40)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #7
  %43 = call noundef ptr @_Z10type_classPK7DexType(ptr noundef %42)
  store ptr %43, ptr %7, align 8, !tbaa !5
  %.not30 = icmp eq ptr %43, null
  br i1 %.not30, label %58, label %44

44:                                               ; preds = %41
  %45 = call noundef zeroext i1 @_ZNK8DexClass11is_externalEv(ptr noundef nonnull align 8 dereferenceable(176) %43)
  br i1 %45, label %58, label %46

46:                                               ; preds = %44
  %47 = getelementptr inbounds i8, ptr %0, i64 264
  %48 = load ptr, ptr %47, align 8, !tbaa !11
  %49 = call noundef i64 @_ZNK12UnorderedSetIP8DexClassSt4hashIS1_ESt8equal_toIS1_EE5countERKS1_(ptr noundef nonnull align 8 dereferenceable(56) %48, ptr noundef nonnull align 8 dereferenceable(8) %7)
  %.not31 = icmp eq i64 %49, 0
  br i1 %.not31, label %50, label %58

50:                                               ; preds = %46
  %51 = getelementptr inbounds i8, ptr %0, i64 296
  %52 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN12UnorderedMapIPK13IRInstruction12UnorderedSetIN10live_range3UseESt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EEixERKS2_(ptr noundef nonnull align 8 dereferenceable(56) %51, ptr noundef nonnull align 8 dereferenceable(8) %4)
  %53 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #7
  %54 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEC2ES4_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef %54)
  %55 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjOS8_(ptr noundef nonnull align 8 dereferenceable(16) %53, ptr noundef nonnull align 4 dereferenceable(4) @_ZL15RESULT_REGISTER, ptr noundef nonnull align 8 dereferenceable(16) %8)
          to label %.critedge35 unwind label %56

.critedge35:                                      ; preds = %50
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  br label %323

56:                                               ; preds = %50
  %57 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  br label %324

58:                                               ; preds = %41, %44, %46
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  br label %285

59:                                               ; preds = %3
  %60 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %40)
  %61 = icmp eq i16 %60, 161
  br i1 %61, label %62, label %73

62:                                               ; preds = %59
  %63 = getelementptr inbounds i8, ptr %0, i64 296
  %64 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN12UnorderedMapIPK13IRInstruction12UnorderedSetIN10live_range3UseESt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EEixERKS2_(ptr noundef nonnull align 8 dereferenceable(56) %63, ptr noundef nonnull align 8 dereferenceable(8) %4)
  %65 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #7
  %66 = load ptr, ptr %4, align 8, !tbaa !5
  %67 = call noundef i32 @_ZNK13IRInstruction4destEv(ptr noundef nonnull align 8 dereferenceable(32) %66)
  store i32 %67, ptr %9, align 4, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #7
  %68 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEC2ES4_(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %68)
  %69 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjOS8_(ptr noundef nonnull align 8 dereferenceable(16) %65, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %70 unwind label %71

70:                                               ; preds = %62
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #7
  br label %323

71:                                               ; preds = %62
  %72 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #7
  br label %324

73:                                               ; preds = %59
  %74 = load ptr, ptr %4, align 8, !tbaa !5
  %75 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %74)
  %76 = icmp eq i16 %75, 12
  br i1 %76, label %77, label %90

77:                                               ; preds = %73
  %78 = load ptr, ptr %4, align 8, !tbaa !5
  %79 = call noundef i64 @_ZNK13IRInstruction11get_literalEv(ptr noundef nonnull align 8 dereferenceable(32) %78)
  %80 = icmp eq i64 %79, 0
  br i1 %80, label %81, label %90

81:                                               ; preds = %77
  %82 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #7
  %83 = load ptr, ptr %4, align 8, !tbaa !5
  %84 = call noundef i32 @_ZNK13IRInstruction4destEv(ptr noundef nonnull align 8 dereferenceable(32) %83)
  store i32 %84, ptr %11, align 4, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) #7
  %85 = load ptr, ptr @_ZN12_GLOBAL__N_14ZEROE, align 8, !tbaa !5
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEC2ES4_(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef %85)
  %86 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjOS8_(ptr noundef nonnull align 8 dereferenceable(16) %82, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 8 dereferenceable(16) %12)
          to label %87 unwind label %88

87:                                               ; preds = %81
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #7
  br label %323

88:                                               ; preds = %81
  %89 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #7
  br label %324

90:                                               ; preds = %77, %73
  %91 = load ptr, ptr %4, align 8, !tbaa !5
  %92 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %91)
  %93 = icmp eq i16 %92, 11
  br i1 %93, label %94, label %114

94:                                               ; preds = %90
  %95 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #7
  %96 = load ptr, ptr %4, align 8, !tbaa !5
  %97 = call noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %96, i16 noundef zeroext 0)
  store i32 %97, ptr %13, align 4, !tbaa !48
  %98 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %95, ptr noundef nonnull align 4 dereferenceable(4) %13)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  %99 = call noundef i32 @_ZNK6sparta25AbstractDomainScaffoldingINS_8set_impl8SetValueINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17SetAbstractDomainIS7_EEE4kindEv(ptr noundef nonnull align 8 dereferenceable(16) %98)
  %100 = icmp eq i32 %99, 1
  br i1 %100, label %102, label %101

101:                                              ; preds = %94
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.10, i32 noundef 379, ptr noundef nonnull @__PRETTY_FUNCTION__._ZNK27object_escape_analysis_impl8Analyzer19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIS3_EEEENS4_17TopValueInterfaceISA_EEEEEE, i32 noundef 2, ptr noundef nonnull @.str.11) #8
  unreachable

102:                                              ; preds = %94
  %103 = getelementptr inbounds i8, ptr %0, i64 352
  %104 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK6sparta22PowersetAbstractDomainIPK13IRInstructionNS_8set_impl8SetValueINS_15PatriciaTreeSetIS3_EEEERKS7_NS_17SetAbstractDomainIS7_EEE8elementsEv(ptr noundef nonnull align 8 dereferenceable(16) %98)
  call void @_ZNK6sparta15PatriciaTreeSetIPK13IRInstructionE5beginEv(ptr dead_on_unwind nonnull writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8 %14, ptr noundef nonnull align 8 dereferenceable(8) %104)
  %105 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK6sparta22PowersetAbstractDomainIPK13IRInstructionNS_8set_impl8SetValueINS_15PatriciaTreeSetIS3_EEEERKS7_NS_17SetAbstractDomainIS7_EEE8elementsEv(ptr noundef nonnull align 8 dereferenceable(16) %98)
          to label %106 unwind label %109

106:                                              ; preds = %102
  invoke void @_ZNK6sparta15PatriciaTreeSetIPK13IRInstructionE3endEv(ptr dead_on_unwind nonnull writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8 %15, ptr noundef nonnull align 8 dereferenceable(8) %105)
          to label %107 unwind label %109

107:                                              ; preds = %106
  invoke void @_ZN12UnorderedSetIPK13IRInstructionSt4hashIS2_ESt8equal_toIS2_EE6insertIN6sparta7pt_core20PatriciaTreeIteratorIS2_NSA_10EmptyValueEEEEEvT_SE_(ptr noundef nonnull align 8 dereferenceable(56) %103, ptr noundef nonnull %14, ptr noundef nonnull %15)
          to label %108 unwind label %111

108:                                              ; preds = %107
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIPK13IRInstructionNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %15) #7
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIPK13IRInstructionNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %14) #7
  br label %323

109:                                              ; preds = %106, %102
  %110 = landingpad { ptr, i32 }
          cleanup
  br label %113

111:                                              ; preds = %107
  %112 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIPK13IRInstructionNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %15) #7
  br label %113

113:                                              ; preds = %111, %109
  %.pn28 = phi { ptr, i32 } [ %112, %111 ], [ %110, %109 ]
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIPK13IRInstructionNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %14) #7
  br label %324

114:                                              ; preds = %90
  %115 = load ptr, ptr %4, align 8, !tbaa !5
  %116 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %115)
  %117 = icmp eq i16 %116, 6
  br i1 %117, label %122, label %118

118:                                              ; preds = %114
  %119 = load ptr, ptr %4, align 8, !tbaa !5
  %120 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %119)
  %121 = icmp eq i16 %120, 164
  br i1 %121, label %122, label %129

122:                                              ; preds = %118, %114
  %123 = load ptr, ptr %5, align 8, !tbaa !5
  %124 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %123, ptr noundef nonnull align 4 dereferenceable(4) @_ZL15RESULT_REGISTER)
  %125 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #7
  %126 = load ptr, ptr %4, align 8, !tbaa !5
  %127 = call noundef i32 @_ZNK13IRInstruction4destEv(ptr noundef nonnull align 8 dereferenceable(32) %126)
  store i32 %127, ptr %16, align 4, !tbaa !48
  %128 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjRKS8_(ptr noundef nonnull align 8 dereferenceable(16) %125, ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 8 dereferenceable(16) %124)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #7
  br label %323

129:                                              ; preds = %118
  %130 = load ptr, ptr %4, align 8, !tbaa !5
  %131 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %130)
  %132 = icmp eq i16 %131, 3
  br i1 %132, label %133, label %142

133:                                              ; preds = %129
  %134 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #7
  %135 = load ptr, ptr %4, align 8, !tbaa !5
  %136 = call noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %135, i16 noundef zeroext 0)
  store i32 %136, ptr %17, align 4, !tbaa !48
  %137 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %134, ptr noundef nonnull align 4 dereferenceable(4) %17)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #7
  %138 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #7
  %139 = load ptr, ptr %4, align 8, !tbaa !5
  %140 = call noundef i32 @_ZNK13IRInstruction4destEv(ptr noundef nonnull align 8 dereferenceable(32) %139)
  store i32 %140, ptr %18, align 4, !tbaa !48
  %141 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjRKS8_(ptr noundef nonnull align 8 dereferenceable(16) %138, ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 8 dereferenceable(16) %137)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  br label %323

142:                                              ; preds = %129
  %143 = load ptr, ptr %4, align 8, !tbaa !5
  %144 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %143)
  %145 = icmp eq i16 %144, 18
  br i1 %145, label %146, label %153

146:                                              ; preds = %142
  %147 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #7
  %148 = load ptr, ptr %4, align 8, !tbaa !5
  %149 = call noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %148, i16 noundef zeroext 0)
  store i32 %149, ptr %19, align 4, !tbaa !48
  %150 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %147, ptr noundef nonnull align 4 dereferenceable(4) %19)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #7
  %151 = load ptr, ptr %5, align 8, !tbaa !5
  %152 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjRKS8_(ptr noundef nonnull align 8 dereferenceable(16) %151, ptr noundef nonnull align 4 dereferenceable(4) @_ZL15RESULT_REGISTER, ptr noundef nonnull align 8 dereferenceable(16) %150)
  br label %323

153:                                              ; preds = %142
  %154 = load ptr, ptr %4, align 8, !tbaa !5
  %155 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %154)
  %156 = icmp eq i16 %155, 19
  br i1 %156, label %161, label %157

157:                                              ; preds = %153
  %158 = load ptr, ptr %4, align 8, !tbaa !5
  %159 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %158)
  %160 = call noundef zeroext i1 @_ZN6opcode10is_an_igetE8IROpcode(i16 noundef zeroext %159)
  br i1 %160, label %161, label %173

161:                                              ; preds = %157, %153
  %162 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #7
  %163 = load ptr, ptr %4, align 8, !tbaa !5
  %164 = call noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %163, i16 noundef zeroext 0)
  store i32 %164, ptr %20, align 4, !tbaa !48
  %165 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %162, ptr noundef nonnull align 4 dereferenceable(4) %20)
  %166 = call noundef ptr @_ZN27object_escape_analysis_impl24get_singleton_allocationERKN6sparta17SetAbstractDomainINS0_15PatriciaTreeSetIPK13IRInstructionEEEE(ptr noundef nonnull align 8 dereferenceable(16) %165)
  %.not27 = icmp eq ptr %166, null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #7
  br i1 %.not27, label %285, label %167

167:                                              ; preds = %161
  %168 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %21) #7
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEC2ES4_(ptr noundef nonnull align 8 dereferenceable(16) %21, ptr noundef null)
  %169 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjOS8_(ptr noundef nonnull align 8 dereferenceable(16) %168, ptr noundef nonnull align 4 dereferenceable(4) @_ZL15RESULT_REGISTER, ptr noundef nonnull align 8 dereferenceable(16) %21)
          to label %170 unwind label %171

170:                                              ; preds = %167
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #7
  br label %323

171:                                              ; preds = %167
  %172 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #7
  br label %324

173:                                              ; preds = %157
  %174 = load ptr, ptr %4, align 8, !tbaa !5
  %175 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %174)
  %176 = call noundef zeroext i1 @_ZN6opcode12is_a_monitorE8IROpcode(i16 noundef zeroext %175)
  br i1 %176, label %185, label %177

177:                                              ; preds = %173
  %178 = load ptr, ptr %4, align 8, !tbaa !5
  %179 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %178)
  %180 = icmp eq i16 %179, 39
  br i1 %180, label %185, label %181

181:                                              ; preds = %177
  %182 = load ptr, ptr %4, align 8, !tbaa !5
  %183 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %182)
  %184 = icmp eq i16 %183, 40
  br i1 %184, label %185, label %191

185:                                              ; preds = %181, %177, %173
  %186 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #7
  %187 = load ptr, ptr %4, align 8, !tbaa !5
  %188 = call noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %187, i16 noundef zeroext 0)
  store i32 %188, ptr %22, align 4, !tbaa !48
  %189 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %186, ptr noundef nonnull align 4 dereferenceable(4) %22)
  %190 = call noundef ptr @_ZN27object_escape_analysis_impl24get_singleton_allocationERKN6sparta17SetAbstractDomainINS0_15PatriciaTreeSetIPK13IRInstructionEEEE(ptr noundef nonnull align 8 dereferenceable(16) %189)
  %.not26 = icmp eq ptr %190, null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #7
  br i1 %.not26, label %285, label %323

191:                                              ; preds = %181
  %192 = load ptr, ptr %4, align 8, !tbaa !5
  %193 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %192)
  %194 = call noundef zeroext i1 @_ZN6opcode10is_an_iputE8IROpcode(i16 noundef zeroext %193)
  br i1 %194, label %195, label %202

195:                                              ; preds = %191
  %196 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #7
  %197 = load ptr, ptr %4, align 8, !tbaa !5
  %198 = call noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %197, i16 noundef zeroext 1)
  store i32 %198, ptr %23, align 4, !tbaa !48
  %199 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %196, ptr noundef nonnull align 4 dereferenceable(4) %23)
  %200 = call noundef ptr @_ZN27object_escape_analysis_impl24get_singleton_allocationERKN6sparta17SetAbstractDomainINS0_15PatriciaTreeSetIPK13IRInstructionEEEE(ptr noundef nonnull align 8 dereferenceable(16) %199)
  %.not25 = icmp eq ptr %200, null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #7
  br i1 %.not25, label %285, label %201

201:                                              ; preds = %195
  call void @"_ZZNK27object_escape_analysis_impl8Analyzer19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIS3_EEEENS4_17TopValueInterfaceISA_EEEEEEENK3$_0clEt"(ptr noundef nonnull align 8 dereferenceable(24) %6, i16 noundef zeroext 0)
  br label %323

202:                                              ; preds = %191
  %203 = load ptr, ptr %4, align 8, !tbaa !5
  %204 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %203)
  %205 = call noundef zeroext i1 @_ZN6opcode12is_an_invokeE8IROpcode(i16 noundef zeroext %204)
  br i1 %205, label %206, label %285

206:                                              ; preds = %202
  %207 = load ptr, ptr %4, align 8, !tbaa !5
  %208 = call noundef ptr @_ZNK13IRInstruction10get_methodEv(ptr noundef nonnull align 8 dereferenceable(32) %207)
  %209 = call noundef zeroext i1 @_ZN27object_escape_analysis_impl9is_benignEPK12DexMethodRef(ptr noundef %208)
  br i1 %209, label %213, label %210

210:                                              ; preds = %206
  %211 = load ptr, ptr %4, align 8, !tbaa !5
  %212 = call noundef zeroext i1 @_ZNK27object_escape_analysis_impl8Analyzer20is_incomplete_markerEPK13IRInstruction(ptr noundef nonnull align 8 dereferenceable(424) %0, ptr noundef %211)
  br i1 %212, label %213, label %219

213:                                              ; preds = %210, %206
  %214 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #7
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEC2ES4_(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef null)
  %215 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjOS8_(ptr noundef nonnull align 8 dereferenceable(16) %214, ptr noundef nonnull align 4 dereferenceable(4) @_ZL15RESULT_REGISTER, ptr noundef nonnull align 8 dereferenceable(16) %24)
          to label %216 unwind label %217

216:                                              ; preds = %213
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #7
  br label %323

217:                                              ; preds = %213
  %218 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #7
  br label %324

219:                                              ; preds = %210
  %220 = getelementptr inbounds i8, ptr %0, i64 256
  %221 = load ptr, ptr %220, align 8, !tbaa !50
  %222 = getelementptr inbounds i8, ptr %0, i64 272
  %223 = load ptr, ptr %222, align 8, !tbaa !51
  %224 = load ptr, ptr %4, align 8, !tbaa !5
  %225 = getelementptr inbounds i8, ptr %0, i64 288
  %226 = load ptr, ptr %225, align 8, !tbaa !52
  %227 = getelementptr inbounds i8, ptr %0, i64 408
  %228 = load ptr, ptr %227, align 8, !tbaa !53
  %229 = getelementptr inbounds i8, ptr %0, i64 416
  %230 = load ptr, ptr %229, align 8, !tbaa !54
  %231 = call noundef ptr @_ZN27object_escape_analysis_impl29resolve_invoke_method_summaryERKN21method_override_graph5GraphERK12UnorderedMapIP9DexMethodNS_13MethodSummaryESt4hashIS6_ESt8equal_toIS6_EEPK13IRInstructionPKS5_PA2_23InsertOnlyConcurrentMapISt4pairIS6_PK7DexTypeENS_7CalleesEN5boost4hashISP_EESA_ISP_ELm83EEPSK_IPKSQ_S7_S8_ISZ_ESA_ISZ_ELm83EE(ptr noundef nonnull align 8 dereferenceable(5984) %221, ptr noundef nonnull align 8 dereferenceable(56) %223, ptr noundef %224, ptr noundef %226, ptr noundef %228, ptr noundef %230)
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %25) #7
  store i16 0, ptr %25, align 2, !tbaa !55
  %232 = load ptr, ptr %4, align 8, !tbaa !5
  %233 = call noundef i64 @_ZNK13IRInstruction9srcs_sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %232)
  %.not40 = icmp eq i64 %233, 0
  br i1 %.not40, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %245, %219
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #7
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEC2ES4_(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr noundef null)
  %234 = call noundef ptr @_ZNK27object_escape_analysis_impl13MethodSummary15allocation_insnEv(ptr noundef nonnull align 8 dereferenceable(72) %231)
  %.not = icmp eq ptr %234, null
  br i1 %.not, label %263, label %252

.lr.ph:                                           ; preds = %219, %245
  %235 = call noundef i64 @_ZNK12UnorderedSetItSt4hashItESt8equal_toItEE5countERKt(ptr noundef nonnull align 8 dereferenceable(56) %231, ptr noundef nonnull align 2 dereferenceable(2) %25)
  %.not23 = icmp eq i64 %235, 0
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #7
  br i1 %.not23, label %.critedge, label %236

236:                                              ; preds = %.lr.ph
  %237 = load ptr, ptr %5, align 8, !tbaa !5
  %238 = load ptr, ptr %4, align 8, !tbaa !5
  %239 = load i16, ptr %25, align 2, !tbaa !55
  %240 = call noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %238, i16 noundef zeroext %239)
  store i32 %240, ptr %26, align 4, !tbaa !48
  %241 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %237, ptr noundef nonnull align 4 dereferenceable(4) %26)
  %242 = call noundef ptr @_ZN27object_escape_analysis_impl24get_singleton_allocationERKN6sparta17SetAbstractDomainINS0_15PatriciaTreeSetIPK13IRInstructionEEEE(ptr noundef nonnull align 8 dereferenceable(16) %241)
  %.not24 = icmp eq ptr %242, null
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #7
  br i1 %.not24, label %243, label %245

.critedge:                                        ; preds = %.lr.ph
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #7
  br label %243

243:                                              ; preds = %.critedge, %236
  %244 = load i16, ptr %25, align 2, !tbaa !55
  call void @"_ZZNK27object_escape_analysis_impl8Analyzer19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIS3_EEEENS4_17TopValueInterfaceISA_EEEEEEENK3$_0clEt"(ptr noundef nonnull align 8 dereferenceable(24) %6, i16 noundef zeroext %244)
  br label %245

245:                                              ; preds = %236, %243
  %246 = load i16, ptr %25, align 2, !tbaa !55
  %247 = add i16 %246, 1
  store i16 %247, ptr %25, align 2, !tbaa !55
  %248 = zext i16 %247 to i64
  %249 = load ptr, ptr %4, align 8, !tbaa !5
  %250 = call noundef i64 @_ZNK13IRInstruction9srcs_sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %249)
  %251 = icmp ugt i64 %250, %248
  br i1 %251, label %.lr.ph, label %._crit_edge, !llvm.loop !57

252:                                              ; preds = %._crit_edge
  %253 = getelementptr inbounds i8, ptr %0, i64 296
  %254 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZN12UnorderedMapIPK13IRInstruction12UnorderedSetIN10live_range3UseESt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EEixERKS2_(ptr noundef nonnull align 8 dereferenceable(56) %253, ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %255 unwind label %259

255:                                              ; preds = %252
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #7
  %256 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEC2ES4_(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef %256)
          to label %257 unwind label %261

257:                                              ; preds = %255
  %258 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr noundef nonnull align 8 dereferenceable(16) %28) #7
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #7
  br label %280

259:                                              ; preds = %280, %252
  %260 = landingpad { ptr, i32 }
          cleanup
  br label %284

261:                                              ; preds = %255
  %262 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #7
  br label %284

263:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #7
  %264 = call i32 @_ZNK27object_escape_analysis_impl13MethodSummary20returned_param_indexEv(ptr noundef nonnull align 8 dereferenceable(72) %231)
  store i32 %264, ptr %29, align 4
  %265 = call noundef zeroext i1 @_ZNKSt8optionalItEcvbEv(ptr noundef nonnull align 2 dereferenceable(4) %29) #7
  br i1 %265, label %266, label %279

266:                                              ; preds = %263
  %267 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #7
  %268 = load ptr, ptr %4, align 8, !tbaa !5
  %269 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNRSt8optionalItEdeEv(ptr noundef nonnull align 2 dereferenceable(4) %29) #7
  %270 = load i16, ptr %269, align 2, !tbaa !55
  %271 = invoke noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %268, i16 noundef zeroext %270)
          to label %272 unwind label %277

272:                                              ; preds = %266
  store i32 %271, ptr %30, align 4, !tbaa !48
  %273 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %267, ptr noundef nonnull align 4 dereferenceable(4) %30)
          to label %274 unwind label %277

274:                                              ; preds = %272
  %275 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr noundef nonnull align 8 dereferenceable(16) %273)
          to label %276 unwind label %277

276:                                              ; preds = %274
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #7
  br label %279

277:                                              ; preds = %274, %272, %266
  %278 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  br label %284

279:                                              ; preds = %276, %263
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  br label %280

280:                                              ; preds = %279, %257
  %281 = load ptr, ptr %5, align 8, !tbaa !5
  %282 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjRKS8_(ptr noundef nonnull align 8 dereferenceable(16) %281, ptr noundef nonnull align 4 dereferenceable(4) @_ZL15RESULT_REGISTER, ptr noundef nonnull align 8 dereferenceable(16) %27)
          to label %283 unwind label %259

283:                                              ; preds = %280
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #7
  br label %323

284:                                              ; preds = %277, %261, %259
  %.pn = phi { ptr, i32 } [ %260, %259 ], [ %262, %261 ], [ %278, %277 ]
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #7
  br label %324

285:                                              ; preds = %58, %161, %195, %202, %185
  %286 = load ptr, ptr %4, align 8, !tbaa !5
  %287 = call noundef i64 @_ZNK13IRInstruction9srcs_sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %286)
  %.not41 = icmp eq i64 %287, 0
  br i1 %.not41, label %._crit_edge39, label %.lr.ph38

._crit_edge39:                                    ; preds = %.lr.ph38, %285
  %288 = load ptr, ptr %4, align 8, !tbaa !5
  %289 = call noundef zeroext i1 @_ZNK13IRInstruction8has_destEv(ptr noundef nonnull align 8 dereferenceable(32) %288)
  br i1 %289, label %295, label %314

.lr.ph38:                                         ; preds = %285, %.lr.ph38
  %.036 = phi i16 [ %290, %.lr.ph38 ], [ 0, %285 ]
  call void @"_ZZNK27object_escape_analysis_impl8Analyzer19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIS3_EEEENS4_17TopValueInterfaceISA_EEEEEEENK3$_0clEt"(ptr noundef nonnull align 8 dereferenceable(24) %6, i16 noundef zeroext %.036)
  %290 = add i16 %.036, 1
  %291 = zext i16 %290 to i64
  %292 = load ptr, ptr %4, align 8, !tbaa !5
  %293 = call noundef i64 @_ZNK13IRInstruction9srcs_sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %292)
  %294 = icmp ugt i64 %293, %291
  br i1 %294, label %.lr.ph38, label %._crit_edge39, !llvm.loop !59

295:                                              ; preds = %._crit_edge39
  %296 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #7
  %297 = load ptr, ptr %4, align 8, !tbaa !5
  %298 = call noundef i32 @_ZNK13IRInstruction4destEv(ptr noundef nonnull align 8 dereferenceable(32) %297)
  store i32 %298, ptr %31, align 4, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #7
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEC2ES4_(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef null)
  %299 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjOS8_(ptr noundef nonnull align 8 dereferenceable(16) %296, ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef nonnull align 8 dereferenceable(16) %32)
          to label %300 unwind label %310

300:                                              ; preds = %295
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  %301 = load ptr, ptr %4, align 8, !tbaa !5
  %302 = call noundef zeroext i1 @_ZNK13IRInstruction12dest_is_wideEv(ptr noundef nonnull align 8 dereferenceable(32) %301)
  br i1 %302, label %303, label %323

303:                                              ; preds = %300
  %304 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #7
  %305 = load ptr, ptr %4, align 8, !tbaa !5
  %306 = call noundef i32 @_ZNK13IRInstruction4destEv(ptr noundef nonnull align 8 dereferenceable(32) %305)
  %307 = add i32 %306, 1
  store i32 %307, ptr %33, align 4, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #7
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEE3topEv(ptr dead_on_unwind nonnull writable sret(%"class.sparta::SetAbstractDomain") align 8 %34)
  %308 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjOS8_(ptr noundef nonnull align 8 dereferenceable(16) %304, ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull align 8 dereferenceable(16) %34)
          to label %309 unwind label %312

309:                                              ; preds = %303
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #7
  br label %323

310:                                              ; preds = %295
  %311 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  br label %324

312:                                              ; preds = %303
  %313 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #7
  br label %324

314:                                              ; preds = %._crit_edge39
  %315 = load ptr, ptr %4, align 8, !tbaa !5
  %316 = call noundef zeroext i1 @_ZNK13IRInstruction19has_move_result_anyEv(ptr noundef nonnull align 8 dereferenceable(32) %315)
  br i1 %316, label %317, label %323

317:                                              ; preds = %314
  %318 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #7
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEC2ES4_(ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef null)
  %319 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEE3setERKjOS8_(ptr noundef nonnull align 8 dereferenceable(16) %318, ptr noundef nonnull align 4 dereferenceable(4) @_ZL15RESULT_REGISTER, ptr noundef nonnull align 8 dereferenceable(16) %35)
          to label %320 unwind label %321

320:                                              ; preds = %317
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #7
  br label %323

321:                                              ; preds = %317
  %322 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #7
  br label %324

323:                                              ; preds = %309, %300, %320, %314, %185, %.critedge35, %283, %216, %201, %170, %146, %133, %122, %108, %87, %70
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #7
  ret void

324:                                              ; preds = %321, %312, %310, %284, %217, %171, %113, %88, %71, %56
  %.pn32 = phi { ptr, i32 } [ %313, %312 ], [ %311, %310 ], [ %322, %321 ], [ %57, %56 ], [ %72, %71 ], [ %89, %88 ], [ %.pn28, %113 ], [ %172, %171 ], [ %218, %217 ], [ %.pn, %284 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #7
  resume { ptr, i32 } %.pn32
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZNK27object_escape_analysis_impl8Analyzer19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIS3_EEEENS4_17TopValueInterfaceISA_EEEEEEENK3$_0clEt"(ptr noundef nonnull align 8 dereferenceable(24), i16 noundef zeroext) local_unnamed_addr #6 align 2

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

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

declare noundef i64 @_ZNK13IRInstruction9srcs_sizeEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEaSEOS6_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #5 align 2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #6 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEE3topEv(ptr dead_on_unwind noalias writable sret(%"class.sparta::SetAbstractDomain") align 8) local_unnamed_addr #3 align 2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 16}
!10 = !{!"_ZTSZNK27object_escape_analysis_impl8Analyzer19analyze_instructionEPK13IRInstructionPN6sparta19AbstractEnvironmentINS4_15PatriciaTreeMapIjNS4_17SetAbstractDomainINS4_15PatriciaTreeSetIS3_EEEENS4_17TopValueInterfaceISA_EEEEEEE3$_0", !6, i64 0, !6, i64 8, !6, i64 16}
!11 = !{!12, !6, i64 264}
!12 = !{!"_ZTSN27object_escape_analysis_impl8AnalyzerE", !13, i64 0, !6, i64 256, !6, i64 264, !6, i64 272, !6, i64 280, !6, i64 288, !42, i64 296, !45, i64 352, !6, i64 408, !6, i64 416}
!13 = !{!"_ZTSN11ir_analyzer14BaseIRAnalyzerIN6sparta19AbstractEnvironmentINS1_15PatriciaTreeMapIjNS1_17SetAbstractDomainINS1_15PatriciaTreeSetIPK13IRInstructionEEEENS1_17TopValueInterfaceISA_EEEEEEEE", !14, i64 0}
!14 = !{!"_ZTSN6sparta25MonotonicFixpointIteratorIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceISB_EEEEEESt4hashIPNS1_5BlockEEEE", !15, i64 0, !30, i64 144}
!15 = !{!"_ZTSN6sparta7fp_impl29MonotonicFixpointIteratorBaseIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceISC_EEEEEESt4hashIPNS2_5BlockEEEE", !16, i64 0, !6, i64 8, !17, i64 16, !24, i64 32, !24, i64 88}
!16 = !{!"_ZTSN6sparta16FixpointIteratorIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceISB_EEEEEEEE"}
!17 = !{!"_ZTSN6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS8_EEEEEE", !18, i64 0}
!18 = !{!"_ZTSN6sparta25AbstractDomainScaffoldingINS_16environment_impl8MapValueINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceISA_EEEEEENS_19AbstractEnvironmentISD_EEEE", !19, i64 0, !20, i64 8}
!19 = !{!"_ZTSN6sparta17AbstractValueKindE", !7, i64 0}
!20 = !{!"_ZTSN6sparta16environment_impl8MapValueINS_15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS9_EEEEEE", !21, i64 0}
!21 = !{!"_ZTSN6sparta15PatriciaTreeMapIjNS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEENS_17TopValueInterfaceIS7_EEEE", !22, i64 0}
!22 = !{!"_ZTSN6sparta7pt_core16PatriciaTreeCoreIjNS_17TopValueInterfaceINS_17SetAbstractDomainINS_15PatriciaTreeSetIPK13IRInstructionEEEEEEEE", !23, i64 0}
!23 = !{!"_ZTSN5boost13intrusive_ptrIN6sparta7pt_core16PatriciaTreeNodeIjNS1_17TopValueInterfaceINS1_17SetAbstractDomainINS1_15PatriciaTreeSetIPK13IRInstructionEEEEEEEEEE", !6, i64 0}
!24 = !{!"_ZTSSt13unordered_mapIPN3cfg5BlockEN6sparta19AbstractEnvironmentINS3_15PatriciaTreeMapIjNS3_17SetAbstractDomainINS3_15PatriciaTreeSetIPK13IRInstructionEEEENS3_17TopValueInterfaceISC_EEEEEESt4hashIS2_ESt8equal_toIS2_ESaISt4pairIKS2_SG_EEE", !25, i64 0}
!25 = !{!"_ZTSSt10_HashtableIPN3cfg5BlockESt4pairIKS2_N6sparta19AbstractEnvironmentINS5_15PatriciaTreeMapIjNS5_17SetAbstractDomainINS5_15PatriciaTreeSetIPK13IRInstructionEEEENS5_17TopValueInterfaceISE_EEEEEEESaISJ_ENSt8__detail10_Select1stESt8equal_toIS2_ESt4hashIS2_ENSL_18_Mod_range_hashingENSL_20_Default_ranged_hashENSL_20_Prime_rehash_policyENSL_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !26, i64 8, !27, i64 16, !26, i64 24, !28, i64 32, !6, i64 48}
!26 = !{!"long", !7, i64 0}
!27 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!28 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !29, i64 0, !26, i64 8}
!29 = !{!"float", !7, i64 0}
!30 = !{!"_ZTSN6sparta19WeakPartialOrderingIPN3cfg5BlockESt4hashIS3_ELb0EEE", !31, i64 0, !35, i64 24, !39, i64 48, !41, i64 104}
!31 = !{!"_ZTSSt6vectorIN6sparta7WpoNodeIPN3cfg5BlockEEESaIS5_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIN6sparta7WpoNodeIPN3cfg5BlockEEESaIS5_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIN6sparta7WpoNodeIPN3cfg5BlockEEESaIS5_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIN6sparta7WpoNodeIPN3cfg5BlockEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!35 = !{!"_ZTSSt6vectorIjSaIjEE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!39 = !{!"_ZTSSt13unordered_mapIPN3cfg5BlockEjSt4hashIS2_ESt8equal_toIS2_ESaISt4pairIKS2_jEEE", !40, i64 0}
!40 = !{!"_ZTSSt10_HashtableIPN3cfg5BlockESt4pairIKS2_jESaIS5_ENSt8__detail10_Select1stESt8equal_toIS2_ESt4hashIS2_ENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !26, i64 8, !27, i64 16, !26, i64 24, !28, i64 32, !6, i64 48}
!41 = !{!"bool", !7, i64 0}
!42 = !{!"_ZTS12UnorderedMapIPK13IRInstruction12UnorderedSetIN10live_range3UseESt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_EE", !43, i64 0}
!43 = !{!"_ZTSSt13unordered_mapIPK13IRInstruction12UnorderedSetIN10live_range3UseESt4hashIS5_ESt8equal_toIS5_EES6_IS2_ES8_IS2_ESaISt4pairIKS2_SA_EEE", !44, i64 0}
!44 = !{!"_ZTSSt10_HashtableIPK13IRInstructionSt4pairIKS2_12UnorderedSetIN10live_range3UseESt4hashIS7_ESt8equal_toIS7_EEESaISD_ENSt8__detail10_Select1stESA_IS2_ES8_IS2_ENSF_18_Mod_range_hashingENSF_20_Default_ranged_hashENSF_20_Prime_rehash_policyENSF_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !26, i64 8, !27, i64 16, !26, i64 24, !28, i64 32, !6, i64 48}
!45 = !{!"_ZTS12UnorderedSetIPK13IRInstructionSt4hashIS2_ESt8equal_toIS2_EE", !46, i64 0}
!46 = !{!"_ZTSSt13unordered_setIPK13IRInstructionSt4hashIS2_ESt8equal_toIS2_ESaIS2_EE", !47, i64 0}
!47 = !{!"_ZTSSt10_HashtableIPK13IRInstructionS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE", !6, i64 0, !26, i64 8, !27, i64 16, !26, i64 24, !28, i64 32, !6, i64 48}
!48 = !{!49, !49, i64 0}
!49 = !{!"int", !7, i64 0}
!50 = !{!12, !6, i64 256}
!51 = !{!12, !6, i64 272}
!52 = !{!12, !6, i64 288}
!53 = !{!12, !6, i64 408}
!54 = !{!12, !6, i64 416}
!55 = !{!56, !56, i64 0}
!56 = !{!"short", !7, i64 0}
!57 = distinct !{!57, !58}
!58 = !{!"llvm.loop.mustprogress"}
!59 = distinct !{!59, !58}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass