From 91fbc8593d3ca2f8153eadbb54fd3376e441daf8 Mon Sep 17 00:00:00 2001 From: dianqk <10829914+dianqk@users.noreply.github.com> Date: Sat, 7 Jun 2025 16:44:42 +0800 Subject: [PATCH 1/3] pre-commit: PR140954 --- scripts/setup_pre_commit_patch.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..dff24751346 100755 --- a/scripts/setup_pre_commit_patch.sh +++ b/scripts/setup_pre_commit_patch.sh @@ -2,7 +2,7 @@ set -euo pipefail shopt -s inherit_errexit -export GITHUB_PATCH_ID="/llvm-project/commit/" +export GITHUB_PATCH_ID=llvm/llvm-project/pull/140954 export COMPTIME_MODE=0 # Please rebase manually From f92e3ea30ccd09d972117359117fce7dec368273 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 7 Jun 2025 09:04:52 +0000 Subject: [PATCH 2/3] pre-commit: Update --- .../optimized/commandlineflag_test.ll | 6 +- bench/abseil-cpp/optimized/usage_config.ll | 262 +++--- bench/arrow/optimized/vector_selection.ll | 12 +- bench/boost/optimized/ipv4_address_rule.ll | 141 ++-- bench/boost/optimized/ipvfuture_rule.ll | 82 +- .../optimized/matches_relation_factory.ll | 342 ++++---- bench/boost/optimized/origin_form_rule.ll | 38 +- bench/bullet3/optimized/btGImpactBvh.ll | 126 ++- .../btReducedDeformableBodyHelpers.ll | 476 +++++------ bench/bullet3/optimized/btSoftBodyHelpers.ll | 776 ++++++++--------- bench/ceres/optimized/line_search.ll | 787 +++++++++--------- bench/clamav/optimized/headers.ll | 82 +- bench/cmake/optimized/cmCTest.ll | 16 +- bench/cmake/optimized/cmCTestBuildHandler.ll | 8 +- .../cmake/optimized/cmNinjaTargetGenerator.ll | 526 ++++++------ bench/cmake/optimized/cmProcessTools.ll | 186 ++--- bench/cmake/optimized/cmSystemTools.ll | 24 +- .../optimized/13v7qjk9d4erkgv5w97enxlzt.ll | 23 +- bench/lean4/optimized/ir_interpreter.ll | 269 +++--- bench/linux/optimized/drm_modes.ll | 10 +- bench/llvm/optimized/Attributor.ll | 4 +- bench/llvm/optimized/BitcodeReader.ll | 28 +- bench/llvm/optimized/FastISel.ll | 501 +++++------ .../optimized/LoopVectorizationLegality.ll | 95 +-- bench/llvm/optimized/NativeFunctionSymbol.ll | 7 +- .../llvm/optimized/NativeInlineSiteSymbol.ll | 195 +++-- bench/llvm/optimized/ObjCARCOpts.ll | 430 +++++----- bench/llvm/optimized/SemaLookup.ll | 178 ++-- bench/llvm/optimized/SymbolDumper.ll | 17 +- bench/mitsuba3/optimized/rectangle.ll | 191 ++--- bench/open3d/optimized/ViewTrajectory.ll | 161 ++-- bench/opencv/optimized/serialization.ll | 262 +++--- bench/openusd/optimized/unitTestDelegate.ll | 13 +- bench/openusd/optimized/xformCache.ll | 233 +++--- .../optimized/2ov174hlbjn2zukn47jy5qk00.ll | 172 ++-- .../optimized/acx590v32pn6eo20biyujqd8g.ll | 178 ++-- bench/yosys/optimized/abc.ll | 81 +- bench/yosys/optimized/cellmatch.ll | 79 +- bench/z3/optimized/drat_frontend.ll | 320 +++---- .../optimized/11rrvqb0alhs5mh4wxxke3etr.ll | 5 +- 40 files changed, 3574 insertions(+), 3768 deletions(-) diff --git a/bench/abseil-cpp/optimized/commandlineflag_test.ll b/bench/abseil-cpp/optimized/commandlineflag_test.ll index 24be1686ff1..910c83a1e90 100644 --- a/bench/abseil-cpp/optimized/commandlineflag_test.ll +++ b/bench/abseil-cpp/optimized/commandlineflag_test.ll @@ -14645,11 +14645,11 @@ _ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_st %0 = alloca %"struct.absl::FlagsUsageConfig", align 8 %1 = alloca %"struct.absl::FlagsUsageConfig", align 8 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %0) #24 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(160) %0, i8 0, i64 160, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(160) %0, i8 0, i64 128, i1 false) %2 = getelementptr inbounds nuw i8, ptr %0, i64 128 store ptr @_ZN12_GLOBAL__N_119CommandLineFlagTest17NormalizeFileNameB5cxx11ESt17basic_string_viewIcSt11char_traitsIcEE, ptr %2, align 8 - %.sroa.0.i.i.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 136 - store i64 0, ptr %.sroa.0.i.i.i.sroa.4.0..sroa_idx, align 8, !tbaa !21 + %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 136 + store i64 0, ptr %.sroa.4.0..sroa_idx, align 8 %3 = getelementptr inbounds nuw i8, ptr %0, i64 144 store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEPS8_E10_M_managerERSt9_Any_dataRKSB_St18_Manager_operation, ptr %3, align 8, !tbaa !80 %4 = getelementptr inbounds nuw i8, ptr %0, i64 152 diff --git a/bench/abseil-cpp/optimized/usage_config.ll b/bench/abseil-cpp/optimized/usage_config.ll index 566818df2a8..d1139b7d3e1 100644 --- a/bench/abseil-cpp/optimized/usage_config.ll +++ b/bench/abseil-cpp/optimized/usage_config.ll @@ -130,7 +130,7 @@ _ZN4absl14flags_internal12_GLOBAL__N_122CustomUsageConfigMutexEv.exit: ; preds = 8: ; preds = %_ZN4absl14flags_internal12_GLOBAL__N_122CustomUsageConfigMutexEv.exit invoke void @_ZN4absl16FlagsUsageConfigC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(160) %0, ptr noundef nonnull align 8 dereferenceable(160) %7) - to label %29 unwind label %9 + to label %28 unwind label %9 9: ; preds = %8 %10 = landingpad { ptr, i32 } @@ -152,58 +152,56 @@ _ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_st store ptr @_ZN4absl14flags_internal12_GLOBAL__N_122ContainsHelpshortFlagsESt17basic_string_viewIcSt11char_traitsIcEE, ptr %0, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store i64 0, ptr %.sroa.4.0..sroa_idx, align 8 - %14 = getelementptr inbounds nuw i8, ptr %0, i64 32 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(128) %14, i8 0, i64 128, i1 false) - %15 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation, ptr %15, align 8, !tbaa !13 - %16 = getelementptr inbounds nuw i8, ptr %0, i64 24 - store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E9_M_invokeERKSt9_Any_dataOS3_, ptr %16, align 8, !tbaa !13 - %17 = getelementptr inbounds nuw i8, ptr %0, i64 32 - store ptr @_ZN4absl14flags_internal12_GLOBAL__N_124ContainsHelppackageFlagsESt17basic_string_viewIcSt11char_traitsIcEE, ptr %17, align 8 - %.sroa.0.i.i.i2.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 40 - store i64 0, ptr %.sroa.0.i.i.i2.sroa.4.0..sroa_idx, align 8, !tbaa !14 - %18 = getelementptr inbounds nuw i8, ptr %0, i64 48 - store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation, ptr %18, align 8, !tbaa !13 - %19 = getelementptr inbounds nuw i8, ptr %0, i64 56 - store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E9_M_invokeERKSt9_Any_dataOS3_, ptr %19, align 8, !tbaa !13 - %20 = getelementptr inbounds nuw i8, ptr %0, i64 64 - store ptr @_ZN4absl14flags_internal12_GLOBAL__N_124ContainsHelppackageFlagsESt17basic_string_viewIcSt11char_traitsIcEE, ptr %20, align 8 - %.sroa.0.i.i.i7.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 72 - store i64 0, ptr %.sroa.0.i.i.i7.sroa.4.0..sroa_idx, align 8, !tbaa !14 - %21 = getelementptr inbounds nuw i8, ptr %0, i64 80 - store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation, ptr %21, align 8, !tbaa !13 - %22 = getelementptr inbounds nuw i8, ptr %0, i64 88 - store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E9_M_invokeERKSt9_Any_dataOS3_, ptr %22, align 8, !tbaa !13 - %23 = getelementptr inbounds nuw i8, ptr %0, i64 96 - store ptr @_ZN4absl14flags_internal12_GLOBAL__N_113VersionStringB5cxx11Ev, ptr %23, align 8 - %.sroa.0.i.i.i12.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 104 - store i64 0, ptr %.sroa.0.i.i.i12.sroa.4.0..sroa_idx, align 8, !tbaa !14 - %24 = getelementptr inbounds nuw i8, ptr %0, i64 112 - store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEPS6_E10_M_managerERSt9_Any_dataRKS9_St18_Manager_operation, ptr %24, align 8, !tbaa !13 - %25 = getelementptr inbounds nuw i8, ptr %0, i64 120 - store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEPS6_E9_M_invokeERKSt9_Any_data, ptr %25, align 8, !tbaa !13 - %26 = getelementptr inbounds nuw i8, ptr %0, i64 128 - store ptr @_ZN4absl14flags_internal12_GLOBAL__N_117NormalizeFilenameB5cxx11ESt17basic_string_viewIcSt11char_traitsIcEE, ptr %26, align 8 - %.sroa.0.i.i.i15.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 136 - store i64 0, ptr %.sroa.0.i.i.i15.sroa.4.0..sroa_idx, align 8, !tbaa !14 - %27 = getelementptr inbounds nuw i8, ptr %0, i64 144 - store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEPS8_E10_M_managerERSt9_Any_dataRKSB_St18_Manager_operation, ptr %27, align 8, !tbaa !13 - %28 = getelementptr inbounds nuw i8, ptr %0, i64 152 - store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEPS8_E9_M_invokeERKSt9_Any_dataOS7_, ptr %28, align 8, !tbaa !13 - br label %29 - -29: ; preds = %8, %_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEEaSIPS8_EENSt9enable_ifIXsr9_CallableIT_EE5valueERS9_E4typeEOSD_.exit + %14 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation, ptr %14, align 8, !tbaa !13 + %15 = getelementptr inbounds nuw i8, ptr %0, i64 24 + store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E9_M_invokeERKSt9_Any_dataOS3_, ptr %15, align 8, !tbaa !13 + %16 = getelementptr inbounds nuw i8, ptr %0, i64 32 + store ptr @_ZN4absl14flags_internal12_GLOBAL__N_124ContainsHelppackageFlagsESt17basic_string_viewIcSt11char_traitsIcEE, ptr %16, align 8 + %.sroa.425.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 40 + store i64 0, ptr %.sroa.425.0..sroa_idx, align 8 + %17 = getelementptr inbounds nuw i8, ptr %0, i64 48 + store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation, ptr %17, align 8, !tbaa !13 + %18 = getelementptr inbounds nuw i8, ptr %0, i64 56 + store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E9_M_invokeERKSt9_Any_dataOS3_, ptr %18, align 8, !tbaa !13 + %19 = getelementptr inbounds nuw i8, ptr %0, i64 64 + store ptr @_ZN4absl14flags_internal12_GLOBAL__N_124ContainsHelppackageFlagsESt17basic_string_viewIcSt11char_traitsIcEE, ptr %19, align 8 + %.sroa.427.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 72 + store i64 0, ptr %.sroa.427.0..sroa_idx, align 8 + %20 = getelementptr inbounds nuw i8, ptr %0, i64 80 + store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation, ptr %20, align 8, !tbaa !13 + %21 = getelementptr inbounds nuw i8, ptr %0, i64 88 + store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E9_M_invokeERKSt9_Any_dataOS3_, ptr %21, align 8, !tbaa !13 + %22 = getelementptr inbounds nuw i8, ptr %0, i64 96 + store ptr @_ZN4absl14flags_internal12_GLOBAL__N_113VersionStringB5cxx11Ev, ptr %22, align 8 + %.sroa.429.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 104 + store i64 0, ptr %.sroa.429.0..sroa_idx, align 8 + %23 = getelementptr inbounds nuw i8, ptr %0, i64 112 + store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEPS6_E10_M_managerERSt9_Any_dataRKS9_St18_Manager_operation, ptr %23, align 8, !tbaa !13 + %24 = getelementptr inbounds nuw i8, ptr %0, i64 120 + store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEPS6_E9_M_invokeERKSt9_Any_data, ptr %24, align 8, !tbaa !13 + %25 = getelementptr inbounds nuw i8, ptr %0, i64 128 + store ptr @_ZN4absl14flags_internal12_GLOBAL__N_117NormalizeFilenameB5cxx11ESt17basic_string_viewIcSt11char_traitsIcEE, ptr %25, align 8 + %.sroa.431.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 136 + store i64 0, ptr %.sroa.431.0..sroa_idx, align 8 + %26 = getelementptr inbounds nuw i8, ptr %0, i64 144 + store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEPS8_E10_M_managerERSt9_Any_dataRKSB_St18_Manager_operation, ptr %26, align 8, !tbaa !13 + %27 = getelementptr inbounds nuw i8, ptr %0, i64 152 + store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEPS8_E9_M_invokeERKSt9_Any_dataOS7_, ptr %27, align 8, !tbaa !13 + br label %28 + +28: ; preds = %8, %_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEEaSIPS8_EENSt9enable_ifIXsr9_CallableIT_EE5valueERS9_E4typeEOSD_.exit invoke void @_ZN4absl5Mutex6UnlockEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZZN4absl14flags_internal12_GLOBAL__N_122CustomUsageConfigMutexEvE5mutex) - to label %_ZN4absl9MutexLockD2Ev.exit18 unwind label %30 + to label %_ZN4absl9MutexLockD2Ev.exit18 unwind label %29 -30: ; preds = %29 - %31 = landingpad { ptr, i32 } +29: ; preds = %28 + %30 = landingpad { ptr, i32 } catch ptr null - %32 = extractvalue { ptr, i32 } %31, 0 - tail call void @__clang_call_terminate(ptr %32) #17 + %31 = extractvalue { ptr, i32 } %30, 0 + tail call void @__clang_call_terminate(ptr %31) #17 unreachable -_ZN4absl9MutexLockD2Ev.exit18: ; preds = %29 +_ZN4absl9MutexLockD2Ev.exit18: ; preds = %28 ret void } @@ -216,7 +214,7 @@ define linkonce_odr dso_local void @_ZN4absl16FlagsUsageConfigC2ERKS0_(ptr nound %4 = getelementptr inbounds nuw i8, ptr %0, i64 24 %5 = getelementptr inbounds nuw i8, ptr %1, i64 16 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %0, i8 0, i64 32, i1 false) - %6 = load ptr, ptr %5, align 8, !tbaa !15 + %6 = load ptr, ptr %5, align 8, !tbaa !14 %.not.i.i.not.i = icmp eq ptr %6, null br i1 %.not.i.i.not.i, label %_ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEC2ERKS5_.exit, label %7 @@ -226,16 +224,16 @@ define linkonce_odr dso_local void @_ZN4absl16FlagsUsageConfigC2ERKS0_(ptr nound 9: ; preds = %7 %10 = getelementptr inbounds nuw i8, ptr %1, i64 24 - %11 = load ptr, ptr %10, align 8, !tbaa !17 - store ptr %11, ptr %4, align 8, !tbaa !17 - %12 = load ptr, ptr %5, align 8, !tbaa !15 - store ptr %12, ptr %3, align 8, !tbaa !15 + %11 = load ptr, ptr %10, align 8, !tbaa !16 + store ptr %11, ptr %4, align 8, !tbaa !16 + %12 = load ptr, ptr %5, align 8, !tbaa !14 + store ptr %12, ptr %3, align 8, !tbaa !14 br label %_ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEC2ERKS5_.exit 13: ; preds = %7 %14 = landingpad { ptr, i32 } cleanup - %15 = load ptr, ptr %3, align 8, !tbaa !15 + %15 = load ptr, ptr %3, align 8, !tbaa !14 %.not.i.i = icmp eq ptr %15, null br i1 %.not.i.i, label %common.resume, label %16 @@ -260,7 +258,7 @@ _ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEC2ERKS5_.exit: ; pr %23 = getelementptr inbounds nuw i8, ptr %0, i64 56 %24 = getelementptr inbounds nuw i8, ptr %1, i64 48 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %21, i8 0, i64 32, i1 false) - %25 = load ptr, ptr %24, align 8, !tbaa !15 + %25 = load ptr, ptr %24, align 8, !tbaa !14 %.not.i.i.not.i13 = icmp eq ptr %25, null br i1 %.not.i.i.not.i13, label %_ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEC2ERKS5_.exit16, label %26 @@ -271,16 +269,16 @@ _ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEC2ERKS5_.exit: ; pr 29: ; preds = %26 %30 = getelementptr inbounds nuw i8, ptr %1, i64 56 - %31 = load ptr, ptr %30, align 8, !tbaa !17 - store ptr %31, ptr %23, align 8, !tbaa !17 - %32 = load ptr, ptr %24, align 8, !tbaa !15 - store ptr %32, ptr %22, align 8, !tbaa !15 + %31 = load ptr, ptr %30, align 8, !tbaa !16 + store ptr %31, ptr %23, align 8, !tbaa !16 + %32 = load ptr, ptr %24, align 8, !tbaa !14 + store ptr %32, ptr %22, align 8, !tbaa !14 br label %_ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEC2ERKS5_.exit16 33: ; preds = %26 %34 = landingpad { ptr, i32 } cleanup - %35 = load ptr, ptr %22, align 8, !tbaa !15 + %35 = load ptr, ptr %22, align 8, !tbaa !14 %.not.i.i14 = icmp eq ptr %35, null br i1 %.not.i.i14, label %.body, label %36 @@ -301,7 +299,7 @@ _ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEC2ERKS5_.exit16: ; %43 = getelementptr inbounds nuw i8, ptr %0, i64 88 %44 = getelementptr inbounds nuw i8, ptr %1, i64 80 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %41, i8 0, i64 32, i1 false) - %45 = load ptr, ptr %44, align 8, !tbaa !15 + %45 = load ptr, ptr %44, align 8, !tbaa !14 %.not.i.i.not.i17 = icmp eq ptr %45, null br i1 %.not.i.i.not.i17, label %_ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEC2ERKS5_.exit22, label %46 @@ -312,16 +310,16 @@ _ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEC2ERKS5_.exit16: ; 49: ; preds = %46 %50 = getelementptr inbounds nuw i8, ptr %1, i64 88 - %51 = load ptr, ptr %50, align 8, !tbaa !17 - store ptr %51, ptr %43, align 8, !tbaa !17 - %52 = load ptr, ptr %44, align 8, !tbaa !15 - store ptr %52, ptr %42, align 8, !tbaa !15 + %51 = load ptr, ptr %50, align 8, !tbaa !16 + store ptr %51, ptr %43, align 8, !tbaa !16 + %52 = load ptr, ptr %44, align 8, !tbaa !14 + store ptr %52, ptr %42, align 8, !tbaa !14 br label %_ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEC2ERKS5_.exit22 53: ; preds = %46 %54 = landingpad { ptr, i32 } cleanup - %55 = load ptr, ptr %42, align 8, !tbaa !15 + %55 = load ptr, ptr %42, align 8, !tbaa !14 %.not.i.i18 = icmp eq ptr %55, null br i1 %.not.i.i18, label %.body20, label %56 @@ -342,7 +340,7 @@ _ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEC2ERKS5_.exit22: ; %63 = getelementptr inbounds nuw i8, ptr %0, i64 120 %64 = getelementptr inbounds nuw i8, ptr %1, i64 112 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %61, i8 0, i64 32, i1 false) - %65 = load ptr, ptr %64, align 8, !tbaa !15 + %65 = load ptr, ptr %64, align 8, !tbaa !14 %.not.i.i.not.i23 = icmp eq ptr %65, null br i1 %.not.i.i.not.i23, label %_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEC2ERKS7_.exit, label %66 @@ -353,16 +351,16 @@ _ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEC2ERKS5_.exit22: ; 69: ; preds = %66 %70 = getelementptr inbounds nuw i8, ptr %1, i64 120 - %71 = load ptr, ptr %70, align 8, !tbaa !19 - store ptr %71, ptr %63, align 8, !tbaa !19 - %72 = load ptr, ptr %64, align 8, !tbaa !15 - store ptr %72, ptr %62, align 8, !tbaa !15 + %71 = load ptr, ptr %70, align 8, !tbaa !18 + store ptr %71, ptr %63, align 8, !tbaa !18 + %72 = load ptr, ptr %64, align 8, !tbaa !14 + store ptr %72, ptr %62, align 8, !tbaa !14 br label %_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEC2ERKS7_.exit 73: ; preds = %66 %74 = landingpad { ptr, i32 } cleanup - %75 = load ptr, ptr %62, align 8, !tbaa !15 + %75 = load ptr, ptr %62, align 8, !tbaa !14 %.not.i.i24 = icmp eq ptr %75, null br i1 %.not.i.i24, label %.body26, label %76 @@ -383,7 +381,7 @@ _ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEC2ERKS7_. %83 = getelementptr inbounds nuw i8, ptr %0, i64 152 %84 = getelementptr inbounds nuw i8, ptr %1, i64 144 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %81, i8 0, i64 32, i1 false) - %85 = load ptr, ptr %84, align 8, !tbaa !15 + %85 = load ptr, ptr %84, align 8, !tbaa !14 %.not.i.i.not.i28 = icmp eq ptr %85, null br i1 %.not.i.i.not.i28, label %_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEEC2ERKS9_.exit, label %86 @@ -394,16 +392,16 @@ _ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEC2ERKS7_. 89: ; preds = %86 %90 = getelementptr inbounds nuw i8, ptr %1, i64 152 - %91 = load ptr, ptr %90, align 8, !tbaa !21 - store ptr %91, ptr %83, align 8, !tbaa !21 - %92 = load ptr, ptr %84, align 8, !tbaa !15 - store ptr %92, ptr %82, align 8, !tbaa !15 + %91 = load ptr, ptr %90, align 8, !tbaa !20 + store ptr %91, ptr %83, align 8, !tbaa !20 + %92 = load ptr, ptr %84, align 8, !tbaa !14 + store ptr %92, ptr %82, align 8, !tbaa !14 br label %_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEEC2ERKS9_.exit 93: ; preds = %86 %94 = landingpad { ptr, i32 } cleanup - %95 = load ptr, ptr %82, align 8, !tbaa !15 + %95 = load ptr, ptr %82, align 8, !tbaa !14 %.not.i.i29 = icmp eq ptr %95, null br i1 %.not.i.i29, label %.body31, label %96 @@ -422,7 +420,7 @@ _ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_st ret void .body31: ; preds = %93, %96 - %101 = load ptr, ptr %62, align 8, !tbaa !15 + %101 = load ptr, ptr %62, align 8, !tbaa !14 %.not.i = icmp eq ptr %101, null br i1 %.not.i, label %.body26, label %102 @@ -439,7 +437,7 @@ _ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_st .body26: ; preds = %102, %.body31, %76, %73 %.pn = phi { ptr, i32 } [ %74, %76 ], [ %74, %73 ], [ %94, %.body31 ], [ %94, %102 ] - %107 = load ptr, ptr %42, align 8, !tbaa !15 + %107 = load ptr, ptr %42, align 8, !tbaa !14 %.not.i33 = icmp eq ptr %107, null br i1 %.not.i33, label %.body20, label %108 @@ -456,7 +454,7 @@ _ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_st .body20: ; preds = %108, %.body26, %56, %53 %.pn.pn = phi { ptr, i32 } [ %54, %56 ], [ %54, %53 ], [ %.pn, %.body26 ], [ %.pn, %108 ] - %113 = load ptr, ptr %22, align 8, !tbaa !15 + %113 = load ptr, ptr %22, align 8, !tbaa !14 %.not.i35 = icmp eq ptr %113, null br i1 %.not.i35, label %.body, label %114 @@ -473,7 +471,7 @@ _ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_st .body: ; preds = %114, %.body20, %36, %33 %.pn.pn.pn = phi { ptr, i32 } [ %34, %36 ], [ %34, %33 ], [ %.pn.pn, %.body20 ], [ %.pn.pn, %114 ] - %119 = load ptr, ptr %3, align 8, !tbaa !15 + %119 = load ptr, ptr %3, align 8, !tbaa !14 %.not.i37 = icmp eq ptr %119, null br i1 %.not.i37, label %common.resume, label %120 @@ -501,7 +499,7 @@ _ZNSt11char_traitsIcE4findEPKcmRS1_.exit.i.i.i: ; preds = %2, %6 %.1.i.i.in.i = phi i64 [ %.1.i.i.i, %6 ], [ %0, %2 ] %.1.i.i.i = add i64 %.1.i.i.in.i, -1 %4 = getelementptr inbounds nuw i8, ptr %1, i64 %.1.i.i.i - %5 = load i8, ptr %4, align 1, !tbaa !14 + %5 = load i8, ptr %4, align 1, !tbaa !22 switch i8 %5, label %6 [ i8 92, label %_ZNKSt17basic_string_viewIcSt11char_traitsIcEE12find_last_ofEPKcm.exit.i i8 47, label %_ZNKSt17basic_string_viewIcSt11char_traitsIcEE12find_last_ofEPKcm.exit.i @@ -581,7 +579,7 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.threa br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i: ; preds = %_ZN4absl10StartsWithESt17basic_string_viewIcSt11char_traitsIcEES3_.exit19 - %29 = load i64, ptr %26, align 8, !tbaa !14 + %29 = load i64, ptr %26, align 8, !tbaa !22 %30 = add i64 %29, 1 call void @_ZdlPvm(ptr noundef %11, i64 noundef %30) #19 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit @@ -634,7 +632,7 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.threa br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i: ; preds = %7 - %14 = load i64, ptr %10, align 8, !tbaa !14 + %14 = load i64, ptr %10, align 8, !tbaa !22 %15 = add i64 %14, 1 tail call void @_ZdlPvm(ptr noundef %9, i64 noundef %15) #19 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit @@ -655,7 +653,7 @@ define internal void @_ZN4absl14flags_internal12_GLOBAL__N_117NormalizeFilenameB _ZNSt11char_traitsIcE4findEPKcmRS1_.exit.i.i: ; preds = %3, %7 %.0710.i.i = phi i64 [ %8, %7 ], [ 0, %3 ] %5 = getelementptr inbounds nuw i8, ptr %2, i64 %.0710.i.i - %6 = load i8, ptr %5, align 1, !tbaa !14 + %6 = load i8, ptr %5, align 1, !tbaa !22 switch i8 %6, label %_ZNKSt17basic_string_viewIcSt11char_traitsIcEE17find_first_not_ofEPKcm.exit [ i8 92, label %7 i8 47, label %7 @@ -676,7 +674,7 @@ _ZNKSt17basic_string_viewIcSt11char_traitsIcEE17find_first_not_ofEPKcm.exit.thre store ptr %11, ptr %0, align 8, !tbaa !31 %12 = getelementptr inbounds nuw i8, ptr %0, i64 8 store i64 0, ptr %12, align 8, !tbaa !29 - store i8 0, ptr %11, align 8, !tbaa !14 + store i8 0, ptr %11, align 8, !tbaa !22 br label %28 13: ; preds = %_ZNKSt17basic_string_viewIcSt11char_traitsIcEE17find_first_not_ofEPKcm.exit @@ -692,7 +690,7 @@ _ZNKSt17basic_string_viewIcSt11char_traitsIcEE17find_first_not_ofEPKcm.exit.thre %17 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(8) %4, i64 noundef 0) store ptr %17, ptr %0, align 8, !tbaa !25 %18 = load i64, ptr %4, align 8, !tbaa !32 - store i64 %18, ptr %15, align 8, !tbaa !14 + store i64 %18, ptr %15, align 8, !tbaa !22 br label %._crit_edge.i.i.i.i ._crit_edge.i.i.i.i: ; preds = %.noexc.i.i.i, %13 @@ -703,8 +701,8 @@ _ZNKSt17basic_string_viewIcSt11char_traitsIcEE17find_first_not_ofEPKcm.exit.thre ] 20: ; preds = %._crit_edge.i.i.i.i - %21 = load i8, ptr %9, align 1, !tbaa !14 - store i8 %21, ptr %19, align 1, !tbaa !14 + %21 = load i8, ptr %9, align 1, !tbaa !22 + store i8 %21, ptr %19, align 1, !tbaa !22 br label %23 22: ; preds = %._crit_edge.i.i.i.i @@ -717,7 +715,7 @@ _ZNKSt17basic_string_viewIcSt11char_traitsIcEE17find_first_not_ofEPKcm.exit.thre store i64 %24, ptr %25, align 8, !tbaa !29 %26 = load ptr, ptr %0, align 8, !tbaa !25 %27 = getelementptr inbounds nuw i8, ptr %26, i64 %24 - store i8 0, ptr %27, align 1, !tbaa !14 + store i8 0, ptr %27, align 1, !tbaa !22 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #16 br label %28 @@ -750,7 +748,7 @@ _ZSt13__check_facetISt5ctypeIcEERKT_PS3_.exit.i.i: ; preds = %3 15: ; preds = %_ZSt13__check_facetISt5ctypeIcEERKT_PS3_.exit.i.i %16 = getelementptr inbounds nuw i8, ptr %11, i64 67 - %17 = load i8, ptr %16, align 1, !tbaa !14 + %17 = load i8, ptr %16, align 1, !tbaa !22 br label %_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_.exit 18: ; preds = %_ZSt13__check_facetISt5ctypeIcEERKT_PS3_.exit.i.i @@ -797,14 +795,14 @@ define dso_local void @_ZN4absl19SetFlagsUsageConfigENS_16FlagsUsageConfigE(ptr _ZN4absl14flags_internal12_GLOBAL__N_122CustomUsageConfigMutexEv.exit: ; preds = %1, %4, %6 tail call void @_ZN4absl5Mutex4LockEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZZN4absl14flags_internal12_GLOBAL__N_122CustomUsageConfigMutexEvE5mutex) %7 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %8 = load ptr, ptr %7, align 8, !tbaa !15 + %8 = load ptr, ptr %7, align 8, !tbaa !14 %.not.i.i.not = icmp eq ptr %8, null br i1 %.not.i.i.not, label %_ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEaSIRS4_EENSt9enable_ifIXsr9_CallableIT_EE5valueERS5_E4typeEOS9_.exit, label %10 _ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEaSIRS4_EENSt9enable_ifIXsr9_CallableIT_EE5valueERS5_E4typeEOS9_.exit: ; preds = %_ZN4absl14flags_internal12_GLOBAL__N_122CustomUsageConfigMutexEv.exit %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr @_ZN4absl14flags_internal12_GLOBAL__N_122ContainsHelpshortFlagsESt17basic_string_viewIcSt11char_traitsIcEE, ptr %0, align 8 - store i64 0, ptr %.sroa.5.0..sroa_idx, align 8, !tbaa !14 + store i64 0, ptr %.sroa.5.0..sroa_idx, align 8, !tbaa !22 store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation, ptr %7, align 8, !tbaa !13 %9 = getelementptr inbounds nuw i8, ptr %0, i64 24 store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E9_M_invokeERKSt9_Any_dataOS3_, ptr %9, align 8, !tbaa !13 @@ -812,7 +810,7 @@ _ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEaSIRS4_EENSt9enable 10: ; preds = %_ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEaSIRS4_EENSt9enable_ifIXsr9_CallableIT_EE5valueERS5_E4typeEOS9_.exit, %_ZN4absl14flags_internal12_GLOBAL__N_122CustomUsageConfigMutexEv.exit %11 = getelementptr inbounds nuw i8, ptr %0, i64 48 - %12 = load ptr, ptr %11, align 8, !tbaa !15 + %12 = load ptr, ptr %11, align 8, !tbaa !14 %.not.i.i5.not = icmp eq ptr %12, null br i1 %.not.i.i5.not, label %_ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEaSIRS4_EENSt9enable_ifIXsr9_CallableIT_EE5valueERS5_E4typeEOS9_.exit8, label %15 @@ -820,7 +818,7 @@ _ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEaSIRS4_EENSt9enable %13 = getelementptr inbounds nuw i8, ptr %0, i64 32 %.sroa.525.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 40 store ptr @_ZN4absl14flags_internal12_GLOBAL__N_124ContainsHelppackageFlagsESt17basic_string_viewIcSt11char_traitsIcEE, ptr %13, align 8 - store i64 0, ptr %.sroa.525.0..sroa_idx, align 8, !tbaa !14 + store i64 0, ptr %.sroa.525.0..sroa_idx, align 8, !tbaa !22 store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation, ptr %11, align 8, !tbaa !13 %14 = getelementptr inbounds nuw i8, ptr %0, i64 56 store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E9_M_invokeERKSt9_Any_dataOS3_, ptr %14, align 8, !tbaa !13 @@ -828,7 +826,7 @@ _ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEaSIRS4_EENSt9enable 15: ; preds = %_ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEaSIRS4_EENSt9enable_ifIXsr9_CallableIT_EE5valueERS5_E4typeEOS9_.exit8, %10 %16 = getelementptr inbounds nuw i8, ptr %0, i64 80 - %17 = load ptr, ptr %16, align 8, !tbaa !15 + %17 = load ptr, ptr %16, align 8, !tbaa !14 %.not.i.i9.not = icmp eq ptr %17, null br i1 %.not.i.i9.not, label %_ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEaSIRS4_EENSt9enable_ifIXsr9_CallableIT_EE5valueERS5_E4typeEOS9_.exit12, label %20 @@ -836,7 +834,7 @@ _ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEaSIRS4_EENSt9enable %18 = getelementptr inbounds nuw i8, ptr %0, i64 64 %.sroa.531.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 72 store ptr @_ZN4absl14flags_internal12_GLOBAL__N_124ContainsHelppackageFlagsESt17basic_string_viewIcSt11char_traitsIcEE, ptr %18, align 8 - store i64 0, ptr %.sroa.531.0..sroa_idx, align 8, !tbaa !14 + store i64 0, ptr %.sroa.531.0..sroa_idx, align 8, !tbaa !22 store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation, ptr %16, align 8, !tbaa !13 %19 = getelementptr inbounds nuw i8, ptr %0, i64 88 store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E9_M_invokeERKSt9_Any_dataOS3_, ptr %19, align 8, !tbaa !13 @@ -844,7 +842,7 @@ _ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEaSIRS4_EENSt9enable 20: ; preds = %_ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEaSIRS4_EENSt9enable_ifIXsr9_CallableIT_EE5valueERS5_E4typeEOS9_.exit12, %15 %21 = getelementptr inbounds nuw i8, ptr %0, i64 112 - %22 = load ptr, ptr %21, align 8, !tbaa !15 + %22 = load ptr, ptr %21, align 8, !tbaa !14 %.not.i.i13.not = icmp eq ptr %22, null br i1 %.not.i.i13.not, label %_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEaSIRS6_EENSt9enable_ifIXsr9_CallableIT_EE5valueERS7_E4typeEOSB_.exit, label %25 @@ -852,7 +850,7 @@ _ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEaSIRS6_EE %23 = getelementptr inbounds nuw i8, ptr %0, i64 96 %.sroa.537.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 104 store ptr @_ZN4absl14flags_internal12_GLOBAL__N_113VersionStringB5cxx11Ev, ptr %23, align 8 - store i64 0, ptr %.sroa.537.0..sroa_idx, align 8, !tbaa !14 + store i64 0, ptr %.sroa.537.0..sroa_idx, align 8, !tbaa !22 store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEPS6_E10_M_managerERSt9_Any_dataRKS9_St18_Manager_operation, ptr %21, align 8, !tbaa !13 %24 = getelementptr inbounds nuw i8, ptr %0, i64 120 store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEPS6_E9_M_invokeERKSt9_Any_data, ptr %24, align 8, !tbaa !13 @@ -860,7 +858,7 @@ _ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEaSIRS6_EE 25: ; preds = %_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEaSIRS6_EENSt9enable_ifIXsr9_CallableIT_EE5valueERS7_E4typeEOSB_.exit, %20 %26 = getelementptr inbounds nuw i8, ptr %0, i64 144 - %27 = load ptr, ptr %26, align 8, !tbaa !15 + %27 = load ptr, ptr %26, align 8, !tbaa !14 %.not.i.i16.not = icmp eq ptr %27, null br i1 %.not.i.i16.not, label %_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEEaSIRS8_EENSt9enable_ifIXsr9_CallableIT_EE5valueERS9_E4typeEOSD_.exit, label %30 @@ -868,7 +866,7 @@ _ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_st %28 = getelementptr inbounds nuw i8, ptr %0, i64 128 %.sroa.543.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 136 store ptr @_ZN4absl14flags_internal12_GLOBAL__N_117NormalizeFilenameB5cxx11ESt17basic_string_viewIcSt11char_traitsIcEE, ptr %28, align 8 - store i64 0, ptr %.sroa.543.0..sroa_idx, align 8, !tbaa !14 + store i64 0, ptr %.sroa.543.0..sroa_idx, align 8, !tbaa !22 store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEPS8_E10_M_managerERSt9_Any_dataRKSB_St18_Manager_operation, ptr %26, align 8, !tbaa !13 %29 = getelementptr inbounds nuw i8, ptr %0, i64 152 store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEPS8_E9_M_invokeERKSt9_Any_dataOS7_, ptr %29, align 8, !tbaa !13 @@ -953,7 +951,7 @@ define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(160) ptr @ %9 = getelementptr inbounds nuw i8, ptr %7, i64 24 %10 = getelementptr inbounds nuw i8, ptr %1, i64 16 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %7, i8 0, i64 32, i1 false) - %11 = load ptr, ptr %10, align 8, !tbaa !15 + %11 = load ptr, ptr %10, align 8, !tbaa !14 %.not.i.i.not.i.i = icmp eq ptr %11, null br i1 %.not.i.i.not.i.i, label %_ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEC2ERKS5_.exit.i, label %12 @@ -963,14 +961,14 @@ define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(160) ptr @ 14: ; preds = %12 %15 = getelementptr inbounds nuw i8, ptr %1, i64 24 - %16 = load ptr, ptr %15, align 8, !tbaa !17 - %17 = load ptr, ptr %10, align 8, !tbaa !15 + %16 = load ptr, ptr %15, align 8, !tbaa !16 + %17 = load ptr, ptr %10, align 8, !tbaa !14 br label %_ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEC2ERKS5_.exit.i 18: ; preds = %12 %19 = landingpad { ptr, i32 } cleanup - %20 = load ptr, ptr %8, align 8, !tbaa !15 + %20 = load ptr, ptr %8, align 8, !tbaa !14 %.not.i.i.i = icmp eq ptr %20, null br i1 %.not.i.i.i, label %common.resume, label %21 @@ -1027,7 +1025,7 @@ _ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEaSERKS5_.exit: ; pr %39 = getelementptr inbounds nuw i8, ptr %6, i64 24 %40 = getelementptr inbounds nuw i8, ptr %1, i64 48 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %6, i8 0, i64 32, i1 false) - %41 = load ptr, ptr %40, align 8, !tbaa !15 + %41 = load ptr, ptr %40, align 8, !tbaa !14 %.not.i.i.not.i.i7 = icmp eq ptr %41, null br i1 %.not.i.i.not.i.i7, label %_ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEC2ERKS5_.exit.i10, label %42 @@ -1038,14 +1036,14 @@ _ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEaSERKS5_.exit: ; pr 45: ; preds = %42 %46 = getelementptr inbounds nuw i8, ptr %1, i64 56 - %47 = load ptr, ptr %46, align 8, !tbaa !17 - %48 = load ptr, ptr %40, align 8, !tbaa !15 + %47 = load ptr, ptr %46, align 8, !tbaa !16 + %48 = load ptr, ptr %40, align 8, !tbaa !14 br label %_ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEC2ERKS5_.exit.i10 49: ; preds = %42 %50 = landingpad { ptr, i32 } cleanup - %51 = load ptr, ptr %38, align 8, !tbaa !15 + %51 = load ptr, ptr %38, align 8, !tbaa !14 %.not.i.i.i8 = icmp eq ptr %51, null br i1 %.not.i.i.i8, label %common.resume, label %52 @@ -1098,7 +1096,7 @@ _ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEaSERKS5_.exit12: ; %70 = getelementptr inbounds nuw i8, ptr %5, i64 24 %71 = getelementptr inbounds nuw i8, ptr %1, i64 80 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %5, i8 0, i64 32, i1 false) - %72 = load ptr, ptr %71, align 8, !tbaa !15 + %72 = load ptr, ptr %71, align 8, !tbaa !14 %.not.i.i.not.i.i14 = icmp eq ptr %72, null br i1 %.not.i.i.not.i.i14, label %_ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEC2ERKS5_.exit.i17, label %73 @@ -1109,14 +1107,14 @@ _ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEaSERKS5_.exit12: ; 76: ; preds = %73 %77 = getelementptr inbounds nuw i8, ptr %1, i64 88 - %78 = load ptr, ptr %77, align 8, !tbaa !17 - %79 = load ptr, ptr %71, align 8, !tbaa !15 + %78 = load ptr, ptr %77, align 8, !tbaa !16 + %79 = load ptr, ptr %71, align 8, !tbaa !14 br label %_ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEC2ERKS5_.exit.i17 80: ; preds = %73 %81 = landingpad { ptr, i32 } cleanup - %82 = load ptr, ptr %69, align 8, !tbaa !15 + %82 = load ptr, ptr %69, align 8, !tbaa !14 %.not.i.i.i15 = icmp eq ptr %82, null br i1 %.not.i.i.i15, label %common.resume, label %83 @@ -1169,7 +1167,7 @@ _ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEaSERKS5_.exit19: ; %101 = getelementptr inbounds nuw i8, ptr %4, i64 24 %102 = getelementptr inbounds nuw i8, ptr %1, i64 112 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %4, i8 0, i64 32, i1 false) - %103 = load ptr, ptr %102, align 8, !tbaa !15 + %103 = load ptr, ptr %102, align 8, !tbaa !14 %.not.i.i.not.i.i21 = icmp eq ptr %103, null br i1 %.not.i.i.not.i.i21, label %_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEC2ERKS7_.exit.i, label %104 @@ -1180,14 +1178,14 @@ _ZNSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEEaSERKS5_.exit19: ; 107: ; preds = %104 %108 = getelementptr inbounds nuw i8, ptr %1, i64 120 - %109 = load ptr, ptr %108, align 8, !tbaa !19 - %110 = load ptr, ptr %102, align 8, !tbaa !15 + %109 = load ptr, ptr %108, align 8, !tbaa !18 + %110 = load ptr, ptr %102, align 8, !tbaa !14 br label %_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEC2ERKS7_.exit.i 111: ; preds = %104 %112 = landingpad { ptr, i32 } cleanup - %113 = load ptr, ptr %100, align 8, !tbaa !15 + %113 = load ptr, ptr %100, align 8, !tbaa !14 %.not.i.i.i22 = icmp eq ptr %113, null br i1 %.not.i.i.i22, label %common.resume, label %114 @@ -1240,7 +1238,7 @@ _ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEaSERKS7_. %132 = getelementptr inbounds nuw i8, ptr %3, i64 24 %133 = getelementptr inbounds nuw i8, ptr %1, i64 144 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %3, i8 0, i64 32, i1 false) - %134 = load ptr, ptr %133, align 8, !tbaa !15 + %134 = load ptr, ptr %133, align 8, !tbaa !14 %.not.i.i.not.i.i26 = icmp eq ptr %134, null br i1 %.not.i.i.not.i.i26, label %_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEEC2ERKS9_.exit.i, label %135 @@ -1251,14 +1249,14 @@ _ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEEaSERKS7_. 138: ; preds = %135 %139 = getelementptr inbounds nuw i8, ptr %1, i64 152 - %140 = load ptr, ptr %139, align 8, !tbaa !21 - %141 = load ptr, ptr %133, align 8, !tbaa !15 + %140 = load ptr, ptr %139, align 8, !tbaa !20 + %141 = load ptr, ptr %133, align 8, !tbaa !14 br label %_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEEC2ERKS9_.exit.i 142: ; preds = %135 %143 = landingpad { ptr, i32 } cleanup - %144 = load ptr, ptr %131, align 8, !tbaa !15 + %144 = load ptr, ptr %131, align 8, !tbaa !14 %.not.i.i.i27 = icmp eq ptr %144, null br i1 %.not.i.i.i27, label %common.resume, label %145 @@ -1512,15 +1510,15 @@ attributes #20 = { builtin allocsize(0) } !11 = !{!"p1 _ZTSN4absl16FlagsUsageConfigE", !12, i64 0} !12 = !{!"any pointer", !8, i64 0} !13 = !{!12, !12, i64 0} -!14 = !{!8, !8, i64 0} -!15 = !{!16, !12, i64 16} -!16 = !{!"_ZTSSt14_Function_base", !8, i64 0, !12, i64 16} -!17 = !{!18, !12, i64 24} -!18 = !{!"_ZTSSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEE", !16, i64 0, !12, i64 24} -!19 = !{!20, !12, i64 24} -!20 = !{!"_ZTSSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE", !16, i64 0, !12, i64 24} -!21 = !{!22, !12, i64 24} -!22 = !{!"_ZTSSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEE", !16, i64 0, !12, i64 24} +!14 = !{!15, !12, i64 16} +!15 = !{!"_ZTSSt14_Function_base", !8, i64 0, !12, i64 16} +!16 = !{!17, !12, i64 24} +!17 = !{!"_ZTSSt8functionIFbSt17basic_string_viewIcSt11char_traitsIcEEEE", !15, i64 0, !12, i64 24} +!18 = !{!19, !12, i64 24} +!19 = !{!"_ZTSSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEE", !15, i64 0, !12, i64 24} +!20 = !{!21, !12, i64 24} +!21 = !{!"_ZTSSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEE", !15, i64 0, !12, i64 24} +!22 = !{!8, !8, i64 0} !23 = distinct !{!23, !24} !24 = !{!"llvm.loop.mustprogress"} !25 = !{!26, !28, i64 0} @@ -1556,7 +1554,7 @@ attributes #20 = { builtin allocsize(0) } !55 = !{!"p1 _ZTS15__locale_struct", !12, i64 0} !56 = !{!"p1 int", !12, i64 0} !57 = !{!"p1 short", !12, i64 0} -!58 = !{i64 0, i64 16, !14} +!58 = !{i64 0, i64 16, !22} !59 = !{!28, !28, i64 0} !60 = !{!61, !63} !61 = distinct !{!61, !62, !"_ZSt13__invoke_implINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERPFS5_vEJEET_St14__invoke_otherOT0_DpOT1_: argument 0"} diff --git a/bench/arrow/optimized/vector_selection.ll b/bench/arrow/optimized/vector_selection.ll index 6fb7ff9698c..6aca761ea13 100644 --- a/bench/arrow/optimized/vector_selection.ll +++ b/bench/arrow/optimized/vector_selection.ll @@ -1247,7 +1247,7 @@ define void @_ZN5arrow7compute8internal23RegisterVectorSelectionEPNS0_16Function _ZNSt8functionIFN5arrow6ResultISt10unique_ptrINS0_7compute11KernelStateESt14default_deleteIS4_EEEEPNS3_13KernelContextERKNS3_14KernelInitArgsEEEaSIRSE_EENSt9enable_ifIXsr9_CallableIT_EE5valueERSF_E4typeEOSJ_.exit: ; preds = %1 call void @llvm.lifetime.start.p0(i64 136, ptr nonnull %19) #26 %41 = getelementptr inbounds nuw i8, ptr %19, i64 48 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(131) %19, i8 0, i64 48, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(131) %19, i8 0, i64 16, i1 false) store i8 1, ptr %41, align 8, !tbaa !48 %42 = getelementptr inbounds nuw i8, ptr %19, i64 52 call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %42, i8 0, i64 20, i1 false) @@ -1265,8 +1265,8 @@ _ZNSt8functionIFN5arrow6ResultISt10unique_ptrINS0_7compute11KernelStateESt14defa store i8 1, ptr %48, align 2, !tbaa !70 %49 = getelementptr inbounds nuw i8, ptr %19, i64 16 store ptr @_ZN5arrow7compute8internal14OptionsWrapperINS0_13FilterOptionsEE4InitEPNS0_13KernelContextERKNS0_14KernelInitArgsE, ptr %49, align 8 - %.sroa.0.i.i.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %19, i64 24 - store i64 0, ptr %.sroa.0.i.i.i.sroa.4.0..sroa_idx, align 8, !tbaa !39 + %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %19, i64 24 + store i64 0, ptr %.sroa.4.0..sroa_idx, align 8 %50 = getelementptr inbounds nuw i8, ptr %19, i64 32 store ptr @_ZNSt17_Function_handlerIFN5arrow6ResultISt10unique_ptrINS0_7compute11KernelStateESt14default_deleteIS4_EEEEPNS3_13KernelContextERKNS3_14KernelInitArgsEEPSE_E10_M_managerERSt9_Any_dataRKSH_St18_Manager_operation, ptr %50, align 8, !tbaa !71 %51 = getelementptr inbounds nuw i8, ptr %19, i64 40 @@ -1623,7 +1623,7 @@ _ZNSt10unique_ptrIN5arrow7compute8FunctionESt14default_deleteIS2_EED2Ev.exit58: _ZNSt8functionIFN5arrow6ResultISt10unique_ptrINS0_7compute11KernelStateESt14default_deleteIS4_EEEEPNS3_13KernelContextERKNS3_14KernelInitArgsEEEaSIRSE_EENSt9enable_ifIXsr9_CallableIT_EE5valueERSF_E4typeEOSJ_.exit61: ; preds = %_ZNSt10unique_ptrIN5arrow7compute8FunctionESt14default_deleteIS2_EED2Ev.exit call void @llvm.lifetime.start.p0(i64 136, ptr nonnull %27) #26 %182 = getelementptr inbounds nuw i8, ptr %27, i64 48 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(131) %27, i8 0, i64 48, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(131) %27, i8 0, i64 16, i1 false) store i8 1, ptr %182, align 8, !tbaa !48 %183 = getelementptr inbounds nuw i8, ptr %27, i64 52 call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %183, i8 0, i64 20, i1 false) @@ -1640,8 +1640,8 @@ _ZNSt8functionIFN5arrow6ResultISt10unique_ptrINS0_7compute11KernelStateESt14defa store i8 1, ptr %189, align 2, !tbaa !70 %190 = getelementptr inbounds nuw i8, ptr %27, i64 16 store ptr @_ZN5arrow7compute8internal14OptionsWrapperINS0_11TakeOptionsEE4InitEPNS0_13KernelContextERKNS0_14KernelInitArgsE, ptr %190, align 8 - %.sroa.0.i.i.i59.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %27, i64 24 - store i64 0, ptr %.sroa.0.i.i.i59.sroa.4.0..sroa_idx, align 8, !tbaa !39 + %.sroa.4197.0..sroa_idx = getelementptr inbounds nuw i8, ptr %27, i64 24 + store i64 0, ptr %.sroa.4197.0..sroa_idx, align 8 %191 = getelementptr inbounds nuw i8, ptr %27, i64 32 store ptr @_ZNSt17_Function_handlerIFN5arrow6ResultISt10unique_ptrINS0_7compute11KernelStateESt14default_deleteIS4_EEEEPNS3_13KernelContextERKNS3_14KernelInitArgsEEPSE_E10_M_managerERSt9_Any_dataRKSH_St18_Manager_operation, ptr %191, align 8, !tbaa !71 %192 = getelementptr inbounds nuw i8, ptr %27, i64 40 diff --git a/bench/boost/optimized/ipv4_address_rule.ll b/bench/boost/optimized/ipv4_address_rule.ll index c5c6abdcbd6..c31b7e60972 100644 --- a/bench/boost/optimized/ipv4_address_rule.ll +++ b/bench/boost/optimized/ipv4_address_rule.ll @@ -17,14 +17,6 @@ target triple = "x86_64-pc-linux-gnu" %union.anon.3 = type { %"struct.boost::system::error_code::data" } %"struct.boost::system::error_code::data" = type { i32, ptr } %"struct.std::is_same" = type { i8 } -%"struct.std::_Tuple_impl.63" = type { %"struct.std::_Tuple_impl.64", %"struct.std::_Head_base.70" } -%"struct.std::_Tuple_impl.64" = type { %"struct.std::_Tuple_impl.65", %"struct.std::_Head_base.69" } -%"struct.std::_Tuple_impl.65" = type { %"struct.std::_Tuple_impl.66", %"struct.std::_Head_base.68" } -%"struct.std::_Tuple_impl.66" = type { %"struct.std::_Head_base.67" } -%"struct.std::_Head_base.67" = type { %"class.boost::system::error_code" } -%"struct.std::_Head_base.68" = type { %"class.boost::system::error_code" } -%"struct.std::_Head_base.69" = type { %"class.boost::system::error_code" } -%"struct.std::_Head_base.70" = type { %"class.boost::system::error_code" } %"struct.boost::urls::grammar::detail::parse_sequence" = type { %"class.boost::system::error_code", ptr, %"class.std::tuple.38" } %"class.std::tuple.38" = type { %"struct.std::_Tuple_impl.39" } %"struct.std::_Tuple_impl.39" = type { %"struct.std::_Tuple_impl.40", %"struct.std::_Head_base.61" } @@ -101,7 +93,6 @@ declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #2 ; Function Attrs: mustprogress nounwind uwtable define void @_ZNK5boost4urls22implementation_defined19ipv4_address_rule_t5parseERPKcS4_(ptr dead_on_unwind noalias writable writeonly sret(%"class.boost::system::result") align 8 captures(none) %0, ptr noundef nonnull readnone align 1 captures(none) dereferenceable(1) %1, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef %3) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { %5 = alloca %"struct.std::is_same", align 1 - %.sroa.0.i.i.i = alloca %"struct.std::_Tuple_impl.63", align 8 %6 = alloca %"struct.boost::urls::grammar::detail::parse_sequence", align 8 %7 = alloca %"struct.std::integral_constant.36", align 1 %8 = alloca %"struct.std::integral_constant.36", align 1 @@ -114,27 +105,21 @@ define void @_ZNK5boost4urls22implementation_defined19ipv4_address_rule_t5parseE %11 = getelementptr inbounds nuw i8, ptr %6, i64 24 store ptr %9, ptr %11, align 8, !tbaa !8, !noalias !3 %12 = getelementptr inbounds nuw i8, ptr %6, i64 32 - call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %.sroa.0.i.i.i) - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(96) %.sroa.0.i.i.i, i8 0, i64 96, i1 false), !noalias !3 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, i8 0, i64 24, i1 false), !noalias !3 %13 = getelementptr inbounds nuw i8, ptr %6, i64 56 store i32 2, ptr %13, align 8, !tbaa !12, !noalias !3 %14 = getelementptr inbounds nuw i8, ptr %6, i64 64 - %.sroa.0.24..sroa_idx.i.i.i = getelementptr inbounds nuw i8, ptr %.sroa.0.i.i.i, i64 24 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0.24..sroa_idx.i.i.i, i64 24, i1 false), !tbaa.struct !15, !noalias !3 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %14, i8 0, i64 24, i1 false), !noalias !3 %15 = getelementptr inbounds nuw i8, ptr %6, i64 88 store i32 2, ptr %15, align 8, !tbaa !12, !noalias !3 %16 = getelementptr inbounds nuw i8, ptr %6, i64 96 - %.sroa.0.48..sroa_idx.i.i.i = getelementptr inbounds nuw i8, ptr %.sroa.0.i.i.i, i64 48 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0.48..sroa_idx.i.i.i, i64 24, i1 false), !tbaa.struct !15, !noalias !3 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %16, i8 0, i64 24, i1 false), !noalias !3 %17 = getelementptr inbounds nuw i8, ptr %6, i64 120 store i32 2, ptr %17, align 8, !tbaa !12, !noalias !3 %18 = getelementptr inbounds nuw i8, ptr %6, i64 128 - %.sroa.0.72..sroa_idx.i.i.i = getelementptr inbounds nuw i8, ptr %.sroa.0.i.i.i, i64 72 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0.72..sroa_idx.i.i.i, i64 24, i1 false), !tbaa.struct !15, !noalias !3 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %18, i8 0, i64 24, i1 false), !noalias !3 %19 = getelementptr inbounds nuw i8, ptr %6, i64 152 store i32 2, ptr %19, align 8, !tbaa !12, !noalias !3 - call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %.sroa.0.i.i.i) call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #8, !noalias !3 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #8, !noalias !3 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #8, !noalias !3 @@ -153,7 +138,7 @@ _ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined16 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #8, !noalias !3 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #8, !noalias !3 %23 = getelementptr inbounds nuw i8, ptr %6, i64 16 - %24 = load i64, ptr %23, align 8, !tbaa !19, !noalias !21 + %24 = load i64, ptr %23, align 8, !tbaa !15, !noalias !18 %25 = and i64 %24, 1 %.not.i.i.i.i = icmp eq i64 %25, 0 br i1 %.not.i.i.i.i, label %38, label %26 @@ -186,27 +171,27 @@ _ZNKR5boost6system6resultISt5tupleIJhhhhEENS0_10error_codeEE5errorEv.exit: ; pre %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 3 store i8 %31, ptr %.sroa.7.0..sroa_idx, align 1 %37 = getelementptr inbounds nuw i8, ptr %0, i64 24 - store i32 2, ptr %37, align 8, !tbaa !24 + store i32 2, ptr %37, align 8, !tbaa !21 br label %47 38: ; preds = %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined16dec_octet_rule_tEJNS4_14squelch_rule_tINS4_13ch_delim_ruleEEES5_S8_S5_S8_S5_EE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSF_RKSt17integral_constantImXT_EERKSH_ImXT0_EE.exit.i.i, %26 - %39 = load i8, ptr %12, align 8, !tbaa !16, !noalias !21 - %40 = load i8, ptr %14, align 8, !tbaa !16, !noalias !21 - %41 = load i8, ptr %16, align 8, !tbaa !16, !noalias !21 - %42 = load i8, ptr %18, align 8, !tbaa !16, !noalias !21 + %39 = load i8, ptr %12, align 8, !tbaa !23, !noalias !18 + %40 = load i8, ptr %14, align 8, !tbaa !23, !noalias !18 + %41 = load i8, ptr %16, align 8, !tbaa !23, !noalias !18 + %42 = load i8, ptr %18, align 8, !tbaa !23, !noalias !18 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %6) #8, !noalias !3 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #8 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #8 - store i8 %42, ptr %10, align 1, !tbaa !16 + store i8 %42, ptr %10, align 1, !tbaa !23 %43 = getelementptr inbounds nuw i8, ptr %10, i64 1 - store i8 %41, ptr %43, align 1, !tbaa !16 + store i8 %41, ptr %43, align 1, !tbaa !23 %44 = getelementptr inbounds nuw i8, ptr %10, i64 2 - store i8 %40, ptr %44, align 1, !tbaa !16 + store i8 %40, ptr %44, align 1, !tbaa !23 %45 = getelementptr inbounds nuw i8, ptr %10, i64 3 - store i8 %39, ptr %45, align 1, !tbaa !16 + store i8 %39, ptr %45, align 1, !tbaa !23 call void @_ZN5boost4urls12ipv4_addressC1ERKSt5arrayIhLm4EE(ptr noundef nonnull align 4 dereferenceable(4) %0, ptr noundef nonnull align 1 dereferenceable(4) %10) #8 %46 = getelementptr inbounds nuw i8, ptr %0, i64 24 - store i32 1, ptr %46, align 8, !tbaa !24 + store i32 1, ptr %46, align 8, !tbaa !21 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #8 br label %47 @@ -235,7 +220,7 @@ define linkonce_odr hidden void @_ZN5boost4urls7grammar6detail14parse_sequenceIL %14 = getelementptr inbounds nuw i8, ptr %0, i64 128 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #8 %15 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %16 = load ptr, ptr %15, align 8, !tbaa !26 + %16 = load ptr, ptr %15, align 8, !tbaa !24 call void @_ZNK5boost4urls7grammar22implementation_defined16dec_octet_rule_t5parseERPKcS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::system::result.44") align 8 %12, ptr noundef nonnull align 1 dereferenceable(1) %16, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef %2) #8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %12, i64 32, i1 false) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #8 @@ -250,7 +235,7 @@ define linkonce_odr hidden void @_ZN5boost4urls7grammar6detail14parse_sequenceIL br i1 %21, label %22, label %23 22: ; preds = %20 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(32) %14, i64 24, i1 false), !tbaa.struct !15 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(32) %14, i64 24, i1 false), !tbaa.struct !41 br label %_ZNKR5boost6system6resultIhNS0_10error_codeEE5errorEv.exit 23: ; preds = %20 @@ -258,12 +243,12 @@ define linkonce_odr hidden void @_ZN5boost4urls7grammar6detail14parse_sequenceIL br label %_ZNKR5boost6system6resultIhNS0_10error_codeEE5errorEv.exit _ZNKR5boost6system6resultIhNS0_10error_codeEE5errorEv.exit: ; preds = %22, %23 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %13, i64 24, i1 false), !tbaa.struct !15 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %13, i64 24, i1 false), !tbaa.struct !41 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined16dec_octet_rule_tEJNS4_14squelch_rule_tINS4_13ch_delim_ruleEEES5_S8_S5_S8_S5_EE5applyILm1ELm1EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSF_RKSt17integral_constantImXT_EERKSH_ImXT0_EE.exit 24: ; preds = %6 - %25 = load ptr, ptr %15, align 8, !tbaa !26 + %25 = load ptr, ptr %15, align 8, !tbaa !24 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #8, !noalias !46 call void @_ZNK5boost4urls7grammar22implementation_defined13ch_delim_rule5parseERPKcS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::system::result.89") align 8 %8, ptr noundef nonnull align 1 dereferenceable(1) %25, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef %2) #8, !noalias !46 %26 = getelementptr inbounds nuw i8, ptr %8, i64 24 @@ -273,7 +258,7 @@ _ZNKR5boost6system6resultIhNS0_10error_codeEE5errorEv.exit: ; preds = %22, %23 _ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i: ; preds = %24 %.sroa.54.0..sroa_idx.i.i.i.i = getelementptr inbounds nuw i8, ptr %8, i64 16 - %.sroa.54.0.copyload.i.i.i.i = load i64, ptr %.sroa.54.0..sroa_idx.i.i.i.i, align 8, !tbaa !17, !noalias !46 + %.sroa.54.0.copyload.i.i.i.i = load i64, ptr %.sroa.54.0..sroa_idx.i.i.i.i, align 8, !tbaa !42, !noalias !46 %29 = and i64 %.sroa.54.0.copyload.i.i.i.i, 1 %.not.i.i.i.i.i.i = icmp eq i64 %29, 0 br i1 %.not.i.i.i.i.i.i, label %32, label %30 @@ -289,7 +274,7 @@ _ZNKR5boost6system6resultIvNS0_10error_codeEE5errorEv.exit.i.i: ; preds = %30 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %8, i64 24, i1 false) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8, !noalias !46 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(160) %0, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 24, i1 false), !tbaa.struct !15 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(160) %0, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 24, i1 false), !tbaa.struct !41 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined16dec_octet_rule_tEJNS4_14squelch_rule_tINS4_13ch_delim_ruleEEES5_S8_S5_S8_S5_EE5applyILm1ELm1EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSF_RKSt17integral_constantImXT_EERKSH_ImXT0_EE.exit @@ -336,7 +321,7 @@ define linkonce_odr hidden void @_ZN5boost4urls7grammar6detail14parse_sequenceIL %14 = getelementptr inbounds nuw i8, ptr %0, i64 96 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #8 %15 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %16 = load ptr, ptr %15, align 8, !tbaa !26 + %16 = load ptr, ptr %15, align 8, !tbaa !24 %17 = getelementptr inbounds nuw i8, ptr %16, i64 1 call void @_ZNK5boost4urls7grammar22implementation_defined16dec_octet_rule_t5parseERPKcS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::system::result.44") align 8 %12, ptr noundef nonnull align 1 dereferenceable(1) %17, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef %2) #8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %12, i64 32, i1 false) @@ -352,7 +337,7 @@ define linkonce_odr hidden void @_ZN5boost4urls7grammar6detail14parse_sequenceIL br i1 %22, label %23, label %24 23: ; preds = %21 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(32) %14, i64 24, i1 false), !tbaa.struct !15 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(32) %14, i64 24, i1 false), !tbaa.struct !41 br label %_ZNKR5boost6system6resultIhNS0_10error_codeEE5errorEv.exit 24: ; preds = %21 @@ -360,12 +345,12 @@ define linkonce_odr hidden void @_ZN5boost4urls7grammar6detail14parse_sequenceIL br label %_ZNKR5boost6system6resultIhNS0_10error_codeEE5errorEv.exit _ZNKR5boost6system6resultIhNS0_10error_codeEE5errorEv.exit: ; preds = %23, %24 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %13, i64 24, i1 false), !tbaa.struct !15 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %13, i64 24, i1 false), !tbaa.struct !41 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined16dec_octet_rule_tEJNS4_14squelch_rule_tINS4_13ch_delim_ruleEEES5_S8_S5_S8_S5_EE5applyILm3ELm2EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSF_RKSt17integral_constantImXT_EERKSH_ImXT0_EE.exit 25: ; preds = %6 - %26 = load ptr, ptr %15, align 8, !tbaa !26 + %26 = load ptr, ptr %15, align 8, !tbaa !24 %27 = getelementptr inbounds nuw i8, ptr %26, i64 1 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #8, !noalias !59 call void @_ZNK5boost4urls7grammar22implementation_defined13ch_delim_rule5parseERPKcS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::system::result.89") align 8 %8, ptr noundef nonnull align 1 dereferenceable(1) %27, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef %2) #8, !noalias !59 @@ -376,7 +361,7 @@ _ZNKR5boost6system6resultIhNS0_10error_codeEE5errorEv.exit: ; preds = %23, %24 _ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i: ; preds = %25 %.sroa.54.0..sroa_idx.i.i.i.i = getelementptr inbounds nuw i8, ptr %8, i64 16 - %.sroa.54.0.copyload.i.i.i.i = load i64, ptr %.sroa.54.0..sroa_idx.i.i.i.i, align 8, !tbaa !17, !noalias !59 + %.sroa.54.0.copyload.i.i.i.i = load i64, ptr %.sroa.54.0..sroa_idx.i.i.i.i, align 8, !tbaa !42, !noalias !59 %31 = and i64 %.sroa.54.0.copyload.i.i.i.i, 1 %.not.i.i.i.i.i.i = icmp eq i64 %31, 0 br i1 %.not.i.i.i.i.i.i, label %34, label %32 @@ -392,7 +377,7 @@ _ZNKR5boost6system6resultIvNS0_10error_codeEE5errorEv.exit.i.i: ; preds = %32 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %8, i64 24, i1 false) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8, !noalias !59 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(160) %0, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 24, i1 false), !tbaa.struct !15 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(160) %0, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 24, i1 false), !tbaa.struct !41 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined16dec_octet_rule_tEJNS4_14squelch_rule_tINS4_13ch_delim_ruleEEES5_S8_S5_S8_S5_EE5applyILm3ELm2EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSF_RKSt17integral_constantImXT_EERKSH_ImXT0_EE.exit @@ -433,7 +418,7 @@ define linkonce_odr hidden void @_ZN5boost4urls7grammar6detail14parse_sequenceIL %14 = getelementptr inbounds nuw i8, ptr %0, i64 64 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #8 %15 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %16 = load ptr, ptr %15, align 8, !tbaa !26 + %16 = load ptr, ptr %15, align 8, !tbaa !24 %17 = getelementptr inbounds nuw i8, ptr %16, i64 2 call void @_ZNK5boost4urls7grammar22implementation_defined16dec_octet_rule_t5parseERPKcS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::system::result.44") align 8 %11, ptr noundef nonnull align 1 dereferenceable(1) %17, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef %2) #8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %11, i64 32, i1 false) @@ -449,7 +434,7 @@ define linkonce_odr hidden void @_ZN5boost4urls7grammar6detail14parse_sequenceIL br i1 %22, label %23, label %24 23: ; preds = %21 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(32) %14, i64 24, i1 false), !tbaa.struct !15 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(32) %14, i64 24, i1 false), !tbaa.struct !41 br label %_ZNKR5boost6system6resultIhNS0_10error_codeEE5errorEv.exit 24: ; preds = %21 @@ -457,12 +442,12 @@ define linkonce_odr hidden void @_ZN5boost4urls7grammar6detail14parse_sequenceIL br label %_ZNKR5boost6system6resultIhNS0_10error_codeEE5errorEv.exit _ZNKR5boost6system6resultIhNS0_10error_codeEE5errorEv.exit: ; preds = %23, %24 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %12, i64 24, i1 false), !tbaa.struct !15 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %12, i64 24, i1 false), !tbaa.struct !41 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined16dec_octet_rule_tEJNS4_14squelch_rule_tINS4_13ch_delim_ruleEEES5_S8_S5_S8_S5_EE5applyILm5ELm3EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSF_RKSt17integral_constantImXT_EERKSH_ImXT0_EE.exit 25: ; preds = %6 - %26 = load ptr, ptr %15, align 8, !tbaa !26 + %26 = load ptr, ptr %15, align 8, !tbaa !24 %27 = getelementptr inbounds nuw i8, ptr %26, i64 2 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #8, !noalias !70 call void @_ZNK5boost4urls7grammar22implementation_defined13ch_delim_rule5parseERPKcS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::system::result.89") align 8 %9, ptr noundef nonnull align 1 dereferenceable(1) %27, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef %2) #8, !noalias !70 @@ -473,7 +458,7 @@ _ZNKR5boost6system6resultIhNS0_10error_codeEE5errorEv.exit: ; preds = %23, %24 _ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i: ; preds = %25 %.sroa.54.0..sroa_idx.i.i.i.i = getelementptr inbounds nuw i8, ptr %9, i64 16 - %.sroa.54.0.copyload.i.i.i.i = load i64, ptr %.sroa.54.0..sroa_idx.i.i.i.i, align 8, !tbaa !17, !noalias !70 + %.sroa.54.0.copyload.i.i.i.i = load i64, ptr %.sroa.54.0..sroa_idx.i.i.i.i, align 8, !tbaa !42, !noalias !70 %31 = and i64 %.sroa.54.0.copyload.i.i.i.i, 1 %.not.i.i.i.i.i.i = icmp eq i64 %31, 0 br i1 %.not.i.i.i.i.i.i, label %34, label %32 @@ -489,14 +474,14 @@ _ZNKR5boost6system6resultIvNS0_10error_codeEE5errorEv.exit.i.i: ; preds = %32 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 24, i1 false) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8, !noalias !70 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(160) %0, ptr noundef nonnull align 8 dereferenceable(24) %10, i64 24, i1 false), !tbaa.struct !15 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(160) %0, ptr noundef nonnull align 8 dereferenceable(24) %10, i64 24, i1 false), !tbaa.struct !41 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined16dec_octet_rule_tEJNS4_14squelch_rule_tINS4_13ch_delim_ruleEEES5_S8_S5_S8_S5_EE5applyILm5ELm3EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSF_RKSt17integral_constantImXT_EERKSH_ImXT0_EE.exit 34: ; preds = %32, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i, %25 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8, !noalias !70 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #8 - %35 = load ptr, ptr %15, align 8, !tbaa !26 + %35 = load ptr, ptr %15, align 8, !tbaa !24 %36 = getelementptr inbounds nuw i8, ptr %35, i64 3 call void @_ZNK5boost4urls7grammar22implementation_defined16dec_octet_rule_t5parseERPKcS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::system::result.44") align 8 %7, ptr noundef nonnull align 1 dereferenceable(1) %36, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef %2) #8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %7, i64 32, i1 false) @@ -512,7 +497,7 @@ _ZNKR5boost6system6resultIvNS0_10error_codeEE5errorEv.exit.i.i: ; preds = %32 br i1 %41, label %42, label %43 42: ; preds = %40 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(32) %13, i64 24, i1 false), !tbaa.struct !15 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(32) %13, i64 24, i1 false), !tbaa.struct !41 br label %_ZNKR5boost6system6resultIhNS0_10error_codeEE5errorEv.exit.i.i.i.i 43: ; preds = %40 @@ -520,7 +505,7 @@ _ZNKR5boost6system6resultIvNS0_10error_codeEE5errorEv.exit.i.i: ; preds = %32 br label %_ZNKR5boost6system6resultIhNS0_10error_codeEE5errorEv.exit.i.i.i.i _ZNKR5boost6system6resultIhNS0_10error_codeEE5errorEv.exit.i.i.i.i: ; preds = %43, %42 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(160) %0, ptr noundef nonnull align 8 dereferenceable(24) %8, i64 24, i1 false), !tbaa.struct !15 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(160) %0, ptr noundef nonnull align 8 dereferenceable(24) %8, i64 24, i1 false), !tbaa.struct !41 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined16dec_octet_rule_tEJNS4_14squelch_rule_tINS4_13ch_delim_ruleEEES5_S8_S5_S8_S5_EE5applyILm5ELm3EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSF_RKSt17integral_constantImXT_EERKSH_ImXT0_EE.exit @@ -556,34 +541,34 @@ attributes #9 = { noreturn nounwind } !12 = !{!13, !14, i64 24} !13 = !{!"_ZTSN5boost8variant26detail17variant_base_implILb1ELb1EJhNS_6system10error_codeEEEE", !10, i64 0, !14, i64 24} !14 = !{!"int", !10, i64 0} -!15 = !{i64 0, i64 16, !16, i64 16, i64 8, !17} -!16 = !{!10, !10, i64 0} -!17 = !{!18, !18, i64 0} -!18 = !{!"long", !10, i64 0} -!19 = !{!20, !18, i64 16} -!20 = !{!"_ZTSN5boost6system10error_codeE", !10, i64 0, !18, i64 16} -!21 = !{!22, !4, !6} -!22 = distinct !{!22, !23, !"_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined16dec_octet_rule_tEJNS4_14squelch_rule_tINS4_13ch_delim_ruleEEES5_S8_S5_S8_S5_EE11make_resultEv: argument 0"} -!23 = distinct !{!23, !"_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined16dec_octet_rule_tEJNS4_14squelch_rule_tINS4_13ch_delim_ruleEEES5_S8_S5_S8_S5_EE11make_resultEv"} -!24 = !{!25, !14, i64 24} -!25 = !{!"_ZTSN5boost8variant26detail17variant_base_implILb1ELb1EJNS_4urls12ipv4_addressENS_6system10error_codeEEEE", !10, i64 0, !14, i64 24} -!26 = !{!27, !9, i64 24} -!27 = !{!"_ZTSN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined16dec_octet_rule_tEJNS4_14squelch_rule_tINS4_13ch_delim_ruleEEES5_S8_S5_S8_S5_EEE", !20, i64 0, !9, i64 24, !28, i64 32} -!28 = !{!"_ZTSSt5tupleIJN5boost6system6resultIhNS1_10error_codeEEES4_S4_S4_EE", !29, i64 0} -!29 = !{!"_ZTSSt11_Tuple_implILm0EJN5boost6system6resultIhNS1_10error_codeEEES4_S4_S4_EE", !30, i64 0, !42, i64 96} -!30 = !{!"_ZTSSt11_Tuple_implILm1EJN5boost6system6resultIhNS1_10error_codeEEES4_S4_EE", !31, i64 0, !41, i64 64} -!31 = !{!"_ZTSSt11_Tuple_implILm2EJN5boost6system6resultIhNS1_10error_codeEEES4_EE", !32, i64 0, !40, i64 32} -!32 = !{!"_ZTSSt11_Tuple_implILm3EJN5boost6system6resultIhNS1_10error_codeEEEEE", !33, i64 0} -!33 = !{!"_ZTSSt10_Head_baseILm3EN5boost6system6resultIhNS1_10error_codeEEELb0EE", !34, i64 0} -!34 = !{!"_ZTSN5boost6system6resultIhNS0_10error_codeEEE", !35, i64 0} -!35 = !{!"_ZTSN5boost8variant27variantIJhNS_6system10error_codeEEEE", !36, i64 0} -!36 = !{!"_ZTSN5boost8variant26detail20variant_ma_base_implILb1ELb1EJhNS_6system10error_codeEEEE", !37, i64 0} -!37 = !{!"_ZTSN5boost8variant26detail20variant_mc_base_implILb1ELb1EJhNS_6system10error_codeEEEE", !38, i64 0} -!38 = !{!"_ZTSN5boost8variant26detail20variant_ca_base_implILb1ELb1EJhNS_6system10error_codeEEEE", !39, i64 0} -!39 = !{!"_ZTSN5boost8variant26detail20variant_cc_base_implILb1ELb1EJhNS_6system10error_codeEEEE", !13, i64 0} -!40 = !{!"_ZTSSt10_Head_baseILm2EN5boost6system6resultIhNS1_10error_codeEEELb0EE", !34, i64 0} -!41 = !{!"_ZTSSt10_Head_baseILm1EN5boost6system6resultIhNS1_10error_codeEEELb0EE", !34, i64 0} -!42 = !{!"_ZTSSt10_Head_baseILm0EN5boost6system6resultIhNS1_10error_codeEEELb0EE", !34, i64 0} +!15 = !{!16, !17, i64 16} +!16 = !{!"_ZTSN5boost6system10error_codeE", !10, i64 0, !17, i64 16} +!17 = !{!"long", !10, i64 0} +!18 = !{!19, !4, !6} +!19 = distinct !{!19, !20, !"_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined16dec_octet_rule_tEJNS4_14squelch_rule_tINS4_13ch_delim_ruleEEES5_S8_S5_S8_S5_EE11make_resultEv: argument 0"} +!20 = distinct !{!20, !"_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined16dec_octet_rule_tEJNS4_14squelch_rule_tINS4_13ch_delim_ruleEEES5_S8_S5_S8_S5_EE11make_resultEv"} +!21 = !{!22, !14, i64 24} +!22 = !{!"_ZTSN5boost8variant26detail17variant_base_implILb1ELb1EJNS_4urls12ipv4_addressENS_6system10error_codeEEEE", !10, i64 0, !14, i64 24} +!23 = !{!10, !10, i64 0} +!24 = !{!25, !9, i64 24} +!25 = !{!"_ZTSN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined16dec_octet_rule_tEJNS4_14squelch_rule_tINS4_13ch_delim_ruleEEES5_S8_S5_S8_S5_EEE", !16, i64 0, !9, i64 24, !26, i64 32} +!26 = !{!"_ZTSSt5tupleIJN5boost6system6resultIhNS1_10error_codeEEES4_S4_S4_EE", !27, i64 0} +!27 = !{!"_ZTSSt11_Tuple_implILm0EJN5boost6system6resultIhNS1_10error_codeEEES4_S4_S4_EE", !28, i64 0, !40, i64 96} +!28 = !{!"_ZTSSt11_Tuple_implILm1EJN5boost6system6resultIhNS1_10error_codeEEES4_S4_EE", !29, i64 0, !39, i64 64} +!29 = !{!"_ZTSSt11_Tuple_implILm2EJN5boost6system6resultIhNS1_10error_codeEEES4_EE", !30, i64 0, !38, i64 32} +!30 = !{!"_ZTSSt11_Tuple_implILm3EJN5boost6system6resultIhNS1_10error_codeEEEEE", !31, i64 0} +!31 = !{!"_ZTSSt10_Head_baseILm3EN5boost6system6resultIhNS1_10error_codeEEELb0EE", !32, i64 0} +!32 = !{!"_ZTSN5boost6system6resultIhNS0_10error_codeEEE", !33, i64 0} +!33 = !{!"_ZTSN5boost8variant27variantIJhNS_6system10error_codeEEEE", !34, i64 0} +!34 = !{!"_ZTSN5boost8variant26detail20variant_ma_base_implILb1ELb1EJhNS_6system10error_codeEEEE", !35, i64 0} +!35 = !{!"_ZTSN5boost8variant26detail20variant_mc_base_implILb1ELb1EJhNS_6system10error_codeEEEE", !36, i64 0} +!36 = !{!"_ZTSN5boost8variant26detail20variant_ca_base_implILb1ELb1EJhNS_6system10error_codeEEEE", !37, i64 0} +!37 = !{!"_ZTSN5boost8variant26detail20variant_cc_base_implILb1ELb1EJhNS_6system10error_codeEEEE", !13, i64 0} +!38 = !{!"_ZTSSt10_Head_baseILm2EN5boost6system6resultIhNS1_10error_codeEEELb0EE", !32, i64 0} +!39 = !{!"_ZTSSt10_Head_baseILm1EN5boost6system6resultIhNS1_10error_codeEEELb0EE", !32, i64 0} +!40 = !{!"_ZTSSt10_Head_baseILm0EN5boost6system6resultIhNS1_10error_codeEEELb0EE", !32, i64 0} +!41 = !{i64 0, i64 16, !23, i64 16, i64 8, !42} +!42 = !{!17, !17, i64 0} !43 = !{!44} !44 = distinct !{!44, !45, !"_ZNKR5boost6system6resultIhNS0_10error_codeEE5errorEv: argument 0"} !45 = distinct !{!45, !"_ZNKR5boost6system6resultIhNS0_10error_codeEE5errorEv"} diff --git a/bench/boost/optimized/ipvfuture_rule.ll b/bench/boost/optimized/ipvfuture_rule.ll index 2ba7e66e307..daca1872e76 100644 --- a/bench/boost/optimized/ipvfuture_rule.ll +++ b/bench/boost/optimized/ipvfuture_rule.ll @@ -244,11 +244,11 @@ declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immar ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden void @_ZNK5boost4urls7grammar22implementation_defined12tuple_rule_tINS2_13ch_delim_ruleEJNS2_12token_rule_tINS2_14hexdig_chars_tEEES4_NS5_INS1_9lut_charsEEEEE5parseERPKcSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::system::result.5") align 8 %0, ptr noundef nonnull align 8 dereferenceable(40) %1, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef %3) local_unnamed_addr #1 comdat align 2 personality ptr @__gxx_personality_v0 { %5 = alloca %"class.boost::system::result.42", align 8 - %.sroa.558 = alloca [12 x i8], align 4 + %.sroa.555 = alloca [12 x i8], align 4 %6 = alloca %"class.boost::system::result.42", align 8 - %.sroa.551 = alloca [12 x i8], align 4 + %.sroa.549 = alloca [12 x i8], align 4 %7 = alloca %"class.boost::system::result.42", align 8 - %.sroa.544 = alloca [12 x i8], align 4 + %.sroa.543 = alloca [12 x i8], align 4 %8 = alloca %"class.boost::system::result.42", align 8 %.sroa.5 = alloca [12 x i8], align 4 %.sroa.9 = alloca [12 x i8], align 4 @@ -261,9 +261,9 @@ define linkonce_odr hidden void @_ZNK5boost4urls7grammar22implementation_defined call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.21.sroa.7) call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.27.sroa.7) call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.33.sroa.7) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.15.sroa.6, i8 0, i64 12, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.21.sroa.7, i8 0, i64 12, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.27.sroa.7, i8 0, i64 12, i1 false) - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.15.sroa.6, i8 0, i64 12, i1 false) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #7 call void @_ZNK5boost4urls7grammar22implementation_defined13ch_delim_rule5parseERPKcS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::system::result.42") align 8 %8, ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef %3) #7 %.sroa.33.sroa.3.4.copyload = load i32, ptr %8, align 8 @@ -313,23 +313,23 @@ _ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5erro br i1 %16, label %21, label %17 17: ; preds = %14 - call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.544) + call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.543) %18 = icmp eq i32 %.sroa.31.96.copyload, 2 br i1 %18, label %19, label %20 19: ; preds = %17 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.544, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.27.sroa.7, i64 12, i1 false), !tbaa.struct !36 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.543, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.27.sroa.7, i64 12, i1 false), !tbaa.struct !36 br label %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i 20: ; preds = %17 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.544, i8 0, i64 12, i1 false), !alias.scope !40 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.543, i8 0, i64 12, i1 false), !alias.scope !40 br label %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i _ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i: ; preds = %20, %19 - %.sroa.645.0 = phi i64 [ %.sroa.27.sroa.8.4.copyload, %19 ], [ 0, %20 ] - %.sroa.043.0 = phi i32 [ %.sroa.27.sroa.3.4.copyload, %19 ], [ 0, %20 ] - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.9, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.544, i64 12, i1 false), !tbaa.struct !36 - call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %.sroa.544) + %.sroa.042.0 = phi i32 [ %.sroa.27.sroa.3.4.copyload, %19 ], [ 0, %20 ] + %.sroa.644.0 = phi i64 [ %.sroa.27.sroa.8.4.copyload, %19 ], [ 0, %20 ] + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.9, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.543, i64 12, i1 false), !tbaa.struct !36 + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %.sroa.543) br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit 21: ; preds = %14 @@ -348,23 +348,23 @@ _ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5erro br i1 %23, label %28, label %24 24: ; preds = %21 - call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.551) + call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.549) %25 = icmp eq i32 %.sroa.25.64.copyload, 2 br i1 %25, label %26, label %27 26: ; preds = %24 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.551, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.21.sroa.7, i64 12, i1 false), !tbaa.struct !36 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.549, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.21.sroa.7, i64 12, i1 false), !tbaa.struct !36 br label %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i 27: ; preds = %24 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.551, i8 0, i64 12, i1 false), !alias.scope !43 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.549, i8 0, i64 12, i1 false), !alias.scope !43 br label %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i _ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i: ; preds = %27, %26 - %.sroa.652.0 = phi i64 [ %.sroa.21.sroa.8.4.copyload, %26 ], [ 0, %27 ] - %.sroa.050.0 = phi i32 [ %.sroa.21.sroa.3.4.copyload, %26 ], [ 0, %27 ] - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.9, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.551, i64 12, i1 false), !tbaa.struct !36 - call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %.sroa.551) + %.sroa.650.0 = phi i64 [ %.sroa.21.sroa.8.4.copyload, %26 ], [ 0, %27 ] + %.sroa.048.0 = phi i32 [ %.sroa.21.sroa.3.4.copyload, %26 ], [ 0, %27 ] + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.9, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.549, i64 12, i1 false), !tbaa.struct !36 + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %.sroa.549) br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit 28: ; preds = %21 @@ -383,30 +383,30 @@ _ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5erro br i1 %30, label %_ZNK5boost6system10error_code6failedEv.exit.thread3.i, label %31 31: ; preds = %28 - call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.558) + call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.555) %32 = icmp eq i32 %.sroa.19.32.copyload, 2 br i1 %32, label %33, label %34 33: ; preds = %31 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.558, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.15.sroa.6, i64 12, i1 false), !tbaa.struct !36 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.555, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.15.sroa.6, i64 12, i1 false), !tbaa.struct !36 br label %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i 34: ; preds = %31 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.558, i8 0, i64 12, i1 false), !alias.scope !46 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.555, i8 0, i64 12, i1 false), !alias.scope !46 br label %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i _ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i: ; preds = %34, %33 - %.sroa.659.0 = phi i64 [ %.sroa.15.sroa.7.0.copyload, %33 ], [ 0, %34 ] - %.sroa.057.0 = phi i32 [ %.sroa.15.sroa.0.0.copyload, %33 ], [ 0, %34 ] - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.9, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.558, i64 12, i1 false), !tbaa.struct !36 - call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %.sroa.558) + %.sroa.656.0 = phi i64 [ %.sroa.15.sroa.7.0.copyload, %33 ], [ 0, %34 ] + %.sroa.054.0 = phi i32 [ %.sroa.15.sroa.0.0.copyload, %33 ], [ 0, %34 ] + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.9, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.555, i64 12, i1 false), !tbaa.struct !36 + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %.sroa.555) br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit _ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit: ; preds = %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i %.sroa.27.sroa.3.0 = phi i32 [ 0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ], [ %.sroa.27.sroa.3.4.copyload, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i ], [ %.sroa.27.sroa.3.4.copyload, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i ], [ %.sroa.27.sroa.3.4.copyload, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i ] + %.sroa.04.0 = phi i32 [ %.sroa.037.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ], [ %.sroa.054.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i ], [ %.sroa.048.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i ], [ %.sroa.042.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i ] %.sroa.21.sroa.3.0 = phi i32 [ 0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ], [ %.sroa.21.sroa.3.4.copyload, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i ], [ %.sroa.21.sroa.3.4.copyload, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i ], [ 0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i ] - %.sroa.04.0 = phi i32 [ %.sroa.037.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ], [ %.sroa.057.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i ], [ %.sroa.050.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i ], [ %.sroa.043.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i ] - %.sroa.913.0 = phi i64 [ %.sroa.6.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ], [ %.sroa.659.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i ], [ %.sroa.652.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i ], [ %.sroa.645.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i ] + %.sroa.913.0 = phi i64 [ %.sroa.6.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ], [ %.sroa.656.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i ], [ %.sroa.650.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i ], [ %.sroa.644.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i ] %.sroa.15.sroa.0.0 = phi i32 [ 0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ], [ %.sroa.15.sroa.0.0.copyload, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i ], [ 0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i ], [ 0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i ] %35 = and i64 %.sroa.913.0, 1 %.not.i.i = icmp eq i64 %35, 0 @@ -427,24 +427,24 @@ _ZNK5boost6system10error_code6failedEv.exit.thread.i: ; preds = %36 br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE11make_resultEv.exit _ZNK5boost6system10error_code6failedEv.exit.thread3.i: ; preds = %28, %36, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit - %.sroa.15.sroa.0.071 = phi i32 [ %.sroa.15.sroa.0.0, %36 ], [ %.sroa.15.sroa.0.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit ], [ %.sroa.15.sroa.0.0.copyload, %28 ] - %.sroa.21.sroa.3.070 = phi i32 [ %.sroa.21.sroa.3.0, %36 ], [ %.sroa.21.sroa.3.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit ], [ %.sroa.21.sroa.3.4.copyload, %28 ] - %.sroa.27.sroa.3.069 = phi i32 [ %.sroa.27.sroa.3.0, %36 ], [ %.sroa.27.sroa.3.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit ], [ %.sroa.27.sroa.3.4.copyload, %28 ] - store i32 %.sroa.15.sroa.0.071, ptr %0, align 8 - %.sroa.15.sroa.6.0..sroa_idx61 = getelementptr inbounds nuw i8, ptr %0, i64 4 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.15.sroa.6.0..sroa_idx61, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.15.sroa.6, i64 12, i1 false), !tbaa.struct !49 + %.sroa.15.sroa.0.068 = phi i32 [ %.sroa.15.sroa.0.0, %36 ], [ %.sroa.15.sroa.0.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit ], [ %.sroa.15.sroa.0.0.copyload, %28 ] + %.sroa.21.sroa.3.067 = phi i32 [ %.sroa.21.sroa.3.0, %36 ], [ %.sroa.21.sroa.3.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit ], [ %.sroa.21.sroa.3.4.copyload, %28 ] + %.sroa.27.sroa.3.066 = phi i32 [ %.sroa.27.sroa.3.0, %36 ], [ %.sroa.27.sroa.3.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit ], [ %.sroa.27.sroa.3.4.copyload, %28 ] + store i32 %.sroa.15.sroa.0.068, ptr %0, align 8 + %.sroa.15.sroa.6.0..sroa_idx58 = getelementptr inbounds nuw i8, ptr %0, i64 4 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.15.sroa.6.0..sroa_idx58, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.15.sroa.6, i64 12, i1 false), !tbaa.struct !49 %39 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i32 %.sroa.21.sroa.3.070, ptr %39, align 8 - %.sroa.21.sroa.7.4..sroa_idx55 = getelementptr inbounds nuw i8, ptr %0, i64 20 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.21.sroa.7.4..sroa_idx55, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.21.sroa.7, i64 12, i1 false), !tbaa.struct !49 + store i32 %.sroa.21.sroa.3.067, ptr %39, align 8 + %.sroa.21.sroa.7.4..sroa_idx52 = getelementptr inbounds nuw i8, ptr %0, i64 20 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.21.sroa.7.4..sroa_idx52, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.21.sroa.7, i64 12, i1 false), !tbaa.struct !49 %40 = getelementptr inbounds nuw i8, ptr %0, i64 32 - store i32 %.sroa.27.sroa.3.069, ptr %40, align 8 - %.sroa.27.sroa.7.4..sroa_idx48 = getelementptr inbounds nuw i8, ptr %0, i64 36 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.27.sroa.7.4..sroa_idx48, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.27.sroa.7, i64 12, i1 false), !tbaa.struct !49 + store i32 %.sroa.27.sroa.3.066, ptr %40, align 8 + %.sroa.27.sroa.7.4..sroa_idx46 = getelementptr inbounds nuw i8, ptr %0, i64 36 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.27.sroa.7.4..sroa_idx46, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.27.sroa.7, i64 12, i1 false), !tbaa.struct !49 %41 = getelementptr inbounds nuw i8, ptr %0, i64 48 store i32 %.sroa.33.sroa.3.4.copyload, ptr %41, align 8 - %.sroa.33.sroa.7.4..sroa_idx40 = getelementptr inbounds nuw i8, ptr %0, i64 52 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.33.sroa.7.4..sroa_idx40, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.33.sroa.7, i64 12, i1 false), !tbaa.struct !49 + %.sroa.33.sroa.7.4..sroa_idx39 = getelementptr inbounds nuw i8, ptr %0, i64 52 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.33.sroa.7.4..sroa_idx39, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.33.sroa.7, i64 12, i1 false), !tbaa.struct !49 br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE11make_resultEv.exit _ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE11make_resultEv.exit: ; preds = %_ZNK5boost6system10error_code6failedEv.exit.thread.i, %_ZNK5boost6system10error_code6failedEv.exit.thread3.i diff --git a/bench/boost/optimized/matches_relation_factory.ll b/bench/boost/optimized/matches_relation_factory.ll index 03f04447a16..1ef6bd5aff8 100644 --- a/bench/boost/optimized/matches_relation_factory.ll +++ b/bench/boost/optimized/matches_relation_factory.ll @@ -88897,7 +88897,7 @@ define linkonce_odr hidden noundef zeroext i1 @_ZN5boost13re_detail_50012perl_ma %3 = alloca %"struct.boost::re_detail_500::recursion_info", align 8 %4 = getelementptr inbounds nuw i8, ptr %0, i64 216 %5 = load ptr, ptr %4, align 8, !tbaa !1266 - br i1 %1, label %70, label %6 + br i1 %1, label %69, label %6 6: ; preds = %2 call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %3) #28 @@ -88910,7 +88910,7 @@ define linkonce_odr hidden noundef zeroext i1 @_ZN5boost13re_detail_50012perl_ma %11 = getelementptr inbounds nuw i8, ptr %0, i64 200 %12 = load ptr, ptr %11, align 8, !tbaa !1245 %.not.i.i = icmp eq ptr %10, %12 - br i1 %.not.i.i, label %19, label %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread + br i1 %.not.i.i, label %18, label %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread _ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread: ; preds = %6 %13 = getelementptr inbounds nuw i8, ptr %10, i64 72 @@ -88919,119 +88919,118 @@ _ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %13, i8 0, i64 20, i1 false) store i8 1, ptr %14, align 4, !tbaa !1196 %15 = getelementptr inbounds nuw i8, ptr %10, i64 96 - %16 = getelementptr inbounds nuw i8, ptr %3, i64 96 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef nonnull align 8 dereferenceable(16) %16, i64 16, i1 false) - %17 = load ptr, ptr %9, align 8, !tbaa !1243 - %18 = getelementptr inbounds nuw i8, ptr %17, i64 112 - store ptr %18, ptr %9, align 8, !tbaa !1243 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %15, i8 0, i64 16, i1 false) + %16 = load ptr, ptr %9, align 8, !tbaa !1243 + %17 = getelementptr inbounds nuw i8, ptr %16, i64 112 + store ptr %17, ptr %9, align 8, !tbaa !1243 br label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i -19: ; preds = %6 - %20 = getelementptr inbounds nuw i8, ptr %0, i64 184 - invoke void @_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE17_M_realloc_insertIJSA_EEEvN9__gnu_cxx17__normal_iteratorIPSA_SC_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr %10, ptr noundef nonnull align 8 dereferenceable(112) %3) - to label %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit unwind label %68 +18: ; preds = %6 + %19 = getelementptr inbounds nuw i8, ptr %0, i64 184 + invoke void @_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE17_M_realloc_insertIJSA_EEEvN9__gnu_cxx17__normal_iteratorIPSA_SC_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr %10, ptr noundef nonnull align 8 dereferenceable(112) %3) + to label %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit unwind label %67 -_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit: ; preds = %19 +_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit: ; preds = %18 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %3, i64 80 %.pre = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !19 %.not.i.i.i.i = icmp eq ptr %.pre, null - br i1 %.not.i.i.i.i, label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, label %21 + br i1 %.not.i.i.i.i, label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, label %20 -21: ; preds = %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit - %22 = getelementptr inbounds nuw i8, ptr %.pre, i64 8 - %23 = load atomic i64, ptr %22 acquire, align 8 - %24 = icmp eq i64 %23, 4294967297 - %25 = trunc i64 %23 to i32 - br i1 %24, label %26, label %34 +20: ; preds = %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit + %21 = getelementptr inbounds nuw i8, ptr %.pre, i64 8 + %22 = load atomic i64, ptr %21 acquire, align 8 + %23 = icmp eq i64 %22, 4294967297 + %24 = trunc i64 %22 to i32 + br i1 %23, label %25, label %33 -26: ; preds = %21 - store i32 0, ptr %22, align 8, !tbaa !28 - %27 = getelementptr inbounds nuw i8, ptr %.pre, i64 12 - store i32 0, ptr %27, align 4, !tbaa !30 - %28 = load ptr, ptr %.pre, align 8, !tbaa !31 - %29 = getelementptr inbounds nuw i8, ptr %28, i64 16 - %30 = load ptr, ptr %29, align 8 - call void %30(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #28 - %31 = load ptr, ptr %.pre, align 8, !tbaa !31 - %32 = getelementptr inbounds nuw i8, ptr %31, i64 24 - %33 = load ptr, ptr %32, align 8 - call void %33(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #28 +25: ; preds = %20 + store i32 0, ptr %21, align 8, !tbaa !28 + %26 = getelementptr inbounds nuw i8, ptr %.pre, i64 12 + store i32 0, ptr %26, align 4, !tbaa !30 + %27 = load ptr, ptr %.pre, align 8, !tbaa !31 + %28 = getelementptr inbounds nuw i8, ptr %27, i64 16 + %29 = load ptr, ptr %28, align 8 + call void %29(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #28 + %30 = load ptr, ptr %.pre, align 8, !tbaa !31 + %31 = getelementptr inbounds nuw i8, ptr %30, i64 24 + %32 = load ptr, ptr %31, align 8 + call void %32(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #28 br label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i -34: ; preds = %21 - %35 = load i8, ptr @__libc_single_threaded, align 1, !tbaa !12 - %.not.i.i.i.i.i = icmp eq i8 %35, 0 - br i1 %.not.i.i.i.i.i, label %38, label %36 +33: ; preds = %20 + %34 = load i8, ptr @__libc_single_threaded, align 1, !tbaa !12 + %.not.i.i.i.i.i = icmp eq i8 %34, 0 + br i1 %.not.i.i.i.i.i, label %37, label %35 -36: ; preds = %34 - %37 = add nsw i32 %25, -1 - store i32 %37, ptr %22, align 4, !tbaa !14 +35: ; preds = %33 + %36 = add nsw i32 %24, -1 + store i32 %36, ptr %21, align 4, !tbaa !14 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i -38: ; preds = %34 - %39 = atomicrmw volatile add ptr %22, i32 -1 acq_rel, align 4 +37: ; preds = %33 + %38 = atomicrmw volatile add ptr %21, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i -_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i: ; preds = %38, %36 - %.0.i.i.i.i.i.i = phi i32 [ %25, %36 ], [ %39, %38 ] - %40 = icmp eq i32 %.0.i.i.i.i.i.i, 1 - br i1 %40, label %41, label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, !prof !33 +_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i: ; preds = %37, %35 + %.0.i.i.i.i.i.i = phi i32 [ %24, %35 ], [ %38, %37 ] + %39 = icmp eq i32 %.0.i.i.i.i.i.i, 1 + br i1 %39, label %40, label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, !prof !33 -41: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i +40: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i call void @_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #28 br label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i -_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i: ; preds = %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread, %41, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i, %26, %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit - %42 = load ptr, ptr %7, align 8, !tbaa !1206 - %.not.i.i.i1.i.i = icmp eq ptr %42, null - br i1 %.not.i.i.i1.i.i, label %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKcSaINS_9sub_matchIS4_EEEEEED2Ev.exit, label %43 +_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i: ; preds = %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread, %40, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i, %25, %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit + %41 = load ptr, ptr %7, align 8, !tbaa !1206 + %.not.i.i.i1.i.i = icmp eq ptr %41, null + br i1 %.not.i.i.i1.i.i, label %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKcSaINS_9sub_matchIS4_EEEEEED2Ev.exit, label %42 -43: ; preds = %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i - %44 = getelementptr inbounds nuw i8, ptr %3, i64 32 - %45 = load ptr, ptr %44, align 8, !tbaa !1207 - %46 = ptrtoint ptr %45 to i64 - %47 = ptrtoint ptr %42 to i64 - %48 = sub i64 %46, %47 - call void @_ZdlPvm(ptr noundef nonnull %42, i64 noundef %48) #32 +42: ; preds = %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i + %43 = getelementptr inbounds nuw i8, ptr %3, i64 32 + %44 = load ptr, ptr %43, align 8, !tbaa !1207 + %45 = ptrtoint ptr %44 to i64 + %46 = ptrtoint ptr %41 to i64 + %47 = sub i64 %45, %46 + call void @_ZdlPvm(ptr noundef nonnull %41, i64 noundef %47) #32 br label %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKcSaINS_9sub_matchIS4_EEEEEED2Ev.exit -_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKcSaINS_9sub_matchIS4_EEEEEED2Ev.exit: ; preds = %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, %43 +_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKcSaINS_9sub_matchIS4_EEEEEED2Ev.exit: ; preds = %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, %42 call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %3) #28 - %49 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %50 = load i32, ptr %49, align 8, !tbaa !1302 - %51 = load ptr, ptr %9, align 8, !tbaa !43 - %52 = getelementptr inbounds i8, ptr %51, i64 -112 - store i32 %50, ptr %52, align 8, !tbaa !1299 - %53 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %54 = load ptr, ptr %53, align 8, !tbaa !1304 - %55 = getelementptr inbounds i8, ptr %51, i64 -104 - store ptr %54, ptr %55, align 8, !tbaa !1301 - %56 = getelementptr inbounds nuw i8, ptr %5, i64 104 - %57 = load ptr, ptr %9, align 8, !tbaa !43 - %58 = getelementptr inbounds i8, ptr %57, i64 -96 - %59 = call noundef nonnull align 8 dereferenceable(77) ptr @_ZN5boost13match_resultsIPKcSaINS_9sub_matchIS2_EEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(77) %58, ptr noundef nonnull align 8 dereferenceable(77) %56) - %60 = getelementptr inbounds nuw i8, ptr %0, i64 40 - %61 = load ptr, ptr %60, align 8, !tbaa !1224 - %62 = load ptr, ptr %9, align 8, !tbaa !43 - %63 = getelementptr inbounds i8, ptr %62, i64 -8 - store ptr %61, ptr %63, align 8, !tbaa !1336 - %64 = getelementptr inbounds nuw i8, ptr %5, i64 24 - %65 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %66 = load ptr, ptr %65, align 8, !tbaa !1238 - %67 = call noundef nonnull align 8 dereferenceable(77) ptr @_ZN5boost13match_resultsIPKcSaINS_9sub_matchIS2_EEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(77) %66, ptr noundef nonnull align 8 dereferenceable(77) %64) - br label %70 + %48 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %49 = load i32, ptr %48, align 8, !tbaa !1302 + %50 = load ptr, ptr %9, align 8, !tbaa !43 + %51 = getelementptr inbounds i8, ptr %50, i64 -112 + store i32 %49, ptr %51, align 8, !tbaa !1299 + %52 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %53 = load ptr, ptr %52, align 8, !tbaa !1304 + %54 = getelementptr inbounds i8, ptr %50, i64 -104 + store ptr %53, ptr %54, align 8, !tbaa !1301 + %55 = getelementptr inbounds nuw i8, ptr %5, i64 104 + %56 = load ptr, ptr %9, align 8, !tbaa !43 + %57 = getelementptr inbounds i8, ptr %56, i64 -96 + %58 = call noundef nonnull align 8 dereferenceable(77) ptr @_ZN5boost13match_resultsIPKcSaINS_9sub_matchIS2_EEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(77) %57, ptr noundef nonnull align 8 dereferenceable(77) %55) + %59 = getelementptr inbounds nuw i8, ptr %0, i64 40 + %60 = load ptr, ptr %59, align 8, !tbaa !1224 + %61 = load ptr, ptr %9, align 8, !tbaa !43 + %62 = getelementptr inbounds i8, ptr %61, i64 -8 + store ptr %60, ptr %62, align 8, !tbaa !1336 + %63 = getelementptr inbounds nuw i8, ptr %5, i64 24 + %64 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %65 = load ptr, ptr %64, align 8, !tbaa !1238 + %66 = call noundef nonnull align 8 dereferenceable(77) ptr @_ZN5boost13match_resultsIPKcSaINS_9sub_matchIS2_EEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(77) %65, ptr noundef nonnull align 8 dereferenceable(77) %63) + br label %69 -68: ; preds = %19 - %69 = landingpad { ptr, i32 } +67: ; preds = %18 + %68 = landingpad { ptr, i32 } cleanup call void @_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKcSaINS_9sub_matchIS4_EEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(112) %3) #28 call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %3) #28 - resume { ptr, i32 } %69 + resume { ptr, i32 } %68 -70: ; preds = %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKcSaINS_9sub_matchIS4_EEEEEED2Ev.exit, %2 - %71 = getelementptr inbounds nuw i8, ptr %5, i64 184 +69: ; preds = %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKcSaINS_9sub_matchIS4_EEEEEED2Ev.exit, %2 + %70 = getelementptr inbounds nuw i8, ptr %5, i64 184 call void @_ZN5boost13re_detail_50015saved_recursionINS_13match_resultsIPKcSaINS_9sub_matchIS4_EEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(184) %5) #28 - store ptr %71, ptr %4, align 8, !tbaa !1266 + store ptr %70, ptr %4, align 8, !tbaa !1266 ret i1 true } @@ -100574,7 +100573,7 @@ define linkonce_odr hidden noundef zeroext i1 @_ZN5boost13re_detail_50012perl_ma %3 = alloca %"struct.boost::re_detail_500::recursion_info.417", align 8 %4 = getelementptr inbounds nuw i8, ptr %0, i64 216 %5 = load ptr, ptr %4, align 8, !tbaa !1434 - br i1 %1, label %70, label %6 + br i1 %1, label %69, label %6 6: ; preds = %2 call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %3) #28 @@ -100587,7 +100586,7 @@ define linkonce_odr hidden noundef zeroext i1 @_ZN5boost13re_detail_50012perl_ma %11 = getelementptr inbounds nuw i8, ptr %0, i64 200 %12 = load ptr, ptr %11, align 8, !tbaa !1417 %.not.i.i = icmp eq ptr %10, %12 - br i1 %.not.i.i, label %19, label %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread + br i1 %.not.i.i, label %18, label %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread _ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread: ; preds = %6 %13 = getelementptr inbounds nuw i8, ptr %10, i64 72 @@ -100596,119 +100595,118 @@ _ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %13, i8 0, i64 20, i1 false) store i8 1, ptr %14, align 4, !tbaa !1372 %15 = getelementptr inbounds nuw i8, ptr %10, i64 96 - %16 = getelementptr inbounds nuw i8, ptr %3, i64 96 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef nonnull align 8 dereferenceable(16) %16, i64 16, i1 false) - %17 = load ptr, ptr %9, align 8, !tbaa !1415 - %18 = getelementptr inbounds nuw i8, ptr %17, i64 112 - store ptr %18, ptr %9, align 8, !tbaa !1415 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %15, i8 0, i64 16, i1 false) + %16 = load ptr, ptr %9, align 8, !tbaa !1415 + %17 = getelementptr inbounds nuw i8, ptr %16, i64 112 + store ptr %17, ptr %9, align 8, !tbaa !1415 br label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i -19: ; preds = %6 - %20 = getelementptr inbounds nuw i8, ptr %0, i64 184 - invoke void @_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE17_M_realloc_insertIJSA_EEEvN9__gnu_cxx17__normal_iteratorIPSA_SC_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr %10, ptr noundef nonnull align 8 dereferenceable(112) %3) - to label %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit unwind label %68 +18: ; preds = %6 + %19 = getelementptr inbounds nuw i8, ptr %0, i64 184 + invoke void @_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE17_M_realloc_insertIJSA_EEEvN9__gnu_cxx17__normal_iteratorIPSA_SC_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr %10, ptr noundef nonnull align 8 dereferenceable(112) %3) + to label %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit unwind label %67 -_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit: ; preds = %19 +_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit: ; preds = %18 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %3, i64 80 %.pre = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !19 %.not.i.i.i.i = icmp eq ptr %.pre, null - br i1 %.not.i.i.i.i, label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, label %21 + br i1 %.not.i.i.i.i, label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, label %20 -21: ; preds = %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit - %22 = getelementptr inbounds nuw i8, ptr %.pre, i64 8 - %23 = load atomic i64, ptr %22 acquire, align 8 - %24 = icmp eq i64 %23, 4294967297 - %25 = trunc i64 %23 to i32 - br i1 %24, label %26, label %34 +20: ; preds = %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit + %21 = getelementptr inbounds nuw i8, ptr %.pre, i64 8 + %22 = load atomic i64, ptr %21 acquire, align 8 + %23 = icmp eq i64 %22, 4294967297 + %24 = trunc i64 %22 to i32 + br i1 %23, label %25, label %33 -26: ; preds = %21 - store i32 0, ptr %22, align 8, !tbaa !28 - %27 = getelementptr inbounds nuw i8, ptr %.pre, i64 12 - store i32 0, ptr %27, align 4, !tbaa !30 - %28 = load ptr, ptr %.pre, align 8, !tbaa !31 - %29 = getelementptr inbounds nuw i8, ptr %28, i64 16 - %30 = load ptr, ptr %29, align 8 - call void %30(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #28 - %31 = load ptr, ptr %.pre, align 8, !tbaa !31 - %32 = getelementptr inbounds nuw i8, ptr %31, i64 24 - %33 = load ptr, ptr %32, align 8 - call void %33(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #28 +25: ; preds = %20 + store i32 0, ptr %21, align 8, !tbaa !28 + %26 = getelementptr inbounds nuw i8, ptr %.pre, i64 12 + store i32 0, ptr %26, align 4, !tbaa !30 + %27 = load ptr, ptr %.pre, align 8, !tbaa !31 + %28 = getelementptr inbounds nuw i8, ptr %27, i64 16 + %29 = load ptr, ptr %28, align 8 + call void %29(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #28 + %30 = load ptr, ptr %.pre, align 8, !tbaa !31 + %31 = getelementptr inbounds nuw i8, ptr %30, i64 24 + %32 = load ptr, ptr %31, align 8 + call void %32(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #28 br label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i -34: ; preds = %21 - %35 = load i8, ptr @__libc_single_threaded, align 1, !tbaa !12 - %.not.i.i.i.i.i = icmp eq i8 %35, 0 - br i1 %.not.i.i.i.i.i, label %38, label %36 +33: ; preds = %20 + %34 = load i8, ptr @__libc_single_threaded, align 1, !tbaa !12 + %.not.i.i.i.i.i = icmp eq i8 %34, 0 + br i1 %.not.i.i.i.i.i, label %37, label %35 -36: ; preds = %34 - %37 = add nsw i32 %25, -1 - store i32 %37, ptr %22, align 4, !tbaa !14 +35: ; preds = %33 + %36 = add nsw i32 %24, -1 + store i32 %36, ptr %21, align 4, !tbaa !14 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i -38: ; preds = %34 - %39 = atomicrmw volatile add ptr %22, i32 -1 acq_rel, align 4 +37: ; preds = %33 + %38 = atomicrmw volatile add ptr %21, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i -_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i: ; preds = %38, %36 - %.0.i.i.i.i.i.i = phi i32 [ %25, %36 ], [ %39, %38 ] - %40 = icmp eq i32 %.0.i.i.i.i.i.i, 1 - br i1 %40, label %41, label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, !prof !33 +_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i: ; preds = %37, %35 + %.0.i.i.i.i.i.i = phi i32 [ %24, %35 ], [ %38, %37 ] + %39 = icmp eq i32 %.0.i.i.i.i.i.i, 1 + br i1 %39, label %40, label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, !prof !33 -41: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i +40: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i call void @_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #28 br label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i -_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i: ; preds = %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread, %41, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i, %26, %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit - %42 = load ptr, ptr %7, align 8, !tbaa !1380 - %.not.i.i.i1.i.i = icmp eq ptr %42, null - br i1 %.not.i.i.i1.i.i, label %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKwSaINS_9sub_matchIS4_EEEEEED2Ev.exit, label %43 +_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i: ; preds = %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread, %40, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i, %25, %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit + %41 = load ptr, ptr %7, align 8, !tbaa !1380 + %.not.i.i.i1.i.i = icmp eq ptr %41, null + br i1 %.not.i.i.i1.i.i, label %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKwSaINS_9sub_matchIS4_EEEEEED2Ev.exit, label %42 -43: ; preds = %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i - %44 = getelementptr inbounds nuw i8, ptr %3, i64 32 - %45 = load ptr, ptr %44, align 8, !tbaa !1381 - %46 = ptrtoint ptr %45 to i64 - %47 = ptrtoint ptr %42 to i64 - %48 = sub i64 %46, %47 - call void @_ZdlPvm(ptr noundef nonnull %42, i64 noundef %48) #32 +42: ; preds = %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i + %43 = getelementptr inbounds nuw i8, ptr %3, i64 32 + %44 = load ptr, ptr %43, align 8, !tbaa !1381 + %45 = ptrtoint ptr %44 to i64 + %46 = ptrtoint ptr %41 to i64 + %47 = sub i64 %45, %46 + call void @_ZdlPvm(ptr noundef nonnull %41, i64 noundef %47) #32 br label %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKwSaINS_9sub_matchIS4_EEEEEED2Ev.exit -_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKwSaINS_9sub_matchIS4_EEEEEED2Ev.exit: ; preds = %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, %43 +_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKwSaINS_9sub_matchIS4_EEEEEED2Ev.exit: ; preds = %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, %42 call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %3) #28 - %49 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %50 = load i32, ptr %49, align 8, !tbaa !1467 - %51 = load ptr, ptr %9, align 8, !tbaa !43 - %52 = getelementptr inbounds i8, ptr %51, i64 -112 - store i32 %50, ptr %52, align 8, !tbaa !1464 - %53 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %54 = load ptr, ptr %53, align 8, !tbaa !1469 - %55 = getelementptr inbounds i8, ptr %51, i64 -104 - store ptr %54, ptr %55, align 8, !tbaa !1466 - %56 = getelementptr inbounds nuw i8, ptr %5, i64 104 - %57 = load ptr, ptr %9, align 8, !tbaa !43 - %58 = getelementptr inbounds i8, ptr %57, i64 -96 - %59 = call noundef nonnull align 8 dereferenceable(77) ptr @_ZN5boost13match_resultsIPKwSaINS_9sub_matchIS2_EEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(77) %58, ptr noundef nonnull align 8 dereferenceable(77) %56) - %60 = getelementptr inbounds nuw i8, ptr %0, i64 40 - %61 = load ptr, ptr %60, align 8, !tbaa !1397 - %62 = load ptr, ptr %9, align 8, !tbaa !43 - %63 = getelementptr inbounds i8, ptr %62, i64 -8 - store ptr %61, ptr %63, align 8, !tbaa !1497 - %64 = getelementptr inbounds nuw i8, ptr %5, i64 24 - %65 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %66 = load ptr, ptr %65, align 8, !tbaa !1410 - %67 = call noundef nonnull align 8 dereferenceable(77) ptr @_ZN5boost13match_resultsIPKwSaINS_9sub_matchIS2_EEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(77) %66, ptr noundef nonnull align 8 dereferenceable(77) %64) - br label %70 + %48 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %49 = load i32, ptr %48, align 8, !tbaa !1467 + %50 = load ptr, ptr %9, align 8, !tbaa !43 + %51 = getelementptr inbounds i8, ptr %50, i64 -112 + store i32 %49, ptr %51, align 8, !tbaa !1464 + %52 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %53 = load ptr, ptr %52, align 8, !tbaa !1469 + %54 = getelementptr inbounds i8, ptr %50, i64 -104 + store ptr %53, ptr %54, align 8, !tbaa !1466 + %55 = getelementptr inbounds nuw i8, ptr %5, i64 104 + %56 = load ptr, ptr %9, align 8, !tbaa !43 + %57 = getelementptr inbounds i8, ptr %56, i64 -96 + %58 = call noundef nonnull align 8 dereferenceable(77) ptr @_ZN5boost13match_resultsIPKwSaINS_9sub_matchIS2_EEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(77) %57, ptr noundef nonnull align 8 dereferenceable(77) %55) + %59 = getelementptr inbounds nuw i8, ptr %0, i64 40 + %60 = load ptr, ptr %59, align 8, !tbaa !1397 + %61 = load ptr, ptr %9, align 8, !tbaa !43 + %62 = getelementptr inbounds i8, ptr %61, i64 -8 + store ptr %60, ptr %62, align 8, !tbaa !1497 + %63 = getelementptr inbounds nuw i8, ptr %5, i64 24 + %64 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %65 = load ptr, ptr %64, align 8, !tbaa !1410 + %66 = call noundef nonnull align 8 dereferenceable(77) ptr @_ZN5boost13match_resultsIPKwSaINS_9sub_matchIS2_EEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(77) %65, ptr noundef nonnull align 8 dereferenceable(77) %63) + br label %69 -68: ; preds = %19 - %69 = landingpad { ptr, i32 } +67: ; preds = %18 + %68 = landingpad { ptr, i32 } cleanup call void @_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKwSaINS_9sub_matchIS4_EEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(112) %3) #28 call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %3) #28 - resume { ptr, i32 } %69 + resume { ptr, i32 } %68 -70: ; preds = %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKwSaINS_9sub_matchIS4_EEEEEED2Ev.exit, %2 - %71 = getelementptr inbounds nuw i8, ptr %5, i64 184 +69: ; preds = %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKwSaINS_9sub_matchIS4_EEEEEED2Ev.exit, %2 + %70 = getelementptr inbounds nuw i8, ptr %5, i64 184 call void @_ZN5boost13re_detail_50015saved_recursionINS_13match_resultsIPKwSaINS_9sub_matchIS4_EEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(184) %5) #28 - store ptr %71, ptr %4, align 8, !tbaa !1434 + store ptr %70, ptr %4, align 8, !tbaa !1434 ret i1 true } diff --git a/bench/boost/optimized/origin_form_rule.ll b/bench/boost/optimized/origin_form_rule.ll index c35d41f689a..094a01b03c6 100644 --- a/bench/boost/optimized/origin_form_rule.ll +++ b/bench/boost/optimized/origin_form_rule.ll @@ -897,7 +897,7 @@ _ZN5boost6system10error_codeC2ERKS1_PKNS_15source_locationE.exit56: ; preds = %_ ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden void @_ZNK5boost4urls7grammar22implementation_defined12tuple_rule_tINS2_13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE5parseERPKcSB_(ptr dead_on_unwind noalias writable sret(%"class.boost::system::result.41") align 8 %0, ptr noundef nonnull align 8 dereferenceable(40) %1, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef %3) local_unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { %5 = alloca %"class.boost::system::result.62", align 8 - %.sroa.525 = alloca [12 x i8], align 4 + %.sroa.524 = alloca [12 x i8], align 4 %6 = alloca %"class.boost::system::result.78", align 8 %.sroa.5 = alloca [12 x i8], align 4 %.sroa.7 = alloca [12 x i8], align 4 @@ -956,28 +956,28 @@ _ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5erro br i1 %14, label %_ZNK5boost6system10error_code6failedEv.exit.thread3.i, label %15 15: ; preds = %12 - call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.525) + call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.524) %16 = icmp eq i32 %.sroa.15.32.copyload, 2 br i1 %16, label %17, label %18 17: ; preds = %15 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.525, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.11.sroa.6, i64 12, i1 false), !tbaa.struct !105 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.524, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.11.sroa.6, i64 12, i1 false), !tbaa.struct !105 br label %_ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i 18: ; preds = %15 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.525, i8 0, i64 12, i1 false), !alias.scope !109 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.524, i8 0, i64 12, i1 false), !alias.scope !109 br label %_ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i _ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i: ; preds = %18, %17 - %.sroa.626.0 = phi i64 [ %.sroa.11.sroa.7.0.copyload, %17 ], [ 0, %18 ] - %.sroa.024.0 = phi i32 [ %.sroa.11.sroa.0.0.copyload, %17 ], [ 0, %18 ] - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.7, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.525, i64 12, i1 false), !tbaa.struct !105 - call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %.sroa.525) + %.sroa.625.0 = phi i64 [ %.sroa.11.sroa.7.0.copyload, %17 ], [ 0, %18 ] + %.sroa.023.0 = phi i32 [ %.sroa.11.sroa.0.0.copyload, %17 ], [ 0, %18 ] + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.7, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.524, i64 12, i1 false), !tbaa.struct !105 + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %.sroa.524) br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSG_RKSt17integral_constantImXT_EERKSI_ImXT0_EE.exit _ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSG_RKSt17integral_constantImXT_EERKSI_ImXT0_EE.exit: ; preds = %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i, %_ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i - %.sroa.04.0 = phi i32 [ %.sroa.024.0, %_ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i ], [ %.sroa.019.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ] - %.sroa.79.0 = phi i64 [ %.sroa.626.0, %_ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i ], [ %.sroa.6.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ] + %.sroa.04.0 = phi i32 [ %.sroa.023.0, %_ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i ], [ %.sroa.019.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ] + %.sroa.79.0 = phi i64 [ %.sroa.625.0, %_ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i ], [ %.sroa.6.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ] %.sroa.11.sroa.7.0 = phi i64 [ %.sroa.11.sroa.7.0.copyload, %_ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i ], [ 0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ] %.sroa.11.sroa.0.0 = phi i32 [ %.sroa.11.sroa.0.0.copyload, %_ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i ], [ 0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ] %19 = and i64 %.sroa.79.0, 1 @@ -999,17 +999,17 @@ _ZNK5boost6system10error_code6failedEv.exit.thread.i: ; preds = %20 br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE11make_resultEv.exit _ZNK5boost6system10error_code6failedEv.exit.thread3.i: ; preds = %12, %20, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSG_RKSt17integral_constantImXT_EERKSI_ImXT0_EE.exit - %.sroa.11.sroa.0.038 = phi i32 [ %.sroa.11.sroa.0.0, %20 ], [ %.sroa.11.sroa.0.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSG_RKSt17integral_constantImXT_EERKSI_ImXT0_EE.exit ], [ %.sroa.11.sroa.0.0.copyload, %12 ] - %.sroa.11.sroa.7.037 = phi i64 [ %.sroa.11.sroa.7.0, %20 ], [ %.sroa.11.sroa.7.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSG_RKSt17integral_constantImXT_EERKSI_ImXT0_EE.exit ], [ %.sroa.11.sroa.7.0.copyload, %12 ] - store i32 %.sroa.11.sroa.0.038, ptr %0, align 8 - %.sroa.11.sroa.6.0..sroa_idx28 = getelementptr inbounds nuw i8, ptr %0, i64 4 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.11.sroa.6.0..sroa_idx28, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.11.sroa.6, i64 12, i1 false) - %.sroa.11.sroa.7.0..sroa_idx29 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i64 %.sroa.11.sroa.7.037, ptr %.sroa.11.sroa.7.0..sroa_idx29, align 8 + %.sroa.11.sroa.0.037 = phi i32 [ %.sroa.11.sroa.0.0, %20 ], [ %.sroa.11.sroa.0.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSG_RKSt17integral_constantImXT_EERKSI_ImXT0_EE.exit ], [ %.sroa.11.sroa.0.0.copyload, %12 ] + %.sroa.11.sroa.7.036 = phi i64 [ %.sroa.11.sroa.7.0, %20 ], [ %.sroa.11.sroa.7.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSG_RKSt17integral_constantImXT_EERKSI_ImXT0_EE.exit ], [ %.sroa.11.sroa.7.0.copyload, %12 ] + store i32 %.sroa.11.sroa.0.037, ptr %0, align 8 + %.sroa.11.sroa.6.0..sroa_idx27 = getelementptr inbounds nuw i8, ptr %0, i64 4 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.11.sroa.6.0..sroa_idx27, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.11.sroa.6, i64 12, i1 false) + %.sroa.11.sroa.7.0..sroa_idx28 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store i64 %.sroa.11.sroa.7.036, ptr %.sroa.11.sroa.7.0..sroa_idx28, align 8 %23 = getelementptr inbounds nuw i8, ptr %0, i64 24 store i32 %.sroa.17.sroa.3.4.copyload, ptr %23, align 8 - %.sroa.17.sroa.7.4..sroa_idx22 = getelementptr inbounds nuw i8, ptr %0, i64 28 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.17.sroa.7.4..sroa_idx22, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.17.sroa.7, i64 12, i1 false), !tbaa.struct !112 + %.sroa.17.sroa.7.4..sroa_idx21 = getelementptr inbounds nuw i8, ptr %0, i64 28 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.17.sroa.7.4..sroa_idx21, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.17.sroa.7, i64 12, i1 false), !tbaa.struct !112 br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE11make_resultEv.exit _ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE11make_resultEv.exit: ; preds = %_ZNK5boost6system10error_code6failedEv.exit.thread.i, %_ZNK5boost6system10error_code6failedEv.exit.thread3.i diff --git a/bench/bullet3/optimized/btGImpactBvh.ll b/bench/bullet3/optimized/btGImpactBvh.ll index 12f3885ea1b..22b528d9b99 100644 --- a/bench/bullet3/optimized/btGImpactBvh.ll +++ b/bench/bullet3/optimized/btGImpactBvh.ll @@ -647,7 +647,6 @@ define dso_local void @_ZN12btGImpactBvh5refitEv(ptr noundef nonnull readonly al ; Function Attrs: mustprogress uwtable define dso_local void @_ZN12btGImpactBvh8buildSetEv(ptr noundef nonnull align 8 dereferenceable(48) %0) local_unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 { %2 = alloca %class.GIM_BVH_DATA_ARRAY, align 8 - %.sroa.0 = alloca %class.btAABB, align 8 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #14 %3 = getelementptr inbounds nuw i8, ptr %2, i64 24 store i8 1, ptr %3, align 8, !tbaa !52 @@ -663,11 +662,9 @@ define dso_local void @_ZN12btGImpactBvh8buildSetEv(ptr noundef nonnull align 8 %10 = getelementptr inbounds nuw i8, ptr %9, i64 24 %11 = load ptr, ptr %10, align 8 %12 = invoke noundef i32 %11(ptr noundef nonnull align 8 dereferenceable(8) %8) - to label %13 unwind label %36 + to label %13 unwind label %33 13: ; preds = %1 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %.sroa.0) - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0, i8 0, i64 32, i1 false) %14 = icmp sgt i32 %12, 0 br i1 %14, label %15, label %.loopexit @@ -675,7 +672,7 @@ define dso_local void @_ZN12btGImpactBvh8buildSetEv(ptr noundef nonnull align 8 %16 = zext nneg i32 %12 to i64 %17 = mul nuw nsw i64 %16, 36 %18 = invoke noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef %17, i32 noundef 16) - to label %_ZN20btAlignedObjectArrayI12GIM_BVH_DATAE8allocateEi.exit.i.i unwind label %38 + to label %_ZN20btAlignedObjectArrayI12GIM_BVH_DATAE8allocateEi.exit.i.i unwind label %35 _ZN20btAlignedObjectArrayI12GIM_BVH_DATAE8allocateEi.exit.i.i: ; preds = %15 %.pre.i = load i32, ptr %5, align 4, !tbaa !39 @@ -712,107 +709,98 @@ _ZNK20btAlignedObjectArrayI12GIM_BVH_DATAE4copyEiiPS0_.exit.i.i: ; preds = %20, 30: ; preds = %_ZNK20btAlignedObjectArrayI12GIM_BVH_DATAE4copyEiiPS0_.exit.i.i invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %.pre.pre) - to label %.lr.ph.i unwind label %38 + to label %.lr.ph.i unwind label %35 .lr.ph.i: ; preds = %_ZNK20btAlignedObjectArrayI12GIM_BVH_DATAE4copyEiiPS0_.exit.i.i, %30 store i8 1, ptr %3, align 8, !tbaa !52 store ptr %18, ptr %4, align 8, !tbaa !4 store i32 %12, ptr %6, align 8, !tbaa !53 %wide.trip.count.i = zext nneg i32 %12 to i64 - %.sroa.0.16..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0, i64 16 br label %31 31: ; preds = %31, %.lr.ph.i %indvars.iv.i = phi i64 [ 0, %.lr.ph.i ], [ %indvars.iv.next.i, %31 ] - %32 = load ptr, ptr %4, align 8, !tbaa !4 - %33 = getelementptr inbounds nuw %struct.GIM_BVH_DATA, ptr %32, i64 %indvars.iv.i - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %33, i8 0, i64 16, i1 false) - %34 = getelementptr inbounds nuw i8, ptr %33, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %34, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.0.16..sroa_idx, i64 16, i1 false), !tbaa.struct !19 - %35 = getelementptr inbounds nuw i8, ptr %33, i64 32 - store i32 0, ptr %35, align 4, !tbaa !21 + %32 = getelementptr inbounds nuw %struct.GIM_BVH_DATA, ptr %18, i64 %indvars.iv.i %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %32, i8 0, i64 36, i1 false) br i1 %exitcond.not.i, label %.lr.ph.preheader, label %31, !llvm.loop !55 .loopexit: ; preds = %13 store i32 %12, ptr %5, align 4, !tbaa !39 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %.sroa.0) br label %._crit_edge .lr.ph.preheader: ; preds = %31 store i32 %12, ptr %5, align 4, !tbaa !39 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %.sroa.0) %.pre16 = load ptr, ptr %4, align 8, !tbaa !4 br label %.lr.ph -._crit_edge: ; preds = %49, %.loopexit +._crit_edge: ; preds = %46, %.loopexit invoke void @_ZN9btBvhTree10build_treeER18GIM_BVH_DATA_ARRAY(ptr noundef nonnull align 8 dereferenceable(40) %0, ptr noundef nonnull align 8 dereferenceable(25) %2) - to label %55 unwind label %36 + to label %52 unwind label %33 -36: ; preds = %._crit_edge, %1 - %37 = landingpad { ptr, i32 } +33: ; preds = %._crit_edge, %1 + %34 = landingpad { ptr, i32 } cleanup - br label %63 + br label %60 -38: ; preds = %30, %15 - %39 = landingpad { ptr, i32 } +35: ; preds = %30, %15 + %36 = landingpad { ptr, i32 } cleanup - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %.sroa.0) - br label %63 + br label %60 -40: ; preds = %.lr.ph - %41 = landingpad { ptr, i32 } +37: ; preds = %.lr.ph + %38 = landingpad { ptr, i32 } cleanup - br label %63 - -.lr.ph: ; preds = %.lr.ph.preheader, %49 - %42 = phi ptr [ %.pre16, %.lr.ph.preheader ], [ %50, %49 ] - %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %49 ] - %43 = load ptr, ptr %7, align 8, !tbaa !46 - %44 = getelementptr inbounds nuw %struct.GIM_BVH_DATA, ptr %42, i64 %indvars.iv - %45 = load ptr, ptr %43, align 8, !tbaa !49 - %46 = getelementptr inbounds nuw i8, ptr %45, i64 32 - %47 = load ptr, ptr %46, align 8 - %48 = trunc nuw nsw i64 %indvars.iv to i32 - invoke void %47(ptr noundef nonnull align 8 dereferenceable(8) %43, i32 noundef %48, ptr noundef nonnull align 4 dereferenceable(32) %44) - to label %49 unwind label %40 - -49: ; preds = %.lr.ph - %50 = load ptr, ptr %4, align 8, !tbaa !4 - %51 = getelementptr inbounds nuw %struct.GIM_BVH_DATA, ptr %50, i64 %indvars.iv, i32 1 - store i32 %48, ptr %51, align 4, !tbaa !21 + br label %60 + +.lr.ph: ; preds = %.lr.ph.preheader, %46 + %39 = phi ptr [ %.pre16, %.lr.ph.preheader ], [ %47, %46 ] + %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %46 ] + %40 = load ptr, ptr %7, align 8, !tbaa !46 + %41 = getelementptr inbounds nuw %struct.GIM_BVH_DATA, ptr %39, i64 %indvars.iv + %42 = load ptr, ptr %40, align 8, !tbaa !49 + %43 = getelementptr inbounds nuw i8, ptr %42, i64 32 + %44 = load ptr, ptr %43, align 8 + %45 = trunc nuw nsw i64 %indvars.iv to i32 + invoke void %44(ptr noundef nonnull align 8 dereferenceable(8) %40, i32 noundef %45, ptr noundef nonnull align 4 dereferenceable(32) %41) + to label %46 unwind label %37 + +46: ; preds = %.lr.ph + %47 = load ptr, ptr %4, align 8, !tbaa !4 + %48 = getelementptr inbounds nuw %struct.GIM_BVH_DATA, ptr %47, i64 %indvars.iv, i32 1 + store i32 %45, ptr %48, align 4, !tbaa !21 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %52 = load i32, ptr %5, align 4, !tbaa !39 - %53 = sext i32 %52 to i64 - %54 = icmp slt i64 %indvars.iv.next, %53 - br i1 %54, label %.lr.ph, label %._crit_edge, !llvm.loop !56 - -55: ; preds = %._crit_edge - %56 = load ptr, ptr %4, align 8, !tbaa !4 - %.not.i.i.i12 = icmp ne ptr %56, null - %57 = load i8, ptr %3, align 8, !range !43 - %58 = trunc nuw i8 %57 to i1 - %or.cond.i.i13 = select i1 %.not.i.i.i12, i1 %58, i1 false - br i1 %or.cond.i.i13, label %59, label %_ZN20btAlignedObjectArrayI12GIM_BVH_DATAED2Ev.exit - -59: ; preds = %55 - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %56) - to label %_ZN20btAlignedObjectArrayI12GIM_BVH_DATAED2Ev.exit unwind label %60 - -60: ; preds = %59 - %61 = landingpad { ptr, i32 } + %49 = load i32, ptr %5, align 4, !tbaa !39 + %50 = sext i32 %49 to i64 + %51 = icmp slt i64 %indvars.iv.next, %50 + br i1 %51, label %.lr.ph, label %._crit_edge, !llvm.loop !56 + +52: ; preds = %._crit_edge + %53 = load ptr, ptr %4, align 8, !tbaa !4 + %.not.i.i.i12 = icmp ne ptr %53, null + %54 = load i8, ptr %3, align 8, !range !43 + %55 = trunc nuw i8 %54 to i1 + %or.cond.i.i13 = select i1 %.not.i.i.i12, i1 %55, i1 false + br i1 %or.cond.i.i13, label %56, label %_ZN20btAlignedObjectArrayI12GIM_BVH_DATAED2Ev.exit + +56: ; preds = %52 + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %53) + to label %_ZN20btAlignedObjectArrayI12GIM_BVH_DATAED2Ev.exit unwind label %57 + +57: ; preds = %56 + %58 = landingpad { ptr, i32 } catch ptr null - %62 = extractvalue { ptr, i32 } %61, 0 - call void @__clang_call_terminate(ptr %62) #15 + %59 = extractvalue { ptr, i32 } %58, 0 + call void @__clang_call_terminate(ptr %59) #15 unreachable -_ZN20btAlignedObjectArrayI12GIM_BVH_DATAED2Ev.exit: ; preds = %55, %59 +_ZN20btAlignedObjectArrayI12GIM_BVH_DATAED2Ev.exit: ; preds = %52, %56 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #14 ret void -63: ; preds = %40, %38, %36 - %.pn = phi { ptr, i32 } [ %41, %40 ], [ %37, %36 ], [ %39, %38 ] +60: ; preds = %37, %35, %33 + %.pn = phi { ptr, i32 } [ %38, %37 ], [ %34, %33 ], [ %36, %35 ] call void @_ZN20btAlignedObjectArrayI12GIM_BVH_DATAED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %2) #14 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #14 resume { ptr, i32 } %.pn diff --git a/bench/bullet3/optimized/btReducedDeformableBodyHelpers.ll b/bench/bullet3/optimized/btReducedDeformableBodyHelpers.ll index ac90600a2bb..7d5d11ea2e8 100644 --- a/bench/bullet3/optimized/btReducedDeformableBodyHelpers.ll +++ b/bench/bullet3/optimized/btReducedDeformableBodyHelpers.ll @@ -264,8 +264,6 @@ define dso_local noundef ptr @_ZN30btReducedDeformableBodyHelpers17createFromVtk %14 = alloca float, align 4 %15 = alloca i32, align 4 %16 = alloca %class.btAlignedObjectArray.55, align 8 - %.sroa.0209 = alloca [3 x %class.btVector3], align 8 - %.sroa.0 = alloca [3 x %class.btVector3], align 8 call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %3) #21 call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(256) %3) %17 = getelementptr inbounds nuw i8, ptr %3, i64 16 @@ -426,7 +424,7 @@ _ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc.exit.i: ; preds = %.noexc101, %79 100: ; preds = %27, %2 %101 = landingpad { ptr, i32 } cleanup - br label %542 + br label %536 .loopexit229: ; preds = %82, %.noexc101, %_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc.exit.i %lpad.loopexit = landingpad { ptr, i32 } @@ -1063,7 +1061,7 @@ _ZN17btCollisionObjectnwEm.exit: ; preds = %306 invoke void @_ZN17btSoftBodyHelpers21generateBoundaryFacesEP10btSoftBody(ptr noundef nonnull %307) to label %366 unwind label %311 -311: ; preds = %487, %.loopexit, %306, %366, %._crit_edge +311: ; preds = %481, %.loopexit, %306, %366, %._crit_edge %312 = landingpad { ptr, i32 } cleanup br label %_ZN17btCollisionObjectdlEPv.exit @@ -1165,8 +1163,6 @@ _ZN17btCollisionObjectnwEm.exit: ; preds = %306 367: ; preds = %366 %368 = getelementptr inbounds nuw i8, ptr %307, i64 1092 %369 = load i32, ptr %368, align 4, !tbaa !90 - call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %.sroa.0209) - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %.sroa.0209, i8 0, i64 48, i1 false) %370 = getelementptr inbounds nuw i8, ptr %307, i64 1124 %371 = load i32, ptr %370, align 4, !tbaa !94 %372 = icmp sgt i32 %369, %371 @@ -1186,7 +1182,7 @@ _ZN17btCollisionObjectnwEm.exit: ; preds = %306 %379 = sext i32 %369 to i64 %380 = mul nsw i64 %379, 152 %381 = invoke noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef %380, i32 noundef 16) - to label %.noexc166 unwind label %495 + to label %.noexc166 unwind label %489 .noexc166: ; preds = %378 %.pre.i157 = load i32, ptr %370, align 4, !tbaa !94 @@ -1253,7 +1249,7 @@ _ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i: ; 413: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %409) - to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i unwind label %495 + to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i unwind label %489 _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i: ; preds = %413, %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i store i8 1, ptr %410, align 8, !tbaa !101 @@ -1265,23 +1261,15 @@ _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i: %414 = getelementptr inbounds nuw i8, ptr %307, i64 1136 %415 = sext i32 %371 to i64 %wide.trip.count.i152 = sext i32 %369 to i64 - %.sroa.0209.16..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0209, i64 16 - %.sroa.0209.32..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0209, i64 32 br label %416 416: ; preds = %416, %.lr.ph.i151 %indvars.iv.i153 = phi i64 [ %415, %.lr.ph.i151 ], [ %indvars.iv.next.i154, %416 ] %417 = load ptr, ptr %414, align 8, !tbaa !99 %418 = getelementptr inbounds %"struct.btSoftBody::TetraScratch", ptr %417, i64 %indvars.iv.i153 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %418, i8 0, i64 16, i1 false) - %419 = getelementptr inbounds nuw i8, ptr %418, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %419, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.0209.16..sroa_idx, i64 16, i1 false), !tbaa.struct !63 - %420 = getelementptr inbounds nuw i8, ptr %418, i64 32 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %420, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.0209.32..sroa_idx, i64 16, i1 false), !tbaa.struct !63 - %421 = getelementptr inbounds nuw i8, ptr %418, i64 48 %indvars.iv.next.i154 = add nsw i64 %indvars.iv.i153, 1 %exitcond.not.i155 = icmp eq i64 %indvars.iv.next.i154, %wide.trip.count.i152 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(104) %421, i8 0, i64 104, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %418, i8 0, i64 152, i1 false) br i1 %exitcond.not.i155, label %.loopexit227.loopexit, label %416, !llvm.loop !102 .loopexit227.loopexit: ; preds = %416 @@ -1289,274 +1277,260 @@ _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i: br label %.loopexit227 .loopexit227: ; preds = %.loopexit227.loopexit, %367 - %422 = phi i32 [ %.pre, %.loopexit227.loopexit ], [ %369, %367 ] + %419 = phi i32 [ %.pre, %.loopexit227.loopexit ], [ %369, %367 ] store i32 %369, ptr %370, align 4, !tbaa !94 - call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %.sroa.0209) - call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %.sroa.0) - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %.sroa.0, i8 0, i64 48, i1 false) - %423 = getelementptr inbounds nuw i8, ptr %307, i64 1156 - %424 = load i32, ptr %423, align 4, !tbaa !94 - %425 = icmp sgt i32 %422, %424 - br i1 %425, label %426, label %.loopexit - -426: ; preds = %.loopexit227 - %427 = getelementptr inbounds nuw i8, ptr %307, i64 1160 - %428 = load i32, ptr %427, align 8, !tbaa !98 - %429 = icmp slt i32 %428, %422 - br i1 %429, label %430, label %.lr.ph.i168 - -430: ; preds = %426 - %.not.i.i.i173 = icmp eq i32 %422, 0 - br i1 %.not.i.i.i173, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175, label %431 - -431: ; preds = %430 - %432 = sext i32 %422 to i64 - %433 = mul nsw i64 %432, 152 - %434 = invoke noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef %433, i32 noundef 16) - to label %.noexc186 unwind label %497 - -.noexc186: ; preds = %431 - %.pre.i174 = load i32, ptr %423, align 4, !tbaa !94 + %420 = getelementptr inbounds nuw i8, ptr %307, i64 1156 + %421 = load i32, ptr %420, align 4, !tbaa !94 + %422 = icmp sgt i32 %419, %421 + br i1 %422, label %423, label %.loopexit + +423: ; preds = %.loopexit227 + %424 = getelementptr inbounds nuw i8, ptr %307, i64 1160 + %425 = load i32, ptr %424, align 8, !tbaa !98 + %426 = icmp slt i32 %425, %419 + br i1 %426, label %427, label %.lr.ph.i168 + +427: ; preds = %423 + %.not.i.i.i173 = icmp eq i32 %419, 0 + br i1 %.not.i.i.i173, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175, label %428 + +428: ; preds = %427 + %429 = sext i32 %419 to i64 + %430 = mul nsw i64 %429, 152 + %431 = invoke noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef %430, i32 noundef 16) + to label %.noexc186 unwind label %491 + +.noexc186: ; preds = %428 + %.pre.i174 = load i32, ptr %420, align 4, !tbaa !94 br label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175 -_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175: ; preds = %.noexc186, %430 - %435 = phi i32 [ %.pre.i174, %.noexc186 ], [ %424, %430 ] - %.0.i.i.i176 = phi ptr [ %434, %.noexc186 ], [ null, %430 ] - %436 = icmp sgt i32 %435, 0 - br i1 %436, label %.lr.ph.i.i.i181, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 +_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175: ; preds = %.noexc186, %427 + %432 = phi i32 [ %.pre.i174, %.noexc186 ], [ %421, %427 ] + %.0.i.i.i176 = phi ptr [ %431, %.noexc186 ], [ null, %427 ] + %433 = icmp sgt i32 %432, 0 + br i1 %433, label %.lr.ph.i.i.i181, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 .lr.ph.i.i.i181: ; preds = %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175 - %437 = getelementptr inbounds nuw i8, ptr %307, i64 1168 - %wide.trip.count.i.i.i182 = zext nneg i32 %435 to i64 - br label %438 - -438: ; preds = %438, %.lr.ph.i.i.i181 - %indvars.iv.i.i.i183 = phi i64 [ 0, %.lr.ph.i.i.i181 ], [ %indvars.iv.next.i.i.i184, %438 ] - %439 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %.0.i.i.i176, i64 %indvars.iv.i.i.i183 - %440 = load ptr, ptr %437, align 8, !tbaa !99 - %441 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %440, i64 %indvars.iv.i.i.i183 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %439, ptr noundef nonnull align 4 dereferenceable(152) %441, i64 16, i1 false), !tbaa.struct !63 - %442 = getelementptr inbounds nuw i8, ptr %441, i64 16 - %443 = getelementptr inbounds nuw i8, ptr %439, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %443, ptr noundef nonnull align 4 dereferenceable(16) %442, i64 16, i1 false), !tbaa.struct !63 - %444 = getelementptr inbounds nuw i8, ptr %441, i64 32 - %445 = getelementptr inbounds nuw i8, ptr %439, i64 32 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %445, ptr noundef nonnull align 4 dereferenceable(16) %444, i64 16, i1 false), !tbaa.struct !63 - %446 = getelementptr inbounds nuw i8, ptr %439, i64 48 - %447 = getelementptr inbounds nuw i8, ptr %441, i64 48 - %448 = load i64, ptr %447, align 4 - store i64 %448, ptr %446, align 4 - %449 = getelementptr inbounds nuw i8, ptr %439, i64 56 - %450 = getelementptr inbounds nuw i8, ptr %441, i64 56 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %449, ptr noundef nonnull align 4 dereferenceable(48) %450, i64 16, i1 false), !tbaa.struct !63 - %451 = getelementptr inbounds nuw i8, ptr %441, i64 72 - %452 = getelementptr inbounds nuw i8, ptr %439, i64 72 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %452, ptr noundef nonnull align 4 dereferenceable(16) %451, i64 16, i1 false), !tbaa.struct !63 - %453 = getelementptr inbounds nuw i8, ptr %441, i64 88 - %454 = getelementptr inbounds nuw i8, ptr %439, i64 88 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %454, ptr noundef nonnull align 4 dereferenceable(16) %453, i64 16, i1 false), !tbaa.struct !63 - %455 = getelementptr inbounds nuw i8, ptr %439, i64 104 - %456 = getelementptr inbounds nuw i8, ptr %441, i64 104 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %455, ptr noundef nonnull align 4 dereferenceable(48) %456, i64 16, i1 false), !tbaa.struct !63 - %457 = getelementptr inbounds nuw i8, ptr %441, i64 120 - %458 = getelementptr inbounds nuw i8, ptr %439, i64 120 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %458, ptr noundef nonnull align 4 dereferenceable(16) %457, i64 16, i1 false), !tbaa.struct !63 - %459 = getelementptr inbounds nuw i8, ptr %441, i64 136 - %460 = getelementptr inbounds nuw i8, ptr %439, i64 136 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %460, ptr noundef nonnull align 4 dereferenceable(16) %459, i64 16, i1 false), !tbaa.struct !63 + %434 = getelementptr inbounds nuw i8, ptr %307, i64 1168 + %wide.trip.count.i.i.i182 = zext nneg i32 %432 to i64 + br label %435 + +435: ; preds = %435, %.lr.ph.i.i.i181 + %indvars.iv.i.i.i183 = phi i64 [ 0, %.lr.ph.i.i.i181 ], [ %indvars.iv.next.i.i.i184, %435 ] + %436 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %.0.i.i.i176, i64 %indvars.iv.i.i.i183 + %437 = load ptr, ptr %434, align 8, !tbaa !99 + %438 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %437, i64 %indvars.iv.i.i.i183 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %436, ptr noundef nonnull align 4 dereferenceable(152) %438, i64 16, i1 false), !tbaa.struct !63 + %439 = getelementptr inbounds nuw i8, ptr %438, i64 16 + %440 = getelementptr inbounds nuw i8, ptr %436, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %440, ptr noundef nonnull align 4 dereferenceable(16) %439, i64 16, i1 false), !tbaa.struct !63 + %441 = getelementptr inbounds nuw i8, ptr %438, i64 32 + %442 = getelementptr inbounds nuw i8, ptr %436, i64 32 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %442, ptr noundef nonnull align 4 dereferenceable(16) %441, i64 16, i1 false), !tbaa.struct !63 + %443 = getelementptr inbounds nuw i8, ptr %436, i64 48 + %444 = getelementptr inbounds nuw i8, ptr %438, i64 48 + %445 = load i64, ptr %444, align 4 + store i64 %445, ptr %443, align 4 + %446 = getelementptr inbounds nuw i8, ptr %436, i64 56 + %447 = getelementptr inbounds nuw i8, ptr %438, i64 56 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %446, ptr noundef nonnull align 4 dereferenceable(48) %447, i64 16, i1 false), !tbaa.struct !63 + %448 = getelementptr inbounds nuw i8, ptr %438, i64 72 + %449 = getelementptr inbounds nuw i8, ptr %436, i64 72 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %449, ptr noundef nonnull align 4 dereferenceable(16) %448, i64 16, i1 false), !tbaa.struct !63 + %450 = getelementptr inbounds nuw i8, ptr %438, i64 88 + %451 = getelementptr inbounds nuw i8, ptr %436, i64 88 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %451, ptr noundef nonnull align 4 dereferenceable(16) %450, i64 16, i1 false), !tbaa.struct !63 + %452 = getelementptr inbounds nuw i8, ptr %436, i64 104 + %453 = getelementptr inbounds nuw i8, ptr %438, i64 104 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %452, ptr noundef nonnull align 4 dereferenceable(48) %453, i64 16, i1 false), !tbaa.struct !63 + %454 = getelementptr inbounds nuw i8, ptr %438, i64 120 + %455 = getelementptr inbounds nuw i8, ptr %436, i64 120 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %455, ptr noundef nonnull align 4 dereferenceable(16) %454, i64 16, i1 false), !tbaa.struct !63 + %456 = getelementptr inbounds nuw i8, ptr %438, i64 136 + %457 = getelementptr inbounds nuw i8, ptr %436, i64 136 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %457, ptr noundef nonnull align 4 dereferenceable(16) %456, i64 16, i1 false), !tbaa.struct !63 %indvars.iv.next.i.i.i184 = add nuw nsw i64 %indvars.iv.i.i.i183, 1 %exitcond.not.i.i.i185 = icmp eq i64 %indvars.iv.next.i.i.i184, %wide.trip.count.i.i.i182 - br i1 %exitcond.not.i.i.i185, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177, label %438, !llvm.loop !100 - -_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177: ; preds = %438, %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175 - %461 = getelementptr inbounds nuw i8, ptr %307, i64 1168 - %462 = load ptr, ptr %461, align 8, !tbaa !99 - %.not.i5.i.i178 = icmp ne ptr %462, null - %463 = getelementptr inbounds nuw i8, ptr %307, i64 1176 - %464 = load i8, ptr %463, align 8, !range !66 - %465 = trunc nuw i8 %464 to i1 - %or.cond.i.i179 = select i1 %.not.i5.i.i178, i1 %465, i1 false - br i1 %or.cond.i.i179, label %466, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180 - -466: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %462) - to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180 unwind label %497 - -_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180: ; preds = %466, %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 - store i8 1, ptr %463, align 8, !tbaa !101 - store ptr %.0.i.i.i176, ptr %461, align 8, !tbaa !99 - store i32 %422, ptr %427, align 8, !tbaa !98 + br i1 %exitcond.not.i.i.i185, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177, label %435, !llvm.loop !100 + +_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177: ; preds = %435, %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175 + %458 = getelementptr inbounds nuw i8, ptr %307, i64 1168 + %459 = load ptr, ptr %458, align 8, !tbaa !99 + %.not.i5.i.i178 = icmp ne ptr %459, null + %460 = getelementptr inbounds nuw i8, ptr %307, i64 1176 + %461 = load i8, ptr %460, align 8, !range !66 + %462 = trunc nuw i8 %461 to i1 + %or.cond.i.i179 = select i1 %.not.i5.i.i178, i1 %462, i1 false + br i1 %or.cond.i.i179, label %463, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180 + +463: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %459) + to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180 unwind label %491 + +_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180: ; preds = %463, %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 + store i8 1, ptr %460, align 8, !tbaa !101 + store ptr %.0.i.i.i176, ptr %458, align 8, !tbaa !99 + store i32 %419, ptr %424, align 8, !tbaa !98 br label %.lr.ph.i168 -.lr.ph.i168: ; preds = %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180, %426 - %467 = getelementptr inbounds nuw i8, ptr %307, i64 1168 - %468 = sext i32 %424 to i64 - %wide.trip.count.i169 = sext i32 %422 to i64 - %.sroa.0.16..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0, i64 16 - %.sroa.0.32..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0, i64 32 - br label %469 - -469: ; preds = %469, %.lr.ph.i168 - %indvars.iv.i170 = phi i64 [ %468, %.lr.ph.i168 ], [ %indvars.iv.next.i171, %469 ] - %470 = load ptr, ptr %467, align 8, !tbaa !99 - %471 = getelementptr inbounds %"struct.btSoftBody::TetraScratch", ptr %470, i64 %indvars.iv.i170 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %471, i8 0, i64 16, i1 false) - %472 = getelementptr inbounds nuw i8, ptr %471, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %472, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.0.16..sroa_idx, i64 16, i1 false), !tbaa.struct !63 - %473 = getelementptr inbounds nuw i8, ptr %471, i64 32 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %473, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.0.32..sroa_idx, i64 16, i1 false), !tbaa.struct !63 - %474 = getelementptr inbounds nuw i8, ptr %471, i64 48 +.lr.ph.i168: ; preds = %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180, %423 + %464 = getelementptr inbounds nuw i8, ptr %307, i64 1168 + %465 = sext i32 %421 to i64 + %wide.trip.count.i169 = sext i32 %419 to i64 + br label %466 + +466: ; preds = %466, %.lr.ph.i168 + %indvars.iv.i170 = phi i64 [ %465, %.lr.ph.i168 ], [ %indvars.iv.next.i171, %466 ] + %467 = load ptr, ptr %464, align 8, !tbaa !99 + %468 = getelementptr inbounds %"struct.btSoftBody::TetraScratch", ptr %467, i64 %indvars.iv.i170 %indvars.iv.next.i171 = add nsw i64 %indvars.iv.i170, 1 %exitcond.not.i172 = icmp eq i64 %indvars.iv.next.i171, %wide.trip.count.i169 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(104) %474, i8 0, i64 104, i1 false) - br i1 %exitcond.not.i172, label %.loopexit, label %469, !llvm.loop !102 - -.loopexit: ; preds = %469, %.loopexit227 - store i32 %422, ptr %423, align 4, !tbaa !94 - call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %.sroa.0) - %475 = getelementptr inbounds nuw i8, ptr %307, i64 932 - %476 = load i32, ptr %475, align 4, !tbaa !12 - %477 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.5, i32 noundef %476) - %478 = getelementptr inbounds nuw i8, ptr %307, i64 996 - %479 = load i32, ptr %478, align 4, !tbaa !103 - %480 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.6, i32 noundef %479) - %481 = getelementptr inbounds nuw i8, ptr %307, i64 1028 - %482 = load i32, ptr %481, align 4, !tbaa !107 - %483 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.7, i32 noundef %482) - %484 = load i32, ptr %368, align 4, !tbaa !90 - %485 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.8, i32 noundef %484) - %486 = invoke noundef ptr @_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(240) %17) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %468, i8 0, i64 152, i1 false) + br i1 %exitcond.not.i172, label %.loopexit, label %466, !llvm.loop !102 + +.loopexit: ; preds = %466, %.loopexit227 + store i32 %419, ptr %420, align 4, !tbaa !94 + %469 = getelementptr inbounds nuw i8, ptr %307, i64 932 + %470 = load i32, ptr %469, align 4, !tbaa !12 + %471 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.5, i32 noundef %470) + %472 = getelementptr inbounds nuw i8, ptr %307, i64 996 + %473 = load i32, ptr %472, align 4, !tbaa !103 + %474 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.6, i32 noundef %473) + %475 = getelementptr inbounds nuw i8, ptr %307, i64 1028 + %476 = load i32, ptr %475, align 4, !tbaa !107 + %477 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.7, i32 noundef %476) + %478 = load i32, ptr %368, align 4, !tbaa !90 + %479 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.8, i32 noundef %478) + %480 = invoke noundef ptr @_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(240) %17) to label %.noexc190 unwind label %311 .noexc190: ; preds = %.loopexit - %.not.i189 = icmp eq ptr %486, null - br i1 %.not.i189, label %487, label %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 - -487: ; preds = %.noexc190 - %488 = load ptr, ptr %3, align 8, !tbaa !22 - %489 = getelementptr i8, ptr %488, i64 -24 - %490 = load i64, ptr %489, align 8 - %491 = getelementptr inbounds i8, ptr %3, i64 %490 - %492 = getelementptr inbounds nuw i8, ptr %491, i64 32 - %493 = load i32, ptr %492, align 8, !tbaa !24 - %494 = or i32 %493, 4 - invoke void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(ptr noundef nonnull align 8 dereferenceable(264) %491, i32 noundef %494) + %.not.i189 = icmp eq ptr %480, null + br i1 %.not.i189, label %481, label %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 + +481: ; preds = %.noexc190 + %482 = load ptr, ptr %3, align 8, !tbaa !22 + %483 = getelementptr i8, ptr %482, i64 -24 + %484 = load i64, ptr %483, align 8 + %485 = getelementptr inbounds i8, ptr %3, i64 %484 + %486 = getelementptr inbounds nuw i8, ptr %485, i64 32 + %487 = load i32, ptr %486, align 8, !tbaa !24 + %488 = or i32 %487, 4 + invoke void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(ptr noundef nonnull align 8 dereferenceable(264) %485, i32 noundef %488) to label %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 unwind label %311 -495: ; preds = %413, %378 - %496 = landingpad { ptr, i32 } +489: ; preds = %413, %378 + %490 = landingpad { ptr, i32 } cleanup - call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %.sroa.0209) br label %_ZN17btCollisionObjectdlEPv.exit -497: ; preds = %466, %431 - %498 = landingpad { ptr, i32 } +491: ; preds = %463, %428 + %492 = landingpad { ptr, i32 } cleanup - call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %.sroa.0) br label %_ZN17btCollisionObjectdlEPv.exit -_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192: ; preds = %_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev.exit, %.noexc190, %487 - %.4 = phi ptr [ %307, %487 ], [ %307, %.noexc190 ], [ null, %_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev.exit ] +_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192: ; preds = %_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev.exit, %.noexc190, %481 + %.4 = phi ptr [ %307, %481 ], [ %307, %.noexc190 ], [ null, %_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev.exit ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #21 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #21 - %499 = load i32, ptr %37, align 4, !tbaa !45 - %500 = icmp sgt i32 %499, 0 - br i1 %500, label %.lr.ph.i.i.i195, label %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i + %493 = load i32, ptr %37, align 4, !tbaa !45 + %494 = icmp sgt i32 %493, 0 + br i1 %494, label %.lr.ph.i.i.i195, label %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i .lr.ph.i.i.i195: ; preds = %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 - %zext.i.i = zext nneg i32 %499 to i64 - br label %501 + %zext.i.i = zext nneg i32 %493 to i64 + br label %495 -501: ; preds = %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i, %.lr.ph.i.i.i195 +495: ; preds = %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i, %.lr.ph.i.i.i195 %indvars.iv.i.i.i196 = phi i64 [ 0, %.lr.ph.i.i.i195 ], [ %indvars.iv.next.i.i.i197, %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i ] - %502 = load ptr, ptr %36, align 8, !tbaa !44 - %503 = getelementptr inbounds nuw %class.btAlignedObjectArray.55, ptr %502, i64 %indvars.iv.i.i.i196 - %504 = getelementptr inbounds nuw i8, ptr %503, i64 16 - %505 = load ptr, ptr %504, align 8, !tbaa !74 - %.not.i.i.i.i.i.i = icmp ne ptr %505, null - %506 = getelementptr inbounds nuw i8, ptr %503, i64 24 - %507 = load i8, ptr %506, align 8, !range !66 - %508 = trunc nuw i8 %507 to i1 - %or.cond.i.i.i.i.i = select i1 %.not.i.i.i.i.i.i, i1 %508, i1 false - br i1 %or.cond.i.i.i.i.i, label %509, label %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i - -509: ; preds = %501 - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %505) - to label %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i unwind label %510 - -510: ; preds = %509 - %511 = landingpad { ptr, i32 } + %496 = load ptr, ptr %36, align 8, !tbaa !44 + %497 = getelementptr inbounds nuw %class.btAlignedObjectArray.55, ptr %496, i64 %indvars.iv.i.i.i196 + %498 = getelementptr inbounds nuw i8, ptr %497, i64 16 + %499 = load ptr, ptr %498, align 8, !tbaa !74 + %.not.i.i.i.i.i.i = icmp ne ptr %499, null + %500 = getelementptr inbounds nuw i8, ptr %497, i64 24 + %501 = load i8, ptr %500, align 8, !range !66 + %502 = trunc nuw i8 %501 to i1 + %or.cond.i.i.i.i.i = select i1 %.not.i.i.i.i.i.i, i1 %502, i1 false + br i1 %or.cond.i.i.i.i.i, label %503, label %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i + +503: ; preds = %495 + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %499) + to label %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i unwind label %504 + +504: ; preds = %503 + %505 = landingpad { ptr, i32 } catch ptr null - %512 = extractvalue { ptr, i32 } %511, 0 - call void @__clang_call_terminate(ptr %512) #24 + %506 = extractvalue { ptr, i32 } %505, 0 + call void @__clang_call_terminate(ptr %506) #24 unreachable -_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i: ; preds = %509, %501 - %513 = getelementptr inbounds nuw i8, ptr %503, i64 4 - store i8 1, ptr %506, align 8, !tbaa !71 - store ptr null, ptr %504, align 8, !tbaa !74 - store i32 0, ptr %513, align 4, !tbaa !75 - %514 = getelementptr inbounds nuw i8, ptr %503, i64 8 - store i32 0, ptr %514, align 8, !tbaa !76 +_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i: ; preds = %503, %495 + %507 = getelementptr inbounds nuw i8, ptr %497, i64 4 + store i8 1, ptr %500, align 8, !tbaa !71 + store ptr null, ptr %498, align 8, !tbaa !74 + store i32 0, ptr %507, align 4, !tbaa !75 + %508 = getelementptr inbounds nuw i8, ptr %497, i64 8 + store i32 0, ptr %508, align 8, !tbaa !76 %indvars.iv.next.i.i.i197 = add nuw nsw i64 %indvars.iv.i.i.i196, 1 - %515 = icmp eq i64 %indvars.iv.next.i.i.i197, %zext.i.i - br i1 %515, label %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i, label %501, !llvm.loop !111 + %509 = icmp eq i64 %indvars.iv.next.i.i.i197, %zext.i.i + br i1 %509, label %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i, label %495, !llvm.loop !111 _ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i: ; preds = %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i, %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 - %516 = load ptr, ptr %36, align 8, !tbaa !44 - %.not.i.i.i193 = icmp ne ptr %516, null - %517 = load i8, ptr %35, align 8, !range !66 - %518 = trunc nuw i8 %517 to i1 - %or.cond.i.i194 = select i1 %.not.i.i.i193, i1 %518, i1 false - br i1 %or.cond.i.i194, label %519, label %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit - -519: ; preds = %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %516) - to label %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit unwind label %520 - -520: ; preds = %519 - %521 = landingpad { ptr, i32 } + %510 = load ptr, ptr %36, align 8, !tbaa !44 + %.not.i.i.i193 = icmp ne ptr %510, null + %511 = load i8, ptr %35, align 8, !range !66 + %512 = trunc nuw i8 %511 to i1 + %or.cond.i.i194 = select i1 %.not.i.i.i193, i1 %512, i1 false + br i1 %or.cond.i.i194, label %513, label %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit + +513: ; preds = %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %510) + to label %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit unwind label %514 + +514: ; preds = %513 + %515 = landingpad { ptr, i32 } catch ptr null - %522 = extractvalue { ptr, i32 } %521, 0 - call void @__clang_call_terminate(ptr %522) #24 + %516 = extractvalue { ptr, i32 } %515, 0 + call void @__clang_call_terminate(ptr %516) #24 unreachable -_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit: ; preds = %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i, %519 +_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit: ; preds = %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i, %513 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #21 - %523 = load ptr, ptr %32, align 8, !tbaa !37 - %.not.i.i.i198 = icmp ne ptr %523, null - %524 = load i8, ptr %31, align 8, !range !66 - %525 = trunc nuw i8 %524 to i1 - %or.cond.i.i199 = select i1 %.not.i.i.i198, i1 %525, i1 false - br i1 %or.cond.i.i199, label %526, label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit - -526: ; preds = %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %523) - to label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit unwind label %527 - -527: ; preds = %526 - %528 = landingpad { ptr, i32 } + %517 = load ptr, ptr %32, align 8, !tbaa !37 + %.not.i.i.i198 = icmp ne ptr %517, null + %518 = load i8, ptr %31, align 8, !range !66 + %519 = trunc nuw i8 %518 to i1 + %or.cond.i.i199 = select i1 %.not.i.i.i198, i1 %519, i1 false + br i1 %or.cond.i.i199, label %520, label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit + +520: ; preds = %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %517) + to label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit unwind label %521 + +521: ; preds = %520 + %522 = landingpad { ptr, i32 } catch ptr null - %529 = extractvalue { ptr, i32 } %528, 0 - call void @__clang_call_terminate(ptr %529) #24 + %523 = extractvalue { ptr, i32 } %522, 0 + call void @__clang_call_terminate(ptr %523) #24 unreachable -_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit: ; preds = %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit, %526 +_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit: ; preds = %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit, %520 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #21 - %530 = load ptr, ptr %4, align 8, !tbaa !4 - %531 = icmp eq ptr %530, %29 - br i1 %531, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i201, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i200 + %524 = load ptr, ptr %4, align 8, !tbaa !4 + %525 = icmp eq ptr %524, %29 + br i1 %525, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i201, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i200 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i201: ; preds = %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit - %532 = load i64, ptr %30, align 8, !tbaa !18 - %533 = icmp ult i64 %532, 16 - call void @llvm.assume(i1 %533) + %526 = load i64, ptr %30, align 8, !tbaa !18 + %527 = icmp ult i64 %526, 16 + call void @llvm.assume(i1 %527) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit202 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i200: ; preds = %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit - %534 = load i64, ptr %29, align 8, !tbaa !19 - %535 = add i64 %534, 1 - call void @_ZdlPvm(ptr noundef %530, i64 noundef %535) #22 + %528 = load i64, ptr %29, align 8, !tbaa !19 + %529 = add i64 %528, 1 + call void @_ZdlPvm(ptr noundef %524, i64 noundef %529) #22 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit202 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit202: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i201, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i200 @@ -1565,35 +1539,35 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit202: ; preds = %_Z call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %3) #21 ret ptr %.4 -_ZN17btCollisionObjectdlEPv.exit: ; preds = %.loopexit229, %.loopexit.split-lp, %313, %311, %364, %495, %497, %305 - %.pn92.pn.pn = phi { ptr, i32 } [ %.pn92.pn, %305 ], [ %365, %364 ], [ %312, %311 ], [ %498, %497 ], [ %496, %495 ], [ %314, %313 ], [ %lpad.loopexit, %.loopexit229 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] +_ZN17btCollisionObjectdlEPv.exit: ; preds = %.loopexit229, %.loopexit.split-lp, %313, %311, %364, %489, %491, %305 + %.pn92.pn.pn = phi { ptr, i32 } [ %.pn92.pn, %305 ], [ %365, %364 ], [ %312, %311 ], [ %492, %491 ], [ %490, %489 ], [ %314, %313 ], [ %lpad.loopexit, %.loopexit229 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #21 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #21 call void @_ZN20btAlignedObjectArrayIS_IiEED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %6) #21 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #21 call void @_ZN20btAlignedObjectArrayI9btVector3ED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %5) #21 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #21 - %536 = load ptr, ptr %4, align 8, !tbaa !4 - %537 = icmp eq ptr %536, %29 - br i1 %537, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i204, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i203 + %530 = load ptr, ptr %4, align 8, !tbaa !4 + %531 = icmp eq ptr %530, %29 + br i1 %531, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i204, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i203 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i204: ; preds = %_ZN17btCollisionObjectdlEPv.exit - %538 = load i64, ptr %30, align 8, !tbaa !18 - %539 = icmp ult i64 %538, 16 - call void @llvm.assume(i1 %539) + %532 = load i64, ptr %30, align 8, !tbaa !18 + %533 = icmp ult i64 %532, 16 + call void @llvm.assume(i1 %533) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i203: ; preds = %_ZN17btCollisionObjectdlEPv.exit - %540 = load i64, ptr %29, align 8, !tbaa !19 - %541 = add i64 %540, 1 - call void @_ZdlPvm(ptr noundef %536, i64 noundef %541) #22 + %534 = load i64, ptr %29, align 8, !tbaa !19 + %535 = add i64 %534, 1 + call void @_ZdlPvm(ptr noundef %530, i64 noundef %535) #22 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i204, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i203 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #21 - br label %542 + br label %536 -542: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205, %100 +536: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205, %100 %.pn92.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn92.pn.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205 ], [ %101, %100 ] call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %3) #21 call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %3) #21 diff --git a/bench/bullet3/optimized/btSoftBodyHelpers.ll b/bench/bullet3/optimized/btSoftBodyHelpers.ll index 257c472f8c3..aec69e976a1 100644 --- a/bench/bullet3/optimized/btSoftBodyHelpers.ll +++ b/bench/bullet3/optimized/btSoftBodyHelpers.ll @@ -5806,8 +5806,6 @@ define dso_local noundef ptr @_ZN17btSoftBodyHelpers20CreateFromTetGenDataER19bt %19 = alloca i32, align 4 %20 = alloca i32, align 4 %21 = alloca [4 x i32], align 16 - %.sroa.0116 = alloca [3 x %class.btVector3], align 8 - %.sroa.0 = alloca [3 x %class.btVector3], align 8 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #27 %22 = getelementptr inbounds nuw i8, ptr %8, i64 24 store i8 1, ptr %22, align 8, !tbaa !36 @@ -6104,8 +6102,6 @@ _ZL8nextLinePKc.exit75: ; preds = %88, %._crit_edge.lo 127: ; preds = %126 %128 = getelementptr inbounds nuw i8, ptr %42, i64 1092 %129 = load i32, ptr %128, align 4, !tbaa !111 - call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %.sroa.0116) - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %.sroa.0116, i8 0, i64 48, i1 false) %130 = getelementptr inbounds nuw i8, ptr %42, i64 1124 %131 = load i32, ptr %130, align 4, !tbaa !279 %132 = icmp sgt i32 %129, %131 @@ -6125,7 +6121,7 @@ _ZL8nextLinePKc.exit75: ; preds = %88, %._crit_edge.lo %139 = sext i32 %129 to i64 %140 = mul nsw i64 %139, 152 %141 = invoke noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef %140, i32 noundef 16) - to label %.noexc91 unwind label %253 + to label %.noexc91 unwind label %247 .noexc91: ; preds = %138 %.pre.i82 = load i32, ptr %130, align 4, !tbaa !279 @@ -6192,7 +6188,7 @@ _ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i: ; 173: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %169) - to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i unwind label %253 + to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i unwind label %247 _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i: ; preds = %173, %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i store i8 1, ptr %170, align 8, !tbaa !283 @@ -6204,23 +6200,15 @@ _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i: %174 = getelementptr inbounds nuw i8, ptr %42, i64 1136 %175 = sext i32 %131 to i64 %wide.trip.count.i77 = sext i32 %129 to i64 - %.sroa.0116.16..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0116, i64 16 - %.sroa.0116.32..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0116, i64 32 br label %176 176: ; preds = %176, %.lr.ph.i76 %indvars.iv.i78 = phi i64 [ %175, %.lr.ph.i76 ], [ %indvars.iv.next.i79, %176 ] %177 = load ptr, ptr %174, align 8, !tbaa !281 %178 = getelementptr inbounds %"struct.btSoftBody::TetraScratch", ptr %177, i64 %indvars.iv.i78 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %178, i8 0, i64 16, i1 false) - %179 = getelementptr inbounds nuw i8, ptr %178, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %179, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.0116.16..sroa_idx, i64 16, i1 false), !tbaa.struct !44 - %180 = getelementptr inbounds nuw i8, ptr %178, i64 32 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %180, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.0116.32..sroa_idx, i64 16, i1 false), !tbaa.struct !44 - %181 = getelementptr inbounds nuw i8, ptr %178, i64 48 %indvars.iv.next.i79 = add nsw i64 %indvars.iv.i78, 1 %exitcond.not.i80 = icmp eq i64 %indvars.iv.next.i79, %wide.trip.count.i77 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(104) %181, i8 0, i64 104, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %178, i8 0, i64 152, i1 false) br i1 %exitcond.not.i80, label %.loopexit125.loopexit, label %176, !llvm.loop !284 .loopexit125.loopexit: ; preds = %176 @@ -6228,182 +6216,168 @@ _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i: br label %.loopexit125 .loopexit125: ; preds = %.loopexit125.loopexit, %127 - %182 = phi i32 [ %.pre, %.loopexit125.loopexit ], [ %129, %127 ] + %179 = phi i32 [ %.pre, %.loopexit125.loopexit ], [ %129, %127 ] store i32 %129, ptr %130, align 4, !tbaa !279 - call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %.sroa.0116) - call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %.sroa.0) - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %.sroa.0, i8 0, i64 48, i1 false) - %183 = getelementptr inbounds nuw i8, ptr %42, i64 1156 - %184 = load i32, ptr %183, align 4, !tbaa !279 - %185 = icmp sgt i32 %182, %184 - br i1 %185, label %186, label %.loopexit - -186: ; preds = %.loopexit125 - %187 = getelementptr inbounds nuw i8, ptr %42, i64 1160 - %188 = load i32, ptr %187, align 8, !tbaa !280 - %189 = icmp slt i32 %188, %182 - br i1 %189, label %190, label %.lr.ph.i93 - -190: ; preds = %186 - %.not.i.i.i98 = icmp eq i32 %182, 0 - br i1 %.not.i.i.i98, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i100, label %191 - -191: ; preds = %190 - %192 = sext i32 %182 to i64 - %193 = mul nsw i64 %192, 152 - %194 = invoke noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef %193, i32 noundef 16) - to label %.noexc111 unwind label %255 - -.noexc111: ; preds = %191 - %.pre.i99 = load i32, ptr %183, align 4, !tbaa !279 + %180 = getelementptr inbounds nuw i8, ptr %42, i64 1156 + %181 = load i32, ptr %180, align 4, !tbaa !279 + %182 = icmp sgt i32 %179, %181 + br i1 %182, label %183, label %.loopexit + +183: ; preds = %.loopexit125 + %184 = getelementptr inbounds nuw i8, ptr %42, i64 1160 + %185 = load i32, ptr %184, align 8, !tbaa !280 + %186 = icmp slt i32 %185, %179 + br i1 %186, label %187, label %.lr.ph.i93 + +187: ; preds = %183 + %.not.i.i.i98 = icmp eq i32 %179, 0 + br i1 %.not.i.i.i98, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i100, label %188 + +188: ; preds = %187 + %189 = sext i32 %179 to i64 + %190 = mul nsw i64 %189, 152 + %191 = invoke noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef %190, i32 noundef 16) + to label %.noexc111 unwind label %249 + +.noexc111: ; preds = %188 + %.pre.i99 = load i32, ptr %180, align 4, !tbaa !279 br label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i100 -_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i100: ; preds = %.noexc111, %190 - %195 = phi i32 [ %.pre.i99, %.noexc111 ], [ %184, %190 ] - %.0.i.i.i101 = phi ptr [ %194, %.noexc111 ], [ null, %190 ] - %196 = icmp sgt i32 %195, 0 - br i1 %196, label %.lr.ph.i.i.i106, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102 +_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i100: ; preds = %.noexc111, %187 + %192 = phi i32 [ %.pre.i99, %.noexc111 ], [ %181, %187 ] + %.0.i.i.i101 = phi ptr [ %191, %.noexc111 ], [ null, %187 ] + %193 = icmp sgt i32 %192, 0 + br i1 %193, label %.lr.ph.i.i.i106, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102 .lr.ph.i.i.i106: ; preds = %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i100 - %197 = getelementptr inbounds nuw i8, ptr %42, i64 1168 - %wide.trip.count.i.i.i107 = zext nneg i32 %195 to i64 - br label %198 - -198: ; preds = %198, %.lr.ph.i.i.i106 - %indvars.iv.i.i.i108 = phi i64 [ 0, %.lr.ph.i.i.i106 ], [ %indvars.iv.next.i.i.i109, %198 ] - %199 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %.0.i.i.i101, i64 %indvars.iv.i.i.i108 - %200 = load ptr, ptr %197, align 8, !tbaa !281 - %201 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %200, i64 %indvars.iv.i.i.i108 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %199, ptr noundef nonnull align 4 dereferenceable(152) %201, i64 16, i1 false), !tbaa.struct !44 - %202 = getelementptr inbounds nuw i8, ptr %201, i64 16 - %203 = getelementptr inbounds nuw i8, ptr %199, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %203, ptr noundef nonnull align 4 dereferenceable(16) %202, i64 16, i1 false), !tbaa.struct !44 - %204 = getelementptr inbounds nuw i8, ptr %201, i64 32 - %205 = getelementptr inbounds nuw i8, ptr %199, i64 32 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %205, ptr noundef nonnull align 4 dereferenceable(16) %204, i64 16, i1 false), !tbaa.struct !44 - %206 = getelementptr inbounds nuw i8, ptr %199, i64 48 - %207 = getelementptr inbounds nuw i8, ptr %201, i64 48 - %208 = load i64, ptr %207, align 4 - store i64 %208, ptr %206, align 4 - %209 = getelementptr inbounds nuw i8, ptr %199, i64 56 - %210 = getelementptr inbounds nuw i8, ptr %201, i64 56 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %209, ptr noundef nonnull align 4 dereferenceable(48) %210, i64 16, i1 false), !tbaa.struct !44 - %211 = getelementptr inbounds nuw i8, ptr %201, i64 72 - %212 = getelementptr inbounds nuw i8, ptr %199, i64 72 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %212, ptr noundef nonnull align 4 dereferenceable(16) %211, i64 16, i1 false), !tbaa.struct !44 - %213 = getelementptr inbounds nuw i8, ptr %201, i64 88 - %214 = getelementptr inbounds nuw i8, ptr %199, i64 88 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %214, ptr noundef nonnull align 4 dereferenceable(16) %213, i64 16, i1 false), !tbaa.struct !44 - %215 = getelementptr inbounds nuw i8, ptr %199, i64 104 - %216 = getelementptr inbounds nuw i8, ptr %201, i64 104 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %215, ptr noundef nonnull align 4 dereferenceable(48) %216, i64 16, i1 false), !tbaa.struct !44 - %217 = getelementptr inbounds nuw i8, ptr %201, i64 120 - %218 = getelementptr inbounds nuw i8, ptr %199, i64 120 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %218, ptr noundef nonnull align 4 dereferenceable(16) %217, i64 16, i1 false), !tbaa.struct !44 - %219 = getelementptr inbounds nuw i8, ptr %201, i64 136 - %220 = getelementptr inbounds nuw i8, ptr %199, i64 136 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %220, ptr noundef nonnull align 4 dereferenceable(16) %219, i64 16, i1 false), !tbaa.struct !44 + %194 = getelementptr inbounds nuw i8, ptr %42, i64 1168 + %wide.trip.count.i.i.i107 = zext nneg i32 %192 to i64 + br label %195 + +195: ; preds = %195, %.lr.ph.i.i.i106 + %indvars.iv.i.i.i108 = phi i64 [ 0, %.lr.ph.i.i.i106 ], [ %indvars.iv.next.i.i.i109, %195 ] + %196 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %.0.i.i.i101, i64 %indvars.iv.i.i.i108 + %197 = load ptr, ptr %194, align 8, !tbaa !281 + %198 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %197, i64 %indvars.iv.i.i.i108 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %196, ptr noundef nonnull align 4 dereferenceable(152) %198, i64 16, i1 false), !tbaa.struct !44 + %199 = getelementptr inbounds nuw i8, ptr %198, i64 16 + %200 = getelementptr inbounds nuw i8, ptr %196, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %200, ptr noundef nonnull align 4 dereferenceable(16) %199, i64 16, i1 false), !tbaa.struct !44 + %201 = getelementptr inbounds nuw i8, ptr %198, i64 32 + %202 = getelementptr inbounds nuw i8, ptr %196, i64 32 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %202, ptr noundef nonnull align 4 dereferenceable(16) %201, i64 16, i1 false), !tbaa.struct !44 + %203 = getelementptr inbounds nuw i8, ptr %196, i64 48 + %204 = getelementptr inbounds nuw i8, ptr %198, i64 48 + %205 = load i64, ptr %204, align 4 + store i64 %205, ptr %203, align 4 + %206 = getelementptr inbounds nuw i8, ptr %196, i64 56 + %207 = getelementptr inbounds nuw i8, ptr %198, i64 56 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %206, ptr noundef nonnull align 4 dereferenceable(48) %207, i64 16, i1 false), !tbaa.struct !44 + %208 = getelementptr inbounds nuw i8, ptr %198, i64 72 + %209 = getelementptr inbounds nuw i8, ptr %196, i64 72 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %209, ptr noundef nonnull align 4 dereferenceable(16) %208, i64 16, i1 false), !tbaa.struct !44 + %210 = getelementptr inbounds nuw i8, ptr %198, i64 88 + %211 = getelementptr inbounds nuw i8, ptr %196, i64 88 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %211, ptr noundef nonnull align 4 dereferenceable(16) %210, i64 16, i1 false), !tbaa.struct !44 + %212 = getelementptr inbounds nuw i8, ptr %196, i64 104 + %213 = getelementptr inbounds nuw i8, ptr %198, i64 104 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %212, ptr noundef nonnull align 4 dereferenceable(48) %213, i64 16, i1 false), !tbaa.struct !44 + %214 = getelementptr inbounds nuw i8, ptr %198, i64 120 + %215 = getelementptr inbounds nuw i8, ptr %196, i64 120 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %215, ptr noundef nonnull align 4 dereferenceable(16) %214, i64 16, i1 false), !tbaa.struct !44 + %216 = getelementptr inbounds nuw i8, ptr %198, i64 136 + %217 = getelementptr inbounds nuw i8, ptr %196, i64 136 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %217, ptr noundef nonnull align 4 dereferenceable(16) %216, i64 16, i1 false), !tbaa.struct !44 %indvars.iv.next.i.i.i109 = add nuw nsw i64 %indvars.iv.i.i.i108, 1 %exitcond.not.i.i.i110 = icmp eq i64 %indvars.iv.next.i.i.i109, %wide.trip.count.i.i.i107 - br i1 %exitcond.not.i.i.i110, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102, label %198, !llvm.loop !282 - -_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102: ; preds = %198, %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i100 - %221 = getelementptr inbounds nuw i8, ptr %42, i64 1168 - %222 = load ptr, ptr %221, align 8, !tbaa !281 - %.not.i5.i.i103 = icmp ne ptr %222, null - %223 = getelementptr inbounds nuw i8, ptr %42, i64 1176 - %224 = load i8, ptr %223, align 8, !range !33 - %225 = trunc nuw i8 %224 to i1 - %or.cond.i.i104 = select i1 %.not.i5.i.i103, i1 %225, i1 false - br i1 %or.cond.i.i104, label %226, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i105 - -226: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102 - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %222) - to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i105 unwind label %255 - -_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i105: ; preds = %226, %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102 - store i8 1, ptr %223, align 8, !tbaa !283 - store ptr %.0.i.i.i101, ptr %221, align 8, !tbaa !281 - store i32 %182, ptr %187, align 8, !tbaa !280 + br i1 %exitcond.not.i.i.i110, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102, label %195, !llvm.loop !282 + +_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102: ; preds = %195, %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i100 + %218 = getelementptr inbounds nuw i8, ptr %42, i64 1168 + %219 = load ptr, ptr %218, align 8, !tbaa !281 + %.not.i5.i.i103 = icmp ne ptr %219, null + %220 = getelementptr inbounds nuw i8, ptr %42, i64 1176 + %221 = load i8, ptr %220, align 8, !range !33 + %222 = trunc nuw i8 %221 to i1 + %or.cond.i.i104 = select i1 %.not.i5.i.i103, i1 %222, i1 false + br i1 %or.cond.i.i104, label %223, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i105 + +223: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102 + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %219) + to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i105 unwind label %249 + +_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i105: ; preds = %223, %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102 + store i8 1, ptr %220, align 8, !tbaa !283 + store ptr %.0.i.i.i101, ptr %218, align 8, !tbaa !281 + store i32 %179, ptr %184, align 8, !tbaa !280 br label %.lr.ph.i93 -.lr.ph.i93: ; preds = %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i105, %186 - %227 = getelementptr inbounds nuw i8, ptr %42, i64 1168 - %228 = sext i32 %184 to i64 - %wide.trip.count.i94 = sext i32 %182 to i64 - %.sroa.0.16..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0, i64 16 - %.sroa.0.32..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0, i64 32 - br label %229 +.lr.ph.i93: ; preds = %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i105, %183 + %224 = getelementptr inbounds nuw i8, ptr %42, i64 1168 + %225 = sext i32 %181 to i64 + %wide.trip.count.i94 = sext i32 %179 to i64 + br label %226 -229: ; preds = %229, %.lr.ph.i93 - %indvars.iv.i95 = phi i64 [ %228, %.lr.ph.i93 ], [ %indvars.iv.next.i96, %229 ] - %230 = load ptr, ptr %227, align 8, !tbaa !281 - %231 = getelementptr inbounds %"struct.btSoftBody::TetraScratch", ptr %230, i64 %indvars.iv.i95 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %231, i8 0, i64 16, i1 false) - %232 = getelementptr inbounds nuw i8, ptr %231, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %232, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.0.16..sroa_idx, i64 16, i1 false), !tbaa.struct !44 - %233 = getelementptr inbounds nuw i8, ptr %231, i64 32 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %233, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.0.32..sroa_idx, i64 16, i1 false), !tbaa.struct !44 - %234 = getelementptr inbounds nuw i8, ptr %231, i64 48 +226: ; preds = %226, %.lr.ph.i93 + %indvars.iv.i95 = phi i64 [ %225, %.lr.ph.i93 ], [ %indvars.iv.next.i96, %226 ] + %227 = load ptr, ptr %224, align 8, !tbaa !281 + %228 = getelementptr inbounds %"struct.btSoftBody::TetraScratch", ptr %227, i64 %indvars.iv.i95 %indvars.iv.next.i96 = add nsw i64 %indvars.iv.i95, 1 %exitcond.not.i97 = icmp eq i64 %indvars.iv.next.i96, %wide.trip.count.i94 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(104) %234, i8 0, i64 104, i1 false) - br i1 %exitcond.not.i97, label %.loopexit, label %229, !llvm.loop !284 - -.loopexit: ; preds = %229, %.loopexit125 - store i32 %182, ptr %183, align 4, !tbaa !279 - call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %.sroa.0) - %235 = getelementptr inbounds nuw i8, ptr %42, i64 932 - %236 = load i32, ptr %235, align 4, !tbaa !70 - %237 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.8, i32 noundef %236) - %238 = getelementptr inbounds nuw i8, ptr %42, i64 996 - %239 = load i32, ptr %238, align 4, !tbaa !81 - %240 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.9, i32 noundef %239) - %241 = getelementptr inbounds nuw i8, ptr %42, i64 1028 - %242 = load i32, ptr %241, align 4, !tbaa !105 - %243 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.10, i32 noundef %242) - %244 = load i32, ptr %128, align 4, !tbaa !111 - %245 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.11, i32 noundef %244) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %228, i8 0, i64 152, i1 false) + br i1 %exitcond.not.i97, label %.loopexit, label %226, !llvm.loop !284 + +.loopexit: ; preds = %226, %.loopexit125 + store i32 %179, ptr %180, align 4, !tbaa !279 + %229 = getelementptr inbounds nuw i8, ptr %42, i64 932 + %230 = load i32, ptr %229, align 4, !tbaa !70 + %231 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.8, i32 noundef %230) + %232 = getelementptr inbounds nuw i8, ptr %42, i64 996 + %233 = load i32, ptr %232, align 4, !tbaa !81 + %234 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.9, i32 noundef %233) + %235 = getelementptr inbounds nuw i8, ptr %42, i64 1028 + %236 = load i32, ptr %235, align 4, !tbaa !105 + %237 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.10, i32 noundef %236) + %238 = load i32, ptr %128, align 4, !tbaa !111 + %239 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.11, i32 noundef %238) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #27 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #27 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #27 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #27 - %246 = load ptr, ptr %23, align 8, !tbaa !37 - %.not.i.i.i114 = icmp ne ptr %246, null - %247 = load i8, ptr %22, align 8, !range !33 - %248 = trunc nuw i8 %247 to i1 - %or.cond.i.i115 = select i1 %.not.i.i.i114, i1 %248, i1 false - br i1 %or.cond.i.i115, label %249, label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit - -249: ; preds = %.loopexit - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %246) - to label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit unwind label %250 - -250: ; preds = %249 - %251 = landingpad { ptr, i32 } + %240 = load ptr, ptr %23, align 8, !tbaa !37 + %.not.i.i.i114 = icmp ne ptr %240, null + %241 = load i8, ptr %22, align 8, !range !33 + %242 = trunc nuw i8 %241 to i1 + %or.cond.i.i115 = select i1 %.not.i.i.i114, i1 %242, i1 false + br i1 %or.cond.i.i115, label %243, label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit + +243: ; preds = %.loopexit + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %240) + to label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit unwind label %244 + +244: ; preds = %243 + %245 = landingpad { ptr, i32 } catch ptr null - %252 = extractvalue { ptr, i32 } %251, 0 - call void @__clang_call_terminate(ptr %252) #28 + %246 = extractvalue { ptr, i32 } %245, 0 + call void @__clang_call_terminate(ptr %246) #28 unreachable -_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit: ; preds = %.loopexit, %249 +_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit: ; preds = %.loopexit, %243 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #27 ret ptr %42 -253: ; preds = %173, %138 - %254 = landingpad { ptr, i32 } +247: ; preds = %173, %138 + %248 = landingpad { ptr, i32 } cleanup - call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %.sroa.0116) br label %_ZN17btCollisionObjectdlEPv.exit -255: ; preds = %226, %191 - %256 = landingpad { ptr, i32 } +249: ; preds = %223, %188 + %250 = landingpad { ptr, i32 } cleanup - call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %.sroa.0) br label %_ZN17btCollisionObjectdlEPv.exit -_ZN17btCollisionObjectdlEPv.exit: ; preds = %83, %81, %120, %253, %255, %43 - %.pn.pn = phi { ptr, i32 } [ %44, %43 ], [ %121, %120 ], [ %256, %255 ], [ %254, %253 ], [ %82, %81 ], [ %84, %83 ] +_ZN17btCollisionObjectdlEPv.exit: ; preds = %83, %81, %120, %247, %249, %43 + %.pn.pn = phi { ptr, i32 } [ %44, %43 ], [ %121, %120 ], [ %250, %249 ], [ %248, %247 ], [ %82, %81 ], [ %84, %83 ] call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #27 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #27 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #27 @@ -6440,8 +6414,6 @@ define dso_local noundef ptr @_ZN17btSoftBodyHelpers17CreateFromVtkFileER19btSof %14 = alloca float, align 4 %15 = alloca i32, align 4 %16 = alloca %class.btAlignedObjectArray.52, align 8 - %.sroa.0209 = alloca [3 x %class.btVector3], align 8 - %.sroa.0 = alloca [3 x %class.btVector3], align 8 call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %3) #27 call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(256) %3) %17 = getelementptr inbounds nuw i8, ptr %3, i64 16 @@ -6602,7 +6574,7 @@ _ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc.exit.i: ; preds = %.noexc101, %79 100: ; preds = %27, %2 %101 = landingpad { ptr, i32 } cleanup - br label %542 + br label %536 .loopexit229: ; preds = %82, %.noexc101, %_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc.exit.i %lpad.loopexit = landingpad { ptr, i32 } @@ -7239,7 +7211,7 @@ _ZN17btCollisionObjectnwEm.exit: ; preds = %306 invoke void @_ZN17btSoftBodyHelpers21generateBoundaryFacesEP10btSoftBody(ptr noundef nonnull %307) to label %366 unwind label %311 -311: ; preds = %487, %.loopexit, %306, %366, %._crit_edge +311: ; preds = %481, %.loopexit, %306, %366, %._crit_edge %312 = landingpad { ptr, i32 } cleanup br label %_ZN17btCollisionObjectdlEPv.exit @@ -7341,8 +7313,6 @@ _ZN17btCollisionObjectnwEm.exit: ; preds = %306 367: ; preds = %366 %368 = getelementptr inbounds nuw i8, ptr %307, i64 1092 %369 = load i32, ptr %368, align 4, !tbaa !111 - call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %.sroa.0209) - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %.sroa.0209, i8 0, i64 48, i1 false) %370 = getelementptr inbounds nuw i8, ptr %307, i64 1124 %371 = load i32, ptr %370, align 4, !tbaa !279 %372 = icmp sgt i32 %369, %371 @@ -7362,7 +7332,7 @@ _ZN17btCollisionObjectnwEm.exit: ; preds = %306 %379 = sext i32 %369 to i64 %380 = mul nsw i64 %379, 152 %381 = invoke noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef %380, i32 noundef 16) - to label %.noexc166 unwind label %495 + to label %.noexc166 unwind label %489 .noexc166: ; preds = %378 %.pre.i157 = load i32, ptr %370, align 4, !tbaa !279 @@ -7429,7 +7399,7 @@ _ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i: ; 413: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %409) - to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i unwind label %495 + to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i unwind label %489 _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i: ; preds = %413, %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i store i8 1, ptr %410, align 8, !tbaa !283 @@ -7441,23 +7411,15 @@ _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i: %414 = getelementptr inbounds nuw i8, ptr %307, i64 1136 %415 = sext i32 %371 to i64 %wide.trip.count.i152 = sext i32 %369 to i64 - %.sroa.0209.16..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0209, i64 16 - %.sroa.0209.32..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0209, i64 32 br label %416 416: ; preds = %416, %.lr.ph.i151 %indvars.iv.i153 = phi i64 [ %415, %.lr.ph.i151 ], [ %indvars.iv.next.i154, %416 ] %417 = load ptr, ptr %414, align 8, !tbaa !281 %418 = getelementptr inbounds %"struct.btSoftBody::TetraScratch", ptr %417, i64 %indvars.iv.i153 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %418, i8 0, i64 16, i1 false) - %419 = getelementptr inbounds nuw i8, ptr %418, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %419, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.0209.16..sroa_idx, i64 16, i1 false), !tbaa.struct !44 - %420 = getelementptr inbounds nuw i8, ptr %418, i64 32 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %420, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.0209.32..sroa_idx, i64 16, i1 false), !tbaa.struct !44 - %421 = getelementptr inbounds nuw i8, ptr %418, i64 48 %indvars.iv.next.i154 = add nsw i64 %indvars.iv.i153, 1 %exitcond.not.i155 = icmp eq i64 %indvars.iv.next.i154, %wide.trip.count.i152 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(104) %421, i8 0, i64 104, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %418, i8 0, i64 152, i1 false) br i1 %exitcond.not.i155, label %.loopexit227.loopexit, label %416, !llvm.loop !284 .loopexit227.loopexit: ; preds = %416 @@ -7465,274 +7427,260 @@ _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i: br label %.loopexit227 .loopexit227: ; preds = %.loopexit227.loopexit, %367 - %422 = phi i32 [ %.pre, %.loopexit227.loopexit ], [ %369, %367 ] + %419 = phi i32 [ %.pre, %.loopexit227.loopexit ], [ %369, %367 ] store i32 %369, ptr %370, align 4, !tbaa !279 - call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %.sroa.0209) - call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %.sroa.0) - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %.sroa.0, i8 0, i64 48, i1 false) - %423 = getelementptr inbounds nuw i8, ptr %307, i64 1156 - %424 = load i32, ptr %423, align 4, !tbaa !279 - %425 = icmp sgt i32 %422, %424 - br i1 %425, label %426, label %.loopexit - -426: ; preds = %.loopexit227 - %427 = getelementptr inbounds nuw i8, ptr %307, i64 1160 - %428 = load i32, ptr %427, align 8, !tbaa !280 - %429 = icmp slt i32 %428, %422 - br i1 %429, label %430, label %.lr.ph.i168 - -430: ; preds = %426 - %.not.i.i.i173 = icmp eq i32 %422, 0 - br i1 %.not.i.i.i173, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175, label %431 - -431: ; preds = %430 - %432 = sext i32 %422 to i64 - %433 = mul nsw i64 %432, 152 - %434 = invoke noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef %433, i32 noundef 16) - to label %.noexc186 unwind label %497 - -.noexc186: ; preds = %431 - %.pre.i174 = load i32, ptr %423, align 4, !tbaa !279 + %420 = getelementptr inbounds nuw i8, ptr %307, i64 1156 + %421 = load i32, ptr %420, align 4, !tbaa !279 + %422 = icmp sgt i32 %419, %421 + br i1 %422, label %423, label %.loopexit + +423: ; preds = %.loopexit227 + %424 = getelementptr inbounds nuw i8, ptr %307, i64 1160 + %425 = load i32, ptr %424, align 8, !tbaa !280 + %426 = icmp slt i32 %425, %419 + br i1 %426, label %427, label %.lr.ph.i168 + +427: ; preds = %423 + %.not.i.i.i173 = icmp eq i32 %419, 0 + br i1 %.not.i.i.i173, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175, label %428 + +428: ; preds = %427 + %429 = sext i32 %419 to i64 + %430 = mul nsw i64 %429, 152 + %431 = invoke noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef %430, i32 noundef 16) + to label %.noexc186 unwind label %491 + +.noexc186: ; preds = %428 + %.pre.i174 = load i32, ptr %420, align 4, !tbaa !279 br label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175 -_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175: ; preds = %.noexc186, %430 - %435 = phi i32 [ %.pre.i174, %.noexc186 ], [ %424, %430 ] - %.0.i.i.i176 = phi ptr [ %434, %.noexc186 ], [ null, %430 ] - %436 = icmp sgt i32 %435, 0 - br i1 %436, label %.lr.ph.i.i.i181, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 +_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175: ; preds = %.noexc186, %427 + %432 = phi i32 [ %.pre.i174, %.noexc186 ], [ %421, %427 ] + %.0.i.i.i176 = phi ptr [ %431, %.noexc186 ], [ null, %427 ] + %433 = icmp sgt i32 %432, 0 + br i1 %433, label %.lr.ph.i.i.i181, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 .lr.ph.i.i.i181: ; preds = %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175 - %437 = getelementptr inbounds nuw i8, ptr %307, i64 1168 - %wide.trip.count.i.i.i182 = zext nneg i32 %435 to i64 - br label %438 - -438: ; preds = %438, %.lr.ph.i.i.i181 - %indvars.iv.i.i.i183 = phi i64 [ 0, %.lr.ph.i.i.i181 ], [ %indvars.iv.next.i.i.i184, %438 ] - %439 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %.0.i.i.i176, i64 %indvars.iv.i.i.i183 - %440 = load ptr, ptr %437, align 8, !tbaa !281 - %441 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %440, i64 %indvars.iv.i.i.i183 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %439, ptr noundef nonnull align 4 dereferenceable(152) %441, i64 16, i1 false), !tbaa.struct !44 - %442 = getelementptr inbounds nuw i8, ptr %441, i64 16 - %443 = getelementptr inbounds nuw i8, ptr %439, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %443, ptr noundef nonnull align 4 dereferenceable(16) %442, i64 16, i1 false), !tbaa.struct !44 - %444 = getelementptr inbounds nuw i8, ptr %441, i64 32 - %445 = getelementptr inbounds nuw i8, ptr %439, i64 32 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %445, ptr noundef nonnull align 4 dereferenceable(16) %444, i64 16, i1 false), !tbaa.struct !44 - %446 = getelementptr inbounds nuw i8, ptr %439, i64 48 - %447 = getelementptr inbounds nuw i8, ptr %441, i64 48 - %448 = load i64, ptr %447, align 4 - store i64 %448, ptr %446, align 4 - %449 = getelementptr inbounds nuw i8, ptr %439, i64 56 - %450 = getelementptr inbounds nuw i8, ptr %441, i64 56 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %449, ptr noundef nonnull align 4 dereferenceable(48) %450, i64 16, i1 false), !tbaa.struct !44 - %451 = getelementptr inbounds nuw i8, ptr %441, i64 72 - %452 = getelementptr inbounds nuw i8, ptr %439, i64 72 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %452, ptr noundef nonnull align 4 dereferenceable(16) %451, i64 16, i1 false), !tbaa.struct !44 - %453 = getelementptr inbounds nuw i8, ptr %441, i64 88 - %454 = getelementptr inbounds nuw i8, ptr %439, i64 88 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %454, ptr noundef nonnull align 4 dereferenceable(16) %453, i64 16, i1 false), !tbaa.struct !44 - %455 = getelementptr inbounds nuw i8, ptr %439, i64 104 - %456 = getelementptr inbounds nuw i8, ptr %441, i64 104 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %455, ptr noundef nonnull align 4 dereferenceable(48) %456, i64 16, i1 false), !tbaa.struct !44 - %457 = getelementptr inbounds nuw i8, ptr %441, i64 120 - %458 = getelementptr inbounds nuw i8, ptr %439, i64 120 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %458, ptr noundef nonnull align 4 dereferenceable(16) %457, i64 16, i1 false), !tbaa.struct !44 - %459 = getelementptr inbounds nuw i8, ptr %441, i64 136 - %460 = getelementptr inbounds nuw i8, ptr %439, i64 136 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %460, ptr noundef nonnull align 4 dereferenceable(16) %459, i64 16, i1 false), !tbaa.struct !44 + %434 = getelementptr inbounds nuw i8, ptr %307, i64 1168 + %wide.trip.count.i.i.i182 = zext nneg i32 %432 to i64 + br label %435 + +435: ; preds = %435, %.lr.ph.i.i.i181 + %indvars.iv.i.i.i183 = phi i64 [ 0, %.lr.ph.i.i.i181 ], [ %indvars.iv.next.i.i.i184, %435 ] + %436 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %.0.i.i.i176, i64 %indvars.iv.i.i.i183 + %437 = load ptr, ptr %434, align 8, !tbaa !281 + %438 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %437, i64 %indvars.iv.i.i.i183 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %436, ptr noundef nonnull align 4 dereferenceable(152) %438, i64 16, i1 false), !tbaa.struct !44 + %439 = getelementptr inbounds nuw i8, ptr %438, i64 16 + %440 = getelementptr inbounds nuw i8, ptr %436, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %440, ptr noundef nonnull align 4 dereferenceable(16) %439, i64 16, i1 false), !tbaa.struct !44 + %441 = getelementptr inbounds nuw i8, ptr %438, i64 32 + %442 = getelementptr inbounds nuw i8, ptr %436, i64 32 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %442, ptr noundef nonnull align 4 dereferenceable(16) %441, i64 16, i1 false), !tbaa.struct !44 + %443 = getelementptr inbounds nuw i8, ptr %436, i64 48 + %444 = getelementptr inbounds nuw i8, ptr %438, i64 48 + %445 = load i64, ptr %444, align 4 + store i64 %445, ptr %443, align 4 + %446 = getelementptr inbounds nuw i8, ptr %436, i64 56 + %447 = getelementptr inbounds nuw i8, ptr %438, i64 56 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %446, ptr noundef nonnull align 4 dereferenceable(48) %447, i64 16, i1 false), !tbaa.struct !44 + %448 = getelementptr inbounds nuw i8, ptr %438, i64 72 + %449 = getelementptr inbounds nuw i8, ptr %436, i64 72 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %449, ptr noundef nonnull align 4 dereferenceable(16) %448, i64 16, i1 false), !tbaa.struct !44 + %450 = getelementptr inbounds nuw i8, ptr %438, i64 88 + %451 = getelementptr inbounds nuw i8, ptr %436, i64 88 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %451, ptr noundef nonnull align 4 dereferenceable(16) %450, i64 16, i1 false), !tbaa.struct !44 + %452 = getelementptr inbounds nuw i8, ptr %436, i64 104 + %453 = getelementptr inbounds nuw i8, ptr %438, i64 104 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %452, ptr noundef nonnull align 4 dereferenceable(48) %453, i64 16, i1 false), !tbaa.struct !44 + %454 = getelementptr inbounds nuw i8, ptr %438, i64 120 + %455 = getelementptr inbounds nuw i8, ptr %436, i64 120 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %455, ptr noundef nonnull align 4 dereferenceable(16) %454, i64 16, i1 false), !tbaa.struct !44 + %456 = getelementptr inbounds nuw i8, ptr %438, i64 136 + %457 = getelementptr inbounds nuw i8, ptr %436, i64 136 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %457, ptr noundef nonnull align 4 dereferenceable(16) %456, i64 16, i1 false), !tbaa.struct !44 %indvars.iv.next.i.i.i184 = add nuw nsw i64 %indvars.iv.i.i.i183, 1 %exitcond.not.i.i.i185 = icmp eq i64 %indvars.iv.next.i.i.i184, %wide.trip.count.i.i.i182 - br i1 %exitcond.not.i.i.i185, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177, label %438, !llvm.loop !282 - -_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177: ; preds = %438, %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175 - %461 = getelementptr inbounds nuw i8, ptr %307, i64 1168 - %462 = load ptr, ptr %461, align 8, !tbaa !281 - %.not.i5.i.i178 = icmp ne ptr %462, null - %463 = getelementptr inbounds nuw i8, ptr %307, i64 1176 - %464 = load i8, ptr %463, align 8, !range !33 - %465 = trunc nuw i8 %464 to i1 - %or.cond.i.i179 = select i1 %.not.i5.i.i178, i1 %465, i1 false - br i1 %or.cond.i.i179, label %466, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180 - -466: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %462) - to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180 unwind label %497 - -_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180: ; preds = %466, %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 - store i8 1, ptr %463, align 8, !tbaa !283 - store ptr %.0.i.i.i176, ptr %461, align 8, !tbaa !281 - store i32 %422, ptr %427, align 8, !tbaa !280 + br i1 %exitcond.not.i.i.i185, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177, label %435, !llvm.loop !282 + +_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177: ; preds = %435, %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175 + %458 = getelementptr inbounds nuw i8, ptr %307, i64 1168 + %459 = load ptr, ptr %458, align 8, !tbaa !281 + %.not.i5.i.i178 = icmp ne ptr %459, null + %460 = getelementptr inbounds nuw i8, ptr %307, i64 1176 + %461 = load i8, ptr %460, align 8, !range !33 + %462 = trunc nuw i8 %461 to i1 + %or.cond.i.i179 = select i1 %.not.i5.i.i178, i1 %462, i1 false + br i1 %or.cond.i.i179, label %463, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180 + +463: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %459) + to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180 unwind label %491 + +_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180: ; preds = %463, %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 + store i8 1, ptr %460, align 8, !tbaa !283 + store ptr %.0.i.i.i176, ptr %458, align 8, !tbaa !281 + store i32 %419, ptr %424, align 8, !tbaa !280 br label %.lr.ph.i168 -.lr.ph.i168: ; preds = %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180, %426 - %467 = getelementptr inbounds nuw i8, ptr %307, i64 1168 - %468 = sext i32 %424 to i64 - %wide.trip.count.i169 = sext i32 %422 to i64 - %.sroa.0.16..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0, i64 16 - %.sroa.0.32..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0, i64 32 - br label %469 - -469: ; preds = %469, %.lr.ph.i168 - %indvars.iv.i170 = phi i64 [ %468, %.lr.ph.i168 ], [ %indvars.iv.next.i171, %469 ] - %470 = load ptr, ptr %467, align 8, !tbaa !281 - %471 = getelementptr inbounds %"struct.btSoftBody::TetraScratch", ptr %470, i64 %indvars.iv.i170 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %471, i8 0, i64 16, i1 false) - %472 = getelementptr inbounds nuw i8, ptr %471, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %472, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.0.16..sroa_idx, i64 16, i1 false), !tbaa.struct !44 - %473 = getelementptr inbounds nuw i8, ptr %471, i64 32 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %473, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.0.32..sroa_idx, i64 16, i1 false), !tbaa.struct !44 - %474 = getelementptr inbounds nuw i8, ptr %471, i64 48 +.lr.ph.i168: ; preds = %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180, %423 + %464 = getelementptr inbounds nuw i8, ptr %307, i64 1168 + %465 = sext i32 %421 to i64 + %wide.trip.count.i169 = sext i32 %419 to i64 + br label %466 + +466: ; preds = %466, %.lr.ph.i168 + %indvars.iv.i170 = phi i64 [ %465, %.lr.ph.i168 ], [ %indvars.iv.next.i171, %466 ] + %467 = load ptr, ptr %464, align 8, !tbaa !281 + %468 = getelementptr inbounds %"struct.btSoftBody::TetraScratch", ptr %467, i64 %indvars.iv.i170 %indvars.iv.next.i171 = add nsw i64 %indvars.iv.i170, 1 %exitcond.not.i172 = icmp eq i64 %indvars.iv.next.i171, %wide.trip.count.i169 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(104) %474, i8 0, i64 104, i1 false) - br i1 %exitcond.not.i172, label %.loopexit, label %469, !llvm.loop !284 - -.loopexit: ; preds = %469, %.loopexit227 - store i32 %422, ptr %423, align 4, !tbaa !279 - call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %.sroa.0) - %475 = getelementptr inbounds nuw i8, ptr %307, i64 932 - %476 = load i32, ptr %475, align 4, !tbaa !70 - %477 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.8, i32 noundef %476) - %478 = getelementptr inbounds nuw i8, ptr %307, i64 996 - %479 = load i32, ptr %478, align 4, !tbaa !81 - %480 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.9, i32 noundef %479) - %481 = getelementptr inbounds nuw i8, ptr %307, i64 1028 - %482 = load i32, ptr %481, align 4, !tbaa !105 - %483 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.10, i32 noundef %482) - %484 = load i32, ptr %368, align 4, !tbaa !111 - %485 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.11, i32 noundef %484) - %486 = invoke noundef ptr @_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(240) %17) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %468, i8 0, i64 152, i1 false) + br i1 %exitcond.not.i172, label %.loopexit, label %466, !llvm.loop !284 + +.loopexit: ; preds = %466, %.loopexit227 + store i32 %419, ptr %420, align 4, !tbaa !279 + %469 = getelementptr inbounds nuw i8, ptr %307, i64 932 + %470 = load i32, ptr %469, align 4, !tbaa !70 + %471 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.8, i32 noundef %470) + %472 = getelementptr inbounds nuw i8, ptr %307, i64 996 + %473 = load i32, ptr %472, align 4, !tbaa !81 + %474 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.9, i32 noundef %473) + %475 = getelementptr inbounds nuw i8, ptr %307, i64 1028 + %476 = load i32, ptr %475, align 4, !tbaa !105 + %477 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.10, i32 noundef %476) + %478 = load i32, ptr %368, align 4, !tbaa !111 + %479 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.11, i32 noundef %478) + %480 = invoke noundef ptr @_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(240) %17) to label %.noexc190 unwind label %311 .noexc190: ; preds = %.loopexit - %.not.i189 = icmp eq ptr %486, null - br i1 %.not.i189, label %487, label %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 - -487: ; preds = %.noexc190 - %488 = load ptr, ptr %3, align 8, !tbaa !66 - %489 = getelementptr i8, ptr %488, i64 -24 - %490 = load i64, ptr %489, align 8 - %491 = getelementptr inbounds i8, ptr %3, i64 %490 - %492 = getelementptr inbounds nuw i8, ptr %491, i64 32 - %493 = load i32, ptr %492, align 8, !tbaa !285 - %494 = or i32 %493, 4 - invoke void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(ptr noundef nonnull align 8 dereferenceable(264) %491, i32 noundef %494) + %.not.i189 = icmp eq ptr %480, null + br i1 %.not.i189, label %481, label %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 + +481: ; preds = %.noexc190 + %482 = load ptr, ptr %3, align 8, !tbaa !66 + %483 = getelementptr i8, ptr %482, i64 -24 + %484 = load i64, ptr %483, align 8 + %485 = getelementptr inbounds i8, ptr %3, i64 %484 + %486 = getelementptr inbounds nuw i8, ptr %485, i64 32 + %487 = load i32, ptr %486, align 8, !tbaa !285 + %488 = or i32 %487, 4 + invoke void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(ptr noundef nonnull align 8 dereferenceable(264) %485, i32 noundef %488) to label %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 unwind label %311 -495: ; preds = %413, %378 - %496 = landingpad { ptr, i32 } +489: ; preds = %413, %378 + %490 = landingpad { ptr, i32 } cleanup - call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %.sroa.0209) br label %_ZN17btCollisionObjectdlEPv.exit -497: ; preds = %466, %431 - %498 = landingpad { ptr, i32 } +491: ; preds = %463, %428 + %492 = landingpad { ptr, i32 } cleanup - call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %.sroa.0) br label %_ZN17btCollisionObjectdlEPv.exit -_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192: ; preds = %_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev.exit, %.noexc190, %487 - %.4 = phi ptr [ %307, %487 ], [ %307, %.noexc190 ], [ null, %_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev.exit ] +_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192: ; preds = %_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev.exit, %.noexc190, %481 + %.4 = phi ptr [ %307, %481 ], [ %307, %.noexc190 ], [ null, %_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev.exit ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #27 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #27 - %499 = load i32, ptr %37, align 4, !tbaa !304 - %500 = icmp sgt i32 %499, 0 - br i1 %500, label %.lr.ph.i.i.i195, label %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i + %493 = load i32, ptr %37, align 4, !tbaa !304 + %494 = icmp sgt i32 %493, 0 + br i1 %494, label %.lr.ph.i.i.i195, label %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i .lr.ph.i.i.i195: ; preds = %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 - %zext.i.i = zext nneg i32 %499 to i64 - br label %501 + %zext.i.i = zext nneg i32 %493 to i64 + br label %495 -501: ; preds = %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i, %.lr.ph.i.i.i195 +495: ; preds = %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i, %.lr.ph.i.i.i195 %indvars.iv.i.i.i196 = phi i64 [ 0, %.lr.ph.i.i.i195 ], [ %indvars.iv.next.i.i.i197, %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i ] - %502 = load ptr, ptr %36, align 8, !tbaa !303 - %503 = getelementptr inbounds nuw %class.btAlignedObjectArray.52, ptr %502, i64 %indvars.iv.i.i.i196 - %504 = getelementptr inbounds nuw i8, ptr %503, i64 16 - %505 = load ptr, ptr %504, align 8, !tbaa !51 - %.not.i.i.i.i.i.i = icmp ne ptr %505, null - %506 = getelementptr inbounds nuw i8, ptr %503, i64 24 - %507 = load i8, ptr %506, align 8, !range !33 - %508 = trunc nuw i8 %507 to i1 - %or.cond.i.i.i.i.i = select i1 %.not.i.i.i.i.i.i, i1 %508, i1 false - br i1 %or.cond.i.i.i.i.i, label %509, label %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i - -509: ; preds = %501 - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %505) - to label %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i unwind label %510 - -510: ; preds = %509 - %511 = landingpad { ptr, i32 } + %496 = load ptr, ptr %36, align 8, !tbaa !303 + %497 = getelementptr inbounds nuw %class.btAlignedObjectArray.52, ptr %496, i64 %indvars.iv.i.i.i196 + %498 = getelementptr inbounds nuw i8, ptr %497, i64 16 + %499 = load ptr, ptr %498, align 8, !tbaa !51 + %.not.i.i.i.i.i.i = icmp ne ptr %499, null + %500 = getelementptr inbounds nuw i8, ptr %497, i64 24 + %501 = load i8, ptr %500, align 8, !range !33 + %502 = trunc nuw i8 %501 to i1 + %or.cond.i.i.i.i.i = select i1 %.not.i.i.i.i.i.i, i1 %502, i1 false + br i1 %or.cond.i.i.i.i.i, label %503, label %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i + +503: ; preds = %495 + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %499) + to label %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i unwind label %504 + +504: ; preds = %503 + %505 = landingpad { ptr, i32 } catch ptr null - %512 = extractvalue { ptr, i32 } %511, 0 - call void @__clang_call_terminate(ptr %512) #28 + %506 = extractvalue { ptr, i32 } %505, 0 + call void @__clang_call_terminate(ptr %506) #28 unreachable -_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i: ; preds = %509, %501 - %513 = getelementptr inbounds nuw i8, ptr %503, i64 4 - store i8 1, ptr %506, align 8, !tbaa !47 - store ptr null, ptr %504, align 8, !tbaa !51 - store i32 0, ptr %513, align 4, !tbaa !52 - %514 = getelementptr inbounds nuw i8, ptr %503, i64 8 - store i32 0, ptr %514, align 8, !tbaa !53 +_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i: ; preds = %503, %495 + %507 = getelementptr inbounds nuw i8, ptr %497, i64 4 + store i8 1, ptr %500, align 8, !tbaa !47 + store ptr null, ptr %498, align 8, !tbaa !51 + store i32 0, ptr %507, align 4, !tbaa !52 + %508 = getelementptr inbounds nuw i8, ptr %497, i64 8 + store i32 0, ptr %508, align 8, !tbaa !53 %indvars.iv.next.i.i.i197 = add nuw nsw i64 %indvars.iv.i.i.i196, 1 - %515 = icmp eq i64 %indvars.iv.next.i.i.i197, %zext.i.i - br i1 %515, label %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i, label %501, !llvm.loop !337 + %509 = icmp eq i64 %indvars.iv.next.i.i.i197, %zext.i.i + br i1 %509, label %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i, label %495, !llvm.loop !337 _ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i: ; preds = %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i, %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 - %516 = load ptr, ptr %36, align 8, !tbaa !303 - %.not.i.i.i193 = icmp ne ptr %516, null - %517 = load i8, ptr %35, align 8, !range !33 - %518 = trunc nuw i8 %517 to i1 - %or.cond.i.i194 = select i1 %.not.i.i.i193, i1 %518, i1 false - br i1 %or.cond.i.i194, label %519, label %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit - -519: ; preds = %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %516) - to label %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit unwind label %520 - -520: ; preds = %519 - %521 = landingpad { ptr, i32 } + %510 = load ptr, ptr %36, align 8, !tbaa !303 + %.not.i.i.i193 = icmp ne ptr %510, null + %511 = load i8, ptr %35, align 8, !range !33 + %512 = trunc nuw i8 %511 to i1 + %or.cond.i.i194 = select i1 %.not.i.i.i193, i1 %512, i1 false + br i1 %or.cond.i.i194, label %513, label %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit + +513: ; preds = %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %510) + to label %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit unwind label %514 + +514: ; preds = %513 + %515 = landingpad { ptr, i32 } catch ptr null - %522 = extractvalue { ptr, i32 } %521, 0 - call void @__clang_call_terminate(ptr %522) #28 + %516 = extractvalue { ptr, i32 } %515, 0 + call void @__clang_call_terminate(ptr %516) #28 unreachable -_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit: ; preds = %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i, %519 +_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit: ; preds = %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i, %513 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #27 - %523 = load ptr, ptr %32, align 8, !tbaa !37 - %.not.i.i.i198 = icmp ne ptr %523, null - %524 = load i8, ptr %31, align 8, !range !33 - %525 = trunc nuw i8 %524 to i1 - %or.cond.i.i199 = select i1 %.not.i.i.i198, i1 %525, i1 false - br i1 %or.cond.i.i199, label %526, label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit - -526: ; preds = %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %523) - to label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit unwind label %527 - -527: ; preds = %526 - %528 = landingpad { ptr, i32 } + %517 = load ptr, ptr %32, align 8, !tbaa !37 + %.not.i.i.i198 = icmp ne ptr %517, null + %518 = load i8, ptr %31, align 8, !range !33 + %519 = trunc nuw i8 %518 to i1 + %or.cond.i.i199 = select i1 %.not.i.i.i198, i1 %519, i1 false + br i1 %or.cond.i.i199, label %520, label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit + +520: ; preds = %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %517) + to label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit unwind label %521 + +521: ; preds = %520 + %522 = landingpad { ptr, i32 } catch ptr null - %529 = extractvalue { ptr, i32 } %528, 0 - call void @__clang_call_terminate(ptr %529) #28 + %523 = extractvalue { ptr, i32 } %522, 0 + call void @__clang_call_terminate(ptr %523) #28 unreachable -_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit: ; preds = %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit, %526 +_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit: ; preds = %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit, %520 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #27 - %530 = load ptr, ptr %4, align 8, !tbaa !322 - %531 = icmp eq ptr %530, %29 - br i1 %531, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i201, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i200 + %524 = load ptr, ptr %4, align 8, !tbaa !322 + %525 = icmp eq ptr %524, %29 + br i1 %525, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i201, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i200 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i201: ; preds = %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit - %532 = load i64, ptr %30, align 8, !tbaa !297 - %533 = icmp ult i64 %532, 16 - call void @llvm.assume(i1 %533) + %526 = load i64, ptr %30, align 8, !tbaa !297 + %527 = icmp ult i64 %526, 16 + call void @llvm.assume(i1 %527) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit202 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i200: ; preds = %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit - %534 = load i64, ptr %29, align 8, !tbaa !35 - %535 = add i64 %534, 1 - call void @_ZdlPvm(ptr noundef %530, i64 noundef %535) #30 + %528 = load i64, ptr %29, align 8, !tbaa !35 + %529 = add i64 %528, 1 + call void @_ZdlPvm(ptr noundef %524, i64 noundef %529) #30 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit202 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit202: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i201, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i200 @@ -7741,35 +7689,35 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit202: ; preds = %_Z call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %3) #27 ret ptr %.4 -_ZN17btCollisionObjectdlEPv.exit: ; preds = %.loopexit229, %.loopexit.split-lp, %313, %311, %364, %495, %497, %305 - %.pn92.pn.pn = phi { ptr, i32 } [ %.pn92.pn, %305 ], [ %365, %364 ], [ %312, %311 ], [ %498, %497 ], [ %496, %495 ], [ %314, %313 ], [ %lpad.loopexit, %.loopexit229 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] +_ZN17btCollisionObjectdlEPv.exit: ; preds = %.loopexit229, %.loopexit.split-lp, %313, %311, %364, %489, %491, %305 + %.pn92.pn.pn = phi { ptr, i32 } [ %.pn92.pn, %305 ], [ %365, %364 ], [ %312, %311 ], [ %492, %491 ], [ %490, %489 ], [ %314, %313 ], [ %lpad.loopexit, %.loopexit229 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #27 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #27 call void @_ZN20btAlignedObjectArrayIS_IiEED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %6) #27 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #27 call void @_ZN20btAlignedObjectArrayI9btVector3ED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %5) #27 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #27 - %536 = load ptr, ptr %4, align 8, !tbaa !322 - %537 = icmp eq ptr %536, %29 - br i1 %537, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i204, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i203 + %530 = load ptr, ptr %4, align 8, !tbaa !322 + %531 = icmp eq ptr %530, %29 + br i1 %531, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i204, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i203 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i204: ; preds = %_ZN17btCollisionObjectdlEPv.exit - %538 = load i64, ptr %30, align 8, !tbaa !297 - %539 = icmp ult i64 %538, 16 - call void @llvm.assume(i1 %539) + %532 = load i64, ptr %30, align 8, !tbaa !297 + %533 = icmp ult i64 %532, 16 + call void @llvm.assume(i1 %533) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i203: ; preds = %_ZN17btCollisionObjectdlEPv.exit - %540 = load i64, ptr %29, align 8, !tbaa !35 - %541 = add i64 %540, 1 - call void @_ZdlPvm(ptr noundef %536, i64 noundef %541) #30 + %534 = load i64, ptr %29, align 8, !tbaa !35 + %535 = add i64 %534, 1 + call void @_ZdlPvm(ptr noundef %530, i64 noundef %535) #30 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i204, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i203 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #27 - br label %542 + br label %536 -542: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205, %100 +536: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205, %100 %.pn92.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn92.pn.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205 ], [ %101, %100 ] call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %3) #27 call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %3) #27 diff --git a/bench/ceres/optimized/line_search.ll b/bench/ceres/optimized/line_search.ll index 198ad218edb..050e6e0a294 100644 --- a/bench/ceres/optimized/line_search.ll +++ b/bench/ceres/optimized/line_search.ll @@ -1772,7 +1772,6 @@ define hidden void @_ZNK5ceres8internal10LineSearch6SearchEdddPNS1_7SummaryE(ptr call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(60) %12, i8 0, i64 60, i1 false) store ptr %14, ptr %13, align 8, !tbaa !65 %15 = getelementptr inbounds nuw i8, ptr %8, i64 168 - store i64 0, ptr %15, align 8, !tbaa !11 store i8 0, ptr %14, align 8, !tbaa !12 %16 = load i8, ptr %8, align 8, !tbaa !74, !range !76, !noundef !77 store i8 %16, ptr %4, align 8, !tbaa !74 @@ -1810,30 +1809,18 @@ define hidden void @_ZNK5ceres8internal10LineSearch6SearchEdddPNS1_7SummaryE(ptr %38 = getelementptr inbounds nuw i8, ptr %8, i64 72 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %37, ptr noundef nonnull align 8 dereferenceable(17) %38, i64 17, i1 false) %39 = getelementptr inbounds nuw i8, ptr %4, i64 96 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %39, i8 0, i64 12, i1 false) - %40 = getelementptr inbounds nuw i8, ptr %4, i64 108 - %41 = getelementptr inbounds nuw i8, ptr %8, i64 108 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %40, ptr noundef nonnull align 4 dereferenceable(12) %41, i64 12, i1 false), !tbaa.struct !79 - %42 = getelementptr inbounds nuw i8, ptr %4, i64 120 - %43 = getelementptr inbounds nuw i8, ptr %8, i64 120 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %42, ptr noundef nonnull align 8 dereferenceable(12) %43, i64 12, i1 false), !tbaa.struct !79 - %44 = getelementptr inbounds nuw i8, ptr %4, i64 132 - %45 = getelementptr inbounds nuw i8, ptr %8, i64 132 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %44, ptr noundef nonnull align 4 dereferenceable(12) %45, i64 12, i1 false), !tbaa.struct !79 - %46 = getelementptr inbounds nuw i8, ptr %4, i64 144 - %47 = getelementptr inbounds nuw i8, ptr %8, i64 144 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %46, ptr noundef nonnull align 8 dereferenceable(12) %47, i64 12, i1 false), !tbaa.struct !79 - %48 = getelementptr inbounds nuw i8, ptr %4, i64 160 - %49 = load ptr, ptr %48, align 8, !tbaa !3 - %50 = getelementptr inbounds nuw i8, ptr %4, i64 176 - %51 = icmp eq ptr %49, %50 - br i1 %51, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i + %40 = getelementptr inbounds nuw i8, ptr %4, i64 160 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(60) %39, i8 0, i64 60, i1 false) + %41 = load ptr, ptr %40, align 8, !tbaa !3 + %42 = getelementptr inbounds nuw i8, ptr %4, i64 176 + %43 = icmp eq ptr %41, %42 + br i1 %43, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i: ; preds = %.critedge - %52 = getelementptr inbounds nuw i8, ptr %4, i64 168 - %53 = load i64, ptr %52, align 8, !tbaa !11 - %54 = icmp ult i64 %53, 16 - call void @llvm.assume(i1 %54) + %44 = getelementptr inbounds nuw i8, ptr %4, i64 168 + %45 = load i64, ptr %44, align 8, !tbaa !11 + %46 = icmp ult i64 %45, 16 + call void @llvm.assume(i1 %46) br label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i: ; preds = %.critedge, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i @@ -1841,63 +1828,66 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.threa br i1 %.not22.i.i, label %_ZN5ceres8internal10LineSearch7SummaryaSEOS2_.exit, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i, !prof !32 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i - %55 = getelementptr inbounds nuw i8, ptr %4, i64 168 - store i64 0, ptr %55, align 8, !tbaa !11 - store i8 0, ptr %49, align 1, !tbaa !12 + %47 = getelementptr inbounds nuw i8, ptr %4, i64 168 + store i64 0, ptr %47, align 8, !tbaa !11 + store i8 0, ptr %41, align 1, !tbaa !12 %.pre.i.i = load ptr, ptr %13, align 8, !tbaa !3 br label %_ZN5ceres8internal10LineSearch7SummaryaSEOS2_.exit _ZN5ceres8internal10LineSearch7SummaryaSEOS2_.exit: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i - %56 = phi ptr [ %.pre.i.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i ], [ %14, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i ] + %48 = phi ptr [ %.pre.i.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i ], [ %14, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i ] store i64 0, ptr %15, align 8, !tbaa !11 - store i8 0, ptr %56, align 1, !tbaa !12 - %57 = load ptr, ptr %13, align 8, !tbaa !3 - %58 = icmp eq ptr %57, %14 - br i1 %58, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i + store i8 0, ptr %48, align 1, !tbaa !12 + %49 = load ptr, ptr %13, align 8, !tbaa !3 + %50 = icmp eq ptr %49, %14 + br i1 %50, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i: ; preds = %_ZN5ceres8internal10LineSearch7SummaryaSEOS2_.exit - %59 = load i64, ptr %15, align 8, !tbaa !11 - %60 = icmp ult i64 %59, 16 - call void @llvm.assume(i1 %60) + %51 = load i64, ptr %15, align 8, !tbaa !11 + %52 = icmp ult i64 %51, 16 + call void @llvm.assume(i1 %52) br label %_ZN5ceres8internal10LineSearch7SummaryD2Ev.exit _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i: ; preds = %_ZN5ceres8internal10LineSearch7SummaryaSEOS2_.exit - %61 = load i64, ptr %14, align 8, !tbaa !12 - %62 = add i64 %61, 1 - call void @_ZdlPvm(ptr noundef %57, i64 noundef %62) #33 + %53 = load i64, ptr %14, align 8, !tbaa !12 + %54 = add i64 %53, 1 + call void @_ZdlPvm(ptr noundef %49, i64 noundef %54) #33 br label %_ZN5ceres8internal10LineSearch7SummaryD2Ev.exit _ZN5ceres8internal10LineSearch7SummaryD2Ev.exit: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i + %55 = getelementptr inbounds nuw i8, ptr %4, i64 144 + %56 = getelementptr inbounds nuw i8, ptr %4, i64 120 + %57 = getelementptr inbounds nuw i8, ptr %4, i64 108 %.fca.0.extract33 = extractvalue { i64, i32 } %9, 0 %.fca.1.extract34 = extractvalue { i64, i32 } %9, 1 - %63 = load ptr, ptr %30, align 8, !tbaa !45 - call void @free(ptr noundef %63) #32 - %64 = load ptr, ptr %20, align 8, !tbaa !45 - call void @free(ptr noundef %64) #32 + %58 = load ptr, ptr %30, align 8, !tbaa !45 + call void @free(ptr noundef %58) #32 + %59 = load ptr, ptr %20, align 8, !tbaa !45 + call void @free(ptr noundef %59) #32 call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %8) #32 - %65 = getelementptr inbounds nuw i8, ptr %0, i64 80 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %40, i8 0, i64 36, i1 false) - %66 = load ptr, ptr %65, align 8, !tbaa !80 - call void @_ZN5ceres8internal18LineSearchFunction19ResetTimeStatisticsEv(ptr noundef nonnull align 8 dereferenceable(80) %66) - %67 = load ptr, ptr %0, align 8, !tbaa !13 - %68 = getelementptr inbounds nuw i8, ptr %67, i64 16 - %69 = load ptr, ptr %68, align 8 - call void %69(ptr noundef nonnull align 8 dereferenceable(88) %0, double noundef %1, double noundef %2, double noundef %3, ptr noundef nonnull %4) - %70 = load ptr, ptr %65, align 8, !tbaa !80 - call void @_ZNK5ceres8internal18LineSearchFunction14TimeStatisticsEPN4absl12lts_202401168DurationES5_(ptr noundef nonnull align 8 dereferenceable(80) %70, ptr noundef nonnull %40, ptr noundef nonnull %42) - %71 = call { i64, i32 } @_ZN4absl12lts_202401163NowEv() - %.fca.0.extract7 = extractvalue { i64, i32 } %71, 0 - %.fca.1.extract8 = extractvalue { i64, i32 } %71, 1 + %60 = getelementptr inbounds nuw i8, ptr %0, i64 80 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %57, i8 0, i64 36, i1 false) + %61 = load ptr, ptr %60, align 8, !tbaa !79 + call void @_ZN5ceres8internal18LineSearchFunction19ResetTimeStatisticsEv(ptr noundef nonnull align 8 dereferenceable(80) %61) + %62 = load ptr, ptr %0, align 8, !tbaa !13 + %63 = getelementptr inbounds nuw i8, ptr %62, i64 16 + %64 = load ptr, ptr %63, align 8 + call void %64(ptr noundef nonnull align 8 dereferenceable(88) %0, double noundef %1, double noundef %2, double noundef %3, ptr noundef nonnull %4) + %65 = load ptr, ptr %60, align 8, !tbaa !79 + call void @_ZNK5ceres8internal18LineSearchFunction14TimeStatisticsEPN4absl12lts_202401168DurationES5_(ptr noundef nonnull align 8 dereferenceable(80) %65, ptr noundef nonnull %57, ptr noundef nonnull %56) + %66 = call { i64, i32 } @_ZN4absl12lts_202401163NowEv() + %.fca.0.extract7 = extractvalue { i64, i32 } %66, 0 + %.fca.1.extract8 = extractvalue { i64, i32 } %66, 1 call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %6) store i64 %.fca.0.extract7, ptr %6, align 8 %.sroa.210.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %6, i64 8 store i32 %.fca.1.extract8, ptr %.sroa.210.0..sroa_idx.i.i, align 8 - %72 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN4absl12lts_202401168DurationmIES1_(ptr noundef nonnull align 4 dereferenceable(12) %6, i64 %.fca.0.extract33, i32 %.fca.1.extract34) #32 - %.sroa.011.0.copyload.i.i = load i64, ptr %72, align 4 - %.sroa.212.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %72, i64 8 + %67 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN4absl12lts_202401168DurationmIES1_(ptr noundef nonnull align 4 dereferenceable(12) %6, i64 %.fca.0.extract33, i32 %.fca.1.extract34) #32 + %.sroa.011.0.copyload.i.i = load i64, ptr %67, align 4 + %.sroa.212.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %67, i64 8 %.sroa.212.0.copyload.i.i = load i32, ptr %.sroa.212.0..sroa_idx.i.i, align 4, !tbaa !20 call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %6) - store i64 %.sroa.011.0.copyload.i.i, ptr %46, align 8 + store i64 %.sroa.011.0.copyload.i.i, ptr %55, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 152 store i32 %.sroa.212.0.copyload.i.i, ptr %.sroa.4.0..sroa_idx, align 8, !tbaa !20 ret void @@ -1949,7 +1939,7 @@ define hidden noundef double @_ZNK5ceres8internal10LineSearch41InterpolatingPoly 30: ; preds = %28 %31 = fcmp ogt double %6, %.pre - br i1 %31, label %142, label %32, !prof !82 + br i1 %31, label %142, label %32, !prof !81 32: ; preds = %30 %33 = tail call noundef nonnull ptr @_ZN4absl12lts_2024011612log_internal17MakeCheckOpStringIddEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc(double noundef %6, double noundef %.pre, ptr noundef nonnull @.str.8) @@ -1967,7 +1957,7 @@ define hidden noundef double @_ZNK5ceres8internal10LineSearch41InterpolatingPoly %40 = trunc nuw i8 %39 to i1 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #32 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #32 - br i1 %40, label %64, label %41, !prof !82 + br i1 %40, label %64, label %41, !prof !81 41: ; preds = %37 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #32 @@ -1994,7 +1984,7 @@ _ZN4absl12lts_2024011612log_internal10LogMessagelsILi53EEERS2_RAT__Kc.exit: ; pr to label %48 unwind label %61 48: ; preds = %_ZN4absl12lts_2024011612log_internal10LogMessagelsILi53EEERS2_RAT__Kc.exit - store ptr %47, ptr %11, align 8, !tbaa !83 + store ptr %47, ptr %11, align 8, !tbaa !82 %49 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN4absl12lts_2024011612log_internal10LogMessagelsIPKcTnNSt9enable_ifIXntsr4absl16HasAbslStringifyIT_EE5valueEiE4typeELi0EEERS2_RKS7_(ptr noundef nonnull align 8 dereferenceable(16) %44, ptr noundef nonnull align 8 dereferenceable(8) %11) to label %50 unwind label %61 @@ -2067,8 +2057,8 @@ _ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE9push_backERKS2_.exit: ; p 67: ; preds = %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE9push_backERKS2_.exit %68 = getelementptr inbounds nuw i8, ptr %4, i64 32 - %69 = load ptr, ptr %65, align 8, !tbaa !84 - %70 = load ptr, ptr %66, align 8, !tbaa !87 + %69 = load ptr, ptr %65, align 8, !tbaa !83 + %70 = load ptr, ptr %66, align 8, !tbaa !86 %.not.i44 = icmp eq ptr %69, %70 br i1 %.not.i44, label %76, label %71 @@ -2079,9 +2069,9 @@ _ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE9push_backERKS2_.exit: ; p to label %.noexc45 unwind label %89 .noexc45: ; preds = %71 - %74 = load ptr, ptr %65, align 8, !tbaa !84 + %74 = load ptr, ptr %65, align 8, !tbaa !83 %75 = getelementptr inbounds nuw i8, ptr %74, i64 88 - store ptr %75, ptr %65, align 8, !tbaa !84 + store ptr %75, ptr %65, align 8, !tbaa !83 br label %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE12emplace_backIJRKdS7_EEERS2_DpOT_.exit 76: ; preds = %67 @@ -2096,8 +2086,8 @@ _ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE12emplace_backIJRKdS7_EEER 80: ; preds = %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE12emplace_backIJRKdS7_EEERS2_DpOT_.exit %81 = getelementptr inbounds nuw i8, ptr %3, i64 32 - %82 = load ptr, ptr %65, align 8, !tbaa !84 - %83 = load ptr, ptr %66, align 8, !tbaa !87 + %82 = load ptr, ptr %65, align 8, !tbaa !83 + %83 = load ptr, ptr %66, align 8, !tbaa !86 %.not.i47 = icmp eq ptr %82, %83 br i1 %.not.i47, label %87, label %84 @@ -2121,8 +2111,8 @@ _ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE12emplace_backIJRKdS7_EEER br label %141 91: ; preds = %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE9push_backERKS2_.exit - %92 = load ptr, ptr %65, align 8, !tbaa !84 - %93 = load ptr, ptr %66, align 8, !tbaa !87 + %92 = load ptr, ptr %65, align 8, !tbaa !83 + %93 = load ptr, ptr %66, align 8, !tbaa !86 %.not.i52 = icmp eq ptr %92, %93 br i1 %.not.i52, label %97, label %94 @@ -2131,9 +2121,9 @@ _ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE12emplace_backIJRKdS7_EEER to label %.noexc53 unwind label %89 .noexc53: ; preds = %94 - %95 = load ptr, ptr %65, align 8, !tbaa !84 + %95 = load ptr, ptr %65, align 8, !tbaa !83 %96 = getelementptr inbounds nuw i8, ptr %95, i64 88 - store ptr %96, ptr %65, align 8, !tbaa !84 + store ptr %96, ptr %65, align 8, !tbaa !83 br label %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE9push_backERKS2_.exit55 97: ; preds = %91 @@ -2147,8 +2137,8 @@ _ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE9push_backERKS2_.exit55: ; br i1 %100, label %101, label %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE12emplace_backIJRKdS7_EEERS2_DpOT_.exit51 101: ; preds = %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE9push_backERKS2_.exit55 - %102 = load ptr, ptr %65, align 8, !tbaa !84 - %103 = load ptr, ptr %66, align 8, !tbaa !87 + %102 = load ptr, ptr %65, align 8, !tbaa !83 + %103 = load ptr, ptr %66, align 8, !tbaa !86 %.not.i56 = icmp eq ptr %102, %103 br i1 %.not.i56, label %105, label %104 @@ -2176,7 +2166,7 @@ _ZN4absl12lts_2024011612log_internal10LogMessagelsILi47EEERS2_RAT__Kc.exit: ; pr to label %110 unwind label %119 110: ; preds = %_ZN4absl12lts_2024011612log_internal10LogMessagelsILi47EEERS2_RAT__Kc.exit - store ptr %109, ptr %14, align 8, !tbaa !83 + store ptr %109, ptr %14, align 8, !tbaa !82 %111 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN4absl12lts_2024011612log_internal10LogMessagelsIPKcTnNSt9enable_ifIXntsr4absl16HasAbslStringifyIT_EE5valueEiE4typeELi0EEERS2_RKS7_(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) to label %112 unwind label %119 @@ -2211,9 +2201,9 @@ _ZN4absl12lts_2024011612log_internal10LogMessagelsILi47EEERS2_RAT__Kc.exit: ; pr unreachable _ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE12emplace_backIJRKdS7_EEERS2_DpOT_.exit51.sink.split: ; preds = %104, %84 - %122 = load ptr, ptr %65, align 8, !tbaa !84 + %122 = load ptr, ptr %65, align 8, !tbaa !83 %123 = getelementptr inbounds nuw i8, ptr %122, i64 88 - store ptr %123, ptr %65, align 8, !tbaa !84 + store ptr %123, ptr %65, align 8, !tbaa !83 br label %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE12emplace_backIJRKdS7_EEERS2_DpOT_.exit51 _ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE12emplace_backIJRKdS7_EEERS2_DpOT_.exit51: ; preds = %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE12emplace_backIJRKdS7_EEERS2_DpOT_.exit51.sink.split, %87, %105, %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE9push_backERKS2_.exit55, %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE12emplace_backIJRKdS7_EEERS2_DpOT_.exit @@ -2228,8 +2218,8 @@ _ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE12emplace_backIJRKdS7_EEER %125 = load double, ptr %15, align 8, !tbaa !18 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #32 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #32 - %126 = load ptr, ptr %12, align 8, !tbaa !88 - %127 = load ptr, ptr %65, align 8, !tbaa !84 + %126 = load ptr, ptr %12, align 8, !tbaa !87 + %127 = load ptr, ptr %65, align 8, !tbaa !83 %.not4.i.i.i.i = icmp eq ptr %126, %127 br i1 %.not4.i.i.i.i, label %_ZSt8_DestroyIPN5ceres8internal14FunctionSampleES2_EvT_S4_RSaIT0_E.exit.i, label %.lr.ph.i.i.i.i @@ -2243,10 +2233,10 @@ _ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE12emplace_backIJRKdS7_EEER call void @free(ptr noundef %131) #32 %132 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i, i64 88 %.not.i.i.i.i = icmp eq ptr %132, %127 - br i1 %.not.i.i.i.i, label %_ZSt8_DestroyIPN5ceres8internal14FunctionSampleES2_EvT_S4_RSaIT0_E.exitthread-pre-split.i, label %.lr.ph.i.i.i.i, !llvm.loop !89 + br i1 %.not.i.i.i.i, label %_ZSt8_DestroyIPN5ceres8internal14FunctionSampleES2_EvT_S4_RSaIT0_E.exitthread-pre-split.i, label %.lr.ph.i.i.i.i, !llvm.loop !88 _ZSt8_DestroyIPN5ceres8internal14FunctionSampleES2_EvT_S4_RSaIT0_E.exitthread-pre-split.i: ; preds = %.lr.ph.i.i.i.i - %.pr.i = load ptr, ptr %12, align 8, !tbaa !88 + %.pr.i = load ptr, ptr %12, align 8, !tbaa !87 br label %_ZSt8_DestroyIPN5ceres8internal14FunctionSampleES2_EvT_S4_RSaIT0_E.exit.i _ZSt8_DestroyIPN5ceres8internal14FunctionSampleES2_EvT_S4_RSaIT0_E.exit.i: ; preds = %_ZSt8_DestroyIPN5ceres8internal14FunctionSampleES2_EvT_S4_RSaIT0_E.exitthread-pre-split.i, %124 @@ -2255,7 +2245,7 @@ _ZSt8_DestroyIPN5ceres8internal14FunctionSampleES2_EvT_S4_RSaIT0_E.exit.i: ; pre br i1 %.not.i.i.i, label %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EED2Ev.exit, label %134 134: ; preds = %_ZSt8_DestroyIPN5ceres8internal14FunctionSampleES2_EvT_S4_RSaIT0_E.exit.i - %135 = load ptr, ptr %66, align 8, !tbaa !87 + %135 = load ptr, ptr %66, align 8, !tbaa !86 %136 = ptrtoint ptr %135 to i64 %137 = ptrtoint ptr %133 to i64 %138 = sub i64 %136, %137 @@ -2289,10 +2279,10 @@ declare noundef nonnull align 8 dereferenceable(16) ptr @_ZN4absl12lts_202401161 ; Function Attrs: inlinehint mustprogress uwtable define linkonce_odr noundef nonnull align 8 dereferenceable(216) ptr @_ZSt10scientificRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216) %0) #8 comdat { %2 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %3 = load i32, ptr %2, align 8, !tbaa !90 + %3 = load i32, ptr %2, align 8, !tbaa !89 %4 = and i32 %3, -261 %5 = or disjoint i32 %4, 256 - store i32 %5, ptr %2, align 8, !tbaa !99 + store i32 %5, ptr %2, align 8, !tbaa !98 ret ptr %0 } @@ -2301,7 +2291,7 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(16) ptr @_ZN4 %3 = alloca %"class.absl::lts_20240116::log_internal::LogMessage::OstreamView", align 8 call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %3) #32 %4 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %5 = load ptr, ptr %4, align 8, !tbaa !100 + %5 = load ptr, ptr %4, align 8, !tbaa !99 call void @_ZN4absl12lts_2024011612log_internal10LogMessage11OstreamViewC1ERNS2_14LogMessageDataE(ptr noundef nonnull align 8 dereferenceable(120) %3, ptr noundef nonnull align 1 %5) %6 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4absl12lts_2024011612log_internal10LogMessage11OstreamView6streamEv(ptr noundef nonnull align 8 dereferenceable(120) %3) to label %7 unwind label %14 @@ -2314,7 +2304,7 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(16) ptr @_ZN4 %11 = getelementptr inbounds i8, ptr %6, i64 %10 %12 = sext i32 %.sroa.0.0.copyload to i64 %13 = getelementptr inbounds nuw i8, ptr %11, i64 8 - store i64 %12, ptr %13, align 8, !tbaa !102 + store i64 %12, ptr %13, align 8, !tbaa !101 call void @_ZN4absl12lts_2024011612log_internal10LogMessage11OstreamViewD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %3) #32 call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %3) #32 ret ptr %0 @@ -2332,13 +2322,13 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(16) ptr @_ZN4 %3 = alloca %"class.absl::lts_20240116::log_internal::LogMessage::OstreamView", align 8 call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %3) #32 %4 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %5 = load ptr, ptr %4, align 8, !tbaa !100 + %5 = load ptr, ptr %4, align 8, !tbaa !99 call void @_ZN4absl12lts_2024011612log_internal10LogMessage11OstreamViewC1ERNS2_14LogMessageDataE(ptr noundef nonnull align 8 dereferenceable(120) %3, ptr noundef nonnull align 1 %5) %6 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4absl12lts_2024011612log_internal10LogMessage11OstreamView6streamEv(ptr noundef nonnull align 8 dereferenceable(120) %3) to label %7 unwind label %11 7: ; preds = %2 - %8 = load ptr, ptr %1, align 8, !tbaa !83 + %8 = load ptr, ptr %1, align 8, !tbaa !82 %.not.i = icmp eq ptr %8, null %spec.select.i = select i1 %.not.i, ptr @_ZN4absl12lts_2024011612log_internal9kCharNullE, ptr %8 %9 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %spec.select.i) #32 @@ -2366,7 +2356,7 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(16) ptr @_ZN4 %4 = alloca %"class.absl::lts_20240116::log_internal::LogMessage::OstreamView", align 8 call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %4) #32 %5 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %6 = load ptr, ptr %5, align 8, !tbaa !100 + %6 = load ptr, ptr %5, align 8, !tbaa !99 call void @_ZN4absl12lts_2024011612log_internal10LogMessage11OstreamViewC1ERNS2_14LogMessageDataE(ptr noundef nonnull align 8 dereferenceable(120) %4, ptr noundef nonnull align 1 %6) %7 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4absl12lts_2024011612log_internal10LogMessage11OstreamView6streamEv(ptr noundef nonnull align 8 dereferenceable(120) %4) to label %8 unwind label %30 @@ -2457,9 +2447,9 @@ declare hidden void @_ZN5ceres8internal31MinimizeInterpolatingPolynomialERKSt6ve ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden void @_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %0) unnamed_addr #11 comdat align 2 personality ptr @__gxx_personality_v0 { - %2 = load ptr, ptr %0, align 8, !tbaa !88 + %2 = load ptr, ptr %0, align 8, !tbaa !87 %3 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %4 = load ptr, ptr %3, align 8, !tbaa !84 + %4 = load ptr, ptr %3, align 8, !tbaa !83 %.not4.i.i.i = icmp eq ptr %2, %4 br i1 %.not4.i.i.i, label %_ZSt8_DestroyIPN5ceres8internal14FunctionSampleES2_EvT_S4_RSaIT0_E.exit, label %.lr.ph.i.i.i @@ -2473,10 +2463,10 @@ define linkonce_odr hidden void @_ZNSt6vectorIN5ceres8internal14FunctionSampleES tail call void @free(ptr noundef %8) #32 %9 = getelementptr inbounds nuw i8, ptr %.05.i.i.i, i64 88 %.not.i.i.i = icmp eq ptr %9, %4 - br i1 %.not.i.i.i, label %_ZSt8_DestroyIPN5ceres8internal14FunctionSampleES2_EvT_S4_RSaIT0_E.exitthread-pre-split, label %.lr.ph.i.i.i, !llvm.loop !89 + br i1 %.not.i.i.i, label %_ZSt8_DestroyIPN5ceres8internal14FunctionSampleES2_EvT_S4_RSaIT0_E.exitthread-pre-split, label %.lr.ph.i.i.i, !llvm.loop !88 _ZSt8_DestroyIPN5ceres8internal14FunctionSampleES2_EvT_S4_RSaIT0_E.exitthread-pre-split: ; preds = %.lr.ph.i.i.i - %.pr = load ptr, ptr %0, align 8, !tbaa !88 + %.pr = load ptr, ptr %0, align 8, !tbaa !87 br label %_ZSt8_DestroyIPN5ceres8internal14FunctionSampleES2_EvT_S4_RSaIT0_E.exit _ZSt8_DestroyIPN5ceres8internal14FunctionSampleES2_EvT_S4_RSaIT0_E.exit: ; preds = %_ZSt8_DestroyIPN5ceres8internal14FunctionSampleES2_EvT_S4_RSaIT0_E.exitthread-pre-split, %1 @@ -2486,7 +2476,7 @@ _ZSt8_DestroyIPN5ceres8internal14FunctionSampleES2_EvT_S4_RSaIT0_E.exit: ; preds 11: ; preds = %_ZSt8_DestroyIPN5ceres8internal14FunctionSampleES2_EvT_S4_RSaIT0_E.exit %12 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %13 = load ptr, ptr %12, align 8, !tbaa !87 + %13 = load ptr, ptr %12, align 8, !tbaa !86 %14 = ptrtoint ptr %13 to i64 %15 = ptrtoint ptr %10 to i64 %16 = sub i64 %14, %15 @@ -2530,7 +2520,7 @@ define hidden void @_ZNK5ceres8internal16ArmijoLineSearch8DoSearchEdddPNS0_10Lin %23 = getelementptr inbounds nuw i8, ptr %0, i64 16 %24 = load double, ptr %23, align 8, !tbaa !18 %25 = fcmp ogt double %24, 0.000000e+00 - br i1 %25, label %31, label %33, !prof !82 + br i1 %25, label %31, label %33, !prof !81 26: ; preds = %5 %27 = tail call noundef nonnull ptr @_ZN4absl12lts_2024011612log_internal17MakeCheckOpStringIddEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc(double noundef %1, double noundef 0.000000e+00, ptr noundef nonnull @.str.17) @@ -2544,7 +2534,7 @@ define hidden void @_ZNK5ceres8internal16ArmijoLineSearch8DoSearchEdddPNS0_10Lin 31: ; preds = %21 %32 = fcmp olt double %24, 1.000000e+00 - br i1 %32, label %38, label %42, !prof !82 + br i1 %32, label %38, label %42, !prof !81 33: ; preds = %21 %34 = tail call noundef nonnull ptr @_ZN4absl12lts_2024011612log_internal17MakeCheckOpStringIddEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc(double noundef %24, double noundef 0.000000e+00, ptr noundef nonnull @.str.18) @@ -2558,9 +2548,9 @@ define hidden void @_ZNK5ceres8internal16ArmijoLineSearch8DoSearchEdddPNS0_10Lin 38: ; preds = %31 %39 = getelementptr inbounds nuw i8, ptr %0, i64 48 - %40 = load i32, ptr %39, align 8, !tbaa !103 + %40 = load i32, ptr %39, align 8, !tbaa !102 %41 = icmp sgt i32 %40, 0 - br i1 %41, label %47, label %73, !prof !82 + br i1 %41, label %47, label %73, !prof !81 42: ; preds = %31 %43 = tail call noundef nonnull ptr @_ZN4absl12lts_2024011612log_internal17MakeCheckOpStringIddEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc(double noundef %24, double noundef 1.000000e+00, ptr noundef nonnull @.str.19) @@ -2574,7 +2564,7 @@ define hidden void @_ZNK5ceres8internal16ArmijoLineSearch8DoSearchEdddPNS0_10Lin 47: ; preds = %38 %48 = getelementptr inbounds nuw i8, ptr %0, i64 80 - %49 = load ptr, ptr %48, align 8, !tbaa !80 + %49 = load ptr, ptr %48, align 8, !tbaa !79 call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %13) #32 call void @_ZN5ceres8internal14FunctionSampleC1Eddd(ptr noundef nonnull align 8 dereferenceable(81) %13, double noundef 0.000000e+00, double noundef %2, double noundef %3) %50 = getelementptr inbounds nuw i8, ptr %49, i64 8 @@ -2742,19 +2732,19 @@ _ZNK5ceres8internal18LineSearchFunction21DirectionInfinityNormEv.exit: ; preds = to label %130 unwind label %144 130: ; preds = %129 - %131 = load i32, ptr %22, align 8, !tbaa !104 + %131 = load i32, ptr %22, align 8, !tbaa !103 %132 = icmp eq i32 %131, 2 %133 = getelementptr inbounds nuw i8, ptr %4, i64 96 - %134 = load i32, ptr %133, align 8, !tbaa !105 + %134 = load i32, ptr %133, align 8, !tbaa !104 %135 = add nsw i32 %134, 1 - store i32 %135, ptr %133, align 8, !tbaa !105 + store i32 %135, ptr %133, align 8, !tbaa !104 br i1 %132, label %136, label %148 136: ; preds = %130 %137 = getelementptr inbounds nuw i8, ptr %4, i64 100 - %138 = load i32, ptr %137, align 4, !tbaa !106 + %138 = load i32, ptr %137, align 4, !tbaa !105 %139 = add nsw i32 %138, 1 - store i32 %139, ptr %137, align 4, !tbaa !106 + store i32 %139, ptr %137, align 4, !tbaa !105 br label %148 140: ; preds = %thread-pre-split.i.i.i.i.i.i.i @@ -2812,7 +2802,7 @@ _ZNK5ceres8internal18LineSearchFunction21DirectionInfinityNormEv.exit: ; preds = 172: ; preds = %169 %173 = load double, ptr %150, align 8, !tbaa !58 - %174 = load double, ptr %23, align 8, !tbaa !107 + %174 = load double, ptr %23, align 8, !tbaa !106 %175 = fmul double %3, %174 %176 = load double, ptr %15, align 8, !tbaa !50 %177 = call double @llvm.fmuladd.f64(double %175, double %176, double %2) @@ -2820,26 +2810,26 @@ _ZNK5ceres8internal18LineSearchFunction21DirectionInfinityNormEv.exit: ; preds = br i1 %178, label %.critedge, label %381 .critedge: ; preds = %169, %172 - %179 = load i32, ptr %151, align 8, !tbaa !108 + %179 = load i32, ptr %151, align 8, !tbaa !107 %180 = add nsw i32 %179, 1 - store i32 %180, ptr %151, align 8, !tbaa !108 - %181 = load i32, ptr %39, align 8, !tbaa !103 + store i32 %180, ptr %151, align 8, !tbaa !107 + %181 = load i32, ptr %39, align 8, !tbaa !102 %.not82 = icmp slt i32 %180, %181 br i1 %.not82, label %246, label %182 182: ; preds = %.critedge call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #32 - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #32, !noalias !109 + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #32, !noalias !108 %.sroa.0.0.insert.ext.i.i.i.i = zext i32 %181 to i64 %183 = inttoptr i64 %.sroa.0.0.insert.ext.i.i.i.i to ptr - store ptr %183, ptr %8, align 8, !tbaa !12, !noalias !109 + store ptr %183, ptr %8, align 8, !tbaa !12, !noalias !108 %184 = getelementptr inbounds nuw i8, ptr %8, i64 8 - store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIiEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %184, align 8, !tbaa !112, !noalias !109 + store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIiEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %184, align 8, !tbaa !111, !noalias !108 invoke void @_ZN4absl12lts_2024011619str_format_internal10FormatPackB5cxx11ENS1_21UntypedFormatSpecImplENS0_4SpanIKNS1_13FormatArgImplEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr nonnull @.str.21, i64 135, ptr nonnull %8, i64 1) to label %185 unwind label %239 185: ; preds = %182 - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #32, !noalias !109 + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #32, !noalias !108 %186 = getelementptr inbounds nuw i8, ptr %4, i64 160 %187 = load ptr, ptr %186, align 8, !tbaa !3 %188 = getelementptr inbounds nuw i8, ptr %4, i64 176 @@ -2952,7 +2942,7 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #32 %232 = getelementptr inbounds nuw i8, ptr %0, i64 72 - %233 = load i8, ptr %232, align 8, !tbaa !114, !range !76, !noundef !77 + %233 = load i8, ptr %232, align 8, !tbaa !113, !range !76, !noundef !77 %234 = trunc nuw i8 %233 to i1 br i1 %234, label %.thread, label %235 @@ -2999,10 +2989,10 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %_ZNKS 248: ; preds = %246 %.fca.0.extract17 = extractvalue { i64, i32 } %247, 0 %.fca.1.extract18 = extractvalue { i64, i32 } %247, 1 - %249 = load double, ptr %152, align 8, !tbaa !115 + %249 = load double, ptr %152, align 8, !tbaa !114 %250 = load double, ptr %15, align 8, !tbaa !50 %251 = fmul double %249, %250 - %252 = load double, ptr %153, align 8, !tbaa !116 + %252 = load double, ptr %153, align 8, !tbaa !115 %253 = fmul double %250, %252 %254 = invoke noundef double @_ZNK5ceres8internal10LineSearch41InterpolatingPolynomialMinimizingStepSizeERKNS_27LineSearchInterpolationTypeERKNS0_14FunctionSampleES7_S7_dd(ptr nonnull align 8 poison, ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 8 dereferenceable(81) %13, ptr noundef nonnull align 8 dereferenceable(81) %14, ptr noundef nonnull align 8 dereferenceable(81) %15, double noundef %251, double noundef %253) to label %255 unwind label %326 @@ -3027,7 +3017,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %_ZNKS 260: ; preds = %257 %261 = fmul double %254, %.0..0.147 - %262 = load double, ptr %155, align 8, !tbaa !117 + %262 = load double, ptr %155, align 8, !tbaa !116 %263 = fcmp uge double %261, %262 br i1 %263, label %335, label %264 @@ -3035,19 +3025,19 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %_ZNKS %265 = bitcast double %254 to i64 %266 = inttoptr i64 %265 to ptr call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #32 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #32, !noalias !118 - store ptr %266, ptr %6, align 8, !tbaa !12, !noalias !118 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #32, !noalias !117 + store ptr %266, ptr %6, align 8, !tbaa !12, !noalias !117 %267 = getelementptr inbounds nuw i8, ptr %6, i64 8 - store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %267, align 8, !tbaa !112, !noalias !118 + store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %267, align 8, !tbaa !111, !noalias !117 %268 = getelementptr inbounds nuw i8, ptr %6, i64 16 - store ptr %128, ptr %268, align 8, !tbaa !12, !noalias !118 + store ptr %128, ptr %268, align 8, !tbaa !12, !noalias !117 %269 = getelementptr inbounds nuw i8, ptr %6, i64 24 - store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %269, align 8, !tbaa !112, !noalias !118 + store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %269, align 8, !tbaa !111, !noalias !117 invoke void @_ZN4absl12lts_2024011619str_format_internal10FormatPackB5cxx11ENS1_21UntypedFormatSpecImplENS0_4SpanIKNS1_13FormatArgImplEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr nonnull @.str.22, i64 84, ptr nonnull %6, i64 2) to label %270 unwind label %328 270: ; preds = %264 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #32, !noalias !118 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #32, !noalias !117 %271 = getelementptr inbounds nuw i8, ptr %4, i64 160 %272 = load ptr, ptr %271, align 8, !tbaa !3 %273 = getelementptr inbounds nuw i8, ptr %4, i64 176 @@ -3160,7 +3150,7 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i11 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit116: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i115, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i114 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #32 %317 = getelementptr inbounds nuw i8, ptr %0, i64 72 - %318 = load i8, ptr %317, align 8, !tbaa !114, !range !76, !noundef !77 + %318 = load i8, ptr %317, align 8, !tbaa !113, !range !76, !noundef !77 %319 = trunc nuw i8 %318 to i1 br i1 %319, label %.thread, label %320 @@ -3309,15 +3299,15 @@ thread-pre-split.i.i.i.i.i.i.i7.i: ; preds = %_ZN5Eigen6MatrixIdL .loopexit161: ; preds = %.lr.ph.i.i.i.i.i.i.i.i.i10.i, %._crit_edge.i.i.i.i.i.i.i.i9.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %166, ptr noundef nonnull align 8 dereferenceable(17) %167, i64 17, i1 false) - %375 = load i32, ptr %133, align 8, !tbaa !105 + %375 = load i32, ptr %133, align 8, !tbaa !104 %376 = add nsw i32 %375, 1 - store i32 %376, ptr %133, align 8, !tbaa !105 + store i32 %376, ptr %133, align 8, !tbaa !104 br i1 %132, label %377, label %380 377: ; preds = %.loopexit161 - %378 = load i32, ptr %168, align 4, !tbaa !106 + %378 = load i32, ptr %168, align 4, !tbaa !105 %379 = add nsw i32 %378, 1 - store i32 %379, ptr %168, align 4, !tbaa !106 + store i32 %379, ptr %168, align 4, !tbaa !105 br label %380 380: ; preds = %377, %.loopexit161 @@ -3545,7 +3535,7 @@ define hidden void @_ZNK5ceres8internal15WolfeLineSearch8DoSearchEdddPNS0_10Line %24 = getelementptr inbounds nuw i8, ptr %0, i64 16 %25 = load double, ptr %24, align 8, !tbaa !18 %26 = fcmp ogt double %25, 0.000000e+00 - br i1 %26, label %32, label %36, !prof !82 + br i1 %26, label %32, label %36, !prof !81 27: ; preds = %5 %28 = tail call noundef nonnull ptr @_ZN4absl12lts_2024011612log_internal17MakeCheckOpStringIddEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc(double noundef %1, double noundef 0.000000e+00, ptr noundef nonnull @.str.17) @@ -3561,7 +3551,7 @@ define hidden void @_ZNK5ceres8internal15WolfeLineSearch8DoSearchEdddPNS0_10Line %33 = getelementptr inbounds nuw i8, ptr %0, i64 56 %34 = load double, ptr %33, align 8, !tbaa !18 %35 = fcmp ogt double %34, %25 - br i1 %35, label %41, label %43, !prof !82 + br i1 %35, label %41, label %43, !prof !81 36: ; preds = %23 %37 = tail call noundef nonnull ptr @_ZN4absl12lts_2024011612log_internal17MakeCheckOpStringIddEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc(double noundef %25, double noundef 0.000000e+00, ptr noundef nonnull @.str.18) @@ -3575,7 +3565,7 @@ define hidden void @_ZNK5ceres8internal15WolfeLineSearch8DoSearchEdddPNS0_10Line 41: ; preds = %32 %42 = fcmp olt double %34, 1.000000e+00 - br i1 %42, label %48, label %52, !prof !82 + br i1 %42, label %48, label %52, !prof !81 43: ; preds = %32 %44 = tail call noundef nonnull ptr @_ZN4absl12lts_2024011612log_internal17MakeCheckOpStringIddEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc(double noundef %34, double noundef %25, ptr noundef nonnull @.str.23) @@ -3591,7 +3581,7 @@ define hidden void @_ZNK5ceres8internal15WolfeLineSearch8DoSearchEdddPNS0_10Line %49 = getelementptr inbounds nuw i8, ptr %0, i64 64 %50 = load double, ptr %49, align 8, !tbaa !18 %51 = fcmp ogt double %50, 1.000000e+00 - br i1 %51, label %57, label %83, !prof !82 + br i1 %51, label %57, label %83, !prof !81 52: ; preds = %41 %53 = tail call noundef nonnull ptr @_ZN4absl12lts_2024011612log_internal17MakeCheckOpStringIddEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc(double noundef %34, double noundef 1.000000e+00, ptr noundef nonnull @.str.24) @@ -3607,7 +3597,7 @@ define hidden void @_ZNK5ceres8internal15WolfeLineSearch8DoSearchEdddPNS0_10Line call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %13) #32 call void @_ZN5ceres8internal14FunctionSampleC1Eddd(ptr noundef nonnull align 8 dereferenceable(81) %13, double noundef 0.000000e+00, double noundef %2, double noundef %3) %58 = getelementptr inbounds nuw i8, ptr %0, i64 80 - %59 = load ptr, ptr %58, align 8, !tbaa !80 + %59 = load ptr, ptr %58, align 8, !tbaa !79 %60 = getelementptr inbounds nuw i8, ptr %59, i64 8 %61 = getelementptr inbounds nuw i8, ptr %13, i64 8 %62 = load ptr, ptr %60, align 8, !tbaa !45 @@ -3836,7 +3826,7 @@ thread-pre-split.i.i.i.i.i.i.i7.i: ; preds = %_ZN5Eigen6MatrixIdL call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #32 %159 = load atomic i32, ptr getelementptr inbounds nuw (i8, ptr @"_ZZZNK5ceres8internal15WolfeLineSearch8DoSearchEdddPNS0_10LineSearch7SummaryEENK3$_0clEvE4site", i64 8) monotonic, align 8 %160 = icmp slt i32 %159, 3 - br i1 %160, label %_ZN4absl12lts_2024011612log_internal8VLogSite9IsEnabledEi.exit.thread, label %161, !prof !82 + br i1 %160, label %_ZN4absl12lts_2024011612log_internal8VLogSite9IsEnabledEi.exit.thread, label %161, !prof !81 161: ; preds = %158 %162 = invoke noundef zeroext i1 @_ZN4absl12lts_2024011612log_internal8VLogSite14SlowIsEnabled3Ei(ptr noundef nonnull align 8 dereferenceable(24) @"_ZZZNK5ceres8internal15WolfeLineSearch8DoSearchEdddPNS0_10LineSearch7SummaryEENK3$_0clEvE4site", i32 noundef %159) @@ -4351,7 +4341,7 @@ define hidden noundef zeroext i1 @_ZNK5ceres8internal15WolfeLineSearch15Bracketi %29 = alloca %"class.absl::lts_20240116::log_internal::LogMessage", align 8 %30 = getelementptr inbounds nuw i8, ptr %0, i64 8 %31 = getelementptr inbounds nuw i8, ptr %0, i64 80 - %32 = load ptr, ptr %31, align 8, !tbaa !80 + %32 = load ptr, ptr %31, align 8, !tbaa !79 call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %17) #32 call void @_ZN5ceres8internal14FunctionSampleC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(81) %17, ptr noundef nonnull align 8 dereferenceable(81) %1) call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %18) #32 @@ -4566,13 +4556,13 @@ thread-pre-split.i.i.i.i.i.i.i7.i: ; preds = %_ZN5Eigen6MatrixIdL %125 = getelementptr inbounds nuw i8, ptr %1, i64 64 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %.sroa.gep425, ptr noundef nonnull align 8 dereferenceable(17) %125, i64 17, i1 false) %126 = getelementptr inbounds nuw i8, ptr %6, i64 96 - %127 = load i32, ptr %126, align 8, !tbaa !105 + %127 = load i32, ptr %126, align 8, !tbaa !104 %128 = add nsw i32 %127, 1 - store i32 %128, ptr %126, align 8, !tbaa !105 + store i32 %128, ptr %126, align 8, !tbaa !104 %129 = getelementptr inbounds nuw i8, ptr %6, i64 100 - %130 = load i32, ptr %129, align 4, !tbaa !106 + %130 = load i32, ptr %129, align 4, !tbaa !105 %131 = add nsw i32 %130, 1 - store i32 %131, ptr %129, align 4, !tbaa !106 + store i32 %131, ptr %129, align 4, !tbaa !105 invoke void @_ZN5ceres8internal18LineSearchFunction8EvaluateEdbPNS0_14FunctionSampleE(ptr noundef nonnull align 8 dereferenceable(80) %32, double noundef %2, i1 noundef zeroext true, ptr noundef nonnull %18) to label %.preheader unwind label %287 @@ -4615,9 +4605,9 @@ thread-pre-split.i.i.i.i.i.i.i7.i: ; preds = %_ZN5Eigen6MatrixIdL br label %163 163: ; preds = %.preheader, %822 - %164 = load i32, ptr %132, align 8, !tbaa !108 + %164 = load i32, ptr %132, align 8, !tbaa !107 %165 = add nsw i32 %164, 1 - store i32 %165, ptr %132, align 8, !tbaa !108 + store i32 %165, ptr %132, align 8, !tbaa !107 %166 = load i8, ptr %133, align 8, !tbaa !53, !range !76, !noundef !77 %167 = trunc nuw i8 %166 to i1 br i1 %167, label %168, label %.thread458 @@ -4625,7 +4615,7 @@ thread-pre-split.i.i.i.i.i.i.i7.i: ; preds = %_ZN5Eigen6MatrixIdL 168: ; preds = %163 %169 = load double, ptr %135, align 8, !tbaa !58 %170 = load double, ptr %136, align 8, !tbaa !58 - %171 = load double, ptr %137, align 8, !tbaa !107 + %171 = load double, ptr %137, align 8, !tbaa !106 %172 = load double, ptr %138, align 8, !tbaa !61 %173 = fmul double %171, %172 %174 = load double, ptr %18, align 8, !tbaa !50 @@ -4848,7 +4838,7 @@ thread-pre-split.i.i.i.i.i.i.i7.i177: ; preds = %_ZN5Eigen6MatrixIdL call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #32 %267 = load atomic i32, ptr getelementptr inbounds nuw (i8, ptr @"_ZZZNK5ceres8internal15WolfeLineSearch15BracketingPhaseERKNS0_14FunctionSampleEdPS2_S5_PbPNS0_10LineSearch7SummaryEENK3$_0clEvE4site", i64 8) monotonic, align 8 %268 = icmp slt i32 %267, 3 - br i1 %268, label %_ZN4absl12lts_2024011612log_internal8VLogSite9IsEnabledEi.exit.thread, label %269, !prof !82 + br i1 %268, label %_ZN4absl12lts_2024011612log_internal8VLogSite9IsEnabledEi.exit.thread, label %269, !prof !81 269: ; preds = %.loopexit %270 = invoke noundef zeroext i1 @_ZN4absl12lts_2024011612log_internal8VLogSite14SlowIsEnabled3Ei(ptr noundef nonnull align 8 dereferenceable(24) @"_ZZZNK5ceres8internal15WolfeLineSearch15BracketingPhaseERKNS0_14FunctionSampleEdPS2_S5_PbPNS0_10LineSearch7SummaryEENK3$_0clEvE4site", i32 noundef %267) @@ -4954,7 +4944,7 @@ _ZN4absl12lts_2024011612log_internal8VLogSite9IsEnabledEi.exit.thread: ; preds = 299: ; preds = %177 %300 = load double, ptr %141, align 8, !tbaa !61 %301 = call double @llvm.fabs.f64(double %300) - %302 = load double, ptr %142, align 8, !tbaa !121 + %302 = load double, ptr %142, align 8, !tbaa !120 %303 = fneg double %302 %304 = fmul double %172, %303 %305 = fcmp ugt double %301, %304 @@ -5165,7 +5155,7 @@ thread-pre-split.i.i.i.i.i.i.i7.i225: ; preds = %_ZN5Eigen6MatrixIdL call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #32 %390 = load atomic i32, ptr getelementptr inbounds nuw (i8, ptr @"_ZZZNK5ceres8internal15WolfeLineSearch15BracketingPhaseERKNS0_14FunctionSampleEdPS2_S5_PbPNS0_10LineSearch7SummaryEENK3$_1clEvE4site", i64 8) monotonic, align 8 %391 = icmp slt i32 %390, 3 - br i1 %391, label %_ZN4absl12lts_2024011612log_internal8VLogSite9IsEnabledEi.exit140.thread, label %392, !prof !82 + br i1 %391, label %_ZN4absl12lts_2024011612log_internal8VLogSite9IsEnabledEi.exit140.thread, label %392, !prof !81 392: ; preds = %.loopexit469 %393 = invoke noundef zeroext i1 @_ZN4absl12lts_2024011612log_internal8VLogSite14SlowIsEnabled3Ei(ptr noundef nonnull align 8 dereferenceable(24) @"_ZZZNK5ceres8internal15WolfeLineSearch15BracketingPhaseERKNS0_14FunctionSampleEdPS2_S5_PbPNS0_10LineSearch7SummaryEENK3$_1clEvE4site", i32 noundef %390) @@ -5470,7 +5460,7 @@ thread-pre-split.i.i.i.i.i.i.i7.i274: ; preds = %_ZN5Eigen6MatrixIdL call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %504, ptr noundef nonnull align 8 dereferenceable(17) %158, i64 17, i1 false) %505 = load atomic i32, ptr getelementptr inbounds nuw (i8, ptr @"_ZZZNK5ceres8internal15WolfeLineSearch15BracketingPhaseERKNS0_14FunctionSampleEdPS2_S5_PbPNS0_10LineSearch7SummaryEENK3$_2clEvE4site", i64 8) monotonic, align 8 %506 = icmp slt i32 %505, 3 - br i1 %506, label %.critedge130, label %507, !prof !82 + br i1 %506, label %.critedge130, label %507, !prof !81 507: ; preds = %.loopexit467 %508 = invoke noundef zeroext i1 @_ZN4absl12lts_2024011612log_internal8VLogSite14SlowIsEnabled3Ei(ptr noundef nonnull align 8 dereferenceable(24) @"_ZZZNK5ceres8internal15WolfeLineSearch15BracketingPhaseERKNS0_14FunctionSampleEdPS2_S5_PbPNS0_10LineSearch7SummaryEENK3$_2clEvE4site", i32 noundef %505) @@ -5539,12 +5529,12 @@ _ZN4absl12lts_2024011612log_internal10LogMessagelsILi61EEERS2_RAT__Kc.exit: ; pr %525 = fsub double %174, %524 %526 = call double @llvm.fabs.f64(double %525) %527 = fmul double %.0.i.i.i, %526 - %528 = load double, ptr %143, align 8, !tbaa !117 + %528 = load double, ptr %143, align 8, !tbaa !116 %529 = fcmp olt double %527, %528 br i1 %529, label %530, label %591 530: ; preds = %523 - %531 = load i8, ptr %154, align 8, !tbaa !114, !range !76, !noundef !77 + %531 = load i8, ptr %154, align 8, !tbaa !113, !range !76, !noundef !77 %532 = trunc nuw i8 %531 to i1 br i1 %532, label %551, label %533 @@ -5577,7 +5567,7 @@ _ZN4absl12lts_2024011612log_internal10LogMessagelsILi16EEERS2_RAT__Kc.exit: ; pr to label %_ZN4absl12lts_2024011612log_internal10LogMessagelsILi19EEERS2_RAT__Kc.exit unwind label %548 _ZN4absl12lts_2024011612log_internal10LogMessagelsILi19EEERS2_RAT__Kc.exit: ; preds = %540 - %541 = load double, ptr %143, align 8, !tbaa !117 + %541 = load double, ptr %143, align 8, !tbaa !116 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) store double %541, ptr %12, align 8, !tbaa !18 %542 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN4absl12lts_2024011612log_internal10LogMessagelsIdTnNSt9enable_ifIXntsr4absl16HasAbslStringifyIT_EE5valueEiE4typeELi0EEERS2_RKS5_(ptr noundef nonnull align 8 dereferenceable(16) %539, ptr noundef nonnull align 8 dereferenceable(8) %12) @@ -5739,12 +5729,12 @@ _ZN5ceres8internal14FunctionSampleaSERKS1_.exit332: ; preds = %.lr.ph.i.i.i.i.i. br label %.critedge130 591: ; preds = %523 - %592 = load i32, ptr %134, align 8, !tbaa !103 + %592 = load i32, ptr %134, align 8, !tbaa !102 %.not = icmp slt i32 %165, %592 br i1 %.not, label %705, label %596 .thread458: ; preds = %163 - %593 = load i32, ptr %134, align 8, !tbaa !103 + %593 = load i32, ptr %134, align 8, !tbaa !102 %.not459 = icmp slt i32 %165, %593 br i1 %.not459, label %.thread460, label %596 @@ -5756,17 +5746,17 @@ _ZN5ceres8internal14FunctionSampleaSERKS1_.exit332: ; preds = %.lr.ph.i.i.i.i.i. 596: ; preds = %.thread458, %591 %597 = phi i32 [ %593, %.thread458 ], [ %592, %591 ] call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #32 - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #32, !noalias !122 + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #32, !noalias !121 %.sroa.0.0.insert.ext.i.i.i.i = zext i32 %597 to i64 %598 = inttoptr i64 %.sroa.0.0.insert.ext.i.i.i.i to ptr - store ptr %598, ptr %10, align 8, !tbaa !12, !noalias !122 + store ptr %598, ptr %10, align 8, !tbaa !12, !noalias !121 %599 = getelementptr inbounds nuw i8, ptr %10, i64 8 - store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIiEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %599, align 8, !tbaa !112, !noalias !122 + store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIiEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %599, align 8, !tbaa !111, !noalias !121 invoke void @_ZN4absl12lts_2024011619str_format_internal10FormatPackB5cxx11ENS1_21UntypedFormatSpecImplENS0_4SpanIKNS1_13FormatArgImplEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr nonnull @.str.46, i64 178, ptr nonnull %10, i64 1) to label %600 unwind label %648 600: ; preds = %596 - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #32, !noalias !122 + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #32, !noalias !121 %601 = load ptr, ptr %149, align 8, !tbaa !3 %602 = icmp eq ptr %601, %150 br i1 %602, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i @@ -5873,7 +5863,7 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #32 - %642 = load i8, ptr %154, align 8, !tbaa !114, !range !76, !noundef !77 + %642 = load i8, ptr %154, align 8, !tbaa !113, !range !76, !noundef !77 %643 = trunc nuw i8 %642 to i1 br i1 %643, label %655, label %644 @@ -6037,7 +6027,7 @@ _ZN5ceres8internal14FunctionSampleaSERKS1_.exit355: ; preds = %.lr.ph.i.i.i.i.i. br label %.critedge130 705: ; preds = %591 - %706 = load double, ptr %144, align 8, !tbaa !125 + %706 = load double, ptr %144, align 8, !tbaa !124 %707 = fmul double %174, %706 br label %708 @@ -6080,22 +6070,22 @@ _ZN5ceres8internal14FunctionSampleaSERKS1_.exit355: ; preds = %.lr.ph.i.i.i.i.i. 722: ; preds = %719 %723 = fmul double %714, %.0.i.i.i - %724 = load double, ptr %143, align 8, !tbaa !117 + %724 = load double, ptr %143, align 8, !tbaa !116 %725 = fcmp uge double %723, %724 br i1 %725, label %780, label %726 726: ; preds = %722 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #32 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #32, !noalias !126 - store ptr %717, ptr %8, align 8, !tbaa !12, !noalias !126 - store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %146, align 8, !tbaa !112, !noalias !126 - store ptr %162, ptr %147, align 8, !tbaa !12, !noalias !126 - store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %148, align 8, !tbaa !112, !noalias !126 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #32, !noalias !125 + store ptr %717, ptr %8, align 8, !tbaa !12, !noalias !125 + store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %146, align 8, !tbaa !111, !noalias !125 + store ptr %162, ptr %147, align 8, !tbaa !12, !noalias !125 + store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %148, align 8, !tbaa !111, !noalias !125 invoke void @_ZN4absl12lts_2024011619str_format_internal10FormatPackB5cxx11ENS1_21UntypedFormatSpecImplENS0_4SpanIKNS1_13FormatArgImplEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr nonnull @.str.47, i64 83, ptr nonnull %8, i64 2) to label %727 unwind label %773 727: ; preds = %726 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #32, !noalias !126 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #32, !noalias !125 %728 = load ptr, ptr %149, align 8, !tbaa !3 %729 = icmp eq ptr %728, %150 br i1 %729, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i367, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i361 @@ -6193,7 +6183,7 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i37 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit372: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i371, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i370 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #32 - %761 = load i8, ptr %154, align 8, !tbaa !114, !range !76, !noundef !77 + %761 = load i8, ptr %154, align 8, !tbaa !113, !range !76, !noundef !77 %762 = trunc nuw i8 %761 to i1 br i1 %762, label %822, label %763 @@ -6361,12 +6351,12 @@ thread-pre-split.i.i.i.i.i.i.i7.i379: ; preds = %_ZN5Eigen6MatrixIdL .loopexit471: ; preds = %.lr.ph.i.i.i.i.i.i.i.i.i10.i382, %._crit_edge.i.i.i.i.i.i.i.i9.i381 %..sroa.sel443 = select i1 %782, ptr %.sroa.gep426, ptr %158 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %158, ptr noundef nonnull align 8 dereferenceable(17) %..sroa.sel443, i64 17, i1 false) - %818 = load i32, ptr %126, align 8, !tbaa !105 + %818 = load i32, ptr %126, align 8, !tbaa !104 %819 = add nsw i32 %818, 1 - store i32 %819, ptr %126, align 8, !tbaa !105 - %820 = load i32, ptr %129, align 4, !tbaa !106 + store i32 %819, ptr %126, align 8, !tbaa !104 + %820 = load i32, ptr %129, align 4, !tbaa !105 %821 = add nsw i32 %820, 1 - store i32 %821, ptr %129, align 4, !tbaa !106 + store i32 %821, ptr %129, align 4, !tbaa !105 invoke void @_ZN5ceres8internal18LineSearchFunction8EvaluateEdbPNS0_14FunctionSampleE(ptr noundef nonnull align 8 dereferenceable(80) %32, double noundef %714, i1 noundef zeroext true, ptr noundef nonnull %18) to label %822 unwind label %771 @@ -6376,7 +6366,7 @@ thread-pre-split.i.i.i.i.i.i.i7.i379: ; preds = %_ZN5Eigen6MatrixIdL %824 = load ptr, ptr %160, align 8, !tbaa !45 call void @free(ptr noundef %824) #32 call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %27) #32 - br i1 %725, label %163, label %.loopexit472, !llvm.loop !129 + br i1 %725, label %163, label %.loopexit472, !llvm.loop !128 825: ; preds = %771, %773, %779, %769 %.pn.pn.pn = phi { ptr, i32 } [ %770, %769 ], [ %.pn, %779 ], [ %774, %773 ], [ %772, %771 ] @@ -6402,7 +6392,7 @@ thread-pre-split.i.i.i.i.i.i.i7.i379: ; preds = %_ZN5Eigen6MatrixIdL %834 = fsub double %832, %833 %835 = call double @llvm.fabs.f64(double %834) %836 = fmul double %.0.i.i.i, %835 - %837 = load double, ptr %143, align 8, !tbaa !117 + %837 = load double, ptr %143, align 8, !tbaa !116 %838 = fcmp olt double %836, %837 br i1 %838, label %839, label %.loopexit472 @@ -6483,18 +6473,18 @@ define hidden noundef zeroext i1 @_ZNK5ceres8internal15WolfeLineSearch9ZoomPhase %32 = alloca %"struct.std::_Setprecision", align 4 %33 = getelementptr inbounds nuw i8, ptr %0, i64 8 %34 = getelementptr inbounds nuw i8, ptr %0, i64 80 - %35 = load ptr, ptr %34, align 8, !tbaa !80 + %35 = load ptr, ptr %34, align 8, !tbaa !79 %36 = getelementptr inbounds nuw i8, ptr %2, i64 40 %37 = load i8, ptr %36, align 8, !tbaa !53, !range !76, !noundef !77 %38 = trunc nuw i8 %37 to i1 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #32 - br i1 %38, label %39, label %.thread, !prof !82 + br i1 %38, label %39, label %.thread, !prof !81 39: ; preds = %6 %40 = getelementptr inbounds nuw i8, ptr %2, i64 80 %41 = load i8, ptr %40, align 8, !tbaa !54, !range !76, !noundef !77 %42 = trunc nuw i8 %41 to i1 - br i1 %42, label %57, label %.thread, !prof !130 + br i1 %42, label %57, label %.thread, !prof !129 .thread: ; preds = %6, %39 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #32 @@ -6557,7 +6547,7 @@ _ZN4absl12lts_2024011612log_internal10LogMessagelsILi17EEERS2_RAT__Kc.exit: ; pr %59 = load i8, ptr %58, align 8, !tbaa !53, !range !76, !noundef !77 %60 = trunc nuw i8 %59 to i1 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #32 - br i1 %60, label %77, label %61, !prof !82 + br i1 %60, label %77, label %61, !prof !81 61: ; preds = %57 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #32 @@ -6645,27 +6635,27 @@ _ZN4absl12lts_2024011612log_internal10LogMessagelsILi17EEERS2_RAT__Kc.exit154: ; to label %89 unwind label %177 89: ; preds = %88 - call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %13) #32, !noalias !131 - store ptr %87, ptr %13, align 8, !tbaa !12, !noalias !131 + call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %13) #32, !noalias !130 + store ptr %87, ptr %13, align 8, !tbaa !12, !noalias !130 %90 = getelementptr inbounds nuw i8, ptr %13, i64 8 - store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %90, align 8, !tbaa !112, !noalias !131 + store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %90, align 8, !tbaa !111, !noalias !130 %91 = getelementptr inbounds nuw i8, ptr %13, i64 16 - store ptr %19, ptr %91, align 8, !tbaa !12, !noalias !131 + store ptr %19, ptr %91, align 8, !tbaa !12, !noalias !130 %92 = getelementptr inbounds nuw i8, ptr %13, i64 24 - store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %92, align 8, !tbaa !112, !noalias !131 + store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %92, align 8, !tbaa !111, !noalias !130 %93 = getelementptr inbounds nuw i8, ptr %13, i64 32 - store ptr %20, ptr %93, align 8, !tbaa !12, !noalias !131 + store ptr %20, ptr %93, align 8, !tbaa !12, !noalias !130 %94 = getelementptr inbounds nuw i8, ptr %13, i64 40 - store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %94, align 8, !tbaa !112, !noalias !131 + store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %94, align 8, !tbaa !111, !noalias !130 %95 = getelementptr inbounds nuw i8, ptr %13, i64 48 - store ptr %21, ptr %95, align 8, !tbaa !12, !noalias !131 + store ptr %21, ptr %95, align 8, !tbaa !12, !noalias !130 %96 = getelementptr inbounds nuw i8, ptr %13, i64 56 - store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %96, align 8, !tbaa !112, !noalias !131 + store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %96, align 8, !tbaa !111, !noalias !130 invoke void @_ZN4absl12lts_2024011619str_format_internal10FormatPackB5cxx11ENS1_21UntypedFormatSpecImplENS0_4SpanIKNS1_13FormatArgImplEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr nonnull @.str.55, i64 314, ptr nonnull %13, i64 4) to label %97 unwind label %179 97: ; preds = %89 - call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #32, !noalias !131 + call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #32, !noalias !130 %98 = getelementptr inbounds nuw i8, ptr %5, i64 160 %99 = load ptr, ptr %98, align 8, !tbaa !3 %100 = getelementptr inbounds nuw i8, ptr %5, i64 176 @@ -6838,7 +6828,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit164: ; preds = %_Z call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #32 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #32 %168 = getelementptr inbounds nuw i8, ptr %0, i64 72 - %169 = load i8, ptr %168, align 8, !tbaa !114, !range !76, !noundef !77 + %169 = load i8, ptr %168, align 8, !tbaa !113, !range !76, !noundef !77 %170 = trunc nuw i8 %169 to i1 br i1 %170, label %207, label %171 @@ -6949,7 +6939,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit173: ; preds = %_Z 209: ; preds = %77 %210 = getelementptr inbounds nuw i8, ptr %5, i64 104 - %211 = load i32, ptr %210, align 8, !tbaa !108 + %211 = load i32, ptr %210, align 8, !tbaa !107 %212 = getelementptr inbounds nuw i8, ptr %35, i64 32 %213 = load i64, ptr %212, align 8, !tbaa !46 %214 = icmp eq i64 %213, 0 @@ -7171,27 +7161,27 @@ thread-pre-split.i.i.i.i.i.i.i7.i: ; preds = %_ZN5Eigen6MatrixIdL _ZN5ceres8internal14FunctionSampleaSERKS1_.exit: ; preds = %.lr.ph.i.i.i.i.i.i.i.i.i10.i, %._crit_edge.i.i.i.i.i.i.i.i9.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %269, ptr noundef nonnull align 8 dereferenceable(17) %270, i64 17, i1 false) - %335 = load i32, ptr %210, align 8, !tbaa !108 - %336 = load i32, ptr %271, align 8, !tbaa !103 + %335 = load i32, ptr %210, align 8, !tbaa !107 + %336 = load i32, ptr %271, align 8, !tbaa !102 %.not = icmp slt i32 %335, %336 br i1 %.not, label %397, label %337 337: ; preds = %_ZN5ceres8internal14FunctionSampleaSERKS1_.exit call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #32 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #32, !noalias !134 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #32, !noalias !133 %.sroa.0.0.insert.ext.i.i.i.i = zext i32 %336 to i64 %338 = inttoptr i64 %.sroa.0.0.insert.ext.i.i.i.i to ptr - store ptr %338, ptr %12, align 8, !tbaa !12, !noalias !134 + store ptr %338, ptr %12, align 8, !tbaa !12, !noalias !133 %339 = getelementptr inbounds nuw i8, ptr %12, i64 8 - store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIiEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %339, align 8, !tbaa !112, !noalias !134 + store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIiEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %339, align 8, !tbaa !111, !noalias !133 %340 = getelementptr inbounds nuw i8, ptr %12, i64 16 %.sroa.0.0.insert.ext.i.i.i6.i = zext i32 %211 to i64 %341 = inttoptr i64 %.sroa.0.0.insert.ext.i.i.i6.i to ptr - store ptr %341, ptr %340, align 8, !tbaa !12, !noalias !134 + store ptr %341, ptr %340, align 8, !tbaa !12, !noalias !133 %342 = getelementptr inbounds nuw i8, ptr %12, i64 24 - store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIiEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %342, align 8, !tbaa !112, !noalias !134 + store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIiEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %342, align 8, !tbaa !111, !noalias !133 call void @_ZN4absl12lts_2024011619str_format_internal10FormatPackB5cxx11ENS1_21UntypedFormatSpecImplENS0_4SpanIKNS1_13FormatArgImplEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr nonnull @.str.56, i64 178, ptr nonnull %12, i64 2) - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #32, !noalias !134 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #32, !noalias !133 %343 = getelementptr inbounds nuw i8, ptr %5, i64 160 %344 = load ptr, ptr %343, align 8, !tbaa !3 %345 = getelementptr inbounds nuw i8, ptr %5, i64 176 @@ -7304,7 +7294,7 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i18 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit189: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i188, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i187 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #32 %389 = getelementptr inbounds nuw i8, ptr %0, i64 72 - %390 = load i8, ptr %389, align 8, !tbaa !114, !range !76, !noundef !77 + %390 = load i8, ptr %389, align 8, !tbaa !113, !range !76, !noundef !77 %391 = trunc nuw i8 %390 to i1 br i1 %391, label %767, label %392 @@ -7332,24 +7322,24 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit189: ; preds = %_Z %400 = fsub double %398, %399 %401 = call double @llvm.fabs.f64(double %400) %402 = fmul double %.0..0., %401 - %403 = load double, ptr %272, align 8, !tbaa !117 + %403 = load double, ptr %272, align 8, !tbaa !116 %404 = fcmp olt double %402, %403 br i1 %404, label %405, label %465 405: ; preds = %397 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #32 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #32, !noalias !137 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #32, !noalias !136 %406 = bitcast double %401 to i64 %407 = inttoptr i64 %406 to ptr - store ptr %407, ptr %11, align 8, !tbaa !12, !noalias !137 + store ptr %407, ptr %11, align 8, !tbaa !12, !noalias !136 %408 = getelementptr inbounds nuw i8, ptr %11, i64 8 - store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %408, align 8, !tbaa !112, !noalias !137 + store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %408, align 8, !tbaa !111, !noalias !136 %409 = getelementptr inbounds nuw i8, ptr %11, i64 16 - store ptr %294, ptr %409, align 8, !tbaa !12, !noalias !137 + store ptr %294, ptr %409, align 8, !tbaa !12, !noalias !136 %410 = getelementptr inbounds nuw i8, ptr %11, i64 24 - store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %410, align 8, !tbaa !112, !noalias !137 + store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %410, align 8, !tbaa !111, !noalias !136 call void @_ZN4absl12lts_2024011619str_format_internal10FormatPackB5cxx11ENS1_21UntypedFormatSpecImplENS0_4SpanIKNS1_13FormatArgImplEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr nonnull @.str.57, i64 99, ptr nonnull %11, i64 2) - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #32, !noalias !137 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #32, !noalias !136 %411 = getelementptr inbounds nuw i8, ptr %5, i64 160 %412 = load ptr, ptr %411, align 8, !tbaa !3 %413 = getelementptr inbounds nuw i8, ptr %5, i64 176 @@ -7462,7 +7452,7 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i20 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit206: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i205, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i204 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #32 %457 = getelementptr inbounds nuw i8, ptr %0, i64 72 - %458 = load i8, ptr %457, align 8, !tbaa !114, !range !76, !noundef !77 + %458 = load i8, ptr %457, align 8, !tbaa !113, !range !76, !noundef !77 %459 = trunc nuw i8 %458 to i1 br i1 %459, label %767, label %460 @@ -7486,7 +7476,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit206: ; preds = %_Z 465: ; preds = %397 %466 = add nsw i32 %335, 1 - store i32 %466, ptr %210, align 8, !tbaa !108 + store i32 %466, ptr %210, align 8, !tbaa !107 call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %27) #32 call void @_ZN5ceres8internal14FunctionSampleC1Ev(ptr noundef nonnull align 8 dereferenceable(81) %27) %467 = invoke { i64, i32 } @_ZN4absl12lts_202401163NowEv() @@ -7522,12 +7512,12 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit206: ; preds = %_Z to label %479 unwind label %552 479: ; preds = %476 - %480 = load i32, ptr %274, align 8, !tbaa !105 + %480 = load i32, ptr %274, align 8, !tbaa !104 %481 = add nsw i32 %480, 1 - store i32 %481, ptr %274, align 8, !tbaa !105 - %482 = load i32, ptr %275, align 4, !tbaa !106 + store i32 %481, ptr %274, align 8, !tbaa !104 + %482 = load i32, ptr %275, align 4, !tbaa !105 %483 = add nsw i32 %482, 1 - store i32 %483, ptr %275, align 4, !tbaa !106 + store i32 %483, ptr %275, align 4, !tbaa !105 invoke void @_ZN5ceres8internal18LineSearchFunction8EvaluateEdbPNS0_14FunctionSampleE(ptr noundef nonnull align 8 dereferenceable(80) %35, double noundef %473, i1 noundef zeroext true, ptr noundef nonnull %4) to label %484 unwind label %554 @@ -7543,26 +7533,26 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit206: ; preds = %_Z 490: ; preds = %484, %487 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #32 - call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %9) #32, !noalias !140 - %.sroa.0.0.copyload.i.i.i.i210 = load ptr, ptr %4, align 8, !noalias !140 - store ptr %.sroa.0.0.copyload.i.i.i.i210, ptr %9, align 8, !tbaa !12, !noalias !140 + call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %9) #32, !noalias !139 + %.sroa.0.0.copyload.i.i.i.i210 = load ptr, ptr %4, align 8, !noalias !139 + store ptr %.sroa.0.0.copyload.i.i.i.i210, ptr %9, align 8, !tbaa !12, !noalias !139 %491 = getelementptr inbounds nuw i8, ptr %9, i64 8 - store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %491, align 8, !tbaa !112, !noalias !140 + store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %491, align 8, !tbaa !111, !noalias !139 %492 = getelementptr inbounds nuw i8, ptr %9, i64 16 - %.sroa.0.0.copyload.i.i.i6.i = load ptr, ptr %2, align 8, !noalias !140 - store ptr %.sroa.0.0.copyload.i.i.i6.i, ptr %492, align 8, !tbaa !12, !noalias !140 + %.sroa.0.0.copyload.i.i.i6.i = load ptr, ptr %2, align 8, !noalias !139 + store ptr %.sroa.0.0.copyload.i.i.i6.i, ptr %492, align 8, !tbaa !12, !noalias !139 %493 = getelementptr inbounds nuw i8, ptr %9, i64 24 - store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %493, align 8, !tbaa !112, !noalias !140 + store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %493, align 8, !tbaa !111, !noalias !139 %494 = getelementptr inbounds nuw i8, ptr %9, i64 32 - %.sroa.0.0.copyload.i.i.i7.i = load ptr, ptr %3, align 8, !noalias !140 - store ptr %.sroa.0.0.copyload.i.i.i7.i, ptr %494, align 8, !tbaa !12, !noalias !140 + %.sroa.0.0.copyload.i.i.i7.i = load ptr, ptr %3, align 8, !noalias !139 + store ptr %.sroa.0.0.copyload.i.i.i7.i, ptr %494, align 8, !tbaa !12, !noalias !139 %495 = getelementptr inbounds nuw i8, ptr %9, i64 40 - store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %495, align 8, !tbaa !112, !noalias !140 + store ptr @_ZN4absl12lts_2024011619str_format_internal13FormatArgImpl8DispatchIdEEbNS2_4DataENS1_24FormatConversionSpecImplEPv, ptr %495, align 8, !tbaa !111, !noalias !139 invoke void @_ZN4absl12lts_2024011619str_format_internal10FormatPackB5cxx11ENS1_21UntypedFormatSpecImplENS0_4SpanIKNS1_13FormatArgImplEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr nonnull @.str.58, i64 161, ptr nonnull %9, i64 3) to label %496 unwind label %556 496: ; preds = %490 - call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #32, !noalias !140 + call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #32, !noalias !139 %497 = getelementptr inbounds nuw i8, ptr %5, i64 160 %498 = load ptr, ptr %497, align 8, !tbaa !3 %499 = getelementptr inbounds nuw i8, ptr %5, i64 176 @@ -7675,7 +7665,7 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i22 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit223: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i222, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i221 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #32 %543 = getelementptr inbounds nuw i8, ptr %0, i64 72 - %544 = load i8, ptr %543, align 8, !tbaa !114, !range !76, !noundef !77 + %544 = load i8, ptr %543, align 8, !tbaa !113, !range !76, !noundef !77 %545 = trunc nuw i8 %544 to i1 br i1 %545, label %.critedge139.thread328, label %546 @@ -7733,7 +7723,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit223: ; preds = %_Z 563: ; preds = %487 %564 = load atomic i32, ptr getelementptr inbounds nuw (i8, ptr @"_ZZZNK5ceres8internal15WolfeLineSearch9ZoomPhaseERKNS0_14FunctionSampleES2_S2_PS2_PNS0_10LineSearch7SummaryEENK3$_0clEvE4site", i64 8) monotonic, align 8 %565 = icmp slt i32 %564, 3 - br i1 %565, label %.critedge135, label %566, !prof !82 + br i1 %565, label %.critedge135, label %566, !prof !81 566: ; preds = %563 %567 = invoke noundef zeroext i1 @_ZN4absl12lts_2024011612log_internal8VLogSite14SlowIsEnabled3Ei(ptr noundef nonnull align 8 dereferenceable(24) @"_ZZZNK5ceres8internal15WolfeLineSearch9ZoomPhaseERKNS0_14FunctionSampleES2_S2_PS2_PNS0_10LineSearch7SummaryEENK3$_0clEvE4site", i32 noundef %564) @@ -7756,7 +7746,7 @@ _ZN4absl12lts_2024011612log_internal8VLogSite9IsEnabledEi.exit142: ; preds = %56 to label %_ZN4absl12lts_2024011612log_internal10LogMessagelsILi17EEERS2_RAT__Kc.exit225 unwind label %635 _ZN4absl12lts_2024011612log_internal10LogMessagelsILi17EEERS2_RAT__Kc.exit225: ; preds = %571 - %572 = load i32, ptr %210, align 8, !tbaa !108 + %572 = load i32, ptr %210, align 8, !tbaa !107 %573 = sub nsw i32 %572, %211 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) store i32 %573, ptr %8, align 4, !tbaa !20 @@ -7796,7 +7786,7 @@ _ZN4absl12lts_2024011612log_internal10LogMessagelsILi24EEERS2_RAT__Kc.exit: ; pr .critedge135: ; preds = %563, %_ZN4absl12lts_2024011612log_internal8VLogSite9IsEnabledEi.exit142, %.critedge134 %581 = load double, ptr %278, align 8, !tbaa !58 %582 = load double, ptr %279, align 8, !tbaa !58 - %583 = load double, ptr %280, align 8, !tbaa !107 + %583 = load double, ptr %280, align 8, !tbaa !106 %584 = load double, ptr %281, align 8, !tbaa !61 %585 = fmul double %583, %584 %586 = load double, ptr %4, align 8, !tbaa !50 @@ -7929,7 +7919,7 @@ thread-pre-split.i.i.i.i.i.i.i7.i238: ; preds = %_ZN5Eigen6MatrixIdL 638: ; preds = %589 %639 = load double, ptr %283, align 8, !tbaa !61 %640 = call double @llvm.fabs.f64(double %639) - %641 = load double, ptr %284, align 8, !tbaa !121 + %641 = load double, ptr %284, align 8, !tbaa !120 %642 = fneg double %641 %643 = fmul double %584, %642 %644 = fcmp ugt double %640, %643 @@ -7939,7 +7929,7 @@ thread-pre-split.i.i.i.i.i.i.i7.i238: ; preds = %_ZN5Eigen6MatrixIdL call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #32 %646 = load atomic i32, ptr getelementptr inbounds nuw (i8, ptr @"_ZZZNK5ceres8internal15WolfeLineSearch9ZoomPhaseERKNS0_14FunctionSampleES2_S2_PS2_PNS0_10LineSearch7SummaryEENK3$_1clEvE4site", i64 8) monotonic, align 8 %647 = icmp slt i32 %646, 3 - br i1 %647, label %_ZN4absl12lts_2024011612log_internal8VLogSite9IsEnabledEi.exit.thread, label %648, !prof !82 + br i1 %647, label %_ZN4absl12lts_2024011612log_internal8VLogSite9IsEnabledEi.exit.thread, label %648, !prof !81 648: ; preds = %645 %649 = invoke noundef zeroext i1 @_ZN4absl12lts_2024011612log_internal8VLogSite14SlowIsEnabled3Ei(ptr noundef nonnull align 8 dereferenceable(24) @"_ZZZNK5ceres8internal15WolfeLineSearch9ZoomPhaseERKNS0_14FunctionSampleES2_S2_PS2_PNS0_10LineSearch7SummaryEENK3$_1clEvE4site", i32 noundef %646) @@ -8423,10 +8413,10 @@ define linkonce_odr hidden void @_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11c .lr.ph: ; preds = %2, %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N5ceres8internal14CallStatisticsEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE12_M_drop_nodeEPSt13_Rb_tree_nodeISB_E.exit %.07 = phi ptr [ %6, %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N5ceres8internal14CallStatisticsEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE12_M_drop_nodeEPSt13_Rb_tree_nodeISB_E.exit ], [ %1, %2 ] %3 = getelementptr inbounds nuw i8, ptr %.07, i64 24 - %4 = load ptr, ptr %3, align 8, !tbaa !143 + %4 = load ptr, ptr %3, align 8, !tbaa !142 tail call void @_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N5ceres8internal14CallStatisticsEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE8_M_eraseEPSt13_Rb_tree_nodeISB_E(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef %4) %5 = getelementptr inbounds nuw i8, ptr %.07, i64 16 - %6 = load ptr, ptr %5, align 8, !tbaa !144 + %6 = load ptr, ptr %5, align 8, !tbaa !143 %7 = getelementptr inbounds nuw i8, ptr %.07, i64 32 %8 = load ptr, ptr %7, align 8, !tbaa !3 %9 = getelementptr inbounds nuw i8, ptr %.07, i64 48 @@ -8449,7 +8439,7 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i _ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N5ceres8internal14CallStatisticsEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE12_M_drop_nodeEPSt13_Rb_tree_nodeISB_E.exit: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i tail call void @_ZdlPvm(ptr noundef nonnull %.07, i64 noundef 80) #33 %.not = icmp eq ptr %6, null - br i1 %.not, label %._crit_edge, label %.lr.ph, !llvm.loop !145 + br i1 %.not, label %._crit_edge, label %.lr.ph, !llvm.loop !144 ._crit_edge: ; preds = %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N5ceres8internal14CallStatisticsEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE12_M_drop_nodeEPSt13_Rb_tree_nodeISB_E.exit, %2 ret void @@ -8506,8 +8496,8 @@ declare void @_ZN4absl12lts_2024011612log_internal10LogMessage19CopyToEncodedBuf ; Function Attrs: mustprogress uwtable define linkonce_odr hidden void @_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr %1, ptr noundef nonnull align 8 dereferenceable(81) %2) local_unnamed_addr #0 comdat align 2 personality ptr @__gxx_personality_v0 { %4 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %5 = load ptr, ptr %4, align 8, !tbaa !84 - %6 = load ptr, ptr %0, align 8, !tbaa !88 + %5 = load ptr, ptr %4, align 8, !tbaa !83 + %6 = load ptr, ptr %0, align 8, !tbaa !87 %7 = ptrtoint ptr %5 to i64 %8 = ptrtoint ptr %6 to i64 %9 = sub i64 %7, %8 @@ -8542,38 +8532,38 @@ _ZNSt16allocator_traitsISaIN5ceres8internal14FunctionSampleEEE9constructIS2_JRKS .lr.ph.i.i.i: ; preds = %_ZNSt16allocator_traitsISaIN5ceres8internal14FunctionSampleEEE9constructIS2_JRKS2_EEEvRS3_PT_DpOT0_.exit, %.lr.ph.i.i.i %.012.i.i.i = phi ptr [ %40, %.lr.ph.i.i.i ], [ %20, %_ZNSt16allocator_traitsISaIN5ceres8internal14FunctionSampleEEE9constructIS2_JRKS2_EEEvRS3_PT_DpOT0_.exit ] %.0911.i.i.i = phi ptr [ %39, %.lr.ph.i.i.i ], [ %6, %_ZNSt16allocator_traitsISaIN5ceres8internal14FunctionSampleEEE9constructIS2_JRKS2_EEEvRS3_PT_DpOT0_.exit ] - tail call void @llvm.experimental.noalias.scope.decl(metadata !146) - tail call void @llvm.experimental.noalias.scope.decl(metadata !149) - %22 = load double, ptr %.0911.i.i.i, align 8, !tbaa !50, !alias.scope !149, !noalias !146 - store double %22, ptr %.012.i.i.i, align 8, !tbaa !50, !alias.scope !146, !noalias !149 + tail call void @llvm.experimental.noalias.scope.decl(metadata !145) + tail call void @llvm.experimental.noalias.scope.decl(metadata !148) + %22 = load double, ptr %.0911.i.i.i, align 8, !tbaa !50, !alias.scope !148, !noalias !145 + store double %22, ptr %.012.i.i.i, align 8, !tbaa !50, !alias.scope !145, !noalias !148 %23 = getelementptr inbounds nuw i8, ptr %.012.i.i.i, i64 8 %24 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i, i64 8 - %25 = load ptr, ptr %24, align 8, !tbaa !78, !alias.scope !149, !noalias !146 - store ptr %25, ptr %23, align 8, !tbaa !45, !alias.scope !146, !noalias !149 + %25 = load ptr, ptr %24, align 8, !tbaa !78, !alias.scope !148, !noalias !145 + store ptr %25, ptr %23, align 8, !tbaa !45, !alias.scope !145, !noalias !148 %26 = getelementptr inbounds nuw i8, ptr %.012.i.i.i, i64 16 %27 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i, i64 16 - %28 = load i64, ptr %27, align 8, !tbaa !66, !alias.scope !149, !noalias !146 - store i64 %28, ptr %26, align 8, !tbaa !46, !alias.scope !146, !noalias !149 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %24, i8 0, i64 16, i1 false), !alias.scope !149, !noalias !146 + %28 = load i64, ptr %27, align 8, !tbaa !66, !alias.scope !148, !noalias !145 + store i64 %28, ptr %26, align 8, !tbaa !46, !alias.scope !145, !noalias !148 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %24, i8 0, i64 16, i1 false), !alias.scope !148, !noalias !145 %29 = getelementptr inbounds nuw i8, ptr %.012.i.i.i, i64 24 %30 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i, i64 24 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %29, ptr noundef nonnull align 8 dereferenceable(17) %30, i64 17, i1 false), !alias.scope !151 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %29, ptr noundef nonnull align 8 dereferenceable(17) %30, i64 17, i1 false), !alias.scope !150 %31 = getelementptr inbounds nuw i8, ptr %.012.i.i.i, i64 48 %32 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i, i64 48 - %33 = load ptr, ptr %32, align 8, !tbaa !78, !alias.scope !149, !noalias !146 - store ptr %33, ptr %31, align 8, !tbaa !45, !alias.scope !146, !noalias !149 + %33 = load ptr, ptr %32, align 8, !tbaa !78, !alias.scope !148, !noalias !145 + store ptr %33, ptr %31, align 8, !tbaa !45, !alias.scope !145, !noalias !148 %34 = getelementptr inbounds nuw i8, ptr %.012.i.i.i, i64 56 %35 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i, i64 56 - %36 = load i64, ptr %35, align 8, !tbaa !66, !alias.scope !149, !noalias !146 - store i64 %36, ptr %34, align 8, !tbaa !46, !alias.scope !146, !noalias !149 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %32, i8 0, i64 16, i1 false), !alias.scope !149, !noalias !146 + %36 = load i64, ptr %35, align 8, !tbaa !66, !alias.scope !148, !noalias !145 + store i64 %36, ptr %34, align 8, !tbaa !46, !alias.scope !145, !noalias !148 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %32, i8 0, i64 16, i1 false), !alias.scope !148, !noalias !145 %37 = getelementptr inbounds nuw i8, ptr %.012.i.i.i, i64 64 %38 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i, i64 64 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %37, ptr noundef nonnull align 8 dereferenceable(17) %38, i64 17, i1 false), !alias.scope !151 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %37, ptr noundef nonnull align 8 dereferenceable(17) %38, i64 17, i1 false), !alias.scope !150 %39 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i, i64 88 %40 = getelementptr inbounds nuw i8, ptr %.012.i.i.i, i64 88 %.not.i.i.i = icmp eq ptr %39, %1 - br i1 %.not.i.i.i, label %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit, label %.lr.ph.i.i.i, !llvm.loop !152 + br i1 %.not.i.i.i, label %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit, label %.lr.ph.i.i.i, !llvm.loop !151 _ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit: ; preds = %.lr.ph.i.i.i, %_ZNSt16allocator_traitsISaIN5ceres8internal14FunctionSampleEEE9constructIS2_JRKS2_EEEvRS3_PT_DpOT0_.exit %.0.lcssa.i.i.i = phi ptr [ %20, %_ZNSt16allocator_traitsISaIN5ceres8internal14FunctionSampleEEE9constructIS2_JRKS2_EEEvRS3_PT_DpOT0_.exit ], [ %40, %.lr.ph.i.i.i ] @@ -8584,38 +8574,38 @@ _ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS .lr.ph.i.i.i27: ; preds = %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit, %.lr.ph.i.i.i27 %.012.i.i.i28 = phi ptr [ %60, %.lr.ph.i.i.i27 ], [ %41, %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit ] %.0911.i.i.i29 = phi ptr [ %59, %.lr.ph.i.i.i27 ], [ %1, %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit ] - tail call void @llvm.experimental.noalias.scope.decl(metadata !153) - tail call void @llvm.experimental.noalias.scope.decl(metadata !156) - %42 = load double, ptr %.0911.i.i.i29, align 8, !tbaa !50, !alias.scope !156, !noalias !153 - store double %42, ptr %.012.i.i.i28, align 8, !tbaa !50, !alias.scope !153, !noalias !156 + tail call void @llvm.experimental.noalias.scope.decl(metadata !152) + tail call void @llvm.experimental.noalias.scope.decl(metadata !155) + %42 = load double, ptr %.0911.i.i.i29, align 8, !tbaa !50, !alias.scope !155, !noalias !152 + store double %42, ptr %.012.i.i.i28, align 8, !tbaa !50, !alias.scope !152, !noalias !155 %43 = getelementptr inbounds nuw i8, ptr %.012.i.i.i28, i64 8 %44 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i29, i64 8 - %45 = load ptr, ptr %44, align 8, !tbaa !78, !alias.scope !156, !noalias !153 - store ptr %45, ptr %43, align 8, !tbaa !45, !alias.scope !153, !noalias !156 + %45 = load ptr, ptr %44, align 8, !tbaa !78, !alias.scope !155, !noalias !152 + store ptr %45, ptr %43, align 8, !tbaa !45, !alias.scope !152, !noalias !155 %46 = getelementptr inbounds nuw i8, ptr %.012.i.i.i28, i64 16 %47 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i29, i64 16 - %48 = load i64, ptr %47, align 8, !tbaa !66, !alias.scope !156, !noalias !153 - store i64 %48, ptr %46, align 8, !tbaa !46, !alias.scope !153, !noalias !156 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %44, i8 0, i64 16, i1 false), !alias.scope !156, !noalias !153 + %48 = load i64, ptr %47, align 8, !tbaa !66, !alias.scope !155, !noalias !152 + store i64 %48, ptr %46, align 8, !tbaa !46, !alias.scope !152, !noalias !155 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %44, i8 0, i64 16, i1 false), !alias.scope !155, !noalias !152 %49 = getelementptr inbounds nuw i8, ptr %.012.i.i.i28, i64 24 %50 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i29, i64 24 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %49, ptr noundef nonnull align 8 dereferenceable(17) %50, i64 17, i1 false), !alias.scope !158 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %49, ptr noundef nonnull align 8 dereferenceable(17) %50, i64 17, i1 false), !alias.scope !157 %51 = getelementptr inbounds nuw i8, ptr %.012.i.i.i28, i64 48 %52 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i29, i64 48 - %53 = load ptr, ptr %52, align 8, !tbaa !78, !alias.scope !156, !noalias !153 - store ptr %53, ptr %51, align 8, !tbaa !45, !alias.scope !153, !noalias !156 + %53 = load ptr, ptr %52, align 8, !tbaa !78, !alias.scope !155, !noalias !152 + store ptr %53, ptr %51, align 8, !tbaa !45, !alias.scope !152, !noalias !155 %54 = getelementptr inbounds nuw i8, ptr %.012.i.i.i28, i64 56 %55 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i29, i64 56 - %56 = load i64, ptr %55, align 8, !tbaa !66, !alias.scope !156, !noalias !153 - store i64 %56, ptr %54, align 8, !tbaa !46, !alias.scope !153, !noalias !156 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %52, i8 0, i64 16, i1 false), !alias.scope !156, !noalias !153 + %56 = load i64, ptr %55, align 8, !tbaa !66, !alias.scope !155, !noalias !152 + store i64 %56, ptr %54, align 8, !tbaa !46, !alias.scope !152, !noalias !155 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %52, i8 0, i64 16, i1 false), !alias.scope !155, !noalias !152 %57 = getelementptr inbounds nuw i8, ptr %.012.i.i.i28, i64 64 %58 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i29, i64 64 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %57, ptr noundef nonnull align 8 dereferenceable(17) %58, i64 17, i1 false), !alias.scope !158 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %57, ptr noundef nonnull align 8 dereferenceable(17) %58, i64 17, i1 false), !alias.scope !157 %59 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i29, i64 88 %60 = getelementptr inbounds nuw i8, ptr %.012.i.i.i28, i64 88 %.not.i.i.i30 = icmp eq ptr %59, %5 - br i1 %.not.i.i.i30, label %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit32, label %.lr.ph.i.i.i27, !llvm.loop !152 + br i1 %.not.i.i.i30, label %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit32, label %.lr.ph.i.i.i27, !llvm.loop !151 _ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit32: ; preds = %.lr.ph.i.i.i27, %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit %.0.lcssa.i.i.i31 = phi ptr [ %41, %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit ], [ %60, %.lr.ph.i.i.i27 ] @@ -8624,17 +8614,17 @@ _ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS br i1 %.not.i33, label %_ZNSt12_Vector_baseIN5ceres8internal14FunctionSampleESaIS2_EE13_M_deallocateEPS2_m.exit, label %62 62: ; preds = %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit32 - %63 = load ptr, ptr %61, align 8, !tbaa !87 + %63 = load ptr, ptr %61, align 8, !tbaa !86 %64 = ptrtoint ptr %63 to i64 %65 = sub i64 %64, %8 tail call void @_ZdlPvm(ptr noundef nonnull %6, i64 noundef %65) #33 br label %_ZNSt12_Vector_baseIN5ceres8internal14FunctionSampleESaIS2_EE13_M_deallocateEPS2_m.exit _ZNSt12_Vector_baseIN5ceres8internal14FunctionSampleESaIS2_EE13_M_deallocateEPS2_m.exit: ; preds = %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit32, %62 - store ptr %20, ptr %0, align 8, !tbaa !88 - store ptr %.0.lcssa.i.i.i31, ptr %4, align 8, !tbaa !84 + store ptr %20, ptr %0, align 8, !tbaa !87 + store ptr %.0.lcssa.i.i.i31, ptr %4, align 8, !tbaa !83 %66 = getelementptr inbounds nuw %"struct.ceres::internal::FunctionSample", ptr %20, i64 %16 - store ptr %66, ptr %61, align 8, !tbaa !87 + store ptr %66, ptr %61, align 8, !tbaa !86 ret void 67: ; preds = %69 @@ -8676,8 +8666,8 @@ declare void @_ZSt20__throw_length_errorPKc(ptr noundef) local_unnamed_addr #28 ; Function Attrs: mustprogress uwtable define linkonce_odr hidden void @_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE17_M_realloc_insertIJRKdS7_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr %1, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(8) %3) local_unnamed_addr #0 comdat align 2 personality ptr @__gxx_personality_v0 { %5 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %6 = load ptr, ptr %5, align 8, !tbaa !84 - %7 = load ptr, ptr %0, align 8, !tbaa !88 + %6 = load ptr, ptr %5, align 8, !tbaa !83 + %7 = load ptr, ptr %0, align 8, !tbaa !87 %8 = ptrtoint ptr %6 to i64 %9 = ptrtoint ptr %7 to i64 %10 = sub i64 %8, %9 @@ -8714,38 +8704,38 @@ _ZNSt16allocator_traitsISaIN5ceres8internal14FunctionSampleEEE9constructIS2_JRKd .lr.ph.i.i.i: ; preds = %_ZNSt16allocator_traitsISaIN5ceres8internal14FunctionSampleEEE9constructIS2_JRKdS7_EEEvRS3_PT_DpOT0_.exit, %.lr.ph.i.i.i %.012.i.i.i = phi ptr [ %43, %.lr.ph.i.i.i ], [ %21, %_ZNSt16allocator_traitsISaIN5ceres8internal14FunctionSampleEEE9constructIS2_JRKdS7_EEEvRS3_PT_DpOT0_.exit ] %.0911.i.i.i = phi ptr [ %42, %.lr.ph.i.i.i ], [ %7, %_ZNSt16allocator_traitsISaIN5ceres8internal14FunctionSampleEEE9constructIS2_JRKdS7_EEEvRS3_PT_DpOT0_.exit ] - tail call void @llvm.experimental.noalias.scope.decl(metadata !159) - tail call void @llvm.experimental.noalias.scope.decl(metadata !162) - %25 = load double, ptr %.0911.i.i.i, align 8, !tbaa !50, !alias.scope !162, !noalias !159 - store double %25, ptr %.012.i.i.i, align 8, !tbaa !50, !alias.scope !159, !noalias !162 + tail call void @llvm.experimental.noalias.scope.decl(metadata !158) + tail call void @llvm.experimental.noalias.scope.decl(metadata !161) + %25 = load double, ptr %.0911.i.i.i, align 8, !tbaa !50, !alias.scope !161, !noalias !158 + store double %25, ptr %.012.i.i.i, align 8, !tbaa !50, !alias.scope !158, !noalias !161 %26 = getelementptr inbounds nuw i8, ptr %.012.i.i.i, i64 8 %27 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i, i64 8 - %28 = load ptr, ptr %27, align 8, !tbaa !78, !alias.scope !162, !noalias !159 - store ptr %28, ptr %26, align 8, !tbaa !45, !alias.scope !159, !noalias !162 + %28 = load ptr, ptr %27, align 8, !tbaa !78, !alias.scope !161, !noalias !158 + store ptr %28, ptr %26, align 8, !tbaa !45, !alias.scope !158, !noalias !161 %29 = getelementptr inbounds nuw i8, ptr %.012.i.i.i, i64 16 %30 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i, i64 16 - %31 = load i64, ptr %30, align 8, !tbaa !66, !alias.scope !162, !noalias !159 - store i64 %31, ptr %29, align 8, !tbaa !46, !alias.scope !159, !noalias !162 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %27, i8 0, i64 16, i1 false), !alias.scope !162, !noalias !159 + %31 = load i64, ptr %30, align 8, !tbaa !66, !alias.scope !161, !noalias !158 + store i64 %31, ptr %29, align 8, !tbaa !46, !alias.scope !158, !noalias !161 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %27, i8 0, i64 16, i1 false), !alias.scope !161, !noalias !158 %32 = getelementptr inbounds nuw i8, ptr %.012.i.i.i, i64 24 %33 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i, i64 24 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %32, ptr noundef nonnull align 8 dereferenceable(17) %33, i64 17, i1 false), !alias.scope !164 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %32, ptr noundef nonnull align 8 dereferenceable(17) %33, i64 17, i1 false), !alias.scope !163 %34 = getelementptr inbounds nuw i8, ptr %.012.i.i.i, i64 48 %35 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i, i64 48 - %36 = load ptr, ptr %35, align 8, !tbaa !78, !alias.scope !162, !noalias !159 - store ptr %36, ptr %34, align 8, !tbaa !45, !alias.scope !159, !noalias !162 + %36 = load ptr, ptr %35, align 8, !tbaa !78, !alias.scope !161, !noalias !158 + store ptr %36, ptr %34, align 8, !tbaa !45, !alias.scope !158, !noalias !161 %37 = getelementptr inbounds nuw i8, ptr %.012.i.i.i, i64 56 %38 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i, i64 56 - %39 = load i64, ptr %38, align 8, !tbaa !66, !alias.scope !162, !noalias !159 - store i64 %39, ptr %37, align 8, !tbaa !46, !alias.scope !159, !noalias !162 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %35, i8 0, i64 16, i1 false), !alias.scope !162, !noalias !159 + %39 = load i64, ptr %38, align 8, !tbaa !66, !alias.scope !161, !noalias !158 + store i64 %39, ptr %37, align 8, !tbaa !46, !alias.scope !158, !noalias !161 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %35, i8 0, i64 16, i1 false), !alias.scope !161, !noalias !158 %40 = getelementptr inbounds nuw i8, ptr %.012.i.i.i, i64 64 %41 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i, i64 64 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %40, ptr noundef nonnull align 8 dereferenceable(17) %41, i64 17, i1 false), !alias.scope !164 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %40, ptr noundef nonnull align 8 dereferenceable(17) %41, i64 17, i1 false), !alias.scope !163 %42 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i, i64 88 %43 = getelementptr inbounds nuw i8, ptr %.012.i.i.i, i64 88 %.not.i.i.i = icmp eq ptr %42, %1 - br i1 %.not.i.i.i, label %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit, label %.lr.ph.i.i.i, !llvm.loop !152 + br i1 %.not.i.i.i, label %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit, label %.lr.ph.i.i.i, !llvm.loop !151 _ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit: ; preds = %.lr.ph.i.i.i, %_ZNSt16allocator_traitsISaIN5ceres8internal14FunctionSampleEEE9constructIS2_JRKdS7_EEEvRS3_PT_DpOT0_.exit %.0.lcssa.i.i.i = phi ptr [ %21, %_ZNSt16allocator_traitsISaIN5ceres8internal14FunctionSampleEEE9constructIS2_JRKdS7_EEEvRS3_PT_DpOT0_.exit ], [ %43, %.lr.ph.i.i.i ] @@ -8756,38 +8746,38 @@ _ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS .lr.ph.i.i.i28: ; preds = %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit, %.lr.ph.i.i.i28 %.012.i.i.i29 = phi ptr [ %63, %.lr.ph.i.i.i28 ], [ %44, %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit ] %.0911.i.i.i30 = phi ptr [ %62, %.lr.ph.i.i.i28 ], [ %1, %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit ] - tail call void @llvm.experimental.noalias.scope.decl(metadata !165) - tail call void @llvm.experimental.noalias.scope.decl(metadata !168) - %45 = load double, ptr %.0911.i.i.i30, align 8, !tbaa !50, !alias.scope !168, !noalias !165 - store double %45, ptr %.012.i.i.i29, align 8, !tbaa !50, !alias.scope !165, !noalias !168 + tail call void @llvm.experimental.noalias.scope.decl(metadata !164) + tail call void @llvm.experimental.noalias.scope.decl(metadata !167) + %45 = load double, ptr %.0911.i.i.i30, align 8, !tbaa !50, !alias.scope !167, !noalias !164 + store double %45, ptr %.012.i.i.i29, align 8, !tbaa !50, !alias.scope !164, !noalias !167 %46 = getelementptr inbounds nuw i8, ptr %.012.i.i.i29, i64 8 %47 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i30, i64 8 - %48 = load ptr, ptr %47, align 8, !tbaa !78, !alias.scope !168, !noalias !165 - store ptr %48, ptr %46, align 8, !tbaa !45, !alias.scope !165, !noalias !168 + %48 = load ptr, ptr %47, align 8, !tbaa !78, !alias.scope !167, !noalias !164 + store ptr %48, ptr %46, align 8, !tbaa !45, !alias.scope !164, !noalias !167 %49 = getelementptr inbounds nuw i8, ptr %.012.i.i.i29, i64 16 %50 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i30, i64 16 - %51 = load i64, ptr %50, align 8, !tbaa !66, !alias.scope !168, !noalias !165 - store i64 %51, ptr %49, align 8, !tbaa !46, !alias.scope !165, !noalias !168 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %47, i8 0, i64 16, i1 false), !alias.scope !168, !noalias !165 + %51 = load i64, ptr %50, align 8, !tbaa !66, !alias.scope !167, !noalias !164 + store i64 %51, ptr %49, align 8, !tbaa !46, !alias.scope !164, !noalias !167 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %47, i8 0, i64 16, i1 false), !alias.scope !167, !noalias !164 %52 = getelementptr inbounds nuw i8, ptr %.012.i.i.i29, i64 24 %53 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i30, i64 24 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %52, ptr noundef nonnull align 8 dereferenceable(17) %53, i64 17, i1 false), !alias.scope !170 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %52, ptr noundef nonnull align 8 dereferenceable(17) %53, i64 17, i1 false), !alias.scope !169 %54 = getelementptr inbounds nuw i8, ptr %.012.i.i.i29, i64 48 %55 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i30, i64 48 - %56 = load ptr, ptr %55, align 8, !tbaa !78, !alias.scope !168, !noalias !165 - store ptr %56, ptr %54, align 8, !tbaa !45, !alias.scope !165, !noalias !168 + %56 = load ptr, ptr %55, align 8, !tbaa !78, !alias.scope !167, !noalias !164 + store ptr %56, ptr %54, align 8, !tbaa !45, !alias.scope !164, !noalias !167 %57 = getelementptr inbounds nuw i8, ptr %.012.i.i.i29, i64 56 %58 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i30, i64 56 - %59 = load i64, ptr %58, align 8, !tbaa !66, !alias.scope !168, !noalias !165 - store i64 %59, ptr %57, align 8, !tbaa !46, !alias.scope !165, !noalias !168 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %55, i8 0, i64 16, i1 false), !alias.scope !168, !noalias !165 + %59 = load i64, ptr %58, align 8, !tbaa !66, !alias.scope !167, !noalias !164 + store i64 %59, ptr %57, align 8, !tbaa !46, !alias.scope !164, !noalias !167 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %55, i8 0, i64 16, i1 false), !alias.scope !167, !noalias !164 %60 = getelementptr inbounds nuw i8, ptr %.012.i.i.i29, i64 64 %61 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i30, i64 64 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %60, ptr noundef nonnull align 8 dereferenceable(17) %61, i64 17, i1 false), !alias.scope !170 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %60, ptr noundef nonnull align 8 dereferenceable(17) %61, i64 17, i1 false), !alias.scope !169 %62 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i30, i64 88 %63 = getelementptr inbounds nuw i8, ptr %.012.i.i.i29, i64 88 %.not.i.i.i31 = icmp eq ptr %62, %6 - br i1 %.not.i.i.i31, label %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit33, label %.lr.ph.i.i.i28, !llvm.loop !152 + br i1 %.not.i.i.i31, label %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit33, label %.lr.ph.i.i.i28, !llvm.loop !151 _ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit33: ; preds = %.lr.ph.i.i.i28, %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit %.0.lcssa.i.i.i32 = phi ptr [ %44, %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit ], [ %63, %.lr.ph.i.i.i28 ] @@ -8796,17 +8786,17 @@ _ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS br i1 %.not.i34, label %_ZNSt12_Vector_baseIN5ceres8internal14FunctionSampleESaIS2_EE13_M_deallocateEPS2_m.exit, label %65 65: ; preds = %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit33 - %66 = load ptr, ptr %64, align 8, !tbaa !87 + %66 = load ptr, ptr %64, align 8, !tbaa !86 %67 = ptrtoint ptr %66 to i64 %68 = sub i64 %67, %9 tail call void @_ZdlPvm(ptr noundef nonnull %7, i64 noundef %68) #33 br label %_ZNSt12_Vector_baseIN5ceres8internal14FunctionSampleESaIS2_EE13_M_deallocateEPS2_m.exit _ZNSt12_Vector_baseIN5ceres8internal14FunctionSampleESaIS2_EE13_M_deallocateEPS2_m.exit: ; preds = %_ZNSt6vectorIN5ceres8internal14FunctionSampleESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit33, %65 - store ptr %21, ptr %0, align 8, !tbaa !88 - store ptr %.0.lcssa.i.i.i32, ptr %5, align 8, !tbaa !84 + store ptr %21, ptr %0, align 8, !tbaa !87 + store ptr %.0.lcssa.i.i.i32, ptr %5, align 8, !tbaa !83 %69 = getelementptr inbounds nuw %"struct.ceres::internal::FunctionSample", ptr %21, i64 %17 - store ptr %69, ptr %64, align 8, !tbaa !87 + store ptr %69, ptr %64, align 8, !tbaa !86 ret void 70: ; preds = %72 @@ -8995,95 +8985,94 @@ attributes #40 = { cold nounwind } !76 = !{i8 0, i8 2} !77 = !{} !78 = !{!42, !42, i64 0} -!79 = !{i64 0, i64 4, !20, i64 4, i64 4, !20, i64 8, i64 4, !20} -!80 = !{!81, !25, i64 72} -!81 = !{!"_ZTSN5ceres8internal10LineSearch7OptionsE", !17, i64 0, !19, i64 8, !19, i64 16, !19, i64 24, !19, i64 32, !21, i64 40, !19, i64 48, !19, i64 56, !23, i64 64, !25, i64 72} -!82 = !{!"branch_weights", !"expected", i32 2000, i32 1} -!83 = !{!6, !6, i64 0} -!84 = !{!85, !86, i64 8} -!85 = !{!"_ZTSNSt12_Vector_baseIN5ceres8internal14FunctionSampleESaIS2_EE17_Vector_impl_dataE", !86, i64 0, !86, i64 8, !86, i64 16} -!86 = !{!"p1 _ZTSN5ceres8internal14FunctionSampleE", !7, i64 0} -!87 = !{!85, !86, i64 16} -!88 = !{!85, !86, i64 0} -!89 = distinct !{!89, !48} -!90 = !{!91, !92, i64 24} -!91 = !{!"_ZTSSt8ios_base", !10, i64 8, !10, i64 16, !92, i64 24, !93, i64 28, !93, i64 32, !94, i64 40, !95, i64 48, !8, i64 64, !21, i64 192, !96, i64 200, !97, i64 208} -!92 = !{!"_ZTSSt13_Ios_Fmtflags", !8, i64 0} -!93 = !{!"_ZTSSt12_Ios_Iostate", !8, i64 0} -!94 = !{!"p1 _ZTSNSt8ios_base14_Callback_listE", !7, i64 0} -!95 = !{!"_ZTSNSt8ios_base6_WordsE", !7, i64 0, !10, i64 8} -!96 = !{!"p1 _ZTSNSt8ios_base6_WordsE", !7, i64 0} -!97 = !{!"_ZTSSt6locale", !98, i64 0} -!98 = !{!"p1 _ZTSNSt6locale5_ImplE", !7, i64 0} -!99 = !{!92, !92, i64 0} -!100 = !{!101, !101, i64 0} -!101 = !{!"p1 _ZTSN4absl12lts_2024011612log_internal10LogMessage14LogMessageDataE", !7, i64 0} -!102 = !{!91, !10, i64 8} -!103 = !{!81, !21, i64 40} -!104 = !{!81, !17, i64 0} -!105 = !{!75, !21, i64 96} -!106 = !{!75, !21, i64 100} -!107 = !{!81, !19, i64 8} -!108 = !{!75, !21, i64 104} -!109 = !{!110} -!110 = distinct !{!110, !111, !"_ZN4absl12lts_202401169StrFormatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_: argument 0"} -!111 = distinct !{!111, !"_ZN4absl12lts_202401169StrFormatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_"} -!112 = !{!113, !7, i64 8} -!113 = !{!"_ZTSN4absl12lts_2024011619str_format_internal13FormatArgImplE", !8, i64 0, !7, i64 8} -!114 = !{!81, !23, i64 64} -!115 = !{!81, !19, i64 16} -!116 = !{!81, !19, i64 24} -!117 = !{!81, !19, i64 32} -!118 = !{!119} -!119 = distinct !{!119, !120, !"_ZN4absl12lts_202401169StrFormatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_: argument 0"} -!120 = distinct !{!120, !"_ZN4absl12lts_202401169StrFormatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_"} -!121 = !{!81, !19, i64 48} -!122 = !{!123} -!123 = distinct !{!123, !124, !"_ZN4absl12lts_202401169StrFormatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_: argument 0"} -!124 = distinct !{!124, !"_ZN4absl12lts_202401169StrFormatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_"} -!125 = !{!81, !19, i64 56} -!126 = !{!127} -!127 = distinct !{!127, !128, !"_ZN4absl12lts_202401169StrFormatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_: argument 0"} -!128 = distinct !{!128, !"_ZN4absl12lts_202401169StrFormatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_"} -!129 = distinct !{!129, !48} -!130 = !{!"branch_weights", !"expected", i32 -2147483648, i32 0} -!131 = !{!132} -!132 = distinct !{!132, !133, !"_ZN4absl12lts_202401169StrFormatIJdNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_EEES7_RKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_: argument 0"} -!133 = distinct !{!133, !"_ZN4absl12lts_202401169StrFormatIJdNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_EEES7_RKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_"} -!134 = !{!135} -!135 = distinct !{!135, !136, !"_ZN4absl12lts_202401169StrFormatIJiiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_: argument 0"} -!136 = distinct !{!136, !"_ZN4absl12lts_202401169StrFormatIJiiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_"} -!137 = !{!138} -!138 = distinct !{!138, !139, !"_ZN4absl12lts_202401169StrFormatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_: argument 0"} -!139 = distinct !{!139, !"_ZN4absl12lts_202401169StrFormatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_"} -!140 = !{!141} -!141 = distinct !{!141, !142, !"_ZN4absl12lts_202401169StrFormatIJdddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_: argument 0"} -!142 = distinct !{!142, !"_ZN4absl12lts_202401169StrFormatIJdddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_"} -!143 = !{!69, !71, i64 24} -!144 = !{!69, !71, i64 16} -!145 = distinct !{!145, !48} -!146 = !{!147} -!147 = distinct !{!147, !148, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_: argument 0"} -!148 = distinct !{!148, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_"} -!149 = !{!150} -!150 = distinct !{!150, !148, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_: argument 1"} -!151 = !{!147, !150} -!152 = distinct !{!152, !48} -!153 = !{!154} -!154 = distinct !{!154, !155, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_: argument 0"} -!155 = distinct !{!155, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_"} -!156 = !{!157} -!157 = distinct !{!157, !155, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_: argument 1"} -!158 = !{!154, !157} -!159 = !{!160} -!160 = distinct !{!160, !161, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_: argument 0"} -!161 = distinct !{!161, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_"} -!162 = !{!163} -!163 = distinct !{!163, !161, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_: argument 1"} -!164 = !{!160, !163} -!165 = !{!166} -!166 = distinct !{!166, !167, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_: argument 0"} -!167 = distinct !{!167, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_"} -!168 = !{!169} -!169 = distinct !{!169, !167, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_: argument 1"} -!170 = !{!166, !169} +!79 = !{!80, !25, i64 72} +!80 = !{!"_ZTSN5ceres8internal10LineSearch7OptionsE", !17, i64 0, !19, i64 8, !19, i64 16, !19, i64 24, !19, i64 32, !21, i64 40, !19, i64 48, !19, i64 56, !23, i64 64, !25, i64 72} +!81 = !{!"branch_weights", !"expected", i32 2000, i32 1} +!82 = !{!6, !6, i64 0} +!83 = !{!84, !85, i64 8} +!84 = !{!"_ZTSNSt12_Vector_baseIN5ceres8internal14FunctionSampleESaIS2_EE17_Vector_impl_dataE", !85, i64 0, !85, i64 8, !85, i64 16} +!85 = !{!"p1 _ZTSN5ceres8internal14FunctionSampleE", !7, i64 0} +!86 = !{!84, !85, i64 16} +!87 = !{!84, !85, i64 0} +!88 = distinct !{!88, !48} +!89 = !{!90, !91, i64 24} +!90 = !{!"_ZTSSt8ios_base", !10, i64 8, !10, i64 16, !91, i64 24, !92, i64 28, !92, i64 32, !93, i64 40, !94, i64 48, !8, i64 64, !21, i64 192, !95, i64 200, !96, i64 208} +!91 = !{!"_ZTSSt13_Ios_Fmtflags", !8, i64 0} +!92 = !{!"_ZTSSt12_Ios_Iostate", !8, i64 0} +!93 = !{!"p1 _ZTSNSt8ios_base14_Callback_listE", !7, i64 0} +!94 = !{!"_ZTSNSt8ios_base6_WordsE", !7, i64 0, !10, i64 8} +!95 = !{!"p1 _ZTSNSt8ios_base6_WordsE", !7, i64 0} +!96 = !{!"_ZTSSt6locale", !97, i64 0} +!97 = !{!"p1 _ZTSNSt6locale5_ImplE", !7, i64 0} +!98 = !{!91, !91, i64 0} +!99 = !{!100, !100, i64 0} +!100 = !{!"p1 _ZTSN4absl12lts_2024011612log_internal10LogMessage14LogMessageDataE", !7, i64 0} +!101 = !{!90, !10, i64 8} +!102 = !{!80, !21, i64 40} +!103 = !{!80, !17, i64 0} +!104 = !{!75, !21, i64 96} +!105 = !{!75, !21, i64 100} +!106 = !{!80, !19, i64 8} +!107 = !{!75, !21, i64 104} +!108 = !{!109} +!109 = distinct !{!109, !110, !"_ZN4absl12lts_202401169StrFormatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_: argument 0"} +!110 = distinct !{!110, !"_ZN4absl12lts_202401169StrFormatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_"} +!111 = !{!112, !7, i64 8} +!112 = !{!"_ZTSN4absl12lts_2024011619str_format_internal13FormatArgImplE", !8, i64 0, !7, i64 8} +!113 = !{!80, !23, i64 64} +!114 = !{!80, !19, i64 16} +!115 = !{!80, !19, i64 24} +!116 = !{!80, !19, i64 32} +!117 = !{!118} +!118 = distinct !{!118, !119, !"_ZN4absl12lts_202401169StrFormatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_: argument 0"} +!119 = distinct !{!119, !"_ZN4absl12lts_202401169StrFormatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_"} +!120 = !{!80, !19, i64 48} +!121 = !{!122} +!122 = distinct !{!122, !123, !"_ZN4absl12lts_202401169StrFormatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_: argument 0"} +!123 = distinct !{!123, !"_ZN4absl12lts_202401169StrFormatIJiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_"} +!124 = !{!80, !19, i64 56} +!125 = !{!126} +!126 = distinct !{!126, !127, !"_ZN4absl12lts_202401169StrFormatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_: argument 0"} +!127 = distinct !{!127, !"_ZN4absl12lts_202401169StrFormatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_"} +!128 = distinct !{!128, !48} +!129 = !{!"branch_weights", !"expected", i32 -2147483648, i32 0} +!130 = !{!131} +!131 = distinct !{!131, !132, !"_ZN4absl12lts_202401169StrFormatIJdNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_EEES7_RKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_: argument 0"} +!132 = distinct !{!132, !"_ZN4absl12lts_202401169StrFormatIJdNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_EEES7_RKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_"} +!133 = !{!134} +!134 = distinct !{!134, !135, !"_ZN4absl12lts_202401169StrFormatIJiiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_: argument 0"} +!135 = distinct !{!135, !"_ZN4absl12lts_202401169StrFormatIJiiEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_"} +!136 = !{!137} +!137 = distinct !{!137, !138, !"_ZN4absl12lts_202401169StrFormatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_: argument 0"} +!138 = distinct !{!138, !"_ZN4absl12lts_202401169StrFormatIJddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_"} +!139 = !{!140} +!140 = distinct !{!140, !141, !"_ZN4absl12lts_202401169StrFormatIJdddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_: argument 0"} +!141 = distinct !{!141, !"_ZN4absl12lts_202401169StrFormatIJdddEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19str_format_internal18FormatSpecTemplateIJXspclsr19str_format_internalE14ArgumentToConvIT_EEEEEEDpRKSA_"} +!142 = !{!69, !71, i64 24} +!143 = !{!69, !71, i64 16} +!144 = distinct !{!144, !48} +!145 = !{!146} +!146 = distinct !{!146, !147, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_: argument 0"} +!147 = distinct !{!147, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_"} +!148 = !{!149} +!149 = distinct !{!149, !147, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_: argument 1"} +!150 = !{!146, !149} +!151 = distinct !{!151, !48} +!152 = !{!153} +!153 = distinct !{!153, !154, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_: argument 0"} +!154 = distinct !{!154, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_"} +!155 = !{!156} +!156 = distinct !{!156, !154, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_: argument 1"} +!157 = !{!153, !156} +!158 = !{!159} +!159 = distinct !{!159, !160, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_: argument 0"} +!160 = distinct !{!160, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_"} +!161 = !{!162} +!162 = distinct !{!162, !160, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_: argument 1"} +!163 = !{!159, !162} +!164 = !{!165} +!165 = distinct !{!165, !166, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_: argument 0"} +!166 = distinct !{!166, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_"} +!167 = !{!168} +!168 = distinct !{!168, !166, !"_ZSt19__relocate_object_aIN5ceres8internal14FunctionSampleES2_SaIS2_EEvPT_PT0_RT1_: argument 1"} +!169 = !{!165, !168} diff --git a/bench/clamav/optimized/headers.ll b/bench/clamav/optimized/headers.ll index a9ea2cbcb16..b57491fb593 100644 --- a/bench/clamav/optimized/headers.ll +++ b/bench/clamav/optimized/headers.ll @@ -4,12 +4,6 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80: target triple = "x86_64-pc-linux-gnu" %class.ErrorHandler = type <{ i32, i32, i8, i8, i8, i8, i8, i8, [2 x i8] }> -%struct.MainHeader = type { %struct.BaseBlock, i16, i32, i8, i8, i8, i64, i64, i64, i64, i64, %"class.std::__cxx11::basic_string", %class.RarTime } -%struct.BaseBlock = type { i32, i32, i32, i32, i8 } -%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string::_Alloc_hider", i64, %union.anon.1 } -%"struct.std::__cxx11::basic_string::_Alloc_hider" = type { ptr } -%union.anon.1 = type { i64, [8 x i8] } -%class.RarTime = type { i64 } $_ZN5ArrayIhEaSERKS0_ = comdat any @@ -49,7 +43,7 @@ define void @_ZN10FileHeader5ResetEm(ptr noundef nonnull align 8 dereferenceable %18 = add i64 %17, %16 %..i.i = tail call i64 @llvm.umax.i64(i64 %14, i64 %18) %19 = load ptr, ptr %3, align 8, !tbaa !12 - %20 = tail call ptr @realloc(ptr noundef %19, i64 noundef %..i.i) #10 + %20 = tail call ptr @realloc(ptr noundef %19, i64 noundef %..i.i) #9 %21 = icmp eq ptr %20, null br i1 %21, label %22, label %_ZN5ArrayIhE3AddEm.exit.i @@ -100,7 +94,7 @@ define noundef nonnull align 8 dereferenceable(17184) ptr @_ZN10FileHeaderaSERS_ br i1 %.not.i, label %_ZN5ArrayIhE5ResetEv.exit, label %5 5: ; preds = %2 - tail call void @free(ptr noundef nonnull %4) #11 + tail call void @free(ptr noundef nonnull %4) #10 store ptr null, ptr %3, align 8, !tbaa !12 br label %_ZN5ArrayIhE5ResetEv.exit @@ -124,7 +118,7 @@ define linkonce_odr noundef nonnull align 8 dereferenceable(32) ptr @_ZN5ArrayIh br i1 %.not.i, label %_ZN5ArrayIhE5ResetEv.exit, label %4 4: ; preds = %2 - tail call void @free(ptr noundef nonnull %3) #11 + tail call void @free(ptr noundef nonnull %3) #10 store ptr null, ptr %0, align 8, !tbaa !12 br label %_ZN5ArrayIhE5ResetEv.exit @@ -162,7 +156,7 @@ _ZN5ArrayIhE5ResetEv.exit: ; preds = %2, %4 %19 = add i64 %17, 32 %20 = add i64 %19, %18 %..i.i = tail call i64 @llvm.umax.i64(i64 %16, i64 %20) - %21 = tail call ptr @realloc(ptr noundef %15, i64 noundef %..i.i) #10 + %21 = tail call ptr @realloc(ptr noundef %15, i64 noundef %..i.i) #9 %22 = icmp eq ptr %21, null br i1 %22, label %23, label %_ZN5ArrayIhE5AllocEm.exit @@ -188,44 +182,31 @@ _ZN5ArrayIhE5AllocEm.exit.thread: ; preds = %_ZN5ArrayIhE5ResetE ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: readwrite) uwtable define void @_ZN10MainHeader5ResetEv(ptr noundef nonnull align 8 captures(address) dereferenceable(112) initializes((0, 72)) %0) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { - %2 = alloca %struct.MainHeader, align 8 - call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %2) - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %2, i8 0, i64 112, i1 false) - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %0, i8 0, i64 20, i1 false) - %3 = getelementptr inbounds nuw i8, ptr %0, i64 20 - %4 = getelementptr inbounds nuw i8, ptr %2, i64 20 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(52) %3, ptr noundef nonnull align 4 dereferenceable(52) %4, i64 52, i1 false) - %5 = getelementptr inbounds nuw i8, ptr %0, i64 72 - %6 = load ptr, ptr %5, align 8, !tbaa !32 - %7 = getelementptr inbounds nuw i8, ptr %0, i64 88 - %8 = icmp eq ptr %6, %7 - br i1 %8, label %_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv.exit.i.i, label %_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_S_copyEPwPKwm.exit.i.i + %2 = getelementptr inbounds nuw i8, ptr %0, i64 72 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %0, i8 0, i64 72, i1 false) + %3 = load ptr, ptr %2, align 8, !tbaa !32 + %4 = getelementptr inbounds nuw i8, ptr %0, i64 88 + %5 = icmp eq ptr %3, %4 + br i1 %5, label %_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv.exit.i.i, label %_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_S_copyEPwPKwm.exit.i.i _ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv.exit.i.i: ; preds = %1 - %9 = getelementptr inbounds nuw i8, ptr %0, i64 80 - %10 = load i64, ptr %9, align 8, !tbaa !36 - %11 = icmp ult i64 %10, 4 - tail call void @llvm.assume(i1 %11) + %6 = getelementptr inbounds nuw i8, ptr %0, i64 80 + %7 = load i64, ptr %6, align 8, !tbaa !36 + %8 = icmp ult i64 %7, 4 + tail call void @llvm.assume(i1 %8) br label %_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_S_copyEPwPKwm.exit.i.i _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_S_copyEPwPKwm.exit.i.i: ; preds = %_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv.exit.i.i, %1 - %12 = getelementptr inbounds nuw i8, ptr %0, i64 80 - store i64 0, ptr %12, align 8, !tbaa !36 - store i32 0, ptr %6, align 4, !tbaa !37 - %13 = getelementptr inbounds nuw i8, ptr %0, i64 104 - store i64 0, ptr %13, align 8, !tbaa !39 - call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %2) + %9 = getelementptr inbounds nuw i8, ptr %0, i64 80 + store i64 0, ptr %9, align 8, !tbaa !36 + store i32 0, ptr %3, align 4, !tbaa !37 + %10 = getelementptr inbounds nuw i8, ptr %0, i64 104 + store i64 0, ptr %10, align 8, !tbaa !39 ret void } -; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #4 - ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #5 - -; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #4 +declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #4 declare i32 @__gxx_personality_v0(...) @@ -234,29 +215,28 @@ declare void @_ZN12ErrorHandler13GeneralErrMsgEPKwz(ptr noundef nonnull align 4 declare void @_ZN12ErrorHandler11MemoryErrorEv(ptr noundef nonnull align 4 dereferenceable(14)) local_unnamed_addr #1 ; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) -declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #6 +declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #5 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) -declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #7 +declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #6 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) -declare void @llvm.assume(i1 noundef) #8 +declare void @llvm.assume(i1 noundef) #7 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umax.i64(i64, i64) #9 +declare i64 @llvm.umax.i64(i64, i64) #8 attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #3 = { mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #6 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } -attributes #9 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #10 = { nounwind allocsize(1) } -attributes #11 = { nounwind } +attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #5 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } +attributes #8 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #9 = { nounwind allocsize(1) } +attributes #10 = { nounwind } !llvm.module.flags = !{!0, !1, !2} diff --git a/bench/cmake/optimized/cmCTest.ll b/bench/cmake/optimized/cmCTest.ll index 9ef1229b0d6..2499ffa62ef 100644 --- a/bench/cmake/optimized/cmCTest.ll +++ b/bench/cmake/optimized/cmCTest.ll @@ -24697,8 +24697,8 @@ _ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit171: ; pred %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %363, i64 48 store ptr %6, ptr %.sroa.9.0..sroa_idx, align 16, !tbaa !612, !noalias !598 store ptr %363, ptr %365, align 8, !noalias !598 - %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %362, i64 32 - store i64 0, ptr %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx, align 8, !tbaa !42, !noalias !598 + %.sroa.4396.0..sroa_idx = getelementptr inbounds nuw i8, ptr %362, i64 32 + store i64 0, ptr %.sroa.4396.0..sroa_idx, align 8, !noalias !598 %366 = getelementptr inbounds nuw i8, ptr %362, i64 40 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZN7cmCTest14RunMakeCommandERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES1_EERS9_PiPKcNSt6chrono8durationIdSt5ratioILl1ELl1EEEERSoN15cmProcessOutput8EncodingEE3$_0E10_M_managerERSt9_Any_dataRKSQ_St18_Manager_operation", ptr %366, align 8, !tbaa !613, !noalias !598 %367 = getelementptr inbounds nuw i8, ptr %362, i64 48 @@ -24716,8 +24716,8 @@ _ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit171: ; pred %.sroa.6394.0..sroa_idx = getelementptr inbounds nuw i8, ptr %368, i64 24 store ptr %6, ptr %.sroa.6394.0..sroa_idx, align 8, !tbaa !612, !noalias !598 store ptr %368, ptr %370, align 8, !noalias !598 - %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %362, i64 64 - store i64 0, ptr %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx, align 8, !tbaa !42, !noalias !598 + %.sroa.4399.0..sroa_idx = getelementptr inbounds nuw i8, ptr %362, i64 64 + store i64 0, ptr %.sroa.4399.0..sroa_idx, align 8, !noalias !598 %371 = getelementptr inbounds nuw i8, ptr %362, i64 72 store ptr @"_ZNSt17_Function_handlerIFvvEZN7cmCTest14RunMakeCommandERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS7_PiPKcNSt6chrono8durationIdSt5ratioILl1ELl1EEEERSoN15cmProcessOutput8EncodingEE3$_1E10_M_managerERSt9_Any_dataRKSO_St18_Manager_operation", ptr %371, align 8, !tbaa !613, !noalias !598 %372 = getelementptr inbounds nuw i8, ptr %362, i64 80 @@ -71109,8 +71109,8 @@ define internal fastcc void @"_ZZN7cmCTest10RunCommandERKSt6vectorINSt7__cxx1112 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %18, i64 16 store ptr %16, ptr %.sroa.5.0..sroa_idx, align 16, !tbaa !608, !noalias !2774 store ptr %18, ptr %19, align 8, !noalias !2774 - %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 32 - store i64 0, ptr %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx, align 8, !tbaa !42, !noalias !2774 + %.sroa.48.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 32 + store i64 0, ptr %.sroa.48.0..sroa_idx, align 8, !noalias !2774 %20 = getelementptr inbounds nuw i8, ptr %17, i64 40 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZZN7cmCTest10RunCommandERKS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcES1_EESaIS9_EEPS9_SE_PiPKcNSt6chrono8durationIdSt5ratioILl1ELl1EEEEN15cmProcessOutput8EncodingEENK3$_1clERN2cm11uv_pipe_ptrEiRS2_RbEUlS2_E_E10_M_managerERSt9_Any_dataRKSX_St18_Manager_operation", ptr %20, align 8, !tbaa !613, !noalias !2774 %21 = getelementptr inbounds nuw i8, ptr %17, i64 48 @@ -71118,8 +71118,8 @@ define internal fastcc void @"_ZZN7cmCTest10RunCommandERKSt6vectorINSt7__cxx1112 %22 = getelementptr inbounds nuw i8, ptr %17, i64 56 %23 = ptrtoint ptr %5 to i64 store i64 %23, ptr %22, align 8, !noalias !2774 - %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 64 - store i64 0, ptr %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx, align 8, !tbaa !42, !noalias !2774 + %.sroa.411.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 64 + store i64 0, ptr %.sroa.411.0..sroa_idx, align 8, !noalias !2774 %24 = getelementptr inbounds nuw i8, ptr %17, i64 72 store ptr @"_ZNSt17_Function_handlerIFvvEZZN7cmCTest10RunCommandERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEPS8_SD_PiPKcNSt6chrono8durationIdSt5ratioILl1ELl1EEEEN15cmProcessOutput8EncodingEENK3$_1clERN2cm11uv_pipe_ptrEiRS2_IcS7_ERbEUlvE_E10_M_managerERSt9_Any_dataRKSX_St18_Manager_operation", ptr %24, align 8, !tbaa !613, !noalias !2774 %25 = getelementptr inbounds nuw i8, ptr %17, i64 80 diff --git a/bench/cmake/optimized/cmCTestBuildHandler.ll b/bench/cmake/optimized/cmCTestBuildHandler.ll index e204e795289..ca75253bbf2 100644 --- a/bench/cmake/optimized/cmCTestBuildHandler.ll +++ b/bench/cmake/optimized/cmCTestBuildHandler.ll @@ -16450,8 +16450,8 @@ define internal fastcc void @"_ZZN19cmCTestBuildHandler14RunMakeCommandERKNSt7__ %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %23, i64 40 store ptr %21, ptr %.sroa.9.0..sroa_idx, align 8, !tbaa !350, !noalias !567 store ptr %23, ptr %25, align 8, !noalias !567 - %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %22, i64 32 - store i64 0, ptr %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx, align 8, !tbaa !15, !noalias !567 + %.sroa.430.0..sroa_idx = getelementptr inbounds nuw i8, ptr %22, i64 32 + store i64 0, ptr %.sroa.430.0..sroa_idx, align 8, !noalias !567 %26 = getelementptr inbounds nuw i8, ptr %22, i64 40 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZZN19cmCTestBuildHandler14RunMakeCommandERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES1_EEPiPKciRSoN15cmProcessOutput8EncodingEENK3$_1clERN2cm11uv_pipe_ptrEiRSt5dequeIcS1_ERbiEUlS2_E_E10_M_managerERSt9_Any_dataRKSS_St18_Manager_operation", ptr %26, align 8, !tbaa !577, !noalias !567 %27 = getelementptr inbounds nuw i8, ptr %22, i64 48 @@ -16475,8 +16475,8 @@ define internal fastcc void @"_ZZN19cmCTestBuildHandler14RunMakeCommandERKNSt7__ %.sroa.10.0..sroa_idx = getelementptr inbounds nuw i8, ptr %28, i64 48 store ptr %5, ptr %.sroa.10.0..sroa_idx, align 16, !tbaa !578, !noalias !567 store ptr %28, ptr %30, align 8, !noalias !567 - %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %22, i64 64 - store i64 0, ptr %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx, align 8, !tbaa !15, !noalias !567 + %.sroa.433.0..sroa_idx = getelementptr inbounds nuw i8, ptr %22, i64 64 + store i64 0, ptr %.sroa.433.0..sroa_idx, align 8, !noalias !567 %31 = getelementptr inbounds nuw i8, ptr %22, i64 72 store ptr @"_ZNSt17_Function_handlerIFvvEZZN19cmCTestBuildHandler14RunMakeCommandERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPiPKciRSoN15cmProcessOutput8EncodingEENK3$_1clERN2cm11uv_pipe_ptrEiRSt5dequeIcS6_ERbiEUlvE_E10_M_managerERSt9_Any_dataRKSQ_St18_Manager_operation", ptr %31, align 8, !tbaa !577, !noalias !567 %32 = getelementptr inbounds nuw i8, ptr %22, i64 80 diff --git a/bench/cmake/optimized/cmNinjaTargetGenerator.ll b/bench/cmake/optimized/cmNinjaTargetGenerator.ll index a17ac90b745..b179de1e7a3 100644 --- a/bench/cmake/optimized/cmNinjaTargetGenerator.ll +++ b/bench/cmake/optimized/cmNinjaTargetGenerator.ll @@ -48706,7 +48706,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit134: ; preds = %_Z 171: ; preds = %169, %167 %.pn = phi { ptr, i32 } [ %170, %169 ], [ %168, %167 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #29 - br label %629 + br label %628 172: ; preds = %43 %173 = landingpad { ptr, i32 } @@ -48748,7 +48748,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit137: ; preds = %_Z %.pn66.pn = phi { ptr, i32 } [ %173, %172 ], [ %.pn66, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i136 ], [ %.pn66, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i135 ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #29 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #29 - br label %629 + br label %628 187: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit %188 = landingpad { ptr, i32 } @@ -48790,7 +48790,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit140: ; preds = %_Z %.pn69.pn = phi { ptr, i32 } [ %188, %187 ], [ %.pn69, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i139 ], [ %.pn69, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i138 ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #29 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #29 - br label %629 + br label %628 202: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit125 %203 = landingpad { ptr, i32 } @@ -48832,18 +48832,18 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit143: ; preds = %_Z %.pn72.pn = phi { ptr, i32 } [ %203, %202 ], [ %.pn72, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i142 ], [ %.pn72, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i141 ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #29 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #29 - br label %629 + br label %628 217: ; preds = %305, %302 %218 = landingpad { ptr, i32 } cleanup - br label %622 + br label %621 219: ; preds = %125, %120 %220 = landingpad { ptr, i32 } cleanup call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #29 - br label %622 + br label %621 221: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit131 %222 = call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull @.str.17) #29 @@ -49036,7 +49036,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit160: ; preds = %_Z 298: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit160, %284 %.pn75.pn = phi { ptr, i32 } [ %.pn75, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit160 ], [ %285, %284 ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #29 - br label %622 + br label %621 299: ; preds = %221, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit157, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit134 %300 = load i64, ptr %117, align 8, !tbaa !74 @@ -49194,7 +49194,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit170: ; preds = %_Z 354: ; preds = %352, %350 %.pn78 = phi { ptr, i32 } [ %353, %352 ], [ %351, %350 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %21) #29 - br label %622 + br label %621 355: ; preds = %.noexc.i %356 = landingpad { ptr, i32 } @@ -49234,7 +49234,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit173: ; preds = %_Z %.pn80.pn = phi { ptr, i32 } [ %356, %355 ], [ %.pn80, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i172 ], [ %.pn80, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i171 ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #29 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %22) #29 - br label %622 + br label %621 368: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit163 %369 = landingpad { ptr, i32 } @@ -49274,7 +49274,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176: ; preds = %_Z %.pn83.pn = phi { ptr, i32 } [ %369, %368 ], [ %.pn83, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i175 ], [ %.pn83, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i174 ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #29 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %24) #29 - br label %622 + br label %621 381: ; preds = %308 %382 = call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull @.str.17) #29 @@ -49396,7 +49396,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176: ; preds = %_Z 428: ; preds = %426, %424 %.pn86 = phi { ptr, i32 } [ %427, %426 ], [ %425, %424 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %26) #29 - br label %622 + br label %621 429: ; preds = %393, %389 %430 = landingpad { ptr, i32 } @@ -49412,7 +49412,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176: ; preds = %_Z 433: ; preds = %431, %429 %.pn88 = phi { ptr, i32 } [ %432, %431 ], [ %430, %429 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %27) #29 - br label %622 + br label %621 434: ; preds = %400, %396 %435 = landingpad { ptr, i32 } @@ -49428,7 +49428,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176: ; preds = %_Z 438: ; preds = %436, %434 %.pn90 = phi { ptr, i32 } [ %437, %436 ], [ %435, %434 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %28) #29 - br label %622 + br label %621 439: ; preds = %407, %403 %440 = landingpad { ptr, i32 } @@ -49444,7 +49444,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176: ; preds = %_Z 443: ; preds = %441, %439 %.pn92 = phi { ptr, i32 } [ %442, %441 ], [ %440, %439 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %29) #29 - br label %622 + br label %621 444: ; preds = %410 %445 = landingpad { ptr, i32 } @@ -49460,12 +49460,12 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176: ; preds = %_Z 448: ; preds = %446, %444 %.pn94 = phi { ptr, i32 } [ %447, %446 ], [ %445, %444 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %30) #29 - br label %622 + br label %621 449: ; preds = %414 %450 = landingpad { ptr, i32 } cleanup - br label %621 + br label %620 .lr.ph: ; preds = %420, %456 %.sroa.0205.0213 = phi ptr [ %457, %456 ], [ %421, %420 ] @@ -49507,7 +49507,7 @@ _ZNK22cmNinjaTargetGenerator18ConvertToNinjaPathERKNSt7__cxx1112basic_stringIcSt 462: ; preds = %460, %458 %.pn112 = phi { ptr, i32 } [ %461, %460 ], [ %459, %458 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %32) #29 - br label %621 + br label %620 463: ; preds = %._crit_edge %464 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN4Json5ValueixEPKc(ptr noundef nonnull align 8 dereferenceable(40) %9, ptr noundef nonnull @.str.192) @@ -49531,7 +49531,7 @@ _ZNK22cmNinjaTargetGenerator18ConvertToNinjaPathERKNSt7__cxx1112basic_stringIcSt ._crit_edge218: ; preds = %480, %467 call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %36) #29 invoke void @_ZN4Json5ValueC1ENS_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(40) %36, i32 noundef 6) - to label %487 unwind label %502 + to label %487 unwind label %501 471: ; preds = %._crit_edge %472 = landingpad { ptr, i32 } @@ -49547,12 +49547,12 @@ _ZNK22cmNinjaTargetGenerator18ConvertToNinjaPathERKNSt7__cxx1112basic_stringIcSt 475: ; preds = %473, %471 %.pn96 = phi { ptr, i32 } [ %474, %473 ], [ %472, %471 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %33) #29 - br label %621 + br label %620 476: ; preds = %465 %477 = landingpad { ptr, i32 } cleanup - br label %620 + br label %619 .lr.ph217: ; preds = %467, %480 %.sroa.0201.0215 = phi ptr [ %481, %480 ], [ %468, %467 ] @@ -49585,11 +49585,11 @@ _ZNK22cmNinjaTargetGenerator18ConvertToNinjaPathERKNSt7__cxx1112basic_stringIcSt 486: ; preds = %484, %482 %.pn107 = phi { ptr, i32 } [ %485, %484 ], [ %483, %482 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %35) #29 - br label %619 + br label %618 487: ; preds = %._crit_edge218 %488 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN4Json5ValueixEPKc(ptr noundef nonnull align 8 dereferenceable(40) %9, ptr noundef nonnull @.str.193) - to label %489 unwind label %504 + to label %489 unwind label %503 489: ; preds = %487 %490 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZN4Json5ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(40) %488, ptr noundef nonnull align 8 dereferenceable(40) %36) #29 @@ -49602,177 +49602,175 @@ _ZNK22cmNinjaTargetGenerator18ConvertToNinjaPathERKNSt7__cxx1112basic_stringIcSt %.not211219 = icmp eq ptr %492, %494 br i1 %.not211219, label %"_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EEaSIZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1EENSt9enable_ifIXsr9_CallableIT_EE5valueERSC_E4typeEOSH_.exit", label %.lr.ph222 -"_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EEaSIZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1EENSt9enable_ifIXsr9_CallableIT_EE5valueERSC_E4typeEOSH_.exit": ; preds = %509, %489 +"_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EEaSIZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1EENSt9enable_ifIXsr9_CallableIT_EE5valueERSC_E4typeEOSH_.exit": ; preds = %508, %489 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %38) #29 %495 = ptrtoint ptr %0 to i64 store i64 %495, ptr %38, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %38, i64 8 store i64 0, ptr %.sroa.4.0..sroa_idx, align 8 - %496 = getelementptr inbounds nuw i8, ptr %38, i64 32 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %496, i8 0, i64 32, i1 false) - %497 = getelementptr inbounds nuw i8, ptr %38, i64 16 - store ptr @"_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_0E10_M_managerERSt9_Any_dataRKSF_St18_Manager_operation", ptr %497, align 8, !tbaa !1975 - %498 = getelementptr inbounds nuw i8, ptr %38, i64 24 - store ptr @"_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_0E9_M_invokeERKSt9_Any_dataOS8_SA_", ptr %498, align 8, !tbaa !1975 - %499 = getelementptr inbounds nuw i8, ptr %38, i64 32 - store i64 %495, ptr %499, align 8 - %.sroa.0.i.i.i179.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %38, i64 40 - store i64 0, ptr %.sroa.0.i.i.i179.sroa.4.0..sroa_idx, align 8, !tbaa !76 - %500 = getelementptr inbounds nuw i8, ptr %38, i64 48 - store ptr @"_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1E10_M_managerERSt9_Any_dataRKSF_St18_Manager_operation", ptr %500, align 8, !tbaa !1975 - %501 = getelementptr inbounds nuw i8, ptr %38, i64 56 - store ptr @"_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1E9_M_invokeERKSt9_Any_dataOS8_SA_", ptr %501, align 8, !tbaa !1975 + %496 = getelementptr inbounds nuw i8, ptr %38, i64 16 + store ptr @"_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_0E10_M_managerERSt9_Any_dataRKSF_St18_Manager_operation", ptr %496, align 8, !tbaa !1975 + %497 = getelementptr inbounds nuw i8, ptr %38, i64 24 + store ptr @"_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_0E9_M_invokeERKSt9_Any_dataOS8_SA_", ptr %497, align 8, !tbaa !1975 + %498 = getelementptr inbounds nuw i8, ptr %38, i64 32 + store i64 %495, ptr %498, align 8 + %.sroa.4225.0..sroa_idx = getelementptr inbounds nuw i8, ptr %38, i64 40 + store i64 0, ptr %.sroa.4225.0..sroa_idx, align 8 + %499 = getelementptr inbounds nuw i8, ptr %38, i64 48 + store ptr @"_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1E10_M_managerERSt9_Any_dataRKSF_St18_Manager_operation", ptr %499, align 8, !tbaa !1975 + %500 = getelementptr inbounds nuw i8, ptr %38, i64 56 + store ptr @"_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1E9_M_invokeERKSt9_Any_dataOS8_SA_", ptr %500, align 8, !tbaa !1975 %.pre = load ptr, ptr %418, align 8, !tbaa !88 invoke void @_ZN17cmDyndepCollation23AddCollationInformationERN4Json5ValueEPK17cmGeneratorTargetRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK26cmDyndepGeneratorCallbacks(ptr noundef nonnull align 8 dereferenceable(40) %9, ptr noundef %.pre, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(64) %38) - to label %516 unwind label %601 + to label %515 unwind label %600 -502: ; preds = %._crit_edge218 - %503 = landingpad { ptr, i32 } +501: ; preds = %._crit_edge218 + %502 = landingpad { ptr, i32 } cleanup - br label %506 + br label %505 -504: ; preds = %487 - %505 = landingpad { ptr, i32 } +503: ; preds = %487 + %504 = landingpad { ptr, i32 } cleanup call void @_ZN4Json5ValueD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %36) #29 - br label %506 + br label %505 -506: ; preds = %504, %502 - %.pn98 = phi { ptr, i32 } [ %505, %504 ], [ %503, %502 ] +505: ; preds = %503, %501 + %.pn98 = phi { ptr, i32 } [ %504, %503 ], [ %502, %501 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %36) #29 - br label %619 + br label %618 -.lr.ph222: ; preds = %489, %509 - %.sroa.0197.0220 = phi ptr [ %510, %509 ], [ %492, %489 ] +.lr.ph222: ; preds = %489, %508 + %.sroa.0197.0220 = phi ptr [ %509, %508 ], [ %492, %489 ] call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %37) #29 invoke void @_ZN4Json5ValueC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %37, ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0197.0220) - to label %507 unwind label %511 + to label %506 unwind label %510 -507: ; preds = %.lr.ph222 - %508 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN4Json5Value6appendEOS0_(ptr noundef nonnull align 8 dereferenceable(40) %490, ptr noundef nonnull align 8 dereferenceable(40) %37) - to label %509 unwind label %513 +506: ; preds = %.lr.ph222 + %507 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN4Json5Value6appendEOS0_(ptr noundef nonnull align 8 dereferenceable(40) %490, ptr noundef nonnull align 8 dereferenceable(40) %37) + to label %508 unwind label %512 -509: ; preds = %507 +508: ; preds = %506 call void @_ZN4Json5ValueD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %37) #29 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %37) #29 - %510 = getelementptr inbounds nuw i8, ptr %.sroa.0197.0220, i64 32 - %.not211 = icmp eq ptr %510, %494 + %509 = getelementptr inbounds nuw i8, ptr %.sroa.0197.0220, i64 32 + %.not211 = icmp eq ptr %509, %494 br i1 %.not211, label %"_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EEaSIZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1EENSt9enable_ifIXsr9_CallableIT_EE5valueERSC_E4typeEOSH_.exit", label %.lr.ph222 -511: ; preds = %.lr.ph222 - %512 = landingpad { ptr, i32 } +510: ; preds = %.lr.ph222 + %511 = landingpad { ptr, i32 } cleanup - br label %515 + br label %514 -513: ; preds = %507 - %514 = landingpad { ptr, i32 } +512: ; preds = %506 + %513 = landingpad { ptr, i32 } cleanup call void @_ZN4Json5ValueD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %37) #29 - br label %515 + br label %514 -515: ; preds = %513, %511 - %.pn104 = phi { ptr, i32 } [ %514, %513 ], [ %512, %511 ] +514: ; preds = %512, %510 + %.pn104 = phi { ptr, i32 } [ %513, %512 ], [ %511, %510 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %37) #29 - br label %619 + br label %618 -516: ; preds = %"_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EEaSIZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1EENSt9enable_ifIXsr9_CallableIT_EE5valueERSC_E4typeEOSH_.exit" +515: ; preds = %"_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EEaSIZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1EENSt9enable_ifIXsr9_CallableIT_EE5valueERSC_E4typeEOSH_.exit" call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #29 invoke void @_ZNK22cmNinjaTargetGenerator23GetTargetDependInfoPathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull align 8 dereferenceable(32) %2) - to label %517 unwind label %603 + to label %516 unwind label %602 -517: ; preds = %516 +516: ; preds = %515 call void @llvm.lifetime.start.p0(i64 616, ptr nonnull %40) #29 invoke void @_ZN21cmGeneratedFileStreamC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb16codecvt_Encoding(ptr noundef nonnull align 8 dereferenceable(348) %40, ptr noundef nonnull align 8 dereferenceable(32) %39, i1 noundef zeroext false, i32 noundef 0) - to label %518 unwind label %605 + to label %517 unwind label %604 -518: ; preds = %517 - %519 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4JsonlsERSoRKNS_5ValueE(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(40) %9) - to label %520 unwind label %607 +517: ; preds = %516 + %518 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4JsonlsERSoRKNS_5ValueE(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(40) %9) + to label %519 unwind label %606 -520: ; preds = %518 +519: ; preds = %517 call void @_ZN21cmGeneratedFileStreamD1Ev(ptr noundef nonnull align 8 dereferenceable(348) %40) #29 call void @llvm.lifetime.end.p0(i64 616, ptr nonnull %40) #29 - %521 = load ptr, ptr %39, align 8, !tbaa !72 - %522 = getelementptr inbounds nuw i8, ptr %39, i64 16 - %523 = icmp eq ptr %521, %522 - br i1 %523, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i182, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i181 - -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i182: ; preds = %520 - %524 = getelementptr inbounds nuw i8, ptr %39, i64 8 - %525 = load i64, ptr %524, align 8, !tbaa !74 - %526 = icmp ult i64 %525, 16 - call void @llvm.assume(i1 %526) + %520 = load ptr, ptr %39, align 8, !tbaa !72 + %521 = getelementptr inbounds nuw i8, ptr %39, i64 16 + %522 = icmp eq ptr %520, %521 + br i1 %522, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i182, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i181 + +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i182: ; preds = %519 + %523 = getelementptr inbounds nuw i8, ptr %39, i64 8 + %524 = load i64, ptr %523, align 8, !tbaa !74 + %525 = icmp ult i64 %524, 16 + call void @llvm.assume(i1 %525) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit183 -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i181: ; preds = %520 - %527 = load i64, ptr %522, align 8, !tbaa !76 - %528 = add i64 %527, 1 - call void @_ZdlPvm(ptr noundef %521, i64 noundef %528) #28 +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i181: ; preds = %519 + %526 = load i64, ptr %521, align 8, !tbaa !76 + %527 = add i64 %526, 1 + call void @_ZdlPvm(ptr noundef %520, i64 noundef %527) #28 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit183 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit183: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i182, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i181 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #29 - %529 = load ptr, ptr %500, align 8, !tbaa !1308 - %.not.i.i184 = icmp eq ptr %529, null - br i1 %.not.i.i184, label %_ZNSt14_Function_baseD2Ev.exit.i, label %530 + %528 = load ptr, ptr %499, align 8, !tbaa !1308 + %.not.i.i184 = icmp eq ptr %528, null + br i1 %.not.i.i184, label %_ZNSt14_Function_baseD2Ev.exit.i, label %529 -530: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit183 - %531 = invoke noundef zeroext i1 %529(ptr noundef nonnull align 8 dereferenceable(32) %499, ptr noundef nonnull align 8 dereferenceable(32) %499, i32 noundef 3) - to label %_ZNSt14_Function_baseD2Ev.exit.i unwind label %532 +529: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit183 + %530 = invoke noundef zeroext i1 %528(ptr noundef nonnull align 8 dereferenceable(32) %498, ptr noundef nonnull align 8 dereferenceable(32) %498, i32 noundef 3) + to label %_ZNSt14_Function_baseD2Ev.exit.i unwind label %531 -532: ; preds = %530 - %533 = landingpad { ptr, i32 } +531: ; preds = %529 + %532 = landingpad { ptr, i32 } catch ptr null - %534 = extractvalue { ptr, i32 } %533, 0 - call void @__clang_call_terminate(ptr %534) #30 + %533 = extractvalue { ptr, i32 } %532, 0 + call void @__clang_call_terminate(ptr %533) #30 unreachable -_ZNSt14_Function_baseD2Ev.exit.i: ; preds = %530, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit183 - %535 = load ptr, ptr %497, align 8, !tbaa !1308 - %.not.i1.i = icmp eq ptr %535, null - br i1 %.not.i1.i, label %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit, label %536 +_ZNSt14_Function_baseD2Ev.exit.i: ; preds = %529, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit183 + %534 = load ptr, ptr %496, align 8, !tbaa !1308 + %.not.i1.i = icmp eq ptr %534, null + br i1 %.not.i1.i, label %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit, label %535 -536: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i - %537 = invoke noundef zeroext i1 %535(ptr noundef nonnull align 8 dereferenceable(64) %38, ptr noundef nonnull align 8 dereferenceable(64) %38, i32 noundef 3) - to label %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit unwind label %538 +535: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i + %536 = invoke noundef zeroext i1 %534(ptr noundef nonnull align 8 dereferenceable(64) %38, ptr noundef nonnull align 8 dereferenceable(64) %38, i32 noundef 3) + to label %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit unwind label %537 -538: ; preds = %536 - %539 = landingpad { ptr, i32 } +537: ; preds = %535 + %538 = landingpad { ptr, i32 } catch ptr null - %540 = extractvalue { ptr, i32 } %539, 0 - call void @__clang_call_terminate(ptr %540) #30 + %539 = extractvalue { ptr, i32 } %538, 0 + call void @__clang_call_terminate(ptr %539) #30 unreachable -_ZN26cmDyndepGeneratorCallbacksD2Ev.exit: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i, %536 +_ZN26cmDyndepGeneratorCallbacksD2Ev.exit: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i, %535 call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %38) #29 - %541 = load ptr, ptr %491, align 8, !tbaa !339 - %542 = load ptr, ptr %493, align 8, !tbaa !340 - %.not4.i.i.i.i.i = icmp eq ptr %541, %542 + %540 = load ptr, ptr %491, align 8, !tbaa !339 + %541 = load ptr, ptr %493, align 8, !tbaa !340 + %.not4.i.i.i.i.i = icmp eq ptr %540, %541 br i1 %.not4.i.i.i.i.i, label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i.i, label %.lr.ph.i.i.i.i.i .lr.ph.i.i.i.i.i: ; preds = %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i - %.05.i.i.i.i.i = phi ptr [ %551, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i ], [ %541, %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit ] - %543 = load ptr, ptr %.05.i.i.i.i.i, align 8, !tbaa !72 - %544 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 16 - %545 = icmp eq ptr %543, %544 - br i1 %545, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i.i + %.05.i.i.i.i.i = phi ptr [ %550, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i ], [ %540, %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit ] + %542 = load ptr, ptr %.05.i.i.i.i.i, align 8, !tbaa !72 + %543 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 16 + %544 = icmp eq ptr %542, %543 + br i1 %544, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i - %546 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 8 - %547 = load i64, ptr %546, align 8, !tbaa !74 - %548 = icmp ult i64 %547, 16 - call void @llvm.assume(i1 %548) + %545 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 8 + %546 = load i64, ptr %545, align 8, !tbaa !74 + %547 = icmp ult i64 %546, 16 + call void @llvm.assume(i1 %547) br label %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i - %549 = load i64, ptr %544, align 8, !tbaa !76 - %550 = add i64 %549, 1 - call void @_ZdlPvm(ptr noundef %543, i64 noundef %550) #28 + %548 = load i64, ptr %543, align 8, !tbaa !76 + %549 = add i64 %548, 1 + call void @_ZdlPvm(ptr noundef %542, i64 noundef %549) #28 br label %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i _ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i.i, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i - %551 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 32 - %.not.i.i.i.i.i = icmp eq ptr %551, %542 + %550 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 32 + %.not.i.i.i.i.i = icmp eq ptr %550, %541 br i1 %.not.i.i.i.i.i, label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i.i, label %.lr.ph.i.i.i.i.i, !llvm.loop !341 _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i.i: ; preds = %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i @@ -49780,48 +49778,48 @@ _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSa br label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i.i _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i.i: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i.i, %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit - %552 = phi ptr [ %.pr.i.i, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i.i ], [ %541, %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit ] - %.not.i.i.i.i = icmp eq ptr %552, null - br i1 %.not.i.i.i.i, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i, label %553 - -553: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i.i - %554 = getelementptr inbounds nuw i8, ptr %34, i64 40 - %555 = load ptr, ptr %554, align 8, !tbaa !342 - %556 = ptrtoint ptr %555 to i64 - %557 = ptrtoint ptr %552 to i64 - %558 = sub i64 %556, %557 - call void @_ZdlPvm(ptr noundef nonnull %552, i64 noundef %558) #28 + %551 = phi ptr [ %.pr.i.i, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i.i ], [ %540, %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit ] + %.not.i.i.i.i = icmp eq ptr %551, null + br i1 %.not.i.i.i.i, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i, label %552 + +552: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i.i + %553 = getelementptr inbounds nuw i8, ptr %34, i64 40 + %554 = load ptr, ptr %553, align 8, !tbaa !342 + %555 = ptrtoint ptr %554 to i64 + %556 = ptrtoint ptr %551 to i64 + %557 = sub i64 %555, %556 + call void @_ZdlPvm(ptr noundef nonnull %551, i64 noundef %557) #28 br label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i -_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i: ; preds = %553, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i.i - %559 = load ptr, ptr %34, align 8, !tbaa !339 - %560 = load ptr, ptr %469, align 8, !tbaa !340 - %.not4.i.i.i.i1.i = icmp eq ptr %559, %560 +_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i: ; preds = %552, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i.i + %558 = load ptr, ptr %34, align 8, !tbaa !339 + %559 = load ptr, ptr %469, align 8, !tbaa !340 + %.not4.i.i.i.i1.i = icmp eq ptr %558, %559 br i1 %.not4.i.i.i.i1.i, label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i9.i, label %.lr.ph.i.i.i.i2.i .lr.ph.i.i.i.i2.i: ; preds = %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i5.i - %.05.i.i.i.i3.i = phi ptr [ %569, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i5.i ], [ %559, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i ] - %561 = load ptr, ptr %.05.i.i.i.i3.i, align 8, !tbaa !72 - %562 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i3.i, i64 16 - %563 = icmp eq ptr %561, %562 - br i1 %563, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i11.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i4.i + %.05.i.i.i.i3.i = phi ptr [ %568, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i5.i ], [ %558, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i ] + %560 = load ptr, ptr %.05.i.i.i.i3.i, align 8, !tbaa !72 + %561 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i3.i, i64 16 + %562 = icmp eq ptr %560, %561 + br i1 %562, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i11.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i4.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i11.i: ; preds = %.lr.ph.i.i.i.i2.i - %564 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i3.i, i64 8 - %565 = load i64, ptr %564, align 8, !tbaa !74 - %566 = icmp ult i64 %565, 16 - call void @llvm.assume(i1 %566) + %563 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i3.i, i64 8 + %564 = load i64, ptr %563, align 8, !tbaa !74 + %565 = icmp ult i64 %564, 16 + call void @llvm.assume(i1 %565) br label %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i5.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i4.i: ; preds = %.lr.ph.i.i.i.i2.i - %567 = load i64, ptr %562, align 8, !tbaa !76 - %568 = add i64 %567, 1 - call void @_ZdlPvm(ptr noundef %561, i64 noundef %568) #28 + %566 = load i64, ptr %561, align 8, !tbaa !76 + %567 = add i64 %566, 1 + call void @_ZdlPvm(ptr noundef %560, i64 noundef %567) #28 br label %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i5.i _ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i5.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i4.i, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i11.i - %569 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i3.i, i64 32 - %.not.i.i.i.i6.i = icmp eq ptr %569, %560 + %568 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i3.i, i64 32 + %.not.i.i.i.i6.i = icmp eq ptr %568, %559 br i1 %.not.i.i.i.i6.i, label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i7.i, label %.lr.ph.i.i.i.i2.i, !llvm.loop !341 _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i7.i: ; preds = %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i5.i @@ -49829,49 +49827,49 @@ _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSa br label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i9.i _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i9.i: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i7.i, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i - %570 = phi ptr [ %.pr.i8.i, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i7.i ], [ %559, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i ] - %.not.i.i.i10.i = icmp eq ptr %570, null - br i1 %.not.i.i.i10.i, label %_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit, label %571 - -571: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i9.i - %572 = getelementptr inbounds nuw i8, ptr %34, i64 16 - %573 = load ptr, ptr %572, align 8, !tbaa !342 - %574 = ptrtoint ptr %573 to i64 - %575 = ptrtoint ptr %570 to i64 - %576 = sub i64 %574, %575 - call void @_ZdlPvm(ptr noundef nonnull %570, i64 noundef %576) #28 + %569 = phi ptr [ %.pr.i8.i, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i7.i ], [ %558, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i ] + %.not.i.i.i10.i = icmp eq ptr %569, null + br i1 %.not.i.i.i10.i, label %_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit, label %570 + +570: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i9.i + %571 = getelementptr inbounds nuw i8, ptr %34, i64 16 + %572 = load ptr, ptr %571, align 8, !tbaa !342 + %573 = ptrtoint ptr %572 to i64 + %574 = ptrtoint ptr %569 to i64 + %575 = sub i64 %573, %574 + call void @_ZdlPvm(ptr noundef nonnull %569, i64 noundef %575) #28 br label %_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit -_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i9.i, %571 +_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i9.i, %570 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %34) #29 - %577 = load ptr, ptr %31, align 8, !tbaa !339 - %578 = load ptr, ptr %422, align 8, !tbaa !340 - %.not4.i.i.i.i = icmp eq ptr %577, %578 + %576 = load ptr, ptr %31, align 8, !tbaa !339 + %577 = load ptr, ptr %422, align 8, !tbaa !340 + %.not4.i.i.i.i = icmp eq ptr %576, %577 br i1 %.not4.i.i.i.i, label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i, label %.lr.ph.i.i.i.i .lr.ph.i.i.i.i: ; preds = %_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i - %.05.i.i.i.i = phi ptr [ %587, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i ], [ %577, %_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit ] - %579 = load ptr, ptr %.05.i.i.i.i, align 8, !tbaa !72 - %580 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i, i64 16 - %581 = icmp eq ptr %579, %580 - br i1 %581, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i + %.05.i.i.i.i = phi ptr [ %586, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i ], [ %576, %_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit ] + %578 = load ptr, ptr %.05.i.i.i.i, align 8, !tbaa !72 + %579 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i, i64 16 + %580 = icmp eq ptr %578, %579 + br i1 %580, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i - %582 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i, i64 8 - %583 = load i64, ptr %582, align 8, !tbaa !74 - %584 = icmp ult i64 %583, 16 - call void @llvm.assume(i1 %584) + %581 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i, i64 8 + %582 = load i64, ptr %581, align 8, !tbaa !74 + %583 = icmp ult i64 %582, 16 + call void @llvm.assume(i1 %583) br label %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i - %585 = load i64, ptr %580, align 8, !tbaa !76 - %586 = add i64 %585, 1 - call void @_ZdlPvm(ptr noundef %579, i64 noundef %586) #28 + %584 = load i64, ptr %579, align 8, !tbaa !76 + %585 = add i64 %584, 1 + call void @_ZdlPvm(ptr noundef %578, i64 noundef %585) #28 br label %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i _ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i - %587 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i, i64 32 - %.not.i.i.i.i185 = icmp eq ptr %587, %578 + %586 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i, i64 32 + %.not.i.i.i.i185 = icmp eq ptr %586, %577 br i1 %.not.i.i.i.i185, label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i, label %.lr.ph.i.i.i.i, !llvm.loop !341 _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i: ; preds = %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i @@ -49879,35 +49877,35 @@ _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSa br label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i, %_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit - %588 = phi ptr [ %.pr.i, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i ], [ %577, %_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit ] - %.not.i.i.i = icmp eq ptr %588, null - br i1 %.not.i.i.i, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit, label %589 - -589: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i - %590 = getelementptr inbounds nuw i8, ptr %31, i64 16 - %591 = load ptr, ptr %590, align 8, !tbaa !342 - %592 = ptrtoint ptr %591 to i64 - %593 = ptrtoint ptr %588 to i64 - %594 = sub i64 %592, %593 - call void @_ZdlPvm(ptr noundef nonnull %588, i64 noundef %594) #28 + %587 = phi ptr [ %.pr.i, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i ], [ %576, %_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit ] + %.not.i.i.i = icmp eq ptr %587, null + br i1 %.not.i.i.i, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit, label %588 + +588: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i + %589 = getelementptr inbounds nuw i8, ptr %31, i64 16 + %590 = load ptr, ptr %589, align 8, !tbaa !342 + %591 = ptrtoint ptr %590 to i64 + %592 = ptrtoint ptr %587 to i64 + %593 = sub i64 %591, %592 + call void @_ZdlPvm(ptr noundef nonnull %587, i64 noundef %593) #28 br label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit -_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i, %589 +_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i, %588 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #29 - %595 = load ptr, ptr %17, align 8, !tbaa !72 - %596 = icmp eq ptr %595, %116 - br i1 %596, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i187, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i186 + %594 = load ptr, ptr %17, align 8, !tbaa !72 + %595 = icmp eq ptr %594, %116 + br i1 %595, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i187, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i186 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i187: ; preds = %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit - %597 = load i64, ptr %117, align 8, !tbaa !74 - %598 = icmp ult i64 %597, 16 - call void @llvm.assume(i1 %598) + %596 = load i64, ptr %117, align 8, !tbaa !74 + %597 = icmp ult i64 %596, 16 + call void @llvm.assume(i1 %597) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit188 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i186: ; preds = %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit - %599 = load i64, ptr %116, align 8, !tbaa !76 - %600 = add i64 %599, 1 - call void @_ZdlPvm(ptr noundef %595, i64 noundef %600) #28 + %598 = load i64, ptr %116, align 8, !tbaa !76 + %599 = add i64 %598, 1 + call void @_ZdlPvm(ptr noundef %594, i64 noundef %599) #28 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit188 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit188: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i187, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i186 @@ -49916,98 +49914,98 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit188: ; preds = %_Z call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #29 ret void -601: ; preds = %"_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EEaSIZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1EENSt9enable_ifIXsr9_CallableIT_EE5valueERSC_E4typeEOSH_.exit" - %602 = landingpad { ptr, i32 } +600: ; preds = %"_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EEaSIZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1EENSt9enable_ifIXsr9_CallableIT_EE5valueERSC_E4typeEOSH_.exit" + %601 = landingpad { ptr, i32 } cleanup - br label %618 + br label %617 -603: ; preds = %516 - %604 = landingpad { ptr, i32 } +602: ; preds = %515 + %603 = landingpad { ptr, i32 } cleanup br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit191 -605: ; preds = %517 - %606 = landingpad { ptr, i32 } +604: ; preds = %516 + %605 = landingpad { ptr, i32 } cleanup - br label %609 + br label %608 -607: ; preds = %518 - %608 = landingpad { ptr, i32 } +606: ; preds = %517 + %607 = landingpad { ptr, i32 } cleanup call void @_ZN21cmGeneratedFileStreamD1Ev(ptr noundef nonnull align 8 dereferenceable(348) %40) #29 - br label %609 + br label %608 -609: ; preds = %607, %605 - %.pn100 = phi { ptr, i32 } [ %608, %607 ], [ %606, %605 ] +608: ; preds = %606, %604 + %.pn100 = phi { ptr, i32 } [ %607, %606 ], [ %605, %604 ] call void @llvm.lifetime.end.p0(i64 616, ptr nonnull %40) #29 - %610 = load ptr, ptr %39, align 8, !tbaa !72 - %611 = getelementptr inbounds nuw i8, ptr %39, i64 16 - %612 = icmp eq ptr %610, %611 - br i1 %612, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i190, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i189 - -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i190: ; preds = %609 - %613 = getelementptr inbounds nuw i8, ptr %39, i64 8 - %614 = load i64, ptr %613, align 8, !tbaa !74 - %615 = icmp ult i64 %614, 16 - call void @llvm.assume(i1 %615) + %609 = load ptr, ptr %39, align 8, !tbaa !72 + %610 = getelementptr inbounds nuw i8, ptr %39, i64 16 + %611 = icmp eq ptr %609, %610 + br i1 %611, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i190, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i189 + +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i190: ; preds = %608 + %612 = getelementptr inbounds nuw i8, ptr %39, i64 8 + %613 = load i64, ptr %612, align 8, !tbaa !74 + %614 = icmp ult i64 %613, 16 + call void @llvm.assume(i1 %614) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit191 -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i189: ; preds = %609 - %616 = load i64, ptr %611, align 8, !tbaa !76 - %617 = add i64 %616, 1 - call void @_ZdlPvm(ptr noundef %610, i64 noundef %617) #28 +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i189: ; preds = %608 + %615 = load i64, ptr %610, align 8, !tbaa !76 + %616 = add i64 %615, 1 + call void @_ZdlPvm(ptr noundef %609, i64 noundef %616) #28 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit191 -_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit191: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i189, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i190, %603 - %.pn100.pn = phi { ptr, i32 } [ %604, %603 ], [ %.pn100, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i190 ], [ %.pn100, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i189 ] +_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit191: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i189, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i190, %602 + %.pn100.pn = phi { ptr, i32 } [ %603, %602 ], [ %.pn100, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i190 ], [ %.pn100, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i189 ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #29 - br label %618 + br label %617 -618: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit191, %601 - %.pn100.pn.pn = phi { ptr, i32 } [ %.pn100.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit191 ], [ %602, %601 ] +617: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit191, %600 + %.pn100.pn.pn = phi { ptr, i32 } [ %.pn100.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit191 ], [ %601, %600 ] call void @_ZN26cmDyndepGeneratorCallbacksD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %38) #29 call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %38) #29 - br label %619 + br label %618 -619: ; preds = %506, %515, %618, %486 - %.pn107.pn = phi { ptr, i32 } [ %.pn107, %486 ], [ %.pn104, %515 ], [ %.pn100.pn.pn, %618 ], [ %.pn98, %506 ] +618: ; preds = %505, %514, %617, %486 + %.pn107.pn = phi { ptr, i32 } [ %.pn107, %486 ], [ %.pn104, %514 ], [ %.pn100.pn.pn, %617 ], [ %.pn98, %505 ] call void @_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %34) #29 - br label %620 + br label %619 -620: ; preds = %619, %476 - %.pn107.pn.pn = phi { ptr, i32 } [ %.pn107.pn, %619 ], [ %477, %476 ] +619: ; preds = %618, %476 + %.pn107.pn.pn = phi { ptr, i32 } [ %.pn107.pn, %618 ], [ %477, %476 ] call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %34) #29 - br label %621 + br label %620 -621: ; preds = %475, %620, %462, %449 - %.pn112.pn = phi { ptr, i32 } [ %.pn112, %462 ], [ %450, %449 ], [ %.pn107.pn.pn, %620 ], [ %.pn96, %475 ] +620: ; preds = %475, %619, %462, %449 + %.pn112.pn = phi { ptr, i32 } [ %.pn112, %462 ], [ %450, %449 ], [ %.pn107.pn.pn, %619 ], [ %.pn96, %475 ] call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #29 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #29 - br label %622 - -622: ; preds = %448, %621, %443, %438, %433, %428, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit173, %354, %298, %219, %217 - %.pn112.pn.pn.pn = phi { ptr, i32 } [ %.pn92, %443 ], [ %.pn90, %438 ], [ %.pn88, %433 ], [ %.pn86, %428 ], [ %.pn83.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176 ], [ %.pn80.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit173 ], [ %.pn78, %354 ], [ %218, %217 ], [ %220, %219 ], [ %.pn75.pn, %298 ], [ %.pn112.pn, %621 ], [ %.pn94, %448 ] - %623 = load ptr, ptr %17, align 8, !tbaa !72 - %624 = icmp eq ptr %623, %116 - br i1 %624, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i193, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i192 - -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i193: ; preds = %622 - %625 = load i64, ptr %117, align 8, !tbaa !74 - %626 = icmp ult i64 %625, 16 - call void @llvm.assume(i1 %626) + br label %621 + +621: ; preds = %448, %620, %443, %438, %433, %428, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit173, %354, %298, %219, %217 + %.pn112.pn.pn.pn = phi { ptr, i32 } [ %.pn92, %443 ], [ %.pn90, %438 ], [ %.pn88, %433 ], [ %.pn86, %428 ], [ %.pn83.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176 ], [ %.pn80.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit173 ], [ %.pn78, %354 ], [ %218, %217 ], [ %220, %219 ], [ %.pn75.pn, %298 ], [ %.pn112.pn, %620 ], [ %.pn94, %448 ] + %622 = load ptr, ptr %17, align 8, !tbaa !72 + %623 = icmp eq ptr %622, %116 + br i1 %623, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i193, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i192 + +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i193: ; preds = %621 + %624 = load i64, ptr %117, align 8, !tbaa !74 + %625 = icmp ult i64 %624, 16 + call void @llvm.assume(i1 %625) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit194 -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i192: ; preds = %622 - %627 = load i64, ptr %116, align 8, !tbaa !76 - %628 = add i64 %627, 1 - call void @_ZdlPvm(ptr noundef %623, i64 noundef %628) #28 +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i192: ; preds = %621 + %626 = load i64, ptr %116, align 8, !tbaa !76 + %627 = add i64 %626, 1 + call void @_ZdlPvm(ptr noundef %622, i64 noundef %627) #28 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit194 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit194: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i193, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i192 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #29 - br label %629 + br label %628 -629: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit194, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit143, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit140, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit137, %171 +628: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit194, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit143, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit140, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit137, %171 %.pn112.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn112.pn.pn.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit194 ], [ %.pn72.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit143 ], [ %.pn69.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit140 ], [ %.pn66.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit137 ], [ %.pn, %171 ] call void @_ZN4Json5ValueD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %9) #29 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #29 diff --git a/bench/cmake/optimized/cmProcessTools.ll b/bench/cmake/optimized/cmProcessTools.ll index 788e0d5fe7d..c48236b3933 100644 --- a/bench/cmake/optimized/cmProcessTools.ll +++ b/bench/cmake/optimized/cmProcessTools.ll @@ -150,8 +150,8 @@ define dso_local void @_ZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilde %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %34, i64 16 store ptr %11, ptr %.sroa.5.0..sroa_idx, align 16, !tbaa !29, !noalias !16 store ptr %34, ptr %35, align 8, !noalias !16 - %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %33, i64 32 - store i64 0, ptr %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx, align 8, !tbaa !15, !noalias !16 + %.sroa.463.0..sroa_idx = getelementptr inbounds nuw i8, ptr %33, i64 32 + store i64 0, ptr %.sroa.463.0..sroa_idx, align 8, !noalias !16 %36 = getelementptr inbounds nuw i8, ptr %33, i64 40 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS4_12OutputParserES8_N15cmProcessOutput8EncodingEE3$_0E10_M_managerERSt9_Any_dataRKSD_St18_Manager_operation", ptr %36, align 8, !tbaa !31, !noalias !16 %37 = getelementptr inbounds nuw i8, ptr %33, i64 48 @@ -159,8 +159,8 @@ define dso_local void @_ZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilde %38 = getelementptr inbounds nuw i8, ptr %33, i64 56 %39 = ptrtoint ptr %7 to i64 store i64 %39, ptr %38, align 8, !noalias !16 - %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %33, i64 64 - store i64 0, ptr %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx, align 8, !tbaa !15, !noalias !16 + %.sroa.466.0..sroa_idx = getelementptr inbounds nuw i8, ptr %33, i64 64 + store i64 0, ptr %.sroa.466.0..sroa_idx, align 8, !noalias !16 %40 = getelementptr inbounds nuw i8, ptr %33, i64 72 store ptr @"_ZNSt17_Function_handlerIFvvEZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS1_12OutputParserES5_N15cmProcessOutput8EncodingEE3$_1E10_M_managerERSt9_Any_dataRKSA_St18_Manager_operation", ptr %40, align 8, !tbaa !31, !noalias !16 %41 = getelementptr inbounds nuw i8, ptr %33, i64 80 @@ -215,24 +215,24 @@ define dso_local void @_ZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilde call void @llvm.experimental.noalias.scope.decl(metadata !41) call void @llvm.experimental.noalias.scope.decl(metadata !44) %61 = invoke noalias noundef nonnull dereferenceable(88) ptr @_Znwm(i64 noundef 88) #24 - to label %.noexc31 unwind label %92 + to label %.noexc29 unwind label %92 -.noexc31: ; preds = %60 +.noexc29: ; preds = %60 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %61, i8 0, i64 88, i1 false), !noalias !47 store ptr %61, ptr %15, align 8, !tbaa !23, !alias.scope !47 %62 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #24 to label %"_ZNSt8functionIFvvEEaSIZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS3_12OutputParserES7_N15cmProcessOutput8EncodingEE3$_3EENSt9enable_ifIXsr9_CallableIT_EE5valueERS1_E4typeEOSC_.exit.i" unwind label %71, !noalias !41 -"_ZNSt8functionIFvvEEaSIZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS3_12OutputParserES7_N15cmProcessOutput8EncodingEE3$_3EENSt9enable_ifIXsr9_CallableIT_EE5valueERS1_E4typeEOSC_.exit.i": ; preds = %.noexc31 +"_ZNSt8functionIFvvEEaSIZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS3_12OutputParserES7_N15cmProcessOutput8EncodingEE3$_3EENSt9enable_ifIXsr9_CallableIT_EE5valueERS1_E4typeEOSC_.exit.i": ; preds = %.noexc29 %63 = getelementptr inbounds nuw i8, ptr %61, i64 24 store ptr %8, ptr %62, align 16, !tbaa !25, !noalias !41 - %.sroa.471.0..sroa_idx = getelementptr inbounds nuw i8, ptr %62, i64 8 - store ptr %9, ptr %.sroa.471.0..sroa_idx, align 8, !tbaa !27, !noalias !41 - %.sroa.572.0..sroa_idx = getelementptr inbounds nuw i8, ptr %62, i64 16 - store ptr %11, ptr %.sroa.572.0..sroa_idx, align 16, !tbaa !29, !noalias !41 + %.sroa.469.0..sroa_idx = getelementptr inbounds nuw i8, ptr %62, i64 8 + store ptr %9, ptr %.sroa.469.0..sroa_idx, align 8, !tbaa !27, !noalias !41 + %.sroa.570.0..sroa_idx = getelementptr inbounds nuw i8, ptr %62, i64 16 + store ptr %11, ptr %.sroa.570.0..sroa_idx, align 16, !tbaa !29, !noalias !41 store ptr %62, ptr %63, align 8, !noalias !41 - %.sroa.0.i.i.i.i29.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %61, i64 32 - store i64 0, ptr %.sroa.0.i.i.i.i29.sroa.4.0..sroa_idx, align 8, !tbaa !15, !noalias !41 + %.sroa.472.0..sroa_idx = getelementptr inbounds nuw i8, ptr %61, i64 32 + store i64 0, ptr %.sroa.472.0..sroa_idx, align 8, !noalias !41 %64 = getelementptr inbounds nuw i8, ptr %61, i64 40 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS4_12OutputParserES8_N15cmProcessOutput8EncodingEE3$_2E10_M_managerERSt9_Any_dataRKSD_St18_Manager_operation", ptr %64, align 8, !tbaa !31, !noalias !41 %65 = getelementptr inbounds nuw i8, ptr %61, i64 48 @@ -240,8 +240,8 @@ define dso_local void @_ZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilde %66 = getelementptr inbounds nuw i8, ptr %61, i64 56 %67 = ptrtoint ptr %8 to i64 store i64 %67, ptr %66, align 8, !noalias !41 - %.sroa.0.i.i.i6.i28.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %61, i64 64 - store i64 0, ptr %.sroa.0.i.i.i6.i28.sroa.4.0..sroa_idx, align 8, !tbaa !15, !noalias !41 + %.sroa.475.0..sroa_idx = getelementptr inbounds nuw i8, ptr %61, i64 64 + store i64 0, ptr %.sroa.475.0..sroa_idx, align 8, !noalias !41 %68 = getelementptr inbounds nuw i8, ptr %61, i64 72 store ptr @"_ZNSt17_Function_handlerIFvvEZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS1_12OutputParserES5_N15cmProcessOutput8EncodingEE3$_3E10_M_managerERSt9_Any_dataRKSA_St18_Manager_operation", ptr %68, align 8, !tbaa !31, !noalias !41 %69 = getelementptr inbounds nuw i8, ptr %61, i64 80 @@ -250,7 +250,7 @@ define dso_local void @_ZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilde %70 = invoke i32 @uv_read_start(ptr noundef nonnull %59, ptr noundef nonnull @"_ZZ14cmUVStreamReadIZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS0_12OutputParserES4_N15cmProcessOutput8EncodingEE3$_2ZNS0_10RunProcessES2_S4_S4_S6_E3$_3ESt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteISA_EEP11uv_stream_sT_T0_ENUlP11uv_handle_smP8uv_buf_tE_8__invokeESJ_mSL_", ptr noundef nonnull @"_ZZ14cmUVStreamReadIZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS0_12OutputParserES4_N15cmProcessOutput8EncodingEE3$_2ZNS0_10RunProcessES2_S4_S4_S6_E3$_3ESt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteISA_EEP11uv_stream_sT_T0_ENUlSF_lPK8uv_buf_tE_8__invokeESF_lSK_") to label %"_Z14cmUVStreamReadIZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS0_12OutputParserES4_N15cmProcessOutput8EncodingEE3$_2ZNS0_10RunProcessES2_S4_S4_S6_E3$_3ESt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteISA_EEP11uv_stream_sT_T0_.exit" unwind label %73, !noalias !41 -71: ; preds = %.noexc31 +71: ; preds = %.noexc29 %72 = landingpad { ptr, i32 } cleanup br label %75 @@ -261,9 +261,9 @@ define dso_local void @_ZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilde br label %75 75: ; preds = %73, %71 - %.pn.i30 = phi { ptr, i32 } [ %74, %73 ], [ %72, %71 ] + %.pn.i28 = phi { ptr, i32 } [ %74, %73 ], [ %72, %71 ] call void @_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #23 - br label %.body32 + br label %.body30 "_Z14cmUVStreamReadIZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS0_12OutputParserES4_N15cmProcessOutput8EncodingEE3$_2ZNS0_10RunProcessES2_S4_S4_S6_E3$_3ESt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteISA_EEP11uv_stream_sT_T0_.exit": ; preds = %"_ZNSt8functionIFvvEEaSIZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS3_12OutputParserES7_N15cmProcessOutput8EncodingEE3$_3EENSt9enable_ifIXsr9_CallableIT_EE5valueERS1_E4typeEOSC_.exit.i", %84 %76 = load ptr, ptr %7, align 8, !tbaa !4 @@ -306,7 +306,7 @@ define dso_local void @_ZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilde 92: ; preds = %60, %58 %93 = landingpad { ptr, i32 } cleanup - br label %.body32 + br label %.body30 94: ; preds = %84, %.critedge, %80 %95 = landingpad { ptr, i32 } @@ -317,7 +317,7 @@ define dso_local void @_ZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilde call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #23 invoke void @_ZNK16cmUVProcessChain9GetStatusEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.25") align 8 %16, ptr noundef nonnull align 8 dereferenceable(8) %10) - to label %97 unwind label %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55.thread + to label %97 unwind label %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53.thread 97: ; preds = %96 %98 = load ptr, ptr %16, align 8, !tbaa !50 @@ -358,9 +358,9 @@ define dso_local void @_ZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilde 116: ; preds = %110 invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.3) #25 - to label %.noexc34 unwind label %.loopexit.split-lp + to label %.noexc32 unwind label %.loopexit.split-lp -.noexc34: ; preds = %116 +.noexc32: ; preds = %116 unreachable _ZNKSt6vectorIN16cmUVProcessChain6StatusESaIS1_EE12_M_check_lenEmPKc.exit.i.i.i.i.i: ; preds = %110 @@ -374,19 +374,19 @@ _ZNKSt6vectorIN16cmUVProcessChain6StatusESaIS1_EE12_M_check_lenEmPKc.exit.i.i.i. call void @llvm.assume(i1 %.not.i.i.i.i.i.i) %122 = mul nuw nsw i64 %121, 24 %123 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %122) #24 - to label %.noexc35 unwind label %.loopexit + to label %.noexc33 unwind label %.loopexit -.noexc35: ; preds = %_ZNKSt6vectorIN16cmUVProcessChain6StatusESaIS1_EE12_M_check_lenEmPKc.exit.i.i.i.i.i +.noexc33: ; preds = %_ZNKSt6vectorIN16cmUVProcessChain6StatusESaIS1_EE12_M_check_lenEmPKc.exit.i.i.i.i.i %124 = getelementptr inbounds i8, ptr %123, i64 %114 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %124, ptr noundef nonnull align 8 dereferenceable(24) %6, i64 24, i1 false), !tbaa.struct !54 %125 = icmp sgt i64 %114, 0 br i1 %125, label %126, label %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit16.i.i.i.i.i -126: ; preds = %.noexc35 +126: ; preds = %.noexc33 call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %123, ptr align 8 %111, i64 %114, i1 false) br label %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit16.i.i.i.i.i -_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit16.i.i.i.i.i: ; preds = %126, %.noexc35 +_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit16.i.i.i.i.i: ; preds = %126, %.noexc33 %127 = getelementptr inbounds nuw i8, ptr %124, i64 24 %.not.i17.i.i.i.i.i = icmp eq ptr %111, null br i1 %.not.i17.i.i.i.i.i, label %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_.exit.i.i.i.i, label %128 @@ -430,14 +430,14 @@ _ZNSt20back_insert_iteratorISt6vectorIN16cmUVProcessChain6StatusESaIS2_EEEaSEOS2 _ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit: ; preds = %"_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPPKN16cmUVProcessChain6StatusESt6vectorIS5_SaIS5_EEEESt20back_insert_iteratorIS7_IS3_SaIS3_EEEZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNSF_12OutputParserESJ_N15cmProcessOutput8EncodingEE3$_4ET0_T_SO_SN_T1_.exit", %133 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #23 %139 = load ptr, ptr %15, align 8, !tbaa !23 - %.not.i36 = icmp eq ptr %139, null - br i1 %.not.i36, label %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit, label %140 + %.not.i34 = icmp eq ptr %139, null + br i1 %.not.i34, label %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit, label %140 140: ; preds = %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit %141 = getelementptr inbounds nuw i8, ptr %139, i64 72 %142 = load ptr, ptr %141, align 8, !tbaa !67 - %.not.i.i.i.i37 = icmp eq ptr %142, null - br i1 %.not.i.i.i.i37, label %_ZNSt14_Function_baseD2Ev.exit.i.i.i, label %143 + %.not.i.i.i.i35 = icmp eq ptr %142, null + br i1 %.not.i.i.i.i35, label %_ZNSt14_Function_baseD2Ev.exit.i.i.i, label %143 143: ; preds = %140 %144 = getelementptr inbounds nuw i8, ptr %139, i64 56 @@ -471,8 +471,8 @@ _ZNSt14_Function_baseD2Ev.exit.i.i.i: ; preds = %143, %140 _ZNSt14_Function_baseD2Ev.exit2.i.i.i: ; preds = %151, %_ZNSt14_Function_baseD2Ev.exit.i.i.i %157 = load ptr, ptr %139, align 8, !tbaa !69 - %.not.i.i.i.i.i.i38 = icmp eq ptr %157, null - br i1 %.not.i.i.i.i.i.i38, label %_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i, label %158 + %.not.i.i.i.i.i.i36 = icmp eq ptr %157, null + br i1 %.not.i.i.i.i.i.i36, label %_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i, label %158 158: ; preds = %_ZNSt14_Function_baseD2Ev.exit2.i.i.i %159 = getelementptr inbounds nuw i8, ptr %139, i64 16 @@ -495,8 +495,8 @@ _ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit: ; pre 164: ; preds = %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit %165 = getelementptr inbounds nuw i8, ptr %14, i64 8 %166 = load ptr, ptr %165, align 8, !tbaa !72 - %.not.i.i.i39 = icmp eq ptr %166, null - br i1 %.not.i.i.i39, label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit, label %167 + %.not.i.i.i37 = icmp eq ptr %166, null + br i1 %.not.i.i.i37, label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit, label %167 167: ; preds = %164 %168 = getelementptr inbounds nuw i8, ptr %166, i64 8 @@ -521,8 +521,8 @@ _ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit: ; pre 180: ; preds = %167 %181 = load i8, ptr @__libc_single_threaded, align 1, !tbaa !15 - %.not.i.i.i.i40 = icmp eq i8 %181, 0 - br i1 %.not.i.i.i.i40, label %184, label %182 + %.not.i.i.i.i38 = icmp eq i8 %181, 0 + br i1 %.not.i.i.i.i38, label %184, label %182 182: ; preds = %180 %183 = add nsw i32 %171, -1 @@ -552,19 +552,19 @@ _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i: ; preds = %184, %18 _ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit: ; preds = %164, %172, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i, %187 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #23 %191 = load ptr, ptr %13, align 8, !tbaa !23 - %.not.i41 = icmp eq ptr %191, null - br i1 %.not.i41, label %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit48, label %192 + %.not.i39 = icmp eq ptr %191, null + br i1 %.not.i39, label %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit46, label %192 192: ; preds = %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit %193 = getelementptr inbounds nuw i8, ptr %191, i64 72 %194 = load ptr, ptr %193, align 8, !tbaa !67 - %.not.i.i.i.i42 = icmp eq ptr %194, null - br i1 %.not.i.i.i.i42, label %_ZNSt14_Function_baseD2Ev.exit.i.i.i43, label %195 + %.not.i.i.i.i40 = icmp eq ptr %194, null + br i1 %.not.i.i.i.i40, label %_ZNSt14_Function_baseD2Ev.exit.i.i.i41, label %195 195: ; preds = %192 %196 = getelementptr inbounds nuw i8, ptr %191, i64 56 %197 = invoke noundef zeroext i1 %194(ptr noundef nonnull align 8 dereferenceable(32) %196, ptr noundef nonnull align 8 dereferenceable(32) %196, i32 noundef 3) - to label %_ZNSt14_Function_baseD2Ev.exit.i.i.i43 unwind label %198 + to label %_ZNSt14_Function_baseD2Ev.exit.i.i.i41 unwind label %198 198: ; preds = %195 %199 = landingpad { ptr, i32 } @@ -573,16 +573,16 @@ _ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit: ; preds = %164, %172, %_ZN9__g call void @__clang_call_terminate(ptr %200) #27 unreachable -_ZNSt14_Function_baseD2Ev.exit.i.i.i43: ; preds = %195, %192 +_ZNSt14_Function_baseD2Ev.exit.i.i.i41: ; preds = %195, %192 %201 = getelementptr inbounds nuw i8, ptr %191, i64 40 %202 = load ptr, ptr %201, align 8, !tbaa !67 - %.not.i1.i.i.i44 = icmp eq ptr %202, null - br i1 %.not.i1.i.i.i44, label %_ZNSt14_Function_baseD2Ev.exit2.i.i.i45, label %203 + %.not.i1.i.i.i42 = icmp eq ptr %202, null + br i1 %.not.i1.i.i.i42, label %_ZNSt14_Function_baseD2Ev.exit2.i.i.i43, label %203 -203: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i.i.i43 +203: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i.i.i41 %204 = getelementptr inbounds nuw i8, ptr %191, i64 24 %205 = invoke noundef zeroext i1 %202(ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef nonnull align 8 dereferenceable(32) %204, i32 noundef 3) - to label %_ZNSt14_Function_baseD2Ev.exit2.i.i.i45 unwind label %206 + to label %_ZNSt14_Function_baseD2Ev.exit2.i.i.i43 unwind label %206 206: ; preds = %203 %207 = landingpad { ptr, i32 } @@ -591,34 +591,34 @@ _ZNSt14_Function_baseD2Ev.exit.i.i.i43: ; preds = %195, %192 call void @__clang_call_terminate(ptr %208) #27 unreachable -_ZNSt14_Function_baseD2Ev.exit2.i.i.i45: ; preds = %203, %_ZNSt14_Function_baseD2Ev.exit.i.i.i43 +_ZNSt14_Function_baseD2Ev.exit2.i.i.i43: ; preds = %203, %_ZNSt14_Function_baseD2Ev.exit.i.i.i41 %209 = load ptr, ptr %191, align 8, !tbaa !69 - %.not.i.i.i.i.i.i46 = icmp eq ptr %209, null - br i1 %.not.i.i.i.i.i.i46, label %_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i47, label %210 + %.not.i.i.i.i.i.i44 = icmp eq ptr %209, null + br i1 %.not.i.i.i.i.i.i44, label %_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i45, label %210 -210: ; preds = %_ZNSt14_Function_baseD2Ev.exit2.i.i.i45 +210: ; preds = %_ZNSt14_Function_baseD2Ev.exit2.i.i.i43 %211 = getelementptr inbounds nuw i8, ptr %191, i64 16 %212 = load ptr, ptr %211, align 8, !tbaa !71 %213 = ptrtoint ptr %212 to i64 %214 = ptrtoint ptr %209 to i64 %215 = sub i64 %213, %214 call void @_ZdlPvm(ptr noundef nonnull %209, i64 noundef %215) #26 - br label %_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i47 + br label %_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i45 -_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i47: ; preds = %210, %_ZNSt14_Function_baseD2Ev.exit2.i.i.i45 +_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i45: ; preds = %210, %_ZNSt14_Function_baseD2Ev.exit2.i.i.i43 call void @_ZdlPvm(ptr noundef nonnull %191, i64 noundef 88) #26 - br label %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit48 + br label %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit46 -_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit48: ; preds = %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit, %_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i47 +_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit46: ; preds = %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit, %_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i45 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #23 invoke void @_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sE5resetEv(ptr noundef nonnull align 8 dereferenceable(16) %12) to label %216 unwind label %240 -216: ; preds = %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit48 +216: ; preds = %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit46 %217 = getelementptr inbounds nuw i8, ptr %12, i64 8 %218 = load ptr, ptr %217, align 8, !tbaa !72 - %.not.i.i.i49 = icmp eq ptr %218, null - br i1 %.not.i.i.i49, label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit53, label %219 + %.not.i.i.i47 = icmp eq ptr %218, null + br i1 %.not.i.i.i47, label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit51, label %219 219: ; preds = %216 %220 = getelementptr inbounds nuw i8, ptr %218, i64 8 @@ -639,51 +639,51 @@ _ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit48: ; p %230 = getelementptr inbounds nuw i8, ptr %229, i64 24 %231 = load ptr, ptr %230, align 8 call void %231(ptr noundef nonnull align 8 dereferenceable(16) %218) #23 - br label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit53 + br label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit51 232: ; preds = %219 %233 = load i8, ptr @__libc_single_threaded, align 1, !tbaa !15 - %.not.i.i.i.i50 = icmp eq i8 %233, 0 - br i1 %.not.i.i.i.i50, label %236, label %234 + %.not.i.i.i.i48 = icmp eq i8 %233, 0 + br i1 %.not.i.i.i.i48, label %236, label %234 234: ; preds = %232 %235 = add nsw i32 %223, -1 store i32 %235, ptr %220, align 4, !tbaa !55 - br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i51 + br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i49 236: ; preds = %232 %237 = atomicrmw volatile add ptr %220, i32 -1 acq_rel, align 4 - br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i51 + br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i49 -_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i51: ; preds = %236, %234 - %.0.i.i.i.i.i52 = phi i32 [ %223, %234 ], [ %237, %236 ] - %238 = icmp eq i32 %.0.i.i.i.i.i52, 1 - br i1 %238, label %239, label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit53, !prof !80 +_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i49: ; preds = %236, %234 + %.0.i.i.i.i.i50 = phi i32 [ %223, %234 ], [ %237, %236 ] + %238 = icmp eq i32 %.0.i.i.i.i.i50, 1 + br i1 %238, label %239, label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit51, !prof !80 -239: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i51 +239: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i49 call void @_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv(ptr noundef nonnull align 8 dereferenceable(16) %218) #23 - br label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit53 + br label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit51 -240: ; preds = %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit48 +240: ; preds = %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit46 %241 = landingpad { ptr, i32 } catch ptr null %242 = extractvalue { ptr, i32 } %241, 0 call void @__clang_call_terminate(ptr %242) #27 unreachable -_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit53: ; preds = %216, %224, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i51, %239 +_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit51: ; preds = %216, %224, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i49, %239 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #23 %243 = load ptr, ptr %11, align 8, !tbaa !81 %244 = icmp eq ptr %243, %19 br i1 %244, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i: ; preds = %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit53 +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i: ; preds = %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit51 %245 = load i64, ptr %20, align 8, !tbaa !12 %246 = icmp ult i64 %245, 16 call void @llvm.assume(i1 %246) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i: ; preds = %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit53 +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i: ; preds = %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit51 %247 = load i64, ptr %19, align 8, !tbaa !15 %248 = add i64 %247, 1 call void @_ZdlPvm(ptr noundef %243, i64 noundef %248) #26 @@ -696,7 +696,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %_ZNKS call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #23 ret void -_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55.thread: ; preds = %96 +_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53.thread: ; preds = %96 %249 = landingpad { ptr, i32 } cleanup call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #23 @@ -715,8 +715,8 @@ _ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55.thread: ; preds = 250: ; preds = %.loopexit.split-lp, %.loopexit %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] %251 = load ptr, ptr %16, align 8, !tbaa !64 - %.not.i.i.i54 = icmp eq ptr %251, null - br i1 %.not.i.i.i54, label %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55, label %252 + %.not.i.i.i52 = icmp eq ptr %251, null + br i1 %.not.i.i.i52, label %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53, label %252 252: ; preds = %250 %253 = getelementptr inbounds nuw i8, ptr %16, i64 16 @@ -725,32 +725,32 @@ _ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55.thread: ; preds = %256 = ptrtoint ptr %251 to i64 %257 = sub i64 %255, %256 call void @_ZdlPvm(ptr noundef nonnull %251, i64 noundef %257) #26 - br label %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55 + br label %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53 -_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55: ; preds = %252, %250 +_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53: ; preds = %252, %250 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #23 - %.not.i.i.i56 = icmp eq ptr %111, null - br i1 %.not.i.i.i56, label %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit, label %258 + %.not.i.i.i54 = icmp eq ptr %111, null + br i1 %.not.i.i.i54, label %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit, label %258 -258: ; preds = %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55 +258: ; preds = %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53 %259 = ptrtoint ptr %104 to i64 %260 = ptrtoint ptr %111 to i64 %261 = sub i64 %259, %260 call void @_ZdlPvm(ptr noundef nonnull %111, i64 noundef %261) #26 br label %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit -_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit: ; preds = %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55.thread, %258, %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55, %94 - %.pn20 = phi { ptr, i32 } [ %95, %94 ], [ %lpad.phi, %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55 ], [ %lpad.phi, %258 ], [ %249, %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55.thread ] +_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit: ; preds = %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53.thread, %258, %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53, %94 + %.pn20 = phi { ptr, i32 } [ %95, %94 ], [ %lpad.phi, %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53 ], [ %lpad.phi, %258 ], [ %249, %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53.thread ] call void @_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #23 - br label %.body32 + br label %.body30 -.body32: ; preds = %92, %75, %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit - %.pn20.pn = phi { ptr, i32 } [ %.pn20, %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit ], [ %93, %92 ], [ %.pn.i30, %75 ] +.body30: ; preds = %92, %75, %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit + %.pn20.pn = phi { ptr, i32 } [ %.pn20, %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit ], [ %93, %92 ], [ %.pn.i28, %75 ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #23 br label %262 -262: ; preds = %.body32, %90 - %.pn20.pn.pn = phi { ptr, i32 } [ %.pn20.pn, %.body32 ], [ %91, %90 ] +262: ; preds = %.body30, %90 + %.pn20.pn.pn = phi { ptr, i32 } [ %.pn20.pn, %.body30 ], [ %91, %90 ] call void @_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #23 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #23 call void @_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #23 @@ -767,21 +767,21 @@ _ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit: ; preds = %_ZNSt6vect call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #23 %264 = load ptr, ptr %11, align 8, !tbaa !81 %265 = icmp eq ptr %264, %19 - br i1 %265, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i58, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i57 + br i1 %265, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i56, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i55 -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i58: ; preds = %263 +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i56: ; preds = %263 %266 = load i64, ptr %20, align 8, !tbaa !12 %267 = icmp ult i64 %266, 16 call void @llvm.assume(i1 %267) - br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit59 + br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit57 -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i57: ; preds = %263 +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i55: ; preds = %263 %268 = load i64, ptr %19, align 8, !tbaa !15 %269 = add i64 %268, 1 call void @_ZdlPvm(ptr noundef %264, i64 noundef %269) #26 - br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit59 + br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit57 -_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit59: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i58, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i57 +_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit57: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i56, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i55 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #23 call void @_ZN16cmUVProcessChainD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #23 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #23 diff --git a/bench/cmake/optimized/cmSystemTools.ll b/bench/cmake/optimized/cmSystemTools.ll index 7bf138c0ea9..45e13db1db5 100644 --- a/bench/cmake/optimized/cmSystemTools.ll +++ b/bench/cmake/optimized/cmSystemTools.ll @@ -4894,8 +4894,8 @@ define internal fastcc void @"_ZZN13cmSystemTools16RunSingleCommandERKSt6vectorI %.sroa.10.0..sroa_idx = getelementptr inbounds nuw i8, ptr %25, i64 40 store ptr %7, ptr %.sroa.10.0..sroa_idx, align 8, !tbaa !63, !noalias !179 store ptr %25, ptr %27, align 8, !noalias !179 - %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 32 - store i64 0, ptr %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx, align 8, !tbaa !26, !noalias !179 + %.sroa.434.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 32 + store i64 0, ptr %.sroa.434.0..sroa_idx, align 8, !noalias !179 %28 = getelementptr inbounds nuw i8, ptr %24, i64 40 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZZN13cmSystemTools16RunSingleCommandERKS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcES1_EESaIS9_EEPS9_SE_PiPKcNS4_12OutputOptionENSt6chrono8durationIdSt5ratioILl1ELl1EEEEN15cmProcessOutput8EncodingEENK3$_1clERN2cm11uv_pipe_ptrEiSE_RS2_iPFvRKS9_ERbEUlS2_E_E10_M_managerERSt9_Any_dataRKS12_St18_Manager_operation", ptr %28, align 8, !tbaa !63, !noalias !179 %29 = getelementptr inbounds nuw i8, ptr %24, i64 48 @@ -4915,8 +4915,8 @@ define internal fastcc void @"_ZZN13cmSystemTools16RunSingleCommandERKSt6vectorI %.sroa.932.0..sroa_idx = getelementptr inbounds nuw i8, ptr %30, i64 32 store ptr %7, ptr %.sroa.932.0..sroa_idx, align 16, !tbaa !63, !noalias !179 store ptr %30, ptr %32, align 8, !noalias !179 - %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 64 - store i64 0, ptr %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx, align 8, !tbaa !26, !noalias !179 + %.sroa.437.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 64 + store i64 0, ptr %.sroa.437.0..sroa_idx, align 8, !noalias !179 %33 = getelementptr inbounds nuw i8, ptr %24, i64 72 store ptr @"_ZNSt17_Function_handlerIFvvEZZN13cmSystemTools16RunSingleCommandERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEPS8_SD_PiPKcNS1_12OutputOptionENSt6chrono8durationIdSt5ratioILl1ELl1EEEEN15cmProcessOutput8EncodingEENK3$_1clERN2cm11uv_pipe_ptrEiSD_RS2_IcS7_EiPFvRKS8_ERbEUlvE_E10_M_managerERSt9_Any_dataRKS12_St18_Manager_operation", ptr %33, align 8, !tbaa !63, !noalias !179 %34 = getelementptr inbounds nuw i8, ptr %24, i64 80 @@ -18265,16 +18265,16 @@ _ZSt4moveIN9__gnu_cxx17__normal_iteratorIPcSt6vectorIcSaIcEEEES6_ET0_T_S8_S7_.ex store ptr %124, ptr %11, align 8, !tbaa !149, !alias.scope !498 %125 = getelementptr inbounds nuw i8, ptr %124, i64 24 store i64 %27, ptr %125, align 8, !noalias !499 - %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %124, i64 32 - store i64 0, ptr %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx.i, align 8, !tbaa !26, !noalias !499 + %.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %124, i64 32 + store i64 0, ptr %.sroa.4.0..sroa_idx.i, align 8, !noalias !499 %126 = getelementptr inbounds nuw i8, ptr %124, i64 40 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZZN13cmSystemTools11WaitForLineEP9uv_loop_sP11uv_stream_sS8_RNSt7__cxx1112basic_stringIcSt11char_traitsIcES1_EENSt6chrono8durationIdSt5ratioILl1ELl1EEEERS2_SK_ENK3$_0clES8_RZNS4_11WaitForLineES6_S8_S8_SE_SJ_SK_SK_E8ReadDataEUlS2_E_E10_M_managerERSt9_Any_dataRKSQ_St18_Manager_operation", ptr %126, align 8, !tbaa !63, !noalias !499 %127 = getelementptr inbounds nuw i8, ptr %124, i64 48 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZZN13cmSystemTools11WaitForLineEP9uv_loop_sP11uv_stream_sS8_RNSt7__cxx1112basic_stringIcSt11char_traitsIcES1_EENSt6chrono8durationIdSt5ratioILl1ELl1EEEERS2_SK_ENK3$_0clES8_RZNS4_11WaitForLineES6_S8_S8_SE_SJ_SK_SK_E8ReadDataEUlS2_E_E9_M_invokeERKSt9_Any_dataOS2_", ptr %127, align 8, !tbaa !63, !noalias !499 %128 = getelementptr inbounds nuw i8, ptr %124, i64 56 store i64 %27, ptr %128, align 8, !noalias !499 - %.sroa.0.i.i.i5.i.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %124, i64 64 - store i64 0, ptr %.sroa.0.i.i.i5.i.sroa.4.0..sroa_idx.i, align 8, !tbaa !26, !noalias !499 + %.sroa.42.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %124, i64 64 + store i64 0, ptr %.sroa.42.0..sroa_idx.i, align 8, !noalias !499 %129 = getelementptr inbounds nuw i8, ptr %124, i64 72 store ptr @"_ZNSt17_Function_handlerIFvvEZZN13cmSystemTools11WaitForLineEP9uv_loop_sP11uv_stream_sS5_RNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENSt6chrono8durationIdSt5ratioILl1ELl1EEEERSt6vectorIcSA_ESK_ENK3$_0clES5_RZNS1_11WaitForLineES3_S5_S5_SC_SH_SK_SK_E8ReadDataEUlvE_E10_M_managerERSt9_Any_dataRKSQ_St18_Manager_operation", ptr %129, align 8, !tbaa !63, !noalias !499 %130 = getelementptr inbounds nuw i8, ptr %124, i64 80 @@ -18305,16 +18305,16 @@ _ZSt4moveIN9__gnu_cxx17__normal_iteratorIPcSt6vectorIcSaIcEEEES6_ET0_T_S8_S7_.ex store ptr %134, ptr %13, align 8, !tbaa !149, !alias.scope !509 %135 = getelementptr inbounds nuw i8, ptr %134, i64 24 store i64 %29, ptr %135, align 8, !noalias !510 - %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx.i129 = getelementptr inbounds nuw i8, ptr %134, i64 32 - store i64 0, ptr %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx.i129, align 8, !tbaa !26, !noalias !510 + %.sroa.4.0..sroa_idx.i129 = getelementptr inbounds nuw i8, ptr %134, i64 32 + store i64 0, ptr %.sroa.4.0..sroa_idx.i129, align 8, !noalias !510 %136 = getelementptr inbounds nuw i8, ptr %134, i64 40 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZZN13cmSystemTools11WaitForLineEP9uv_loop_sP11uv_stream_sS8_RNSt7__cxx1112basic_stringIcSt11char_traitsIcES1_EENSt6chrono8durationIdSt5ratioILl1ELl1EEEERS2_SK_ENK3$_0clES8_RZNS4_11WaitForLineES6_S8_S8_SE_SJ_SK_SK_E8ReadDataEUlS2_E_E10_M_managerERSt9_Any_dataRKSQ_St18_Manager_operation", ptr %136, align 8, !tbaa !63, !noalias !510 %137 = getelementptr inbounds nuw i8, ptr %134, i64 48 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZZN13cmSystemTools11WaitForLineEP9uv_loop_sP11uv_stream_sS8_RNSt7__cxx1112basic_stringIcSt11char_traitsIcES1_EENSt6chrono8durationIdSt5ratioILl1ELl1EEEERS2_SK_ENK3$_0clES8_RZNS4_11WaitForLineES6_S8_S8_SE_SJ_SK_SK_E8ReadDataEUlS2_E_E9_M_invokeERKSt9_Any_dataOS2_", ptr %137, align 8, !tbaa !63, !noalias !510 %138 = getelementptr inbounds nuw i8, ptr %134, i64 56 store i64 %29, ptr %138, align 8, !noalias !510 - %.sroa.0.i.i.i5.i.sroa.4.0..sroa_idx.i130 = getelementptr inbounds nuw i8, ptr %134, i64 64 - store i64 0, ptr %.sroa.0.i.i.i5.i.sroa.4.0..sroa_idx.i130, align 8, !tbaa !26, !noalias !510 + %.sroa.42.0..sroa_idx.i130 = getelementptr inbounds nuw i8, ptr %134, i64 64 + store i64 0, ptr %.sroa.42.0..sroa_idx.i130, align 8, !noalias !510 %139 = getelementptr inbounds nuw i8, ptr %134, i64 72 store ptr @"_ZNSt17_Function_handlerIFvvEZZN13cmSystemTools11WaitForLineEP9uv_loop_sP11uv_stream_sS5_RNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENSt6chrono8durationIdSt5ratioILl1ELl1EEEERSt6vectorIcSA_ESK_ENK3$_0clES5_RZNS1_11WaitForLineES3_S5_S5_SC_SH_SK_SK_E8ReadDataEUlvE_E10_M_managerERSt9_Any_dataRKSQ_St18_Manager_operation", ptr %139, align 8, !tbaa !63, !noalias !510 %140 = getelementptr inbounds nuw i8, ptr %134, i64 80 diff --git a/bench/fish-rs/optimized/13v7qjk9d4erkgv5w97enxlzt.ll b/bench/fish-rs/optimized/13v7qjk9d4erkgv5w97enxlzt.ll index 1aad4b79a21..45a6ffd907d 100644 --- a/bench/fish-rs/optimized/13v7qjk9d4erkgv5w97enxlzt.ll +++ b/bench/fish-rs/optimized/13v7qjk9d4erkgv5w97enxlzt.ll @@ -40750,7 +40750,7 @@ _ZN4fish4proc7Process15get_wait_handle17h17bdbc635f4f0a68E.exit: ; preds = %46, } ; Function Attrs: nonlazybind uwtable -define void @_ZN4fish4proc3Job3new17h6109bc2e2519bbb6E(ptr dead_on_unwind noalias noundef writable writeonly sret([88 x i8]) align 8 captures(none) dereferenceable(88) initializes((0, 83)) %0, i24 %1, ptr noalias noundef readonly align 8 captures(none) dereferenceable(24) %2) unnamed_addr #1 { +define void @_ZN4fish4proc3Job3new17h6109bc2e2519bbb6E(ptr dead_on_unwind noalias noundef writable writeonly sret([88 x i8]) align 8 captures(none) dereferenceable(88) initializes((0, 77), (80, 83)) %0, i24 %1, ptr noalias noundef readonly align 8 captures(none) dereferenceable(24) %2) unnamed_addr #1 { %4 = alloca [88 x i8], align 8 %5 = atomicrmw add ptr @_ZN4fish4proc3Job3new20NEXT_INTERNAL_JOB_ID17hb031edae22ba0f4bE, i64 1 monotonic, align 8 call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %4) @@ -40769,19 +40769,18 @@ define void @_ZN4fish4proc3Job3new17h6109bc2e2519bbb6E(ptr dead_on_unwind noalia call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.515.0..sroa_idx, i8 0, i64 16, i1 false) store ptr inttoptr (i64 8 to ptr), ptr %.sroa.45.0..sroa_idx, align 8 %.sroa.56.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 40 - %8 = getelementptr inbounds nuw i8, ptr %4, i64 64 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(37) %.sroa.56.0..sroa_idx, i8 0, i64 37, i1 false) - %9 = getelementptr inbounds nuw i8, ptr %0, i64 80 - store i24 %1, ptr %9, align 8 + %8 = getelementptr inbounds nuw i8, ptr %0, i64 80 + store i24 %1, ptr %8, align 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %2, i64 24, i1 false) - %10 = getelementptr inbounds nuw i8, ptr %0, i64 24 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(24) %7, i64 24, i1 false) - %11 = getelementptr inbounds nuw i8, ptr %0, i64 48 - store ptr null, ptr %11, align 8 - %12 = getelementptr inbounds nuw i8, ptr %0, i64 56 - store i64 %5, ptr %12, align 8 - %13 = getelementptr inbounds nuw i8, ptr %0, i64 64 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 8 dereferenceable(16) %8, i64 16, i1 false) + %9 = getelementptr inbounds nuw i8, ptr %0, i64 24 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %7, i64 24, i1 false) + %10 = getelementptr inbounds nuw i8, ptr %0, i64 48 + store ptr null, ptr %10, align 8 + %11 = getelementptr inbounds nuw i8, ptr %0, i64 56 + store i64 %5, ptr %11, align 8 + %12 = getelementptr inbounds nuw i8, ptr %0, i64 64 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(13) %12, i8 0, i64 13, i1 false) call void @"_ZN4core3ptr55drop_in_place$LT$widestring..utfstring..Utf32String$GT$17ha7bfb33de0f2dd54E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %4) call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %4) ret void diff --git a/bench/lean4/optimized/ir_interpreter.ll b/bench/lean4/optimized/ir_interpreter.ll index 8b133fa467b..250965e157b 100644 --- a/bench/lean4/optimized/ir_interpreter.ll +++ b/bench/lean4/optimized/ir_interpreter.ll @@ -6980,211 +6980,210 @@ define linkonce_odr hidden noundef ptr @_ZNK4lean6rb_mapINS_4nameENS_2ir11interp 14: ; preds = %13 invoke void @lean_inc_ref_cold(ptr noundef nonnull %6) - to label %15 unwind label %84 + to label %15 unwind label %83 15: ; preds = %2, %11, %13, %14 %16 = getelementptr inbounds nuw i8, ptr %3, i64 8 store ptr inttoptr (i64 1 to ptr), ptr %16, align 8, !tbaa !6, !alias.scope !186 %17 = getelementptr inbounds nuw i8, ptr %3, i64 16 - %18 = getelementptr inbounds nuw i8, ptr %4, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(16) %18, i64 16, i1 false), !tbaa.struct !163 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %17, i8 0, i64 16, i1 false) %.01127.i = load ptr, ptr %0, align 8, !tbaa !187 %.not28.i = icmp eq ptr %.01127.i, null br i1 %.not28.i, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit, label %.lr.ph.i -.lr.ph.i: ; preds = %15, %41 - %.01129.i = phi ptr [ %.011.i, %41 ], [ %.01127.i, %15 ] - %19 = getelementptr inbounds nuw i8, ptr %.01129.i, i64 16 - %20 = load ptr, ptr %3, align 8, !tbaa !6 - %21 = load ptr, ptr %19, align 8, !tbaa !6 - %22 = icmp eq ptr %20, %21 - br i1 %22, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit, label %23 +.lr.ph.i: ; preds = %15, %40 + %.01129.i = phi ptr [ %.011.i, %40 ], [ %.01127.i, %15 ] + %18 = getelementptr inbounds nuw i8, ptr %.01129.i, i64 16 + %19 = load ptr, ptr %3, align 8, !tbaa !6 + %20 = load ptr, ptr %18, align 8, !tbaa !6 + %21 = icmp eq ptr %19, %20 + br i1 %21, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit, label %22 -23: ; preds = %.lr.ph.i - %24 = ptrtoint ptr %20 to i64 - %25 = and i64 %24, 1 - %.not.i.i.i.i.i.i.i.i = icmp eq i64 %25, 0 - br i1 %.not.i.i.i.i.i.i.i.i, label %26, label %_ZNK4lean4name4hashEv.exit.i.i.i.i.i +22: ; preds = %.lr.ph.i + %23 = ptrtoint ptr %19 to i64 + %24 = and i64 %23, 1 + %.not.i.i.i.i.i.i.i.i = icmp eq i64 %24, 0 + br i1 %.not.i.i.i.i.i.i.i.i, label %25, label %_ZNK4lean4name4hashEv.exit.i.i.i.i.i -26: ; preds = %23 - %27 = getelementptr i8, ptr %20, i64 24 - %.val.i.i.i.i.i.i.i.i = load i64, ptr %27, align 8, !tbaa !22 - %28 = trunc i64 %.val.i.i.i.i.i.i.i.i to i32 +25: ; preds = %22 + %26 = getelementptr i8, ptr %19, i64 24 + %.val.i.i.i.i.i.i.i.i = load i64, ptr %26, align 8, !tbaa !22 + %27 = trunc i64 %.val.i.i.i.i.i.i.i.i to i32 br label %_ZNK4lean4name4hashEv.exit.i.i.i.i.i -_ZNK4lean4name4hashEv.exit.i.i.i.i.i: ; preds = %26, %23 - %.0.i.i.i.i.i.i.i.i = phi i32 [ %28, %26 ], [ 1723, %23 ] - %29 = ptrtoint ptr %21 to i64 - %30 = and i64 %29, 1 - %.not.i.i.i14.i.i.i.i.i = icmp eq i64 %30, 0 - br i1 %.not.i.i.i14.i.i.i.i.i, label %31, label %_ZNK4lean4name4hashEv.exit17.i.i.i.i.i - -31: ; preds = %_ZNK4lean4name4hashEv.exit.i.i.i.i.i - %32 = getelementptr i8, ptr %21, i64 24 - %.val.i.i.i16.i.i.i.i.i = load i64, ptr %32, align 8, !tbaa !22 - %33 = trunc i64 %.val.i.i.i16.i.i.i.i.i to i32 +_ZNK4lean4name4hashEv.exit.i.i.i.i.i: ; preds = %25, %22 + %.0.i.i.i.i.i.i.i.i = phi i32 [ %27, %25 ], [ 1723, %22 ] + %28 = ptrtoint ptr %20 to i64 + %29 = and i64 %28, 1 + %.not.i.i.i14.i.i.i.i.i = icmp eq i64 %29, 0 + br i1 %.not.i.i.i14.i.i.i.i.i, label %30, label %_ZNK4lean4name4hashEv.exit17.i.i.i.i.i + +30: ; preds = %_ZNK4lean4name4hashEv.exit.i.i.i.i.i + %31 = getelementptr i8, ptr %20, i64 24 + %.val.i.i.i16.i.i.i.i.i = load i64, ptr %31, align 8, !tbaa !22 + %32 = trunc i64 %.val.i.i.i16.i.i.i.i.i to i32 br label %_ZNK4lean4name4hashEv.exit17.i.i.i.i.i -_ZNK4lean4name4hashEv.exit17.i.i.i.i.i: ; preds = %31, %_ZNK4lean4name4hashEv.exit.i.i.i.i.i - %.0.i.i.i15.i.i.i.i.i = phi i32 [ %33, %31 ], [ 1723, %_ZNK4lean4name4hashEv.exit.i.i.i.i.i ] +_ZNK4lean4name4hashEv.exit17.i.i.i.i.i: ; preds = %30, %_ZNK4lean4name4hashEv.exit.i.i.i.i.i + %.0.i.i.i15.i.i.i.i.i = phi i32 [ %32, %30 ], [ 1723, %_ZNK4lean4name4hashEv.exit.i.i.i.i.i ] %.not.i.i.i.i.i = icmp eq i32 %.0.i.i.i.i.i.i.i.i, %.0.i.i.i15.i.i.i.i.i - br i1 %.not.i.i.i.i.i, label %36, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.thread19.i + br i1 %.not.i.i.i.i.i, label %35, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.thread19.i _ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.thread19.i: ; preds = %_ZNK4lean4name4hashEv.exit17.i.i.i.i.i - %34 = icmp ult i32 %.0.i.i.i.i.i.i.i.i, %.0.i.i.i15.i.i.i.i.i - %35 = select i1 %34, i32 -1, i32 1 - br label %41 + %33 = icmp ult i32 %.0.i.i.i.i.i.i.i.i, %.0.i.i.i15.i.i.i.i.i + %34 = select i1 %33, i32 -1, i32 1 + br label %40 -36: ; preds = %_ZNK4lean4name4hashEv.exit17.i.i.i.i.i - %37 = invoke zeroext i8 @lean_name_eq(ptr noundef %20, ptr noundef %21) - to label %.noexc7 unwind label %86 +35: ; preds = %_ZNK4lean4name4hashEv.exit17.i.i.i.i.i + %36 = invoke zeroext i8 @lean_name_eq(ptr noundef %19, ptr noundef %20) + to label %.noexc7 unwind label %85 -.noexc7: ; preds = %36 - %.not18.i.i.i.i.i = icmp eq i8 %37, 0 +.noexc7: ; preds = %35 + %.not18.i.i.i.i.i = icmp eq i8 %36, 0 br i1 %.not18.i.i.i.i.i, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.i, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit _ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.i: ; preds = %.noexc7 - %38 = load ptr, ptr %3, align 8, !tbaa !6 - %39 = load ptr, ptr %19, align 8, !tbaa !6 - %40 = invoke noundef i32 @_ZN4lean4name8cmp_coreEP11lean_objectS2_(ptr noundef %38, ptr noundef %39) - to label %.noexc8 unwind label %86 + %37 = load ptr, ptr %3, align 8, !tbaa !6 + %38 = load ptr, ptr %18, align 8, !tbaa !6 + %39 = invoke noundef i32 @_ZN4lean4name8cmp_coreEP11lean_objectS2_(ptr noundef %37, ptr noundef %38) + to label %.noexc8 unwind label %85 .noexc8: ; preds = %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.i - %.not15.i = icmp eq i32 %40, 0 - br i1 %.not15.i, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit, label %41 + %.not15.i = icmp eq i32 %39, 0 + br i1 %.not15.i, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit, label %40 -41: ; preds = %.noexc8, %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.thread19.i - %.0.i.i.i.i22.i = phi i32 [ %35, %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.thread19.i ], [ %40, %.noexc8 ] - %42 = icmp slt i32 %.0.i.i.i.i22.i, 0 - %.213.in.idx.i = select i1 %42, i64 0, i64 8 +40: ; preds = %.noexc8, %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.thread19.i + %.0.i.i.i.i22.i = phi i32 [ %34, %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.thread19.i ], [ %39, %.noexc8 ] + %41 = icmp slt i32 %.0.i.i.i.i22.i, 0 + %.213.in.idx.i = select i1 %41, i64 0, i64 8 %.213.in.i = getelementptr inbounds nuw i8, ptr %.01129.i, i64 %.213.in.idx.i %.011.i = load ptr, ptr %.213.in.i, align 8, !tbaa !187 %.not.i = icmp eq ptr %.011.i, null br i1 %.not.i, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit, label %.lr.ph.i -_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit: ; preds = %.lr.ph.i, %.noexc7, %.noexc8, %41 - %.2.i.ph = phi ptr [ %19, %.noexc7 ], [ %19, %.lr.ph.i ], [ %19, %.noexc8 ], [ null, %41 ] +_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit: ; preds = %.lr.ph.i, %.noexc7, %.noexc8, %40 + %.2.i.ph = phi ptr [ %18, %.noexc7 ], [ %18, %.lr.ph.i ], [ %18, %.noexc8 ], [ null, %40 ] %.pre = load ptr, ptr %16, align 8, !tbaa !6 br label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit _ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit: ; preds = %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit, %15 - %43 = phi ptr [ inttoptr (i64 1 to ptr), %15 ], [ %.pre, %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit ] + %42 = phi ptr [ inttoptr (i64 1 to ptr), %15 ], [ %.pre, %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit ] %.2.i = phi ptr [ null, %15 ], [ %.2.i.ph, %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit ] - %44 = ptrtoint ptr %43 to i64 - %45 = and i64 %44, 1 - %.not.i.i.i.i = icmp eq i64 %45, 0 - br i1 %.not.i.i.i.i, label %46, label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i + %43 = ptrtoint ptr %42 to i64 + %44 = and i64 %43, 1 + %.not.i.i.i.i = icmp eq i64 %44, 0 + br i1 %.not.i.i.i.i, label %45, label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i -46: ; preds = %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit - %47 = load i32, ptr %43, align 4, !tbaa !12 - %48 = icmp sgt i32 %47, 1 - br i1 %48, label %49, label %51, !prof !15 +45: ; preds = %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit + %46 = load i32, ptr %42, align 4, !tbaa !12 + %47 = icmp sgt i32 %46, 1 + br i1 %47, label %48, label %50, !prof !15 -49: ; preds = %46 - %50 = add nsw i32 %47, -1 - store i32 %50, ptr %43, align 4, !tbaa !12 +48: ; preds = %45 + %49 = add nsw i32 %46, -1 + store i32 %49, ptr %42, align 4, !tbaa !12 br label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i -51: ; preds = %46 - %.not.i.i.i.i.i9 = icmp eq i32 %47, 0 - br i1 %.not.i.i.i.i.i9, label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i, label %52 +50: ; preds = %45 + %.not.i.i.i.i.i9 = icmp eq i32 %46, 0 + br i1 %.not.i.i.i.i.i9, label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i, label %51 -52: ; preds = %51 - invoke void @lean_dec_ref_cold(ptr noundef nonnull %43) - to label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i unwind label %53 +51: ; preds = %50 + invoke void @lean_dec_ref_cold(ptr noundef nonnull %42) + to label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i unwind label %52 -53: ; preds = %52 - %54 = landingpad { ptr, i32 } +52: ; preds = %51 + %53 = landingpad { ptr, i32 } catch ptr null - %55 = extractvalue { ptr, i32 } %54, 0 - tail call void @__clang_call_terminate(ptr %55) #26 + %54 = extractvalue { ptr, i32 } %53, 0 + tail call void @__clang_call_terminate(ptr %54) #26 unreachable -_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i: ; preds = %52, %51, %49, %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit - %56 = load ptr, ptr %3, align 8, !tbaa !6 - %57 = ptrtoint ptr %56 to i64 - %58 = and i64 %57, 1 - %.not.i.i.i = icmp eq i64 %58, 0 - br i1 %.not.i.i.i, label %59, label %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit - -59: ; preds = %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i - %60 = load i32, ptr %56, align 4, !tbaa !12 - %61 = icmp sgt i32 %60, 1 - br i1 %61, label %62, label %64, !prof !15 - -62: ; preds = %59 - %63 = add nsw i32 %60, -1 - store i32 %63, ptr %56, align 4, !tbaa !12 +_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i: ; preds = %51, %50, %48, %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit + %55 = load ptr, ptr %3, align 8, !tbaa !6 + %56 = ptrtoint ptr %55 to i64 + %57 = and i64 %56, 1 + %.not.i.i.i = icmp eq i64 %57, 0 + br i1 %.not.i.i.i, label %58, label %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit + +58: ; preds = %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i + %59 = load i32, ptr %55, align 4, !tbaa !12 + %60 = icmp sgt i32 %59, 1 + br i1 %60, label %61, label %63, !prof !15 + +61: ; preds = %58 + %62 = add nsw i32 %59, -1 + store i32 %62, ptr %55, align 4, !tbaa !12 br label %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit -64: ; preds = %59 - %.not.i.i.i1.i = icmp eq i32 %60, 0 - br i1 %.not.i.i.i1.i, label %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit, label %65 +63: ; preds = %58 + %.not.i.i.i1.i = icmp eq i32 %59, 0 + br i1 %.not.i.i.i1.i, label %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit, label %64 -65: ; preds = %64 - invoke void @lean_dec_ref_cold(ptr noundef nonnull %56) - to label %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit unwind label %66 +64: ; preds = %63 + invoke void @lean_dec_ref_cold(ptr noundef nonnull %55) + to label %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit unwind label %65 -66: ; preds = %65 - %67 = landingpad { ptr, i32 } +65: ; preds = %64 + %66 = landingpad { ptr, i32 } catch ptr null - %68 = extractvalue { ptr, i32 } %67, 0 - tail call void @__clang_call_terminate(ptr %68) #26 + %67 = extractvalue { ptr, i32 } %66, 0 + tail call void @__clang_call_terminate(ptr %67) #26 unreachable -_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit: ; preds = %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i, %62, %64, %65 - %69 = load ptr, ptr %4, align 8, !tbaa !6 - %70 = ptrtoint ptr %69 to i64 - %71 = and i64 %70, 1 - %.not.i.i.i10 = icmp eq i64 %71, 0 - br i1 %.not.i.i.i10, label %72, label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit - -72: ; preds = %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit - %73 = load i32, ptr %69, align 4, !tbaa !12 - %74 = icmp sgt i32 %73, 1 - br i1 %74, label %75, label %77, !prof !15 - -75: ; preds = %72 - %76 = add nsw i32 %73, -1 - store i32 %76, ptr %69, align 4, !tbaa !12 +_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit: ; preds = %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i, %61, %63, %64 + %68 = load ptr, ptr %4, align 8, !tbaa !6 + %69 = ptrtoint ptr %68 to i64 + %70 = and i64 %69, 1 + %.not.i.i.i10 = icmp eq i64 %70, 0 + br i1 %.not.i.i.i10, label %71, label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit + +71: ; preds = %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit + %72 = load i32, ptr %68, align 4, !tbaa !12 + %73 = icmp sgt i32 %72, 1 + br i1 %73, label %74, label %76, !prof !15 + +74: ; preds = %71 + %75 = add nsw i32 %72, -1 + store i32 %75, ptr %68, align 4, !tbaa !12 br label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit -77: ; preds = %72 - %.not.i.i.i.i11 = icmp eq i32 %73, 0 - br i1 %.not.i.i.i.i11, label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit, label %78 +76: ; preds = %71 + %.not.i.i.i.i11 = icmp eq i32 %72, 0 + br i1 %.not.i.i.i.i11, label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit, label %77 -78: ; preds = %77 - invoke void @lean_dec_ref_cold(ptr noundef nonnull %69) - to label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit unwind label %79 +77: ; preds = %76 + invoke void @lean_dec_ref_cold(ptr noundef nonnull %68) + to label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit unwind label %78 -79: ; preds = %78 - %80 = landingpad { ptr, i32 } +78: ; preds = %77 + %79 = landingpad { ptr, i32 } catch ptr null - %81 = extractvalue { ptr, i32 } %80, 0 - tail call void @__clang_call_terminate(ptr %81) #26 + %80 = extractvalue { ptr, i32 } %79, 0 + tail call void @__clang_call_terminate(ptr %80) #26 unreachable -_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit: ; preds = %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit, %75, %77, %78 +_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit: ; preds = %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit, %74, %76, %77 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #24 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #24 %.not = icmp eq ptr %.2.i, null - %82 = getelementptr inbounds nuw i8, ptr %.2.i, i64 8 - %83 = select i1 %.not, ptr null, ptr %82 - ret ptr %83 + %81 = getelementptr inbounds nuw i8, ptr %.2.i, i64 8 + %82 = select i1 %.not, ptr null, ptr %81 + ret ptr %82 -84: ; preds = %14 - %85 = landingpad { ptr, i32 } +83: ; preds = %14 + %84 = landingpad { ptr, i32 } cleanup br label %.body -86: ; preds = %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.i, %36 - %87 = landingpad { ptr, i32 } +85: ; preds = %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.i, %35 + %86 = landingpad { ptr, i32 } cleanup call void @_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #24 br label %.body -.body: ; preds = %84, %86 - %.pn = phi { ptr, i32 } [ %87, %86 ], [ %85, %84 ] +.body: ; preds = %83, %85 + %.pn = phi { ptr, i32 } [ %86, %85 ], [ %84, %83 ] call void @_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #24 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #24 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #24 diff --git a/bench/linux/optimized/drm_modes.ll b/bench/linux/optimized/drm_modes.ll index 97cf0efa2d2..f030491d056 100644 --- a/bench/linux/optimized/drm_modes.ll +++ b/bench/linux/optimized/drm_modes.ll @@ -1243,15 +1243,11 @@ define dso_local void @drm_mode_get_hv_timing(ptr noundef readonly captures(none declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #7 ; Function Attrs: fn_ret_thunk_extern mustprogress nofree norecurse nosync nounwind null_pointer_is_valid willreturn memory(argmem: readwrite) -define dso_local void @drm_mode_init(ptr noundef captures(none) initializes((0, 120)) %0, ptr noundef readonly captures(none) %1) #6 align 16 { - %3 = alloca %struct.list_head, align 8 +define dso_local void @drm_mode_init(ptr noundef writeonly captures(none) initializes((0, 120)) %0, ptr noundef readonly captures(none) %1) #6 align 16 { tail call void @llvm.memset.p0.i64(ptr noundef align 8 dereferenceable(120) %0, i8 0, i64 120, i1 false) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) - %4 = getelementptr inbounds nuw i8, ptr %0, i64 64 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(16) %4, i64 16, i1 false) + %3 = getelementptr inbounds nuw i8, ptr %0, i64 64 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef align 8 dereferenceable(120) %0, ptr noundef align 8 dereferenceable(120) %1, i64 120, i1 false) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %3, i64 16, i1 false) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %3, i8 0, i64 16, i1 false) ret void } diff --git a/bench/llvm/optimized/Attributor.ll b/bench/llvm/optimized/Attributor.ll index c91c9c8e73c..1078277d0de 100644 --- a/bench/llvm/optimized/Attributor.ll +++ b/bench/llvm/optimized/Attributor.ll @@ -32308,8 +32308,8 @@ _ZNSt8functionIFbRN4llvm10AttributorERKNS0_17AbstractAttributeERNS0_8CallBaseERN %34 = getelementptr inbounds nuw i8, ptr %8, i64 40 %35 = ptrtoint ptr %9 to i64 store i64 %35, ptr %34, align 8 - %.sroa.0.i.i.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 48 - store i64 0, ptr %.sroa.0.i.i.i.sroa.4.0..sroa_idx, align 8, !tbaa !13 + %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 48 + store i64 0, ptr %.sroa.4.0..sroa_idx, align 8 store ptr @"_ZNSt17_Function_handlerIFbRN4llvm10AttributorERKNS0_17AbstractAttributeERNS0_8CallBaseERNS0_8FunctionEjEZL24runAttributorOnFunctionsRNS0_16InformationCacheERNS0_9SetVectorIPS8_NS0_11SmallVectorISE_Lj0EEENS0_8DenseSetISE_NS0_12DenseMapInfoISE_vEEEELj0EEERNS0_14AnalysisGetterERNS0_16CallGraphUpdaterEbbE3$_0E10_M_managerERSt9_Any_dataRKST_St18_Manager_operation", ptr %27, align 8, !tbaa !378 %36 = getelementptr inbounds nuw i8, ptr %8, i64 64 store ptr @"_ZNSt17_Function_handlerIFbRN4llvm10AttributorERKNS0_17AbstractAttributeERNS0_8CallBaseERNS0_8FunctionEjEZL24runAttributorOnFunctionsRNS0_16InformationCacheERNS0_9SetVectorIPS8_NS0_11SmallVectorISE_Lj0EEENS0_8DenseSetISE_NS0_12DenseMapInfoISE_vEEEELj0EEERNS0_14AnalysisGetterERNS0_16CallGraphUpdaterEbbE3$_0E9_M_invokeERKSt9_Any_dataS2_S5_S7_S9_Oj", ptr %36, align 8, !tbaa !378 diff --git a/bench/llvm/optimized/BitcodeReader.ll b/bench/llvm/optimized/BitcodeReader.ll index 23a77de5972..5ef6166f586 100644 --- a/bench/llvm/optimized/BitcodeReader.ll +++ b/bench/llvm/optimized/BitcodeReader.ll @@ -4942,14 +4942,14 @@ _ZN4llvm15ParserCallbacksC2ERKS0_.exit: ; preds = %_ZNSt8optionalISt8f store i64 %233, ptr %8, align 8, !noalias !570 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 8 store i64 0, ptr %.sroa.4.0..sroa_idx, align 8, !noalias !570 - %408 = getelementptr inbounds nuw i8, ptr %8, i64 32 - %409 = getelementptr inbounds nuw i8, ptr %8, i64 16 - store ptr @"_ZNSt17_Function_handlerIFPN4llvm4TypeEjEZN12_GLOBAL__N_113BitcodeReader16parseBitcodeIntoEPNS0_6ModuleEbbNS0_15ParserCallbacksEE3$_0E10_M_managerERSt9_Any_dataRKSB_St18_Manager_operation", ptr %409, align 8, !tbaa !110, !noalias !570 - %410 = getelementptr inbounds nuw i8, ptr %8, i64 24 - store ptr @"_ZNSt17_Function_handlerIFPN4llvm4TypeEjEZN12_GLOBAL__N_113BitcodeReader16parseBitcodeIntoEPNS0_6ModuleEbbNS0_15ParserCallbacksEE3$_0E9_M_invokeERKSt9_Any_dataOj", ptr %410, align 8, !tbaa !110, !noalias !570 - store i64 %233, ptr %408, align 8, !noalias !570 - %.sroa.0.i.i.i5.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 40 - store i64 0, ptr %.sroa.0.i.i.i5.i.sroa.4.0..sroa_idx, align 8, !tbaa !84, !noalias !570 + %408 = getelementptr inbounds nuw i8, ptr %8, i64 16 + store ptr @"_ZNSt17_Function_handlerIFPN4llvm4TypeEjEZN12_GLOBAL__N_113BitcodeReader16parseBitcodeIntoEPNS0_6ModuleEbbNS0_15ParserCallbacksEE3$_0E10_M_managerERSt9_Any_dataRKSB_St18_Manager_operation", ptr %408, align 8, !tbaa !110, !noalias !570 + %409 = getelementptr inbounds nuw i8, ptr %8, i64 24 + store ptr @"_ZNSt17_Function_handlerIFPN4llvm4TypeEjEZN12_GLOBAL__N_113BitcodeReader16parseBitcodeIntoEPNS0_6ModuleEbbNS0_15ParserCallbacksEE3$_0E9_M_invokeERKSt9_Any_dataOj", ptr %409, align 8, !tbaa !110, !noalias !570 + %410 = getelementptr inbounds nuw i8, ptr %8, i64 32 + store i64 %233, ptr %410, align 8, !noalias !570 + %.sroa.499.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 40 + store i64 0, ptr %.sroa.499.0..sroa_idx, align 8, !noalias !570 %411 = getelementptr inbounds nuw i8, ptr %8, i64 48 store ptr @"_ZNSt17_Function_handlerIFjjjEZN12_GLOBAL__N_113BitcodeReader16parseBitcodeIntoEPN4llvm6ModuleEbbNS3_15ParserCallbacksEE3$_1E10_M_managerERSt9_Any_dataRKS9_St18_Manager_operation", ptr %411, align 8, !tbaa !110, !noalias !570 %412 = getelementptr inbounds nuw i8, ptr %8, i64 56 @@ -4977,7 +4977,7 @@ _ZNSt8optionalISt8functionIFvPPN4llvm8MetadataEjS0_IFPNS1_4TypeEjEES0_IFjjjEEEEE store ptr %421, ptr %417, align 8, !tbaa !567, !noalias !570 %422 = load ptr, ptr %415, align 8, !tbaa !43, !noalias !570 store ptr %422, ptr %418, align 8, !tbaa !43, !noalias !570 - %.pre19.pre.i = load ptr, ptr %409, align 8, !tbaa !43, !noalias !570 + %.pre19.pre.i = load ptr, ptr %408, align 8, !tbaa !43, !noalias !570 store i8 1, ptr %407, align 8, !tbaa !565, !noalias !570 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #31, !noalias !570 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %10, i8 0, i64 32, i1 false), !noalias !570 @@ -4994,9 +4994,9 @@ _ZNSt8optionalISt8functionIFvPPN4llvm8MetadataEjS0_IFPNS1_4TypeEjEES0_IFjjjEEEEE %425 = getelementptr inbounds nuw i8, ptr %10, i64 24 %426 = getelementptr inbounds nuw i8, ptr %10, i64 16 %427 = call noundef zeroext i1 %424(ptr noundef nonnull align 8 dereferenceable(104) %10, ptr noundef nonnull align 8 dereferenceable(104) %8, i32 noundef 2) #31, !noalias !570 - %428 = load ptr, ptr %410, align 8, !tbaa !573, !noalias !570 + %428 = load ptr, ptr %409, align 8, !tbaa !573, !noalias !570 store ptr %428, ptr %425, align 8, !tbaa !573, !noalias !570 - %429 = load ptr, ptr %409, align 8, !tbaa !43, !noalias !570 + %429 = load ptr, ptr %408, align 8, !tbaa !43, !noalias !570 store ptr %429, ptr %426, align 8, !tbaa !43, !noalias !570 br label %_ZNSt8functionIFPN4llvm4TypeEjEEC2ERKS4_.exit.i.i @@ -5010,7 +5010,7 @@ _ZNSt8functionIFPN4llvm4TypeEjEEC2ERKS4_.exit.i.i: ; preds = %423, %_ZNSt8option 432: ; preds = %_ZNSt8functionIFPN4llvm4TypeEjEEC2ERKS4_.exit.i.i %433 = getelementptr inbounds nuw i8, ptr %10, i64 56 %434 = getelementptr inbounds nuw i8, ptr %10, i64 48 - %435 = call noundef zeroext i1 %431(ptr noundef nonnull align 8 dereferenceable(32) %430, ptr noundef nonnull align 8 dereferenceable(32) %408, i32 noundef 2) #31, !noalias !570 + %435 = call noundef zeroext i1 %431(ptr noundef nonnull align 8 dereferenceable(32) %430, ptr noundef nonnull align 8 dereferenceable(32) %410, i32 noundef 2) #31, !noalias !570 %436 = load ptr, ptr %412, align 8, !tbaa !575, !noalias !570 store ptr %436, ptr %433, align 8, !tbaa !575, !noalias !570 %437 = load ptr, ptr %411, align 8, !tbaa !43, !noalias !570 @@ -5261,11 +5261,11 @@ _ZNSt14_Optional_baseISt8functionIFvPPN4llvm8MetadataEjS0_IFPNS1_4TypeEjEES0_IFj br i1 %.not.i.i13.i, label %_ZNSt14_Function_baseD2Ev.exit.i14.i, label %543 543: ; preds = %_ZNSt14_Optional_baseISt8functionIFvPPN4llvm8MetadataEjS0_IFPNS1_4TypeEjEES0_IFjjjEEEELb0ELb0EED2Ev.exit.i12.i - %544 = call noundef zeroext i1 %542(ptr noundef nonnull align 8 dereferenceable(32) %408, ptr noundef nonnull align 8 dereferenceable(32) %408, i32 noundef 3) #31 + %544 = call noundef zeroext i1 %542(ptr noundef nonnull align 8 dereferenceable(32) %410, ptr noundef nonnull align 8 dereferenceable(32) %410, i32 noundef 3) #31 br label %_ZNSt14_Function_baseD2Ev.exit.i14.i _ZNSt14_Function_baseD2Ev.exit.i14.i: ; preds = %543, %_ZNSt14_Optional_baseISt8functionIFvPPN4llvm8MetadataEjS0_IFPNS1_4TypeEjEES0_IFjjjEEEELb0ELb0EED2Ev.exit.i12.i - %545 = load ptr, ptr %409, align 8, !tbaa !43, !noalias !570 + %545 = load ptr, ptr %408, align 8, !tbaa !43, !noalias !570 %.not.i1.i15.i = icmp eq ptr %545, null br i1 %.not.i1.i15.i, label %_ZN12_GLOBAL__N_113BitcodeReader16parseBitcodeIntoEPN4llvm6ModuleEbbNS1_15ParserCallbacksE.exit, label %546 diff --git a/bench/llvm/optimized/FastISel.ll b/bench/llvm/optimized/FastISel.ll index 15e75c1f93b..2e44efcf021 100644 --- a/bench/llvm/optimized/FastISel.ll +++ b/bench/llvm/optimized/FastISel.ll @@ -8831,312 +8831,320 @@ define dso_local void @_ZN4llvm8FastISel13handleDbgInfoEPKNS_11InstructionE(ptr %11 = getelementptr inbounds nuw i8, ptr %0, i64 72 %12 = icmp eq ptr %4, %11 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, i8 0, i64 24, i1 false) - br i1 %12, label %_ZN4llvm10MIMetadataD2Ev.exit, label %13 + br i1 %12, label %_ZN4llvm10MIMetadataaSEOS0_.exit, label %13 13: ; preds = %10 %14 = load ptr, ptr %11, align 8, !tbaa !140 %.not.i.i.i.i.i = icmp eq ptr %14, null - br i1 %.not.i.i.i.i.i, label %_ZN4llvm10MIMetadataD2Ev.exit, label %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i + br i1 %.not.i.i.i.i.i, label %_ZN4llvm10MIMetadataaSEOS0_.exit.thread, label %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i _ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i: ; preds = %13 call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 4 dereferenceable(8) %14) #21 %.pre = load ptr, ptr %4, align 8, !tbaa !140 store ptr %.pre, ptr %11, align 8, !tbaa !140 %.not.i6.i.i.i.i = icmp eq ptr %.pre, null - br i1 %.not.i6.i.i.i.i, label %_ZN4llvm10MIMetadataD2Ev.exit, label %15 + br i1 %.not.i6.i.i.i.i, label %_ZN4llvm10MIMetadataaSEOS0_.exit.thread, label %15 15: ; preds = %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i %16 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking7retrackEPvRNS_8MetadataES1_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 4 dereferenceable(8) %.pre, ptr noundef nonnull align 8 dereferenceable(24) %11) #21 - br label %_ZN4llvm10MIMetadataD2Ev.exit + br label %_ZN4llvm10MIMetadataaSEOS0_.exit.thread -_ZN4llvm10MIMetadataD2Ev.exit: ; preds = %10, %15, %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i, %13 +_ZN4llvm10MIMetadataaSEOS0_.exit.thread: ; preds = %13, %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i, %15 %17 = getelementptr inbounds nuw i8, ptr %0, i64 80 %18 = getelementptr inbounds nuw i8, ptr %4, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(16) %18, i64 16, i1 false) + br label %_ZN4llvm10MIMetadataD2Ev.exit + +_ZN4llvm10MIMetadataaSEOS0_.exit: ; preds = %10 + %19 = getelementptr inbounds nuw i8, ptr %0, i64 80 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %19, i8 0, i64 16, i1 false) + br label %_ZN4llvm10MIMetadataD2Ev.exit + +_ZN4llvm10MIMetadataD2Ev.exit: ; preds = %_ZN4llvm10MIMetadataaSEOS0_.exit, %_ZN4llvm10MIMetadataaSEOS0_.exit.thread call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #21 - %19 = getelementptr inbounds nuw i8, ptr %1, i64 64 - %20 = load ptr, ptr %19, align 8, !tbaa !691 - %.not.i.i = icmp eq ptr %20, null - br i1 %.not.i.i, label %_ZNK4llvm11Instruction17getDbgRecordRangeEv.exit, label %21 + %20 = getelementptr inbounds nuw i8, ptr %1, i64 64 + %21 = load ptr, ptr %20, align 8, !tbaa !691 + %.not.i.i = icmp eq ptr %21, null + br i1 %.not.i.i, label %_ZNK4llvm11Instruction17getDbgRecordRangeEv.exit, label %22 -21: ; preds = %_ZN4llvm10MIMetadataD2Ev.exit - %22 = call { ptr, ptr } @_ZN4llvm9DbgMarker17getDbgRecordRangeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #21 +22: ; preds = %_ZN4llvm10MIMetadataD2Ev.exit + %23 = call { ptr, ptr } @_ZN4llvm9DbgMarker17getDbgRecordRangeEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #21 br label %_ZNK4llvm11Instruction17getDbgRecordRangeEv.exit -_ZNK4llvm11Instruction17getDbgRecordRangeEv.exit: ; preds = %_ZN4llvm10MIMetadataD2Ev.exit, %21 - %.pn.i.i = phi { ptr, ptr } [ %22, %21 ], [ { ptr getelementptr inbounds nuw (i8, ptr @_ZN4llvm9DbgMarker14EmptyDbgMarkerE, i64 8), ptr getelementptr inbounds nuw (i8, ptr @_ZN4llvm9DbgMarker14EmptyDbgMarkerE, i64 8) }, %_ZN4llvm10MIMetadataD2Ev.exit ] - %23 = extractvalue { ptr, ptr } %.pn.i.i, 0 - %24 = extractvalue { ptr, ptr } %.pn.i.i, 1 - %.not5457 = icmp eq ptr %24, %23 +_ZNK4llvm11Instruction17getDbgRecordRangeEv.exit: ; preds = %_ZN4llvm10MIMetadataD2Ev.exit, %22 + %.pn.i.i = phi { ptr, ptr } [ %23, %22 ], [ { ptr getelementptr inbounds nuw (i8, ptr @_ZN4llvm9DbgMarker14EmptyDbgMarkerE, i64 8), ptr getelementptr inbounds nuw (i8, ptr @_ZN4llvm9DbgMarker14EmptyDbgMarkerE, i64 8) }, %_ZN4llvm10MIMetadataD2Ev.exit ] + %24 = extractvalue { ptr, ptr } %.pn.i.i, 0 + %25 = extractvalue { ptr, ptr } %.pn.i.i, 1 + %.not5457 = icmp eq ptr %25, %24 br i1 %.not5457, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %_ZNK4llvm11Instruction17getDbgRecordRangeEv.exit - %25 = getelementptr inbounds nuw i8, ptr %0, i64 152 - %26 = getelementptr inbounds nuw i8, ptr %0, i64 32 - %27 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %28 = getelementptr inbounds nuw i8, ptr %0, i64 112 - %29 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %30 = getelementptr inbounds nuw i8, ptr %3, i64 16 - br label %31 + %26 = getelementptr inbounds nuw i8, ptr %0, i64 152 + %27 = getelementptr inbounds nuw i8, ptr %0, i64 32 + %28 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %29 = getelementptr inbounds nuw i8, ptr %0, i64 112 + %30 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %31 = getelementptr inbounds nuw i8, ptr %3, i64 16 + br label %32 -31: ; preds = %.lr.ph, %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52 - %.sroa.044.058 = phi ptr [ %24, %.lr.ph ], [ %142, %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52 ] - %32 = load ptr, ptr %.sroa.044.058, align 8, !tbaa !692 +32: ; preds = %.lr.ph, %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52 + %.sroa.044.058 = phi ptr [ %25, %.lr.ph ], [ %143, %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52 ] + %33 = load ptr, ptr %.sroa.044.058, align 8, !tbaa !692 call void @_ZN4llvm8FastISel18flushLocalValueMapEv(ptr noundef nonnull align 8 dereferenceable(176) %0) - %33 = load ptr, ptr %25, align 8, !tbaa !107 - %.not.i = icmp eq ptr %33, null - %34 = load ptr, ptr %26, align 8, !tbaa !33 - br i1 %.not.i, label %55, label %35 - -35: ; preds = %31 - %36 = getelementptr inbounds nuw i8, ptr %34, i64 688 - %37 = ptrtoint ptr %33 to i64 - store i64 %37, ptr %36, align 8 - %38 = load ptr, ptr %26, align 8, !tbaa !33 - %39 = getelementptr inbounds nuw i8, ptr %38, i64 688 - %40 = load ptr, ptr %39, align 8, !tbaa !148 - %41 = getelementptr inbounds nuw i8, ptr %40, i64 24 - %42 = load ptr, ptr %41, align 8, !tbaa !139 - %43 = getelementptr inbounds nuw i8, ptr %38, i64 680 - store ptr %42, ptr %43, align 8, !tbaa !34 - %.0.copyload.i.i.i.i.i.i.i.i.i.i = load i64, ptr %40, align 8 - %44 = and i64 %.0.copyload.i.i.i.i.i.i.i.i.i.i, 4 - %.not.i.i.i.i = icmp eq i64 %44, 0 + %34 = load ptr, ptr %26, align 8, !tbaa !107 + %.not.i = icmp eq ptr %34, null + %35 = load ptr, ptr %27, align 8, !tbaa !33 + br i1 %.not.i, label %56, label %36 + +36: ; preds = %32 + %37 = getelementptr inbounds nuw i8, ptr %35, i64 688 + %38 = ptrtoint ptr %34 to i64 + store i64 %38, ptr %37, align 8 + %39 = load ptr, ptr %27, align 8, !tbaa !33 + %40 = getelementptr inbounds nuw i8, ptr %39, i64 688 + %41 = load ptr, ptr %40, align 8, !tbaa !148 + %42 = getelementptr inbounds nuw i8, ptr %41, i64 24 + %43 = load ptr, ptr %42, align 8, !tbaa !139 + %44 = getelementptr inbounds nuw i8, ptr %39, i64 680 + store ptr %43, ptr %44, align 8, !tbaa !34 + %.0.copyload.i.i.i.i.i.i.i.i.i.i = load i64, ptr %41, align 8 + %45 = and i64 %.0.copyload.i.i.i.i.i.i.i.i.i.i, 4 + %.not.i.i.i.i = icmp eq i64 %45, 0 br i1 %.not.i.i.i.i, label %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i, label %_ZN4llvm26MachineInstrBundleIteratorINS_12MachineInstrELb0EEppEv.exit.i -_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i: ; preds = %35 - %45 = getelementptr inbounds nuw i8, ptr %40, i64 44 - %46 = load i32, ptr %45, align 4 - %47 = and i32 %46, 8 - %.not34.i.i.i.i = icmp eq i32 %47, 0 +_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i: ; preds = %36 + %46 = getelementptr inbounds nuw i8, ptr %41, i64 44 + %47 = load i32, ptr %46, align 4 + %48 = and i32 %47, 8 + %.not34.i.i.i.i = icmp eq i32 %48, 0 br i1 %.not34.i.i.i.i, label %_ZN4llvm26MachineInstrBundleIteratorINS_12MachineInstrELb0EEppEv.exit.i, label %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i _ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i: ; preds = %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i - %.sroa.0.15.i.i.i.i = phi ptr [ %49, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i ], [ %40, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i ] - %48 = getelementptr inbounds nuw i8, ptr %.sroa.0.15.i.i.i.i, i64 8 - %49 = load ptr, ptr %48, align 8, !tbaa !108 - %50 = getelementptr inbounds nuw i8, ptr %49, i64 44 - %51 = load i32, ptr %50, align 4 - %52 = and i32 %51, 8 - %.not3.i.i.i.i = icmp eq i32 %52, 0 + %.sroa.0.15.i.i.i.i = phi ptr [ %50, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i ], [ %41, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i ] + %49 = getelementptr inbounds nuw i8, ptr %.sroa.0.15.i.i.i.i, i64 8 + %50 = load ptr, ptr %49, align 8, !tbaa !108 + %51 = getelementptr inbounds nuw i8, ptr %50, i64 44 + %52 = load i32, ptr %51, align 4 + %53 = and i32 %52, 8 + %.not3.i.i.i.i = icmp eq i32 %53, 0 br i1 %.not3.i.i.i.i, label %_ZN4llvm26MachineInstrBundleIteratorINS_12MachineInstrELb0EEppEv.exit.i, label %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i, !llvm.loop !113 -_ZN4llvm26MachineInstrBundleIteratorINS_12MachineInstrELb0EEppEv.exit.i: ; preds = %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i, %35 - %.sroa.0.0.i.i.i.i = phi ptr [ %40, %35 ], [ %40, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i ], [ %49, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i ] - %53 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.i.i.i.i, i64 8 - %54 = load ptr, ptr %53, align 8, !tbaa !108 - store ptr %54, ptr %39, align 8 +_ZN4llvm26MachineInstrBundleIteratorINS_12MachineInstrELb0EEppEv.exit.i: ; preds = %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i, %36 + %.sroa.0.0.i.i.i.i = phi ptr [ %41, %36 ], [ %41, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i ], [ %50, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i ] + %54 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.i.i.i.i, i64 8 + %55 = load ptr, ptr %54, align 8, !tbaa !108 + store ptr %55, ptr %40, align 8 br label %_ZN4llvm8FastISel17recomputeInsertPtEv.exit -55: ; preds = %31 - %56 = getelementptr inbounds nuw i8, ptr %34, i64 680 - %57 = load ptr, ptr %56, align 8, !tbaa !34 - %58 = call ptr @_ZN4llvm17MachineBasicBlock14getFirstNonPHIEv(ptr noundef nonnull align 8 dereferenceable(288) %57) #21 - %59 = load ptr, ptr %26, align 8, !tbaa !33 - %60 = getelementptr inbounds nuw i8, ptr %59, i64 688 - store ptr %58, ptr %60, align 8 +56: ; preds = %32 + %57 = getelementptr inbounds nuw i8, ptr %35, i64 680 + %58 = load ptr, ptr %57, align 8, !tbaa !34 + %59 = call ptr @_ZN4llvm17MachineBasicBlock14getFirstNonPHIEv(ptr noundef nonnull align 8 dereferenceable(288) %58) #21 + %60 = load ptr, ptr %27, align 8, !tbaa !33 + %61 = getelementptr inbounds nuw i8, ptr %60, i64 688 + store ptr %59, ptr %61, align 8 br label %_ZN4llvm8FastISel17recomputeInsertPtEv.exit -_ZN4llvm8FastISel17recomputeInsertPtEv.exit: ; preds = %_ZN4llvm26MachineInstrBundleIteratorINS_12MachineInstrELb0EEppEv.exit.i, %55 - %61 = getelementptr inbounds nuw i8, ptr %32, i64 32 - %62 = load i8, ptr %61, align 8, !tbaa !693 - %63 = icmp ne i8 %62, 1 - %.not55 = icmp eq ptr %32, null - %.not = select i1 %63, i1 true, i1 %.not55 - br i1 %.not, label %.critedge, label %64 - -64: ; preds = %_ZN4llvm8FastISel17recomputeInsertPtEv.exit - %65 = load ptr, ptr %26, align 8, !tbaa !33 - %66 = getelementptr inbounds nuw i8, ptr %65, i64 680 - %67 = load ptr, ptr %66, align 8, !tbaa !34 - %68 = getelementptr inbounds nuw i8, ptr %65, i64 688 - %.sroa.0.0.copyload = load ptr, ptr %68, align 8 +_ZN4llvm8FastISel17recomputeInsertPtEv.exit: ; preds = %_ZN4llvm26MachineInstrBundleIteratorINS_12MachineInstrELb0EEppEv.exit.i, %56 + %62 = getelementptr inbounds nuw i8, ptr %33, i64 32 + %63 = load i8, ptr %62, align 8, !tbaa !693 + %64 = icmp ne i8 %63, 1 + %.not55 = icmp eq ptr %33, null + %.not = select i1 %64, i1 true, i1 %.not55 + br i1 %.not, label %.critedge, label %65 + +65: ; preds = %_ZN4llvm8FastISel17recomputeInsertPtEv.exit + %66 = load ptr, ptr %27, align 8, !tbaa !33 + %67 = getelementptr inbounds nuw i8, ptr %66, i64 680 + %68 = load ptr, ptr %67, align 8, !tbaa !34 + %69 = getelementptr inbounds nuw i8, ptr %66, i64 688 + %.sroa.0.0.copyload = load ptr, ptr %69, align 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #21 call void @llvm.experimental.noalias.scope.decl(metadata !698) - %69 = getelementptr inbounds nuw i8, ptr %32, i64 24 - %70 = load ptr, ptr %69, align 8, !tbaa !140, !noalias !698 - store ptr %70, ptr %6, align 8, !tbaa !140, !alias.scope !698 - %.not.i.i.i.i.i30 = icmp eq ptr %70, null + %70 = getelementptr inbounds nuw i8, ptr %33, i64 24 + %71 = load ptr, ptr %70, align 8, !tbaa !140, !noalias !698 + store ptr %71, ptr %6, align 8, !tbaa !140, !alias.scope !698 + %.not.i.i.i.i.i30 = icmp eq ptr %71, null br i1 %.not.i.i.i.i.i30, label %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit.sink.split, label %_ZNK4llvm9DbgRecord11getDebugLocEv.exit -_ZNK4llvm9DbgRecord11getDebugLocEv.exit: ; preds = %64 - %71 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 4 dereferenceable(8) %70, i64 1) #21 +_ZNK4llvm9DbgRecord11getDebugLocEv.exit: ; preds = %65 + %72 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 4 dereferenceable(8) %71, i64 1) #21 %.pr = load ptr, ptr %6, align 8, !tbaa !140 store ptr %.pr, ptr %5, align 8, !tbaa !140 %.not.i.i.i.i.i31 = icmp eq ptr %.pr, null - br i1 %.not.i.i.i.i.i31, label %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit, label %72 + br i1 %.not.i.i.i.i.i31, label %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit, label %73 -72: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit - %73 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking7retrackEPvRNS_8MetadataES1_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 4 dereferenceable(8) %.pr, ptr noundef nonnull align 8 dereferenceable(24) %5) #21 +73: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit + %74 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking7retrackEPvRNS_8MetadataES1_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 4 dereferenceable(8) %.pr, ptr noundef nonnull align 8 dereferenceable(24) %5) #21 br label %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit.sink.split -_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit.sink.split: ; preds = %64, %72 - %.sink = phi ptr [ %6, %72 ], [ %5, %64 ] +_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit.sink.split: ; preds = %65, %73 + %.sink = phi ptr [ %6, %73 ], [ %5, %65 ] store ptr null, ptr %.sink, align 8, !tbaa !140 br label %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit _ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit: ; preds = %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit.sink.split, %_ZNK4llvm9DbgRecord11getDebugLocEv.exit - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %27, i8 0, i64 16, i1 false) - %74 = load ptr, ptr %28, align 8, !tbaa !222 - %75 = getelementptr inbounds nuw i8, ptr %74, i64 8 - %76 = load ptr, ptr %75, align 8, !tbaa !223 - %77 = getelementptr inbounds i8, ptr %76, i64 -576 - %78 = call { ptr, ptr } @_ZN4llvm7BuildMIERNS_17MachineBasicBlockENS_26MachineInstrBundleIteratorINS_12MachineInstrELb0EEERKNS_10MIMetadataERKNS_11MCInstrDescE(ptr noundef nonnull align 8 dereferenceable(288) %67, ptr %.sroa.0.0.copyload, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(32) %77) - %79 = extractvalue { ptr, ptr } %78, 0 - %80 = extractvalue { ptr, ptr } %78, 1 - %81 = getelementptr inbounds nuw i8, ptr %32, i64 40 - %82 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_7DILabelEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %81) #21 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %28, i8 0, i64 16, i1 false) + %75 = load ptr, ptr %29, align 8, !tbaa !222 + %76 = getelementptr inbounds nuw i8, ptr %75, i64 8 + %77 = load ptr, ptr %76, align 8, !tbaa !223 + %78 = getelementptr inbounds i8, ptr %77, i64 -576 + %79 = call { ptr, ptr } @_ZN4llvm7BuildMIERNS_17MachineBasicBlockENS_26MachineInstrBundleIteratorINS_12MachineInstrELb0EEERKNS_10MIMetadataERKNS_11MCInstrDescE(ptr noundef nonnull align 8 dereferenceable(288) %68, ptr %.sroa.0.0.copyload, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(32) %78) + %80 = extractvalue { ptr, ptr } %79, 0 + %81 = extractvalue { ptr, ptr } %79, 1 + %82 = getelementptr inbounds nuw i8, ptr %33, i64 40 + %83 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_7DILabelEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %82) #21 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #21 store i32 14, ptr %3, align 8, !alias.scope !701 - store ptr null, ptr %29, align 8, !tbaa !301, !alias.scope !701 - store ptr %82, ptr %30, align 8, !tbaa !125, !alias.scope !701 - call void @_ZN4llvm12MachineInstr10addOperandERNS_15MachineFunctionERKNS_14MachineOperandE(ptr noundef nonnull align 8 dereferenceable(70) %80, ptr noundef nonnull align 8 dereferenceable(1065) %79, ptr noundef nonnull align 8 dereferenceable(32) %3) #21 + store ptr null, ptr %30, align 8, !tbaa !301, !alias.scope !701 + store ptr %83, ptr %31, align 8, !tbaa !125, !alias.scope !701 + call void @_ZN4llvm12MachineInstr10addOperandERNS_15MachineFunctionERKNS_14MachineOperandE(ptr noundef nonnull align 8 dereferenceable(70) %81, ptr noundef nonnull align 8 dereferenceable(1065) %80, ptr noundef nonnull align 8 dereferenceable(32) %3) #21 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #21 - %83 = load ptr, ptr %5, align 8, !tbaa !140 - %.not.i.i.i.i.i32 = icmp eq ptr %83, null - br i1 %.not.i.i.i.i.i32, label %_ZN4llvm10MIMetadataD2Ev.exit33, label %84 + %84 = load ptr, ptr %5, align 8, !tbaa !140 + %.not.i.i.i.i.i32 = icmp eq ptr %84, null + br i1 %.not.i.i.i.i.i32, label %_ZN4llvm10MIMetadataD2Ev.exit33, label %85 -84: ; preds = %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit - call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 4 dereferenceable(8) %83) #21 +85: ; preds = %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit + call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 4 dereferenceable(8) %84) #21 br label %_ZN4llvm10MIMetadataD2Ev.exit33 -_ZN4llvm10MIMetadataD2Ev.exit33: ; preds = %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit, %84 - %85 = load ptr, ptr %6, align 8, !tbaa !140 - %.not.i.i.i.i34 = icmp eq ptr %85, null - br i1 %.not.i.i.i.i34, label %_ZN4llvm8DebugLocD2Ev.exit, label %86 +_ZN4llvm10MIMetadataD2Ev.exit33: ; preds = %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit, %85 + %86 = load ptr, ptr %6, align 8, !tbaa !140 + %.not.i.i.i.i34 = icmp eq ptr %86, null + br i1 %.not.i.i.i.i34, label %_ZN4llvm8DebugLocD2Ev.exit, label %87 -86: ; preds = %_ZN4llvm10MIMetadataD2Ev.exit33 - call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 4 dereferenceable(8) %85) #21 +87: ; preds = %_ZN4llvm10MIMetadataD2Ev.exit33 + call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 4 dereferenceable(8) %86) #21 br label %_ZN4llvm8DebugLocD2Ev.exit -_ZN4llvm8DebugLocD2Ev.exit: ; preds = %_ZN4llvm10MIMetadataD2Ev.exit33, %86 +_ZN4llvm8DebugLocD2Ev.exit: ; preds = %_ZN4llvm10MIMetadataD2Ev.exit33, %87 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #21 br label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52 .critedge: ; preds = %_ZN4llvm8FastISel17recomputeInsertPtEv.exit - %87 = getelementptr inbounds nuw i8, ptr %32, i64 40 - %88 = load ptr, ptr %87, align 8, !tbaa !704 - %89 = load i8, ptr %88, align 4, !tbaa !686 - %90 = icmp eq i8 %89, 4 - br i1 %90, label %93, label %91 - -91: ; preds = %.critedge - %92 = call noundef ptr @_ZNK4llvm17DbgVariableRecord21getVariableLocationOpEj(ptr noundef nonnull align 8 dereferenceable(96) %32, i32 noundef 0) #21 - br label %93 - -93: ; preds = %91, %.critedge - %.026 = phi ptr [ null, %.critedge ], [ %92, %91 ] - %94 = getelementptr inbounds nuw i8, ptr %32, i64 64 - %95 = load i8, ptr %94, align 8, !tbaa !705 - %.off = add i8 %95, -1 + %88 = getelementptr inbounds nuw i8, ptr %33, i64 40 + %89 = load ptr, ptr %88, align 8, !tbaa !704 + %90 = load i8, ptr %89, align 4, !tbaa !686 + %91 = icmp eq i8 %90, 4 + br i1 %91, label %94, label %92 + +92: ; preds = %.critedge + %93 = call noundef ptr @_ZNK4llvm17DbgVariableRecord21getVariableLocationOpEj(ptr noundef nonnull align 8 dereferenceable(96) %33, i32 noundef 0) #21 + br label %94 + +94: ; preds = %92, %.critedge + %.026 = phi ptr [ null, %.critedge ], [ %93, %92 ] + %95 = getelementptr inbounds nuw i8, ptr %33, i64 64 + %96 = load i8, ptr %95, align 8, !tbaa !705 + %.off = add i8 %96, -1 %switch = icmp ult i8 %.off, 2 - br i1 %switch, label %96, label %111 + br i1 %switch, label %97, label %112 -96: ; preds = %93 - %97 = getelementptr inbounds nuw i8, ptr %32, i64 80 - %98 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_12DIExpressionEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %97) #21 - %99 = getelementptr inbounds nuw i8, ptr %32, i64 72 - %100 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_15DILocalVariableEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %99) #21 +97: ; preds = %94 + %98 = getelementptr inbounds nuw i8, ptr %33, i64 80 + %99 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_12DIExpressionEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %98) #21 + %100 = getelementptr inbounds nuw i8, ptr %33, i64 72 + %101 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_15DILocalVariableEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %100) #21 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #21 call void @llvm.experimental.noalias.scope.decl(metadata !712) - %101 = getelementptr inbounds nuw i8, ptr %32, i64 24 - %102 = load ptr, ptr %101, align 8, !tbaa !140, !noalias !712 - store ptr %102, ptr %7, align 8, !tbaa !140, !alias.scope !712 - %.not.i.i.i.i.i35 = icmp eq ptr %102, null - br i1 %.not.i.i.i.i.i35, label %_ZNK4llvm9DbgRecord11getDebugLocEv.exit36, label %103 - -103: ; preds = %96 - %104 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %102, i64 1) #21 + %102 = getelementptr inbounds nuw i8, ptr %33, i64 24 + %103 = load ptr, ptr %102, align 8, !tbaa !140, !noalias !712 + store ptr %103, ptr %7, align 8, !tbaa !140, !alias.scope !712 + %.not.i.i.i.i.i35 = icmp eq ptr %103, null + br i1 %.not.i.i.i.i.i35, label %_ZNK4llvm9DbgRecord11getDebugLocEv.exit36, label %104 + +104: ; preds = %97 + %105 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %103, i64 1) #21 br label %_ZNK4llvm9DbgRecord11getDebugLocEv.exit36 -_ZNK4llvm9DbgRecord11getDebugLocEv.exit36: ; preds = %96, %103 - %105 = load ptr, ptr %0, align 8, !tbaa !152 - %106 = getelementptr inbounds nuw i8, ptr %105, i64 128 - %107 = load ptr, ptr %106, align 8 - %108 = call noundef zeroext i1 %107(ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef %.026, ptr noundef %98, ptr noundef %100, ptr noundef nonnull align 8 dereferenceable(8) %7) #21 - %109 = load ptr, ptr %7, align 8, !tbaa !140 - %.not.i.i.i.i37 = icmp eq ptr %109, null - br i1 %.not.i.i.i.i37, label %_ZN4llvm8DebugLocD2Ev.exit38, label %110 - -110: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit36 - call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %109) #21 +_ZNK4llvm9DbgRecord11getDebugLocEv.exit36: ; preds = %97, %104 + %106 = load ptr, ptr %0, align 8, !tbaa !152 + %107 = getelementptr inbounds nuw i8, ptr %106, i64 128 + %108 = load ptr, ptr %107, align 8 + %109 = call noundef zeroext i1 %108(ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef %.026, ptr noundef %99, ptr noundef %101, ptr noundef nonnull align 8 dereferenceable(8) %7) #21 + %110 = load ptr, ptr %7, align 8, !tbaa !140 + %.not.i.i.i.i37 = icmp eq ptr %110, null + br i1 %.not.i.i.i.i37, label %_ZN4llvm8DebugLocD2Ev.exit38, label %111 + +111: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit36 + call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %110) #21 br label %_ZN4llvm8DebugLocD2Ev.exit38 -_ZN4llvm8DebugLocD2Ev.exit38: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit36, %110 +_ZN4llvm8DebugLocD2Ev.exit38: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit36, %111 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #21 br label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52 -111: ; preds = %93 - %112 = load ptr, ptr %26, align 8, !tbaa !33 - %113 = getelementptr inbounds nuw i8, ptr %112, i64 912 - %114 = getelementptr inbounds nuw i8, ptr %112, i64 932 - %115 = load i8, ptr %114, align 4, !tbaa !679, !range !150, !noundef !151 - %116 = trunc nuw i8 %115 to i1 - br i1 %116, label %117, label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit - -117: ; preds = %111 - %118 = load ptr, ptr %113, align 8, !tbaa !680 - %119 = getelementptr inbounds nuw i8, ptr %112, i64 924 - %120 = load i32, ptr %119, align 4, !tbaa !681 - %121 = zext i32 %120 to i64 - %122 = getelementptr inbounds nuw ptr, ptr %118, i64 %121 - %.not.not9.i.i = icmp eq i32 %120, 0 +112: ; preds = %94 + %113 = load ptr, ptr %27, align 8, !tbaa !33 + %114 = getelementptr inbounds nuw i8, ptr %113, i64 912 + %115 = getelementptr inbounds nuw i8, ptr %113, i64 932 + %116 = load i8, ptr %115, align 4, !tbaa !679, !range !150, !noundef !151 + %117 = trunc nuw i8 %116 to i1 + br i1 %117, label %118, label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit + +118: ; preds = %112 + %119 = load ptr, ptr %114, align 8, !tbaa !680 + %120 = getelementptr inbounds nuw i8, ptr %113, i64 924 + %121 = load i32, ptr %120, align 4, !tbaa !681 + %122 = zext i32 %121 to i64 + %123 = getelementptr inbounds nuw ptr, ptr %119, i64 %122 + %.not.not9.i.i = icmp eq i32 %121, 0 br i1 %.not.not9.i.i, label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread, label %.lr.ph.i.i -123: ; preds = %.lr.ph.i.i - %124 = getelementptr inbounds nuw i8, ptr %.0810.i.i, i64 8 - %.not.not.i.i = icmp eq ptr %124, %122 +124: ; preds = %.lr.ph.i.i + %125 = getelementptr inbounds nuw i8, ptr %.0810.i.i, i64 8 + %.not.not.i.i = icmp eq ptr %125, %123 br i1 %.not.not.i.i, label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread, label %.lr.ph.i.i, !llvm.loop !682 -.lr.ph.i.i: ; preds = %117, %123 - %.0810.i.i = phi ptr [ %124, %123 ], [ %118, %117 ] - %125 = load ptr, ptr %.0810.i.i, align 8, !tbaa !683 - %126 = icmp eq ptr %125, %32 - br i1 %126, label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52, label %123 +.lr.ph.i.i: ; preds = %118, %124 + %.0810.i.i = phi ptr [ %125, %124 ], [ %119, %118 ] + %126 = load ptr, ptr %.0810.i.i, align 8, !tbaa !683 + %127 = icmp eq ptr %126, %33 + br i1 %127, label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52, label %124 -_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit: ; preds = %111 - %127 = call noundef ptr @_ZNK4llvm19SmallPtrSetImplBase6doFindEPKv(ptr noundef nonnull align 8 dereferenceable(21) %113, ptr noundef nonnull %32) #21 - %.not56 = icmp eq ptr %127, null +_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit: ; preds = %112 + %128 = call noundef ptr @_ZNK4llvm19SmallPtrSetImplBase6doFindEPKv(ptr noundef nonnull align 8 dereferenceable(21) %114, ptr noundef nonnull %33) #21 + %.not56 = icmp eq ptr %128, null br i1 %.not56, label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread, label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52 -_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread: ; preds = %123, %117, %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit - %128 = getelementptr inbounds nuw i8, ptr %32, i64 80 - %129 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_12DIExpressionEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %128) #21 - %130 = getelementptr inbounds nuw i8, ptr %32, i64 72 - %131 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_15DILocalVariableEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %130) #21 +_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread: ; preds = %124, %118, %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit + %129 = getelementptr inbounds nuw i8, ptr %33, i64 80 + %130 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_12DIExpressionEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %129) #21 + %131 = getelementptr inbounds nuw i8, ptr %33, i64 72 + %132 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_15DILocalVariableEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %131) #21 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #21 call void @llvm.experimental.noalias.scope.decl(metadata !715) - %132 = getelementptr inbounds nuw i8, ptr %32, i64 24 - %133 = load ptr, ptr %132, align 8, !tbaa !140, !noalias !715 - store ptr %133, ptr %8, align 8, !tbaa !140, !alias.scope !715 - %.not.i.i.i.i.i39 = icmp eq ptr %133, null - br i1 %.not.i.i.i.i.i39, label %_ZNK4llvm9DbgRecord11getDebugLocEv.exit40, label %134 - -134: ; preds = %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread - %135 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(8) %133, i64 1) #21 + %133 = getelementptr inbounds nuw i8, ptr %33, i64 24 + %134 = load ptr, ptr %133, align 8, !tbaa !140, !noalias !715 + store ptr %134, ptr %8, align 8, !tbaa !140, !alias.scope !715 + %.not.i.i.i.i.i39 = icmp eq ptr %134, null + br i1 %.not.i.i.i.i.i39, label %_ZNK4llvm9DbgRecord11getDebugLocEv.exit40, label %135 + +135: ; preds = %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread + %136 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(8) %134, i64 1) #21 br label %_ZNK4llvm9DbgRecord11getDebugLocEv.exit40 -_ZNK4llvm9DbgRecord11getDebugLocEv.exit40: ; preds = %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread, %134 - %136 = load ptr, ptr %0, align 8, !tbaa !152 - %137 = getelementptr inbounds nuw i8, ptr %136, i64 136 - %138 = load ptr, ptr %137, align 8 - %139 = call noundef zeroext i1 %138(ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef %.026, ptr noundef %129, ptr noundef %131, ptr noundef nonnull align 8 dereferenceable(8) %8) #21 - %140 = load ptr, ptr %8, align 8, !tbaa !140 - %.not.i.i.i.i41 = icmp eq ptr %140, null - br i1 %.not.i.i.i.i41, label %_ZN4llvm8DebugLocD2Ev.exit42, label %141 - -141: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit40 - call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(8) %140) #21 +_ZNK4llvm9DbgRecord11getDebugLocEv.exit40: ; preds = %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread, %135 + %137 = load ptr, ptr %0, align 8, !tbaa !152 + %138 = getelementptr inbounds nuw i8, ptr %137, i64 136 + %139 = load ptr, ptr %138, align 8 + %140 = call noundef zeroext i1 %139(ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef %.026, ptr noundef %130, ptr noundef %132, ptr noundef nonnull align 8 dereferenceable(8) %8) #21 + %141 = load ptr, ptr %8, align 8, !tbaa !140 + %.not.i.i.i.i41 = icmp eq ptr %141, null + br i1 %.not.i.i.i.i41, label %_ZN4llvm8DebugLocD2Ev.exit42, label %142 + +142: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit40 + call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(8) %141) #21 br label %_ZN4llvm8DebugLocD2Ev.exit42 -_ZN4llvm8DebugLocD2Ev.exit42: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit40, %141 +_ZN4llvm8DebugLocD2Ev.exit42: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit40, %142 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #21 br label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52 _ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52: ; preds = %.lr.ph.i.i, %_ZN4llvm8DebugLocD2Ev.exit, %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit, %_ZN4llvm8DebugLocD2Ev.exit42, %_ZN4llvm8DebugLocD2Ev.exit38 - %142 = load ptr, ptr %.sroa.044.058, align 8, !tbaa !692 - %.not54 = icmp eq ptr %142, %23 - br i1 %.not54, label %.loopexit, label %31 + %143 = load ptr, ptr %.sroa.044.058, align 8, !tbaa !692 + %.not54 = icmp eq ptr %143, %24 + br i1 %.not54, label %.loopexit, label %32 .loopexit: ; preds = %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52, %_ZNK4llvm11Instruction17getDbgRecordRangeEv.exit, %2 ret void @@ -10615,27 +10623,31 @@ _ZNK4llvm8CallBase9hasFnAttrENS_9StringRefE.exit: ; preds = %135 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #21 %149 = icmp eq ptr %5, %81 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, i8 0, i64 24, i1 false) - br i1 %149, label %_ZN4llvm10MIMetadataD2Ev.exit71, label %150 + br i1 %149, label %_ZN4llvm10MIMetadataaSEOS0_.exit69, label %150 150: ; preds = %148 %151 = load ptr, ptr %81, align 8, !tbaa !140 %.not.i.i.i.i.i66 = icmp eq ptr %151, null - br i1 %.not.i.i.i.i.i66, label %_ZN4llvm10MIMetadataD2Ev.exit71, label %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i67 + br i1 %.not.i.i.i.i.i66, label %_ZN4llvm10MIMetadataaSEOS0_.exit69, label %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i67 _ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i67: ; preds = %150 call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(24) %81, ptr noundef nonnull align 4 dereferenceable(8) %151) #21 %.pr129 = load ptr, ptr %5, align 8, !tbaa !140 store ptr %.pr129, ptr %81, align 8, !tbaa !140 %.not.i6.i.i.i.i68 = icmp eq ptr %.pr129, null - br i1 %.not.i6.i.i.i.i68, label %_ZN4llvm10MIMetadataD2Ev.exit71, label %_ZN4llvm10MIMetadataaSEOS0_.exit69.thread + br i1 %.not.i6.i.i.i.i68, label %_ZN4llvm10MIMetadataaSEOS0_.exit69, label %_ZN4llvm10MIMetadataaSEOS0_.exit69.thread _ZN4llvm10MIMetadataaSEOS0_.exit69.thread: ; preds = %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i67 %152 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking7retrackEPvRNS_8MetadataES1_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 4 dereferenceable(8) %.pr129, ptr noundef nonnull align 8 dereferenceable(24) %81) #21 - br label %_ZN4llvm10MIMetadataD2Ev.exit71 - -_ZN4llvm10MIMetadataD2Ev.exit71: ; preds = %148, %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i67, %150, %_ZN4llvm10MIMetadataaSEOS0_.exit69.thread %153 = getelementptr inbounds nuw i8, ptr %5, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %92, ptr noundef nonnull align 8 dereferenceable(16) %153, i64 16, i1 false) + br label %_ZN4llvm10MIMetadataD2Ev.exit71 + +_ZN4llvm10MIMetadataaSEOS0_.exit69: ; preds = %150, %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i67, %148 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %92, i8 0, i64 16, i1 false) + br label %_ZN4llvm10MIMetadataD2Ev.exit71 + +_ZN4llvm10MIMetadataD2Ev.exit71: ; preds = %_ZN4llvm10MIMetadataaSEOS0_.exit69, %_ZN4llvm10MIMetadataaSEOS0_.exit69.thread call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #21 br label %_ZN4llvm8FastISel24removeDeadLocalValueCodeEPNS_12MachineInstrE.exit @@ -10726,27 +10738,31 @@ _ZN4llvm8FastISel17recomputeInsertPtEv.exit: ; preds = %_ZN4llvm26MachineIn call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #21 %197 = icmp eq ptr %6, %81 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %6, i8 0, i64 24, i1 false) - br i1 %197, label %_ZN4llvm10MIMetadataD2Ev.exit87, label %198 + br i1 %197, label %_ZN4llvm10MIMetadataaSEOS0_.exit85, label %198 198: ; preds = %196 %199 = load ptr, ptr %81, align 8, !tbaa !140 %.not.i.i.i.i.i82 = icmp eq ptr %199, null - br i1 %.not.i.i.i.i.i82, label %_ZN4llvm10MIMetadataD2Ev.exit87, label %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i83 + br i1 %.not.i.i.i.i.i82, label %_ZN4llvm10MIMetadataaSEOS0_.exit85, label %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i83 _ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i83: ; preds = %198 call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(24) %81, ptr noundef nonnull align 4 dereferenceable(8) %199) #21 %.pr132 = load ptr, ptr %6, align 8, !tbaa !140 store ptr %.pr132, ptr %81, align 8, !tbaa !140 %.not.i6.i.i.i.i84 = icmp eq ptr %.pr132, null - br i1 %.not.i6.i.i.i.i84, label %_ZN4llvm10MIMetadataD2Ev.exit87, label %_ZN4llvm10MIMetadataaSEOS0_.exit85.thread + br i1 %.not.i6.i.i.i.i84, label %_ZN4llvm10MIMetadataaSEOS0_.exit85, label %_ZN4llvm10MIMetadataaSEOS0_.exit85.thread _ZN4llvm10MIMetadataaSEOS0_.exit85.thread: ; preds = %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i83 %200 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking7retrackEPvRNS_8MetadataES1_(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 4 dereferenceable(8) %.pr132, ptr noundef nonnull align 8 dereferenceable(24) %81) #21 - br label %_ZN4llvm10MIMetadataD2Ev.exit87 - -_ZN4llvm10MIMetadataD2Ev.exit87: ; preds = %196, %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i83, %198, %_ZN4llvm10MIMetadataaSEOS0_.exit85.thread %201 = getelementptr inbounds nuw i8, ptr %6, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %92, ptr noundef nonnull align 8 dereferenceable(16) %201, i64 16, i1 false) + br label %_ZN4llvm10MIMetadataD2Ev.exit87 + +_ZN4llvm10MIMetadataaSEOS0_.exit85: ; preds = %198, %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i83, %196 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %92, i8 0, i64 16, i1 false) + br label %_ZN4llvm10MIMetadataD2Ev.exit87 + +_ZN4llvm10MIMetadataD2Ev.exit87: ; preds = %_ZN4llvm10MIMetadataaSEOS0_.exit85, %_ZN4llvm10MIMetadataaSEOS0_.exit85.thread call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #21 br label %_ZN4llvm8FastISel24removeDeadLocalValueCodeEPNS_12MachineInstrE.exit @@ -10821,27 +10837,31 @@ _ZN4llvm8FastISel17recomputeInsertPtEv.exit98: ; preds = %_ZN4llvm26MachineIn call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #21 %237 = icmp eq ptr %7, %81 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, i8 0, i64 24, i1 false) - br i1 %237, label %_ZN4llvm10MIMetadataD2Ev.exit104, label %238 + br i1 %237, label %_ZN4llvm10MIMetadataaSEOS0_.exit102, label %238 238: ; preds = %236 %239 = load ptr, ptr %81, align 8, !tbaa !140 %.not.i.i.i.i.i99 = icmp eq ptr %239, null - br i1 %.not.i.i.i.i.i99, label %_ZN4llvm10MIMetadataD2Ev.exit104, label %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i100 + br i1 %.not.i.i.i.i.i99, label %_ZN4llvm10MIMetadataaSEOS0_.exit102, label %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i100 _ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i100: ; preds = %238 call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(24) %81, ptr noundef nonnull align 4 dereferenceable(8) %239) #21 %.pr135 = load ptr, ptr %7, align 8, !tbaa !140 store ptr %.pr135, ptr %81, align 8, !tbaa !140 %.not.i6.i.i.i.i101 = icmp eq ptr %.pr135, null - br i1 %.not.i6.i.i.i.i101, label %_ZN4llvm10MIMetadataD2Ev.exit104, label %_ZN4llvm10MIMetadataaSEOS0_.exit102.thread + br i1 %.not.i6.i.i.i.i101, label %_ZN4llvm10MIMetadataaSEOS0_.exit102, label %_ZN4llvm10MIMetadataaSEOS0_.exit102.thread _ZN4llvm10MIMetadataaSEOS0_.exit102.thread: ; preds = %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i100 %240 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking7retrackEPvRNS_8MetadataES1_(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 4 dereferenceable(8) %.pr135, ptr noundef nonnull align 8 dereferenceable(24) %81) #21 - br label %_ZN4llvm10MIMetadataD2Ev.exit104 - -_ZN4llvm10MIMetadataD2Ev.exit104: ; preds = %236, %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i100, %238, %_ZN4llvm10MIMetadataaSEOS0_.exit102.thread %241 = getelementptr inbounds nuw i8, ptr %7, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %92, ptr noundef nonnull align 8 dereferenceable(16) %241, i64 16, i1 false) + br label %_ZN4llvm10MIMetadataD2Ev.exit104 + +_ZN4llvm10MIMetadataaSEOS0_.exit102: ; preds = %238, %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i100, %236 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %92, i8 0, i64 16, i1 false) + br label %_ZN4llvm10MIMetadataD2Ev.exit104 + +_ZN4llvm10MIMetadataD2Ev.exit104: ; preds = %_ZN4llvm10MIMetadataaSEOS0_.exit102, %_ZN4llvm10MIMetadataaSEOS0_.exit102.thread call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #21 %242 = load i8, ptr %1, align 8, !tbaa !199 %243 = add i8 %242, -30 @@ -11181,26 +11201,33 @@ _ZNK4llvm7PHINode24getIncomingValueForBlockEPKNS_10BasicBlockE.exit: ; preds = % %131 = load ptr, ptr %130, align 8, !tbaa !230 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #21 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, i8 0, i64 24, i1 false) - br i1 %36, label %_ZN4llvm10MIMetadataD2Ev.exit, label %132 + br i1 %36, label %_ZN4llvm10MIMetadataaSEOS0_.exit, label %132 132: ; preds = %_ZNK4llvm7PHINode24getIncomingValueForBlockEPKNS_10BasicBlockE.exit %133 = load ptr, ptr %35, align 8, !tbaa !140 %.not.i.i.i.i.i = icmp eq ptr %133, null - br i1 %.not.i.i.i.i.i, label %_ZN4llvm10MIMetadataD2Ev.exit, label %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i + br i1 %.not.i.i.i.i.i, label %_ZN4llvm10MIMetadataaSEOS0_.exit.thread, label %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i _ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i: ; preds = %132 call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(24) %35, ptr noundef nonnull align 4 dereferenceable(8) %133) #21 %.pre194 = load ptr, ptr %4, align 8, !tbaa !140 store ptr %.pre194, ptr %35, align 8, !tbaa !140 %.not.i6.i.i.i.i = icmp eq ptr %.pre194, null - br i1 %.not.i6.i.i.i.i, label %_ZN4llvm10MIMetadataD2Ev.exit, label %134 + br i1 %.not.i6.i.i.i.i, label %_ZN4llvm10MIMetadataaSEOS0_.exit.thread, label %134 134: ; preds = %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i %135 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking7retrackEPvRNS_8MetadataES1_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 4 dereferenceable(8) %.pre194, ptr noundef nonnull align 8 dereferenceable(24) %35) #21 - br label %_ZN4llvm10MIMetadataD2Ev.exit + br label %_ZN4llvm10MIMetadataaSEOS0_.exit.thread -_ZN4llvm10MIMetadataD2Ev.exit: ; preds = %_ZNK4llvm7PHINode24getIncomingValueForBlockEPKNS_10BasicBlockE.exit, %134, %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i, %132 +_ZN4llvm10MIMetadataaSEOS0_.exit.thread: ; preds = %132, %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i, %134 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef nonnull align 8 dereferenceable(16) %38, i64 16, i1 false) + br label %_ZN4llvm10MIMetadataD2Ev.exit + +_ZN4llvm10MIMetadataaSEOS0_.exit: ; preds = %_ZNK4llvm7PHINode24getIncomingValueForBlockEPKNS_10BasicBlockE.exit + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %37, i8 0, i64 16, i1 false) + br label %_ZN4llvm10MIMetadataD2Ev.exit + +_ZN4llvm10MIMetadataD2Ev.exit: ; preds = %_ZN4llvm10MIMetadataaSEOS0_.exit, %_ZN4llvm10MIMetadataaSEOS0_.exit.thread call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #21 %136 = load i8, ptr %131, align 8, !tbaa !199 %137 = icmp ult i8 %136, 29 diff --git a/bench/llvm/optimized/LoopVectorizationLegality.ll b/bench/llvm/optimized/LoopVectorizationLegality.ll index 39c142aed61..d57856cb4a8 100644 --- a/bench/llvm/optimized/LoopVectorizationLegality.ll +++ b/bench/llvm/optimized/LoopVectorizationLegality.ll @@ -6044,7 +6044,7 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(164) ptr @_ZN ._crit_edge: ; preds = %2 %.pre = load i32, ptr %10, align 4, !tbaa !66 - br label %51 + br label %49 _ZSt9make_pairIRKPN4llvm7PHINodeENS0_20RecurrenceDescriptorEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS7_INS8_IT0_E4typeEE6__typeEEOS9_OSE_.exit: ; preds = %2 call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %5) #20 @@ -6074,82 +6074,79 @@ _ZSt9make_pairIRKPN4llvm7PHINodeENS0_20RecurrenceDescriptorEESt4pairINSt25__stri %25 = getelementptr inbounds nuw i8, ptr %5, i64 32 %26 = getelementptr inbounds nuw i8, ptr %6, i64 24 %27 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %28 = getelementptr inbounds nuw i8, ptr %5, i64 40 - %29 = getelementptr inbounds nuw i8, ptr %6, i64 32 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %24, i8 0, i64 16, i1 false) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(34) %28, ptr noundef nonnull align 8 dereferenceable(34) %29, i64 34, i1 false) - %30 = getelementptr inbounds nuw i8, ptr %5, i64 80 - %31 = getelementptr inbounds nuw i8, ptr %5, i64 104 - call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(88) %30, ptr noundef nonnull %31, i32 noundef 8, ptr noundef nonnull %17, ptr noundef nonnull align 8 dereferenceable(88) %16) #20 - %32 = getelementptr inbounds nuw i8, ptr %5, i64 168 - %33 = getelementptr inbounds nuw i8, ptr %6, i64 160 - %34 = load i32, ptr %33, align 8, !tbaa !412, !noalias !470 - store i32 %34, ptr %32, align 8, !tbaa !412, !alias.scope !470 + %28 = getelementptr inbounds nuw i8, ptr %5, i64 80 + %29 = getelementptr inbounds nuw i8, ptr %5, i64 104 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(50) %24, i8 0, i64 50, i1 false) + call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(88) %28, ptr noundef nonnull %29, i32 noundef 8, ptr noundef nonnull %17, ptr noundef nonnull align 8 dereferenceable(88) %16) #20 + %30 = getelementptr inbounds nuw i8, ptr %5, i64 168 + %31 = getelementptr inbounds nuw i8, ptr %6, i64 160 + %32 = load i32, ptr %31, align 8, !tbaa !412, !noalias !470 + store i32 %32, ptr %30, align 8, !tbaa !412, !alias.scope !470 call void @_ZN4llvm23SmallVectorTemplateBaseISt4pairIPNS_7PHINodeENS_20RecurrenceDescriptorEELb0EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr noundef nonnull align 8 dereferenceable(176) %5) - %35 = getelementptr inbounds nuw i8, ptr %5, i64 100 - %36 = load i8, ptr %35, align 4, !tbaa !32, !range !48, !noundef !49 - %37 = trunc nuw i8 %36 to i1 - br i1 %37, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, label %38 + %33 = getelementptr inbounds nuw i8, ptr %5, i64 100 + %34 = load i8, ptr %33, align 4, !tbaa !32, !range !48, !noundef !49 + %35 = trunc nuw i8 %34 to i1 + br i1 %35, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, label %36 -38: ; preds = %_ZSt9make_pairIRKPN4llvm7PHINodeENS0_20RecurrenceDescriptorEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS7_INS8_IT0_E4typeEE6__typeEEOS9_OSE_.exit - %39 = load ptr, ptr %30, align 8, !tbaa !28 - call void @free(ptr noundef %39) #20 +36: ; preds = %_ZSt9make_pairIRKPN4llvm7PHINodeENS0_20RecurrenceDescriptorEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS7_INS8_IT0_E4typeEE6__typeEEOS9_OSE_.exit + %37 = load ptr, ptr %28, align 8, !tbaa !28 + call void @free(ptr noundef %37) #20 br label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i -_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i: ; preds = %38, %_ZSt9make_pairIRKPN4llvm7PHINodeENS0_20RecurrenceDescriptorEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS7_INS8_IT0_E4typeEE6__typeEEOS9_OSE_.exit - %40 = load ptr, ptr %25, align 8, !tbaa !346 - %magicptr.i.i.i.i = ptrtoint ptr %40 to i64 - switch i64 %magicptr.i.i.i.i, label %41 [ +_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i: ; preds = %36, %_ZSt9make_pairIRKPN4llvm7PHINodeENS0_20RecurrenceDescriptorEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS7_INS8_IT0_E4typeEE6__typeEEOS9_OSE_.exit + %38 = load ptr, ptr %25, align 8, !tbaa !346 + %magicptr.i.i.i.i = ptrtoint ptr %38 to i64 + switch i64 %magicptr.i.i.i.i, label %39 [ i64 0, label %_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit i64 -4096, label %_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit i64 -8192, label %_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit ] -41: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i +39: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i call void @_ZN4llvm15ValueHandleBase17RemoveFromUseListEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #20 br label %_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit -_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %41 - %42 = load i8, ptr %20, align 4, !tbaa !32, !range !48, !noundef !49 - %43 = trunc nuw i8 %42 to i1 - br i1 %43, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i, label %44 +_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %39 + %40 = load i8, ptr %20, align 4, !tbaa !32, !range !48, !noundef !49 + %41 = trunc nuw i8 %40 to i1 + br i1 %41, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i, label %42 -44: ; preds = %_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit - %45 = load ptr, ptr %16, align 8, !tbaa !28 - call void @free(ptr noundef %45) #20 +42: ; preds = %_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit + %43 = load ptr, ptr %16, align 8, !tbaa !28 + call void @free(ptr noundef %43) #20 br label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i -_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i: ; preds = %44, %_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit - %46 = load ptr, ptr %26, align 8, !tbaa !346 - %magicptr.i.i.i = ptrtoint ptr %46 to i64 - switch i64 %magicptr.i.i.i, label %47 [ +_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i: ; preds = %42, %_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit + %44 = load ptr, ptr %26, align 8, !tbaa !346 + %magicptr.i.i.i = ptrtoint ptr %44 to i64 + switch i64 %magicptr.i.i.i, label %45 [ i64 0, label %_ZN4llvm20RecurrenceDescriptorD2Ev.exit i64 -4096, label %_ZN4llvm20RecurrenceDescriptorD2Ev.exit i64 -8192, label %_ZN4llvm20RecurrenceDescriptorD2Ev.exit ] -47: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i +45: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i call void @_ZN4llvm15ValueHandleBase17RemoveFromUseListEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #20 br label %_ZN4llvm20RecurrenceDescriptorD2Ev.exit -_ZN4llvm20RecurrenceDescriptorD2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i, %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i, %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i, %47 +_ZN4llvm20RecurrenceDescriptorD2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i, %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i, %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i, %45 call void @llvm.lifetime.end.p0(i64 168, ptr nonnull %6) #20 call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %5) #20 - %48 = getelementptr inbounds nuw i8, ptr %0, i64 32 - %49 = load i32, ptr %48, align 8, !tbaa !26 - %50 = add i32 %49, -1 - store i32 %50, ptr %10, align 4, !tbaa !66 - br label %51 + %46 = getelementptr inbounds nuw i8, ptr %0, i64 32 + %47 = load i32, ptr %46, align 8, !tbaa !26 + %48 = add i32 %47, -1 + store i32 %48, ptr %10, align 4, !tbaa !66 + br label %49 -51: ; preds = %._crit_edge, %_ZN4llvm20RecurrenceDescriptorD2Ev.exit - %52 = phi i32 [ %.pre, %._crit_edge ], [ %50, %_ZN4llvm20RecurrenceDescriptorD2Ev.exit ] - %53 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %54 = zext i32 %52 to i64 - %55 = load ptr, ptr %53, align 8, !tbaa !25 - %56 = getelementptr inbounds nuw %"struct.std::pair.423", ptr %55, i64 %54, i32 1 +49: ; preds = %._crit_edge, %_ZN4llvm20RecurrenceDescriptorD2Ev.exit + %50 = phi i32 [ %.pre, %._crit_edge ], [ %48, %_ZN4llvm20RecurrenceDescriptorD2Ev.exit ] + %51 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %52 = zext i32 %50 to i64 + %53 = load ptr, ptr %51, align 8, !tbaa !25 + %54 = getelementptr inbounds nuw %"struct.std::pair.423", ptr %53, i64 %52, i32 1 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #20 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #20 - ret ptr %56 + ret ptr %54 } declare noundef zeroext i1 @_ZN4llvm19InductionDescriptor14isInductionPHIEPNS_7PHINodeEPKNS_4LoopERNS_25PredicatedScalarEvolutionERS0_b(ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(80), i1 noundef zeroext) local_unnamed_addr #5 diff --git a/bench/llvm/optimized/NativeFunctionSymbol.ll b/bench/llvm/optimized/NativeFunctionSymbol.ll index 16a75ee9709..7572f443d98 100644 --- a/bench/llvm/optimized/NativeFunctionSymbol.ll +++ b/bench/llvm/optimized/NativeFunctionSymbol.ll @@ -795,7 +795,6 @@ declare noundef i64 @_ZNK4llvm3pdb13NativeSession19getVAFromSectOffsetEjj(ptr no ; Function Attrs: mustprogress nounwind uwtable define dso_local void @_ZNK4llvm3pdb20NativeFunctionSymbol20findInlineFramesByVAEm(ptr dead_on_unwind noalias writable writeonly sret(%"class.std::unique_ptr.46") align 8 captures(none) %0, ptr noundef nonnull align 8 dereferenceable(92) %1, i64 noundef %2) unnamed_addr #0 align 2 { %4 = alloca %"class.std::vector.13", align 8 - %.sroa.2.i38.i = alloca [39 x i8], align 1 %5 = alloca %"struct.llvm::codeview::BinaryAnnotationIterator", align 8 %6 = alloca %"class.llvm::codeview::InlineSiteSym", align 8 %7 = alloca %"class.llvm::Error", align 8 @@ -937,7 +936,6 @@ _ZN4llvm14VarStreamArrayINS_8codeview8CVRecordINS1_10SymbolKindEEENS_23VarStream %88 = getelementptr inbounds nuw i8, ptr %5, i64 32 %89 = getelementptr inbounds nuw i8, ptr %5, i64 40 %90 = getelementptr inbounds nuw i8, ptr %5, i64 36 - %.sroa.2.7..sroa_idx.i39.i = getelementptr inbounds nuw i8, ptr %.sroa.2.i38.i, i64 7 %91 = getelementptr inbounds nuw i8, ptr %16, i64 4 %.sroa.6.4..sroa_idx = getelementptr inbounds nuw i8, ptr %16, i64 8 %92 = getelementptr inbounds nuw i8, ptr %16, i64 16 @@ -1181,13 +1179,11 @@ _ZN4llvm8ExpectedINS_8codeview13InlineSiteSymEED2Ev.exit: ; preds = %158, %157, 183: ; preds = %179, %176, %172, %169, %.lr.ph.i %.129.i = phi i32 [ %.02820.i, %.lr.ph.i ], [ %171, %169 ], [ %174, %172 ], [ %178, %179 ], [ %178, %176 ] %.126.i = phi i1 [ %.02521.i, %.lr.ph.i ], [ %spec.select.i, %169 ], [ false, %172 ], [ false, %179 ], [ false, %176 ] - call void @llvm.lifetime.start.p0(i64 39, ptr nonnull %.sroa.2.i38.i) %184 = call noundef zeroext i1 @_ZN4llvm8codeview24BinaryAnnotationIterator22ParseCurrentAnnotationEv(ptr noundef nonnull align 8 dereferenceable(88) %5) br i1 %184, label %186, label %185 185: ; preds = %183 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(39) %.sroa.2.i38.i, i8 0, i64 39, i1 false) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %86, ptr noundef nonnull align 1 dereferenceable(16) %.sroa.2.7..sroa_idx.i39.i, i64 16, i1 false), !tbaa.struct !110 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %86, i8 0, i64 16, i1 false) br label %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit.i 186: ; preds = %183 @@ -1202,7 +1198,6 @@ _ZN4llvm8ExpectedINS_8codeview13InlineSiteSymEED2Ev.exit: ; preds = %158, %157, br label %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit.i _ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit.i: ; preds = %189, %186, %185 - call void @llvm.lifetime.end.p0(i64 39, ptr nonnull %.sroa.2.i38.i) %.sroa.22.0.copyload.i.i.i = load i64, ptr %.sroa.66.56..sroa_idx.i, align 8, !tbaa !42 %.not.i.i.i.i.not.i = icmp eq i64 %.sroa.22.0.copyload.i.i.i, 0 br i1 %.not.i.i.i.i.not.i, label %.loopexit, label %.lr.ph.i diff --git a/bench/llvm/optimized/NativeInlineSiteSymbol.ll b/bench/llvm/optimized/NativeInlineSiteSymbol.ll index 8f6d44bdbde..3e92236c5a1 100644 --- a/bench/llvm/optimized/NativeInlineSiteSymbol.ll +++ b/bench/llvm/optimized/NativeInlineSiteSymbol.ll @@ -1203,18 +1203,17 @@ _ZN4llvm8codeview16TypeDeserializer11MappingInfoD2Ev.exit: ; preds = %_ZN4llvm8c ; Function Attrs: mustprogress nounwind uwtable define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_(ptr noundef nonnull readonly align 8 captures(none) dereferenceable(80) %0, i32 noundef %1, ptr noundef nonnull align 4 captures(none) dereferenceable(4) initializes((0, 4)) %2, ptr noundef nonnull writeonly align 4 captures(none) dereferenceable(4) initializes((0, 4)) %3) local_unnamed_addr #0 align 2 { - %.sroa.2.i54 = alloca [39 x i8], align 1 - %.sroa.0138 = alloca %"struct.std::_Optional_payload.174", align 8 - %.sroa.0118 = alloca %"struct.std::_Optional_payload.174", align 8 + %.sroa.0136 = alloca %"struct.std::_Optional_payload.174", align 8 + %.sroa.0116 = alloca %"struct.std::_Optional_payload.174", align 8 %5 = alloca %"struct.llvm::codeview::BinaryAnnotationIterator", align 8 store i32 0, ptr %2, align 4, !tbaa !97 store i32 0, ptr %3, align 4, !tbaa !97 - call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %.sroa.0138) - %.sroa.0138.4..sroa_idx239 = getelementptr inbounds nuw i8, ptr %.sroa.0138, i64 4 - store i8 0, ptr %.sroa.0138.4..sroa_idx239, align 4, !tbaa !98 - call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %.sroa.0118) - %.sroa.0118.4..sroa_idx236 = getelementptr inbounds nuw i8, ptr %.sroa.0118, i64 4 - store i8 0, ptr %.sroa.0118.4..sroa_idx236, align 4, !tbaa !98 + call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %.sroa.0136) + %.sroa.0136.4..sroa_idx237 = getelementptr inbounds nuw i8, ptr %.sroa.0136, i64 4 + store i8 0, ptr %.sroa.0136.4..sroa_idx237, align 4, !tbaa !98 + call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %.sroa.0116) + %.sroa.0116.4..sroa_idx234 = getelementptr inbounds nuw i8, ptr %.sroa.0116, i64 4 + store i8 0, ptr %.sroa.0116.4..sroa_idx234, align 4, !tbaa !98 %6 = getelementptr inbounds nuw i8, ptr %0, i64 40 %7 = load ptr, ptr %6, align 8, !tbaa !13, !noalias !100 %8 = getelementptr inbounds nuw i8, ptr %0, i64 48 @@ -1227,36 +1226,35 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS store i8 0, ptr %13, align 8, !tbaa !103, !alias.scope !105 %14 = getelementptr inbounds nuw i8, ptr %5, i64 56 store ptr %7, ptr %14, align 8, !tbaa !16 - %.sroa.561.56..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 64 - store i64 %12, ptr %.sroa.561.56..sroa_idx, align 8, !tbaa !64 + %.sroa.559.56..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 64 + store i64 %12, ptr %.sroa.559.56..sroa_idx, align 8, !tbaa !64 %15 = getelementptr inbounds nuw i8, ptr %5, i64 72 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %15, i8 0, i64 16, i1 false), !alias.scope !105 - %.not.i.i.i.i184 = icmp eq ptr %9, %7 - br i1 %.not.i.i.i.i184, label %_ZNK4llvm20iterator_facade_baseINS_8codeview24BinaryAnnotationIteratorESt20forward_iterator_tagNS1_17DecodedAnnotationElPS4_RS4_EneERKS2_.exit, label %.lr.ph + %.not.i.i.i.i182 = icmp eq ptr %9, %7 + br i1 %.not.i.i.i.i182, label %_ZNK4llvm20iterator_facade_baseINS_8codeview24BinaryAnnotationIteratorESt20forward_iterator_tagNS1_17DecodedAnnotationElPS4_RS4_EneERKS2_.exit, label %.lr.ph .lr.ph: ; preds = %4 %16 = getelementptr inbounds nuw i8, ptr %5, i64 32 %17 = getelementptr inbounds nuw i8, ptr %5, i64 36 %18 = getelementptr inbounds nuw i8, ptr %5, i64 44 %19 = getelementptr inbounds nuw i8, ptr %5, i64 40 - %.sroa.2.7..sroa_idx.i55 = getelementptr inbounds nuw i8, ptr %.sroa.2.i54, i64 7 - %.sroa.0138.4..sroa_idx240 = getelementptr inbounds nuw i8, ptr %.sroa.0138, i64 4 - %.sroa.0138.4..sroa_idx241 = getelementptr inbounds nuw i8, ptr %.sroa.0138, i64 4 - %.sroa.0118.4..sroa_idx237 = getelementptr inbounds nuw i8, ptr %.sroa.0118, i64 4 - %.sroa.0138.4..sroa_idx242 = getelementptr inbounds nuw i8, ptr %.sroa.0138, i64 4 - %.sroa.0118.4..sroa_idx238 = getelementptr inbounds nuw i8, ptr %.sroa.0118, i64 4 + %.sroa.0136.4..sroa_idx238 = getelementptr inbounds nuw i8, ptr %.sroa.0136, i64 4 + %.sroa.0136.4..sroa_idx239 = getelementptr inbounds nuw i8, ptr %.sroa.0136, i64 4 + %.sroa.0116.4..sroa_idx235 = getelementptr inbounds nuw i8, ptr %.sroa.0116, i64 4 + %.sroa.0136.4..sroa_idx240 = getelementptr inbounds nuw i8, ptr %.sroa.0136, i64 4 + %.sroa.0116.4..sroa_idx236 = getelementptr inbounds nuw i8, ptr %.sroa.0116, i64 4 br label %20 20: ; preds = %.lr.ph, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit - %.sroa.0118.4..sroa.0118.4..sroa.0118.4.128 = phi i8 [ 0, %.lr.ph ], [ %.sroa.0118.4..sroa.0118.4..sroa.0118.4.128231, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] - %.sroa.0138.4..sroa.0138.4..sroa.0138.4.152 = phi i8 [ 0, %.lr.ph ], [ %.sroa.0138.4..sroa.0138.4..sroa.0138.4.152229, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] - %.sroa.0115.0 = phi i32 [ undef, %.lr.ph ], [ %.sroa.0115.2, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] + %.sroa.0116.4..sroa.0116.4..sroa.0116.4.126 = phi i8 [ 0, %.lr.ph ], [ %.sroa.0116.4..sroa.0116.4..sroa.0116.4.126229, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] + %.sroa.0136.4..sroa.0136.4..sroa.0136.4.150 = phi i8 [ 0, %.lr.ph ], [ %.sroa.0136.4..sroa.0136.4..sroa.0136.4.150227, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] + %.sroa.0113.0 = phi i32 [ undef, %.lr.ph ], [ %.sroa.0113.2, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] %.sroa.0.0 = phi i32 [ undef, %.lr.ph ], [ %.sroa.0.1, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] - %.0190 = phi i32 [ 0, %.lr.ph ], [ %.1, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] - %.sroa.7.0189 = phi i1 [ false, %.lr.ph ], [ %.sroa.7.5.ph, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] - %.sroa.8.0188 = phi i8 [ 0, %.lr.ph ], [ %.sroa.8.5.ph, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] - %.sroa.0111.0187 = phi i32 [ undef, %.lr.ph ], [ %.sroa.0111.1, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] - %.sroa.5.0186 = phi i1 [ false, %.lr.ph ], [ %.sroa.5.4.ph, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] + %.0188 = phi i32 [ 0, %.lr.ph ], [ %.1, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] + %.sroa.7.0187 = phi i1 [ false, %.lr.ph ], [ %.sroa.7.5.ph, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] + %.sroa.8.0186 = phi i8 [ 0, %.lr.ph ], [ %.sroa.8.5.ph, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] + %.sroa.0109.0185 = phi i32 [ undef, %.lr.ph ], [ %.sroa.0109.1, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] + %.sroa.5.0184 = phi i1 [ false, %.lr.ph ], [ %.sroa.5.4.ph, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] %21 = call noundef zeroext i1 @_ZN4llvm8codeview24BinaryAnnotationIterator22ParseCurrentAnnotationEv(ptr noundef nonnull align 8 dereferenceable(88) %5) %22 = load i32, ptr %16, align 8, !tbaa !108 switch i32 %22, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" [ @@ -1272,22 +1270,22 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS 23: ; preds = %20, %20, %20 %24 = load i32, ptr %17, align 4, !tbaa !112 - %25 = add i32 %24, %.0190 - %26 = trunc nuw i8 %.sroa.0138.4..sroa.0138.4..sroa.0138.4.152 to i1 + %25 = add i32 %24, %.0188 + %26 = trunc nuw i8 %.sroa.0136.4..sroa.0136.4..sroa.0136.4.150 to i1 br i1 %26, label %27, label %.sink.split.i 27: ; preds = %23 - %28 = trunc nuw i8 %.sroa.0118.4..sroa.0118.4..sroa.0118.4.128 to i1 + %28 = trunc nuw i8 %.sroa.0116.4..sroa.0116.4..sroa.0116.4.126 to i1 br i1 %28, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit", label %29 29: ; preds = %27 - %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.142 = load i32, ptr %.sroa.0138, align 8, !tbaa !97 - %30 = add i32 %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.142, %24 + %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.140 = load i32, ptr %.sroa.0136, align 8, !tbaa !97 + %30 = add i32 %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.140, %24 br label %.sink.split.i .sink.split.i: ; preds = %23, %29 %.sink8.i = phi i32 [ %30, %29 ], [ %25, %23 ] - %.sink.i = phi ptr [ %.sroa.0118, %29 ], [ %.sroa.0138, %23 ] + %.sink.i = phi ptr [ %.sroa.0116, %29 ], [ %.sroa.0136, %23 ] %.sroa.0.0.insert.ext.i = zext i32 %.sink8.i to i64 %.sroa.0.0.insert.insert.i = or disjoint i64 %.sroa.0.0.insert.ext.i, 4294967296 store i64 %.sroa.0.0.insert.insert.i, ptr %.sink.i, align 8 @@ -1295,21 +1293,21 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS 31: ; preds = %20 %32 = load i32, ptr %17, align 4, !tbaa !112 - %33 = trunc nuw i8 %.sroa.0138.4..sroa.0138.4..sroa.0138.4.152 to i1 + %33 = trunc nuw i8 %.sroa.0136.4..sroa.0136.4..sroa.0136.4.150 to i1 br i1 %33, label %34, label %.sink.split.i24 34: ; preds = %31 - %35 = trunc nuw i8 %.sroa.0118.4..sroa.0118.4..sroa.0118.4.128 to i1 + %35 = trunc nuw i8 %.sroa.0116.4..sroa.0116.4..sroa.0116.4.126 to i1 br i1 %35, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit", label %36 36: ; preds = %34 - %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.141 = load i32, ptr %.sroa.0138, align 8, !tbaa !97 - %37 = add i32 %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.141, %32 + %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.139 = load i32, ptr %.sroa.0136, align 8, !tbaa !97 + %37 = add i32 %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.139, %32 br label %.sink.split.i24 .sink.split.i24: ; preds = %31, %36 - %.sink8.i25 = phi i32 [ %37, %36 ], [ %.0190, %31 ] - %.sink.i26 = phi ptr [ %.sroa.0118, %36 ], [ %.sroa.0138, %31 ] + %.sink8.i25 = phi i32 [ %37, %36 ], [ %.0188, %31 ] + %.sink.i26 = phi ptr [ %.sroa.0116, %36 ], [ %.sroa.0136, %31 ] %.sroa.0.0.insert.ext.i27 = zext i32 %.sink8.i25 to i64 %.sroa.0.0.insert.insert.i28 = or disjoint i64 %.sroa.0.0.insert.ext.i27, 4294967296 store i64 %.sroa.0.0.insert.insert.i28, ptr %.sink.i26, align 8 @@ -1317,12 +1315,12 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS 38: ; preds = %20 %39 = load i32, ptr %19, align 8, !tbaa !113 - %40 = add i32 %39, %.0190 - %41 = trunc nuw i8 %.sroa.0138.4..sroa.0138.4..sroa.0138.4.152 to i1 + %40 = add i32 %39, %.0188 + %41 = trunc nuw i8 %.sroa.0136.4..sroa.0136.4..sroa.0136.4.150 to i1 br i1 %41, label %42, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35" 42: ; preds = %38 - %43 = trunc nuw i8 %.sroa.0118.4..sroa.0118.4..sroa.0118.4.128 to i1 + %43 = trunc nuw i8 %.sroa.0116.4..sroa.0116.4..sroa.0116.4.126 to i1 br i1 %43, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35.thread", label %45 "_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35.thread": ; preds = %42 @@ -1330,35 +1328,35 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS br label %49 45: ; preds = %42 - %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.140 = load i32, ptr %.sroa.0138, align 8, !tbaa !97 - %46 = add i32 %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.140, %39 + %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.138 = load i32, ptr %.sroa.0136, align 8, !tbaa !97 + %46 = add i32 %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.138, %39 br label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35" "_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35": ; preds = %45, %38 %.sink8.i31 = phi i32 [ %46, %45 ], [ %40, %38 ] - %.sink.i32 = phi ptr [ %.sroa.0118, %45 ], [ %.sroa.0138, %38 ] + %.sink.i32 = phi ptr [ %.sroa.0116, %45 ], [ %.sroa.0136, %38 ] %.sroa.0.0.insert.ext.i33 = zext i32 %.sink8.i31 to i64 %.sroa.0.0.insert.insert.i34 = or disjoint i64 %.sroa.0.0.insert.ext.i33, 4294967296 store i64 %.sroa.0.0.insert.insert.i34, ptr %.sink.i32, align 8 - %.sroa.0138.4..sroa.0138.4..sroa.0138.4..sroa.0138.4.146.pre = load i8, ptr %.sroa.0138.4..sroa_idx241, align 4, !tbaa !98 + %.sroa.0136.4..sroa.0136.4..sroa.0136.4..sroa.0136.4.144.pre = load i8, ptr %.sroa.0136.4..sroa_idx239, align 4, !tbaa !98 %47 = load i32, ptr %17, align 4, !tbaa !112 - %48 = trunc nuw i8 %.sroa.0138.4..sroa.0138.4..sroa.0138.4..sroa.0138.4.146.pre to i1 + %48 = trunc nuw i8 %.sroa.0136.4..sroa.0136.4..sroa.0136.4..sroa.0136.4.144.pre to i1 br i1 %48, label %49, label %.sink.split.i36 49: ; preds = %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35.thread", %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35" %50 = phi i32 [ %44, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35.thread" ], [ %47, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35" ] - %.sroa.0118.4..sroa.0118.4..sroa.0118.4..sroa.0118.4.122 = load i8, ptr %.sroa.0118.4..sroa_idx237, align 4, !tbaa !98 - %51 = trunc nuw i8 %.sroa.0118.4..sroa.0118.4..sroa.0118.4..sroa.0118.4.122 to i1 + %.sroa.0116.4..sroa.0116.4..sroa.0116.4..sroa.0116.4.120 = load i8, ptr %.sroa.0116.4..sroa_idx235, align 4, !tbaa !98 + %51 = trunc nuw i8 %.sroa.0116.4..sroa.0116.4..sroa.0116.4..sroa.0116.4.120 to i1 br i1 %51, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit", label %52 52: ; preds = %49 - %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.139 = load i32, ptr %.sroa.0138, align 8, !tbaa !97 - %53 = add i32 %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.139, %50 + %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.137 = load i32, ptr %.sroa.0136, align 8, !tbaa !97 + %53 = add i32 %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.137, %50 br label %.sink.split.i36 .sink.split.i36: ; preds = %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35", %52 %.sink8.i37 = phi i32 [ %53, %52 ], [ %40, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35" ] - %.sink.i38 = phi ptr [ %.sroa.0118, %52 ], [ %.sroa.0138, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35" ] + %.sink.i38 = phi ptr [ %.sroa.0116, %52 ], [ %.sroa.0136, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35" ] %.sroa.0.0.insert.ext.i39 = zext i32 %.sink8.i37 to i64 %.sroa.0.0.insert.insert.i40 = or disjoint i64 %.sroa.0.0.insert.ext.i39, 4294967296 store i64 %.sroa.0.0.insert.insert.i40, ptr %.sink.i38, align 8 @@ -1369,8 +1367,8 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS %55 = load i32, ptr %2, align 4, !tbaa !97 %56 = add i32 %55, %54 store i32 %56, ptr %2, align 4, !tbaa !97 - %57 = trunc nuw i8 %.sroa.0138.4..sroa.0138.4..sroa.0138.4.152 to i1 - %58 = trunc nuw i8 %.sroa.8.0188 to i1 + %57 = trunc nuw i8 %.sroa.0136.4..sroa.0136.4..sroa.0136.4.150 to i1 + %58 = trunc nuw i8 %.sroa.8.0186 to i1 %59 = select i1 %57, i1 %58, i1 false br i1 %59, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit", label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" @@ -1379,37 +1377,37 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS 60: ; preds = %20 %61 = load i32, ptr %17, align 4, !tbaa !112 - %62 = add i32 %61, %.0190 - %63 = trunc nuw i8 %.sroa.0138.4..sroa.0138.4..sroa.0138.4.152 to i1 + %62 = add i32 %61, %.0188 + %63 = trunc nuw i8 %.sroa.0136.4..sroa.0136.4..sroa.0136.4.150 to i1 br i1 %63, label %64, label %.sink.split.i43 64: ; preds = %60 - %65 = trunc nuw i8 %.sroa.0118.4..sroa.0118.4..sroa.0118.4.128 to i1 + %65 = trunc nuw i8 %.sroa.0116.4..sroa.0116.4..sroa.0116.4.126 to i1 br i1 %65, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48", label %66 66: ; preds = %64 - %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0. = load i32, ptr %.sroa.0138, align 8, !tbaa !97 - %67 = add i32 %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0., %61 + %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0. = load i32, ptr %.sroa.0136, align 8, !tbaa !97 + %67 = add i32 %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0., %61 br label %.sink.split.i43 .sink.split.i43: ; preds = %60, %66 %.sink8.i44 = phi i32 [ %67, %66 ], [ %62, %60 ] - %.sink.i45 = phi ptr [ %.sroa.0118, %66 ], [ %.sroa.0138, %60 ] + %.sink.i45 = phi ptr [ %.sroa.0116, %66 ], [ %.sroa.0136, %60 ] %.sroa.0.0.insert.ext.i46 = zext i32 %.sink8.i44 to i64 %.sroa.0.0.insert.insert.i47 = or disjoint i64 %.sroa.0.0.insert.ext.i46, 4294967296 store i64 %.sroa.0.0.insert.insert.i47, ptr %.sink.i45, align 8 - %.sroa.0138.4..sroa.0138.4..sroa.0138.4..sroa.0138.4.154.pre = load i8, ptr %.sroa.0138.4..sroa_idx240, align 4, !tbaa !98 - %68 = trunc nuw i8 %.sroa.0138.4..sroa.0138.4..sroa.0138.4..sroa.0138.4.154.pre to i1 + %.sroa.0136.4..sroa.0136.4..sroa.0136.4..sroa.0136.4.152.pre = load i8, ptr %.sroa.0136.4..sroa_idx238, align 4, !tbaa !98 + %68 = trunc nuw i8 %.sroa.0136.4..sroa.0136.4..sroa.0136.4..sroa.0136.4.152.pre to i1 br label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" "_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48": ; preds = %64, %.sink.split.i43 - %.sroa.0138.4..sroa.0138.4..sroa.0138.4.154 = phi i1 [ true, %64 ], [ %68, %.sink.split.i43 ] + %.sroa.0136.4..sroa.0136.4..sroa.0136.4.152 = phi i1 [ true, %64 ], [ %68, %.sink.split.i43 ] %69 = load i32, ptr %18, align 4, !tbaa !114 %70 = load i32, ptr %2, align 4, !tbaa !97 %71 = add i32 %70, %69 store i32 %71, ptr %2, align 4, !tbaa !97 - %72 = trunc nuw i8 %.sroa.8.0188 to i1 - %73 = select i1 %.sroa.0138.4..sroa.0138.4..sroa.0138.4.154, i1 %72, i1 false + %72 = trunc nuw i8 %.sroa.8.0186 to i1 + %73 = select i1 %.sroa.0136.4..sroa.0136.4..sroa.0136.4.152, i1 %72, i1 false br i1 %73, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit", label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" "_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else": ; preds = %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" @@ -1417,7 +1415,7 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS 74: ; preds = %20 %75 = load i32, ptr %17, align 4, !tbaa !112 - %76 = trunc nuw i8 %.sroa.0138.4..sroa.0138.4..sroa.0138.4.152 to i1 + %76 = trunc nuw i8 %.sroa.0136.4..sroa.0136.4..sroa.0136.4.150 to i1 br i1 %76, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit", label %77 77: ; preds = %74 @@ -1425,17 +1423,17 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS br label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" "_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit": ; preds = %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else", %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48", %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else", %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit", %74, %77, %.sink.split.i36, %49, %.sink.split.i24, %34, %.sink.split.i, %27, %20 - %.sroa.0115.1 = phi i32 [ %.sroa.0115.0, %20 ], [ %.sroa.0115.0, %27 ], [ %.sroa.0115.0, %.sink.split.i ], [ %.sroa.0115.0, %34 ], [ %.sroa.0115.0, %.sink.split.i24 ], [ %.sroa.0115.0, %49 ], [ %.sroa.0115.0, %.sink.split.i36 ], [ %.sroa.0115.0, %74 ], [ %.sroa.0115.0, %77 ], [ %56, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ %.sroa.0115.0, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %71, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ %.sroa.0115.0, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] + %.sroa.0113.1 = phi i32 [ %.sroa.0113.0, %20 ], [ %.sroa.0113.0, %27 ], [ %.sroa.0113.0, %.sink.split.i ], [ %.sroa.0113.0, %34 ], [ %.sroa.0113.0, %.sink.split.i24 ], [ %.sroa.0113.0, %49 ], [ %.sroa.0113.0, %.sink.split.i36 ], [ %.sroa.0113.0, %74 ], [ %.sroa.0113.0, %77 ], [ %56, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ %.sroa.0113.0, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %71, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ %.sroa.0113.0, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] %.sroa.0.1 = phi i32 [ %.sroa.0.0, %20 ], [ %.sroa.0.0, %27 ], [ %.sroa.0.0, %.sink.split.i ], [ %.sroa.0.0, %34 ], [ %.sroa.0.0, %.sink.split.i24 ], [ %.sroa.0.0, %49 ], [ %.sroa.0.0, %.sink.split.i36 ], [ %.sroa.0.0, %74 ], [ %.sroa.0.0, %77 ], [ %.sroa.0.0, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ %56, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %.sroa.0.0, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ %71, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] - %.sroa.5.1 = phi i1 [ %.sroa.5.0186, %20 ], [ %.sroa.5.0186, %27 ], [ %.sroa.5.0186, %.sink.split.i ], [ %.sroa.5.0186, %34 ], [ %.sroa.5.0186, %.sink.split.i24 ], [ %.sroa.5.0186, %49 ], [ %.sroa.5.0186, %.sink.split.i36 ], [ true, %74 ], [ %.sroa.5.0186, %77 ], [ %.sroa.5.0186, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ %.sroa.5.0186, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %.sroa.5.0186, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ %.sroa.5.0186, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] - %.sroa.0111.1 = phi i32 [ %.sroa.0111.0187, %20 ], [ %.sroa.0111.0187, %27 ], [ %.sroa.0111.0187, %.sink.split.i ], [ %.sroa.0111.0187, %34 ], [ %.sroa.0111.0187, %.sink.split.i24 ], [ %.sroa.0111.0187, %49 ], [ %.sroa.0111.0187, %.sink.split.i36 ], [ %75, %74 ], [ %.sroa.0111.0187, %77 ], [ %.sroa.0111.0187, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ %.sroa.0111.0187, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %.sroa.0111.0187, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ %.sroa.0111.0187, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] - %.sroa.8.1 = phi i8 [ %.sroa.8.0188, %20 ], [ %.sroa.8.0188, %27 ], [ %.sroa.8.0188, %.sink.split.i ], [ %.sroa.8.0188, %34 ], [ %.sroa.8.0188, %.sink.split.i24 ], [ %.sroa.8.0188, %49 ], [ %.sroa.8.0188, %.sink.split.i36 ], [ %.sroa.8.0188, %74 ], [ %.sroa.8.0188, %77 ], [ 1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ 1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ 1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ 1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] - %.sroa.7.1 = phi i1 [ %.sroa.7.0189, %20 ], [ %.sroa.7.0189, %27 ], [ %.sroa.7.0189, %.sink.split.i ], [ %.sroa.7.0189, %34 ], [ %.sroa.7.0189, %.sink.split.i24 ], [ %.sroa.7.0189, %49 ], [ %.sroa.7.0189, %.sink.split.i36 ], [ %.sroa.7.0189, %74 ], [ %.sroa.7.0189, %77 ], [ %.sroa.7.0189, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ true, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %.sroa.7.0189, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ true, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] - %.1 = phi i32 [ %.0190, %20 ], [ %25, %27 ], [ %25, %.sink.split.i ], [ %.0190, %34 ], [ %.0190, %.sink.split.i24 ], [ %40, %49 ], [ %40, %.sink.split.i36 ], [ %.0190, %74 ], [ %.0190, %77 ], [ %.0190, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ %.0190, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %62, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ %62, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] - %.sroa.0138.4..sroa.0138.4..sroa.0138.4..sroa.0138.4.160 = load i8, ptr %.sroa.0138.4..sroa_idx242, align 4, !tbaa !98 - %78 = trunc nuw i8 %.sroa.0138.4..sroa.0138.4..sroa.0138.4..sroa.0138.4.160 to i1 - %.sroa.0118.4..sroa.0118.4..sroa.0118.4..sroa.0118.4.130 = load i8, ptr %.sroa.0118.4..sroa_idx238, align 4 - %79 = trunc nuw i8 %.sroa.0118.4..sroa.0118.4..sroa.0118.4..sroa.0118.4.130 to i1 + %.sroa.5.1 = phi i1 [ %.sroa.5.0184, %20 ], [ %.sroa.5.0184, %27 ], [ %.sroa.5.0184, %.sink.split.i ], [ %.sroa.5.0184, %34 ], [ %.sroa.5.0184, %.sink.split.i24 ], [ %.sroa.5.0184, %49 ], [ %.sroa.5.0184, %.sink.split.i36 ], [ true, %74 ], [ %.sroa.5.0184, %77 ], [ %.sroa.5.0184, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ %.sroa.5.0184, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %.sroa.5.0184, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ %.sroa.5.0184, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] + %.sroa.0109.1 = phi i32 [ %.sroa.0109.0185, %20 ], [ %.sroa.0109.0185, %27 ], [ %.sroa.0109.0185, %.sink.split.i ], [ %.sroa.0109.0185, %34 ], [ %.sroa.0109.0185, %.sink.split.i24 ], [ %.sroa.0109.0185, %49 ], [ %.sroa.0109.0185, %.sink.split.i36 ], [ %75, %74 ], [ %.sroa.0109.0185, %77 ], [ %.sroa.0109.0185, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ %.sroa.0109.0185, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %.sroa.0109.0185, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ %.sroa.0109.0185, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] + %.sroa.8.1 = phi i8 [ %.sroa.8.0186, %20 ], [ %.sroa.8.0186, %27 ], [ %.sroa.8.0186, %.sink.split.i ], [ %.sroa.8.0186, %34 ], [ %.sroa.8.0186, %.sink.split.i24 ], [ %.sroa.8.0186, %49 ], [ %.sroa.8.0186, %.sink.split.i36 ], [ %.sroa.8.0186, %74 ], [ %.sroa.8.0186, %77 ], [ 1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ 1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ 1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ 1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] + %.sroa.7.1 = phi i1 [ %.sroa.7.0187, %20 ], [ %.sroa.7.0187, %27 ], [ %.sroa.7.0187, %.sink.split.i ], [ %.sroa.7.0187, %34 ], [ %.sroa.7.0187, %.sink.split.i24 ], [ %.sroa.7.0187, %49 ], [ %.sroa.7.0187, %.sink.split.i36 ], [ %.sroa.7.0187, %74 ], [ %.sroa.7.0187, %77 ], [ %.sroa.7.0187, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ true, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %.sroa.7.0187, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ true, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] + %.1 = phi i32 [ %.0188, %20 ], [ %25, %27 ], [ %25, %.sink.split.i ], [ %.0188, %34 ], [ %.0188, %.sink.split.i24 ], [ %40, %49 ], [ %40, %.sink.split.i36 ], [ %.0188, %74 ], [ %.0188, %77 ], [ %.0188, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ %.0188, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %62, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ %62, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] + %.sroa.0136.4..sroa.0136.4..sroa.0136.4..sroa.0136.4.158 = load i8, ptr %.sroa.0136.4..sroa_idx240, align 4, !tbaa !98 + %78 = trunc nuw i8 %.sroa.0136.4..sroa.0136.4..sroa.0136.4..sroa.0136.4.158 to i1 + %.sroa.0116.4..sroa.0116.4..sroa.0116.4..sroa.0116.4.128 = load i8, ptr %.sroa.0116.4..sroa_idx236, align 4 + %79 = trunc nuw i8 %.sroa.0116.4..sroa.0116.4..sroa.0116.4..sroa.0116.4.128 to i1 %or.cond = select i1 %78, i1 %79, i1 false br i1 %or.cond, label %80, label %88 @@ -1444,48 +1442,46 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS br i1 %81, label %82, label %88 82: ; preds = %80 - %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.143 = load i32, ptr %.sroa.0138, align 8 - %.not.i = icmp ule i32 %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.143, %1 - %.sroa.0118.0..sroa.0118.0..sroa.0118.0..sroa.0118.0. = load i32, ptr %.sroa.0118, align 8 - %83 = icmp ult i32 %1, %.sroa.0118.0..sroa.0118.0..sroa.0118.0..sroa.0118.0. - %or.cond179 = select i1 %.not.i, i1 %83, i1 false - br i1 %or.cond179, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_3clEv.exit", label %84 + %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.141 = load i32, ptr %.sroa.0136, align 8 + %.not.i = icmp ule i32 %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.141, %1 + %.sroa.0116.0..sroa.0116.0..sroa.0116.0..sroa.0116.0. = load i32, ptr %.sroa.0116, align 8 + %83 = icmp ult i32 %1, %.sroa.0116.0..sroa.0116.0..sroa.0116.0..sroa.0116.0. + %or.cond177 = select i1 %.not.i, i1 %83, i1 false + br i1 %or.cond177, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_3clEv.exit", label %84 84: ; preds = %82 br i1 %.sroa.5.1, label %85, label %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i 85: ; preds = %84 - store i32 %.sroa.0111.1, ptr %3, align 4, !tbaa !97 + store i32 %.sroa.0109.1, ptr %3, align 4, !tbaa !97 br label %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i _ZNSt8optionalIiEaSESt9nullopt_t.exit.i: ; preds = %85, %84 - %spec.select = select i1 %.sroa.7.1, i32 %.sroa.0.1, i32 %.sroa.0115.1 - %.sroa.0118.0..sroa.0118.0..sroa.0118.0..sroa.0118.0.119 = load i64, ptr %.sroa.0118, align 8 - store i64 %.sroa.0118.0..sroa.0118.0..sroa.0118.0..sroa.0118.0.119, ptr %.sroa.0138, align 8 - %.sroa.0111.0.insert.ext = zext i32 %.sroa.0111.1 to i64 - store i64 %.sroa.0111.0.insert.ext, ptr %.sroa.0118, align 8 - %86 = lshr i64 %.sroa.0118.0..sroa.0118.0..sroa.0118.0..sroa.0118.0.119, 32 + %spec.select = select i1 %.sroa.7.1, i32 %.sroa.0.1, i32 %.sroa.0113.1 + %.sroa.0116.0..sroa.0116.0..sroa.0116.0..sroa.0116.0.117 = load i64, ptr %.sroa.0116, align 8 + store i64 %.sroa.0116.0..sroa.0116.0..sroa.0116.0..sroa.0116.0.117, ptr %.sroa.0136, align 8 + %.sroa.0109.0.insert.ext = zext i32 %.sroa.0109.1 to i64 + store i64 %.sroa.0109.0.insert.ext, ptr %.sroa.0116, align 8 + %86 = lshr i64 %.sroa.0116.0..sroa.0116.0..sroa.0116.0..sroa.0116.0.117, 32 %87 = trunc i64 %86 to i8 br label %88 "_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_3clEv.exit": ; preds = %82 - store i32 %.sroa.0115.1, ptr %2, align 4, !tbaa !97 + store i32 %.sroa.0113.1, ptr %2, align 4, !tbaa !97 br label %_ZNK4llvm20iterator_facade_baseINS_8codeview24BinaryAnnotationIteratorESt20forward_iterator_tagNS1_17DecodedAnnotationElPS4_RS4_EneERKS2_.exit 88: ; preds = %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i, %80, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" - %.sroa.0118.4..sroa.0118.4..sroa.0118.4.128231 = phi i8 [ 0, %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i ], [ 1, %80 ], [ %.sroa.0118.4..sroa.0118.4..sroa.0118.4..sroa.0118.4.130, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" ] - %.sroa.0138.4..sroa.0138.4..sroa.0138.4.152229 = phi i8 [ %87, %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i ], [ 1, %80 ], [ %.sroa.0138.4..sroa.0138.4..sroa.0138.4..sroa.0138.4.160, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" ] - %.sroa.0115.2 = phi i32 [ %spec.select, %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i ], [ %.sroa.0115.1, %80 ], [ %.sroa.0115.1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" ] + %.sroa.0116.4..sroa.0116.4..sroa.0116.4.126229 = phi i8 [ 0, %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i ], [ 1, %80 ], [ %.sroa.0116.4..sroa.0116.4..sroa.0116.4..sroa.0116.4.128, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" ] + %.sroa.0136.4..sroa.0136.4..sroa.0136.4.150227 = phi i8 [ %87, %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i ], [ 1, %80 ], [ %.sroa.0136.4..sroa.0136.4..sroa.0136.4..sroa.0136.4.158, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" ] + %.sroa.0113.2 = phi i32 [ %spec.select, %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i ], [ %.sroa.0113.1, %80 ], [ %.sroa.0113.1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" ] %.sroa.5.4.ph = phi i1 [ false, %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i ], [ %.sroa.5.1, %80 ], [ %.sroa.5.1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" ] %.sroa.8.5.ph = phi i8 [ 1, %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i ], [ 0, %80 ], [ %.sroa.8.1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" ] %.sroa.7.5.ph = phi i1 [ false, %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i ], [ %.sroa.7.1, %80 ], [ %.sroa.7.1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" ] - call void @llvm.lifetime.start.p0(i64 39, ptr nonnull %.sroa.2.i54) %89 = call noundef zeroext i1 @_ZN4llvm8codeview24BinaryAnnotationIterator22ParseCurrentAnnotationEv(ptr noundef nonnull align 8 dereferenceable(88) %5) br i1 %89, label %91, label %90 90: ; preds = %88 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(39) %.sroa.2.i54, i8 0, i64 39, i1 false) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull align 1 dereferenceable(16) %.sroa.2.7..sroa_idx.i55, i64 16, i1 false), !tbaa.struct !115 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %14, i8 0, i64 16, i1 false) br label %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit 91: ; preds = %88 @@ -1500,15 +1496,14 @@ _ZNSt8optionalIiEaSESt9nullopt_t.exit.i: ; preds = %85, %84 br label %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit _ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit: ; preds = %90, %91, %94 - call void @llvm.lifetime.end.p0(i64 39, ptr nonnull %.sroa.2.i54) - %.sroa.22.0.copyload.i.i = load i64, ptr %.sroa.561.56..sroa_idx, align 8, !tbaa !64 + %.sroa.22.0.copyload.i.i = load i64, ptr %.sroa.559.56..sroa_idx, align 8, !tbaa !64 %.not.i.i.i.i = icmp eq i64 %.sroa.22.0.copyload.i.i, 0 br i1 %.not.i.i.i.i, label %_ZNK4llvm20iterator_facade_baseINS_8codeview24BinaryAnnotationIteratorESt20forward_iterator_tagNS1_17DecodedAnnotationElPS4_RS4_EneERKS2_.exit, label %20 _ZNK4llvm20iterator_facade_baseINS_8codeview24BinaryAnnotationIteratorESt20forward_iterator_tagNS1_17DecodedAnnotationElPS4_RS4_EneERKS2_.exit: ; preds = %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit, %4, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_3clEv.exit" call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %5) #15 - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %.sroa.0118) - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %.sroa.0138) + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %.sroa.0116) + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %.sroa.0136) ret void } diff --git a/bench/llvm/optimized/ObjCARCOpts.ll b/bench/llvm/optimized/ObjCARCOpts.ll index 29f3d627ac7..e198605d62c 100644 --- a/bench/llvm/optimized/ObjCARCOpts.ll +++ b/bench/llvm/optimized/ObjCARCOpts.ll @@ -16115,7 +16115,7 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(112) ptr @_ZN %10 = load i8, ptr %9, align 8, !tbaa !597, !range !54, !noundef !55 %11 = trunc nuw i8 %10 to i1 %12 = getelementptr inbounds nuw i8, ptr %0, i64 24 - br i1 %11, label %13, label %80 + br i1 %11, label %13, label %79 13: ; preds = %2 %14 = getelementptr inbounds nuw i8, ptr %0, i64 32 @@ -16130,133 +16130,132 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(112) ptr @_ZN store i64 %20, ptr %22, align 8, !tbaa !527 call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %5) #21 call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %6) #21 - %23 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %24 = getelementptr inbounds nuw i8, ptr %6, i64 24 - %25 = getelementptr inbounds nuw i8, ptr %6, i64 48 + %23 = getelementptr inbounds nuw i8, ptr %6, i64 24 + %24 = getelementptr inbounds nuw i8, ptr %6, i64 48 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %6, i8 0, i64 112, i1 false) - store ptr %25, ptr %24, align 8, !tbaa !28 - %26 = getelementptr inbounds nuw i8, ptr %6, i64 32 - store i32 2, ptr %26, align 8, !tbaa !29 - %27 = getelementptr inbounds nuw i8, ptr %6, i64 40 - store i32 0, ptr %27, align 8, !tbaa !31 - %28 = getelementptr inbounds nuw i8, ptr %6, i64 44 - store i8 1, ptr %28, align 4, !tbaa !32 - %29 = getelementptr inbounds nuw i8, ptr %6, i64 64 - %30 = getelementptr inbounds nuw i8, ptr %6, i64 88 - store ptr %30, ptr %29, align 8, !tbaa !28 - %31 = getelementptr inbounds nuw i8, ptr %6, i64 72 - store i32 2, ptr %31, align 8, !tbaa !29 - %32 = getelementptr inbounds nuw i8, ptr %6, i64 80 - store i32 0, ptr %32, align 8, !tbaa !31 - %33 = getelementptr inbounds nuw i8, ptr %6, i64 84 - store i8 1, ptr %33, align 4, !tbaa !32 - %34 = getelementptr inbounds nuw i8, ptr %6, i64 104 + store ptr %24, ptr %23, align 8, !tbaa !28 + %25 = getelementptr inbounds nuw i8, ptr %6, i64 32 + store i32 2, ptr %25, align 8, !tbaa !29 + %26 = getelementptr inbounds nuw i8, ptr %6, i64 40 + store i32 0, ptr %26, align 8, !tbaa !31 + %27 = getelementptr inbounds nuw i8, ptr %6, i64 44 + store i8 1, ptr %27, align 4, !tbaa !32 + %28 = getelementptr inbounds nuw i8, ptr %6, i64 64 + %29 = getelementptr inbounds nuw i8, ptr %6, i64 88 + store ptr %29, ptr %28, align 8, !tbaa !28 + %30 = getelementptr inbounds nuw i8, ptr %6, i64 72 + store i32 2, ptr %30, align 8, !tbaa !29 + %31 = getelementptr inbounds nuw i8, ptr %6, i64 80 + store i32 0, ptr %31, align 8, !tbaa !31 + %32 = getelementptr inbounds nuw i8, ptr %6, i64 84 + store i8 1, ptr %32, align 4, !tbaa !32 + %33 = getelementptr inbounds nuw i8, ptr %6, i64 104 call void @llvm.experimental.noalias.scope.decl(metadata !608) - %35 = load ptr, ptr %1, align 8, !tbaa !109, !noalias !608 - store ptr %35, ptr %5, align 8, !tbaa !530, !alias.scope !608 - %36 = getelementptr inbounds nuw i8, ptr %5, i64 8 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %36, i8 0, i64 3, i1 false) - %37 = getelementptr inbounds nuw i8, ptr %5, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(97) %37, ptr noundef nonnull align 8 dereferenceable(97) %23, i64 16, i1 false) - %38 = getelementptr inbounds nuw i8, ptr %5, i64 32 - %39 = getelementptr inbounds nuw i8, ptr %5, i64 56 - call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %38, ptr noundef nonnull %39, i32 noundef 2, ptr noundef nonnull %25, ptr noundef nonnull align 8 dereferenceable(40) %24) #21 - %40 = getelementptr inbounds nuw i8, ptr %5, i64 72 - %41 = getelementptr inbounds nuw i8, ptr %5, i64 96 - call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %40, ptr noundef nonnull %41, i32 noundef 2, ptr noundef nonnull %30, ptr noundef nonnull align 8 dereferenceable(40) %29) #21 - %42 = getelementptr inbounds nuw i8, ptr %5, i64 112 - %43 = load i8, ptr %34, align 8, !tbaa !244, !range !54, !noalias !608, !noundef !55 - store i8 %43, ptr %42, align 8, !tbaa !244, !alias.scope !608 - %44 = load ptr, ptr %14, align 8, !tbaa !520 - %45 = getelementptr inbounds nuw i8, ptr %0, i64 40 - %46 = load ptr, ptr %45, align 8, !tbaa !529 - %.not.i.i = icmp eq ptr %44, %46 - br i1 %.not.i.i, label %59, label %47 - -47: ; preds = %13 - %48 = load ptr, ptr %5, align 8, !tbaa !530 - store ptr %48, ptr %44, align 8, !tbaa !530 - %49 = getelementptr inbounds nuw i8, ptr %44, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %49, ptr noundef nonnull align 8 dereferenceable(112) %36, i64 3, i1 false) - %50 = getelementptr inbounds nuw i8, ptr %44, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(97) %50, ptr noundef nonnull align 8 dereferenceable(97) %37, i64 16, i1 false) - %51 = getelementptr inbounds nuw i8, ptr %44, i64 32 - %52 = getelementptr inbounds nuw i8, ptr %44, i64 56 - call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %51, ptr noundef nonnull %52, i32 noundef 2, ptr noundef nonnull %39, ptr noundef nonnull align 8 dereferenceable(40) %38) #21 - %53 = getelementptr inbounds nuw i8, ptr %44, i64 72 - %54 = getelementptr inbounds nuw i8, ptr %44, i64 96 - call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %53, ptr noundef nonnull %54, i32 noundef 2, ptr noundef nonnull %41, ptr noundef nonnull align 8 dereferenceable(40) %40) #21 - %55 = getelementptr inbounds nuw i8, ptr %44, i64 112 - %56 = load i8, ptr %42, align 8, !tbaa !244, !range !54, !noundef !55 - store i8 %56, ptr %55, align 8, !tbaa !244 - %57 = load ptr, ptr %14, align 8, !tbaa !520 - %58 = getelementptr inbounds nuw i8, ptr %57, i64 120 - store ptr %58, ptr %14, align 8, !tbaa !520 + %34 = load ptr, ptr %1, align 8, !tbaa !109, !noalias !608 + store ptr %34, ptr %5, align 8, !tbaa !530, !alias.scope !608 + %35 = getelementptr inbounds nuw i8, ptr %5, i64 8 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %35, i8 0, i64 3, i1 false) + %36 = getelementptr inbounds nuw i8, ptr %5, i64 16 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %36, i8 0, i64 16, i1 false) + %37 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %38 = getelementptr inbounds nuw i8, ptr %5, i64 56 + call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %37, ptr noundef nonnull %38, i32 noundef 2, ptr noundef nonnull %24, ptr noundef nonnull align 8 dereferenceable(40) %23) #21 + %39 = getelementptr inbounds nuw i8, ptr %5, i64 72 + %40 = getelementptr inbounds nuw i8, ptr %5, i64 96 + call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %39, ptr noundef nonnull %40, i32 noundef 2, ptr noundef nonnull %29, ptr noundef nonnull align 8 dereferenceable(40) %28) #21 + %41 = getelementptr inbounds nuw i8, ptr %5, i64 112 + %42 = load i8, ptr %33, align 8, !tbaa !244, !range !54, !noalias !608, !noundef !55 + store i8 %42, ptr %41, align 8, !tbaa !244, !alias.scope !608 + %43 = load ptr, ptr %14, align 8, !tbaa !520 + %44 = getelementptr inbounds nuw i8, ptr %0, i64 40 + %45 = load ptr, ptr %44, align 8, !tbaa !529 + %.not.i.i = icmp eq ptr %43, %45 + br i1 %.not.i.i, label %58, label %46 + +46: ; preds = %13 + %47 = load ptr, ptr %5, align 8, !tbaa !530 + store ptr %47, ptr %43, align 8, !tbaa !530 + %48 = getelementptr inbounds nuw i8, ptr %43, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %48, ptr noundef nonnull align 8 dereferenceable(112) %35, i64 3, i1 false) + %49 = getelementptr inbounds nuw i8, ptr %43, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(97) %49, ptr noundef nonnull align 8 dereferenceable(97) %36, i64 16, i1 false) + %50 = getelementptr inbounds nuw i8, ptr %43, i64 32 + %51 = getelementptr inbounds nuw i8, ptr %43, i64 56 + call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %50, ptr noundef nonnull %51, i32 noundef 2, ptr noundef nonnull %38, ptr noundef nonnull align 8 dereferenceable(40) %37) #21 + %52 = getelementptr inbounds nuw i8, ptr %43, i64 72 + %53 = getelementptr inbounds nuw i8, ptr %43, i64 96 + call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %52, ptr noundef nonnull %53, i32 noundef 2, ptr noundef nonnull %40, ptr noundef nonnull align 8 dereferenceable(40) %39) #21 + %54 = getelementptr inbounds nuw i8, ptr %43, i64 112 + %55 = load i8, ptr %41, align 8, !tbaa !244, !range !54, !noundef !55 + store i8 %55, ptr %54, align 8, !tbaa !244 + %56 = load ptr, ptr %14, align 8, !tbaa !520 + %57 = getelementptr inbounds nuw i8, ptr %56, i64 120 + store ptr %57, ptr %14, align 8, !tbaa !520 br label %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE9push_backEOS7_.exit -59: ; preds = %13 - call void @_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE17_M_realloc_insertIJS7_EEEvN9__gnu_cxx17__normal_iteratorIPS7_S9_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr %44, ptr noundef nonnull align 8 dereferenceable(120) %5) +58: ; preds = %13 + call void @_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE17_M_realloc_insertIJS7_EEEvN9__gnu_cxx17__normal_iteratorIPS7_S9_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr %43, ptr noundef nonnull align 8 dereferenceable(120) %5) br label %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE9push_backEOS7_.exit -_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE9push_backEOS7_.exit: ; preds = %47, %59 - %60 = getelementptr inbounds nuw i8, ptr %5, i64 92 - %61 = load i8, ptr %60, align 4, !tbaa !32, !range !54, !noundef !55 - %62 = trunc nuw i8 %61 to i1 - br i1 %62, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i, label %63 +_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE9push_backEOS7_.exit: ; preds = %46, %58 + %59 = getelementptr inbounds nuw i8, ptr %5, i64 92 + %60 = load i8, ptr %59, align 4, !tbaa !32, !range !54, !noundef !55 + %61 = trunc nuw i8 %60 to i1 + br i1 %61, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i, label %62 -63: ; preds = %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE9push_backEOS7_.exit - %64 = load ptr, ptr %40, align 8, !tbaa !28 - call void @free(ptr noundef %64) #21 +62: ; preds = %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE9push_backEOS7_.exit + %63 = load ptr, ptr %39, align 8, !tbaa !28 + call void @free(ptr noundef %63) #21 br label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i -_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i: ; preds = %63, %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE9push_backEOS7_.exit - %65 = getelementptr inbounds nuw i8, ptr %5, i64 52 - %66 = load i8, ptr %65, align 4, !tbaa !32, !range !54, !noundef !55 - %67 = trunc nuw i8 %66 to i1 - br i1 %67, label %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc16BottomUpPtrStateEED2Ev.exit, label %68 +_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i: ; preds = %62, %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE9push_backEOS7_.exit + %64 = getelementptr inbounds nuw i8, ptr %5, i64 52 + %65 = load i8, ptr %64, align 4, !tbaa !32, !range !54, !noundef !55 + %66 = trunc nuw i8 %65 to i1 + br i1 %66, label %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc16BottomUpPtrStateEED2Ev.exit, label %67 -68: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i - %69 = load ptr, ptr %38, align 8, !tbaa !28 - call void @free(ptr noundef %69) #21 +67: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i + %68 = load ptr, ptr %37, align 8, !tbaa !28 + call void @free(ptr noundef %68) #21 br label %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc16BottomUpPtrStateEED2Ev.exit -_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc16BottomUpPtrStateEED2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i, %68 - %70 = load i8, ptr %33, align 4, !tbaa !32, !range !54, !noundef !55 - %71 = trunc nuw i8 %70 to i1 - br i1 %71, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, label %72 +_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc16BottomUpPtrStateEED2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i, %67 + %69 = load i8, ptr %32, align 4, !tbaa !32, !range !54, !noundef !55 + %70 = trunc nuw i8 %69 to i1 + br i1 %70, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, label %71 -72: ; preds = %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc16BottomUpPtrStateEED2Ev.exit - %73 = load ptr, ptr %29, align 8, !tbaa !28 - call void @free(ptr noundef %73) #21 +71: ; preds = %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc16BottomUpPtrStateEED2Ev.exit + %72 = load ptr, ptr %28, align 8, !tbaa !28 + call void @free(ptr noundef %72) #21 br label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i -_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i: ; preds = %72, %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc16BottomUpPtrStateEED2Ev.exit - %74 = load i8, ptr %28, align 4, !tbaa !32, !range !54, !noundef !55 - %75 = trunc nuw i8 %74 to i1 - br i1 %75, label %_ZN4llvm7objcarc8PtrStateD2Ev.exit, label %76 +_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i: ; preds = %71, %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc16BottomUpPtrStateEED2Ev.exit + %73 = load i8, ptr %27, align 4, !tbaa !32, !range !54, !noundef !55 + %74 = trunc nuw i8 %73 to i1 + br i1 %74, label %_ZN4llvm7objcarc8PtrStateD2Ev.exit, label %75 -76: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i - %77 = load ptr, ptr %24, align 8, !tbaa !28 - call void @free(ptr noundef %77) #21 +75: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i + %76 = load ptr, ptr %23, align 8, !tbaa !28 + call void @free(ptr noundef %76) #21 br label %_ZN4llvm7objcarc8PtrStateD2Ev.exit -_ZN4llvm7objcarc8PtrStateD2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %76 +_ZN4llvm7objcarc8PtrStateD2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %75 call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %6) #21 call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %5) #21 - %78 = load ptr, ptr %12, align 8, !tbaa !519 - %79 = getelementptr inbounds nuw i8, ptr %78, i64 %19 - br label %86 - -80: ; preds = %2 - %81 = load ptr, ptr %3, align 8 - %82 = getelementptr inbounds nuw i8, ptr %81, i64 8 - %83 = load i64, ptr %82, align 8, !tbaa !527 - %84 = load ptr, ptr %12, align 8, !tbaa !519 - %85 = getelementptr inbounds nuw %"struct.std::pair.330", ptr %84, i64 %83 - br label %86 - -86: ; preds = %80, %_ZN4llvm7objcarc8PtrStateD2Ev.exit - %.pn = phi ptr [ %79, %_ZN4llvm7objcarc8PtrStateD2Ev.exit ], [ %85, %80 ] + %77 = load ptr, ptr %12, align 8, !tbaa !519 + %78 = getelementptr inbounds nuw i8, ptr %77, i64 %19 + br label %85 + +79: ; preds = %2 + %80 = load ptr, ptr %3, align 8 + %81 = getelementptr inbounds nuw i8, ptr %80, i64 8 + %82 = load i64, ptr %81, align 8, !tbaa !527 + %83 = load ptr, ptr %12, align 8, !tbaa !519 + %84 = getelementptr inbounds nuw %"struct.std::pair.330", ptr %83, i64 %82 + br label %85 + +85: ; preds = %79, %_ZN4llvm7objcarc8PtrStateD2Ev.exit + %.pn = phi ptr [ %78, %_ZN4llvm7objcarc8PtrStateD2Ev.exit ], [ %84, %79 ] %.0 = getelementptr inbounds nuw i8, ptr %.pn, i64 8 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #21 ret ptr %.0 @@ -17703,7 +17702,7 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(112) ptr @_ZN %10 = load i8, ptr %9, align 8, !tbaa !597, !range !54, !noundef !55 %11 = trunc nuw i8 %10 to i1 %12 = getelementptr inbounds nuw i8, ptr %0, i64 24 - br i1 %11, label %13, label %80 + br i1 %11, label %13, label %79 13: ; preds = %2 %14 = getelementptr inbounds nuw i8, ptr %0, i64 32 @@ -17718,133 +17717,132 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(112) ptr @_ZN store i64 %20, ptr %22, align 8, !tbaa !527 call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %5) #21 call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %6) #21 - %23 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %24 = getelementptr inbounds nuw i8, ptr %6, i64 24 - %25 = getelementptr inbounds nuw i8, ptr %6, i64 48 + %23 = getelementptr inbounds nuw i8, ptr %6, i64 24 + %24 = getelementptr inbounds nuw i8, ptr %6, i64 48 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %6, i8 0, i64 112, i1 false) - store ptr %25, ptr %24, align 8, !tbaa !28 - %26 = getelementptr inbounds nuw i8, ptr %6, i64 32 - store i32 2, ptr %26, align 8, !tbaa !29 - %27 = getelementptr inbounds nuw i8, ptr %6, i64 40 - store i32 0, ptr %27, align 8, !tbaa !31 - %28 = getelementptr inbounds nuw i8, ptr %6, i64 44 - store i8 1, ptr %28, align 4, !tbaa !32 - %29 = getelementptr inbounds nuw i8, ptr %6, i64 64 - %30 = getelementptr inbounds nuw i8, ptr %6, i64 88 - store ptr %30, ptr %29, align 8, !tbaa !28 - %31 = getelementptr inbounds nuw i8, ptr %6, i64 72 - store i32 2, ptr %31, align 8, !tbaa !29 - %32 = getelementptr inbounds nuw i8, ptr %6, i64 80 - store i32 0, ptr %32, align 8, !tbaa !31 - %33 = getelementptr inbounds nuw i8, ptr %6, i64 84 - store i8 1, ptr %33, align 4, !tbaa !32 - %34 = getelementptr inbounds nuw i8, ptr %6, i64 104 + store ptr %24, ptr %23, align 8, !tbaa !28 + %25 = getelementptr inbounds nuw i8, ptr %6, i64 32 + store i32 2, ptr %25, align 8, !tbaa !29 + %26 = getelementptr inbounds nuw i8, ptr %6, i64 40 + store i32 0, ptr %26, align 8, !tbaa !31 + %27 = getelementptr inbounds nuw i8, ptr %6, i64 44 + store i8 1, ptr %27, align 4, !tbaa !32 + %28 = getelementptr inbounds nuw i8, ptr %6, i64 64 + %29 = getelementptr inbounds nuw i8, ptr %6, i64 88 + store ptr %29, ptr %28, align 8, !tbaa !28 + %30 = getelementptr inbounds nuw i8, ptr %6, i64 72 + store i32 2, ptr %30, align 8, !tbaa !29 + %31 = getelementptr inbounds nuw i8, ptr %6, i64 80 + store i32 0, ptr %31, align 8, !tbaa !31 + %32 = getelementptr inbounds nuw i8, ptr %6, i64 84 + store i8 1, ptr %32, align 4, !tbaa !32 + %33 = getelementptr inbounds nuw i8, ptr %6, i64 104 call void @llvm.experimental.noalias.scope.decl(metadata !625) - %35 = load ptr, ptr %1, align 8, !tbaa !109, !noalias !625 - store ptr %35, ptr %5, align 8, !tbaa !570, !alias.scope !625 - %36 = getelementptr inbounds nuw i8, ptr %5, i64 8 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %36, i8 0, i64 3, i1 false) - %37 = getelementptr inbounds nuw i8, ptr %5, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(97) %37, ptr noundef nonnull align 8 dereferenceable(97) %23, i64 16, i1 false) - %38 = getelementptr inbounds nuw i8, ptr %5, i64 32 - %39 = getelementptr inbounds nuw i8, ptr %5, i64 56 - call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %38, ptr noundef nonnull %39, i32 noundef 2, ptr noundef nonnull %25, ptr noundef nonnull align 8 dereferenceable(40) %24) #21 - %40 = getelementptr inbounds nuw i8, ptr %5, i64 72 - %41 = getelementptr inbounds nuw i8, ptr %5, i64 96 - call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %40, ptr noundef nonnull %41, i32 noundef 2, ptr noundef nonnull %30, ptr noundef nonnull align 8 dereferenceable(40) %29) #21 - %42 = getelementptr inbounds nuw i8, ptr %5, i64 112 - %43 = load i8, ptr %34, align 8, !tbaa !244, !range !54, !noalias !625, !noundef !55 - store i8 %43, ptr %42, align 8, !tbaa !244, !alias.scope !625 - %44 = load ptr, ptr %14, align 8, !tbaa !563 - %45 = getelementptr inbounds nuw i8, ptr %0, i64 40 - %46 = load ptr, ptr %45, align 8, !tbaa !569 - %.not.i.i = icmp eq ptr %44, %46 - br i1 %.not.i.i, label %59, label %47 - -47: ; preds = %13 - %48 = load ptr, ptr %5, align 8, !tbaa !570 - store ptr %48, ptr %44, align 8, !tbaa !570 - %49 = getelementptr inbounds nuw i8, ptr %44, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %49, ptr noundef nonnull align 8 dereferenceable(112) %36, i64 3, i1 false) - %50 = getelementptr inbounds nuw i8, ptr %44, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(97) %50, ptr noundef nonnull align 8 dereferenceable(97) %37, i64 16, i1 false) - %51 = getelementptr inbounds nuw i8, ptr %44, i64 32 - %52 = getelementptr inbounds nuw i8, ptr %44, i64 56 - call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %51, ptr noundef nonnull %52, i32 noundef 2, ptr noundef nonnull %39, ptr noundef nonnull align 8 dereferenceable(40) %38) #21 - %53 = getelementptr inbounds nuw i8, ptr %44, i64 72 - %54 = getelementptr inbounds nuw i8, ptr %44, i64 96 - call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %53, ptr noundef nonnull %54, i32 noundef 2, ptr noundef nonnull %41, ptr noundef nonnull align 8 dereferenceable(40) %40) #21 - %55 = getelementptr inbounds nuw i8, ptr %44, i64 112 - %56 = load i8, ptr %42, align 8, !tbaa !244, !range !54, !noundef !55 - store i8 %56, ptr %55, align 8, !tbaa !244 - %57 = load ptr, ptr %14, align 8, !tbaa !563 - %58 = getelementptr inbounds nuw i8, ptr %57, i64 120 - store ptr %58, ptr %14, align 8, !tbaa !563 + %34 = load ptr, ptr %1, align 8, !tbaa !109, !noalias !625 + store ptr %34, ptr %5, align 8, !tbaa !570, !alias.scope !625 + %35 = getelementptr inbounds nuw i8, ptr %5, i64 8 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %35, i8 0, i64 3, i1 false) + %36 = getelementptr inbounds nuw i8, ptr %5, i64 16 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %36, i8 0, i64 16, i1 false) + %37 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %38 = getelementptr inbounds nuw i8, ptr %5, i64 56 + call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %37, ptr noundef nonnull %38, i32 noundef 2, ptr noundef nonnull %24, ptr noundef nonnull align 8 dereferenceable(40) %23) #21 + %39 = getelementptr inbounds nuw i8, ptr %5, i64 72 + %40 = getelementptr inbounds nuw i8, ptr %5, i64 96 + call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %39, ptr noundef nonnull %40, i32 noundef 2, ptr noundef nonnull %29, ptr noundef nonnull align 8 dereferenceable(40) %28) #21 + %41 = getelementptr inbounds nuw i8, ptr %5, i64 112 + %42 = load i8, ptr %33, align 8, !tbaa !244, !range !54, !noalias !625, !noundef !55 + store i8 %42, ptr %41, align 8, !tbaa !244, !alias.scope !625 + %43 = load ptr, ptr %14, align 8, !tbaa !563 + %44 = getelementptr inbounds nuw i8, ptr %0, i64 40 + %45 = load ptr, ptr %44, align 8, !tbaa !569 + %.not.i.i = icmp eq ptr %43, %45 + br i1 %.not.i.i, label %58, label %46 + +46: ; preds = %13 + %47 = load ptr, ptr %5, align 8, !tbaa !570 + store ptr %47, ptr %43, align 8, !tbaa !570 + %48 = getelementptr inbounds nuw i8, ptr %43, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %48, ptr noundef nonnull align 8 dereferenceable(112) %35, i64 3, i1 false) + %49 = getelementptr inbounds nuw i8, ptr %43, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(97) %49, ptr noundef nonnull align 8 dereferenceable(97) %36, i64 16, i1 false) + %50 = getelementptr inbounds nuw i8, ptr %43, i64 32 + %51 = getelementptr inbounds nuw i8, ptr %43, i64 56 + call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %50, ptr noundef nonnull %51, i32 noundef 2, ptr noundef nonnull %38, ptr noundef nonnull align 8 dereferenceable(40) %37) #21 + %52 = getelementptr inbounds nuw i8, ptr %43, i64 72 + %53 = getelementptr inbounds nuw i8, ptr %43, i64 96 + call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %52, ptr noundef nonnull %53, i32 noundef 2, ptr noundef nonnull %40, ptr noundef nonnull align 8 dereferenceable(40) %39) #21 + %54 = getelementptr inbounds nuw i8, ptr %43, i64 112 + %55 = load i8, ptr %41, align 8, !tbaa !244, !range !54, !noundef !55 + store i8 %55, ptr %54, align 8, !tbaa !244 + %56 = load ptr, ptr %14, align 8, !tbaa !563 + %57 = getelementptr inbounds nuw i8, ptr %56, i64 120 + store ptr %57, ptr %14, align 8, !tbaa !563 br label %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE9push_backEOS7_.exit -59: ; preds = %13 - call void @_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE17_M_realloc_insertIJS7_EEEvN9__gnu_cxx17__normal_iteratorIPS7_S9_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr %44, ptr noundef nonnull align 8 dereferenceable(120) %5) +58: ; preds = %13 + call void @_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE17_M_realloc_insertIJS7_EEEvN9__gnu_cxx17__normal_iteratorIPS7_S9_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr %43, ptr noundef nonnull align 8 dereferenceable(120) %5) br label %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE9push_backEOS7_.exit -_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE9push_backEOS7_.exit: ; preds = %47, %59 - %60 = getelementptr inbounds nuw i8, ptr %5, i64 92 - %61 = load i8, ptr %60, align 4, !tbaa !32, !range !54, !noundef !55 - %62 = trunc nuw i8 %61 to i1 - br i1 %62, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i, label %63 +_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE9push_backEOS7_.exit: ; preds = %46, %58 + %59 = getelementptr inbounds nuw i8, ptr %5, i64 92 + %60 = load i8, ptr %59, align 4, !tbaa !32, !range !54, !noundef !55 + %61 = trunc nuw i8 %60 to i1 + br i1 %61, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i, label %62 -63: ; preds = %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE9push_backEOS7_.exit - %64 = load ptr, ptr %40, align 8, !tbaa !28 - call void @free(ptr noundef %64) #21 +62: ; preds = %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE9push_backEOS7_.exit + %63 = load ptr, ptr %39, align 8, !tbaa !28 + call void @free(ptr noundef %63) #21 br label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i -_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i: ; preds = %63, %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE9push_backEOS7_.exit - %65 = getelementptr inbounds nuw i8, ptr %5, i64 52 - %66 = load i8, ptr %65, align 4, !tbaa !32, !range !54, !noundef !55 - %67 = trunc nuw i8 %66 to i1 - br i1 %67, label %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc15TopDownPtrStateEED2Ev.exit, label %68 +_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i: ; preds = %62, %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE9push_backEOS7_.exit + %64 = getelementptr inbounds nuw i8, ptr %5, i64 52 + %65 = load i8, ptr %64, align 4, !tbaa !32, !range !54, !noundef !55 + %66 = trunc nuw i8 %65 to i1 + br i1 %66, label %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc15TopDownPtrStateEED2Ev.exit, label %67 -68: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i - %69 = load ptr, ptr %38, align 8, !tbaa !28 - call void @free(ptr noundef %69) #21 +67: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i + %68 = load ptr, ptr %37, align 8, !tbaa !28 + call void @free(ptr noundef %68) #21 br label %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc15TopDownPtrStateEED2Ev.exit -_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc15TopDownPtrStateEED2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i, %68 - %70 = load i8, ptr %33, align 4, !tbaa !32, !range !54, !noundef !55 - %71 = trunc nuw i8 %70 to i1 - br i1 %71, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, label %72 +_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc15TopDownPtrStateEED2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i, %67 + %69 = load i8, ptr %32, align 4, !tbaa !32, !range !54, !noundef !55 + %70 = trunc nuw i8 %69 to i1 + br i1 %70, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, label %71 -72: ; preds = %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc15TopDownPtrStateEED2Ev.exit - %73 = load ptr, ptr %29, align 8, !tbaa !28 - call void @free(ptr noundef %73) #21 +71: ; preds = %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc15TopDownPtrStateEED2Ev.exit + %72 = load ptr, ptr %28, align 8, !tbaa !28 + call void @free(ptr noundef %72) #21 br label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i -_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i: ; preds = %72, %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc15TopDownPtrStateEED2Ev.exit - %74 = load i8, ptr %28, align 4, !tbaa !32, !range !54, !noundef !55 - %75 = trunc nuw i8 %74 to i1 - br i1 %75, label %_ZN4llvm7objcarc8PtrStateD2Ev.exit, label %76 +_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i: ; preds = %71, %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc15TopDownPtrStateEED2Ev.exit + %73 = load i8, ptr %27, align 4, !tbaa !32, !range !54, !noundef !55 + %74 = trunc nuw i8 %73 to i1 + br i1 %74, label %_ZN4llvm7objcarc8PtrStateD2Ev.exit, label %75 -76: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i - %77 = load ptr, ptr %24, align 8, !tbaa !28 - call void @free(ptr noundef %77) #21 +75: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i + %76 = load ptr, ptr %23, align 8, !tbaa !28 + call void @free(ptr noundef %76) #21 br label %_ZN4llvm7objcarc8PtrStateD2Ev.exit -_ZN4llvm7objcarc8PtrStateD2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %76 +_ZN4llvm7objcarc8PtrStateD2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %75 call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %6) #21 call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %5) #21 - %78 = load ptr, ptr %12, align 8, !tbaa !562 - %79 = getelementptr inbounds nuw i8, ptr %78, i64 %19 - br label %86 - -80: ; preds = %2 - %81 = load ptr, ptr %3, align 8 - %82 = getelementptr inbounds nuw i8, ptr %81, i64 8 - %83 = load i64, ptr %82, align 8, !tbaa !527 - %84 = load ptr, ptr %12, align 8, !tbaa !562 - %85 = getelementptr inbounds nuw %"struct.std::pair.332", ptr %84, i64 %83 - br label %86 - -86: ; preds = %80, %_ZN4llvm7objcarc8PtrStateD2Ev.exit - %.pn = phi ptr [ %79, %_ZN4llvm7objcarc8PtrStateD2Ev.exit ], [ %85, %80 ] + %77 = load ptr, ptr %12, align 8, !tbaa !562 + %78 = getelementptr inbounds nuw i8, ptr %77, i64 %19 + br label %85 + +79: ; preds = %2 + %80 = load ptr, ptr %3, align 8 + %81 = getelementptr inbounds nuw i8, ptr %80, i64 8 + %82 = load i64, ptr %81, align 8, !tbaa !527 + %83 = load ptr, ptr %12, align 8, !tbaa !562 + %84 = getelementptr inbounds nuw %"struct.std::pair.332", ptr %83, i64 %82 + br label %85 + +85: ; preds = %79, %_ZN4llvm7objcarc8PtrStateD2Ev.exit + %.pn = phi ptr [ %78, %_ZN4llvm7objcarc8PtrStateD2Ev.exit ], [ %84, %79 ] %.0 = getelementptr inbounds nuw i8, ptr %.pn, i64 8 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #21 ret ptr %.0 diff --git a/bench/llvm/optimized/SemaLookup.ll b/bench/llvm/optimized/SemaLookup.ll index f5391575b92..f9c9a1e56a4 100644 --- a/bench/llvm/optimized/SemaLookup.ll +++ b/bench/llvm/optimized/SemaLookup.ll @@ -43036,7 +43036,7 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(72) ptr @_ZN4 ._crit_edge: ; preds = %2 %.pre8 = load i32, ptr %10, align 4, !tbaa !1096 - br label %71 + br label %70 _ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISA_SB_EEEbE4typeELb1EEEOSA_OSB_.exit: ; preds = %2 %14 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -43049,143 +43049,141 @@ _ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_i %17 = getelementptr inbounds nuw i8, ptr %5, i64 8 %18 = getelementptr inbounds nuw i8, ptr %5, i64 16 %19 = getelementptr inbounds nuw i8, ptr %5, i64 48 - %20 = getelementptr inbounds nuw i8, ptr %5, i64 16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %20, i8 0, i64 64, i1 false) store ptr null, ptr %6, align 8, !tbaa !2327 store ptr null, ptr %17, align 8, !tbaa !2327 - %21 = getelementptr inbounds nuw i8, ptr %6, i64 24 + %20 = getelementptr inbounds nuw i8, ptr %6, i64 24 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %18, i8 0, i64 16, i1 false) - %22 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %21 = getelementptr inbounds nuw i8, ptr %5, i64 32 + store ptr null, ptr %21, align 8, !tbaa !1494 + %22 = getelementptr inbounds nuw i8, ptr %5, i64 40 store ptr null, ptr %22, align 8, !tbaa !1494 - %23 = getelementptr inbounds nuw i8, ptr %5, i64 40 - store ptr null, ptr %23, align 8, !tbaa !1494 - %24 = getelementptr inbounds nuw i8, ptr %6, i64 56 + %23 = getelementptr inbounds nuw i8, ptr %6, i64 56 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %19, i8 0, i64 16, i1 false) - %25 = getelementptr inbounds nuw i8, ptr %5, i64 64 + %24 = getelementptr inbounds nuw i8, ptr %5, i64 64 + store ptr null, ptr %24, align 8, !tbaa !1494 + %25 = getelementptr inbounds nuw i8, ptr %5, i64 72 store ptr null, ptr %25, align 8, !tbaa !1494 - %26 = getelementptr inbounds nuw i8, ptr %5, i64 72 - store ptr null, ptr %26, align 8, !tbaa !1494 %.pre3.i.pre = load ptr, ptr %14, align 8, !tbaa !1038 %.phi.trans.insert5 = getelementptr inbounds nuw i8, ptr %0, i64 36 %.pre6 = load i32, ptr %.phi.trans.insert5, align 4, !tbaa !1063 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %0, i64 32 %.pre = load i32, ptr %.phi.trans.insert, align 8, !tbaa !1050 - %27 = getelementptr inbounds nuw i8, ptr %0, i64 32 - %28 = zext i32 %.pre to i64 - %29 = add nuw nsw i64 %28, 1 + %26 = getelementptr inbounds nuw i8, ptr %0, i64 32 + %27 = zext i32 %.pre to i64 + %28 = add nuw nsw i64 %27, 1 %.not.i.i.not.i = icmp ult i32 %.pre, %.pre6 - br i1 %.not.i.i.not.i, label %_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit, label %30, !prof !1107 + br i1 %.not.i.i.not.i, label %_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit, label %29, !prof !1107 -30: ; preds = %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISA_SB_EEEbE4typeELb1EEEOSA_OSB_.exit - %31 = getelementptr inbounds nuw %"struct.std::pair.1905", ptr %.pre3.i.pre, i64 %28 - %32 = icmp uge ptr %5, %.pre3.i.pre - %33 = icmp ult ptr %5, %31 - %spec.select.i.i.i.i.i = and i1 %32, %33 - br i1 %spec.select.i.i.i.i.i, label %35, label %34, !prof !1379 +29: ; preds = %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISA_SB_EEEbE4typeELb1EEEOSA_OSB_.exit + %30 = getelementptr inbounds nuw %"struct.std::pair.1905", ptr %.pre3.i.pre, i64 %27 + %31 = icmp uge ptr %5, %.pre3.i.pre + %32 = icmp ult ptr %5, %30 + %spec.select.i.i.i.i.i = and i1 %31, %32 + br i1 %spec.select.i.i.i.i.i, label %34, label %33, !prof !1379 -34: ; preds = %30 - call void @_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE4growEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %29) +33: ; preds = %29 + call void @_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE4growEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %28) %.pre.i = load ptr, ptr %14, align 8, !tbaa !1038 br label %_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit -35: ; preds = %30 - %36 = ptrtoint ptr %5 to i64 - %37 = ptrtoint ptr %.pre3.i.pre to i64 - %38 = sub i64 %36, %37 - call void @_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE4growEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %29) - %39 = load ptr, ptr %14, align 8, !tbaa !1038 - %40 = getelementptr inbounds i8, ptr %39, i64 %38 +34: ; preds = %29 + %35 = ptrtoint ptr %5 to i64 + %36 = ptrtoint ptr %.pre3.i.pre to i64 + %37 = sub i64 %35, %36 + call void @_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE4growEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %28) + %38 = load ptr, ptr %14, align 8, !tbaa !1038 + %39 = getelementptr inbounds i8, ptr %38, i64 %37 br label %_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit -_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit: ; preds = %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISA_SB_EEEbE4typeELb1EEEOSA_OSB_.exit, %34, %35 - %41 = phi ptr [ %.pre3.i.pre, %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISA_SB_EEEbE4typeELb1EEEOSA_OSB_.exit ], [ %39, %35 ], [ %.pre.i, %34 ] - %.016.i.i.i = phi ptr [ %5, %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISA_SB_EEEbE4typeELb1EEEOSA_OSB_.exit ], [ %40, %35 ], [ %5, %34 ] - %42 = load i32, ptr %27, align 8, !tbaa !1050 - %43 = zext i32 %42 to i64 - %44 = getelementptr inbounds nuw %"struct.std::pair.1905", ptr %41, i64 %43 - call void @_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2EOS5_(ptr noundef nonnull align 8 dereferenceable(80) %44, ptr noundef nonnull align 8 dereferenceable(80) %.016.i.i.i) #27 - %45 = load i32, ptr %27, align 8, !tbaa !1050 - %46 = add i32 %45, 1 - store i32 %46, ptr %27, align 8, !tbaa !1050 - %47 = load ptr, ptr %25, align 8, !tbaa !2397 - %.not.i.i.i = icmp eq ptr %47, null - br i1 %.not.i.i.i, label %_ZNSt14_Function_baseD2Ev.exit.i.i, label %48 - -48: ; preds = %_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit - %49 = call noundef zeroext i1 %47(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %19, i32 noundef 3) #27 +_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit: ; preds = %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISA_SB_EEEbE4typeELb1EEEOSA_OSB_.exit, %33, %34 + %40 = phi ptr [ %.pre3.i.pre, %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISA_SB_EEEbE4typeELb1EEEOSA_OSB_.exit ], [ %38, %34 ], [ %.pre.i, %33 ] + %.016.i.i.i = phi ptr [ %5, %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISA_SB_EEEbE4typeELb1EEEOSA_OSB_.exit ], [ %39, %34 ], [ %5, %33 ] + %41 = load i32, ptr %26, align 8, !tbaa !1050 + %42 = zext i32 %41 to i64 + %43 = getelementptr inbounds nuw %"struct.std::pair.1905", ptr %40, i64 %42 + call void @_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2EOS5_(ptr noundef nonnull align 8 dereferenceable(80) %43, ptr noundef nonnull align 8 dereferenceable(80) %.016.i.i.i) #27 + %44 = load i32, ptr %26, align 8, !tbaa !1050 + %45 = add i32 %44, 1 + store i32 %45, ptr %26, align 8, !tbaa !1050 + %46 = load ptr, ptr %24, align 8, !tbaa !2397 + %.not.i.i.i = icmp eq ptr %46, null + br i1 %.not.i.i.i, label %_ZNSt14_Function_baseD2Ev.exit.i.i, label %47 + +47: ; preds = %_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit + %48 = call noundef zeroext i1 %46(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %19, i32 noundef 3) #27 br label %_ZNSt14_Function_baseD2Ev.exit.i.i -_ZNSt14_Function_baseD2Ev.exit.i.i: ; preds = %48, %_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit - %50 = load ptr, ptr %22, align 8, !tbaa !2397 - %.not.i1.i.i = icmp eq ptr %50, null - br i1 %.not.i1.i.i, label %_ZNSt14_Function_baseD2Ev.exit2.i.i, label %51 +_ZNSt14_Function_baseD2Ev.exit.i.i: ; preds = %47, %_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit + %49 = load ptr, ptr %21, align 8, !tbaa !2397 + %.not.i1.i.i = icmp eq ptr %49, null + br i1 %.not.i1.i.i, label %_ZNSt14_Function_baseD2Ev.exit2.i.i, label %50 -51: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i.i - %52 = call noundef zeroext i1 %50(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %18, i32 noundef 3) #27 +50: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i.i + %51 = call noundef zeroext i1 %49(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %18, i32 noundef 3) #27 br label %_ZNSt14_Function_baseD2Ev.exit2.i.i -_ZNSt14_Function_baseD2Ev.exit2.i.i: ; preds = %51, %_ZNSt14_Function_baseD2Ev.exit.i.i - %53 = load ptr, ptr %17, align 8, !tbaa !2327 - %.not.i3.i.i = icmp eq ptr %53, null +_ZNSt14_Function_baseD2Ev.exit2.i.i: ; preds = %50, %_ZNSt14_Function_baseD2Ev.exit.i.i + %52 = load ptr, ptr %17, align 8, !tbaa !2327 + %.not.i3.i.i = icmp eq ptr %52, null br i1 %.not.i3.i.i, label %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEED2Ev.exit, label %_ZNKSt14default_deleteIN5clang22TypoCorrectionConsumerEEclEPS1_.exit.i.i.i _ZNKSt14default_deleteIN5clang22TypoCorrectionConsumerEEclEPS1_.exit.i.i.i: ; preds = %_ZNSt14_Function_baseD2Ev.exit2.i.i - %54 = load ptr, ptr %53, align 8, !tbaa !1071 - %55 = getelementptr inbounds nuw i8, ptr %54, i64 8 - %56 = load ptr, ptr %55, align 8 - call void %56(ptr noundef nonnull align 8 dereferenceable(1082) %53) #27 + %53 = load ptr, ptr %52, align 8, !tbaa !1071 + %54 = getelementptr inbounds nuw i8, ptr %53, i64 8 + %55 = load ptr, ptr %54, align 8 + call void %55(ptr noundef nonnull align 8 dereferenceable(1082) %52) #27 br label %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEED2Ev.exit _ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEED2Ev.exit: ; preds = %_ZNSt14_Function_baseD2Ev.exit2.i.i, %_ZNKSt14default_deleteIN5clang22TypoCorrectionConsumerEEclEPS1_.exit.i.i.i store ptr null, ptr %17, align 8, !tbaa !2327 - %57 = load ptr, ptr %24, align 8, !tbaa !2397 - %.not.i.i = icmp eq ptr %57, null - br i1 %.not.i.i, label %_ZNSt14_Function_baseD2Ev.exit.i, label %58 + %56 = load ptr, ptr %23, align 8, !tbaa !2397 + %.not.i.i = icmp eq ptr %56, null + br i1 %.not.i.i, label %_ZNSt14_Function_baseD2Ev.exit.i, label %57 -58: ; preds = %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEED2Ev.exit - %59 = getelementptr inbounds nuw i8, ptr %6, i64 40 - %60 = call noundef zeroext i1 %57(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %59, i32 noundef 3) #27 +57: ; preds = %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEED2Ev.exit + %58 = getelementptr inbounds nuw i8, ptr %6, i64 40 + %59 = call noundef zeroext i1 %56(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %58, i32 noundef 3) #27 br label %_ZNSt14_Function_baseD2Ev.exit.i -_ZNSt14_Function_baseD2Ev.exit.i: ; preds = %58, %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEED2Ev.exit - %61 = load ptr, ptr %21, align 8, !tbaa !2397 - %.not.i1.i = icmp eq ptr %61, null - br i1 %.not.i1.i, label %_ZNSt14_Function_baseD2Ev.exit2.i, label %62 +_ZNSt14_Function_baseD2Ev.exit.i: ; preds = %57, %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEED2Ev.exit + %60 = load ptr, ptr %20, align 8, !tbaa !2397 + %.not.i1.i = icmp eq ptr %60, null + br i1 %.not.i1.i, label %_ZNSt14_Function_baseD2Ev.exit2.i, label %61 -62: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i - %63 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %64 = call noundef zeroext i1 %61(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(32) %63, i32 noundef 3) #27 +61: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i + %62 = getelementptr inbounds nuw i8, ptr %6, i64 8 + %63 = call noundef zeroext i1 %60(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %62, i32 noundef 3) #27 br label %_ZNSt14_Function_baseD2Ev.exit2.i -_ZNSt14_Function_baseD2Ev.exit2.i: ; preds = %62, %_ZNSt14_Function_baseD2Ev.exit.i - %65 = load ptr, ptr %6, align 8, !tbaa !2327 - %.not.i3.i = icmp eq ptr %65, null +_ZNSt14_Function_baseD2Ev.exit2.i: ; preds = %61, %_ZNSt14_Function_baseD2Ev.exit.i + %64 = load ptr, ptr %6, align 8, !tbaa !2327 + %.not.i3.i = icmp eq ptr %64, null br i1 %.not.i3.i, label %_ZN5clang4Sema13TypoExprStateD2Ev.exit, label %_ZNKSt14default_deleteIN5clang22TypoCorrectionConsumerEEclEPS1_.exit.i.i _ZNKSt14default_deleteIN5clang22TypoCorrectionConsumerEEclEPS1_.exit.i.i: ; preds = %_ZNSt14_Function_baseD2Ev.exit2.i - %66 = load ptr, ptr %65, align 8, !tbaa !1071 - %67 = getelementptr inbounds nuw i8, ptr %66, i64 8 - %68 = load ptr, ptr %67, align 8 - call void %68(ptr noundef nonnull align 8 dereferenceable(1082) %65) #27 + %65 = load ptr, ptr %64, align 8, !tbaa !1071 + %66 = getelementptr inbounds nuw i8, ptr %65, i64 8 + %67 = load ptr, ptr %66, align 8 + call void %67(ptr noundef nonnull align 8 dereferenceable(1082) %64) #27 br label %_ZN5clang4Sema13TypoExprStateD2Ev.exit _ZN5clang4Sema13TypoExprStateD2Ev.exit: ; preds = %_ZNSt14_Function_baseD2Ev.exit2.i, %_ZNKSt14default_deleteIN5clang22TypoCorrectionConsumerEEclEPS1_.exit.i.i call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %6) #27 call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %5) #27 - %69 = load i32, ptr %27, align 8, !tbaa !1050 - %70 = add i32 %69, -1 - store i32 %70, ptr %10, align 4, !tbaa !1096 - br label %71 + %68 = load i32, ptr %26, align 8, !tbaa !1050 + %69 = add i32 %68, -1 + store i32 %69, ptr %10, align 4, !tbaa !1096 + br label %70 -71: ; preds = %._crit_edge, %_ZN5clang4Sema13TypoExprStateD2Ev.exit - %72 = phi i32 [ %.pre8, %._crit_edge ], [ %70, %_ZN5clang4Sema13TypoExprStateD2Ev.exit ] - %73 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %74 = zext i32 %72 to i64 - %75 = load ptr, ptr %73, align 8, !tbaa !1038 - %76 = getelementptr inbounds nuw %"struct.std::pair.1905", ptr %75, i64 %74, i32 1 +70: ; preds = %._crit_edge, %_ZN5clang4Sema13TypoExprStateD2Ev.exit + %71 = phi i32 [ %.pre8, %._crit_edge ], [ %69, %_ZN5clang4Sema13TypoExprStateD2Ev.exit ] + %72 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %73 = zext i32 %71 to i64 + %74 = load ptr, ptr %72, align 8, !tbaa !1038 + %75 = getelementptr inbounds nuw %"struct.std::pair.1905", ptr %74, i64 %73, i32 1 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #27 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #27 - ret ptr %76 + ret ptr %75 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable diff --git a/bench/llvm/optimized/SymbolDumper.ll b/bench/llvm/optimized/SymbolDumper.ll index a31e8bc0389..a1c68af7660 100644 --- a/bench/llvm/optimized/SymbolDumper.ll +++ b/bench/llvm/optimized/SymbolDumper.ll @@ -9301,7 +9301,6 @@ _ZN4llvm9ListScopeD2Ev.exit: ; preds = %.lr.ph, %4 ; Function Attrs: mustprogress nounwind uwtable define internal void @_ZN12_GLOBAL__N_118CVSymbolDumperImpl16visitKnownRecordERN4llvm8codeview8CVRecordINS2_10SymbolKindEEERNS2_13InlineSiteSymE(ptr dead_on_unwind noalias writable writeonly sret(%"class.llvm::Error") align 8 captures(none) %0, ptr noundef nonnull readonly align 8 captures(none) dereferenceable(36) %1, ptr nonnull readnone align 8 captures(none) %2, ptr noundef nonnull readonly align 8 captures(none) dereferenceable(44) %3) unnamed_addr #0 align 2 { - %.sroa.2.i45 = alloca [39 x i8], align 1 %5 = alloca %"struct.llvm::codeview::BinaryAnnotationIterator", align 8 %6 = alloca %"struct.llvm::HexNumber", align 8 %7 = alloca %"struct.llvm::HexNumber", align 8 @@ -9346,12 +9345,12 @@ define internal void @_ZN12_GLOBAL__N_118CVSymbolDumperImpl16visitKnownRecordERN store i8 0, ptr %37, align 8, !tbaa !333, !alias.scope !335 %38 = getelementptr inbounds nuw i8, ptr %5, i64 56 store ptr %31, ptr %38, align 8, !tbaa !86 - %.sroa.560.56..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 64 - store i64 %36, ptr %.sroa.560.56..sroa_idx, align 8, !tbaa !87 + %.sroa.558.56..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 64 + store i64 %36, ptr %.sroa.558.56..sroa_idx, align 8, !tbaa !87 %39 = getelementptr inbounds nuw i8, ptr %5, i64 72 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %39, i8 0, i64 16, i1 false), !alias.scope !335 - %.not.i.i.i.i75 = icmp eq ptr %33, %31 - br i1 %.not.i.i.i.i75, label %_ZN4llvm9ListScopeD2Ev.exit, label %.lr.ph + %.not.i.i.i.i73 = icmp eq ptr %33, %31 + br i1 %.not.i.i.i.i73, label %_ZN4llvm9ListScopeD2Ev.exit, label %.lr.ph .lr.ph: ; preds = %4 %40 = getelementptr inbounds nuw i8, ptr %5, i64 32 @@ -9360,7 +9359,6 @@ define internal void @_ZN12_GLOBAL__N_118CVSymbolDumperImpl16visitKnownRecordERN %43 = getelementptr inbounds nuw i8, ptr %5, i64 44 %44 = getelementptr inbounds nuw i8, ptr %1, i64 16 %.sroa.22.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 8 - %.sroa.2.7..sroa_idx.i46 = getelementptr inbounds nuw i8, ptr %.sroa.2.i45, i64 7 br label %48 _ZN4llvm9ListScopeD2Ev.exit: ; preds = %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit, %4 @@ -9638,13 +9636,11 @@ _ZN4llvm11raw_ostreamlsEPKc.exit44: ; preds = %193, %195 br label %198 198: ; preds = %79, %91, %_ZN4llvm11raw_ostreamlsEPKc.exit44, %_ZN4llvm11raw_ostreamlsEPKc.exit35, %69, %63, %56, %51, %48 - call void @llvm.lifetime.start.p0(i64 39, ptr nonnull %.sroa.2.i45) %199 = call noundef zeroext i1 @_ZN4llvm8codeview24BinaryAnnotationIterator22ParseCurrentAnnotationEv(ptr noundef nonnull align 8 dereferenceable(88) %5) br i1 %199, label %201, label %200 200: ; preds = %198 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(39) %.sroa.2.i45, i8 0, i64 39, i1 false) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef nonnull align 1 dereferenceable(16) %.sroa.2.7..sroa_idx.i46, i64 16, i1 false), !tbaa.struct !344 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %38, i8 0, i64 16, i1 false) br label %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit 201: ; preds = %198 @@ -9659,8 +9655,7 @@ _ZN4llvm11raw_ostreamlsEPKc.exit44: ; preds = %193, %195 br label %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit _ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit: ; preds = %200, %201, %204 - call void @llvm.lifetime.end.p0(i64 39, ptr nonnull %.sroa.2.i45) - %.sroa.22.0.copyload.i.i = load i64, ptr %.sroa.560.56..sroa_idx, align 8, !tbaa !87 + %.sroa.22.0.copyload.i.i = load i64, ptr %.sroa.558.56..sroa_idx, align 8, !tbaa !87 %.not.i.i.i.i = icmp eq i64 %.sroa.22.0.copyload.i.i, 0 br i1 %.not.i.i.i.i, label %_ZN4llvm9ListScopeD2Ev.exit, label %48 } diff --git a/bench/mitsuba3/optimized/rectangle.ll b/bench/mitsuba3/optimized/rectangle.ll index cd320a45612..2019c17b183 100644 --- a/bench/mitsuba3/optimized/rectangle.ll +++ b/bench/mitsuba3/optimized/rectangle.ll @@ -1189,7 +1189,7 @@ _ZNK7mitsuba9RectangleIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE25ray_intersec store ptr null, ptr %77, align 8 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(212) %75, i8 0, i64 212, i1 false) store float 0x7FF0000000000000, ptr %0, align 16 - br label %174 + br label %175 .critedge.i: ; preds = %_ZNK7mitsuba9RectangleIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE25ray_intersect_preliminaryERKNS_3RayINS_5PointIfLm3EEES5_EEjb.exit %79 = getelementptr inbounds nuw i8, ptr %0, i64 72 @@ -1203,8 +1203,8 @@ _ZNK7mitsuba9RectangleIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE25ray_intersec %86 = getelementptr inbounds nuw i8, ptr %0, i64 128 %87 = getelementptr inbounds nuw i8, ptr %0, i64 144 %88 = getelementptr inbounds nuw i8, ptr %0, i64 160 - %89 = getelementptr inbounds nuw i8, ptr %0, i64 176 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(212) %75, i8 0, i64 212, i1 false), !alias.scope !81 + %89 = getelementptr inbounds nuw i8, ptr %0, i64 80 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(144) %89, i8 0, i64 144, i1 false), !alias.scope !81 store float %72, ptr %0, align 16, !alias.scope !81 %90 = insertelement <4 x float> poison, float %72, i64 0 %91 = shufflevector <4 x float> %90, <4 x float> poison, <4 x i32> zeroinitializer @@ -1225,110 +1225,113 @@ _ZNK7mitsuba9RectangleIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE25ray_intersec store float %99, ptr %79, align 8, !alias.scope !81 %.sroa_idx366.i = getelementptr inbounds nuw i8, ptr %0, i64 76 store float %100, ptr %.sroa_idx366.i, align 4, !alias.scope !81 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %88, ptr noundef nonnull align 16 dereferenceable(16) %89, i64 16, i1 false), !alias.scope !81 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %88, i8 0, i64 16, i1 false) store ptr %1, ptr %83, align 16, !alias.scope !81 store ptr null, ptr %84, align 8, !alias.scope !81 + %101 = getelementptr inbounds nuw i8, ptr %0, i64 224 + store i32 0, ptr %101, align 16 store float 0.000000e+00, ptr %85, align 4 - %101 = and i32 %3, 8 - %.not.i = icmp eq i32 %101, 0 - br i1 %.not.i, label %.critedge._crit_edge.i, label %102 + store <4 x float> zeroinitializer, ptr %75, align 16 + %102 = and i32 %3, 8 + %.not.i = icmp eq i32 %102, 0 + br i1 %.not.i, label %.critedge._crit_edge.i, label %103 .critedge._crit_edge.i: ; preds = %.critedge.i %.pre79.i = load <4 x float>, ptr %.sroa.3321.0..sroa_idx.i, align 16 br label %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE28finalize_surface_interactionERKNS_23PreliminaryIntersectionIfNS_5ShapeIfS5_EEEERKNS_3RayINS_5PointIfLm3EEES5_EEjb.exit -102: ; preds = %.critedge.i - %103 = load <4 x float>, ptr %86, align 16 - %104 = load <4 x float>, ptr %.sroa.3321.0..sroa_idx.i, align 16 - %105 = tail call contract <4 x float> @llvm.x86.sse41.dpps(<4 x float> %104, <4 x float> %103, i8 113) - %106 = extractelement <4 x float> %105, i64 0 - %107 = fneg contract float %106 - %108 = insertelement <4 x float> poison, float %107, i64 0 - %109 = shufflevector <4 x float> %108, <4 x float> poison, <4 x i32> zeroinitializer - %110 = tail call contract noundef <4 x float> @llvm.fma.v4f32(<4 x float> %104, <4 x float> %109, <4 x float> %103) - %111 = fmul contract <4 x float> %110, %110 - %shift = shufflevector <4 x float> %111, <4 x float> poison, <4 x i32> - %112 = fadd contract <4 x float> %111, %shift - %shift256 = shufflevector <4 x float> %111, <4 x float> poison, <4 x i32> - %113 = fadd contract <4 x float> %shift256, %112 - %114 = extractelement <4 x float> %113, i64 0 - %115 = tail call contract noundef float @llvm.sqrt.f32(float %114) - %116 = fdiv contract float 1.000000e+00, %115 - %117 = insertelement <4 x float> poison, float %116, i64 0 - %118 = shufflevector <4 x float> %117, <4 x float> poison, <4 x i32> zeroinitializer - %119 = fmul contract <4 x float> %110, %118 - %120 = fcmp contract oeq <4 x float> %103, zeroinitializer - %121 = shufflevector <4 x i1> %120, <4 x i1> zeroinitializer, <8 x i32> - %122 = bitcast <8 x i1> %121 to i8 - %123 = and i8 %122, 7 - %124 = icmp eq i8 %123, 7 - br i1 %124, label %125, label %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i - -125: ; preds = %102 - %126 = extractelement <4 x float> %104, i64 0 - %bc.i.i203 = bitcast <4 x float> %104 to <4 x i32> - %127 = extractelement <4 x i32> %bc.i.i203, i64 2 - %128 = and i32 %127, -2147483648 - %129 = or disjoint i32 %128, 1065353216 - %130 = bitcast i32 %129 to float - %.cast.i.i.i = bitcast i32 %127 to float - %131 = fadd contract float %.cast.i.i.i, %130 - %132 = fdiv contract float -1.000000e+00, %131 - %shift257 = shufflevector <4 x float> %104, <4 x float> poison, <4 x i32> - %133 = fmul contract <4 x float> %104, %shift257 - %134 = extractelement <4 x float> %133, i64 0 - %135 = fmul contract float %134, %132 - %136 = fmul contract <4 x float> %104, %104 - %137 = extractelement <4 x float> %136, i64 0 - %138 = fmul contract float %137, %132 - %139 = bitcast float %138 to i32 - %140 = xor i32 %128, %139 - %141 = bitcast i32 %140 to float - %142 = bitcast float %135 to i32 - %143 = xor i32 %128, %142 - %144 = bitcast i32 %143 to float - %145 = fcmp contract ult float %.cast.i.i.i, 0.000000e+00 - %146 = fneg contract float %126 - %147 = select contract i1 %145, float %126, float %146 - %148 = fadd contract float %141, 1.000000e+00 - %149 = insertelement <4 x float> poison, float %148, i64 0 - %150 = insertelement <4 x float> %149, float %144, i64 1 - %151 = insertelement <4 x float> %150, float %147, i64 2 - %152 = shufflevector <4 x float> %151, <4 x float> %119, <4 x i32> +103: ; preds = %.critedge.i + %104 = load <4 x float>, ptr %86, align 16 + %105 = load <4 x float>, ptr %.sroa.3321.0..sroa_idx.i, align 16 + %106 = tail call contract <4 x float> @llvm.x86.sse41.dpps(<4 x float> %105, <4 x float> %104, i8 113) + %107 = extractelement <4 x float> %106, i64 0 + %108 = fneg contract float %107 + %109 = insertelement <4 x float> poison, float %108, i64 0 + %110 = shufflevector <4 x float> %109, <4 x float> poison, <4 x i32> zeroinitializer + %111 = tail call contract noundef <4 x float> @llvm.fma.v4f32(<4 x float> %105, <4 x float> %110, <4 x float> %104) + %112 = fmul contract <4 x float> %111, %111 + %shift = shufflevector <4 x float> %112, <4 x float> poison, <4 x i32> + %113 = fadd contract <4 x float> %112, %shift + %shift256 = shufflevector <4 x float> %112, <4 x float> poison, <4 x i32> + %114 = fadd contract <4 x float> %shift256, %113 + %115 = extractelement <4 x float> %114, i64 0 + %116 = tail call contract noundef float @llvm.sqrt.f32(float %115) + %117 = fdiv contract float 1.000000e+00, %116 + %118 = insertelement <4 x float> poison, float %117, i64 0 + %119 = shufflevector <4 x float> %118, <4 x float> poison, <4 x i32> zeroinitializer + %120 = fmul contract <4 x float> %111, %119 + %121 = fcmp contract oeq <4 x float> %104, zeroinitializer + %122 = shufflevector <4 x i1> %121, <4 x i1> zeroinitializer, <8 x i32> + %123 = bitcast <8 x i1> %122 to i8 + %124 = and i8 %123, 7 + %125 = icmp eq i8 %124, 7 + br i1 %125, label %126, label %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i + +126: ; preds = %103 + %127 = extractelement <4 x float> %105, i64 0 + %bc.i.i203 = bitcast <4 x float> %105 to <4 x i32> + %128 = extractelement <4 x i32> %bc.i.i203, i64 2 + %129 = and i32 %128, -2147483648 + %130 = or disjoint i32 %129, 1065353216 + %131 = bitcast i32 %130 to float + %.cast.i.i.i = bitcast i32 %128 to float + %132 = fadd contract float %.cast.i.i.i, %131 + %133 = fdiv contract float -1.000000e+00, %132 + %shift257 = shufflevector <4 x float> %105, <4 x float> poison, <4 x i32> + %134 = fmul contract <4 x float> %105, %shift257 + %135 = extractelement <4 x float> %134, i64 0 + %136 = fmul contract float %135, %133 + %137 = fmul contract <4 x float> %105, %105 + %138 = extractelement <4 x float> %137, i64 0 + %139 = fmul contract float %138, %133 + %140 = bitcast float %139 to i32 + %141 = xor i32 %129, %140 + %142 = bitcast i32 %141 to float + %143 = bitcast float %136 to i32 + %144 = xor i32 %129, %143 + %145 = bitcast i32 %144 to float + %146 = fcmp contract ult float %.cast.i.i.i, 0.000000e+00 + %147 = fneg contract float %127 + %148 = select contract i1 %146, float %127, float %147 + %149 = fadd contract float %142, 1.000000e+00 + %150 = insertelement <4 x float> poison, float %149, i64 0 + %151 = insertelement <4 x float> %150, float %145, i64 1 + %152 = insertelement <4 x float> %151, float %148, i64 2 + %153 = shufflevector <4 x float> %152, <4 x float> %120, <4 x i32> br label %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i -_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i: ; preds = %125, %102 - %153 = phi <4 x float> [ %152, %125 ], [ %119, %102 ] - %154 = getelementptr inbounds nuw i8, ptr %0, i64 80 - store <4 x float> %153, ptr %154, align 16 - %155 = shufflevector <4 x float> %104, <4 x float> poison, <4 x i32> - %156 = shufflevector <4 x float> %153, <4 x float> poison, <4 x i32> - %157 = shufflevector <4 x float> %104, <4 x float> poison, <4 x i32> - %158 = shufflevector <4 x float> %153, <4 x float> poison, <4 x i32> - %159 = fneg contract <4 x float> %158 - %160 = fmul contract <4 x float> %157, %159 - %161 = tail call contract noundef <4 x float> @llvm.fma.v4f32(<4 x float> %155, <4 x float> %156, <4 x float> %160) - %162 = getelementptr inbounds nuw i8, ptr %0, i64 96 - store <4 x float> %161, ptr %162, align 16 +_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i: ; preds = %126, %103 + %154 = phi <4 x float> [ %153, %126 ], [ %120, %103 ] + %155 = getelementptr inbounds nuw i8, ptr %0, i64 80 + store <4 x float> %154, ptr %155, align 16 + %156 = shufflevector <4 x float> %105, <4 x float> poison, <4 x i32> + %157 = shufflevector <4 x float> %154, <4 x float> poison, <4 x i32> + %158 = shufflevector <4 x float> %105, <4 x float> poison, <4 x i32> + %159 = shufflevector <4 x float> %154, <4 x float> poison, <4 x i32> + %160 = fneg contract <4 x float> %159 + %161 = fmul contract <4 x float> %158, %160 + %162 = tail call contract noundef <4 x float> @llvm.fma.v4f32(<4 x float> %156, <4 x float> %157, <4 x float> %161) + %163 = getelementptr inbounds nuw i8, ptr %0, i64 96 + store <4 x float> %162, ptr %163, align 16 br label %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE28finalize_surface_interactionERKNS_23PreliminaryIntersectionIfNS_5ShapeIfS5_EEEERKNS_3RayINS_5PointIfLm3EEES5_EEjb.exit _ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE28finalize_surface_interactionERKNS_23PreliminaryIntersectionIfNS_5ShapeIfS5_EEEERKNS_3RayINS_5PointIfLm3EEES5_EEjb.exit: ; preds = %.critedge._crit_edge.i, %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i - %163 = phi <4 x float> [ %.pre79.i, %.critedge._crit_edge.i ], [ %104, %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i ] - %164 = phi <4 x float> [ zeroinitializer, %.critedge._crit_edge.i ], [ %161, %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i ] - %165 = phi <4 x float> [ zeroinitializer, %.critedge._crit_edge.i ], [ %153, %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i ] - %166 = tail call contract <4 x float> @llvm.x86.sse41.dpps(<4 x float> %29, <4 x float> %165, i8 113) - %167 = tail call contract <4 x float> @llvm.x86.sse41.dpps(<4 x float> %29, <4 x float> %164, i8 113) - %168 = tail call contract <4 x float> @llvm.x86.sse41.dpps(<4 x float> %29, <4 x float> %163, i8 113) - %169 = shufflevector <4 x float> %166, <4 x float> %167, <4 x i32> - %170 = shufflevector <4 x float> %169, <4 x float> %168, <4 x i32> - %171 = shufflevector <4 x float> %170, <4 x float> %29, <4 x i32> - %172 = getelementptr inbounds nuw i8, ptr %0, i64 208 - store <4 x float> %171, ptr %172, align 16 - %173 = getelementptr inbounds nuw i8, ptr %0, i64 192 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %173, i8 0, i64 16, i1 false) - br label %174 - -174: ; preds = %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE28finalize_surface_interactionERKNS_23PreliminaryIntersectionIfNS_5ShapeIfS5_EEEERKNS_3RayINS_5PointIfLm3EEES5_EEjb.exit, %76 + %164 = phi <4 x float> [ %.pre79.i, %.critedge._crit_edge.i ], [ %105, %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i ] + %165 = phi <4 x float> [ zeroinitializer, %.critedge._crit_edge.i ], [ %162, %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i ] + %166 = phi <4 x float> [ zeroinitializer, %.critedge._crit_edge.i ], [ %154, %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i ] + %167 = tail call contract <4 x float> @llvm.x86.sse41.dpps(<4 x float> %29, <4 x float> %166, i8 113) + %168 = tail call contract <4 x float> @llvm.x86.sse41.dpps(<4 x float> %29, <4 x float> %165, i8 113) + %169 = tail call contract <4 x float> @llvm.x86.sse41.dpps(<4 x float> %29, <4 x float> %164, i8 113) + %170 = shufflevector <4 x float> %167, <4 x float> %168, <4 x i32> + %171 = shufflevector <4 x float> %170, <4 x float> %169, <4 x i32> + %172 = shufflevector <4 x float> %171, <4 x float> %29, <4 x i32> + %173 = getelementptr inbounds nuw i8, ptr %0, i64 208 + store <4 x float> %172, ptr %173, align 16 + %174 = getelementptr inbounds nuw i8, ptr %0, i64 192 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %174, i8 0, i64 16, i1 false) + br label %175 + +175: ; preds = %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE28finalize_surface_interactionERKNS_23PreliminaryIntersectionIfNS_5ShapeIfS5_EEEERKNS_3RayINS_5PointIfLm3EEES5_EEjb.exit, %76 ret void } diff --git a/bench/open3d/optimized/ViewTrajectory.ll b/bench/open3d/optimized/ViewTrajectory.ll index 1324a2da573..1ab1aea1cdb 100644 --- a/bench/open3d/optimized/ViewTrajectory.ll +++ b/bench/open3d/optimized/ViewTrajectory.ll @@ -8854,94 +8854,77 @@ define void @_ZN6open3d13visualization14ViewTrajectory20GetInterpolatedFrameEm(p _ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit: ; preds = %24, %26 %.0.i = phi i64 [ %25, %24 ], [ %29, %26 ] %.not = icmp ult i64 %2, %.0.i - br i1 %.not, label %42, label %_ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit.thread + br i1 %.not, label %31, label %_ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit.thread _ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit.thread: ; preds = %3, %_ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit store ptr getelementptr inbounds nuw inrange(-16, 40) (i8, ptr @_ZTVN6open3d13visualization14ViewParametersE, i64 16), ptr %0, align 8, !tbaa !4, !alias.scope !322 %30 = getelementptr inbounds nuw i8, ptr %0, i64 8 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %30, i8 0, i64 16, i1 false) - %31 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %32 = getelementptr inbounds nuw i8, ptr %4, i64 24 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 8 dereferenceable(24) %32, i64 24, i1 false), !tbaa.struct !325 - %33 = getelementptr inbounds nuw i8, ptr %0, i64 48 - %34 = getelementptr inbounds nuw i8, ptr %4, i64 48 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 8 dereferenceable(24) %34, i64 24, i1 false), !tbaa.struct !325 - %35 = getelementptr inbounds nuw i8, ptr %0, i64 72 - %36 = getelementptr inbounds nuw i8, ptr %4, i64 72 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %35, ptr noundef nonnull align 8 dereferenceable(24) %36, i64 24, i1 false), !tbaa.struct !325 - %37 = getelementptr inbounds nuw i8, ptr %0, i64 96 - %38 = getelementptr inbounds nuw i8, ptr %4, i64 96 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull align 8 dereferenceable(24) %38, i64 24, i1 false), !tbaa.struct !325 - %39 = getelementptr inbounds nuw i8, ptr %0, i64 120 - %40 = getelementptr inbounds nuw i8, ptr %4, i64 120 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %39, ptr noundef nonnull align 8 dereferenceable(24) %40, i64 24, i1 false), !tbaa.struct !325 - %41 = getelementptr inbounds nuw i8, ptr %0, i64 144 - store i8 0, ptr %41, align 8, !tbaa !326, !alias.scope !322 - br label %77 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(137) %30, i8 0, i64 137, i1 false) + br label %66 -42: ; preds = %_ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit - %43 = udiv i64 %2, %19 - %44 = mul i64 %43, %19 +31: ; preds = %_ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit + %32 = udiv i64 %2, %19 + %33 = mul i64 %32, %19 %.recomposed = urem i64 %2, %19 - %45 = uitofp i64 %.recomposed to double - %46 = sitofp i32 %18 to double - %47 = fdiv double %45, %46 - %48 = fmul double %47, %47 - %49 = fmul double %47, %48 - %.sroa.0.8.vec.insert = insertelement <2 x double> , double %47, i64 1 - %.sroa.5.16.vec.insert = insertelement <2 x double> poison, double %48, i64 0 - %.sroa.5.24.vec.insert = insertelement <2 x double> %.sroa.5.16.vec.insert, double %49, i64 1 + %34 = uitofp i64 %.recomposed to double + %35 = sitofp i32 %18 to double + %36 = fdiv double %34, %35 + %37 = fmul double %36, %36 + %38 = fmul double %36, %37 + %.sroa.0.8.vec.insert = insertelement <2 x double> , double %36, i64 1 + %.sroa.5.16.vec.insert = insertelement <2 x double> poison, double %37, i64 0 + %.sroa.5.24.vec.insert = insertelement <2 x double> %.sroa.5.16.vec.insert, double %38, i64 1 call void @llvm.lifetime.start.p0(i64 136, ptr nonnull %5) #28 - %50 = getelementptr inbounds nuw i8, ptr %1, i64 40 - %51 = load ptr, ptr %50, align 8, !tbaa !7 - %52 = getelementptr inbounds nuw %"class.Eigen::Matrix", ptr %51, i64 %43 - br label %53 - -53: ; preds = %53, %42 - %.05.i.i.i.i.i.i.i.i.i.i = phi i64 [ 0, %42 ], [ %64, %53 ] - %54 = getelementptr inbounds nuw double, ptr %5, i64 %.05.i.i.i.i.i.i.i.i.i.i + %39 = getelementptr inbounds nuw i8, ptr %1, i64 40 + %40 = load ptr, ptr %39, align 8, !tbaa !7 + %41 = getelementptr inbounds nuw %"class.Eigen::Matrix", ptr %40, i64 %32 + br label %42 + +42: ; preds = %42, %31 + %.05.i.i.i.i.i.i.i.i.i.i = phi i64 [ 0, %31 ], [ %53, %42 ] + %43 = getelementptr inbounds nuw double, ptr %5, i64 %.05.i.i.i.i.i.i.i.i.i.i %.idx.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %.05.i.i.i.i.i.i.i.i.i.i, 5 - %55 = getelementptr inbounds nuw i8, ptr %52, i64 %.idx.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i - %56 = load <2 x double>, ptr %55, align 16, !tbaa !40 - %57 = fmul <2 x double> %56, %.sroa.0.8.vec.insert - %58 = getelementptr inbounds nuw i8, ptr %55, i64 16 - %59 = load <2 x double>, ptr %58, align 16, !tbaa !40 - %60 = fmul <2 x double> %59, %.sroa.5.24.vec.insert - %61 = fadd <2 x double> %57, %60 - %shift = shufflevector <2 x double> %61, <2 x double> poison, <2 x i32> - %62 = fadd <2 x double> %61, %shift - %63 = extractelement <2 x double> %62, i64 0 - store double %63, ptr %54, align 8, !tbaa !41 - %64 = add nuw nsw i64 %.05.i.i.i.i.i.i.i.i.i.i, 1 - %exitcond.not.i.i.i.i.i.i.i.i.i.i = icmp eq i64 %64, 17 - br i1 %exitcond.not.i.i.i.i.i.i.i.i.i.i, label %_ZN5Eigen6MatrixIdLi17ELi1ELi0ELi17ELi1EEC2INS_7ProductINS0_IdLi17ELi4ELi1ELi17ELi4EEENS0_IdLi4ELi1ELi0ELi4ELi1EEELi0EEEEERKNS_9EigenBaseIT_EE.exit, label %53, !llvm.loop !328 - -_ZN5Eigen6MatrixIdLi17ELi1ELi0ELi17ELi1EEC2INS_7ProductINS0_IdLi17ELi4ELi1ELi17ELi4EEENS0_IdLi4ELi1ELi0ELi4ELi1EEELi0EEEEERKNS_9EigenBaseIT_EE.exit: ; preds = %53 + %44 = getelementptr inbounds nuw i8, ptr %41, i64 %.idx.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i + %45 = load <2 x double>, ptr %44, align 16, !tbaa !40 + %46 = fmul <2 x double> %45, %.sroa.0.8.vec.insert + %47 = getelementptr inbounds nuw i8, ptr %44, i64 16 + %48 = load <2 x double>, ptr %47, align 16, !tbaa !40 + %49 = fmul <2 x double> %48, %.sroa.5.24.vec.insert + %50 = fadd <2 x double> %46, %49 + %shift = shufflevector <2 x double> %50, <2 x double> poison, <2 x i32> + %51 = fadd <2 x double> %50, %shift + %52 = extractelement <2 x double> %51, i64 0 + store double %52, ptr %43, align 8, !tbaa !41 + %53 = add nuw nsw i64 %.05.i.i.i.i.i.i.i.i.i.i, 1 + %exitcond.not.i.i.i.i.i.i.i.i.i.i = icmp eq i64 %53, 17 + br i1 %exitcond.not.i.i.i.i.i.i.i.i.i.i, label %_ZN5Eigen6MatrixIdLi17ELi1ELi0ELi17ELi1EEC2INS_7ProductINS0_IdLi17ELi4ELi1ELi17ELi4EEENS0_IdLi4ELi1ELi0ELi4ELi1EEELi0EEEEERKNS_9EigenBaseIT_EE.exit, label %42, !llvm.loop !325 + +_ZN5Eigen6MatrixIdLi17ELi1ELi0ELi17ELi1EEC2INS_7ProductINS0_IdLi17ELi4ELi1ELi17ELi4EEENS0_IdLi4ELi1ELi0ELi4ELi1EEELi0EEEEERKNS_9EigenBaseIT_EE.exit: ; preds = %42 call void @_ZN6open3d13visualization14ViewParameters20ConvertFromVector17dERKN5Eigen6MatrixIdLi17ELi1ELi0ELi17ELi1EEE(ptr noundef nonnull align 8 dereferenceable(144) %4, ptr noundef nonnull align 8 dereferenceable(136) %5) - store ptr getelementptr inbounds nuw inrange(-16, 40) (i8, ptr @_ZTVN6open3d13visualization14ViewParametersE, i64 16), ptr %0, align 8, !tbaa !4, !alias.scope !329 - %65 = getelementptr inbounds nuw i8, ptr %0, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %65, ptr noundef nonnull align 8 dereferenceable(16) %6, i64 16, i1 false) - %66 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %67 = getelementptr inbounds nuw i8, ptr %4, i64 24 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %66, ptr noundef nonnull align 8 dereferenceable(24) %67, i64 24, i1 false), !tbaa.struct !325 - %68 = getelementptr inbounds nuw i8, ptr %0, i64 48 - %69 = getelementptr inbounds nuw i8, ptr %4, i64 48 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %68, ptr noundef nonnull align 8 dereferenceable(24) %69, i64 24, i1 false), !tbaa.struct !325 - %70 = getelementptr inbounds nuw i8, ptr %0, i64 72 - %71 = getelementptr inbounds nuw i8, ptr %4, i64 72 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %70, ptr noundef nonnull align 8 dereferenceable(24) %71, i64 24, i1 false), !tbaa.struct !325 - %72 = getelementptr inbounds nuw i8, ptr %0, i64 96 - %73 = getelementptr inbounds nuw i8, ptr %4, i64 96 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %72, ptr noundef nonnull align 8 dereferenceable(24) %73, i64 24, i1 false), !tbaa.struct !325 - %74 = getelementptr inbounds nuw i8, ptr %0, i64 120 - %75 = getelementptr inbounds nuw i8, ptr %4, i64 120 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %74, ptr noundef nonnull align 8 dereferenceable(24) %75, i64 24, i1 false), !tbaa.struct !325 - %76 = getelementptr inbounds nuw i8, ptr %0, i64 144 - store i8 1, ptr %76, align 8, !tbaa !326, !alias.scope !329 + store ptr getelementptr inbounds nuw inrange(-16, 40) (i8, ptr @_ZTVN6open3d13visualization14ViewParametersE, i64 16), ptr %0, align 8, !tbaa !4, !alias.scope !326 + %54 = getelementptr inbounds nuw i8, ptr %0, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %54, ptr noundef nonnull align 8 dereferenceable(16) %6, i64 16, i1 false) + %55 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %56 = getelementptr inbounds nuw i8, ptr %4, i64 24 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %55, ptr noundef nonnull align 8 dereferenceable(24) %56, i64 24, i1 false), !tbaa.struct !329 + %57 = getelementptr inbounds nuw i8, ptr %0, i64 48 + %58 = getelementptr inbounds nuw i8, ptr %4, i64 48 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %57, ptr noundef nonnull align 8 dereferenceable(24) %58, i64 24, i1 false), !tbaa.struct !329 + %59 = getelementptr inbounds nuw i8, ptr %0, i64 72 + %60 = getelementptr inbounds nuw i8, ptr %4, i64 72 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %59, ptr noundef nonnull align 8 dereferenceable(24) %60, i64 24, i1 false), !tbaa.struct !329 + %61 = getelementptr inbounds nuw i8, ptr %0, i64 96 + %62 = getelementptr inbounds nuw i8, ptr %4, i64 96 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %61, ptr noundef nonnull align 8 dereferenceable(24) %62, i64 24, i1 false), !tbaa.struct !329 + %63 = getelementptr inbounds nuw i8, ptr %0, i64 120 + %64 = getelementptr inbounds nuw i8, ptr %4, i64 120 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %63, ptr noundef nonnull align 8 dereferenceable(24) %64, i64 24, i1 false), !tbaa.struct !329 + %65 = getelementptr inbounds nuw i8, ptr %0, i64 144 + store i8 1, ptr %65, align 8, !tbaa !330, !alias.scope !326 call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %5) #28 - br label %77 + br label %66 -77: ; preds = %_ZN5Eigen6MatrixIdLi17ELi1ELi0ELi17ELi1EEC2INS_7ProductINS0_IdLi17ELi4ELi1ELi17ELi4EEENS0_IdLi4ELi1ELi0ELi4ELi1EEELi0EEEEERKNS_9EigenBaseIT_EE.exit, %_ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit.thread +66: ; preds = %_ZN5Eigen6MatrixIdLi17ELi1ELi0ELi17ELi1EEC2INS_7ProductINS0_IdLi17ELi4ELi1ELi17ELi4EEENS0_IdLi4ELi1ELi0ELi4ELi1EEELi0EEEEERKNS_9EigenBaseIT_EE.exit, %_ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit.thread call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %4) #28 ret void } @@ -9194,19 +9177,19 @@ _ZSt27__uninitialized_default_n_aIPN6open3d13visualization14ViewParametersEmS2_E tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 8 dereferenceable(16) %34, i64 16, i1 false) %35 = getelementptr inbounds nuw i8, ptr %.015.i.i.i.i.i, i64 24 %36 = getelementptr inbounds nuw i8, ptr %.01214.i.i.i.i.i, i64 24 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %35, ptr noundef nonnull align 8 dereferenceable(24) %36, i64 24, i1 false), !tbaa.struct !325 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %35, ptr noundef nonnull align 8 dereferenceable(24) %36, i64 24, i1 false), !tbaa.struct !329 %37 = getelementptr inbounds nuw i8, ptr %.015.i.i.i.i.i, i64 48 %38 = getelementptr inbounds nuw i8, ptr %.01214.i.i.i.i.i, i64 48 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull align 8 dereferenceable(24) %38, i64 24, i1 false), !tbaa.struct !325 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull align 8 dereferenceable(24) %38, i64 24, i1 false), !tbaa.struct !329 %39 = getelementptr inbounds nuw i8, ptr %.015.i.i.i.i.i, i64 72 %40 = getelementptr inbounds nuw i8, ptr %.01214.i.i.i.i.i, i64 72 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %39, ptr noundef nonnull align 8 dereferenceable(24) %40, i64 24, i1 false), !tbaa.struct !325 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %39, ptr noundef nonnull align 8 dereferenceable(24) %40, i64 24, i1 false), !tbaa.struct !329 %41 = getelementptr inbounds nuw i8, ptr %.015.i.i.i.i.i, i64 96 %42 = getelementptr inbounds nuw i8, ptr %.01214.i.i.i.i.i, i64 96 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %41, ptr noundef nonnull align 8 dereferenceable(24) %42, i64 24, i1 false), !tbaa.struct !325 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %41, ptr noundef nonnull align 8 dereferenceable(24) %42, i64 24, i1 false), !tbaa.struct !329 %43 = getelementptr inbounds nuw i8, ptr %.015.i.i.i.i.i, i64 120 %44 = getelementptr inbounds nuw i8, ptr %.01214.i.i.i.i.i, i64 120 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %43, ptr noundef nonnull align 8 dereferenceable(24) %44, i64 24, i1 false), !tbaa.struct !325 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %43, ptr noundef nonnull align 8 dereferenceable(24) %44, i64 24, i1 false), !tbaa.struct !329 %45 = getelementptr inbounds nuw i8, ptr %.01214.i.i.i.i.i, i64 144 %46 = getelementptr inbounds nuw i8, ptr %.015.i.i.i.i.i, i64 144 %.not.i.i.i.i.i = icmp eq ptr %45, %5 @@ -9646,13 +9629,13 @@ attributes #32 = { builtin allocsize(0) } !322 = !{!323} !323 = distinct !{!323, !324, !"_ZSt10make_tupleIJbRN6open3d13visualization14ViewParametersEEESt5tupleIJDpNSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeEEEDpOS7_: argument 0"} !324 = distinct !{!324, !"_ZSt10make_tupleIJbRN6open3d13visualization14ViewParametersEEESt5tupleIJDpNSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeEEEDpOS7_"} -!325 = !{i64 0, i64 24, !40} -!326 = !{!327, !26, i64 0} -!327 = !{!"_ZTSSt10_Head_baseILm0EbLb0EE", !26, i64 0} -!328 = distinct !{!328, !17} -!329 = !{!330} -!330 = distinct !{!330, !331, !"_ZSt10make_tupleIJbRN6open3d13visualization14ViewParametersEEESt5tupleIJDpNSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeEEEDpOS7_: argument 0"} -!331 = distinct !{!331, !"_ZSt10make_tupleIJbRN6open3d13visualization14ViewParametersEEESt5tupleIJDpNSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeEEEDpOS7_"} +!325 = distinct !{!325, !17} +!326 = !{!327} +!327 = distinct !{!327, !328, !"_ZSt10make_tupleIJbRN6open3d13visualization14ViewParametersEEESt5tupleIJDpNSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeEEEDpOS7_: argument 0"} +!328 = distinct !{!328, !"_ZSt10make_tupleIJbRN6open3d13visualization14ViewParametersEEESt5tupleIJDpNSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeEEEDpOS7_"} +!329 = !{i64 0, i64 24, !40} +!330 = !{!331, !26, i64 0} +!331 = !{!"_ZTSSt10_Head_baseILm0EbLb0EE", !26, i64 0} !332 = !{!36, !37, i64 0} !333 = distinct !{!333, !17} !334 = distinct !{!334, !17} diff --git a/bench/opencv/optimized/serialization.ll b/bench/opencv/optimized/serialization.ll index 92c0ad64ed8..0bc26a870cb 100644 --- a/bench/opencv/optimized/serialization.ll +++ b/bench/opencv/optimized/serialization.ll @@ -58820,184 +58820,174 @@ _ZNSt12__shared_ptrIN2cv6detail14BasicOpaqueRefELN9__gnu_cxx12_Lock_policyE2EE5r ; Function Attrs: mustprogress uwtable define linkonce_odr hidden void @_ZN2cv6detail10OpaqueRefTINS_4util7variantIJNS_4gapi3wip4draw4TextENS6_5FTextENS6_4RectENS6_6CircleENS6_4LineENS6_6MosaicENS6_5ImageENS6_4PolyEEEEE5resetEv(ptr noundef nonnull align 8 dereferenceable(232) %0) local_unnamed_addr #3 comdat align 2 personality ptr @__gxx_personality_v0 { %2 = alloca %"class.cv::util::variant.516", align 8 - %3 = alloca %"class.cv::util::variant.516", align 8 - %4 = alloca %"class.std::__cxx11::basic_string", align 8 - %5 = alloca %"class.std::allocator", align 1 - %6 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %7 = load i64, ptr %6, align 8, !tbaa !235 - switch i64 %7, label %66 [ + %3 = alloca %"class.std::__cxx11::basic_string", align 8 + %4 = alloca %"class.std::allocator", align 1 + %5 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %6 = load i64, ptr %5, align 8, !tbaa !235 + switch i64 %6, label %61 [ i64 0, label %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6dtor_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeE.exit - i64 3, label %17 + i64 3, label %12 ] _ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6dtor_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeE.exit: ; preds = %1 - call void @llvm.lifetime.start.p0(i64 208, ptr nonnull %2) - %8 = getelementptr inbounds nuw i8, ptr %0, i64 24 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %2, i8 0, i64 112, i1 false) - store i64 0, ptr %8, align 8, !tbaa !193 - %9 = getelementptr inbounds nuw i8, ptr %0, i64 32 - %10 = getelementptr inbounds nuw i8, ptr %0, i64 48 - store ptr %10, ptr %9, align 8, !tbaa !87 - store i8 0, ptr %10, align 8 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 40 - store i64 0, ptr %11, align 8, !tbaa !44 - %12 = getelementptr inbounds nuw i8, ptr %0, i64 64 - %13 = getelementptr inbounds nuw i8, ptr %2, i64 40 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(24) %13, i64 24, i1 false) - %14 = getelementptr inbounds nuw i8, ptr %0, i64 88 - %15 = getelementptr inbounds nuw i8, ptr %0, i64 120 - %16 = getelementptr inbounds nuw i8, ptr %2, i64 96 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %14, i8 0, i64 32, i1 false) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %15, ptr noundef nonnull align 8 dereferenceable(9) %16, i64 9, i1 false) - store i64 3, ptr %6, align 8, !tbaa !235 - call void @llvm.lifetime.end.p0(i64 208, ptr nonnull %2) - br label %76 - -17: ; preds = %1 - call void @llvm.lifetime.start.p0(i64 208, ptr nonnull %3) #31 - %18 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %19 = getelementptr inbounds nuw i8, ptr %3, i64 24 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(208) %3, i8 0, i64 112, i1 false) - store ptr %19, ptr %18, align 8, !tbaa !87 - %20 = getelementptr inbounds nuw i8, ptr %3, i64 64 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %20, i8 0, i64 32, i1 false) - %21 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %22 = load i64, ptr %21, align 8, !tbaa !193 - %.not.i11 = icmp eq i64 %22, 0 - %23 = getelementptr inbounds nuw i8, ptr %0, i64 32 - br i1 %.not.i11, label %._ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit_crit_edge, label %24 + %7 = getelementptr inbounds nuw i8, ptr %0, i64 24 + store i64 0, ptr %7, align 8, !tbaa !193 + %8 = getelementptr inbounds nuw i8, ptr %0, i64 32 + %9 = getelementptr inbounds nuw i8, ptr %0, i64 48 + store ptr %9, ptr %8, align 8, !tbaa !87 + store i8 0, ptr %9, align 8 + %10 = getelementptr inbounds nuw i8, ptr %0, i64 40 + store i64 0, ptr %10, align 8, !tbaa !44 + %11 = getelementptr inbounds nuw i8, ptr %0, i64 64 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(65) %11, i8 0, i64 65, i1 false) + store i64 3, ptr %5, align 8, !tbaa !235 + br label %71 + +12: ; preds = %1 + call void @llvm.lifetime.start.p0(i64 208, ptr nonnull %2) #31 + %13 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %14 = getelementptr inbounds nuw i8, ptr %2, i64 24 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(208) %2, i8 0, i64 112, i1 false) + store ptr %14, ptr %13, align 8, !tbaa !87 + %15 = getelementptr inbounds nuw i8, ptr %2, i64 64 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %15, i8 0, i64 32, i1 false) + %16 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %17 = load i64, ptr %16, align 8, !tbaa !193 + %.not.i11 = icmp eq i64 %17, 0 + %18 = getelementptr inbounds nuw i8, ptr %0, i64 32 + br i1 %.not.i11, label %._ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit_crit_edge, label %19 -24: ; preds = %17 - %25 = getelementptr inbounds nuw [8 x ptr], ptr @constinit.110, i64 0, i64 %22 - %26 = load ptr, ptr %25, align 8, !tbaa !261 - invoke void %26(ptr noundef nonnull %23) - to label %27 unwind label %57 +19: ; preds = %12 + %20 = getelementptr inbounds nuw [8 x ptr], ptr @constinit.110, i64 0, i64 %17 + %21 = load ptr, ptr %20, align 8, !tbaa !261 + invoke void %21(ptr noundef nonnull %18) + to label %22 unwind label %52 -27: ; preds = %24 - %28 = load i64, ptr %3, align 8, !tbaa !193 - %29 = getelementptr inbounds nuw [8 x ptr], ptr @constinit.113, i64 0, i64 %28 - %30 = load ptr, ptr %29, align 8, !tbaa !261 - invoke void %30(ptr noundef nonnull %23, ptr noundef nonnull %18) - to label %31 unwind label %57 +22: ; preds = %19 + %23 = load i64, ptr %2, align 8, !tbaa !193 + %24 = getelementptr inbounds nuw [8 x ptr], ptr @constinit.113, i64 0, i64 %23 + %25 = load ptr, ptr %24, align 8, !tbaa !261 + invoke void %25(ptr noundef nonnull %18, ptr noundef nonnull %13) + to label %26 unwind label %52 -31: ; preds = %27 - %32 = load i64, ptr %3, align 8, !tbaa !193 - store i64 %32, ptr %21, align 8, !tbaa !193 +26: ; preds = %22 + %27 = load i64, ptr %2, align 8, !tbaa !193 + store i64 %27, ptr %16, align 8, !tbaa !193 br label %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit -._ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit_crit_edge: ; preds = %17 - %33 = load ptr, ptr %23, align 8, !tbaa !39 - %34 = getelementptr inbounds nuw i8, ptr %0, i64 48 - %35 = icmp eq ptr %33, %34 - br i1 %35, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i.i +._ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit_crit_edge: ; preds = %12 + %28 = load ptr, ptr %18, align 8, !tbaa !39 + %29 = getelementptr inbounds nuw i8, ptr %0, i64 48 + %30 = icmp eq ptr %28, %29 + br i1 %30, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i: ; preds = %._ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit_crit_edge - %36 = getelementptr inbounds nuw i8, ptr %0, i64 40 - %37 = load i64, ptr %36, align 8, !tbaa !44 - %38 = icmp ult i64 %37, 16 - call void @llvm.assume(i1 %38) + %31 = getelementptr inbounds nuw i8, ptr %0, i64 40 + %32 = load i64, ptr %31, align 8, !tbaa !44 + %33 = icmp ult i64 %32, 16 + call void @llvm.assume(i1 %33) br label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i.i: ; preds = %._ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit_crit_edge, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i - %39 = getelementptr inbounds nuw i8, ptr %3, i64 16 - %.not22.i.i.i = icmp eq ptr %18, %23 + %34 = getelementptr inbounds nuw i8, ptr %2, i64 16 + %.not22.i.i.i = icmp eq ptr %13, %18 br i1 %.not22.i.i.i, label %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6move_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeESJ_.exit, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i.i, !prof !125 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i.i - %40 = getelementptr inbounds nuw i8, ptr %0, i64 40 - store i64 0, ptr %40, align 8, !tbaa !44 - store i8 0, ptr %33, align 1, !tbaa !56 - %.pre.i.i.i = load ptr, ptr %18, align 8, !tbaa !39 + %35 = getelementptr inbounds nuw i8, ptr %0, i64 40 + store i64 0, ptr %35, align 8, !tbaa !44 + store i8 0, ptr %28, align 1, !tbaa !56 + %.pre.i.i.i = load ptr, ptr %13, align 8, !tbaa !39 br label %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6move_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeESJ_.exit _ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6move_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeESJ_.exit: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i.i - %41 = phi ptr [ %.pre.i.i.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i.i ], [ %19, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i.i ] - store i64 0, ptr %39, align 8, !tbaa !44 - store i8 0, ptr %41, align 1, !tbaa !56 - %42 = getelementptr inbounds nuw i8, ptr %0, i64 64 - %43 = getelementptr inbounds nuw i8, ptr %3, i64 40 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %42, ptr noundef nonnull align 8 dereferenceable(24) %43, i64 24, i1 false) - %44 = getelementptr inbounds nuw i8, ptr %0, i64 88 - %45 = load double, ptr %20, align 8, !tbaa !27 - store double %45, ptr %44, align 8, !tbaa !27 - %46 = getelementptr inbounds nuw i8, ptr %3, i64 72 - %47 = load double, ptr %46, align 8, !tbaa !27 - %48 = getelementptr inbounds nuw i8, ptr %0, i64 96 - store double %47, ptr %48, align 8, !tbaa !27 - %49 = getelementptr inbounds nuw i8, ptr %3, i64 80 - %50 = load double, ptr %49, align 8, !tbaa !27 - %51 = getelementptr inbounds nuw i8, ptr %0, i64 104 - store double %50, ptr %51, align 8, !tbaa !27 - %52 = getelementptr inbounds nuw i8, ptr %3, i64 88 - %53 = load double, ptr %52, align 8, !tbaa !27 - %54 = getelementptr inbounds nuw i8, ptr %0, i64 112 - store double %53, ptr %54, align 8, !tbaa !27 - %55 = getelementptr inbounds nuw i8, ptr %0, i64 120 - %56 = getelementptr inbounds nuw i8, ptr %3, i64 96 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %55, ptr noundef nonnull align 8 dereferenceable(9) %56, i64 9, i1 false) - %.pre = load i64, ptr %3, align 8, !tbaa !193 + %36 = phi ptr [ %.pre.i.i.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i.i ], [ %14, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i.i ] + store i64 0, ptr %34, align 8, !tbaa !44 + store i8 0, ptr %36, align 1, !tbaa !56 + %37 = getelementptr inbounds nuw i8, ptr %0, i64 64 + %38 = getelementptr inbounds nuw i8, ptr %2, i64 40 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull align 8 dereferenceable(24) %38, i64 24, i1 false) + %39 = getelementptr inbounds nuw i8, ptr %0, i64 88 + %40 = load double, ptr %15, align 8, !tbaa !27 + store double %40, ptr %39, align 8, !tbaa !27 + %41 = getelementptr inbounds nuw i8, ptr %2, i64 72 + %42 = load double, ptr %41, align 8, !tbaa !27 + %43 = getelementptr inbounds nuw i8, ptr %0, i64 96 + store double %42, ptr %43, align 8, !tbaa !27 + %44 = getelementptr inbounds nuw i8, ptr %2, i64 80 + %45 = load double, ptr %44, align 8, !tbaa !27 + %46 = getelementptr inbounds nuw i8, ptr %0, i64 104 + store double %45, ptr %46, align 8, !tbaa !27 + %47 = getelementptr inbounds nuw i8, ptr %2, i64 88 + %48 = load double, ptr %47, align 8, !tbaa !27 + %49 = getelementptr inbounds nuw i8, ptr %0, i64 112 + store double %48, ptr %49, align 8, !tbaa !27 + %50 = getelementptr inbounds nuw i8, ptr %0, i64 120 + %51 = getelementptr inbounds nuw i8, ptr %2, i64 96 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %50, ptr noundef nonnull align 8 dereferenceable(9) %51, i64 9, i1 false) + %.pre = load i64, ptr %2, align 8, !tbaa !193 br label %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit -57: ; preds = %27, %24 - %58 = landingpad { ptr, i32 } +52: ; preds = %22, %19 + %53 = landingpad { ptr, i32 } catch ptr null - %59 = extractvalue { ptr, i32 } %58, 0 - call void @__clang_call_terminate(ptr %59) #35 + %54 = extractvalue { ptr, i32 } %53, 0 + call void @__clang_call_terminate(ptr %54) #35 unreachable -_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit: ; preds = %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6move_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeESJ_.exit, %31 - %60 = phi i64 [ %.pre, %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6move_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeESJ_.exit ], [ %32, %31 ] - %61 = getelementptr inbounds nuw [8 x ptr], ptr @constinit.110, i64 0, i64 %60 - %62 = load ptr, ptr %61, align 8, !tbaa !261 - invoke void %62(ptr noundef nonnull %18) - to label %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEED2Ev.exit12 unwind label %63 +_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit: ; preds = %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6move_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeESJ_.exit, %26 + %55 = phi i64 [ %.pre, %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6move_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeESJ_.exit ], [ %27, %26 ] + %56 = getelementptr inbounds nuw [8 x ptr], ptr @constinit.110, i64 0, i64 %55 + %57 = load ptr, ptr %56, align 8, !tbaa !261 + invoke void %57(ptr noundef nonnull %13) + to label %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEED2Ev.exit12 unwind label %58 -63: ; preds = %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit - %64 = landingpad { ptr, i32 } +58: ; preds = %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit + %59 = landingpad { ptr, i32 } catch ptr null - %65 = extractvalue { ptr, i32 } %64, 0 - call void @__clang_call_terminate(ptr %65) #35 + %60 = extractvalue { ptr, i32 } %59, 0 + call void @__clang_call_terminate(ptr %60) #35 unreachable _ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEED2Ev.exit12: ; preds = %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit - call void @llvm.lifetime.end.p0(i64 208, ptr nonnull %3) #31 - br label %76 + call void @llvm.lifetime.end.p0(i64 208, ptr nonnull %2) #31 + br label %71 -66: ; preds = %1 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #31 - call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #31 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.69, ptr noundef nonnull align 1 dereferenceable(1) %5) - invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -2, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @__func__._ZN2cv6detail10VectorRefTIiE5resetEv, ptr noundef nonnull @.str.120, i32 noundef 174) #32 - to label %67 unwind label %68 +61: ; preds = %1 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #31 + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #31 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull @.str.69, ptr noundef nonnull align 1 dereferenceable(1) %4) + invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -2, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull @__func__._ZN2cv6detail10VectorRefTIiE5resetEv, ptr noundef nonnull @.str.120, i32 noundef 174) #32 + to label %62 unwind label %63 -67: ; preds = %66 +62: ; preds = %61 unreachable -68: ; preds = %66 - %69 = landingpad { ptr, i32 } +63: ; preds = %61 + %64 = landingpad { ptr, i32 } cleanup - %70 = load ptr, ptr %4, align 8, !tbaa !39 - %71 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %72 = icmp eq ptr %70, %71 - br i1 %72, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i15, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i14 + %65 = load ptr, ptr %3, align 8, !tbaa !39 + %66 = getelementptr inbounds nuw i8, ptr %3, i64 16 + %67 = icmp eq ptr %65, %66 + br i1 %67, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i15, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i14 -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i15: ; preds = %68 - %73 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %74 = load i64, ptr %73, align 8, !tbaa !44 - %75 = icmp ult i64 %74, 16 - call void @llvm.assume(i1 %75) +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i15: ; preds = %63 + %68 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %69 = load i64, ptr %68, align 8, !tbaa !44 + %70 = icmp ult i64 %69, 16 + call void @llvm.assume(i1 %70) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit16 -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i14: ; preds = %68 - call void @_ZdlPv(ptr noundef %70) #33 +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i14: ; preds = %63 + call void @_ZdlPv(ptr noundef %65) #33 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit16 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit16: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i14, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i15 - call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #31 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #31 - resume { ptr, i32 } %69 + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #31 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #31 + resume { ptr, i32 } %64 -76: ; preds = %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEED2Ev.exit12, %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6dtor_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeE.exit +71: ; preds = %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEED2Ev.exit12, %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6dtor_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeE.exit ret void } diff --git a/bench/openusd/optimized/unitTestDelegate.ll b/bench/openusd/optimized/unitTestDelegate.ll index 54e76e4a8b5..3a66a47ffcb 100644 --- a/bench/openusd/optimized/unitTestDelegate.ll +++ b/bench/openusd/optimized/unitTestDelegate.ll @@ -10886,8 +10886,8 @@ define void @_ZN32pxrInternal_v0_24__pxrReserved__18HdUnitTestDelegate9AddCamera invoke void @_ZN32pxrInternal_v0_24__pxrReserved__32HdPrimTypeTokens_StaticTokenTypeC1Ev(ptr noundef nonnull align 8 dereferenceable(352) %9) to label %_ZN32pxrInternal_v0_24__pxrReserved__27Tf_StaticDataDefaultFactoryINS_32HdPrimTypeTokens_StaticTokenTypeEE3NewEv.exit.i.i.i unwind label %10 -common.resume: ; preds = %32, %10 - %common.resume.op = phi { ptr, i32 } [ %11, %10 ], [ %33, %32 ] +common.resume: ; preds = %31, %10 + %common.resume.op = phi { ptr, i32 } [ %11, %10 ], [ %32, %31 ] resume { ptr, i32 } %common.resume.op 10: ; preds = %8 @@ -10916,7 +10916,7 @@ _ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_Stati %20 = getelementptr inbounds nuw i8, ptr %0, i64 312 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %3, i8 0, i64 72, i1 false) %21 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZNSt3mapIN32pxrInternal_v0_24__pxrReserved__7SdfPathENS0_18HdUnitTestDelegate7_CameraESt4lessIS1_ESaISt4pairIKS1_S3_EEEixERS7_(ptr noundef nonnull align 8 dereferenceable(48) %20, ptr noundef nonnull align 4 dereferenceable(8) %1) - to label %22 unwind label %32 + to label %22 unwind label %31 22: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_StaticTokenTypeENS_27Tf_StaticDataDefaultFactoryIS1_EEEptEv.exit %23 = load ptr, ptr %21, align 8 @@ -10943,12 +10943,11 @@ _ZNKSt14default_deleteISt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcE _ZN32pxrInternal_v0_24__pxrReserved__18HdUnitTestDelegate7_CameraD2Ev.exit: ; preds = %_ZNKSt14default_deleteISt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN32pxrInternal_v0_24__pxrReserved__7VtValueESt4lessIvESaISt4pairIKS6_S8_EEEEclEPSF_.exit.i.i.i.i.i.i, %22 %30 = getelementptr inbounds nuw i8, ptr %21, i64 8 - %31 = getelementptr inbounds nuw i8, ptr %3, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %30, ptr noundef nonnull align 8 dereferenceable(64) %31, i64 64, i1 false) + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %30, i8 0, i64 64, i1 false) ret void -32: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_StaticTokenTypeENS_27Tf_StaticDataDefaultFactoryIS1_EEEptEv.exit - %33 = landingpad { ptr, i32 } +31: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_StaticTokenTypeENS_27Tf_StaticDataDefaultFactoryIS1_EEEptEv.exit + %32 = landingpad { ptr, i32 } cleanup call void @_ZN32pxrInternal_v0_24__pxrReserved__18HdUnitTestDelegate7_CameraD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %3) #23 br label %common.resume diff --git a/bench/openusd/optimized/xformCache.ll b/bench/openusd/optimized/xformCache.ll index 770270452f3..6c066548335 100644 --- a/bench/openusd/optimized/xformCache.ll +++ b/bench/openusd/optimized/xformCache.ll @@ -837,145 +837,144 @@ _ZNSt4pairIKN32pxrInternal_v0_24__pxrReserved__7UsdPrimENS0_17UsdGeomXformCache6 %49 = getelementptr inbounds nuw i8, ptr %6, i64 56 store i8 0, ptr %49, align 8 %50 = getelementptr inbounds nuw i8, ptr %6, i64 64 - %51 = getelementptr inbounds nuw i8, ptr %7, i64 32 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(129) %50, ptr noundef nonnull align 8 dereferenceable(129) %51, i64 129, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(129) %50, i8 0, i64 129, i1 false) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) store ptr %0, ptr %5, align 8 - %52 = invoke { ptr, i8 } @_ZNSt10_HashtableIN32pxrInternal_v0_24__pxrReserved__7UsdPrimESt4pairIKS1_NS0_17UsdGeomXformCache6_EntryEESaIS6_ENSt8__detail10_Select1stESt8equal_toIS1_ENS0_6TfHashENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb1ELb0ELb1EEEE16_M_insert_uniqueIRS3_RKS6_NS8_10_AllocNodeISaINS8_10_Hash_nodeIS6_Lb1EEEEEEEES2_INS8_14_Node_iteratorIS6_Lb0ELb1EEEbEOT_OT0_RKT1_(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(200) %6, ptr noundef nonnull align 8 dereferenceable(200) %6, ptr noundef nonnull align 8 dereferenceable(8) %5) - to label %_ZN32pxrInternal_v0_24__pxrReserved__17UsdGeomXformCache6_EntryD2Ev.exit unwind label %106 + %51 = invoke { ptr, i8 } @_ZNSt10_HashtableIN32pxrInternal_v0_24__pxrReserved__7UsdPrimESt4pairIKS1_NS0_17UsdGeomXformCache6_EntryEESaIS6_ENSt8__detail10_Select1stESt8equal_toIS1_ENS0_6TfHashENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb1ELb0ELb1EEEE16_M_insert_uniqueIRS3_RKS6_NS8_10_AllocNodeISaINS8_10_Hash_nodeIS6_Lb1EEEEEEEES2_INS8_14_Node_iteratorIS6_Lb0ELb1EEEbEOT_OT0_RKT1_(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(200) %6, ptr noundef nonnull align 8 dereferenceable(200) %6, ptr noundef nonnull align 8 dereferenceable(8) %5) + to label %_ZN32pxrInternal_v0_24__pxrReserved__17UsdGeomXformCache6_EntryD2Ev.exit unwind label %105 _ZN32pxrInternal_v0_24__pxrReserved__17UsdGeomXformCache6_EntryD2Ev.exit: ; preds = %_ZNSt4pairIKN32pxrInternal_v0_24__pxrReserved__7UsdPrimENS0_17UsdGeomXformCache6_EntryEEC2IRS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS9_SA_EEEbE4typeELb1EEEOS9_OSA_.exit call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) - %.fca.0.extract = extractvalue { ptr, i8 } %52, 0 - %.fca.1.extract = extractvalue { ptr, i8 } %52, 1 + %.fca.0.extract = extractvalue { ptr, i8 } %51, 0 + %.fca.1.extract = extractvalue { ptr, i8 } %51, 1 call void @_ZNSt4pairIKN32pxrInternal_v0_24__pxrReserved__7UsdPrimENS0_17UsdGeomXformCache6_EntryEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %6) #16 - %53 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 40 - %54 = trunc i8 %.fca.1.extract to i1 - br i1 %54, label %55, label %113 + %52 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 40 + %53 = trunc i8 %.fca.1.extract to i1 + br i1 %53, label %54, label %112 -55: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__17UsdGeomXformCache6_EntryD2Ev.exit +54: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__17UsdGeomXformCache6_EntryD2Ev.exit call void @_ZN32pxrInternal_v0_24__pxrReserved__13UsdSchemaBaseC2ERKNS_7UsdPrimE(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(32) %1) store ptr getelementptr inbounds nuw inrange(-16, 48) (i8, ptr @_ZTVN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformableE, i64 16), ptr %8, align 8 - %56 = getelementptr inbounds nuw i8, ptr %8, i64 8 - %57 = load ptr, ptr %56, align 8 - %.not.i.i = icmp eq ptr %57, null + %55 = getelementptr inbounds nuw i8, ptr %8, i64 8 + %56 = load ptr, ptr %55, align 8 + %.not.i.i = icmp eq ptr %56, null br i1 %.not.i.i, label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit, label %_ZNK32pxrInternal_v0_24__pxrReserved__18Usd_PrimDataHandlecvbEv.exit.i -_ZNK32pxrInternal_v0_24__pxrReserved__18Usd_PrimDataHandlecvbEv.exit.i: ; preds = %55 - %58 = getelementptr inbounds nuw i8, ptr %57, i64 56 - %59 = load i64, ptr %58, align 8 - %60 = and i64 %59, 2048 - %.not3.i.i = icmp eq i64 %60, 0 - br i1 %.not3.i.i, label %61, label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit +_ZNK32pxrInternal_v0_24__pxrReserved__18Usd_PrimDataHandlecvbEv.exit.i: ; preds = %54 + %57 = getelementptr inbounds nuw i8, ptr %56, i64 56 + %58 = load i64, ptr %57, align 8 + %59 = and i64 %58, 2048 + %.not3.i.i = icmp eq i64 %59, 0 + br i1 %.not3.i.i, label %60, label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit -61: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__18Usd_PrimDataHandlecvbEv.exit.i - %62 = load ptr, ptr getelementptr inbounds nuw inrange(-48, 16) (i8, ptr @_ZTVN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformableE, i64 48), align 8 - %63 = invoke noundef zeroext i1 %62(ptr noundef nonnull align 8 dereferenceable(24) %8) - to label %_ZNK32pxrInternal_v0_24__pxrReserved__13UsdSchemaBasecvbEv.exit unwind label %108 +60: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__18Usd_PrimDataHandlecvbEv.exit.i + %61 = load ptr, ptr getelementptr inbounds nuw inrange(-48, 16) (i8, ptr @_ZTVN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformableE, i64 48), align 8 + %62 = invoke noundef zeroext i1 %61(ptr noundef nonnull align 8 dereferenceable(24) %8) + to label %_ZNK32pxrInternal_v0_24__pxrReserved__13UsdSchemaBasecvbEv.exit unwind label %107 -_ZNK32pxrInternal_v0_24__pxrReserved__13UsdSchemaBasecvbEv.exit: ; preds = %61 - br i1 %63, label %64, label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit +_ZNK32pxrInternal_v0_24__pxrReserved__13UsdSchemaBasecvbEv.exit: ; preds = %60 + br i1 %62, label %63, label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit -64: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__13UsdSchemaBasecvbEv.exit +63: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__13UsdSchemaBasecvbEv.exit invoke void @_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(25) %9, ptr noundef nonnull align 8 dereferenceable(24) %8) - to label %65 unwind label %108 - -65: ; preds = %64 - %66 = load ptr, ptr %53, align 8 - %67 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 48 - %68 = load ptr, ptr %67, align 8 - %69 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 56 - %70 = load ptr, ptr %69, align 8 - %71 = load ptr, ptr %9, align 8 - store ptr %71, ptr %53, align 8 - %72 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %73 = load ptr, ptr %72, align 8 - store ptr %73, ptr %67, align 8 - %74 = getelementptr inbounds nuw i8, ptr %9, i64 16 - %75 = load ptr, ptr %74, align 8 - store ptr %75, ptr %69, align 8 - %.not4.i.i.i.i.i.i.i = icmp eq ptr %66, %68 + to label %64 unwind label %107 + +64: ; preds = %63 + %65 = load ptr, ptr %52, align 8 + %66 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 48 + %67 = load ptr, ptr %66, align 8 + %68 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 56 + %69 = load ptr, ptr %68, align 8 + %70 = load ptr, ptr %9, align 8 + store ptr %70, ptr %52, align 8 + %71 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %72 = load ptr, ptr %71, align 8 + store ptr %72, ptr %66, align 8 + %73 = getelementptr inbounds nuw i8, ptr %9, i64 16 + %74 = load ptr, ptr %73, align 8 + store ptr %74, ptr %68, align 8 + %.not4.i.i.i.i.i.i.i = icmp eq ptr %65, %67 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(25) %9, i8 0, i64 24, i1 false) br i1 %.not4.i.i.i.i.i.i.i, label %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i.i.i, label %.lr.ph.i.i.i.i.i.i.i -.lr.ph.i.i.i.i.i.i.i: ; preds = %65, %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i - %.05.i.i.i.i.i.i.i = phi ptr [ %82, %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i ], [ %66, %65 ] +.lr.ph.i.i.i.i.i.i.i: ; preds = %64, %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i + %.05.i.i.i.i.i.i.i = phi ptr [ %81, %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i ], [ %65, %64 ] call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) - %76 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i.i.i, i64 120 - %77 = load i8, ptr %76, align 8 - %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = icmp eq i8 %77, -1 - br i1 %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, label %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i, label %78 + %75 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i.i.i, i64 120 + %76 = load i8, ptr %75, align 8 + %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = icmp eq i8 %76, -1 + br i1 %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, label %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i, label %77 -78: ; preds = %.lr.ph.i.i.i.i.i.i.i +77: ; preds = %.lr.ph.i.i.i.i.i.i.i invoke void @_ZSt10__do_visitIvZNSt8__detail9__variant16_Variant_storageILb0EJN32pxrInternal_v0_24__pxrReserved__12UsdAttributeENS3_17UsdAttributeQueryEEE8_M_resetEvEUlOT_E_JRSt7variantIJS4_S5_EEEEDcOT0_DpOT1_(ptr noundef nonnull align 1 dereferenceable(1) %4, ptr noundef nonnull align 8 dereferenceable(133) %.05.i.i.i.i.i.i.i) - to label %.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i unwind label %79 + to label %.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i unwind label %78 -.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i: ; preds = %78 - store i8 -1, ptr %76, align 8 +.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i: ; preds = %77 + store i8 -1, ptr %75, align 8 br label %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i -79: ; preds = %78 - %80 = landingpad { ptr, i32 } +78: ; preds = %77 + %79 = landingpad { ptr, i32 } catch ptr null - %81 = extractvalue { ptr, i32 } %80, 0 - call void @__clang_call_terminate(ptr %81) #17 + %80 = extractvalue { ptr, i32 } %79, 0 + call void @__clang_call_terminate(ptr %80) #17 unreachable _ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i: ; preds = %.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) - %82 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i.i.i, i64 136 - %.not.i.i.i.i.i.i.i = icmp eq ptr %82, %68 + %81 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i.i.i, i64 136 + %.not.i.i.i.i.i.i.i = icmp eq ptr %81, %67 br i1 %.not.i.i.i.i.i.i.i, label %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i.i.i, label %.lr.ph.i.i.i.i.i.i.i, !llvm.loop !7 -_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i.i.i: ; preds = %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i, %65 - %.not.i.i.i.i.i.i12 = icmp eq ptr %66, null - br i1 %.not.i.i.i.i.i.i12, label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit, label %83 +_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i.i.i: ; preds = %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i, %64 + %.not.i.i.i.i.i.i12 = icmp eq ptr %65, null + br i1 %.not.i.i.i.i.i.i12, label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit, label %82 -83: ; preds = %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i.i.i - %84 = ptrtoint ptr %70 to i64 - %85 = ptrtoint ptr %66 to i64 - %86 = sub i64 %84, %85 - call void @_ZdlPvm(ptr noundef nonnull %66, i64 noundef %86) #18 +82: ; preds = %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i.i.i + %83 = ptrtoint ptr %69 to i64 + %84 = ptrtoint ptr %65 to i64 + %85 = sub i64 %83, %84 + call void @_ZdlPvm(ptr noundef nonnull %65, i64 noundef %85) #18 br label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit -_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit: ; preds = %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i.i.i, %83 - %87 = getelementptr inbounds nuw i8, ptr %9, i64 24 - %88 = load i8, ptr %87, align 8 - %89 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 64 - %90 = and i8 %88, 1 - store i8 %90, ptr %89, align 8 - %91 = load ptr, ptr %9, align 8 - %92 = load ptr, ptr %72, align 8 - %.not4.i.i.i.i.i = icmp eq ptr %91, %92 +_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit: ; preds = %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i.i.i, %82 + %86 = getelementptr inbounds nuw i8, ptr %9, i64 24 + %87 = load i8, ptr %86, align 8 + %88 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 64 + %89 = and i8 %87, 1 + store i8 %89, ptr %88, align 8 + %90 = load ptr, ptr %9, align 8 + %91 = load ptr, ptr %71, align 8 + %.not4.i.i.i.i.i = icmp eq ptr %90, %91 br i1 %.not4.i.i.i.i.i, label %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i, label %.lr.ph.i.i.i.i.i .lr.ph.i.i.i.i.i: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit, %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i - %.05.i.i.i.i.i = phi ptr [ %99, %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i ], [ %91, %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit ] + %.05.i.i.i.i.i = phi ptr [ %98, %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i ], [ %90, %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit ] call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) - %93 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 120 - %94 = load i8, ptr %93, align 8 - %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = icmp eq i8 %94, -1 - br i1 %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, label %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i, label %95 + %92 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 120 + %93 = load i8, ptr %92, align 8 + %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = icmp eq i8 %93, -1 + br i1 %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, label %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i, label %94 -95: ; preds = %.lr.ph.i.i.i.i.i +94: ; preds = %.lr.ph.i.i.i.i.i invoke void @_ZSt10__do_visitIvZNSt8__detail9__variant16_Variant_storageILb0EJN32pxrInternal_v0_24__pxrReserved__12UsdAttributeENS3_17UsdAttributeQueryEEE8_M_resetEvEUlOT_E_JRSt7variantIJS4_S5_EEEEDcOT0_DpOT1_(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 8 dereferenceable(133) %.05.i.i.i.i.i) - to label %.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i unwind label %96 + to label %.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i unwind label %95 -.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i: ; preds = %95 - store i8 -1, ptr %93, align 8 +.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i: ; preds = %94 + store i8 -1, ptr %92, align 8 br label %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i -96: ; preds = %95 - %97 = landingpad { ptr, i32 } +95: ; preds = %94 + %96 = landingpad { ptr, i32 } catch ptr null - %98 = extractvalue { ptr, i32 } %97, 0 - call void @__clang_call_terminate(ptr %98) #17 + %97 = extractvalue { ptr, i32 } %96, 0 + call void @__clang_call_terminate(ptr %97) #17 unreachable _ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i: ; preds = %.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) - %99 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 136 - %.not.i.i.i.i.i13 = icmp eq ptr %99, %92 + %98 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 136 + %.not.i.i.i.i.i13 = icmp eq ptr %98, %91 br i1 %.not.i.i.i.i.i13, label %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exitthread-pre-split.i.i, label %.lr.ph.i.i.i.i.i, !llvm.loop !7 _ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exitthread-pre-split.i.i: ; preds = %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i @@ -983,44 +982,44 @@ _ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSa br label %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i _ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i: ; preds = %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exitthread-pre-split.i.i, %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit - %100 = phi ptr [ %.pr.i.i, %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exitthread-pre-split.i.i ], [ %91, %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit ] - %.not.i.i.i.i = icmp eq ptr %100, null - br i1 %.not.i.i.i.i, label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit, label %101 - -101: ; preds = %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i - %102 = load ptr, ptr %74, align 8 - %103 = ptrtoint ptr %102 to i64 - %104 = ptrtoint ptr %100 to i64 - %105 = sub i64 %103, %104 - call void @_ZdlPvm(ptr noundef nonnull %100, i64 noundef %105) #18 + %99 = phi ptr [ %.pr.i.i, %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exitthread-pre-split.i.i ], [ %90, %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit ] + %.not.i.i.i.i = icmp eq ptr %99, null + br i1 %.not.i.i.i.i, label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit, label %100 + +100: ; preds = %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i + %101 = load ptr, ptr %73, align 8 + %102 = ptrtoint ptr %101 to i64 + %103 = ptrtoint ptr %99 to i64 + %104 = sub i64 %102, %103 + call void @_ZdlPvm(ptr noundef nonnull %99, i64 noundef %104) #18 br label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit -106: ; preds = %_ZNSt4pairIKN32pxrInternal_v0_24__pxrReserved__7UsdPrimENS0_17UsdGeomXformCache6_EntryEEC2IRS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS9_SA_EEEbE4typeELb1EEEOS9_OSA_.exit - %107 = landingpad { ptr, i32 } +105: ; preds = %_ZNSt4pairIKN32pxrInternal_v0_24__pxrReserved__7UsdPrimENS0_17UsdGeomXformCache6_EntryEEC2IRS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS9_SA_EEEbE4typeELb1EEEOS9_OSA_.exit + %106 = landingpad { ptr, i32 } cleanup call void @_ZNSt4pairIKN32pxrInternal_v0_24__pxrReserved__7UsdPrimENS0_17UsdGeomXformCache6_EntryEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %6) #16 call void @_ZN32pxrInternal_v0_24__pxrReserved__17UsdGeomXformCache6_EntryD2Ev(ptr noundef nonnull align 8 dereferenceable(161) %7) #16 - br label %114 + br label %113 -108: ; preds = %61, %64 - %109 = landingpad { ptr, i32 } +107: ; preds = %60, %63 + %108 = landingpad { ptr, i32 } cleanup call void @_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformableD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #16 - br label %114 + br label %113 -_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit: ; preds = %55, %_ZNK32pxrInternal_v0_24__pxrReserved__18Usd_PrimDataHandlecvbEv.exit.i, %101, %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i, %_ZNK32pxrInternal_v0_24__pxrReserved__13UsdSchemaBasecvbEv.exit +_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit: ; preds = %54, %_ZNK32pxrInternal_v0_24__pxrReserved__18Usd_PrimDataHandlecvbEv.exit.i, %100, %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i, %_ZNK32pxrInternal_v0_24__pxrReserved__13UsdSchemaBasecvbEv.exit call void @_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformableD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #16 - %110 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 72 - %111 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d11SetDiagonalEd(ptr noundef nonnull align 8 dereferenceable(128) %110, double noundef 1.000000e+00) - %112 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 200 - store i8 0, ptr %112, align 8 - br label %113 + %109 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 72 + %110 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d11SetDiagonalEd(ptr noundef nonnull align 8 dereferenceable(128) %109, double noundef 1.000000e+00) + %111 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 200 + store i8 0, ptr %111, align 8 + br label %112 -113: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit, %_ZN32pxrInternal_v0_24__pxrReserved__17UsdGeomXformCache6_EntryD2Ev.exit - ret ptr %53 +112: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit, %_ZN32pxrInternal_v0_24__pxrReserved__17UsdGeomXformCache6_EntryD2Ev.exit + ret ptr %52 -114: ; preds = %108, %106 - %.pn = phi { ptr, i32 } [ %109, %108 ], [ %107, %106 ] +113: ; preds = %107, %105 + %.pn = phi { ptr, i32 } [ %108, %107 ], [ %106, %105 ] resume { ptr, i32 } %.pn } diff --git a/bench/pingora-rs/optimized/2ov174hlbjn2zukn47jy5qk00.ll b/bench/pingora-rs/optimized/2ov174hlbjn2zukn47jy5qk00.ll index 2e851a7a6b7..6f9538465e0 100644 --- a/bench/pingora-rs/optimized/2ov174hlbjn2zukn47jy5qk00.ll +++ b/bench/pingora-rs/optimized/2ov174hlbjn2zukn47jy5qk00.ll @@ -496,68 +496,63 @@ define hidden { i64, i64 } @"_ZN36_$LT$T$u20$as$u20$core..any..Any$GT$7type_id17 ; Function Attrs: nonlazybind uwtable define hidden void @"_ZN36_$LT$str$u20$as$u20$nix..NixPath$GT$13with_nix_path17h02d74474d0448337E"(ptr dead_on_unwind noalias noundef writable writeonly sret([116 x i8]) align 4 captures(none) dereferenceable(116) initializes((0, 2), (4, 8)) %0, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) unnamed_addr #0 personality ptr @rust_eh_personality { - %4 = alloca [110 x i8], align 2 %.sroa.5.i.i = alloca [108 x i8], align 4 %.sroa.7.i = alloca [104 x i8], align 4 - %5 = alloca [24 x i8], align 8 - %6 = alloca [1024 x i8], align 1 + %4 = alloca [24 x i8], align 8 + %5 = alloca [1024 x i8], align 1 tail call void @llvm.experimental.noalias.scope.decl(metadata !18) - %7 = icmp ugt i64 %2, 1023 - br i1 %7, label %13, label %8, !prof !4 + %6 = icmp ugt i64 %2, 1023 + br i1 %6, label %12, label %7, !prof !4 -8: ; preds = %3 - call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %6), !noalias !21 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %6, ptr nonnull readonly align 1 %1, i64 %2, i1 false), !noalias !18 - %9 = getelementptr inbounds nuw i8, ptr %6, i64 %2 - store i8 0, ptr %9, align 1, !noalias !21 - call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5), !noalias !21 - %10 = add nuw nsw i64 %2, 1 - call void @_ZN4core3ffi5c_str4CStr19from_bytes_with_nul17h8f4bf3b6506729ebE(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 1 %6, i64 noundef %10), !noalias !21 - %11 = load i64, ptr %5, align 8, !range !23, !noalias !21, !noundef !3 - %12 = trunc nuw i64 %11 to i1 - br i1 %12, label %14, label %16 +7: ; preds = %3 + call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %5), !noalias !21 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %5, ptr nonnull readonly align 1 %1, i64 %2, i1 false), !noalias !18 + %8 = getelementptr inbounds nuw i8, ptr %5, i64 %2 + store i8 0, ptr %8, align 1, !noalias !21 + call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4), !noalias !21 + %9 = add nuw nsw i64 %2, 1 + call void @_ZN4core3ffi5c_str4CStr19from_bytes_with_nul17h8f4bf3b6506729ebE(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 1 %5, i64 noundef %9), !noalias !21 + %10 = load i64, ptr %4, align 8, !range !23, !noalias !21, !noundef !3 + %11 = trunc nuw i64 %10 to i1 + br i1 %11, label %13, label %15 -13: ; preds = %3 +12: ; preds = %3 tail call void @_ZN3nix24with_nix_path_allocating17h87a8e8b9e0eac605E(ptr noalias noundef nonnull sret([116 x i8]) align 4 captures(none) dereferenceable(116) %0, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) br label %"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17hf6cd7adc75cbff82E.exit" -14: ; preds = %8 - %15 = getelementptr inbounds nuw i8, ptr %0, i64 4 - store i32 22, ptr %15, align 4, !alias.scope !18, !noalias !24 +13: ; preds = %7 + %14 = getelementptr inbounds nuw i8, ptr %0, i64 4 + store i32 22, ptr %14, align 4, !alias.scope !18, !noalias !24 store i16 2, ptr %0, align 4, !alias.scope !18, !noalias !24 - call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %6), !noalias !21 - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !21 + call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %5), !noalias !21 + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !21 br label %"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17hf6cd7adc75cbff82E.exit" -16: ; preds = %8 - %17 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %18 = load ptr, ptr %17, align 8, !noalias !21, !nonnull !3, !align !25, !noundef !3 - %19 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %20 = load i64, ptr %19, align 8, !noalias !21, !noundef !3 +15: ; preds = %7 + %16 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %17 = load ptr, ptr %16, align 8, !noalias !21, !nonnull !3, !align !25, !noundef !3 + %18 = getelementptr inbounds nuw i8, ptr %4, i64 16 + %19 = load i64, ptr %18, align 8, !noalias !21, !noundef !3 call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %.sroa.7.i) call void @llvm.lifetime.start.p0(i64 108, ptr nonnull %.sroa.5.i.i) - call void @llvm.lifetime.start.p0(i64 110, ptr nonnull %4) - call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(110) %4, i8 0, i64 110, i1 false), !noalias !26 - %21 = getelementptr inbounds nuw i8, ptr %4, i64 2 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(108) %.sroa.5.i.i, ptr noundef nonnull align 2 dereferenceable(108) %21, i64 108, i1 false), !noalias !26 - call void @llvm.lifetime.end.p0(i64 110, ptr nonnull %4) - %22 = add i64 %20, -1 - %23 = icmp ugt i64 %22, 107 - br i1 %23, label %"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h3bfffb2b4a229441E.exit.i", label %24 - -24: ; preds = %16 - %25 = trunc nuw nsw i64 %20 to i8 - %26 = add nuw nsw i8 %25, 1 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %.sroa.5.i.i, ptr nonnull readonly align 1 %18, i64 %22, i1 false), !noalias !30 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(108) %.sroa.5.i.i, i8 0, i64 108, i1 false), !noalias !26 + %20 = add i64 %19, -1 + %21 = icmp ugt i64 %20, 107 + br i1 %21, label %"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h3bfffb2b4a229441E.exit.i", label %22 + +22: ; preds = %15 + %23 = trunc nuw nsw i64 %19 to i8 + %24 = add nuw nsw i8 %23, 1 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %.sroa.5.i.i, ptr nonnull readonly align 1 %17, i64 %20, i1 false), !noalias !30 %.sroa.5.i.i.0..sroa.5.i.i.0..sroa.5.i.i.0..sroa.5.i.0..sroa.5.i.0..sroa.5.4.copyload.i = load i32, ptr %.sroa.5.i.i, align 4, !noalias !31 %.sroa.7.4..sroa.5.i.sroa_idx.i = getelementptr inbounds nuw i8, ptr %.sroa.5.i.i, i64 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(104) %.sroa.7.i, ptr noundef nonnull align 4 dereferenceable(104) %.sroa.7.4..sroa.5.i.sroa_idx.i, i64 104, i1 false), !noalias !31 br label %"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h3bfffb2b4a229441E.exit.i" -"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h3bfffb2b4a229441E.exit.i": ; preds = %24, %16 - %.sroa.5.0.i = phi i32 [ %.sroa.5.i.i.0..sroa.5.i.i.0..sroa.5.i.i.0..sroa.5.i.0..sroa.5.i.0..sroa.5.4.copyload.i, %24 ], [ 36, %16 ] - %.sroa.72.0.i = phi i8 [ %26, %24 ], [ undef, %16 ] - %.sink.i.i = phi i16 [ 0, %24 ], [ 1, %16 ] +"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h3bfffb2b4a229441E.exit.i": ; preds = %22, %15 + %.sroa.5.0.i = phi i32 [ %.sroa.5.i.i.0..sroa.5.i.i.0..sroa.5.i.i.0..sroa.5.i.0..sroa.5.i.0..sroa.5.4.copyload.i, %22 ], [ 36, %15 ] + %.sroa.72.0.i = phi i8 [ %24, %22 ], [ undef, %15 ] + %.sink.i.i = phi i16 [ 0, %22 ], [ 1, %15 ] call void @llvm.lifetime.end.p0(i64 108, ptr nonnull %.sroa.5.i.i) store i16 %.sink.i.i, ptr %0, align 4, !alias.scope !18, !noalias !24 %.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 2 @@ -569,11 +564,11 @@ define hidden void @"_ZN36_$LT$str$u20$as$u20$nix..NixPath$GT$13with_nix_path17h %.sroa.72.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 112 store i8 %.sroa.72.0.i, ptr %.sroa.72.0..sroa_idx.i, align 4, !alias.scope !18, !noalias !24 call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %.sroa.7.i) - call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %6), !noalias !21 - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !21 + call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %5), !noalias !21 + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !21 br label %"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17hf6cd7adc75cbff82E.exit" -"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17hf6cd7adc75cbff82E.exit": ; preds = %13, %14, %"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h3bfffb2b4a229441E.exit.i" +"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17hf6cd7adc75cbff82E.exit": ; preds = %12, %13, %"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h3bfffb2b4a229441E.exit.i" ret void } @@ -831,45 +826,40 @@ define { i32, i32 } @_ZN3nix24with_nix_path_allocating17h085d3a6150011876E(ptr n ; Function Attrs: cold nonlazybind uwtable define void @_ZN3nix24with_nix_path_allocating17h87a8e8b9e0eac605E(ptr dead_on_unwind noalias noundef writable writeonly sret([116 x i8]) align 4 captures(none) dereferenceable(116) initializes((0, 2), (4, 8)) %0, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) unnamed_addr #4 personality ptr @rust_eh_personality { - %4 = alloca [110 x i8], align 2 %.sroa.5.i = alloca [108 x i8], align 4 %.sroa.7 = alloca [104 x i8], align 4 - %5 = alloca [32 x i8], align 8 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) - call void @"_ZN81_$LT$$RF$$u5b$u8$u5d$$u20$as$u20$alloc..ffi..c_str..CString..new..SpecNewImpl$GT$13spec_new_impl17h30fdc0baeba647c4E"(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %5, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) - %6 = load i64, ptr %5, align 8, !range !53, !noundef !3 - %.not = icmp eq i64 %6, -9223372036854775808 - br i1 %.not, label %7, label %"_ZN4core3ptr105drop_in_place$LT$core..result..Result$LT$alloc..ffi..c_str..CString$C$alloc..ffi..c_str..NulError$GT$$GT$17he980a7a0f48fe449E.exit15" + %4 = alloca [32 x i8], align 8 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) + call void @"_ZN81_$LT$$RF$$u5b$u8$u5d$$u20$as$u20$alloc..ffi..c_str..CString..new..SpecNewImpl$GT$13spec_new_impl17h30fdc0baeba647c4E"(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) + %5 = load i64, ptr %4, align 8, !range !53, !noundef !3 + %.not = icmp eq i64 %5, -9223372036854775808 + br i1 %.not, label %6, label %"_ZN4core3ptr105drop_in_place$LT$core..result..Result$LT$alloc..ffi..c_str..CString$C$alloc..ffi..c_str..NulError$GT$$GT$17he980a7a0f48fe449E.exit15" -7: ; preds = %3 - %8 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %9 = load ptr, ptr %8, align 8, !nonnull !3, !align !25, !noundef !3 - %10 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %11 = load i64, ptr %10, align 8, !noundef !3 +6: ; preds = %3 + %7 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %8 = load ptr, ptr %7, align 8, !nonnull !3, !align !25, !noundef !3 + %9 = getelementptr inbounds nuw i8, ptr %4, i64 16 + %10 = load i64, ptr %9, align 8, !noundef !3 call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %.sroa.7) call void @llvm.lifetime.start.p0(i64 108, ptr nonnull %.sroa.5.i) - call void @llvm.lifetime.start.p0(i64 110, ptr nonnull %4) - call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(110) %4, i8 0, i64 110, i1 false), !noalias !59 - %12 = getelementptr inbounds nuw i8, ptr %4, i64 2 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(108) %.sroa.5.i, ptr noundef nonnull align 2 dereferenceable(108) %12, i64 108, i1 false), !noalias !59 - call void @llvm.lifetime.end.p0(i64 110, ptr nonnull %4) - %13 = add i64 %11, -1 - %14 = icmp ugt i64 %13, 107 - br i1 %14, label %18, label %15 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(108) %.sroa.5.i, i8 0, i64 108, i1 false), !noalias !59 + %11 = add i64 %10, -1 + %12 = icmp ugt i64 %11, 107 + br i1 %12, label %16, label %13 -15: ; preds = %7 - %16 = trunc nuw nsw i64 %11 to i8 - %17 = add nuw nsw i8 %16, 1 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %.sroa.5.i, ptr nonnull readonly align 1 %9, i64 %13, i1 false), !noalias !63 +13: ; preds = %6 + %14 = trunc nuw nsw i64 %10 to i8 + %15 = add nuw nsw i8 %14, 1 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %.sroa.5.i, ptr nonnull readonly align 1 %8, i64 %11, i1 false), !noalias !63 %.sroa.5.i.0..sroa.5.i.0..sroa.5.i.0..sroa.518.4.copyload = load i32, ptr %.sroa.5.i, align 4, !noalias !64 %.sroa.7.4..sroa.5.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.5.i, i64 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(104) %.sroa.7, ptr noundef nonnull align 4 dereferenceable(104) %.sroa.7.4..sroa.5.i.sroa_idx, i64 104, i1 false), !noalias !64 - br label %18 + br label %16 -18: ; preds = %15, %7 - %.sroa.518.0 = phi i32 [ %.sroa.5.i.0..sroa.5.i.0..sroa.5.i.0..sroa.518.4.copyload, %15 ], [ 36, %7 ] - %.sroa.719.0 = phi i8 [ %17, %15 ], [ undef, %7 ] - %.sink.i = phi i16 [ 0, %15 ], [ 1, %7 ] +16: ; preds = %13, %6 + %.sroa.518.0 = phi i32 [ %.sroa.5.i.0..sroa.5.i.0..sroa.5.i.0..sroa.518.4.copyload, %13 ], [ 36, %6 ] + %.sroa.719.0 = phi i8 [ %15, %13 ], [ undef, %6 ] + %.sink.i = phi i16 [ 0, %13 ], [ 1, %6 ] call void @llvm.lifetime.end.p0(i64 108, ptr nonnull %.sroa.5.i) store i16 %.sink.i, ptr %0, align 4 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 2 @@ -881,30 +871,30 @@ define void @_ZN3nix24with_nix_path_allocating17h87a8e8b9e0eac605E(ptr dead_on_u %.sroa.719.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 112 store i8 %.sroa.719.0, ptr %.sroa.719.0..sroa_idx, align 4 call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %.sroa.7) - store i8 0, ptr %9, align 1 - %19 = icmp eq i64 %11, 0 - br i1 %19, label %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17he713f630cc6de38aE.exit12", label %20 + store i8 0, ptr %8, align 1 + %17 = icmp eq i64 %10, 0 + br i1 %17, label %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17he713f630cc6de38aE.exit12", label %18 -20: ; preds = %18 - tail call void @_RNvCshjvJWTf7CV5_7___rustc14___rust_dealloc(ptr noundef nonnull %9, i64 noundef range(i64 1, 0) %11, i64 noundef 1) #30 +18: ; preds = %16 + tail call void @_RNvCshjvJWTf7CV5_7___rustc14___rust_dealloc(ptr noundef nonnull %8, i64 noundef range(i64 1, 0) %10, i64 noundef 1) #30 br label %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17he713f630cc6de38aE.exit12" -"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17he713f630cc6de38aE.exit12": ; preds = %20, %18 - %21 = load i64, ptr %5, align 8, !range !53, !noundef !3 - %.not5 = icmp eq i64 %21, -9223372036854775808 - br i1 %.not5, label %22, label %.sink.split +"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17he713f630cc6de38aE.exit12": ; preds = %18, %16 + %19 = load i64, ptr %4, align 8, !range !53, !noundef !3 + %.not5 = icmp eq i64 %19, -9223372036854775808 + br i1 %.not5, label %20, label %.sink.split .sink.split: ; preds = %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17he713f630cc6de38aE.exit12", %"_ZN4core3ptr105drop_in_place$LT$core..result..Result$LT$alloc..ffi..c_str..CString$C$alloc..ffi..c_str..NulError$GT$$GT$17he980a7a0f48fe449E.exit15" - call void @"_ZN4core3ptr48drop_in_place$LT$alloc..ffi..c_str..NulError$GT$17hbe8ca33343d0754cE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %5) - br label %22 + call void @"_ZN4core3ptr48drop_in_place$LT$alloc..ffi..c_str..NulError$GT$17hbe8ca33343d0754cE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %4) + br label %20 -22: ; preds = %.sink.split, %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17he713f630cc6de38aE.exit12" - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) +20: ; preds = %.sink.split, %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17he713f630cc6de38aE.exit12" + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) ret void "_ZN4core3ptr105drop_in_place$LT$core..result..Result$LT$alloc..ffi..c_str..CString$C$alloc..ffi..c_str..NulError$GT$$GT$17he980a7a0f48fe449E.exit15": ; preds = %3 - %23 = getelementptr inbounds nuw i8, ptr %0, i64 4 - store i32 22, ptr %23, align 4 + %21 = getelementptr inbounds nuw i8, ptr %0, i64 4 + store i32 22, ptr %21, align 4 store i16 2, ptr %0, align 4 br label %.sink.split } diff --git a/bench/pingora-rs/optimized/acx590v32pn6eo20biyujqd8g.ll b/bench/pingora-rs/optimized/acx590v32pn6eo20biyujqd8g.ll index 24bdc62a79c..0b1c4daab29 100644 --- a/bench/pingora-rs/optimized/acx590v32pn6eo20biyujqd8g.ll +++ b/bench/pingora-rs/optimized/acx590v32pn6eo20biyujqd8g.ll @@ -5167,45 +5167,40 @@ define hidden { i64, ptr } @_ZN2h25proto9ping_pong8PingPong17send_pending_pong17 ; Function Attrs: cold nonlazybind uwtable define void @_ZN3nix24with_nix_path_allocating17hcb2703c0d3663fb6E(ptr dead_on_unwind noalias noundef writable writeonly sret([116 x i8]) align 4 captures(none) dereferenceable(116) initializes((0, 2), (4, 8)) %0, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) unnamed_addr #2 personality ptr @rust_eh_personality { - %4 = alloca [110 x i8], align 2 %.sroa.5.i = alloca [108 x i8], align 4 %.sroa.7 = alloca [104 x i8], align 4 - %5 = alloca [32 x i8], align 8 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) - call void @"_ZN81_$LT$$RF$$u5b$u8$u5d$$u20$as$u20$alloc..ffi..c_str..CString..new..SpecNewImpl$GT$13spec_new_impl17h30fdc0baeba647c4E"(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %5, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) - %6 = load i64, ptr %5, align 8, !range !200, !noundef !3 - %.not = icmp eq i64 %6, -9223372036854775808 - br i1 %.not, label %7, label %"_ZN4core3ptr105drop_in_place$LT$core..result..Result$LT$alloc..ffi..c_str..CString$C$alloc..ffi..c_str..NulError$GT$$GT$17h049fa9850d2fc88bE.exit15" + %4 = alloca [32 x i8], align 8 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) + call void @"_ZN81_$LT$$RF$$u5b$u8$u5d$$u20$as$u20$alloc..ffi..c_str..CString..new..SpecNewImpl$GT$13spec_new_impl17h30fdc0baeba647c4E"(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) + %5 = load i64, ptr %4, align 8, !range !200, !noundef !3 + %.not = icmp eq i64 %5, -9223372036854775808 + br i1 %.not, label %6, label %"_ZN4core3ptr105drop_in_place$LT$core..result..Result$LT$alloc..ffi..c_str..CString$C$alloc..ffi..c_str..NulError$GT$$GT$17h049fa9850d2fc88bE.exit15" -7: ; preds = %3 - %8 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %9 = load ptr, ptr %8, align 8, !nonnull !3, !align !11, !noundef !3 - %10 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %11 = load i64, ptr %10, align 8, !noundef !3 +6: ; preds = %3 + %7 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %8 = load ptr, ptr %7, align 8, !nonnull !3, !align !11, !noundef !3 + %9 = getelementptr inbounds nuw i8, ptr %4, i64 16 + %10 = load i64, ptr %9, align 8, !noundef !3 call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %.sroa.7) call void @llvm.lifetime.start.p0(i64 108, ptr nonnull %.sroa.5.i) - call void @llvm.lifetime.start.p0(i64 110, ptr nonnull %4) - call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(110) %4, i8 0, i64 110, i1 false), !noalias !201 - %12 = getelementptr inbounds nuw i8, ptr %4, i64 2 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(108) %.sroa.5.i, ptr noundef nonnull align 2 dereferenceable(108) %12, i64 108, i1 false), !noalias !201 - call void @llvm.lifetime.end.p0(i64 110, ptr nonnull %4) - %13 = add i64 %11, -1 - %14 = icmp ugt i64 %13, 107 - br i1 %14, label %18, label %15 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(108) %.sroa.5.i, i8 0, i64 108, i1 false), !noalias !201 + %11 = add i64 %10, -1 + %12 = icmp ugt i64 %11, 107 + br i1 %12, label %16, label %13 -15: ; preds = %7 - %16 = trunc nuw nsw i64 %11 to i8 - %17 = add nuw nsw i8 %16, 1 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %.sroa.5.i, ptr nonnull readonly align 1 %9, i64 %13, i1 false), !noalias !205 +13: ; preds = %6 + %14 = trunc nuw nsw i64 %10 to i8 + %15 = add nuw nsw i8 %14, 1 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %.sroa.5.i, ptr nonnull readonly align 1 %8, i64 %11, i1 false), !noalias !205 %.sroa.5.i.0..sroa.5.i.0..sroa.5.i.0..sroa.518.4.copyload = load i32, ptr %.sroa.5.i, align 4, !noalias !206 %.sroa.7.4..sroa.5.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.5.i, i64 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(104) %.sroa.7, ptr noundef nonnull align 4 dereferenceable(104) %.sroa.7.4..sroa.5.i.sroa_idx, i64 104, i1 false), !noalias !206 - br label %18 + br label %16 -18: ; preds = %15, %7 - %.sroa.518.0 = phi i32 [ %.sroa.5.i.0..sroa.5.i.0..sroa.5.i.0..sroa.518.4.copyload, %15 ], [ 36, %7 ] - %.sroa.719.0 = phi i8 [ %17, %15 ], [ undef, %7 ] - %.sink.i = phi i16 [ 0, %15 ], [ 1, %7 ] +16: ; preds = %13, %6 + %.sroa.518.0 = phi i32 [ %.sroa.5.i.0..sroa.5.i.0..sroa.5.i.0..sroa.518.4.copyload, %13 ], [ 36, %6 ] + %.sroa.719.0 = phi i8 [ %15, %13 ], [ undef, %6 ] + %.sink.i = phi i16 [ 0, %13 ], [ 1, %6 ] call void @llvm.lifetime.end.p0(i64 108, ptr nonnull %.sroa.5.i) store i16 %.sink.i, ptr %0, align 4 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 2 @@ -5217,30 +5212,30 @@ define void @_ZN3nix24with_nix_path_allocating17hcb2703c0d3663fb6E(ptr dead_on_u %.sroa.719.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 112 store i8 %.sroa.719.0, ptr %.sroa.719.0..sroa_idx, align 4 call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %.sroa.7) - store i8 0, ptr %9, align 1 - %19 = icmp eq i64 %11, 0 - br i1 %19, label %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17h0d3a65ce4011c1c1E.exit12", label %20 + store i8 0, ptr %8, align 1 + %17 = icmp eq i64 %10, 0 + br i1 %17, label %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17h0d3a65ce4011c1c1E.exit12", label %18 -20: ; preds = %18 - tail call void @_RNvCshjvJWTf7CV5_7___rustc14___rust_dealloc(ptr noundef nonnull %9, i64 noundef range(i64 1, 0) %11, i64 noundef 1) #13 +18: ; preds = %16 + tail call void @_RNvCshjvJWTf7CV5_7___rustc14___rust_dealloc(ptr noundef nonnull %8, i64 noundef range(i64 1, 0) %10, i64 noundef 1) #13 br label %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17h0d3a65ce4011c1c1E.exit12" -"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17h0d3a65ce4011c1c1E.exit12": ; preds = %20, %18 - %21 = load i64, ptr %5, align 8, !range !200, !noundef !3 - %.not5 = icmp eq i64 %21, -9223372036854775808 - br i1 %.not5, label %22, label %.sink.split +"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17h0d3a65ce4011c1c1E.exit12": ; preds = %18, %16 + %19 = load i64, ptr %4, align 8, !range !200, !noundef !3 + %.not5 = icmp eq i64 %19, -9223372036854775808 + br i1 %.not5, label %20, label %.sink.split .sink.split: ; preds = %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17h0d3a65ce4011c1c1E.exit12", %"_ZN4core3ptr105drop_in_place$LT$core..result..Result$LT$alloc..ffi..c_str..CString$C$alloc..ffi..c_str..NulError$GT$$GT$17h049fa9850d2fc88bE.exit15" - call void @"_ZN4core3ptr48drop_in_place$LT$alloc..ffi..c_str..NulError$GT$17h02925b1c446021bdE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %5) - br label %22 + call void @"_ZN4core3ptr48drop_in_place$LT$alloc..ffi..c_str..NulError$GT$17h02925b1c446021bdE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %4) + br label %20 -22: ; preds = %.sink.split, %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17h0d3a65ce4011c1c1E.exit12" - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) +20: ; preds = %.sink.split, %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17h0d3a65ce4011c1c1E.exit12" + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) ret void "_ZN4core3ptr105drop_in_place$LT$core..result..Result$LT$alloc..ffi..c_str..CString$C$alloc..ffi..c_str..NulError$GT$$GT$17h049fa9850d2fc88bE.exit15": ; preds = %3 - %23 = getelementptr inbounds nuw i8, ptr %0, i64 4 - store i32 22, ptr %23, align 4 + %21 = getelementptr inbounds nuw i8, ptr %0, i64 4 + store i32 22, ptr %21, align 4 store i16 2, ptr %0, align 4 br label %.sink.split } @@ -5286,67 +5281,62 @@ define hidden noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$G ; Function Attrs: nonlazybind uwtable define hidden void @"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17h7ca00e350a33f2a9E"(ptr dead_on_unwind noalias noundef writable writeonly sret([116 x i8]) align 4 captures(none) dereferenceable(116) initializes((0, 2), (4, 8)) %0, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) unnamed_addr #0 personality ptr @rust_eh_personality { - %4 = alloca [110 x i8], align 2 %.sroa.5.i = alloca [108 x i8], align 4 %.sroa.7 = alloca [104 x i8], align 4 - %5 = alloca [24 x i8], align 8 - %6 = alloca [1024 x i8], align 1 - %7 = icmp ugt i64 %2, 1023 - br i1 %7, label %13, label %8, !prof !7 + %4 = alloca [24 x i8], align 8 + %5 = alloca [1024 x i8], align 1 + %6 = icmp ugt i64 %2, 1023 + br i1 %6, label %12, label %7, !prof !7 -8: ; preds = %3 - call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %6) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %6, ptr nonnull align 1 %1, i64 %2, i1 false) - %9 = getelementptr inbounds nuw i8, ptr %6, i64 %2 - store i8 0, ptr %9, align 1 - call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) - %10 = add nuw nsw i64 %2, 1 - call void @_ZN4core3ffi5c_str4CStr19from_bytes_with_nul17h8f4bf3b6506729ebE(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 1 %6, i64 noundef %10) - %11 = load i64, ptr %5, align 8, !range !117, !noundef !3 - %12 = trunc nuw i64 %11 to i1 - br i1 %12, label %14, label %16 +7: ; preds = %3 + call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %5) + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %5, ptr nonnull align 1 %1, i64 %2, i1 false) + %8 = getelementptr inbounds nuw i8, ptr %5, i64 %2 + store i8 0, ptr %8, align 1 + call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) + %9 = add nuw nsw i64 %2, 1 + call void @_ZN4core3ffi5c_str4CStr19from_bytes_with_nul17h8f4bf3b6506729ebE(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 1 %5, i64 noundef %9) + %10 = load i64, ptr %4, align 8, !range !117, !noundef !3 + %11 = trunc nuw i64 %10 to i1 + br i1 %11, label %13, label %15 -13: ; preds = %3 +12: ; preds = %3 tail call void @_ZN3nix24with_nix_path_allocating17hcb2703c0d3663fb6E(ptr noalias noundef nonnull sret([116 x i8]) align 4 captures(none) dereferenceable(116) %0, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) - br label %27 + br label %25 -14: ; preds = %8 - %15 = getelementptr inbounds nuw i8, ptr %0, i64 4 - store i32 22, ptr %15, align 4 +13: ; preds = %7 + %14 = getelementptr inbounds nuw i8, ptr %0, i64 4 + store i32 22, ptr %14, align 4 store i16 2, ptr %0, align 4 - call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %6) - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) - br label %27 + call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %5) + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) + br label %25 -16: ; preds = %8 - %17 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %18 = load ptr, ptr %17, align 8, !nonnull !3, !align !11, !noundef !3 - %19 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %20 = load i64, ptr %19, align 8, !noundef !3 +15: ; preds = %7 + %16 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %17 = load ptr, ptr %16, align 8, !nonnull !3, !align !11, !noundef !3 + %18 = getelementptr inbounds nuw i8, ptr %4, i64 16 + %19 = load i64, ptr %18, align 8, !noundef !3 call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %.sroa.7) call void @llvm.lifetime.start.p0(i64 108, ptr nonnull %.sroa.5.i) - call void @llvm.lifetime.start.p0(i64 110, ptr nonnull %4) - call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(110) %4, i8 0, i64 110, i1 false), !noalias !212 - %21 = getelementptr inbounds nuw i8, ptr %4, i64 2 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(108) %.sroa.5.i, ptr noundef nonnull align 2 dereferenceable(108) %21, i64 108, i1 false), !noalias !212 - call void @llvm.lifetime.end.p0(i64 110, ptr nonnull %4) - %22 = add i64 %20, -1 - %23 = icmp ugt i64 %22, 107 - br i1 %23, label %"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h317b9d0f33026ff9E.exit", label %24 - -24: ; preds = %16 - %25 = trunc nuw nsw i64 %20 to i8 - %26 = add nuw nsw i8 %25, 1 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %.sroa.5.i, ptr nonnull readonly align 1 %18, i64 %22, i1 false), !noalias !216 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(108) %.sroa.5.i, i8 0, i64 108, i1 false), !noalias !212 + %20 = add i64 %19, -1 + %21 = icmp ugt i64 %20, 107 + br i1 %21, label %"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h317b9d0f33026ff9E.exit", label %22 + +22: ; preds = %15 + %23 = trunc nuw nsw i64 %19 to i8 + %24 = add nuw nsw i8 %23, 1 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %.sroa.5.i, ptr nonnull readonly align 1 %17, i64 %20, i1 false), !noalias !216 %.sroa.5.i.0..sroa.5.i.0..sroa.5.i.0..sroa.5.4.copyload = load i32, ptr %.sroa.5.i, align 4, !noalias !217 %.sroa.7.4..sroa.5.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.5.i, i64 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(104) %.sroa.7, ptr noundef nonnull align 4 dereferenceable(104) %.sroa.7.4..sroa.5.i.sroa_idx, i64 104, i1 false), !noalias !217 br label %"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h317b9d0f33026ff9E.exit" -"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h317b9d0f33026ff9E.exit": ; preds = %16, %24 - %.sroa.5.0 = phi i32 [ %.sroa.5.i.0..sroa.5.i.0..sroa.5.i.0..sroa.5.4.copyload, %24 ], [ 36, %16 ] - %.sroa.72.0 = phi i8 [ %26, %24 ], [ undef, %16 ] - %.sink.i = phi i16 [ 0, %24 ], [ 1, %16 ] +"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h317b9d0f33026ff9E.exit": ; preds = %15, %22 + %.sroa.5.0 = phi i32 [ %.sroa.5.i.0..sroa.5.i.0..sroa.5.i.0..sroa.5.4.copyload, %22 ], [ 36, %15 ] + %.sroa.72.0 = phi i8 [ %24, %22 ], [ undef, %15 ] + %.sink.i = phi i16 [ 0, %22 ], [ 1, %15 ] call void @llvm.lifetime.end.p0(i64 108, ptr nonnull %.sroa.5.i) store i16 %.sink.i, ptr %0, align 4 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 2 @@ -5358,11 +5348,11 @@ define hidden void @"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_ni %.sroa.72.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 112 store i8 %.sroa.72.0, ptr %.sroa.72.0..sroa_idx, align 4 call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %.sroa.7) - call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %6) - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) - br label %27 + call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %5) + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) + br label %25 -27: ; preds = %13, %14, %"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h317b9d0f33026ff9E.exit" +25: ; preds = %12, %13, %"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h317b9d0f33026ff9E.exit" ret void } diff --git a/bench/yosys/optimized/abc.ll b/bench/yosys/optimized/abc.ll index a4c3adfc60a..9b6ab08a674 100644 --- a/bench/yosys/optimized/abc.ll +++ b/bench/yosys/optimized/abc.ll @@ -175609,7 +175609,7 @@ _ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_ store i32 %.0.i, ptr %3, align 4, !tbaa !77 %32 = call noundef i32 @_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE9do_lookupERKS3_Rj(ptr noundef nonnull align 8 dereferenceable(49) %0, ptr noundef nonnull align 4 dereferenceable(4) %1, ptr noundef nonnull align 4 dereferenceable(4) %3) %33 = icmp slt i32 %32, 0 - br i1 %33, label %34, label %74 + br i1 %33, label %34, label %73 34: ; preds = %_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_hashERKS3_.exit call void @llvm.lifetime.start.p0(i64 136, ptr nonnull %4) #32 @@ -175651,65 +175651,64 @@ _ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_ call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %51, i8 0, i64 24, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %52, i8 0, i64 24, i1 false) %53 = getelementptr inbounds nuw i8, ptr %4, i64 128 - %54 = getelementptr inbounds nuw i8, ptr %5, i64 120 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %53, ptr noundef nonnull align 8 dereferenceable(3) %54, i64 3, i1 false) - %55 = invoke noundef i32 @_ZN5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE9do_insertEOSt4pairIS3_S4_ERj(ptr noundef nonnull align 8 dereferenceable(49) %0, ptr noundef nonnull align 8 dereferenceable(136) %4, ptr noundef nonnull align 4 dereferenceable(4) %3) - to label %56 unwind label %72 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %53, i8 0, i64 3, i1 false) + %54 = invoke noundef i32 @_ZN5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE9do_insertEOSt4pairIS3_S4_ERj(ptr noundef nonnull align 8 dereferenceable(49) %0, ptr noundef nonnull align 8 dereferenceable(136) %4, ptr noundef nonnull align 4 dereferenceable(4) %3) + to label %55 unwind label %71 -56: ; preds = %45 +55: ; preds = %45 call void @_ZN5Yosys8CellTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(123) %46) #32 - %57 = load i32, ptr %4, align 8, !tbaa !266 - %58 = load i8, ptr @_ZN5Yosys5RTLIL8IdString17destruct_guard_okE, align 1, !tbaa !130, !range !143, !noundef !144 - %59 = trunc nuw i8 %58 to i1 - %60 = icmp ne i32 %57, 0 - %or.cond.i.i.i = and i1 %60, %59 - br i1 %or.cond.i.i.i, label %61, label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit + %56 = load i32, ptr %4, align 8, !tbaa !266 + %57 = load i8, ptr @_ZN5Yosys5RTLIL8IdString17destruct_guard_okE, align 1, !tbaa !130, !range !143, !noundef !144 + %58 = trunc nuw i8 %57 to i1 + %59 = icmp ne i32 %56, 0 + %or.cond.i.i.i = and i1 %59, %58 + br i1 %or.cond.i.i.i, label %60, label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit -61: ; preds = %56 - %62 = sext i32 %57 to i64 - %63 = load ptr, ptr @_ZN5Yosys5RTLIL8IdString24global_refcount_storage_E, align 8, !tbaa !6 - %64 = getelementptr inbounds nuw i32, ptr %63, i64 %62 - %65 = load i32, ptr %64, align 4, !tbaa !77 - %66 = add nsw i32 %65, -1 - store i32 %66, ptr %64, align 4, !tbaa !77 - %67 = icmp sgt i32 %65, 1 - br i1 %67, label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit, label %68 +60: ; preds = %55 + %61 = sext i32 %56 to i64 + %62 = load ptr, ptr @_ZN5Yosys5RTLIL8IdString24global_refcount_storage_E, align 8, !tbaa !6 + %63 = getelementptr inbounds nuw i32, ptr %62, i64 %61 + %64 = load i32, ptr %63, align 4, !tbaa !77 + %65 = add nsw i32 %64, -1 + store i32 %65, ptr %63, align 4, !tbaa !77 + %66 = icmp sgt i32 %64, 1 + br i1 %66, label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit, label %67 -68: ; preds = %61 - invoke void @_ZN5Yosys5RTLIL8IdString14free_referenceEi(i32 noundef %57) - to label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit unwind label %69 +67: ; preds = %60 + invoke void @_ZN5Yosys5RTLIL8IdString14free_referenceEi(i32 noundef %56) + to label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit unwind label %68 -69: ; preds = %68 - %70 = landingpad { ptr, i32 } +68: ; preds = %67 + %69 = landingpad { ptr, i32 } catch ptr null - %71 = extractvalue { ptr, i32 } %70, 0 - call void @__clang_call_terminate(ptr %71) #33 + %70 = extractvalue { ptr, i32 } %69, 0 + call void @__clang_call_terminate(ptr %70) #33 unreachable -_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit: ; preds = %56, %61, %68 +_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit: ; preds = %55, %60, %67 call void @_ZN5Yosys8CellTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(123) %5) #32 call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %5) #32 call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %4) #32 - br label %74 + br label %73 -72: ; preds = %45 - %73 = landingpad { ptr, i32 } +71: ; preds = %45 + %72 = landingpad { ptr, i32 } cleanup call void @_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev(ptr noundef nonnull align 8 dereferenceable(136) %4) #32 call void @_ZN5Yosys8CellTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(123) %5) #32 call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %5) #32 call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %4) #32 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #32 - resume { ptr, i32 } %73 - -74: ; preds = %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit, %_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_hashERKS3_.exit - %.08 = phi i32 [ %55, %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit ], [ %32, %_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_hashERKS3_.exit ] - %75 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %76 = sext i32 %.08 to i64 - %77 = load ptr, ptr %75, align 8, !tbaa !270 - %78 = getelementptr inbounds nuw %"struct.Yosys::hashlib::dict::entry_t", ptr %77, i64 %76, i32 0, i32 2 + resume { ptr, i32 } %72 + +73: ; preds = %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit, %_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_hashERKS3_.exit + %.08 = phi i32 [ %54, %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit ], [ %32, %_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_hashERKS3_.exit ] + %74 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %75 = sext i32 %.08 to i64 + %76 = load ptr, ptr %74, align 8, !tbaa !270 + %77 = getelementptr inbounds nuw %"struct.Yosys::hashlib::dict::entry_t", ptr %76, i64 %75, i32 0, i32 2 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #32 - ret ptr %78 + ret ptr %77 } ; Function Attrs: inlinehint mustprogress nounwind uwtable diff --git a/bench/yosys/optimized/cellmatch.ll b/bench/yosys/optimized/cellmatch.ll index 219e3016175..a9690f17c78 100644 --- a/bench/yosys/optimized/cellmatch.ll +++ b/bench/yosys/optimized/cellmatch.ll @@ -34338,7 +34338,7 @@ _ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_ store i32 %.0.i, ptr %3, align 4, !tbaa !17 %32 = call noundef i32 @_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE9do_lookupERKS3_Rj(ptr noundef nonnull align 8 dereferenceable(49) %0, ptr noundef nonnull align 4 dereferenceable(4) %1, ptr noundef nonnull align 4 dereferenceable(4) %3) %33 = icmp slt i32 %32, 0 - br i1 %33, label %34, label %74 + br i1 %33, label %34, label %73 34: ; preds = %_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_hashERKS3_.exit call void @llvm.lifetime.start.p0(i64 136, ptr nonnull %4) #27 @@ -34380,65 +34380,64 @@ _ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_ call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %51, i8 0, i64 24, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %52, i8 0, i64 24, i1 false) %53 = getelementptr inbounds nuw i8, ptr %4, i64 128 - %54 = getelementptr inbounds nuw i8, ptr %5, i64 120 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %53, ptr noundef nonnull align 8 dereferenceable(3) %54, i64 3, i1 false) - %55 = invoke noundef i32 @_ZN5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE9do_insertEOSt4pairIS3_S4_ERj(ptr noundef nonnull align 8 dereferenceable(49) %0, ptr noundef nonnull align 8 dereferenceable(136) %4, ptr noundef nonnull align 4 dereferenceable(4) %3) - to label %56 unwind label %72 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %53, i8 0, i64 3, i1 false) + %54 = invoke noundef i32 @_ZN5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE9do_insertEOSt4pairIS3_S4_ERj(ptr noundef nonnull align 8 dereferenceable(49) %0, ptr noundef nonnull align 8 dereferenceable(136) %4, ptr noundef nonnull align 4 dereferenceable(4) %3) + to label %55 unwind label %71 -56: ; preds = %45 +55: ; preds = %45 call void @_ZN5Yosys8CellTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(123) %46) #27 - %57 = load i32, ptr %4, align 8, !tbaa !11 - %58 = load i8, ptr @_ZN5Yosys5RTLIL8IdString17destruct_guard_okE, align 1, !tbaa !19, !range !21, !noundef !22 - %59 = trunc nuw i8 %58 to i1 - %60 = icmp ne i32 %57, 0 - %or.cond.i.i.i = and i1 %60, %59 - br i1 %or.cond.i.i.i, label %61, label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit + %56 = load i32, ptr %4, align 8, !tbaa !11 + %57 = load i8, ptr @_ZN5Yosys5RTLIL8IdString17destruct_guard_okE, align 1, !tbaa !19, !range !21, !noundef !22 + %58 = trunc nuw i8 %57 to i1 + %59 = icmp ne i32 %56, 0 + %or.cond.i.i.i = and i1 %59, %58 + br i1 %or.cond.i.i.i, label %60, label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit -61: ; preds = %56 - %62 = sext i32 %57 to i64 - %63 = load ptr, ptr @_ZN5Yosys5RTLIL8IdString24global_refcount_storage_E, align 8, !tbaa !14 - %64 = getelementptr inbounds nuw i32, ptr %63, i64 %62 - %65 = load i32, ptr %64, align 4, !tbaa !17 - %66 = add nsw i32 %65, -1 - store i32 %66, ptr %64, align 4, !tbaa !17 - %67 = icmp sgt i32 %65, 1 - br i1 %67, label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit, label %68 +60: ; preds = %55 + %61 = sext i32 %56 to i64 + %62 = load ptr, ptr @_ZN5Yosys5RTLIL8IdString24global_refcount_storage_E, align 8, !tbaa !14 + %63 = getelementptr inbounds nuw i32, ptr %62, i64 %61 + %64 = load i32, ptr %63, align 4, !tbaa !17 + %65 = add nsw i32 %64, -1 + store i32 %65, ptr %63, align 4, !tbaa !17 + %66 = icmp sgt i32 %64, 1 + br i1 %66, label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit, label %67 -68: ; preds = %61 - invoke void @_ZN5Yosys5RTLIL8IdString14free_referenceEi(i32 noundef %57) - to label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit unwind label %69 +67: ; preds = %60 + invoke void @_ZN5Yosys5RTLIL8IdString14free_referenceEi(i32 noundef %56) + to label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit unwind label %68 -69: ; preds = %68 - %70 = landingpad { ptr, i32 } +68: ; preds = %67 + %69 = landingpad { ptr, i32 } catch ptr null - %71 = extractvalue { ptr, i32 } %70, 0 - call void @__clang_call_terminate(ptr %71) #28 + %70 = extractvalue { ptr, i32 } %69, 0 + call void @__clang_call_terminate(ptr %70) #28 unreachable -_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit: ; preds = %56, %61, %68 +_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit: ; preds = %55, %60, %67 call void @_ZN5Yosys8CellTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(123) %5) #27 call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %5) #27 call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %4) #27 - br label %74 + br label %73 -72: ; preds = %45 - %73 = landingpad { ptr, i32 } +71: ; preds = %45 + %72 = landingpad { ptr, i32 } cleanup call void @_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev(ptr noundef nonnull align 8 dereferenceable(136) %4) #27 call void @_ZN5Yosys8CellTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(123) %5) #27 call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %5) #27 call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %4) #27 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #27 - resume { ptr, i32 } %73 + resume { ptr, i32 } %72 -74: ; preds = %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit, %_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_hashERKS3_.exit - %.08 = phi i32 [ %55, %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit ], [ %32, %_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_hashERKS3_.exit ] - %75 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %76 = sext i32 %.08 to i64 - %77 = load ptr, ptr %75, align 8, !tbaa !123 - %78 = getelementptr inbounds nuw %"struct.Yosys::hashlib::dict::entry_t", ptr %77, i64 %76, i32 0, i32 2 +73: ; preds = %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit, %_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_hashERKS3_.exit + %.08 = phi i32 [ %54, %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit ], [ %32, %_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_hashERKS3_.exit ] + %74 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %75 = sext i32 %.08 to i64 + %76 = load ptr, ptr %74, align 8, !tbaa !123 + %77 = getelementptr inbounds nuw %"struct.Yosys::hashlib::dict::entry_t", ptr %76, i64 %75, i32 0, i32 2 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #27 - ret ptr %78 + ret ptr %77 } ; Function Attrs: inlinehint mustprogress nounwind uwtable diff --git a/bench/z3/optimized/drat_frontend.ll b/bench/z3/optimized/drat_frontend.ll index fbe0db1a0b5..b25cc7b2a47 100644 --- a/bench/z3/optimized/drat_frontend.ll +++ b/bench/z3/optimized/drat_frontend.ll @@ -287,14 +287,14 @@ define hidden noundef i32 @_Z9read_dratPKc(ptr noundef %0) local_unnamed_addr #3 store ptr @"_ZNSt17_Function_handlerIF6symboliEZ9read_dratPKcE3$_1E10_M_managerERSt9_Any_dataRKS6_St18_Manager_operation", ptr %30, align 8, !tbaa !31 %33 = getelementptr inbounds nuw i8, ptr %5, i64 48 store i64 %26, ptr %33, align 8 - %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 56 - store i64 0, ptr %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx, align 8, !tbaa !34 + %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 56 + store i64 0, ptr %.sroa.5.0..sroa_idx, align 8 %34 = getelementptr inbounds nuw i8, ptr %5, i64 64 - store ptr @"_ZNSt17_Function_handlerIFiPKcEZ9read_dratS1_E3$_0E10_M_managerERSt9_Any_dataRKS5_St18_Manager_operation", ptr %34, align 8, !tbaa !35 + store ptr @"_ZNSt17_Function_handlerIFiPKcEZ9read_dratS1_E3$_0E10_M_managerERSt9_Any_dataRKS5_St18_Manager_operation", ptr %34, align 8, !tbaa !34 %35 = getelementptr inbounds nuw i8, ptr %5, i64 72 - store ptr @"_ZNSt17_Function_handlerIFiPKcEZ9read_dratS1_E3$_0E9_M_invokeERKSt9_Any_dataOS1_", ptr %35, align 8, !tbaa !35 + store ptr @"_ZNSt17_Function_handlerIFiPKcEZ9read_dratS1_E3$_0E9_M_invokeERKSt9_Any_dataOS1_", ptr %35, align 8, !tbaa !34 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #22 - store ptr null, ptr %8, align 8, !tbaa !36 + store ptr null, ptr %8, align 8, !tbaa !35 call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %9) #22 invoke void @_ZN8reslimitC1Ev(ptr noundef nonnull align 8 dereferenceable(40) %9) to label %36 unwind label %53 @@ -311,7 +311,7 @@ define hidden noundef i32 @_Z9read_dratPKc(ptr noundef %0) local_unnamed_addr #3 38: ; preds = %37 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #22 - store ptr %11, ptr %12, align 8, !tbaa !39 + store ptr %11, ptr %12, align 8, !tbaa !38 %39 = getelementptr inbounds nuw i8, ptr %12, i64 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %39, i8 0, i64 16, i1 false) %40 = invoke noundef zeroext i1 @_ZN6dimacs11drat_parser4nextEv(ptr noundef nonnull align 8 dereferenceable(88) %5) @@ -370,8 +370,8 @@ define hidden noundef i32 @_Z9read_dratPKc(ptr noundef %0) local_unnamed_addr #3 63: ; preds = %.lr.ph, %.noexc52 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #22 - store ptr %22, ptr %13, align 8, !tbaa !41 - store ptr %7, ptr %42, align 8, !tbaa !43 + store ptr %22, ptr %13, align 8, !tbaa !40 + store ptr %7, ptr %42, align 8, !tbaa !42 %64 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6dimacslsERSoRKNS_7drat_ppE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(16) %13) to label %65 unwind label %100 @@ -388,7 +388,7 @@ define hidden noundef i32 @_Z9read_dratPKc(ptr noundef %0) local_unnamed_addr #3 _ZNK6vectorIN3sat7literalELb0EjE3endEv.exit.i: ; preds = %67 %70 = getelementptr inbounds i8, ptr %68, i64 -4 - %71 = load i32, ptr %70, align 4, !tbaa !45 + %71 = load i32, ptr %70, align 4, !tbaa !44 %72 = zext i32 %71 to i64 %73 = getelementptr inbounds nuw %"class.sat::literal", ptr %68, i64 %72 %.not16.i = icmp eq i32 %71, 0 @@ -401,28 +401,28 @@ _ZNK6vectorIN3sat7literalELb0EjE3endEv.exit.i: ; preds = %67 .lr.ph.i: ; preds = %_ZNK6vectorIN3sat7literalELb0EjE3endEv.exit.i, %87 %.017.i = phi ptr [ %88, %87 ], [ %68, %_ZNK6vectorIN3sat7literalELb0EjE3endEv.exit.i ] - %76 = load i32, ptr %.017.i, align 4, !tbaa !45 + %76 = load i32, ptr %.017.i, align 4, !tbaa !44 %77 = lshr i32 %76, 1 br label %.noexc .noexc: ; preds = %_ZNK3sat6solver8num_varsEv.exit.thread.i, %.lr.ph.i - %78 = load ptr, ptr %12, align 8, !tbaa !46 + %78 = load ptr, ptr %12, align 8, !tbaa !45 %79 = getelementptr inbounds nuw i8, ptr %78, i64 16 - %80 = load ptr, ptr %79, align 8, !tbaa !49 + %80 = load ptr, ptr %79, align 8, !tbaa !48 %81 = getelementptr inbounds nuw i8, ptr %80, i64 3296 - %82 = load ptr, ptr %81, align 8, !tbaa !80 + %82 = load ptr, ptr %81, align 8, !tbaa !79 %83 = icmp eq ptr %82, null br i1 %83, label %_ZNK3sat6solver8num_varsEv.exit.thread.i, label %_ZNK3sat6solver8num_varsEv.exit.i _ZNK3sat6solver8num_varsEv.exit.i: ; preds = %.noexc %84 = getelementptr inbounds i8, ptr %82, i64 -4 - %85 = load i32, ptr %84, align 4, !tbaa !45 + %85 = load i32, ptr %84, align 4, !tbaa !44 %.not12.i = icmp ult i32 %77, %85 br i1 %.not12.i, label %87, label %_ZNK3sat6solver8num_varsEv.exit.thread.i _ZNK3sat6solver8num_varsEv.exit.thread.i: ; preds = %_ZNK3sat6solver8num_varsEv.exit.i, %.noexc %86 = invoke noundef i32 @_ZN3sat6solver6mk_varEbb(ptr noundef nonnull align 8 dereferenceable(4264) %80, i1 noundef zeroext true, i1 noundef zeroext true) - to label %.noexc unwind label %.loopexit, !llvm.loop !83 + to label %.noexc unwind label %.loopexit, !llvm.loop !82 87: ; preds = %_ZNK3sat6solver8num_varsEv.exit.i %88 = getelementptr inbounds nuw i8, ptr %.017.i, i64 4 @@ -439,18 +439,18 @@ _ZNK3sat6solver8num_varsEv.exit.thread.i: ; preds = %_ZNK3sat6solver8num 90: ; preds = %.noexc45, %._crit_edge.i %91 = phi i32 [ %.pre.i, %.noexc45 ], [ %74, %._crit_edge.i ] - %92 = load ptr, ptr %12, align 8, !tbaa !46 + %92 = load ptr, ptr %12, align 8, !tbaa !45 %93 = load i32, ptr %23, align 8, !tbaa !18 store i32 %93, ptr %2, align 8, !tbaa !18 store i32 %91, ptr %43, align 4, !tbaa !25 - %94 = load ptr, ptr %25, align 8, !tbaa !85 - store ptr %94, ptr %44, align 8, !tbaa !85 + %94 = load ptr, ptr %25, align 8, !tbaa !84 + store ptr %94, ptr %44, align 8, !tbaa !84 invoke void @_ZN3sat4drat3addERK7svectorINS_7literalEjENS_6statusE(ptr noundef nonnull align 8 dereferenceable(664) %92, ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull %2) to label %95 unwind label %.loopexit.split-lp.loopexit 95: ; preds = %90 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) - %96 = load i8, ptr %45, align 8, !tbaa !86, !range !87, !noundef !88 + %96 = load i8, ptr %45, align 8, !tbaa !85, !range !86, !noundef !87 %97 = trunc nuw i8 %96 to i1 br i1 %97, label %98, label %102 @@ -494,7 +494,7 @@ _ZlsRSoRK10statistics.exit: ; preds = %103 to label %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit50 unwind label %120 _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit50: ; preds = %_ZlsRSoRK10statistics.exit - %106 = load ptr, ptr %46, align 8, !tbaa !89 + %106 = load ptr, ptr %46, align 8, !tbaa !88 %.not.i.i.i51 = icmp eq ptr %106, null br i1 %.not.i.i.i51, label %_ZN6vectorISt4pairIPKcdELb0EjED2Ev.exit.i, label %107 @@ -511,7 +511,7 @@ _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit50: ; preds = %_ZlsR unreachable _ZN6vectorISt4pairIPKcdELb0EjED2Ev.exit.i: ; preds = %107, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit50 - %112 = load ptr, ptr %14, align 8, !tbaa !92 + %112 = load ptr, ptr %14, align 8, !tbaa !91 %.not.i.i1.i = icmp eq ptr %112, null br i1 %.not.i.i1.i, label %118, label %113 @@ -591,7 +591,7 @@ _ZN12drup_checkerD2Ev.exit: ; preds = %_ZN6vectorIN3sat7li call void @_ZN3sat6solverD1Ev(ptr noundef nonnull align 8 dereferenceable(4264) %10) #22 call void @llvm.lifetime.end.p0(i64 4264, ptr nonnull %10) #22 %135 = getelementptr inbounds nuw i8, ptr %9, i64 32 - %136 = load ptr, ptr %135, align 8, !tbaa !95 + %136 = load ptr, ptr %135, align 8, !tbaa !94 %.not.i.i.i55 = icmp eq ptr %136, null br i1 %.not.i.i.i55, label %_ZN6vectorIP8reslimitLb0EjED2Ev.exit.i, label %137 @@ -609,7 +609,7 @@ _ZN12drup_checkerD2Ev.exit: ; preds = %_ZN6vectorIN3sat7li _ZN6vectorIP8reslimitLb0EjED2Ev.exit.i: ; preds = %137, %_ZN12drup_checkerD2Ev.exit %142 = getelementptr inbounds nuw i8, ptr %9, i64 24 - %143 = load ptr, ptr %142, align 8, !tbaa !98 + %143 = load ptr, ptr %142, align 8, !tbaa !97 %.not.i.i1.i56 = icmp eq ptr %143, null br i1 %.not.i.i1.i56, label %_ZN8reslimitD2Ev.exit, label %144 @@ -664,7 +664,7 @@ _ZNSt14_Function_baseD2Ev.exit: ; preds = %_ZN8reslimitD2Ev.ex _ZNSt14_Function_baseD2Ev.exit59: ; preds = %_ZNSt14_Function_baseD2Ev.exit, %156 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #22 %161 = getelementptr inbounds nuw i8, ptr %5, i64 80 - %162 = load ptr, ptr %161, align 8, !tbaa !101 + %162 = load ptr, ptr %161, align 8, !tbaa !100 %.not.i.i.i60 = icmp eq ptr %162, null br i1 %.not.i.i.i60, label %_ZN6vectorIcLb0EjED2Ev.exit.i, label %163 @@ -829,7 +829,7 @@ declare void @_ZNK3sat4drat18collect_statisticsER10statistics(ptr noundef nonnul ; Function Attrs: inlinehint mustprogress nounwind uwtable define linkonce_odr hidden void @_ZN10statisticsD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %3 = load ptr, ptr %2, align 8, !tbaa !89 + %3 = load ptr, ptr %2, align 8, !tbaa !88 %.not.i.i = icmp eq ptr %3, null br i1 %.not.i.i, label %_ZN6vectorISt4pairIPKcdELb0EjED2Ev.exit, label %4 @@ -846,7 +846,7 @@ define linkonce_odr hidden void @_ZN10statisticsD2Ev(ptr noundef nonnull align 8 unreachable _ZN6vectorISt4pairIPKcdELb0EjED2Ev.exit: ; preds = %1, %4 - %9 = load ptr, ptr %0, align 8, !tbaa !92 + %9 = load ptr, ptr %0, align 8, !tbaa !91 %.not.i.i1 = icmp eq ptr %9, null br i1 %.not.i.i1, label %_ZN6vectorISt4pairIPKcjELb0EjED2Ev.exit, label %10 @@ -916,7 +916,7 @@ declare void @_ZN3sat6solverD1Ev(ptr noundef nonnull align 8 dereferenceable(426 ; Function Attrs: inlinehint mustprogress nounwind uwtable define linkonce_odr hidden void @_ZN8reslimitD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %0) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 32 - %3 = load ptr, ptr %2, align 8, !tbaa !95 + %3 = load ptr, ptr %2, align 8, !tbaa !94 %.not.i.i = icmp eq ptr %3, null br i1 %.not.i.i, label %_ZN6vectorIP8reslimitLb0EjED2Ev.exit, label %4 @@ -934,7 +934,7 @@ define linkonce_odr hidden void @_ZN8reslimitD2Ev(ptr noundef nonnull align 8 de _ZN6vectorIP8reslimitLb0EjED2Ev.exit: ; preds = %1, %4 %9 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %10 = load ptr, ptr %9, align 8, !tbaa !98 + %10 = load ptr, ptr %9, align 8, !tbaa !97 %.not.i.i1 = icmp eq ptr %10, null br i1 %.not.i.i1, label %_ZN6vectorImLb0EjED2Ev.exit, label %11 @@ -960,7 +960,7 @@ declare void @_ZN10params_refD1Ev(ptr noundef nonnull align 8 dereferenceable(8) ; Function Attrs: inlinehint mustprogress nounwind uwtable define linkonce_odr hidden void @_ZN6dimacs11drat_parserD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %0) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 80 - %3 = load ptr, ptr %2, align 8, !tbaa !101 + %3 = load ptr, ptr %2, align 8, !tbaa !100 %.not.i.i = icmp eq ptr %3, null br i1 %.not.i.i, label %_ZN6vectorIcLb0EjED2Ev.exit, label %4 @@ -1047,7 +1047,7 @@ declare noundef i32 @_ZN3sat6solver6mk_varEbb(ptr noundef nonnull align 8 derefe ; Function Attrs: mustprogress uwtable define linkonce_odr hidden void @_ZN12drup_checker10check_drupERK7svectorIN3sat7literalEjE(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(8) %1) local_unnamed_addr #3 comdat align 2 { - %3 = load ptr, ptr %0, align 8, !tbaa !46 + %3 = load ptr, ptr %0, align 8, !tbaa !45 %4 = getelementptr inbounds nuw i8, ptr %3, i64 616 %5 = getelementptr inbounds nuw i8, ptr %0, i64 8 %6 = load ptr, ptr %5, align 8, !tbaa !15 @@ -1056,7 +1056,7 @@ define linkonce_odr hidden void @_ZN12drup_checker10check_drupERK7svectorIN3sat7 8: ; preds = %2 %9 = getelementptr inbounds i8, ptr %6, i64 -4 - %10 = load i32, ptr %9, align 4, !tbaa !45 + %10 = load i32, ptr %9, align 4, !tbaa !44 %11 = zext i32 %10 to i64 br label %_ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit.i.preheader @@ -1067,13 +1067,13 @@ _ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit.i.preheader: ; preds = %8, %2 _ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit.i: ; preds = %_ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit.i.preheader, %_ZN6vectorIN3sat7literalELb0EjE9push_backERKS1_.exit.i %12 = phi ptr [ %30, %_ZN6vectorIN3sat7literalELb0EjE9push_backERKS1_.exit.i ], [ %6, %_ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit.i.preheader ] %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %_ZN6vectorIN3sat7literalELb0EjE9push_backERKS1_.exit.i ], [ %indvars.iv.i.ph, %_ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit.i.preheader ] - %13 = load ptr, ptr %4, align 8, !tbaa !103 + %13 = load ptr, ptr %4, align 8, !tbaa !102 %14 = icmp eq ptr %13, null br i1 %14, label %_ZNK6vectorISt4pairIN3sat7literalEPNS1_6clauseEELb0EjE4sizeEv.exit.i, label %15 15: ; preds = %_ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit.i %16 = getelementptr inbounds i8, ptr %13, i64 -4 - %17 = load i32, ptr %16, align 4, !tbaa !45 + %17 = load i32, ptr %16, align 4, !tbaa !44 %18 = zext i32 %17 to i64 br label %_ZNK6vectorISt4pairIN3sat7literalEPNS1_6clauseEELb0EjE4sizeEv.exit.i @@ -1089,9 +1089,9 @@ _ZNK6vectorISt4pairIN3sat7literalEPNS1_6clauseEELb0EjE4sizeEv.exit.i: ; preds = 23: ; preds = %20 %24 = getelementptr inbounds i8, ptr %12, i64 -4 - %25 = load i32, ptr %24, align 4, !tbaa !45 + %25 = load i32, ptr %24, align 4, !tbaa !44 %26 = getelementptr inbounds i8, ptr %12, i64 -8 - %27 = load i32, ptr %26, align 4, !tbaa !45 + %27 = load i32, ptr %26, align 4, !tbaa !44 %28 = icmp eq i32 %25, %27 br i1 %28, label %29, label %_ZN6vectorIN3sat7literalELb0EjE9push_backERKS1_.exit.i @@ -1099,7 +1099,7 @@ _ZNK6vectorISt4pairIN3sat7literalEPNS1_6clauseEELb0EjE4sizeEv.exit.i: ; preds = tail call void @_ZN6vectorIN3sat7literalELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %5) %.pre.i.i = load ptr, ptr %5, align 8, !tbaa !15 %.phi.trans.insert.i.i = getelementptr inbounds i8, ptr %.pre.i.i, i64 -4 - %.pre2.i.i = load i32, ptr %.phi.trans.insert.i.i, align 4, !tbaa !45 + %.pre2.i.i = load i32, ptr %.phi.trans.insert.i.i, align 4, !tbaa !44 br label %_ZN6vectorIN3sat7literalELb0EjE9push_backERKS1_.exit.i _ZN6vectorIN3sat7literalELb0EjE9push_backERKS1_.exit.i: ; preds = %29, %23 @@ -1108,12 +1108,12 @@ _ZN6vectorIN3sat7literalELb0EjE9push_backERKS1_.exit.i: ; preds = %29, %23 %32 = getelementptr inbounds i8, ptr %30, i64 -4 %33 = zext i32 %31 to i64 %34 = getelementptr inbounds nuw %"class.sat::literal", ptr %30, i64 %33 - %35 = load i32, ptr %21, align 4, !tbaa !45 - store i32 %35, ptr %34, align 4, !tbaa !45 + %35 = load i32, ptr %21, align 4, !tbaa !44 + store i32 %35, ptr %34, align 4, !tbaa !44 %36 = add i32 %31, 1 - store i32 %36, ptr %32, align 4, !tbaa !45 + store i32 %36, ptr %32, align 4, !tbaa !44 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - br label %_ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit.i, !llvm.loop !104 + br label %_ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit.i, !llvm.loop !103 _ZN12drup_checker9add_unitsEv.exit: ; preds = %_ZNK6vectorISt4pairIN3sat7literalEPNS1_6clauseEELb0EjE4sizeEv.exit.i %37 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -1123,18 +1123,18 @@ _ZN12drup_checker9add_unitsEv.exit: ; preds = %_ZNK6vectorISt4pair 39: ; preds = %_ZN12drup_checker9add_unitsEv.exit %40 = getelementptr inbounds i8, ptr %38, i64 -4 - store i32 0, ptr %40, align 4, !tbaa !45 + store i32 0, ptr %40, align 4, !tbaa !44 br label %_ZN6vectorIN3sat7literalELb0EjE5resetEv.exit _ZN6vectorIN3sat7literalELb0EjE5resetEv.exit: ; preds = %_ZN12drup_checker9add_unitsEv.exit, %39 - %41 = load ptr, ptr %0, align 8, !tbaa !46 + %41 = load ptr, ptr %0, align 8, !tbaa !45 %42 = load ptr, ptr %1, align 8, !tbaa !15 %43 = icmp eq ptr %42, null br i1 %43, label %_ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit, label %44 44: ; preds = %_ZN6vectorIN3sat7literalELb0EjE5resetEv.exit %45 = getelementptr inbounds i8, ptr %42, i64 -4 - %46 = load i32, ptr %45, align 4, !tbaa !45 + %46 = load i32, ptr %45, align 4, !tbaa !44 br label %_ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit _ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit: ; preds = %_ZN6vectorIN3sat7literalELb0EjE5resetEv.exit, %44 @@ -1166,7 +1166,7 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN3s _ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit: ; preds = %2 %5 = getelementptr inbounds i8, ptr %3, i64 -4 - %6 = load i32, ptr %5, align 4, !tbaa !45 + %6 = load i32, ptr %5, align 4, !tbaa !44 %.not9.i = icmp eq i32 %6, 0 br i1 %.not9.i, label %_ZN3satlsERSoRKNS_10mk_lits_ppE.exit, label %.lr.ph.i.preheader @@ -1185,7 +1185,7 @@ _ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit: ; preds = %2 10: ; preds = %8, %.lr.ph.i %11 = getelementptr inbounds nuw %"class.sat::literal", ptr %3, i64 %indvars.iv.i - %.sroa.0.0.copyload.i = load i32, ptr %11, align 4, !tbaa !45 + %.sroa.0.0.copyload.i = load i32, ptr %11, align 4, !tbaa !44 %12 = icmp eq i32 %.sroa.0.0.copyload.i, -2 br i1 %12, label %13, label %15 @@ -1207,7 +1207,7 @@ _ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit: ; preds = %2 _ZN3satlsERSoNS_7literalE.exit.i: ; preds = %15, %13 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not = icmp eq i64 %indvars.iv.next.i, %7 - br i1 %exitcond.not, label %_ZN3satlsERSoRKNS_10mk_lits_ppE.exit, label %.lr.ph.i, !llvm.loop !105 + br i1 %exitcond.not, label %_ZN3satlsERSoRKNS_10mk_lits_ppE.exit, label %.lr.ph.i, !llvm.loop !104 _ZN3satlsERSoRKNS_10mk_lits_ppE.exit: ; preds = %_ZN3satlsERSoNS_7literalE.exit.i, %2, %_ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit ret ptr %0 @@ -1226,16 +1226,16 @@ define linkonce_odr hidden void @_ZN6vectorIN3sat7literalELb0EjE13expand_vectorE 6: ; preds = %1 %7 = tail call noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef 16) - store i32 2, ptr %7, align 4, !tbaa !45 + store i32 2, ptr %7, align 4, !tbaa !44 %8 = getelementptr inbounds nuw i8, ptr %7, i64 4 - store i32 0, ptr %8, align 4, !tbaa !45 + store i32 0, ptr %8, align 4, !tbaa !44 %9 = getelementptr inbounds nuw i8, ptr %7, i64 8 store ptr %9, ptr %0, align 8, !tbaa !15 br label %53 10: ; preds = %1 %11 = getelementptr inbounds i8, ptr %4, i64 -8 - %12 = load i32, ptr %11, align 4, !tbaa !45 + %12 = load i32, ptr %11, align 4, !tbaa !44 %13 = mul i32 %12, 3 %14 = add i32 %13, 1 %15 = lshr i32 %14, 1 @@ -1258,18 +1258,18 @@ define linkonce_odr hidden void @_ZN6vectorIN3sat7literalELb0EjE13expand_vectorE to label %23 unwind label %46 23: ; preds = %21 - store ptr getelementptr inbounds nuw inrange(-16, 32) (i8, ptr @_ZTV17default_exception, i64 16), ptr %22, align 8, !tbaa !106 + store ptr getelementptr inbounds nuw inrange(-16, 32) (i8, ptr @_ZTV17default_exception, i64 16), ptr %22, align 8, !tbaa !105 %24 = getelementptr inbounds nuw i8, ptr %22, i64 8 %25 = getelementptr inbounds nuw i8, ptr %22, i64 24 - store ptr %25, ptr %24, align 8, !tbaa !108 - %26 = load ptr, ptr %2, align 8, !tbaa !110 + store ptr %25, ptr %24, align 8, !tbaa !107 + %26 = load ptr, ptr %2, align 8, !tbaa !109 %27 = getelementptr inbounds nuw i8, ptr %2, i64 16 %28 = icmp eq ptr %26, %27 br i1 %28, label %29, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i 29: ; preds = %23 %30 = getelementptr inbounds nuw i8, ptr %2, i64 8 - %31 = load i64, ptr %30, align 8, !tbaa !112 + %31 = load i64, ptr %30, align 8, !tbaa !111 %32 = icmp ult i64 %31, 16 call void @llvm.assume(i1 %32) %33 = add nuw nsw i64 %31, 1 @@ -1277,39 +1277,39 @@ define linkonce_odr hidden void @_ZN6vectorIN3sat7literalELb0EjE13expand_vectorE br label %_ZN17default_exceptionC2EONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i: ; preds = %23 - store ptr %26, ptr %24, align 8, !tbaa !110 - %34 = load i64, ptr %27, align 8, !tbaa !34 - store i64 %34, ptr %25, align 8, !tbaa !34 + store ptr %26, ptr %24, align 8, !tbaa !109 + %34 = load i64, ptr %27, align 8, !tbaa !112 + store i64 %34, ptr %25, align 8, !tbaa !112 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %2, i64 8 - %.pre = load i64, ptr %.phi.trans.insert, align 8, !tbaa !112 + %.pre = load i64, ptr %.phi.trans.insert, align 8, !tbaa !111 br label %_ZN17default_exceptionC2EONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit _ZN17default_exceptionC2EONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit: ; preds = %29, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i %35 = phi i64 [ %31, %29 ], [ %.pre, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i ] %36 = getelementptr inbounds nuw i8, ptr %2, i64 8 %37 = getelementptr inbounds nuw i8, ptr %22, i64 16 - store i64 %35, ptr %37, align 8, !tbaa !112 - store ptr %27, ptr %2, align 8, !tbaa !110 - store i64 0, ptr %36, align 8, !tbaa !112 - store i8 0, ptr %27, align 8, !tbaa !34 + store i64 %35, ptr %37, align 8, !tbaa !111 + store ptr %27, ptr %2, align 8, !tbaa !109 + store i64 0, ptr %36, align 8, !tbaa !111 + store i8 0, ptr %27, align 8, !tbaa !112 invoke void @__cxa_throw(ptr nonnull %22, ptr nonnull @_ZTI17default_exception, ptr nonnull @_ZN17default_exceptionD2Ev) #24 to label %54 unwind label %38 38: ; preds = %_ZN17default_exceptionC2EONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit %39 = landingpad { ptr, i32 } cleanup - %40 = load ptr, ptr %2, align 8, !tbaa !110 + %40 = load ptr, ptr %2, align 8, !tbaa !109 %41 = icmp eq ptr %40, %27 br i1 %41, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i29 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i: ; preds = %38 - %42 = load i64, ptr %36, align 8, !tbaa !112 + %42 = load i64, ptr %36, align 8, !tbaa !111 %43 = icmp ult i64 %42, 16 call void @llvm.assume(i1 %43) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.thread _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i29: ; preds = %38 - %44 = load i64, ptr %27, align 8, !tbaa !34 + %44 = load i64, ptr %27, align 8, !tbaa !112 %45 = add i64 %44, 1 call void @_ZdlPvm(ptr noundef %40, i64 noundef %45) #25 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.thread @@ -1336,7 +1336,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.thread: ; preds = %51 = tail call noalias noundef ptr @_ZN6memory10reallocateEPvm(ptr noundef nonnull %11, i64 noundef %50) %52 = getelementptr inbounds nuw i8, ptr %51, i64 8 store ptr %52, ptr %0, align 8, !tbaa !15 - store i32 %15, ptr %51, align 4, !tbaa !45 + store i32 %15, ptr %51, align 4, !tbaa !44 br label %53 53: ; preds = %49, %6 @@ -1353,7 +1353,7 @@ declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr ; Function Attrs: mustprogress uwtable define linkonce_odr hidden void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef %1, ptr noundef nonnull align 1 dereferenceable(1) %2) unnamed_addr #3 comdat align 2 personality ptr @__gxx_personality_v0 { %4 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %4, ptr %0, align 8, !tbaa !108 + store ptr %4, ptr %0, align 8, !tbaa !107 %5 = icmp eq ptr %1, null br i1 %5, label %6, label %7 @@ -1385,8 +1385,8 @@ define linkonce_odr hidden void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcE _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm.exit.i: ; preds = %12 %15 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %13) #26 - store ptr %15, ptr %0, align 8, !tbaa !110 - store i64 %8, ptr %4, align 8, !tbaa !34 + store ptr %15, ptr %0, align 8, !tbaa !109 + store i64 %8, ptr %4, align 8, !tbaa !112 br label %._crit_edge.i ._crit_edge.i: ; preds = %7, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm.exit.i @@ -1397,8 +1397,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm.exit.i: ; pr ] 17: ; preds = %._crit_edge.i - %18 = load i8, ptr %1, align 1, !tbaa !34 - store i8 %18, ptr %16, align 1, !tbaa !34 + %18 = load i8, ptr %1, align 1, !tbaa !112 + store i8 %18, ptr %16, align 1, !tbaa !112 br label %20 19: ; preds = %._crit_edge.i @@ -1407,30 +1407,30 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm.exit.i: ; pr 20: ; preds = %19, %17, %._crit_edge.i %21 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 %8, ptr %21, align 8, !tbaa !112 + store i64 %8, ptr %21, align 8, !tbaa !111 %22 = getelementptr inbounds nuw i8, ptr %16, i64 %8 - store i8 0, ptr %22, align 1, !tbaa !34 + store i8 0, ptr %22, align 1, !tbaa !112 ret void } ; Function Attrs: inlinehint mustprogress nounwind uwtable define linkonce_odr hidden void @_ZN17default_exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %0) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { - store ptr getelementptr inbounds nuw inrange(-16, 32) (i8, ptr @_ZTV17default_exception, i64 16), ptr %0, align 8, !tbaa !106 + store ptr getelementptr inbounds nuw inrange(-16, 32) (i8, ptr @_ZTV17default_exception, i64 16), ptr %0, align 8, !tbaa !105 %2 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %3 = load ptr, ptr %2, align 8, !tbaa !110 + %3 = load ptr, ptr %2, align 8, !tbaa !109 %4 = getelementptr inbounds nuw i8, ptr %0, i64 24 %5 = icmp eq ptr %3, %4 br i1 %5, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i: ; preds = %1 %6 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %7 = load i64, ptr %6, align 8, !tbaa !112 + %7 = load i64, ptr %6, align 8, !tbaa !111 %8 = icmp ult i64 %7, 16 tail call void @llvm.assume(i1 %8) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i: ; preds = %1 - %9 = load i64, ptr %4, align 8, !tbaa !34 + %9 = load i64, ptr %4, align 8, !tbaa !112 %10 = add i64 %9, 1 tail call void @_ZdlPvm(ptr noundef %3, i64 noundef %10) #25 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit @@ -1500,7 +1500,7 @@ define internal noundef zeroext i1 @"_ZNSt17_Function_handlerIFiPKcEZ9read_dratS br label %"_ZNSt14_Function_base13_Base_managerIZ9read_dratPKcE3$_0E10_M_managerERSt9_Any_dataRKS5_St18_Manager_operation.exit" 5: ; preds = %3 - store ptr %1, ptr %0, align 8, !tbaa !35 + store ptr %1, ptr %0, align 8, !tbaa !34 br label %"_ZNSt14_Function_base13_Base_managerIZ9read_dratPKcE3$_0E10_M_managerERSt9_Any_dataRKS5_St18_Manager_operation.exit" 6: ; preds = %3 @@ -1518,7 +1518,7 @@ declare noundef i32 @_ZN14family_manager12mk_family_idERK6symbol(ptr noundef non ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable define internal ptr @"_ZNSt17_Function_handlerIF6symboliEZ9read_dratPKcE3$_1E9_M_invokeERKSt9_Any_dataOi"(ptr noundef nonnull readonly align 8 captures(none) dereferenceable(16) %0, ptr noundef nonnull readonly align 4 captures(none) dereferenceable(4) %1) #19 align 2 { - %.val2 = load i32, ptr %1, align 4, !tbaa !45 + %.val2 = load i32, ptr %1, align 4, !tbaa !44 %3 = icmp sgt i32 %.val2, -1 br i1 %3, label %4, label %"_ZSt10__invoke_rI6symbolRZ9read_dratPKcE3$_1JiEENSt9enable_ifIX16is_invocable_r_vIT_T0_DpT1_EES6_E4typeEOS7_DpOS8_.exit" @@ -1531,7 +1531,7 @@ define internal ptr @"_ZNSt17_Function_handlerIF6symboliEZ9read_dratPKcE3$_1E9_M _ZNK6vectorI6symbolLb0EjE4sizeEv.exit.i.i.i.i.i: ; preds = %4 %8 = getelementptr inbounds i8, ptr %6, i64 -4 - %9 = load i32, ptr %8, align 4, !tbaa !45 + %9 = load i32, ptr %8, align 4, !tbaa !44 %10 = icmp slt i32 %.val2, %9 br i1 %10, label %11, label %"_ZSt10__invoke_rI6symbolRZ9read_dratPKcE3$_1JiEENSt9enable_ifIX16is_invocable_r_vIT_T0_DpT1_EES6_E4typeEOS7_DpOS8_.exit" @@ -1559,7 +1559,7 @@ define internal noundef zeroext i1 @"_ZNSt17_Function_handlerIF6symboliEZ9read_d br label %"_ZNSt14_Function_base13_Base_managerIZ9read_dratPKcE3$_1E10_M_managerERSt9_Any_dataRKS5_St18_Manager_operation.exit" 5: ; preds = %3 - store ptr %1, ptr %0, align 8, !tbaa !35 + store ptr %1, ptr %0, align 8, !tbaa !34 br label %"_ZNSt14_Function_base13_Base_managerIZ9read_dratPKcE3$_1E10_M_managerERSt9_Any_dataRKS5_St18_Manager_operation.exit" 6: ; preds = %3 @@ -1646,89 +1646,89 @@ attributes #26 = { builtin allocsize(0) } !31 = !{!30, !6, i64 16} !32 = !{!33, !6, i64 24} !33 = !{!"_ZTSSt8functionIF6symboliEE", !30, i64 0, !6, i64 24} -!34 = !{!7, !7, i64 0} -!35 = !{!6, !6, i64 0} -!36 = !{!37, !38, i64 0} -!37 = !{!"_ZTS10params_ref", !38, i64 0} -!38 = !{!"p1 _ZTS6params", !6, i64 0} -!39 = !{!40, !40, i64 0} -!40 = !{!"p1 _ZTSN3sat4dratE", !6, i64 0} -!41 = !{!42, !42, i64 0} -!42 = !{!"p1 _ZTSN6dimacs11drat_recordE", !6, i64 0} -!43 = !{!44, !44, i64 0} -!44 = !{!"p1 _ZTSSt8functionIF6symboliEE", !6, i64 0} -!45 = !{!11, !11, i64 0} -!46 = !{!47, !40, i64 0} -!47 = !{!"_ZTS12drup_checker", !40, i64 0, !48, i64 8, !48, i64 16} -!48 = !{!"_ZTS7svectorIN3sat7literalEjE", !16, i64 0} -!49 = !{!50, !55, i64 16} -!50 = !{!"_ZTSN3sat4dratE", !51, i64 0, !52, i64 8, !55, i64 16, !56, i64 24, !14, i64 592, !14, i64 600, !68, i64 608, !71, i64 616, !74, i64 624, !76, i64 632, !78, i64 640, !78, i64 641, !78, i64 642, !78, i64 643, !78, i64 644, !79, i64 648} -!51 = !{!"p1 _ZTSN3sat9clause_ehE", !6, i64 0} -!52 = !{!"_ZTS7svectorIN3sat4drat14watched_clauseEjE", !53, i64 0} -!53 = !{!"_ZTS6vectorIN3sat4drat14watched_clauseELb0EjE", !54, i64 0} -!54 = !{!"p1 _ZTSN3sat4drat14watched_clauseE", !6, i64 0} -!55 = !{!"p1 _ZTSN3sat6solverE", !6, i64 0} -!56 = !{!"_ZTSN3sat16clause_allocatorE", !57, i64 0, !64, i64 552} -!57 = !{!"_ZTS13sat_allocator", !58, i64 0, !59, i64 8, !60, i64 16, !6, i64 24, !7, i64 32} -!58 = !{!"p1 omnipotent char", !6, i64 0} -!59 = !{!"long", !7, i64 0} -!60 = !{!"_ZTS10ptr_vectorIN13sat_allocator5chunkEE", !61, i64 0} -!61 = !{!"_ZTS6vectorIPN13sat_allocator5chunkELb0EjE", !62, i64 0} -!62 = !{!"p2 _ZTSN13sat_allocator5chunkE", !63, i64 0} -!63 = !{!"any p2 pointer", !6, i64 0} -!64 = !{!"_ZTS6id_gen", !11, i64 0, !65, i64 8} -!65 = !{!"_ZTS7svectorIjjE", !66, i64 0} -!66 = !{!"_ZTS6vectorIjLb0EjE", !67, i64 0} -!67 = !{!"p1 int", !6, i64 0} -!68 = !{!"_ZTS7svectorISt4pairIRN3sat6clauseENS1_6statusEEjE", !69, i64 0} -!69 = !{!"_ZTS6vectorISt4pairIRN3sat6clauseENS1_6statusEELb0EjE", !70, i64 0} -!70 = !{!"p1 _ZTSSt4pairIRN3sat6clauseENS0_6statusEE", !6, i64 0} -!71 = !{!"_ZTS7svectorISt4pairIN3sat7literalEPNS1_6clauseEEjE", !72, i64 0} -!72 = !{!"_ZTS6vectorISt4pairIN3sat7literalEPNS1_6clauseEELb0EjE", !73, i64 0} -!73 = !{!"p1 _ZTSSt4pairIN3sat7literalEPNS0_6clauseEE", !6, i64 0} -!74 = !{!"_ZTS6vectorI7svectorIjjELb1EjE", !75, i64 0} -!75 = !{!"p1 _ZTS7svectorIjjE", !6, i64 0} -!76 = !{!"_ZTS7svectorI5lbooljE", !77, i64 0} -!77 = !{!"_ZTS6vectorI5lboolLb0EjE", !6, i64 0} -!78 = !{!"bool", !7, i64 0} -!79 = !{!"_ZTSN3sat4drat5statsE", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12} -!80 = !{!81, !82, i64 0} -!81 = !{!"_ZTS6vectorIN3sat13justificationELb0EjE", !82, i64 0} -!82 = !{!"p1 _ZTSN3sat13justificationE", !6, i64 0} -!83 = distinct !{!83, !84} -!84 = !{!"llvm.loop.mustprogress"} -!85 = !{!19, !21, i64 8} -!86 = !{!50, !78, i64 640} -!87 = !{i8 0, i8 2} -!88 = !{} -!89 = !{!90, !91, i64 0} -!90 = !{!"_ZTS6vectorISt4pairIPKcdELb0EjE", !91, i64 0} -!91 = !{!"p1 _ZTSSt4pairIPKcdE", !6, i64 0} -!92 = !{!93, !94, i64 0} -!93 = !{!"_ZTS6vectorISt4pairIPKcjELb0EjE", !94, i64 0} -!94 = !{!"p1 _ZTSSt4pairIPKcjE", !6, i64 0} -!95 = !{!96, !97, i64 0} -!96 = !{!"_ZTS6vectorIP8reslimitLb0EjE", !97, i64 0} -!97 = !{!"p2 _ZTS8reslimit", !63, i64 0} -!98 = !{!99, !100, i64 0} -!99 = !{!"_ZTS6vectorImLb0EjE", !100, i64 0} -!100 = !{!"p1 long", !6, i64 0} -!101 = !{!102, !58, i64 0} -!102 = !{!"_ZTS6vectorIcLb0EjE", !58, i64 0} -!103 = !{!72, !73, i64 0} -!104 = distinct !{!104, !84} -!105 = distinct !{!105, !84} -!106 = !{!107, !107, i64 0} -!107 = !{!"vtable pointer", !8, i64 0} -!108 = !{!109, !58, i64 0} -!109 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !58, i64 0} -!110 = !{!111, !58, i64 0} -!111 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !109, i64 0, !59, i64 8, !7, i64 16} -!112 = !{!111, !59, i64 8} +!34 = !{!6, !6, i64 0} +!35 = !{!36, !37, i64 0} +!36 = !{!"_ZTS10params_ref", !37, i64 0} +!37 = !{!"p1 _ZTS6params", !6, i64 0} +!38 = !{!39, !39, i64 0} +!39 = !{!"p1 _ZTSN3sat4dratE", !6, i64 0} +!40 = !{!41, !41, i64 0} +!41 = !{!"p1 _ZTSN6dimacs11drat_recordE", !6, i64 0} +!42 = !{!43, !43, i64 0} +!43 = !{!"p1 _ZTSSt8functionIF6symboliEE", !6, i64 0} +!44 = !{!11, !11, i64 0} +!45 = !{!46, !39, i64 0} +!46 = !{!"_ZTS12drup_checker", !39, i64 0, !47, i64 8, !47, i64 16} +!47 = !{!"_ZTS7svectorIN3sat7literalEjE", !16, i64 0} +!48 = !{!49, !54, i64 16} +!49 = !{!"_ZTSN3sat4dratE", !50, i64 0, !51, i64 8, !54, i64 16, !55, i64 24, !14, i64 592, !14, i64 600, !67, i64 608, !70, i64 616, !73, i64 624, !75, i64 632, !77, i64 640, !77, i64 641, !77, i64 642, !77, i64 643, !77, i64 644, !78, i64 648} +!50 = !{!"p1 _ZTSN3sat9clause_ehE", !6, i64 0} +!51 = !{!"_ZTS7svectorIN3sat4drat14watched_clauseEjE", !52, i64 0} +!52 = !{!"_ZTS6vectorIN3sat4drat14watched_clauseELb0EjE", !53, i64 0} +!53 = !{!"p1 _ZTSN3sat4drat14watched_clauseE", !6, i64 0} +!54 = !{!"p1 _ZTSN3sat6solverE", !6, i64 0} +!55 = !{!"_ZTSN3sat16clause_allocatorE", !56, i64 0, !63, i64 552} +!56 = !{!"_ZTS13sat_allocator", !57, i64 0, !58, i64 8, !59, i64 16, !6, i64 24, !7, i64 32} +!57 = !{!"p1 omnipotent char", !6, i64 0} +!58 = !{!"long", !7, i64 0} +!59 = !{!"_ZTS10ptr_vectorIN13sat_allocator5chunkEE", !60, i64 0} +!60 = !{!"_ZTS6vectorIPN13sat_allocator5chunkELb0EjE", !61, i64 0} +!61 = !{!"p2 _ZTSN13sat_allocator5chunkE", !62, i64 0} +!62 = !{!"any p2 pointer", !6, i64 0} +!63 = !{!"_ZTS6id_gen", !11, i64 0, !64, i64 8} +!64 = !{!"_ZTS7svectorIjjE", !65, i64 0} +!65 = !{!"_ZTS6vectorIjLb0EjE", !66, i64 0} +!66 = !{!"p1 int", !6, i64 0} +!67 = !{!"_ZTS7svectorISt4pairIRN3sat6clauseENS1_6statusEEjE", !68, i64 0} +!68 = !{!"_ZTS6vectorISt4pairIRN3sat6clauseENS1_6statusEELb0EjE", !69, i64 0} +!69 = !{!"p1 _ZTSSt4pairIRN3sat6clauseENS0_6statusEE", !6, i64 0} +!70 = !{!"_ZTS7svectorISt4pairIN3sat7literalEPNS1_6clauseEEjE", !71, i64 0} +!71 = !{!"_ZTS6vectorISt4pairIN3sat7literalEPNS1_6clauseEELb0EjE", !72, i64 0} +!72 = !{!"p1 _ZTSSt4pairIN3sat7literalEPNS0_6clauseEE", !6, i64 0} +!73 = !{!"_ZTS6vectorI7svectorIjjELb1EjE", !74, i64 0} +!74 = !{!"p1 _ZTS7svectorIjjE", !6, i64 0} +!75 = !{!"_ZTS7svectorI5lbooljE", !76, i64 0} +!76 = !{!"_ZTS6vectorI5lboolLb0EjE", !6, i64 0} +!77 = !{!"bool", !7, i64 0} +!78 = !{!"_ZTSN3sat4drat5statsE", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12} +!79 = !{!80, !81, i64 0} +!80 = !{!"_ZTS6vectorIN3sat13justificationELb0EjE", !81, i64 0} +!81 = !{!"p1 _ZTSN3sat13justificationE", !6, i64 0} +!82 = distinct !{!82, !83} +!83 = !{!"llvm.loop.mustprogress"} +!84 = !{!19, !21, i64 8} +!85 = !{!49, !77, i64 640} +!86 = !{i8 0, i8 2} +!87 = !{} +!88 = !{!89, !90, i64 0} +!89 = !{!"_ZTS6vectorISt4pairIPKcdELb0EjE", !90, i64 0} +!90 = !{!"p1 _ZTSSt4pairIPKcdE", !6, i64 0} +!91 = !{!92, !93, i64 0} +!92 = !{!"_ZTS6vectorISt4pairIPKcjELb0EjE", !93, i64 0} +!93 = !{!"p1 _ZTSSt4pairIPKcjE", !6, i64 0} +!94 = !{!95, !96, i64 0} +!95 = !{!"_ZTS6vectorIP8reslimitLb0EjE", !96, i64 0} +!96 = !{!"p2 _ZTS8reslimit", !62, i64 0} +!97 = !{!98, !99, i64 0} +!98 = !{!"_ZTS6vectorImLb0EjE", !99, i64 0} +!99 = !{!"p1 long", !6, i64 0} +!100 = !{!101, !57, i64 0} +!101 = !{!"_ZTS6vectorIcLb0EjE", !57, i64 0} +!102 = !{!71, !72, i64 0} +!103 = distinct !{!103, !83} +!104 = distinct !{!104, !83} +!105 = !{!106, !106, i64 0} +!106 = !{!"vtable pointer", !8, i64 0} +!107 = !{!108, !57, i64 0} +!108 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !57, i64 0} +!109 = !{!110, !57, i64 0} +!110 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !108, i64 0, !58, i64 8, !7, i64 16} +!111 = !{!110, !58, i64 8} +!112 = !{!7, !7, i64 0} !113 = !{!"branch_weights", !"expected", i32 1, i32 2000} !114 = !{!115, !27, i64 0} !115 = !{!"_ZTSZ9read_dratPKcE3$_0", !27, i64 0} -!116 = !{!58, !58, i64 0} +!116 = !{!57, !57, i64 0} !117 = !{!118, !118, i64 0} !118 = !{!"p1 _ZTSSt9type_info", !6, i64 0} !119 = !{!120, !27, i64 0} diff --git a/bench/zed-rs/optimized/11rrvqb0alhs5mh4wxxke3etr.ll b/bench/zed-rs/optimized/11rrvqb0alhs5mh4wxxke3etr.ll index 201f781088f..567852727f9 100644 --- a/bench/zed-rs/optimized/11rrvqb0alhs5mh4wxxke3etr.ll +++ b/bench/zed-rs/optimized/11rrvqb0alhs5mh4wxxke3etr.ll @@ -3550,7 +3550,6 @@ define void @"_ZN84_$LT$ui..components..button..button..Button$u20$as$u20$gpui.. %14 = alloca [24 x i8], align 8 %.sroa.0135 = alloca [728 x i8], align 8 %.sroa.8146.sroa.0 = alloca [56 x i8], align 8 - %.sroa.10154 = alloca [3 x i8], align 1 %.sroa.12161 = alloca [31 x i8], align 1 %.sroa.0104.sroa.0 = alloca [728 x i8], align 8 %.sroa.0104.sroa.9.sroa.0 = alloca [56 x i8], align 8 @@ -3973,8 +3972,6 @@ _ZN2ui6styles7spacing7Spacing4rems17hbccda72e69aceb1aE.exit54: ; preds = %.noexc %.sroa.7141.0.copyload = load float, ptr %.sroa.7141.0..sroa_idx, align 4, !noalias !610 %.sroa.8146.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 736 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %.sroa.8146.sroa.0, ptr noundef nonnull align 8 dereferenceable(56) %.sroa.8146.0..sroa_idx, i64 56, i1 false) - %.sroa.10154.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 813 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.10154, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.10154.0..sroa_idx, i64 3, i1 false) %.sroa.12161.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 817 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.12161, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.12161.0..sroa_idx, i64 7, i1 false) call void @llvm.lifetime.end.p0(i64 824, ptr nonnull %7), !noalias !613 @@ -3992,7 +3989,7 @@ _ZN2ui6styles7spacing7Spacing4rems17hbccda72e69aceb1aE.exit54: ; preds = %.noexc call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(728) %.sroa.0104.sroa.0, ptr noundef nonnull align 8 dereferenceable(728) %.sroa.0135, i64 728, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %.sroa.0104.sroa.9.sroa.0, ptr noundef nonnull align 8 dereferenceable(56) %.sroa.8146.sroa.0, i64 56, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %.sroa.0104.sroa.9.sroa.7, ptr noundef nonnull align 4 dereferenceable(16) %.sroa.6176, i64 16, i1 false) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.6110.sroa.0, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.10154, i64 3, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.6110.sroa.0, i8 0, i64 3, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(31) %.sroa.6110.sroa.7.sroa.0, ptr noundef nonnull align 1 dereferenceable(31) %.sroa.12161, i64 31, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(728) %15, ptr noundef nonnull align 8 dereferenceable(728) %.sroa.0104.sroa.0, i64 728, i1 false), !alias.scope !634 %.sroa.0104.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %15, i64 728 From cf1c19a1e5b004bd236977e32e9c00c6ea8a5b5e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 7 Jun 2025 09:05:13 +0000 Subject: [PATCH 3/3] pre-commit: Remap --- .../optimized/commandlineflag_test.ll | 4 +- bench/abseil-cpp/optimized/usage_config.ll | 44 +- bench/arrow/optimized/vector_selection.ll | 8 +- bench/boost/optimized/ipvfuture_rule.ll | 78 +-- .../optimized/matches_relation_factory.ll | 316 +++++----- bench/boost/optimized/origin_form_rule.ll | 38 +- bench/bullet3/optimized/btGImpactBvh.ll | 104 ++-- .../btReducedDeformableBodyHelpers.ll | 356 +++++------ bench/bullet3/optimized/btSoftBodyHelpers.ll | 556 +++++++++--------- bench/ceres/optimized/line_search.ll | 70 +-- bench/clamav/optimized/headers.ll | 42 +- bench/cmake/optimized/cmCTest.ll | 16 +- bench/cmake/optimized/cmCTestBuildHandler.ll | 8 +- .../cmake/optimized/cmNinjaTargetGenerator.ll | 498 ++++++++-------- bench/cmake/optimized/cmProcessTools.ll | 172 +++--- bench/cmake/optimized/cmSystemTools.ll | 24 +- .../optimized/13v7qjk9d4erkgv5w97enxlzt.ll | 20 +- bench/lean4/optimized/ir_interpreter.ll | 266 ++++----- bench/llvm/optimized/Attributor.ll | 4 +- bench/llvm/optimized/BitcodeReader.ll | 4 +- bench/llvm/optimized/FastISel.ll | 432 +++++++------- .../optimized/LoopVectorizationLegality.ll | 72 +-- .../llvm/optimized/NativeInlineSiteSymbol.ll | 168 +++--- bench/llvm/optimized/ObjCARCOpts.ll | 416 ++++++------- bench/llvm/optimized/SemaLookup.ll | 166 +++--- bench/llvm/optimized/SymbolDumper.ll | 8 +- bench/mitsuba3/optimized/rectangle.ll | 176 +++--- bench/open3d/optimized/ViewTrajectory.ll | 114 ++-- bench/opencv/optimized/serialization.ll | 168 +++--- bench/openusd/optimized/unitTestDelegate.ll | 10 +- bench/openusd/optimized/xformCache.ll | 230 ++++---- .../optimized/2ov174hlbjn2zukn47jy5qk00.ll | 138 ++--- .../optimized/acx590v32pn6eo20biyujqd8g.ll | 144 ++--- bench/yosys/optimized/abc.ll | 70 +-- bench/yosys/optimized/cellmatch.ll | 70 +-- bench/z3/optimized/drat_frontend.ll | 4 +- 36 files changed, 2507 insertions(+), 2507 deletions(-) diff --git a/bench/abseil-cpp/optimized/commandlineflag_test.ll b/bench/abseil-cpp/optimized/commandlineflag_test.ll index 910c83a1e90..f16bcc3a5dc 100644 --- a/bench/abseil-cpp/optimized/commandlineflag_test.ll +++ b/bench/abseil-cpp/optimized/commandlineflag_test.ll @@ -14648,8 +14648,8 @@ _ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_st call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(160) %0, i8 0, i64 128, i1 false) %2 = getelementptr inbounds nuw i8, ptr %0, i64 128 store ptr @_ZN12_GLOBAL__N_119CommandLineFlagTest17NormalizeFileNameB5cxx11ESt17basic_string_viewIcSt11char_traitsIcEE, ptr %2, align 8 - %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 136 - store i64 0, ptr %.sroa.4.0..sroa_idx, align 8 + %.sroa.0.i.i.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 136 + store i64 0, ptr %.sroa.0.i.i.i.sroa.4.0..sroa_idx, align 8 %3 = getelementptr inbounds nuw i8, ptr %0, i64 144 store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEPS8_E10_M_managerERSt9_Any_dataRKSB_St18_Manager_operation, ptr %3, align 8, !tbaa !80 %4 = getelementptr inbounds nuw i8, ptr %0, i64 152 diff --git a/bench/abseil-cpp/optimized/usage_config.ll b/bench/abseil-cpp/optimized/usage_config.ll index d1139b7d3e1..34877e63f5d 100644 --- a/bench/abseil-cpp/optimized/usage_config.ll +++ b/bench/abseil-cpp/optimized/usage_config.ll @@ -158,47 +158,47 @@ _ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_st store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E9_M_invokeERKSt9_Any_dataOS3_, ptr %15, align 8, !tbaa !13 %16 = getelementptr inbounds nuw i8, ptr %0, i64 32 store ptr @_ZN4absl14flags_internal12_GLOBAL__N_124ContainsHelppackageFlagsESt17basic_string_viewIcSt11char_traitsIcEE, ptr %16, align 8 - %.sroa.425.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 40 - store i64 0, ptr %.sroa.425.0..sroa_idx, align 8 - %17 = getelementptr inbounds nuw i8, ptr %0, i64 48 - store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation, ptr %17, align 8, !tbaa !13 + %17 = getelementptr inbounds nuw i8, ptr %0, i64 40 + store i64 0, ptr %17, align 8 + %.sroa.0.i.i.i2.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 48 + store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation, ptr %.sroa.0.i.i.i2.sroa.4.0..sroa_idx, align 8, !tbaa !13 %18 = getelementptr inbounds nuw i8, ptr %0, i64 56 store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E9_M_invokeERKSt9_Any_dataOS3_, ptr %18, align 8, !tbaa !13 %19 = getelementptr inbounds nuw i8, ptr %0, i64 64 store ptr @_ZN4absl14flags_internal12_GLOBAL__N_124ContainsHelppackageFlagsESt17basic_string_viewIcSt11char_traitsIcEE, ptr %19, align 8 - %.sroa.427.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 72 - store i64 0, ptr %.sroa.427.0..sroa_idx, align 8 - %20 = getelementptr inbounds nuw i8, ptr %0, i64 80 - store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation, ptr %20, align 8, !tbaa !13 + %20 = getelementptr inbounds nuw i8, ptr %0, i64 72 + store i64 0, ptr %20, align 8 + %.sroa.0.i.i.i7.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 80 + store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation, ptr %.sroa.0.i.i.i7.sroa.4.0..sroa_idx, align 8, !tbaa !13 %21 = getelementptr inbounds nuw i8, ptr %0, i64 88 store ptr @_ZNSt17_Function_handlerIFbSt17basic_string_viewIcSt11char_traitsIcEEEPS4_E9_M_invokeERKSt9_Any_dataOS3_, ptr %21, align 8, !tbaa !13 %22 = getelementptr inbounds nuw i8, ptr %0, i64 96 store ptr @_ZN4absl14flags_internal12_GLOBAL__N_113VersionStringB5cxx11Ev, ptr %22, align 8 - %.sroa.429.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 104 - store i64 0, ptr %.sroa.429.0..sroa_idx, align 8 - %23 = getelementptr inbounds nuw i8, ptr %0, i64 112 - store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEPS6_E10_M_managerERSt9_Any_dataRKS9_St18_Manager_operation, ptr %23, align 8, !tbaa !13 + %23 = getelementptr inbounds nuw i8, ptr %0, i64 104 + store i64 0, ptr %23, align 8 + %.sroa.0.i.i.i12.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 112 + store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEPS6_E10_M_managerERSt9_Any_dataRKS9_St18_Manager_operation, ptr %.sroa.0.i.i.i12.sroa.4.0..sroa_idx, align 8, !tbaa !13 %24 = getelementptr inbounds nuw i8, ptr %0, i64 120 store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEvEPS6_E9_M_invokeERKSt9_Any_data, ptr %24, align 8, !tbaa !13 %25 = getelementptr inbounds nuw i8, ptr %0, i64 128 store ptr @_ZN4absl14flags_internal12_GLOBAL__N_117NormalizeFilenameB5cxx11ESt17basic_string_viewIcSt11char_traitsIcEE, ptr %25, align 8 - %.sroa.431.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 136 - store i64 0, ptr %.sroa.431.0..sroa_idx, align 8 - %26 = getelementptr inbounds nuw i8, ptr %0, i64 144 - store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEPS8_E10_M_managerERSt9_Any_dataRKSB_St18_Manager_operation, ptr %26, align 8, !tbaa !13 + %26 = getelementptr inbounds nuw i8, ptr %0, i64 136 + store i64 0, ptr %26, align 8 + %.sroa.0.i.i.i15.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 144 + store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEPS8_E10_M_managerERSt9_Any_dataRKSB_St18_Manager_operation, ptr %.sroa.0.i.i.i15.sroa.4.0..sroa_idx, align 8, !tbaa !13 %27 = getelementptr inbounds nuw i8, ptr %0, i64 152 store ptr @_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEPS8_E9_M_invokeERKSt9_Any_dataOS7_, ptr %27, align 8, !tbaa !13 br label %28 -28: ; preds = %8, %_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEEaSIPS8_EENSt9enable_ifIXsr9_CallableIT_EE5valueERS9_E4typeEOSD_.exit +28:; preds = %8, %_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_EEEaSIPS8_EENSt9enable_ifIXsr9_CallableIT_EE5valueERS9_E4typeEOSD_.exit invoke void @_ZN4absl5Mutex6UnlockEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZZN4absl14flags_internal12_GLOBAL__N_122CustomUsageConfigMutexEvE5mutex) - to label %_ZN4absl9MutexLockD2Ev.exit18 unwind label %29 + to label %_ZN4absl9MutexLockD2Ev.exit18 unwind label %30 -29: ; preds = %28 - %30 = landingpad { ptr, i32 } +30: ; preds = %28 + %31 = landingpad { ptr, i32 } catch ptr null - %31 = extractvalue { ptr, i32 } %30, 0 - tail call void @__clang_call_terminate(ptr %31) #17 + %32 = extractvalue { ptr, i32 } %31, 0 + tail call void @__clang_call_terminate(ptr %32) #17 unreachable _ZN4absl9MutexLockD2Ev.exit18: ; preds = %28 diff --git a/bench/arrow/optimized/vector_selection.ll b/bench/arrow/optimized/vector_selection.ll index 6aca761ea13..f257ef6f4fd 100644 --- a/bench/arrow/optimized/vector_selection.ll +++ b/bench/arrow/optimized/vector_selection.ll @@ -1265,8 +1265,8 @@ _ZNSt8functionIFN5arrow6ResultISt10unique_ptrINS0_7compute11KernelStateESt14defa store i8 1, ptr %48, align 2, !tbaa !70 %49 = getelementptr inbounds nuw i8, ptr %19, i64 16 store ptr @_ZN5arrow7compute8internal14OptionsWrapperINS0_13FilterOptionsEE4InitEPNS0_13KernelContextERKNS0_14KernelInitArgsE, ptr %49, align 8 - %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %19, i64 24 - store i64 0, ptr %.sroa.4.0..sroa_idx, align 8 + %.sroa.0.i.i.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %19, i64 24 + store i64 0, ptr %.sroa.0.i.i.i.sroa.4.0..sroa_idx, align 8 %50 = getelementptr inbounds nuw i8, ptr %19, i64 32 store ptr @_ZNSt17_Function_handlerIFN5arrow6ResultISt10unique_ptrINS0_7compute11KernelStateESt14default_deleteIS4_EEEEPNS3_13KernelContextERKNS3_14KernelInitArgsEEPSE_E10_M_managerERSt9_Any_dataRKSH_St18_Manager_operation, ptr %50, align 8, !tbaa !71 %51 = getelementptr inbounds nuw i8, ptr %19, i64 40 @@ -1640,8 +1640,8 @@ _ZNSt8functionIFN5arrow6ResultISt10unique_ptrINS0_7compute11KernelStateESt14defa store i8 1, ptr %189, align 2, !tbaa !70 %190 = getelementptr inbounds nuw i8, ptr %27, i64 16 store ptr @_ZN5arrow7compute8internal14OptionsWrapperINS0_11TakeOptionsEE4InitEPNS0_13KernelContextERKNS0_14KernelInitArgsE, ptr %190, align 8 - %.sroa.4197.0..sroa_idx = getelementptr inbounds nuw i8, ptr %27, i64 24 - store i64 0, ptr %.sroa.4197.0..sroa_idx, align 8 + %.sroa.0.i.i.i59.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %27, i64 24 + store i64 0, ptr %.sroa.0.i.i.i59.sroa.4.0..sroa_idx, align 8 %191 = getelementptr inbounds nuw i8, ptr %27, i64 32 store ptr @_ZNSt17_Function_handlerIFN5arrow6ResultISt10unique_ptrINS0_7compute11KernelStateESt14default_deleteIS4_EEEEPNS3_13KernelContextERKNS3_14KernelInitArgsEEPSE_E10_M_managerERSt9_Any_dataRKSH_St18_Manager_operation, ptr %191, align 8, !tbaa !71 %192 = getelementptr inbounds nuw i8, ptr %27, i64 40 diff --git a/bench/boost/optimized/ipvfuture_rule.ll b/bench/boost/optimized/ipvfuture_rule.ll index daca1872e76..5e732009fec 100644 --- a/bench/boost/optimized/ipvfuture_rule.ll +++ b/bench/boost/optimized/ipvfuture_rule.ll @@ -244,11 +244,11 @@ declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immar ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden void @_ZNK5boost4urls7grammar22implementation_defined12tuple_rule_tINS2_13ch_delim_ruleEJNS2_12token_rule_tINS2_14hexdig_chars_tEEES4_NS5_INS1_9lut_charsEEEEE5parseERPKcSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::system::result.5") align 8 %0, ptr noundef nonnull align 8 dereferenceable(40) %1, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef %3) local_unnamed_addr #1 comdat align 2 personality ptr @__gxx_personality_v0 { %5 = alloca %"class.boost::system::result.42", align 8 - %.sroa.555 = alloca [12 x i8], align 4 + %.sroa.558 = alloca [12 x i8], align 4 %6 = alloca %"class.boost::system::result.42", align 8 - %.sroa.549 = alloca [12 x i8], align 4 + %.sroa.551 = alloca [12 x i8], align 4 %7 = alloca %"class.boost::system::result.42", align 8 - %.sroa.543 = alloca [12 x i8], align 4 + %.sroa.544 = alloca [12 x i8], align 4 %8 = alloca %"class.boost::system::result.42", align 8 %.sroa.5 = alloca [12 x i8], align 4 %.sroa.9 = alloca [12 x i8], align 4 @@ -313,23 +313,23 @@ _ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5erro br i1 %16, label %21, label %17 17: ; preds = %14 - call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.543) + call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.544) %18 = icmp eq i32 %.sroa.31.96.copyload, 2 br i1 %18, label %19, label %20 19: ; preds = %17 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.543, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.27.sroa.7, i64 12, i1 false), !tbaa.struct !36 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.544, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.27.sroa.7, i64 12, i1 false), !tbaa.struct !36 br label %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i 20: ; preds = %17 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.543, i8 0, i64 12, i1 false), !alias.scope !40 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.544, i8 0, i64 12, i1 false), !alias.scope !40 br label %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i _ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i: ; preds = %20, %19 - %.sroa.042.0 = phi i32 [ %.sroa.27.sroa.3.4.copyload, %19 ], [ 0, %20 ] - %.sroa.644.0 = phi i64 [ %.sroa.27.sroa.8.4.copyload, %19 ], [ 0, %20 ] - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.9, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.543, i64 12, i1 false), !tbaa.struct !36 - call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %.sroa.543) + %.sroa.645.0 = phi i32 [ %.sroa.27.sroa.3.4.copyload, %19 ], [ 0, %20 ] + %.sroa.043.0 = phi i64 [ %.sroa.27.sroa.8.4.copyload, %19 ], [ 0, %20 ] + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.9, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.544, i64 12, i1 false), !tbaa.struct !36 + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %.sroa.544) br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit 21: ; preds = %14 @@ -348,23 +348,23 @@ _ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5erro br i1 %23, label %28, label %24 24: ; preds = %21 - call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.549) + call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.551) %25 = icmp eq i32 %.sroa.25.64.copyload, 2 br i1 %25, label %26, label %27 26: ; preds = %24 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.549, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.21.sroa.7, i64 12, i1 false), !tbaa.struct !36 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.551, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.21.sroa.7, i64 12, i1 false), !tbaa.struct !36 br label %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i 27: ; preds = %24 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.549, i8 0, i64 12, i1 false), !alias.scope !43 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.551, i8 0, i64 12, i1 false), !alias.scope !43 br label %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i _ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i: ; preds = %27, %26 - %.sroa.650.0 = phi i64 [ %.sroa.21.sroa.8.4.copyload, %26 ], [ 0, %27 ] - %.sroa.048.0 = phi i32 [ %.sroa.21.sroa.3.4.copyload, %26 ], [ 0, %27 ] - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.9, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.549, i64 12, i1 false), !tbaa.struct !36 - call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %.sroa.549) + %.sroa.652.0 = phi i64 [ %.sroa.21.sroa.8.4.copyload, %26 ], [ 0, %27 ] + %.sroa.050.0 = phi i32 [ %.sroa.21.sroa.3.4.copyload, %26 ], [ 0, %27 ] + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.9, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.551, i64 12, i1 false), !tbaa.struct !36 + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %.sroa.551) br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit 28: ; preds = %21 @@ -383,30 +383,30 @@ _ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5erro br i1 %30, label %_ZNK5boost6system10error_code6failedEv.exit.thread3.i, label %31 31: ; preds = %28 - call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.555) + call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.558) %32 = icmp eq i32 %.sroa.19.32.copyload, 2 br i1 %32, label %33, label %34 33: ; preds = %31 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.555, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.15.sroa.6, i64 12, i1 false), !tbaa.struct !36 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.558, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.15.sroa.6, i64 12, i1 false), !tbaa.struct !36 br label %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i 34: ; preds = %31 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.555, i8 0, i64 12, i1 false), !alias.scope !46 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.558, i8 0, i64 12, i1 false), !alias.scope !46 br label %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i _ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i: ; preds = %34, %33 - %.sroa.656.0 = phi i64 [ %.sroa.15.sroa.7.0.copyload, %33 ], [ 0, %34 ] - %.sroa.054.0 = phi i32 [ %.sroa.15.sroa.0.0.copyload, %33 ], [ 0, %34 ] - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.9, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.555, i64 12, i1 false), !tbaa.struct !36 - call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %.sroa.555) + %.sroa.659.0 = phi i64 [ %.sroa.15.sroa.7.0.copyload, %33 ], [ 0, %34 ] + %.sroa.057.0 = phi i32 [ %.sroa.15.sroa.0.0.copyload, %33 ], [ 0, %34 ] + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.9, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.558, i64 12, i1 false), !tbaa.struct !36 + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %.sroa.558) br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit _ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit: ; preds = %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i %.sroa.27.sroa.3.0 = phi i32 [ 0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ], [ %.sroa.27.sroa.3.4.copyload, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i ], [ %.sroa.27.sroa.3.4.copyload, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i ], [ %.sroa.27.sroa.3.4.copyload, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i ] %.sroa.04.0 = phi i32 [ %.sroa.037.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ], [ %.sroa.054.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i ], [ %.sroa.048.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i ], [ %.sroa.042.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i ] %.sroa.21.sroa.3.0 = phi i32 [ 0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ], [ %.sroa.21.sroa.3.4.copyload, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i ], [ %.sroa.21.sroa.3.4.copyload, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i ], [ 0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i ] - %.sroa.913.0 = phi i64 [ %.sroa.6.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ], [ %.sroa.656.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i ], [ %.sroa.650.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i ], [ %.sroa.644.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i ] + %.sroa.04.0 = phi i64 [ %.sroa.6.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ], [ %.sroa.656.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i ], [ %.sroa.650.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i ], [ %.sroa.043.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i ] %.sroa.15.sroa.0.0 = phi i32 [ 0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ], [ %.sroa.15.sroa.0.0.copyload, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i.i.i ], [ 0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i.i ], [ 0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i ] %35 = and i64 %.sroa.913.0, 1 %.not.i.i = icmp eq i64 %35, 0 @@ -427,24 +427,24 @@ _ZNK5boost6system10error_code6failedEv.exit.thread.i: ; preds = %36 br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE11make_resultEv.exit _ZNK5boost6system10error_code6failedEv.exit.thread3.i: ; preds = %28, %36, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit - %.sroa.15.sroa.0.068 = phi i32 [ %.sroa.15.sroa.0.0, %36 ], [ %.sroa.15.sroa.0.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit ], [ %.sroa.15.sroa.0.0.copyload, %28 ] - %.sroa.21.sroa.3.067 = phi i32 [ %.sroa.21.sroa.3.0, %36 ], [ %.sroa.21.sroa.3.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit ], [ %.sroa.21.sroa.3.4.copyload, %28 ] - %.sroa.27.sroa.3.066 = phi i32 [ %.sroa.27.sroa.3.0, %36 ], [ %.sroa.27.sroa.3.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit ], [ %.sroa.27.sroa.3.4.copyload, %28 ] - store i32 %.sroa.15.sroa.0.068, ptr %0, align 8 - %.sroa.15.sroa.6.0..sroa_idx58 = getelementptr inbounds nuw i8, ptr %0, i64 4 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.15.sroa.6.0..sroa_idx58, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.15.sroa.6, i64 12, i1 false), !tbaa.struct !49 + %.sroa.15.sroa.0.071 = phi i32 [ %.sroa.15.sroa.0.0, %36 ], [ %.sroa.15.sroa.0.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit ], [ %.sroa.15.sroa.0.0.copyload, %28 ] + %.sroa.21.sroa.3.070 = phi i32 [ %.sroa.21.sroa.3.0, %36 ], [ %.sroa.21.sroa.3.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit ], [ %.sroa.21.sroa.3.4.copyload, %28 ] + %.sroa.27.sroa.3.069 = phi i32 [ %.sroa.27.sroa.3.0, %36 ], [ %.sroa.27.sroa.3.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSH_RKSt17integral_constantImXT_EERKSJ_ImXT0_EE.exit ], [ %.sroa.27.sroa.3.4.copyload, %28 ] + store i32 %.sroa.15.sroa.0.071, ptr %0, align 8 + %.sroa.15.sroa.6.0..sroa_idx61 = getelementptr inbounds nuw i8, ptr %0, i64 4 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.15.sroa.6.0..sroa_idx61, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.15.sroa.6, i64 12, i1 false), !tbaa.struct !49 %39 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i32 %.sroa.21.sroa.3.067, ptr %39, align 8 - %.sroa.21.sroa.7.4..sroa_idx52 = getelementptr inbounds nuw i8, ptr %0, i64 20 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.21.sroa.7.4..sroa_idx52, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.21.sroa.7, i64 12, i1 false), !tbaa.struct !49 + store i32 %.sroa.21.sroa.3.070, ptr %39, align 8 + %.sroa.21.sroa.7.4..sroa_idx55 = getelementptr inbounds nuw i8, ptr %0, i64 20 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.21.sroa.7.4..sroa_idx55, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.21.sroa.7, i64 12, i1 false), !tbaa.struct !49 %40 = getelementptr inbounds nuw i8, ptr %0, i64 32 - store i32 %.sroa.27.sroa.3.066, ptr %40, align 8 - %.sroa.27.sroa.7.4..sroa_idx46 = getelementptr inbounds nuw i8, ptr %0, i64 36 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.27.sroa.7.4..sroa_idx46, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.27.sroa.7, i64 12, i1 false), !tbaa.struct !49 + store i32 %.sroa.27.sroa.3.069, ptr %40, align 8 + %.sroa.27.sroa.7.4..sroa_idx48 = getelementptr inbounds nuw i8, ptr %0, i64 36 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.27.sroa.7.4..sroa_idx48, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.27.sroa.7, i64 12, i1 false), !tbaa.struct !49 %41 = getelementptr inbounds nuw i8, ptr %0, i64 48 store i32 %.sroa.33.sroa.3.4.copyload, ptr %41, align 8 - %.sroa.33.sroa.7.4..sroa_idx39 = getelementptr inbounds nuw i8, ptr %0, i64 52 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.33.sroa.7.4..sroa_idx39, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.33.sroa.7, i64 12, i1 false), !tbaa.struct !49 + %.sroa.33.sroa.7.4..sroa_idx40 = getelementptr inbounds nuw i8, ptr %0, i64 52 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.33.sroa.7.4..sroa_idx40, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.33.sroa.7, i64 12, i1 false), !tbaa.struct !49 br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE11make_resultEv.exit _ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS4_12token_rule_tINS4_14hexdig_chars_tEEES5_NS6_INS1_9lut_charsEEEEE11make_resultEv.exit: ; preds = %_ZNK5boost6system10error_code6failedEv.exit.thread.i, %_ZNK5boost6system10error_code6failedEv.exit.thread3.i diff --git a/bench/boost/optimized/matches_relation_factory.ll b/bench/boost/optimized/matches_relation_factory.ll index 1ef6bd5aff8..a0c93761500 100644 --- a/bench/boost/optimized/matches_relation_factory.ll +++ b/bench/boost/optimized/matches_relation_factory.ll @@ -88897,7 +88897,7 @@ define linkonce_odr hidden noundef zeroext i1 @_ZN5boost13re_detail_50012perl_ma %3 = alloca %"struct.boost::re_detail_500::recursion_info", align 8 %4 = getelementptr inbounds nuw i8, ptr %0, i64 216 %5 = load ptr, ptr %4, align 8, !tbaa !1266 - br i1 %1, label %69, label %6 + br i1 %1, label %70, label %6 6: ; preds = %2 call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %3) #28 @@ -88910,7 +88910,7 @@ define linkonce_odr hidden noundef zeroext i1 @_ZN5boost13re_detail_50012perl_ma %11 = getelementptr inbounds nuw i8, ptr %0, i64 200 %12 = load ptr, ptr %11, align 8, !tbaa !1245 %.not.i.i = icmp eq ptr %10, %12 - br i1 %.not.i.i, label %18, label %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread + br i1 %.not.i.i, label %19, label %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread _ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread: ; preds = %6 %13 = getelementptr inbounds nuw i8, ptr %10, i64 72 @@ -88925,112 +88925,112 @@ _ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS store ptr %17, ptr %9, align 8, !tbaa !1243 br label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i -18: ; preds = %6 - %19 = getelementptr inbounds nuw i8, ptr %0, i64 184 - invoke void @_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE17_M_realloc_insertIJSA_EEEvN9__gnu_cxx17__normal_iteratorIPSA_SC_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr %10, ptr noundef nonnull align 8 dereferenceable(112) %3) - to label %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit unwind label %67 +19: ; preds = %6 + %20 = getelementptr inbounds nuw i8, ptr %0, i64 184 + invoke void @_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE17_M_realloc_insertIJSA_EEEvN9__gnu_cxx17__normal_iteratorIPSA_SC_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr %10, ptr noundef nonnull align 8 dereferenceable(112) %3) + to label %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit unwind label %68 -_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit: ; preds = %18 +_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit: ; preds = %19 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %3, i64 80 %.pre = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !19 %.not.i.i.i.i = icmp eq ptr %.pre, null - br i1 %.not.i.i.i.i, label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, label %20 + br i1 %.not.i.i.i.i, label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, label %21 -20: ; preds = %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit - %21 = getelementptr inbounds nuw i8, ptr %.pre, i64 8 - %22 = load atomic i64, ptr %21 acquire, align 8 - %23 = icmp eq i64 %22, 4294967297 - %24 = trunc i64 %22 to i32 - br i1 %23, label %25, label %33 +21: ; preds = %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit + %22 = getelementptr inbounds nuw i8, ptr %.pre, i64 8 + %23 = load atomic i64, ptr %22 acquire, align 8 + %24 = icmp eq i64 %23, 4294967297 + %25 = trunc i64 %23 to i32 + br i1 %24, label %26, label %34 -25: ; preds = %20 - store i32 0, ptr %21, align 8, !tbaa !28 - %26 = getelementptr inbounds nuw i8, ptr %.pre, i64 12 - store i32 0, ptr %26, align 4, !tbaa !30 - %27 = load ptr, ptr %.pre, align 8, !tbaa !31 - %28 = getelementptr inbounds nuw i8, ptr %27, i64 16 - %29 = load ptr, ptr %28, align 8 +26: ; preds = %21 + store i32 0, ptr %22, align 8, !tbaa !28 + %27 = getelementptr inbounds nuw i8, ptr %.pre, i64 12 + store i32 0, ptr %27, align 4, !tbaa !30 + %28 = load ptr, ptr %.pre, align 8, !tbaa !31 + %29 = getelementptr inbounds nuw i8, ptr %28, i64 16 + %30 = load ptr, ptr %29, align 8 call void %29(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #28 - %30 = load ptr, ptr %.pre, align 8, !tbaa !31 - %31 = getelementptr inbounds nuw i8, ptr %30, i64 24 - %32 = load ptr, ptr %31, align 8 + %31 = load ptr, ptr %.pre, align 8, !tbaa !31 + %32 = getelementptr inbounds nuw i8, ptr %31, i64 24 + %33 = load ptr, ptr %32, align 8 call void %32(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #28 br label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i -33: ; preds = %20 - %34 = load i8, ptr @__libc_single_threaded, align 1, !tbaa !12 - %.not.i.i.i.i.i = icmp eq i8 %34, 0 - br i1 %.not.i.i.i.i.i, label %37, label %35 +34: ; preds = %21 + %35 = load i8, ptr @__libc_single_threaded, align 1, !tbaa !12 + %.not.i.i.i.i.i = icmp eq i8 %35, 0 + br i1 %.not.i.i.i.i.i, label %38, label %36 -35: ; preds = %33 - %36 = add nsw i32 %24, -1 - store i32 %36, ptr %21, align 4, !tbaa !14 +36: ; preds = %34 + %37 = add nsw i32 %25, -1 + store i32 %37, ptr %22, align 4, !tbaa !14 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i -37: ; preds = %33 - %38 = atomicrmw volatile add ptr %21, i32 -1 acq_rel, align 4 +38: ; preds = %34 + %39 = atomicrmw volatile add ptr %22, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i -_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i: ; preds = %37, %35 - %.0.i.i.i.i.i.i = phi i32 [ %24, %35 ], [ %38, %37 ] - %39 = icmp eq i32 %.0.i.i.i.i.i.i, 1 - br i1 %39, label %40, label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, !prof !33 +_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i: ; preds = %38, %36 + %.0.i.i.i.i.i.i = phi i32 [ %25, %35 ], [ %39, %37 ] + %40 = icmp eq i32 %.0.i.i.i.i.i.i, 1 + br i1 %40, label %41, label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, !prof !33 -40: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i +41: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i call void @_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #28 br label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i -_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i: ; preds = %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread, %40, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i, %25, %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit - %41 = load ptr, ptr %7, align 8, !tbaa !1206 - %.not.i.i.i1.i.i = icmp eq ptr %41, null - br i1 %.not.i.i.i1.i.i, label %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKcSaINS_9sub_matchIS4_EEEEEED2Ev.exit, label %42 +_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i: ; preds = %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread, %41, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i, %26, %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKcSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit + %42 = load ptr, ptr %7, align 8, !tbaa !1206 + %.not.i.i.i1.i.i = icmp eq ptr %42, null + br i1 %.not.i.i.i1.i.i, label %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKcSaINS_9sub_matchIS4_EEEEEED2Ev.exit, label %43 -42: ; preds = %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i - %43 = getelementptr inbounds nuw i8, ptr %3, i64 32 - %44 = load ptr, ptr %43, align 8, !tbaa !1207 - %45 = ptrtoint ptr %44 to i64 - %46 = ptrtoint ptr %41 to i64 - %47 = sub i64 %45, %46 - call void @_ZdlPvm(ptr noundef nonnull %41, i64 noundef %47) #32 +43: ; preds = %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i + %44 = getelementptr inbounds nuw i8, ptr %3, i64 32 + %45 = load ptr, ptr %44, align 8, !tbaa !1207 + %46 = ptrtoint ptr %45 to i64 + %47 = ptrtoint ptr %42 to i64 + %48 = sub i64 %46, %47 + call void @_ZdlPvm(ptr noundef nonnull %42, i64 noundef %48) #32 br label %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKcSaINS_9sub_matchIS4_EEEEEED2Ev.exit -_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKcSaINS_9sub_matchIS4_EEEEEED2Ev.exit: ; preds = %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, %42 +_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKcSaINS_9sub_matchIS4_EEEEEED2Ev.exit: ; preds = %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, %43 call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %3) #28 - %48 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %49 = load i32, ptr %48, align 8, !tbaa !1302 - %50 = load ptr, ptr %9, align 8, !tbaa !43 - %51 = getelementptr inbounds i8, ptr %50, i64 -112 - store i32 %49, ptr %51, align 8, !tbaa !1299 - %52 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %53 = load ptr, ptr %52, align 8, !tbaa !1304 - %54 = getelementptr inbounds i8, ptr %50, i64 -104 - store ptr %53, ptr %54, align 8, !tbaa !1301 - %55 = getelementptr inbounds nuw i8, ptr %5, i64 104 - %56 = load ptr, ptr %9, align 8, !tbaa !43 - %57 = getelementptr inbounds i8, ptr %56, i64 -96 - %58 = call noundef nonnull align 8 dereferenceable(77) ptr @_ZN5boost13match_resultsIPKcSaINS_9sub_matchIS2_EEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(77) %57, ptr noundef nonnull align 8 dereferenceable(77) %55) - %59 = getelementptr inbounds nuw i8, ptr %0, i64 40 - %60 = load ptr, ptr %59, align 8, !tbaa !1224 - %61 = load ptr, ptr %9, align 8, !tbaa !43 - %62 = getelementptr inbounds i8, ptr %61, i64 -8 - store ptr %60, ptr %62, align 8, !tbaa !1336 - %63 = getelementptr inbounds nuw i8, ptr %5, i64 24 - %64 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %65 = load ptr, ptr %64, align 8, !tbaa !1238 - %66 = call noundef nonnull align 8 dereferenceable(77) ptr @_ZN5boost13match_resultsIPKcSaINS_9sub_matchIS2_EEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(77) %65, ptr noundef nonnull align 8 dereferenceable(77) %63) - br label %69 + %49 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %50 = load i32, ptr %49, align 8, !tbaa !1302 + %51 = load ptr, ptr %9, align 8, !tbaa !43 + %52 = getelementptr inbounds i8, ptr %51, i64 -112 + store i32 %50, ptr %52, align 8, !tbaa !1299 + %53 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %54 = load ptr, ptr %53, align 8, !tbaa !1304 + %55 = getelementptr inbounds i8, ptr %51, i64 -104 + store ptr %54, ptr %55, align 8, !tbaa !1301 + %56 = getelementptr inbounds nuw i8, ptr %5, i64 104 + %57 = load ptr, ptr %9, align 8, !tbaa !43 + %58 = getelementptr inbounds i8, ptr %57, i64 -96 + %59 = call noundef nonnull align 8 dereferenceable(77) ptr @_ZN5boost13match_resultsIPKcSaINS_9sub_matchIS2_EEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(77) %58, ptr noundef nonnull align 8 dereferenceable(77) %56) + %60 = getelementptr inbounds nuw i8, ptr %0, i64 40 + %61 = load ptr, ptr %60, align 8, !tbaa !1224 + %62 = load ptr, ptr %9, align 8, !tbaa !43 + %63 = getelementptr inbounds i8, ptr %62, i64 -8 + store ptr %61, ptr %63, align 8, !tbaa !1336 + %64 = getelementptr inbounds nuw i8, ptr %5, i64 24 + %65 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %66 = load ptr, ptr %65, align 8, !tbaa !1238 + %67 = call noundef nonnull align 8 dereferenceable(77) ptr @_ZN5boost13match_resultsIPKcSaINS_9sub_matchIS2_EEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(77) %66, ptr noundef nonnull align 8 dereferenceable(77) %64) + br label %70 -67: ; preds = %18 - %68 = landingpad { ptr, i32 } +68: ; preds = %19 + %69 = landingpad { ptr, i32 } cleanup call void @_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKcSaINS_9sub_matchIS4_EEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(112) %3) #28 call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %3) #28 - resume { ptr, i32 } %68 + resume { ptr, i32 } %69 -69: ; preds = %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKcSaINS_9sub_matchIS4_EEEEEED2Ev.exit, %2 - %70 = getelementptr inbounds nuw i8, ptr %5, i64 184 +70: ; preds = %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKcSaINS_9sub_matchIS4_EEEEEED2Ev.exit, %2 + %71 = getelementptr inbounds nuw i8, ptr %5, i64 184 call void @_ZN5boost13re_detail_50015saved_recursionINS_13match_resultsIPKcSaINS_9sub_matchIS4_EEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(184) %5) #28 - store ptr %70, ptr %4, align 8, !tbaa !1266 + store ptr %71, ptr %4, align 8, !tbaa !1266 ret i1 true } @@ -100573,7 +100573,7 @@ define linkonce_odr hidden noundef zeroext i1 @_ZN5boost13re_detail_50012perl_ma %3 = alloca %"struct.boost::re_detail_500::recursion_info.417", align 8 %4 = getelementptr inbounds nuw i8, ptr %0, i64 216 %5 = load ptr, ptr %4, align 8, !tbaa !1434 - br i1 %1, label %69, label %6 + br i1 %1, label %70, label %6 6: ; preds = %2 call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %3) #28 @@ -100586,7 +100586,7 @@ define linkonce_odr hidden noundef zeroext i1 @_ZN5boost13re_detail_50012perl_ma %11 = getelementptr inbounds nuw i8, ptr %0, i64 200 %12 = load ptr, ptr %11, align 8, !tbaa !1417 %.not.i.i = icmp eq ptr %10, %12 - br i1 %.not.i.i, label %18, label %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread + br i1 %.not.i.i, label %19, label %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread _ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread: ; preds = %6 %13 = getelementptr inbounds nuw i8, ptr %10, i64 72 @@ -100601,112 +100601,112 @@ _ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS store ptr %17, ptr %9, align 8, !tbaa !1415 br label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i -18: ; preds = %6 - %19 = getelementptr inbounds nuw i8, ptr %0, i64 184 - invoke void @_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE17_M_realloc_insertIJSA_EEEvN9__gnu_cxx17__normal_iteratorIPSA_SC_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr %10, ptr noundef nonnull align 8 dereferenceable(112) %3) - to label %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit unwind label %67 +19: ; preds = %6 + %20 = getelementptr inbounds nuw i8, ptr %0, i64 184 + invoke void @_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE17_M_realloc_insertIJSA_EEEvN9__gnu_cxx17__normal_iteratorIPSA_SC_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr %10, ptr noundef nonnull align 8 dereferenceable(112) %3) + to label %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit unwind label %68 -_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit: ; preds = %18 +_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit: ; preds = %19 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %3, i64 80 %.pre = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !19 %.not.i.i.i.i = icmp eq ptr %.pre, null - br i1 %.not.i.i.i.i, label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, label %20 + br i1 %.not.i.i.i.i, label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, label %21 -20: ; preds = %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit - %21 = getelementptr inbounds nuw i8, ptr %.pre, i64 8 - %22 = load atomic i64, ptr %21 acquire, align 8 - %23 = icmp eq i64 %22, 4294967297 - %24 = trunc i64 %22 to i32 - br i1 %23, label %25, label %33 +21: ; preds = %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit + %22 = getelementptr inbounds nuw i8, ptr %.pre, i64 8 + %23 = load atomic i64, ptr %22 acquire, align 8 + %24 = icmp eq i64 %23, 4294967297 + %25 = trunc i64 %23 to i32 + br i1 %24, label %26, label %34 -25: ; preds = %20 - store i32 0, ptr %21, align 8, !tbaa !28 - %26 = getelementptr inbounds nuw i8, ptr %.pre, i64 12 - store i32 0, ptr %26, align 4, !tbaa !30 - %27 = load ptr, ptr %.pre, align 8, !tbaa !31 - %28 = getelementptr inbounds nuw i8, ptr %27, i64 16 - %29 = load ptr, ptr %28, align 8 +26: ; preds = %21 + store i32 0, ptr %22, align 8, !tbaa !28 + %27 = getelementptr inbounds nuw i8, ptr %.pre, i64 12 + store i32 0, ptr %27, align 4, !tbaa !30 + %28 = load ptr, ptr %.pre, align 8, !tbaa !31 + %29 = getelementptr inbounds nuw i8, ptr %28, i64 16 + %30 = load ptr, ptr %29, align 8 call void %29(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #28 - %30 = load ptr, ptr %.pre, align 8, !tbaa !31 - %31 = getelementptr inbounds nuw i8, ptr %30, i64 24 - %32 = load ptr, ptr %31, align 8 + %31 = load ptr, ptr %.pre, align 8, !tbaa !31 + %32 = getelementptr inbounds nuw i8, ptr %31, i64 24 + %33 = load ptr, ptr %32, align 8 call void %32(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #28 br label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i -33: ; preds = %20 - %34 = load i8, ptr @__libc_single_threaded, align 1, !tbaa !12 - %.not.i.i.i.i.i = icmp eq i8 %34, 0 - br i1 %.not.i.i.i.i.i, label %37, label %35 +34: ; preds = %21 + %35 = load i8, ptr @__libc_single_threaded, align 1, !tbaa !12 + %.not.i.i.i.i.i = icmp eq i8 %35, 0 + br i1 %.not.i.i.i.i.i, label %38, label %36 -35: ; preds = %33 - %36 = add nsw i32 %24, -1 - store i32 %36, ptr %21, align 4, !tbaa !14 +36: ; preds = %34 + %37 = add nsw i32 %25, -1 + store i32 %37, ptr %22, align 4, !tbaa !14 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i -37: ; preds = %33 - %38 = atomicrmw volatile add ptr %21, i32 -1 acq_rel, align 4 +38: ; preds = %34 + %39 = atomicrmw volatile add ptr %22, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i -_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i: ; preds = %37, %35 - %.0.i.i.i.i.i.i = phi i32 [ %24, %35 ], [ %38, %37 ] - %39 = icmp eq i32 %.0.i.i.i.i.i.i, 1 - br i1 %39, label %40, label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, !prof !33 +_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i: ; preds = %38, %36 + %.0.i.i.i.i.i.i = phi i32 [ %25, %35 ], [ %39, %37 ] + %40 = icmp eq i32 %.0.i.i.i.i.i.i, 1 + br i1 %40, label %41, label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, !prof !33 -40: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i +41: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i call void @_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #28 br label %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i -_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i: ; preds = %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread, %40, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i, %25, %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit - %41 = load ptr, ptr %7, align 8, !tbaa !1380 - %.not.i.i.i1.i.i = icmp eq ptr %41, null - br i1 %.not.i.i.i1.i.i, label %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKwSaINS_9sub_matchIS4_EEEEEED2Ev.exit, label %42 +_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i: ; preds = %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit.thread, %41, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i, %26, %_ZNSt6vectorIN5boost13re_detail_50014recursion_infoINS0_13match_resultsIPKwSaINS0_9sub_matchIS5_EEEEEEESaISA_EE9push_backEOSA_.exit + %42 = load ptr, ptr %7, align 8, !tbaa !1380 + %.not.i.i.i1.i.i = icmp eq ptr %42, null + br i1 %.not.i.i.i1.i.i, label %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKwSaINS_9sub_matchIS4_EEEEEED2Ev.exit, label %43 -42: ; preds = %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i - %43 = getelementptr inbounds nuw i8, ptr %3, i64 32 - %44 = load ptr, ptr %43, align 8, !tbaa !1381 - %45 = ptrtoint ptr %44 to i64 - %46 = ptrtoint ptr %41 to i64 - %47 = sub i64 %45, %46 - call void @_ZdlPvm(ptr noundef nonnull %41, i64 noundef %47) #32 +43: ; preds = %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i + %44 = getelementptr inbounds nuw i8, ptr %3, i64 32 + %45 = load ptr, ptr %44, align 8, !tbaa !1381 + %46 = ptrtoint ptr %45 to i64 + %47 = ptrtoint ptr %42 to i64 + %48 = sub i64 %46, %47 + call void @_ZdlPvm(ptr noundef nonnull %42, i64 noundef %48) #32 br label %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKwSaINS_9sub_matchIS4_EEEEEED2Ev.exit -_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKwSaINS_9sub_matchIS4_EEEEEED2Ev.exit: ; preds = %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, %42 +_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKwSaINS_9sub_matchIS4_EEEEEED2Ev.exit: ; preds = %_ZNSt12__shared_ptrIN5boost13re_detail_50020named_subexpressionsELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i.i, %43 call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %3) #28 - %48 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %49 = load i32, ptr %48, align 8, !tbaa !1467 - %50 = load ptr, ptr %9, align 8, !tbaa !43 - %51 = getelementptr inbounds i8, ptr %50, i64 -112 - store i32 %49, ptr %51, align 8, !tbaa !1464 - %52 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %53 = load ptr, ptr %52, align 8, !tbaa !1469 - %54 = getelementptr inbounds i8, ptr %50, i64 -104 - store ptr %53, ptr %54, align 8, !tbaa !1466 - %55 = getelementptr inbounds nuw i8, ptr %5, i64 104 - %56 = load ptr, ptr %9, align 8, !tbaa !43 - %57 = getelementptr inbounds i8, ptr %56, i64 -96 - %58 = call noundef nonnull align 8 dereferenceable(77) ptr @_ZN5boost13match_resultsIPKwSaINS_9sub_matchIS2_EEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(77) %57, ptr noundef nonnull align 8 dereferenceable(77) %55) - %59 = getelementptr inbounds nuw i8, ptr %0, i64 40 - %60 = load ptr, ptr %59, align 8, !tbaa !1397 - %61 = load ptr, ptr %9, align 8, !tbaa !43 - %62 = getelementptr inbounds i8, ptr %61, i64 -8 - store ptr %60, ptr %62, align 8, !tbaa !1497 - %63 = getelementptr inbounds nuw i8, ptr %5, i64 24 - %64 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %65 = load ptr, ptr %64, align 8, !tbaa !1410 - %66 = call noundef nonnull align 8 dereferenceable(77) ptr @_ZN5boost13match_resultsIPKwSaINS_9sub_matchIS2_EEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(77) %65, ptr noundef nonnull align 8 dereferenceable(77) %63) - br label %69 + %49 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %50 = load i32, ptr %49, align 8, !tbaa !1467 + %51 = load ptr, ptr %9, align 8, !tbaa !43 + %52 = getelementptr inbounds i8, ptr %51, i64 -112 + store i32 %50, ptr %52, align 8, !tbaa !1464 + %53 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %54 = load ptr, ptr %53, align 8, !tbaa !1469 + %55 = getelementptr inbounds i8, ptr %51, i64 -104 + store ptr %54, ptr %55, align 8, !tbaa !1466 + %56 = getelementptr inbounds nuw i8, ptr %5, i64 104 + %57 = load ptr, ptr %9, align 8, !tbaa !43 + %58 = getelementptr inbounds i8, ptr %57, i64 -96 + %59 = call noundef nonnull align 8 dereferenceable(77) ptr @_ZN5boost13match_resultsIPKwSaINS_9sub_matchIS2_EEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(77) %58, ptr noundef nonnull align 8 dereferenceable(77) %56) + %60 = getelementptr inbounds nuw i8, ptr %0, i64 40 + %61 = load ptr, ptr %60, align 8, !tbaa !1397 + %62 = load ptr, ptr %9, align 8, !tbaa !43 + %63 = getelementptr inbounds i8, ptr %62, i64 -8 + store ptr %61, ptr %63, align 8, !tbaa !1497 + %64 = getelementptr inbounds nuw i8, ptr %5, i64 24 + %65 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %66 = load ptr, ptr %65, align 8, !tbaa !1410 + %67 = call noundef nonnull align 8 dereferenceable(77) ptr @_ZN5boost13match_resultsIPKwSaINS_9sub_matchIS2_EEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(77) %66, ptr noundef nonnull align 8 dereferenceable(77) %64) + br label %70 -67: ; preds = %18 - %68 = landingpad { ptr, i32 } +68: ; preds = %19 + %69 = landingpad { ptr, i32 } cleanup call void @_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKwSaINS_9sub_matchIS4_EEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(112) %3) #28 call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %3) #28 - resume { ptr, i32 } %68 + resume { ptr, i32 } %69 -69: ; preds = %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKwSaINS_9sub_matchIS4_EEEEEED2Ev.exit, %2 - %70 = getelementptr inbounds nuw i8, ptr %5, i64 184 +70: ; preds = %_ZN5boost13re_detail_50014recursion_infoINS_13match_resultsIPKwSaINS_9sub_matchIS4_EEEEEED2Ev.exit, %2 + %71 = getelementptr inbounds nuw i8, ptr %5, i64 184 call void @_ZN5boost13re_detail_50015saved_recursionINS_13match_resultsIPKwSaINS_9sub_matchIS4_EEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(184) %5) #28 - store ptr %70, ptr %4, align 8, !tbaa !1434 + store ptr %71, ptr %4, align 8, !tbaa !1434 ret i1 true } diff --git a/bench/boost/optimized/origin_form_rule.ll b/bench/boost/optimized/origin_form_rule.ll index 094a01b03c6..c35d41f689a 100644 --- a/bench/boost/optimized/origin_form_rule.ll +++ b/bench/boost/optimized/origin_form_rule.ll @@ -897,7 +897,7 @@ _ZN5boost6system10error_codeC2ERKS1_PKNS_15source_locationE.exit56: ; preds = %_ ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden void @_ZNK5boost4urls7grammar22implementation_defined12tuple_rule_tINS2_13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE5parseERPKcSB_(ptr dead_on_unwind noalias writable sret(%"class.boost::system::result.41") align 8 %0, ptr noundef nonnull align 8 dereferenceable(40) %1, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef %3) local_unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { %5 = alloca %"class.boost::system::result.62", align 8 - %.sroa.524 = alloca [12 x i8], align 4 + %.sroa.525 = alloca [12 x i8], align 4 %6 = alloca %"class.boost::system::result.78", align 8 %.sroa.5 = alloca [12 x i8], align 4 %.sroa.7 = alloca [12 x i8], align 4 @@ -956,28 +956,28 @@ _ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5erro br i1 %14, label %_ZNK5boost6system10error_code6failedEv.exit.thread3.i, label %15 15: ; preds = %12 - call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.524) + call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.525) %16 = icmp eq i32 %.sroa.15.32.copyload, 2 br i1 %16, label %17, label %18 17: ; preds = %15 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.524, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.11.sroa.6, i64 12, i1 false), !tbaa.struct !105 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.525, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.11.sroa.6, i64 12, i1 false), !tbaa.struct !105 br label %_ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i 18: ; preds = %15 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.524, i8 0, i64 12, i1 false), !alias.scope !109 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.525, i8 0, i64 12, i1 false), !alias.scope !109 br label %_ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i _ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i: ; preds = %18, %17 - %.sroa.625.0 = phi i64 [ %.sroa.11.sroa.7.0.copyload, %17 ], [ 0, %18 ] - %.sroa.023.0 = phi i32 [ %.sroa.11.sroa.0.0.copyload, %17 ], [ 0, %18 ] - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.7, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.524, i64 12, i1 false), !tbaa.struct !105 - call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %.sroa.524) + %.sroa.626.0 = phi i64 [ %.sroa.11.sroa.7.0.copyload, %17 ], [ 0, %18 ] + %.sroa.024.0 = phi i32 [ %.sroa.11.sroa.0.0.copyload, %17 ], [ 0, %18 ] + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.7, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.525, i64 12, i1 false), !tbaa.struct !105 + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %.sroa.525) br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSG_RKSt17integral_constantImXT_EERKSI_ImXT0_EE.exit _ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSG_RKSt17integral_constantImXT_EERKSI_ImXT0_EE.exit: ; preds = %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i, %_ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i - %.sroa.04.0 = phi i32 [ %.sroa.023.0, %_ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i ], [ %.sroa.019.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ] - %.sroa.79.0 = phi i64 [ %.sroa.625.0, %_ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i ], [ %.sroa.6.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ] + %.sroa.04.0 = phi i32 [ %.sroa.024.0, %_ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i ], [ %.sroa.019.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ] + %.sroa.79.0 = phi i64 [ %.sroa.626.0, %_ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i ], [ %.sroa.6.0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ] %.sroa.11.sroa.7.0 = phi i64 [ %.sroa.11.sroa.7.0.copyload, %_ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i ], [ 0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ] %.sroa.11.sroa.0.0 = phi i32 [ %.sroa.11.sroa.0.0.copyload, %_ZNKR5boost6system6resultINS_4urls15pct_string_viewENS0_10error_codeEE5errorEv.exit.i.i.i.i ], [ 0, %_ZNKR5boost6system6resultINS_4core17basic_string_viewIcEENS0_10error_codeEE5errorEv.exit.i.i ] %19 = and i64 %.sroa.79.0, 1 @@ -999,17 +999,17 @@ _ZNK5boost6system10error_code6failedEv.exit.thread.i: ; preds = %20 br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE11make_resultEv.exit _ZNK5boost6system10error_code6failedEv.exit.thread3.i: ; preds = %12, %20, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSG_RKSt17integral_constantImXT_EERKSI_ImXT0_EE.exit - %.sroa.11.sroa.0.037 = phi i32 [ %.sroa.11.sroa.0.0, %20 ], [ %.sroa.11.sroa.0.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSG_RKSt17integral_constantImXT_EERKSI_ImXT0_EE.exit ], [ %.sroa.11.sroa.0.0.copyload, %12 ] - %.sroa.11.sroa.7.036 = phi i64 [ %.sroa.11.sroa.7.0, %20 ], [ %.sroa.11.sroa.7.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSG_RKSt17integral_constantImXT_EERKSI_ImXT0_EE.exit ], [ %.sroa.11.sroa.7.0.copyload, %12 ] - store i32 %.sroa.11.sroa.0.037, ptr %0, align 8 - %.sroa.11.sroa.6.0..sroa_idx27 = getelementptr inbounds nuw i8, ptr %0, i64 4 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.11.sroa.6.0..sroa_idx27, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.11.sroa.6, i64 12, i1 false) - %.sroa.11.sroa.7.0..sroa_idx28 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i64 %.sroa.11.sroa.7.036, ptr %.sroa.11.sroa.7.0..sroa_idx28, align 8 + %.sroa.11.sroa.0.038 = phi i32 [ %.sroa.11.sroa.0.0, %20 ], [ %.sroa.11.sroa.0.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSG_RKSt17integral_constantImXT_EERKSI_ImXT0_EE.exit ], [ %.sroa.11.sroa.0.0.copyload, %12 ] + %.sroa.11.sroa.7.037 = phi i64 [ %.sroa.11.sroa.7.0, %20 ], [ %.sroa.11.sroa.7.0, %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE5applyILm0ELm0EEENSt9enable_ifIXltT_plLi1EsZT1_EvE4typeERPKcSG_RKSt17integral_constantImXT_EERKSI_ImXT0_EE.exit ], [ %.sroa.11.sroa.7.0.copyload, %12 ] + store i32 %.sroa.11.sroa.0.038, ptr %0, align 8 + %.sroa.11.sroa.6.0..sroa_idx28 = getelementptr inbounds nuw i8, ptr %0, i64 4 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.11.sroa.6.0..sroa_idx28, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.11.sroa.6, i64 12, i1 false) + %.sroa.11.sroa.7.0..sroa_idx29 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store i64 %.sroa.11.sroa.7.037, ptr %.sroa.11.sroa.7.0..sroa_idx29, align 8 %23 = getelementptr inbounds nuw i8, ptr %0, i64 24 store i32 %.sroa.17.sroa.3.4.copyload, ptr %23, align 8 - %.sroa.17.sroa.7.4..sroa_idx21 = getelementptr inbounds nuw i8, ptr %0, i64 28 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.17.sroa.7.4..sroa_idx21, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.17.sroa.7, i64 12, i1 false), !tbaa.struct !112 + %.sroa.17.sroa.7.4..sroa_idx22 = getelementptr inbounds nuw i8, ptr %0, i64 28 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.17.sroa.7.4..sroa_idx22, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.17.sroa.7, i64 12, i1 false), !tbaa.struct !112 br label %_ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE11make_resultEv.exit _ZN5boost4urls7grammar6detail14parse_sequenceILb1ENS1_22implementation_defined13ch_delim_ruleEJNS0_22implementation_defined18pct_encoded_rule_tINS1_9lut_charsEEEEE11make_resultEv.exit: ; preds = %_ZNK5boost6system10error_code6failedEv.exit.thread.i, %_ZNK5boost6system10error_code6failedEv.exit.thread3.i diff --git a/bench/bullet3/optimized/btGImpactBvh.ll b/bench/bullet3/optimized/btGImpactBvh.ll index 22b528d9b99..26b56df9541 100644 --- a/bench/bullet3/optimized/btGImpactBvh.ll +++ b/bench/bullet3/optimized/btGImpactBvh.ll @@ -662,7 +662,7 @@ define dso_local void @_ZN12btGImpactBvh8buildSetEv(ptr noundef nonnull align 8 %10 = getelementptr inbounds nuw i8, ptr %9, i64 24 %11 = load ptr, ptr %10, align 8 %12 = invoke noundef i32 %11(ptr noundef nonnull align 8 dereferenceable(8) %8) - to label %13 unwind label %33 + to label %13 unwind label %36 13: ; preds = %1 %14 = icmp sgt i32 %12, 0 @@ -672,7 +672,7 @@ define dso_local void @_ZN12btGImpactBvh8buildSetEv(ptr noundef nonnull align 8 %16 = zext nneg i32 %12 to i64 %17 = mul nuw nsw i64 %16, 36 %18 = invoke noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef %17, i32 noundef 16) - to label %_ZN20btAlignedObjectArrayI12GIM_BVH_DATAE8allocateEi.exit.i.i unwind label %35 + to label %_ZN20btAlignedObjectArrayI12GIM_BVH_DATAE8allocateEi.exit.i.i unwind label %38 _ZN20btAlignedObjectArrayI12GIM_BVH_DATAE8allocateEi.exit.i.i: ; preds = %15 %.pre.i = load i32, ptr %5, align 4, !tbaa !39 @@ -709,7 +709,7 @@ _ZNK20btAlignedObjectArrayI12GIM_BVH_DATAE4copyEiiPS0_.exit.i.i: ; preds = %20, 30: ; preds = %_ZNK20btAlignedObjectArrayI12GIM_BVH_DATAE4copyEiiPS0_.exit.i.i invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %.pre.pre) - to label %.lr.ph.i unwind label %35 + to label %.lr.ph.i unwind label %38 .lr.ph.i: ; preds = %_ZNK20btAlignedObjectArrayI12GIM_BVH_DATAE4copyEiiPS0_.exit.i.i, %30 store i8 1, ptr %3, align 8, !tbaa !52 @@ -735,72 +735,72 @@ _ZNK20btAlignedObjectArrayI12GIM_BVH_DATAE4copyEiiPS0_.exit.i.i: ; preds = %20, %.pre16 = load ptr, ptr %4, align 8, !tbaa !4 br label %.lr.ph -._crit_edge: ; preds = %46, %.loopexit +._crit_edge: ; preds = %49, %.loopexit invoke void @_ZN9btBvhTree10build_treeER18GIM_BVH_DATA_ARRAY(ptr noundef nonnull align 8 dereferenceable(40) %0, ptr noundef nonnull align 8 dereferenceable(25) %2) - to label %52 unwind label %33 + to label %52 unwind label %36 -33: ; preds = %._crit_edge, %1 - %34 = landingpad { ptr, i32 } +36: ; preds = %._crit_edge, %1 + %37 = landingpad { ptr, i32 } cleanup - br label %60 + br label %63 -35: ; preds = %30, %15 - %36 = landingpad { ptr, i32 } +38: ; preds = %30, %15 + %39 = landingpad { ptr, i32 } cleanup br label %60 -37: ; preds = %.lr.ph - %38 = landingpad { ptr, i32 } +40: ; preds = %.lr.ph + %41 = landingpad { ptr, i32 } cleanup - br label %60 + br label %63 -.lr.ph: ; preds = %.lr.ph.preheader, %46 - %39 = phi ptr [ %.pre16, %.lr.ph.preheader ], [ %47, %46 ] +.lr.ph: ; preds = %.lr.ph.preheader, %49 + %42 = phi ptr [ %.pre16, %.lr.ph.preheader ], [ %50, %46 ] %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %46 ] - %40 = load ptr, ptr %7, align 8, !tbaa !46 - %41 = getelementptr inbounds nuw %struct.GIM_BVH_DATA, ptr %39, i64 %indvars.iv - %42 = load ptr, ptr %40, align 8, !tbaa !49 - %43 = getelementptr inbounds nuw i8, ptr %42, i64 32 - %44 = load ptr, ptr %43, align 8 - %45 = trunc nuw nsw i64 %indvars.iv to i32 - invoke void %44(ptr noundef nonnull align 8 dereferenceable(8) %40, i32 noundef %45, ptr noundef nonnull align 4 dereferenceable(32) %41) - to label %46 unwind label %37 - -46: ; preds = %.lr.ph - %47 = load ptr, ptr %4, align 8, !tbaa !4 - %48 = getelementptr inbounds nuw %struct.GIM_BVH_DATA, ptr %47, i64 %indvars.iv, i32 1 - store i32 %45, ptr %48, align 4, !tbaa !21 + %43 = load ptr, ptr %7, align 8, !tbaa !46 + %44 = getelementptr inbounds nuw %struct.GIM_BVH_DATA, ptr %42, i64 %indvars.iv + %45 = load ptr, ptr %43, align 8, !tbaa !49 + %46 = getelementptr inbounds nuw i8, ptr %45, i64 32 + %47 = load ptr, ptr %46, align 8 + %48 = trunc nuw nsw i64 %indvars.iv to i32 + invoke void %44(ptr noundef nonnull align 8 dereferenceable(8) %43, i32 noundef %48, ptr noundef nonnull align 4 dereferenceable(32) %44) + to label %46 unwind label %40 + +49: ; preds = %.lr.ph + %50 = load ptr, ptr %4, align 8, !tbaa !4 + %51 = getelementptr inbounds nuw %struct.GIM_BVH_DATA, ptr %50, i64 %indvars.iv, i32 1 + store i32 %48, ptr %51, align 4, !tbaa !21 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %49 = load i32, ptr %5, align 4, !tbaa !39 - %50 = sext i32 %49 to i64 - %51 = icmp slt i64 %indvars.iv.next, %50 - br i1 %51, label %.lr.ph, label %._crit_edge, !llvm.loop !56 - -52: ; preds = %._crit_edge - %53 = load ptr, ptr %4, align 8, !tbaa !4 - %.not.i.i.i12 = icmp ne ptr %53, null - %54 = load i8, ptr %3, align 8, !range !43 - %55 = trunc nuw i8 %54 to i1 - %or.cond.i.i13 = select i1 %.not.i.i.i12, i1 %55, i1 false - br i1 %or.cond.i.i13, label %56, label %_ZN20btAlignedObjectArrayI12GIM_BVH_DATAED2Ev.exit - -56: ; preds = %52 - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %53) - to label %_ZN20btAlignedObjectArrayI12GIM_BVH_DATAED2Ev.exit unwind label %57 - -57: ; preds = %56 - %58 = landingpad { ptr, i32 } + %52 = load i32, ptr %5, align 4, !tbaa !39 + %53 = sext i32 %52 to i64 + %54 = icmp slt i64 %indvars.iv.next, %53 + br i1 %54, label %.lr.ph, label %._crit_edge, !llvm.loop !56 + +55: ; preds = %._crit_edge + %56 = load ptr, ptr %4, align 8, !tbaa !4 + %.not.i.i.i12 = icmp ne ptr %56, null + %57 = load i8, ptr %3, align 8, !range !43 + %58 = trunc nuw i8 %57 to i1 + %or.cond.i.i13 = select i1 %.not.i.i.i12, i1 %58, i1 false + br i1 %or.cond.i.i13, label %59, label %_ZN20btAlignedObjectArrayI12GIM_BVH_DATAED2Ev.exit + +59: ; preds = %55 + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %56) + to label %_ZN20btAlignedObjectArrayI12GIM_BVH_DATAED2Ev.exit unwind label %60 + +60: ; preds = %59 + %61 = landingpad { ptr, i32 } catch ptr null - %59 = extractvalue { ptr, i32 } %58, 0 - call void @__clang_call_terminate(ptr %59) #15 + %62 = extractvalue { ptr, i32 } %61, 0 + call void @__clang_call_terminate(ptr %62) #15 unreachable -_ZN20btAlignedObjectArrayI12GIM_BVH_DATAED2Ev.exit: ; preds = %52, %56 +_ZN20btAlignedObjectArrayI12GIM_BVH_DATAED2Ev.exit: ; preds = %55, %59 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #14 ret void -60: ; preds = %37, %35, %33 - %.pn = phi { ptr, i32 } [ %38, %37 ], [ %34, %33 ], [ %36, %35 ] +63: ; preds = %40, %38, %36 + %.pn = phi { ptr, i32 } [ %41, %37 ], [ %37, %33 ], [ %39, %35 ] call void @_ZN20btAlignedObjectArrayI12GIM_BVH_DATAED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %2) #14 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #14 resume { ptr, i32 } %.pn diff --git a/bench/bullet3/optimized/btReducedDeformableBodyHelpers.ll b/bench/bullet3/optimized/btReducedDeformableBodyHelpers.ll index 7d5d11ea2e8..193c490c9d4 100644 --- a/bench/bullet3/optimized/btReducedDeformableBodyHelpers.ll +++ b/bench/bullet3/optimized/btReducedDeformableBodyHelpers.ll @@ -424,7 +424,7 @@ _ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc.exit.i: ; preds = %.noexc101, %79 100: ; preds = %27, %2 %101 = landingpad { ptr, i32 } cleanup - br label %536 + br label %542 .loopexit229: ; preds = %82, %.noexc101, %_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc.exit.i %lpad.loopexit = landingpad { ptr, i32 } @@ -1061,7 +1061,7 @@ _ZN17btCollisionObjectnwEm.exit: ; preds = %306 invoke void @_ZN17btSoftBodyHelpers21generateBoundaryFacesEP10btSoftBody(ptr noundef nonnull %307) to label %366 unwind label %311 -311: ; preds = %481, %.loopexit, %306, %366, %._crit_edge +311: ; preds = %487, %.loopexit, %306, %366, %._crit_edge %312 = landingpad { ptr, i32 } cleanup br label %_ZN17btCollisionObjectdlEPv.exit @@ -1182,7 +1182,7 @@ _ZN17btCollisionObjectnwEm.exit: ; preds = %306 %379 = sext i32 %369 to i64 %380 = mul nsw i64 %379, 152 %381 = invoke noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef %380, i32 noundef 16) - to label %.noexc166 unwind label %489 + to label %.noexc166 unwind label %495 .noexc166: ; preds = %378 %.pre.i157 = load i32, ptr %370, align 4, !tbaa !94 @@ -1249,7 +1249,7 @@ _ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i: ; 413: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %409) - to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i unwind label %489 + to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i unwind label %495 _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i: ; preds = %413, %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i store i8 1, ptr %410, align 8, !tbaa !101 @@ -1277,109 +1277,109 @@ _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i: br label %.loopexit227 .loopexit227: ; preds = %.loopexit227.loopexit, %367 - %419 = phi i32 [ %.pre, %.loopexit227.loopexit ], [ %369, %367 ] + %422 = phi i32 [ %.pre, %.loopexit227.loopexit ], [ %369, %367 ] store i32 %369, ptr %370, align 4, !tbaa !94 %420 = getelementptr inbounds nuw i8, ptr %307, i64 1156 %421 = load i32, ptr %420, align 4, !tbaa !94 %422 = icmp sgt i32 %419, %421 br i1 %422, label %423, label %.loopexit -423: ; preds = %.loopexit227 +423:; preds = %.loopexit227 %424 = getelementptr inbounds nuw i8, ptr %307, i64 1160 %425 = load i32, ptr %424, align 8, !tbaa !98 %426 = icmp slt i32 %425, %419 br i1 %426, label %427, label %.lr.ph.i168 -427: ; preds = %423 - %.not.i.i.i173 = icmp eq i32 %419, 0 +427:; preds = %423 + %.not.i.i.i173 = icmp eq i32 %422, 0 br i1 %.not.i.i.i173, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175, label %428 -428: ; preds = %427 +428:; preds = %427 %429 = sext i32 %419 to i64 %430 = mul nsw i64 %429, 152 %431 = invoke noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef %430, i32 noundef 16) to label %.noexc186 unwind label %491 -.noexc186: ; preds = %428 +.noexc186:; preds = %428 %.pre.i174 = load i32, ptr %420, align 4, !tbaa !94 br label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175 _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175: ; preds = %.noexc186, %427 - %432 = phi i32 [ %.pre.i174, %.noexc186 ], [ %421, %427 ] + %435 = phi i32 [ %.pre.i174, %.noexc186 ], [ %421, %427 ] %.0.i.i.i176 = phi ptr [ %431, %.noexc186 ], [ null, %427 ] - %433 = icmp sgt i32 %432, 0 - br i1 %433, label %.lr.ph.i.i.i181, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 + %436 = icmp sgt i32 %435, 0 + br i1 %436, label %.lr.ph.i.i.i181, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 .lr.ph.i.i.i181: ; preds = %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175 - %434 = getelementptr inbounds nuw i8, ptr %307, i64 1168 - %wide.trip.count.i.i.i182 = zext nneg i32 %432 to i64 - br label %435 + %437 = getelementptr inbounds nuw i8, ptr %307, i64 1168 + %wide.trip.count.i.i.i182 = zext nneg i32 %435 to i64 + br label %438 -435: ; preds = %435, %.lr.ph.i.i.i181 +438: ; preds = %438, %.lr.ph.i.i.i181 %indvars.iv.i.i.i183 = phi i64 [ 0, %.lr.ph.i.i.i181 ], [ %indvars.iv.next.i.i.i184, %435 ] - %436 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %.0.i.i.i176, i64 %indvars.iv.i.i.i183 - %437 = load ptr, ptr %434, align 8, !tbaa !99 - %438 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %437, i64 %indvars.iv.i.i.i183 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %436, ptr noundef nonnull align 4 dereferenceable(152) %438, i64 16, i1 false), !tbaa.struct !63 - %439 = getelementptr inbounds nuw i8, ptr %438, i64 16 - %440 = getelementptr inbounds nuw i8, ptr %436, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %440, ptr noundef nonnull align 4 dereferenceable(16) %439, i64 16, i1 false), !tbaa.struct !63 - %441 = getelementptr inbounds nuw i8, ptr %438, i64 32 - %442 = getelementptr inbounds nuw i8, ptr %436, i64 32 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %442, ptr noundef nonnull align 4 dereferenceable(16) %441, i64 16, i1 false), !tbaa.struct !63 - %443 = getelementptr inbounds nuw i8, ptr %436, i64 48 - %444 = getelementptr inbounds nuw i8, ptr %438, i64 48 - %445 = load i64, ptr %444, align 4 - store i64 %445, ptr %443, align 4 - %446 = getelementptr inbounds nuw i8, ptr %436, i64 56 - %447 = getelementptr inbounds nuw i8, ptr %438, i64 56 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %446, ptr noundef nonnull align 4 dereferenceable(48) %447, i64 16, i1 false), !tbaa.struct !63 - %448 = getelementptr inbounds nuw i8, ptr %438, i64 72 - %449 = getelementptr inbounds nuw i8, ptr %436, i64 72 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %449, ptr noundef nonnull align 4 dereferenceable(16) %448, i64 16, i1 false), !tbaa.struct !63 - %450 = getelementptr inbounds nuw i8, ptr %438, i64 88 - %451 = getelementptr inbounds nuw i8, ptr %436, i64 88 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %451, ptr noundef nonnull align 4 dereferenceable(16) %450, i64 16, i1 false), !tbaa.struct !63 - %452 = getelementptr inbounds nuw i8, ptr %436, i64 104 - %453 = getelementptr inbounds nuw i8, ptr %438, i64 104 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %452, ptr noundef nonnull align 4 dereferenceable(48) %453, i64 16, i1 false), !tbaa.struct !63 - %454 = getelementptr inbounds nuw i8, ptr %438, i64 120 - %455 = getelementptr inbounds nuw i8, ptr %436, i64 120 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %455, ptr noundef nonnull align 4 dereferenceable(16) %454, i64 16, i1 false), !tbaa.struct !63 - %456 = getelementptr inbounds nuw i8, ptr %438, i64 136 - %457 = getelementptr inbounds nuw i8, ptr %436, i64 136 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %457, ptr noundef nonnull align 4 dereferenceable(16) %456, i64 16, i1 false), !tbaa.struct !63 + %439 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %.0.i.i.i176, i64 %indvars.iv.i.i.i183 + %440 = load ptr, ptr %437, align 8, !tbaa !99 + %441 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %440, i64 %indvars.iv.i.i.i183 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %439, ptr noundef nonnull align 4 dereferenceable(152) %441, i64 16, i1 false), !tbaa.struct !63 + %442 = getelementptr inbounds nuw i8, ptr %441, i64 16 + %443 = getelementptr inbounds nuw i8, ptr %439, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %443, ptr noundef nonnull align 4 dereferenceable(16) %442, i64 16, i1 false), !tbaa.struct !63 + %444 = getelementptr inbounds nuw i8, ptr %441, i64 32 + %445 = getelementptr inbounds nuw i8, ptr %439, i64 32 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %445, ptr noundef nonnull align 4 dereferenceable(16) %444, i64 16, i1 false), !tbaa.struct !63 + %446 = getelementptr inbounds nuw i8, ptr %439, i64 48 + %447 = getelementptr inbounds nuw i8, ptr %441, i64 48 + %448 = load i64, ptr %447, align 4 + store i64 %448, ptr %446, align 4 + %449 = getelementptr inbounds nuw i8, ptr %439, i64 56 + %450 = getelementptr inbounds nuw i8, ptr %441, i64 56 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %449, ptr noundef nonnull align 4 dereferenceable(48) %450, i64 16, i1 false), !tbaa.struct !63 + %451 = getelementptr inbounds nuw i8, ptr %441, i64 72 + %452 = getelementptr inbounds nuw i8, ptr %439, i64 72 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %452, ptr noundef nonnull align 4 dereferenceable(16) %451, i64 16, i1 false), !tbaa.struct !63 + %453 = getelementptr inbounds nuw i8, ptr %441, i64 88 + %454 = getelementptr inbounds nuw i8, ptr %439, i64 88 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %454, ptr noundef nonnull align 4 dereferenceable(16) %453, i64 16, i1 false), !tbaa.struct !63 + %455 = getelementptr inbounds nuw i8, ptr %439, i64 104 + %456 = getelementptr inbounds nuw i8, ptr %441, i64 104 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %455, ptr noundef nonnull align 4 dereferenceable(48) %456, i64 16, i1 false), !tbaa.struct !63 + %457 = getelementptr inbounds nuw i8, ptr %441, i64 120 + %458 = getelementptr inbounds nuw i8, ptr %439, i64 120 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %458, ptr noundef nonnull align 4 dereferenceable(16) %457, i64 16, i1 false), !tbaa.struct !63 + %459 = getelementptr inbounds nuw i8, ptr %441, i64 136 + %460 = getelementptr inbounds nuw i8, ptr %439, i64 136 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %460, ptr noundef nonnull align 4 dereferenceable(16) %459, i64 16, i1 false), !tbaa.struct !63 %indvars.iv.next.i.i.i184 = add nuw nsw i64 %indvars.iv.i.i.i183, 1 %exitcond.not.i.i.i185 = icmp eq i64 %indvars.iv.next.i.i.i184, %wide.trip.count.i.i.i182 - br i1 %exitcond.not.i.i.i185, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177, label %435, !llvm.loop !100 - -_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177: ; preds = %435, %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175 - %458 = getelementptr inbounds nuw i8, ptr %307, i64 1168 - %459 = load ptr, ptr %458, align 8, !tbaa !99 - %.not.i5.i.i178 = icmp ne ptr %459, null - %460 = getelementptr inbounds nuw i8, ptr %307, i64 1176 - %461 = load i8, ptr %460, align 8, !range !66 - %462 = trunc nuw i8 %461 to i1 - %or.cond.i.i179 = select i1 %.not.i5.i.i178, i1 %462, i1 false - br i1 %or.cond.i.i179, label %463, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180 - -463: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %459) - to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180 unwind label %491 - -_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180: ; preds = %463, %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 - store i8 1, ptr %460, align 8, !tbaa !101 - store ptr %.0.i.i.i176, ptr %458, align 8, !tbaa !99 - store i32 %419, ptr %424, align 8, !tbaa !98 + br i1 %exitcond.not.i.i.i185, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177, label %438, !llvm.loop !100 + +_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177: ; preds = %438, %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175 + %461 = getelementptr inbounds nuw i8, ptr %307, i64 1168 + %462 = load ptr, ptr %461, align 8, !tbaa !99 + %.not.i5.i.i178 = icmp ne ptr %462, null + %463 = getelementptr inbounds nuw i8, ptr %307, i64 1176 + %464 = load i8, ptr %463, align 8, !range !66 + %465 = trunc nuw i8 %464 to i1 + %or.cond.i.i179 = select i1 %.not.i5.i.i178, i1 %465, i1 false + br i1 %or.cond.i.i179, label %466, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180 + +466: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %462) + to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180 unwind label %497 + +_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180: ; preds = %466, %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 + store i8 1, ptr %463, align 8, !tbaa !101 + store ptr %.0.i.i.i176, ptr %461, align 8, !tbaa !99 + store i32 %422, ptr %424, align 8, !tbaa !98 br label %.lr.ph.i168 .lr.ph.i168: ; preds = %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180, %423 - %464 = getelementptr inbounds nuw i8, ptr %307, i64 1168 - %465 = sext i32 %421 to i64 - %wide.trip.count.i169 = sext i32 %419 to i64 + %467 = getelementptr inbounds nuw i8, ptr %307, i64 1168 + %468 = sext i32 %421 to i64 + %wide.trip.count.i169 = sext i32 %422 to i64 br label %466 -466: ; preds = %466, %.lr.ph.i168 +466:; preds = %466, %.lr.ph.i168 %indvars.iv.i170 = phi i64 [ %465, %.lr.ph.i168 ], [ %indvars.iv.next.i171, %466 ] %467 = load ptr, ptr %464, align 8, !tbaa !99 %468 = getelementptr inbounds %"struct.btSoftBody::TetraScratch", ptr %467, i64 %indvars.iv.i170 @@ -1389,7 +1389,7 @@ _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i18 br i1 %exitcond.not.i172, label %.loopexit, label %466, !llvm.loop !102 .loopexit: ; preds = %466, %.loopexit227 - store i32 %419, ptr %420, align 4, !tbaa !94 + store i32 %422, ptr %420, align 4, !tbaa !94 %469 = getelementptr inbounds nuw i8, ptr %307, i64 932 %470 = load i32, ptr %469, align 4, !tbaa !12 %471 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.5, i32 noundef %470) @@ -1406,131 +1406,131 @@ _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i18 .noexc190: ; preds = %.loopexit %.not.i189 = icmp eq ptr %480, null - br i1 %.not.i189, label %481, label %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 - -481: ; preds = %.noexc190 - %482 = load ptr, ptr %3, align 8, !tbaa !22 - %483 = getelementptr i8, ptr %482, i64 -24 - %484 = load i64, ptr %483, align 8 - %485 = getelementptr inbounds i8, ptr %3, i64 %484 - %486 = getelementptr inbounds nuw i8, ptr %485, i64 32 - %487 = load i32, ptr %486, align 8, !tbaa !24 - %488 = or i32 %487, 4 - invoke void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(ptr noundef nonnull align 8 dereferenceable(264) %485, i32 noundef %488) + br i1 %.not.i189, label %487, label %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 + +487: ; preds = %.noexc190 + %488 = load ptr, ptr %3, align 8, !tbaa !22 + %489 = getelementptr i8, ptr %488, i64 -24 + %490 = load i64, ptr %489, align 8 + %491 = getelementptr inbounds i8, ptr %3, i64 %490 + %492 = getelementptr inbounds nuw i8, ptr %491, i64 32 + %493 = load i32, ptr %492, align 8, !tbaa !24 + %494 = or i32 %493, 4 + invoke void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(ptr noundef nonnull align 8 dereferenceable(264) %491, i32 noundef %494) to label %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 unwind label %311 -489: ; preds = %413, %378 - %490 = landingpad { ptr, i32 } +495: ; preds = %413, %378 + %496 = landingpad { ptr, i32 } cleanup br label %_ZN17btCollisionObjectdlEPv.exit -491: ; preds = %463, %428 - %492 = landingpad { ptr, i32 } +497: ; preds = %466, %428 + %498 = landingpad { ptr, i32 } cleanup br label %_ZN17btCollisionObjectdlEPv.exit -_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192: ; preds = %_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev.exit, %.noexc190, %481 +_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192: ; preds = %_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev.exit, %.noexc190, %487 %.4 = phi ptr [ %307, %481 ], [ %307, %.noexc190 ], [ null, %_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev.exit ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #21 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #21 - %493 = load i32, ptr %37, align 4, !tbaa !45 - %494 = icmp sgt i32 %493, 0 - br i1 %494, label %.lr.ph.i.i.i195, label %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i + %499 = load i32, ptr %37, align 4, !tbaa !45 + %500 = icmp sgt i32 %499, 0 + br i1 %500, label %.lr.ph.i.i.i195, label %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i .lr.ph.i.i.i195: ; preds = %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 - %zext.i.i = zext nneg i32 %493 to i64 - br label %495 + %zext.i.i = zext nneg i32 %499 to i64 + br label %501 -495: ; preds = %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i, %.lr.ph.i.i.i195 +501: ; preds = %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i, %.lr.ph.i.i.i195 %indvars.iv.i.i.i196 = phi i64 [ 0, %.lr.ph.i.i.i195 ], [ %indvars.iv.next.i.i.i197, %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i ] - %496 = load ptr, ptr %36, align 8, !tbaa !44 - %497 = getelementptr inbounds nuw %class.btAlignedObjectArray.55, ptr %496, i64 %indvars.iv.i.i.i196 - %498 = getelementptr inbounds nuw i8, ptr %497, i64 16 - %499 = load ptr, ptr %498, align 8, !tbaa !74 - %.not.i.i.i.i.i.i = icmp ne ptr %499, null - %500 = getelementptr inbounds nuw i8, ptr %497, i64 24 - %501 = load i8, ptr %500, align 8, !range !66 - %502 = trunc nuw i8 %501 to i1 - %or.cond.i.i.i.i.i = select i1 %.not.i.i.i.i.i.i, i1 %502, i1 false - br i1 %or.cond.i.i.i.i.i, label %503, label %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i - -503: ; preds = %495 - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %499) - to label %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i unwind label %504 - -504: ; preds = %503 - %505 = landingpad { ptr, i32 } + %502 = load ptr, ptr %36, align 8, !tbaa !44 + %503 = getelementptr inbounds nuw %class.btAlignedObjectArray.55, ptr %502, i64 %indvars.iv.i.i.i196 + %504 = getelementptr inbounds nuw i8, ptr %503, i64 16 + %505 = load ptr, ptr %504, align 8, !tbaa !74 + %.not.i.i.i.i.i.i = icmp ne ptr %505, null + %506 = getelementptr inbounds nuw i8, ptr %503, i64 24 + %507 = load i8, ptr %506, align 8, !range !66 + %508 = trunc nuw i8 %507 to i1 + %or.cond.i.i.i.i.i = select i1 %.not.i.i.i.i.i.i, i1 %508, i1 false + br i1 %or.cond.i.i.i.i.i, label %509, label %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i + +509: ; preds = %501 + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %505) + to label %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i unwind label %510 + +510: ; preds = %509 + %511 = landingpad { ptr, i32 } catch ptr null - %506 = extractvalue { ptr, i32 } %505, 0 - call void @__clang_call_terminate(ptr %506) #24 + %512 = extractvalue { ptr, i32 } %511, 0 + call void @__clang_call_terminate(ptr %512) #24 unreachable -_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i: ; preds = %503, %495 - %507 = getelementptr inbounds nuw i8, ptr %497, i64 4 - store i8 1, ptr %500, align 8, !tbaa !71 - store ptr null, ptr %498, align 8, !tbaa !74 - store i32 0, ptr %507, align 4, !tbaa !75 - %508 = getelementptr inbounds nuw i8, ptr %497, i64 8 - store i32 0, ptr %508, align 8, !tbaa !76 +_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i: ; preds = %509, %501 + %513 = getelementptr inbounds nuw i8, ptr %503, i64 4 + store i8 1, ptr %506, align 8, !tbaa !71 + store ptr null, ptr %504, align 8, !tbaa !74 + store i32 0, ptr %513, align 4, !tbaa !75 + %514 = getelementptr inbounds nuw i8, ptr %503, i64 8 + store i32 0, ptr %514, align 8, !tbaa !76 %indvars.iv.next.i.i.i197 = add nuw nsw i64 %indvars.iv.i.i.i196, 1 - %509 = icmp eq i64 %indvars.iv.next.i.i.i197, %zext.i.i - br i1 %509, label %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i, label %495, !llvm.loop !111 + %515 = icmp eq i64 %indvars.iv.next.i.i.i197, %zext.i.i + br i1 %515, label %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i, label %501, !llvm.loop !111 _ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i: ; preds = %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i, %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 - %510 = load ptr, ptr %36, align 8, !tbaa !44 - %.not.i.i.i193 = icmp ne ptr %510, null - %511 = load i8, ptr %35, align 8, !range !66 - %512 = trunc nuw i8 %511 to i1 - %or.cond.i.i194 = select i1 %.not.i.i.i193, i1 %512, i1 false - br i1 %or.cond.i.i194, label %513, label %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit - -513: ; preds = %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %510) - to label %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit unwind label %514 - -514: ; preds = %513 - %515 = landingpad { ptr, i32 } + %516 = load ptr, ptr %36, align 8, !tbaa !44 + %.not.i.i.i193 = icmp ne ptr %516, null + %517 = load i8, ptr %35, align 8, !range !66 + %518 = trunc nuw i8 %517 to i1 + %or.cond.i.i194 = select i1 %.not.i.i.i193, i1 %518, i1 false + br i1 %or.cond.i.i194, label %519, label %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit + +519: ; preds = %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %516) + to label %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit unwind label %520 + +520: ; preds = %519 + %521 = landingpad { ptr, i32 } catch ptr null - %516 = extractvalue { ptr, i32 } %515, 0 - call void @__clang_call_terminate(ptr %516) #24 + %522 = extractvalue { ptr, i32 } %521, 0 + call void @__clang_call_terminate(ptr %522) #24 unreachable -_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit: ; preds = %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i, %513 +_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit: ; preds = %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i, %519 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #21 - %517 = load ptr, ptr %32, align 8, !tbaa !37 - %.not.i.i.i198 = icmp ne ptr %517, null - %518 = load i8, ptr %31, align 8, !range !66 - %519 = trunc nuw i8 %518 to i1 - %or.cond.i.i199 = select i1 %.not.i.i.i198, i1 %519, i1 false - br i1 %or.cond.i.i199, label %520, label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit - -520: ; preds = %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %517) - to label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit unwind label %521 - -521: ; preds = %520 - %522 = landingpad { ptr, i32 } + %523 = load ptr, ptr %32, align 8, !tbaa !37 + %.not.i.i.i198 = icmp ne ptr %523, null + %524 = load i8, ptr %31, align 8, !range !66 + %525 = trunc nuw i8 %524 to i1 + %or.cond.i.i199 = select i1 %.not.i.i.i198, i1 %525, i1 false + br i1 %or.cond.i.i199, label %526, label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit + +526: ; preds = %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %523) + to label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit unwind label %527 + +527: ; preds = %526 + %528 = landingpad { ptr, i32 } catch ptr null - %523 = extractvalue { ptr, i32 } %522, 0 - call void @__clang_call_terminate(ptr %523) #24 + %529 = extractvalue { ptr, i32 } %528, 0 + call void @__clang_call_terminate(ptr %529) #24 unreachable -_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit: ; preds = %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit, %520 +_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit: ; preds = %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit, %526 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #21 - %524 = load ptr, ptr %4, align 8, !tbaa !4 - %525 = icmp eq ptr %524, %29 - br i1 %525, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i201, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i200 + %530 = load ptr, ptr %4, align 8, !tbaa !4 + %531 = icmp eq ptr %530, %29 + br i1 %531, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i201, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i200 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i201: ; preds = %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit - %526 = load i64, ptr %30, align 8, !tbaa !18 - %527 = icmp ult i64 %526, 16 - call void @llvm.assume(i1 %527) + %532 = load i64, ptr %30, align 8, !tbaa !18 + %533 = icmp ult i64 %532, 16 + call void @llvm.assume(i1 %533) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit202 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i200: ; preds = %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit - %528 = load i64, ptr %29, align 8, !tbaa !19 - %529 = add i64 %528, 1 - call void @_ZdlPvm(ptr noundef %524, i64 noundef %529) #22 + %534 = load i64, ptr %29, align 8, !tbaa !19 + %535 = add i64 %534, 1 + call void @_ZdlPvm(ptr noundef %530, i64 noundef %535) #22 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit202 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit202: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i201, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i200 @@ -1539,35 +1539,35 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit202: ; preds = %_Z call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %3) #21 ret ptr %.4 -_ZN17btCollisionObjectdlEPv.exit: ; preds = %.loopexit229, %.loopexit.split-lp, %313, %311, %364, %489, %491, %305 - %.pn92.pn.pn = phi { ptr, i32 } [ %.pn92.pn, %305 ], [ %365, %364 ], [ %312, %311 ], [ %492, %491 ], [ %490, %489 ], [ %314, %313 ], [ %lpad.loopexit, %.loopexit229 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] +_ZN17btCollisionObjectdlEPv.exit: ; preds = %.loopexit229, %.loopexit.split-lp, %313, %311, %364, %495, %497, %305 + %.pn92.pn.pn = phi { ptr, i32 } [ %.pn92.pn, %305 ], [ %365, %364 ], [ %312, %311 ], [ %498, %491 ], [ %496, %489 ], [ %314, %313 ], [ %lpad.loopexit, %.loopexit229 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #21 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #21 call void @_ZN20btAlignedObjectArrayIS_IiEED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %6) #21 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #21 call void @_ZN20btAlignedObjectArrayI9btVector3ED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %5) #21 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #21 - %530 = load ptr, ptr %4, align 8, !tbaa !4 - %531 = icmp eq ptr %530, %29 - br i1 %531, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i204, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i203 + %536 = load ptr, ptr %4, align 8, !tbaa !4 + %537 = icmp eq ptr %536, %29 + br i1 %537, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i204, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i203 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i204: ; preds = %_ZN17btCollisionObjectdlEPv.exit - %532 = load i64, ptr %30, align 8, !tbaa !18 - %533 = icmp ult i64 %532, 16 - call void @llvm.assume(i1 %533) + %538 = load i64, ptr %30, align 8, !tbaa !18 + %539 = icmp ult i64 %538, 16 + call void @llvm.assume(i1 %539) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i203: ; preds = %_ZN17btCollisionObjectdlEPv.exit - %534 = load i64, ptr %29, align 8, !tbaa !19 - %535 = add i64 %534, 1 - call void @_ZdlPvm(ptr noundef %530, i64 noundef %535) #22 + %540 = load i64, ptr %29, align 8, !tbaa !19 + %541 = add i64 %540, 1 + call void @_ZdlPvm(ptr noundef %536, i64 noundef %541) #22 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i204, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i203 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #21 - br label %536 + br label %542 -536: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205, %100 +542: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205, %100 %.pn92.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn92.pn.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205 ], [ %101, %100 ] call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %3) #21 call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %3) #21 diff --git a/bench/bullet3/optimized/btSoftBodyHelpers.ll b/bench/bullet3/optimized/btSoftBodyHelpers.ll index aec69e976a1..88cc0ab4fe5 100644 --- a/bench/bullet3/optimized/btSoftBodyHelpers.ll +++ b/bench/bullet3/optimized/btSoftBodyHelpers.ll @@ -6121,7 +6121,7 @@ _ZL8nextLinePKc.exit75: ; preds = %88, %._crit_edge.lo %139 = sext i32 %129 to i64 %140 = mul nsw i64 %139, 152 %141 = invoke noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef %140, i32 noundef 16) - to label %.noexc91 unwind label %247 + to label %.noexc91 unwind label %253 .noexc91: ; preds = %138 %.pre.i82 = load i32, ptr %130, align 4, !tbaa !279 @@ -6188,7 +6188,7 @@ _ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i: ; 173: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %169) - to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i unwind label %247 + to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i unwind label %253 _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i: ; preds = %173, %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i store i8 1, ptr %170, align 8, !tbaa !283 @@ -6216,119 +6216,119 @@ _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i: br label %.loopexit125 .loopexit125: ; preds = %.loopexit125.loopexit, %127 - %179 = phi i32 [ %.pre, %.loopexit125.loopexit ], [ %129, %127 ] + %182 = phi i32 [ %.pre, %.loopexit125.loopexit ], [ %129, %127 ] store i32 %129, ptr %130, align 4, !tbaa !279 %180 = getelementptr inbounds nuw i8, ptr %42, i64 1156 %181 = load i32, ptr %180, align 4, !tbaa !279 - %182 = icmp sgt i32 %179, %181 + %182 = icmp sgt i32 %182, %181 br i1 %182, label %183, label %.loopexit -183: ; preds = %.loopexit125 +183:; preds = %.loopexit125 %184 = getelementptr inbounds nuw i8, ptr %42, i64 1160 %185 = load i32, ptr %184, align 8, !tbaa !280 %186 = icmp slt i32 %185, %179 br i1 %186, label %187, label %.lr.ph.i93 -187: ; preds = %183 +187:; preds = %183 %.not.i.i.i98 = icmp eq i32 %179, 0 br i1 %.not.i.i.i98, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i100, label %188 -188: ; preds = %187 +188:; preds = %187 %189 = sext i32 %179 to i64 %190 = mul nsw i64 %189, 152 %191 = invoke noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef %190, i32 noundef 16) to label %.noexc111 unwind label %249 -.noexc111: ; preds = %188 +.noexc111:; preds = %188 %.pre.i99 = load i32, ptr %180, align 4, !tbaa !279 br label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i100 _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i100: ; preds = %.noexc111, %187 - %192 = phi i32 [ %.pre.i99, %.noexc111 ], [ %181, %187 ] + %195 = phi i32 [ %.pre.i99, %.noexc111 ], [ %181, %187 ] %.0.i.i.i101 = phi ptr [ %191, %.noexc111 ], [ null, %187 ] - %193 = icmp sgt i32 %192, 0 - br i1 %193, label %.lr.ph.i.i.i106, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102 + %196 = icmp sgt i32 %195, 0 + br i1 %196, label %.lr.ph.i.i.i106, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102 .lr.ph.i.i.i106: ; preds = %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i100 - %194 = getelementptr inbounds nuw i8, ptr %42, i64 1168 - %wide.trip.count.i.i.i107 = zext nneg i32 %192 to i64 - br label %195 + %197 = getelementptr inbounds nuw i8, ptr %42, i64 1168 + %wide.trip.count.i.i.i107 = zext nneg i32 %195 to i64 + br label %198 -195: ; preds = %195, %.lr.ph.i.i.i106 +198: ; preds = %198, %.lr.ph.i.i.i106 %indvars.iv.i.i.i108 = phi i64 [ 0, %.lr.ph.i.i.i106 ], [ %indvars.iv.next.i.i.i109, %195 ] - %196 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %.0.i.i.i101, i64 %indvars.iv.i.i.i108 - %197 = load ptr, ptr %194, align 8, !tbaa !281 - %198 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %197, i64 %indvars.iv.i.i.i108 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %196, ptr noundef nonnull align 4 dereferenceable(152) %198, i64 16, i1 false), !tbaa.struct !44 - %199 = getelementptr inbounds nuw i8, ptr %198, i64 16 - %200 = getelementptr inbounds nuw i8, ptr %196, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %200, ptr noundef nonnull align 4 dereferenceable(16) %199, i64 16, i1 false), !tbaa.struct !44 - %201 = getelementptr inbounds nuw i8, ptr %198, i64 32 - %202 = getelementptr inbounds nuw i8, ptr %196, i64 32 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %202, ptr noundef nonnull align 4 dereferenceable(16) %201, i64 16, i1 false), !tbaa.struct !44 - %203 = getelementptr inbounds nuw i8, ptr %196, i64 48 - %204 = getelementptr inbounds nuw i8, ptr %198, i64 48 - %205 = load i64, ptr %204, align 4 - store i64 %205, ptr %203, align 4 - %206 = getelementptr inbounds nuw i8, ptr %196, i64 56 - %207 = getelementptr inbounds nuw i8, ptr %198, i64 56 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %206, ptr noundef nonnull align 4 dereferenceable(48) %207, i64 16, i1 false), !tbaa.struct !44 - %208 = getelementptr inbounds nuw i8, ptr %198, i64 72 - %209 = getelementptr inbounds nuw i8, ptr %196, i64 72 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %209, ptr noundef nonnull align 4 dereferenceable(16) %208, i64 16, i1 false), !tbaa.struct !44 - %210 = getelementptr inbounds nuw i8, ptr %198, i64 88 - %211 = getelementptr inbounds nuw i8, ptr %196, i64 88 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %211, ptr noundef nonnull align 4 dereferenceable(16) %210, i64 16, i1 false), !tbaa.struct !44 - %212 = getelementptr inbounds nuw i8, ptr %196, i64 104 - %213 = getelementptr inbounds nuw i8, ptr %198, i64 104 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %212, ptr noundef nonnull align 4 dereferenceable(48) %213, i64 16, i1 false), !tbaa.struct !44 - %214 = getelementptr inbounds nuw i8, ptr %198, i64 120 - %215 = getelementptr inbounds nuw i8, ptr %196, i64 120 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %215, ptr noundef nonnull align 4 dereferenceable(16) %214, i64 16, i1 false), !tbaa.struct !44 - %216 = getelementptr inbounds nuw i8, ptr %198, i64 136 - %217 = getelementptr inbounds nuw i8, ptr %196, i64 136 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %217, ptr noundef nonnull align 4 dereferenceable(16) %216, i64 16, i1 false), !tbaa.struct !44 + %199 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %.0.i.i.i101, i64 %indvars.iv.i.i.i108 + %200 = load ptr, ptr %197, align 8, !tbaa !281 + %201 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %200, i64 %indvars.iv.i.i.i108 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %199, ptr noundef nonnull align 4 dereferenceable(152) %201, i64 16, i1 false), !tbaa.struct !44 + %202 = getelementptr inbounds nuw i8, ptr %201, i64 16 + %203 = getelementptr inbounds nuw i8, ptr %199, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %203, ptr noundef nonnull align 4 dereferenceable(16) %202, i64 16, i1 false), !tbaa.struct !44 + %204 = getelementptr inbounds nuw i8, ptr %201, i64 32 + %205 = getelementptr inbounds nuw i8, ptr %199, i64 32 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %205, ptr noundef nonnull align 4 dereferenceable(16) %204, i64 16, i1 false), !tbaa.struct !44 + %206 = getelementptr inbounds nuw i8, ptr %199, i64 48 + %207 = getelementptr inbounds nuw i8, ptr %201, i64 48 + %208 = load i64, ptr %207, align 4 + store i64 %208, ptr %206, align 4 + %209 = getelementptr inbounds nuw i8, ptr %199, i64 56 + %210 = getelementptr inbounds nuw i8, ptr %201, i64 56 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %209, ptr noundef nonnull align 4 dereferenceable(48) %210, i64 16, i1 false), !tbaa.struct !44 + %211 = getelementptr inbounds nuw i8, ptr %201, i64 72 + %212 = getelementptr inbounds nuw i8, ptr %199, i64 72 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %212, ptr noundef nonnull align 4 dereferenceable(16) %211, i64 16, i1 false), !tbaa.struct !44 + %213 = getelementptr inbounds nuw i8, ptr %201, i64 88 + %214 = getelementptr inbounds nuw i8, ptr %199, i64 88 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %214, ptr noundef nonnull align 4 dereferenceable(16) %213, i64 16, i1 false), !tbaa.struct !44 + %215 = getelementptr inbounds nuw i8, ptr %199, i64 104 + %216 = getelementptr inbounds nuw i8, ptr %201, i64 104 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %215, ptr noundef nonnull align 4 dereferenceable(48) %216, i64 16, i1 false), !tbaa.struct !44 + %217 = getelementptr inbounds nuw i8, ptr %201, i64 120 + %218 = getelementptr inbounds nuw i8, ptr %199, i64 120 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %218, ptr noundef nonnull align 4 dereferenceable(16) %217, i64 16, i1 false), !tbaa.struct !44 + %219 = getelementptr inbounds nuw i8, ptr %201, i64 136 + %220 = getelementptr inbounds nuw i8, ptr %199, i64 136 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %220, ptr noundef nonnull align 4 dereferenceable(16) %219, i64 16, i1 false), !tbaa.struct !44 %indvars.iv.next.i.i.i109 = add nuw nsw i64 %indvars.iv.i.i.i108, 1 %exitcond.not.i.i.i110 = icmp eq i64 %indvars.iv.next.i.i.i109, %wide.trip.count.i.i.i107 - br i1 %exitcond.not.i.i.i110, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102, label %195, !llvm.loop !282 - -_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102: ; preds = %195, %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i100 - %218 = getelementptr inbounds nuw i8, ptr %42, i64 1168 - %219 = load ptr, ptr %218, align 8, !tbaa !281 - %.not.i5.i.i103 = icmp ne ptr %219, null - %220 = getelementptr inbounds nuw i8, ptr %42, i64 1176 - %221 = load i8, ptr %220, align 8, !range !33 - %222 = trunc nuw i8 %221 to i1 - %or.cond.i.i104 = select i1 %.not.i5.i.i103, i1 %222, i1 false - br i1 %or.cond.i.i104, label %223, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i105 - -223: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102 - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %219) - to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i105 unwind label %249 - -_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i105: ; preds = %223, %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102 - store i8 1, ptr %220, align 8, !tbaa !283 - store ptr %.0.i.i.i101, ptr %218, align 8, !tbaa !281 - store i32 %179, ptr %184, align 8, !tbaa !280 + br i1 %exitcond.not.i.i.i110, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102, label %198, !llvm.loop !282 + +_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102: ; preds = %198, %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i100 + %221 = getelementptr inbounds nuw i8, ptr %42, i64 1168 + %222 = load ptr, ptr %221, align 8, !tbaa !281 + %.not.i5.i.i103 = icmp ne ptr %222, null + %223 = getelementptr inbounds nuw i8, ptr %42, i64 1176 + %224 = load i8, ptr %223, align 8, !range !33 + %225 = trunc nuw i8 %224 to i1 + %or.cond.i.i104 = select i1 %.not.i5.i.i103, i1 %225, i1 false + br i1 %or.cond.i.i104, label %226, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i105 + +226: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102 + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %222) + to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i105 unwind label %255 + +_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i105: ; preds = %226, %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i102 + store i8 1, ptr %223, align 8, !tbaa !283 + store ptr %.0.i.i.i101, ptr %221, align 8, !tbaa !281 + store i32 %182, ptr %184, align 8, !tbaa !280 br label %.lr.ph.i93 .lr.ph.i93: ; preds = %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i105, %183 - %224 = getelementptr inbounds nuw i8, ptr %42, i64 1168 - %225 = sext i32 %181 to i64 - %wide.trip.count.i94 = sext i32 %179 to i64 + %227 = getelementptr inbounds nuw i8, ptr %42, i64 1168 + %228 = sext i32 %181 to i64 + %wide.trip.count.i94 = sext i32 %182 to i64 br label %226 -226: ; preds = %226, %.lr.ph.i93 - %indvars.iv.i95 = phi i64 [ %225, %.lr.ph.i93 ], [ %indvars.iv.next.i96, %226 ] - %227 = load ptr, ptr %224, align 8, !tbaa !281 - %228 = getelementptr inbounds %"struct.btSoftBody::TetraScratch", ptr %227, i64 %indvars.iv.i95 +229: ; preds = %229, %.lr.ph.i93 + %indvars.iv.i95 = phi i64 [ %228, %.lr.ph.i93 ], [ %indvars.iv.next.i96, %226 ] + %230 = load ptr, ptr %227, align 8, !tbaa !281 + %231 = getelementptr inbounds %"struct.btSoftBody::TetraScratch", ptr %230, i64 %indvars.iv.i95 %indvars.iv.next.i96 = add nsw i64 %indvars.iv.i95, 1 %exitcond.not.i97 = icmp eq i64 %indvars.iv.next.i96, %wide.trip.count.i94 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %228, i8 0, i64 152, i1 false) - br i1 %exitcond.not.i97, label %.loopexit, label %226, !llvm.loop !284 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %231, i8 0, i64 152, i1 false) + br i1 %exitcond.not.i97, label %.loopexit, label %229, !llvm.loop !284 -.loopexit: ; preds = %226, %.loopexit125 - store i32 %179, ptr %180, align 4, !tbaa !279 +.loopexit: ; preds = %229, %.loopexit125 + store i32 %182, ptr %180, align 4, !tbaa !279 %229 = getelementptr inbounds nuw i8, ptr %42, i64 932 %230 = load i32, ptr %229, align 4, !tbaa !70 %231 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.8, i32 noundef %230) @@ -6344,40 +6344,40 @@ _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i10 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #27 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #27 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #27 - %240 = load ptr, ptr %23, align 8, !tbaa !37 - %.not.i.i.i114 = icmp ne ptr %240, null - %241 = load i8, ptr %22, align 8, !range !33 - %242 = trunc nuw i8 %241 to i1 - %or.cond.i.i115 = select i1 %.not.i.i.i114, i1 %242, i1 false - br i1 %or.cond.i.i115, label %243, label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit - -243: ; preds = %.loopexit - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %240) - to label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit unwind label %244 - -244: ; preds = %243 - %245 = landingpad { ptr, i32 } + %246 = load ptr, ptr %23, align 8, !tbaa !37 + %.not.i.i.i114 = icmp ne ptr %246, null + %247 = load i8, ptr %22, align 8, !range !33 + %248 = trunc nuw i8 %247 to i1 + %or.cond.i.i115 = select i1 %.not.i.i.i114, i1 %248, i1 false + br i1 %or.cond.i.i115, label %249, label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit + +249: ; preds = %.loopexit + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %246) + to label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit unwind label %250 + +250: ; preds = %249 + %251 = landingpad { ptr, i32 } catch ptr null - %246 = extractvalue { ptr, i32 } %245, 0 - call void @__clang_call_terminate(ptr %246) #28 + %252 = extractvalue { ptr, i32 } %251, 0 + call void @__clang_call_terminate(ptr %252) #28 unreachable -_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit: ; preds = %.loopexit, %243 +_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit: ; preds = %.loopexit, %249 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #27 ret ptr %42 -247: ; preds = %173, %138 - %248 = landingpad { ptr, i32 } +253: ; preds = %173, %138 + %254 = landingpad { ptr, i32 } cleanup br label %_ZN17btCollisionObjectdlEPv.exit -249: ; preds = %223, %188 - %250 = landingpad { ptr, i32 } +255: ; preds = %226, %188 + %256 = landingpad { ptr, i32 } cleanup br label %_ZN17btCollisionObjectdlEPv.exit -_ZN17btCollisionObjectdlEPv.exit: ; preds = %83, %81, %120, %247, %249, %43 - %.pn.pn = phi { ptr, i32 } [ %44, %43 ], [ %121, %120 ], [ %250, %249 ], [ %248, %247 ], [ %82, %81 ], [ %84, %83 ] +_ZN17btCollisionObjectdlEPv.exit: ; preds = %83, %81, %120, %253, %255, %43 + %.pn.pn = phi { ptr, i32 } [ %44, %43 ], [ %121, %120 ], [ %256, %249 ], [ %254, %247 ], [ %82, %81 ], [ %84, %83 ] call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #27 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #27 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #27 @@ -6574,7 +6574,7 @@ _ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc.exit.i: ; preds = %.noexc101, %79 100: ; preds = %27, %2 %101 = landingpad { ptr, i32 } cleanup - br label %536 + br label %542 .loopexit229: ; preds = %82, %.noexc101, %_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc.exit.i %lpad.loopexit = landingpad { ptr, i32 } @@ -7211,7 +7211,7 @@ _ZN17btCollisionObjectnwEm.exit: ; preds = %306 invoke void @_ZN17btSoftBodyHelpers21generateBoundaryFacesEP10btSoftBody(ptr noundef nonnull %307) to label %366 unwind label %311 -311: ; preds = %481, %.loopexit, %306, %366, %._crit_edge +311: ; preds = %487, %.loopexit, %306, %366, %._crit_edge %312 = landingpad { ptr, i32 } cleanup br label %_ZN17btCollisionObjectdlEPv.exit @@ -7332,7 +7332,7 @@ _ZN17btCollisionObjectnwEm.exit: ; preds = %306 %379 = sext i32 %369 to i64 %380 = mul nsw i64 %379, 152 %381 = invoke noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef %380, i32 noundef 16) - to label %.noexc166 unwind label %489 + to label %.noexc166 unwind label %495 .noexc166: ; preds = %378 %.pre.i157 = load i32, ptr %370, align 4, !tbaa !279 @@ -7399,7 +7399,7 @@ _ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i: ; 413: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %409) - to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i unwind label %489 + to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i unwind label %495 _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i: ; preds = %413, %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i store i8 1, ptr %410, align 8, !tbaa !283 @@ -7427,109 +7427,109 @@ _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i: br label %.loopexit227 .loopexit227: ; preds = %.loopexit227.loopexit, %367 - %419 = phi i32 [ %.pre, %.loopexit227.loopexit ], [ %369, %367 ] + %422 = phi i32 [ %.pre, %.loopexit227.loopexit ], [ %369, %367 ] store i32 %369, ptr %370, align 4, !tbaa !279 %420 = getelementptr inbounds nuw i8, ptr %307, i64 1156 %421 = load i32, ptr %420, align 4, !tbaa !279 %422 = icmp sgt i32 %419, %421 br i1 %422, label %423, label %.loopexit -423: ; preds = %.loopexit227 +423:; preds = %.loopexit227 %424 = getelementptr inbounds nuw i8, ptr %307, i64 1160 %425 = load i32, ptr %424, align 8, !tbaa !280 %426 = icmp slt i32 %425, %419 br i1 %426, label %427, label %.lr.ph.i168 -427: ; preds = %423 - %.not.i.i.i173 = icmp eq i32 %419, 0 +427:; preds = %423 + %.not.i.i.i173 = icmp eq i32 %422, 0 br i1 %.not.i.i.i173, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175, label %428 -428: ; preds = %427 +428:; preds = %427 %429 = sext i32 %419 to i64 %430 = mul nsw i64 %429, 152 %431 = invoke noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef %430, i32 noundef 16) to label %.noexc186 unwind label %491 -.noexc186: ; preds = %428 +.noexc186:; preds = %428 %.pre.i174 = load i32, ptr %420, align 4, !tbaa !279 br label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175 _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175: ; preds = %.noexc186, %427 - %432 = phi i32 [ %.pre.i174, %.noexc186 ], [ %421, %427 ] + %435 = phi i32 [ %.pre.i174, %.noexc186 ], [ %421, %427 ] %.0.i.i.i176 = phi ptr [ %431, %.noexc186 ], [ null, %427 ] - %433 = icmp sgt i32 %432, 0 - br i1 %433, label %.lr.ph.i.i.i181, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 + %436 = icmp sgt i32 %435, 0 + br i1 %436, label %.lr.ph.i.i.i181, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 .lr.ph.i.i.i181: ; preds = %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175 - %434 = getelementptr inbounds nuw i8, ptr %307, i64 1168 - %wide.trip.count.i.i.i182 = zext nneg i32 %432 to i64 - br label %435 + %437 = getelementptr inbounds nuw i8, ptr %307, i64 1168 + %wide.trip.count.i.i.i182 = zext nneg i32 %435 to i64 + br label %438 -435: ; preds = %435, %.lr.ph.i.i.i181 +438: ; preds = %438, %.lr.ph.i.i.i181 %indvars.iv.i.i.i183 = phi i64 [ 0, %.lr.ph.i.i.i181 ], [ %indvars.iv.next.i.i.i184, %435 ] - %436 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %.0.i.i.i176, i64 %indvars.iv.i.i.i183 - %437 = load ptr, ptr %434, align 8, !tbaa !281 - %438 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %437, i64 %indvars.iv.i.i.i183 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %436, ptr noundef nonnull align 4 dereferenceable(152) %438, i64 16, i1 false), !tbaa.struct !44 - %439 = getelementptr inbounds nuw i8, ptr %438, i64 16 - %440 = getelementptr inbounds nuw i8, ptr %436, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %440, ptr noundef nonnull align 4 dereferenceable(16) %439, i64 16, i1 false), !tbaa.struct !44 - %441 = getelementptr inbounds nuw i8, ptr %438, i64 32 - %442 = getelementptr inbounds nuw i8, ptr %436, i64 32 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %442, ptr noundef nonnull align 4 dereferenceable(16) %441, i64 16, i1 false), !tbaa.struct !44 - %443 = getelementptr inbounds nuw i8, ptr %436, i64 48 - %444 = getelementptr inbounds nuw i8, ptr %438, i64 48 - %445 = load i64, ptr %444, align 4 - store i64 %445, ptr %443, align 4 - %446 = getelementptr inbounds nuw i8, ptr %436, i64 56 - %447 = getelementptr inbounds nuw i8, ptr %438, i64 56 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %446, ptr noundef nonnull align 4 dereferenceable(48) %447, i64 16, i1 false), !tbaa.struct !44 - %448 = getelementptr inbounds nuw i8, ptr %438, i64 72 - %449 = getelementptr inbounds nuw i8, ptr %436, i64 72 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %449, ptr noundef nonnull align 4 dereferenceable(16) %448, i64 16, i1 false), !tbaa.struct !44 - %450 = getelementptr inbounds nuw i8, ptr %438, i64 88 - %451 = getelementptr inbounds nuw i8, ptr %436, i64 88 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %451, ptr noundef nonnull align 4 dereferenceable(16) %450, i64 16, i1 false), !tbaa.struct !44 - %452 = getelementptr inbounds nuw i8, ptr %436, i64 104 - %453 = getelementptr inbounds nuw i8, ptr %438, i64 104 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %452, ptr noundef nonnull align 4 dereferenceable(48) %453, i64 16, i1 false), !tbaa.struct !44 - %454 = getelementptr inbounds nuw i8, ptr %438, i64 120 - %455 = getelementptr inbounds nuw i8, ptr %436, i64 120 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %455, ptr noundef nonnull align 4 dereferenceable(16) %454, i64 16, i1 false), !tbaa.struct !44 - %456 = getelementptr inbounds nuw i8, ptr %438, i64 136 - %457 = getelementptr inbounds nuw i8, ptr %436, i64 136 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %457, ptr noundef nonnull align 4 dereferenceable(16) %456, i64 16, i1 false), !tbaa.struct !44 + %439 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %.0.i.i.i176, i64 %indvars.iv.i.i.i183 + %440 = load ptr, ptr %437, align 8, !tbaa !281 + %441 = getelementptr inbounds nuw %"struct.btSoftBody::TetraScratch", ptr %440, i64 %indvars.iv.i.i.i183 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(152) %439, ptr noundef nonnull align 4 dereferenceable(152) %441, i64 16, i1 false), !tbaa.struct !44 + %442 = getelementptr inbounds nuw i8, ptr %441, i64 16 + %443 = getelementptr inbounds nuw i8, ptr %439, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %443, ptr noundef nonnull align 4 dereferenceable(16) %442, i64 16, i1 false), !tbaa.struct !44 + %444 = getelementptr inbounds nuw i8, ptr %441, i64 32 + %445 = getelementptr inbounds nuw i8, ptr %439, i64 32 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %445, ptr noundef nonnull align 4 dereferenceable(16) %444, i64 16, i1 false), !tbaa.struct !44 + %446 = getelementptr inbounds nuw i8, ptr %439, i64 48 + %447 = getelementptr inbounds nuw i8, ptr %441, i64 48 + %448 = load i64, ptr %447, align 4 + store i64 %448, ptr %446, align 4 + %449 = getelementptr inbounds nuw i8, ptr %439, i64 56 + %450 = getelementptr inbounds nuw i8, ptr %441, i64 56 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %449, ptr noundef nonnull align 4 dereferenceable(48) %450, i64 16, i1 false), !tbaa.struct !44 + %451 = getelementptr inbounds nuw i8, ptr %441, i64 72 + %452 = getelementptr inbounds nuw i8, ptr %439, i64 72 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %452, ptr noundef nonnull align 4 dereferenceable(16) %451, i64 16, i1 false), !tbaa.struct !44 + %453 = getelementptr inbounds nuw i8, ptr %441, i64 88 + %454 = getelementptr inbounds nuw i8, ptr %439, i64 88 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %454, ptr noundef nonnull align 4 dereferenceable(16) %453, i64 16, i1 false), !tbaa.struct !44 + %455 = getelementptr inbounds nuw i8, ptr %439, i64 104 + %456 = getelementptr inbounds nuw i8, ptr %441, i64 104 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %455, ptr noundef nonnull align 4 dereferenceable(48) %456, i64 16, i1 false), !tbaa.struct !44 + %457 = getelementptr inbounds nuw i8, ptr %441, i64 120 + %458 = getelementptr inbounds nuw i8, ptr %439, i64 120 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %458, ptr noundef nonnull align 4 dereferenceable(16) %457, i64 16, i1 false), !tbaa.struct !44 + %459 = getelementptr inbounds nuw i8, ptr %441, i64 136 + %460 = getelementptr inbounds nuw i8, ptr %439, i64 136 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %460, ptr noundef nonnull align 4 dereferenceable(16) %459, i64 16, i1 false), !tbaa.struct !44 %indvars.iv.next.i.i.i184 = add nuw nsw i64 %indvars.iv.i.i.i183, 1 %exitcond.not.i.i.i185 = icmp eq i64 %indvars.iv.next.i.i.i184, %wide.trip.count.i.i.i182 - br i1 %exitcond.not.i.i.i185, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177, label %435, !llvm.loop !282 - -_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177: ; preds = %435, %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175 - %458 = getelementptr inbounds nuw i8, ptr %307, i64 1168 - %459 = load ptr, ptr %458, align 8, !tbaa !281 - %.not.i5.i.i178 = icmp ne ptr %459, null - %460 = getelementptr inbounds nuw i8, ptr %307, i64 1176 - %461 = load i8, ptr %460, align 8, !range !33 - %462 = trunc nuw i8 %461 to i1 - %or.cond.i.i179 = select i1 %.not.i5.i.i178, i1 %462, i1 false - br i1 %or.cond.i.i179, label %463, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180 - -463: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %459) - to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180 unwind label %491 - -_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180: ; preds = %463, %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 - store i8 1, ptr %460, align 8, !tbaa !283 - store ptr %.0.i.i.i176, ptr %458, align 8, !tbaa !281 - store i32 %419, ptr %424, align 8, !tbaa !280 + br i1 %exitcond.not.i.i.i185, label %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177, label %438, !llvm.loop !282 + +_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177: ; preds = %438, %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE8allocateEi.exit.i.i175 + %461 = getelementptr inbounds nuw i8, ptr %307, i64 1168 + %462 = load ptr, ptr %461, align 8, !tbaa !281 + %.not.i5.i.i178 = icmp ne ptr %462, null + %463 = getelementptr inbounds nuw i8, ptr %307, i64 1176 + %464 = load i8, ptr %463, align 8, !range !33 + %465 = trunc nuw i8 %464 to i1 + %or.cond.i.i179 = select i1 %.not.i5.i.i178, i1 %465, i1 false + br i1 %or.cond.i.i179, label %466, label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180 + +466: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %462) + to label %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180 unwind label %497 + +_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180: ; preds = %466, %_ZNK20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE4copyEiiPS1_.exit.i.i177 + store i8 1, ptr %463, align 8, !tbaa !283 + store ptr %.0.i.i.i176, ptr %461, align 8, !tbaa !281 + store i32 %422, ptr %424, align 8, !tbaa !280 br label %.lr.ph.i168 .lr.ph.i168: ; preds = %_ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i180, %423 - %464 = getelementptr inbounds nuw i8, ptr %307, i64 1168 - %465 = sext i32 %421 to i64 - %wide.trip.count.i169 = sext i32 %419 to i64 + %467 = getelementptr inbounds nuw i8, ptr %307, i64 1168 + %468 = sext i32 %421 to i64 + %wide.trip.count.i169 = sext i32 %422 to i64 br label %466 -466: ; preds = %466, %.lr.ph.i168 +466:; preds = %466, %.lr.ph.i168 %indvars.iv.i170 = phi i64 [ %465, %.lr.ph.i168 ], [ %indvars.iv.next.i171, %466 ] %467 = load ptr, ptr %464, align 8, !tbaa !281 %468 = getelementptr inbounds %"struct.btSoftBody::TetraScratch", ptr %467, i64 %indvars.iv.i170 @@ -7539,7 +7539,7 @@ _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i18 br i1 %exitcond.not.i172, label %.loopexit, label %466, !llvm.loop !284 .loopexit: ; preds = %466, %.loopexit227 - store i32 %419, ptr %420, align 4, !tbaa !279 + store i32 %422, ptr %420, align 4, !tbaa !279 %469 = getelementptr inbounds nuw i8, ptr %307, i64 932 %470 = load i32, ptr %469, align 4, !tbaa !70 %471 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.8, i32 noundef %470) @@ -7556,131 +7556,131 @@ _ZN20btAlignedObjectArrayIN10btSoftBody12TetraScratchEE10deallocateEv.exit.i.i18 .noexc190: ; preds = %.loopexit %.not.i189 = icmp eq ptr %480, null - br i1 %.not.i189, label %481, label %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 - -481: ; preds = %.noexc190 - %482 = load ptr, ptr %3, align 8, !tbaa !66 - %483 = getelementptr i8, ptr %482, i64 -24 - %484 = load i64, ptr %483, align 8 - %485 = getelementptr inbounds i8, ptr %3, i64 %484 - %486 = getelementptr inbounds nuw i8, ptr %485, i64 32 - %487 = load i32, ptr %486, align 8, !tbaa !285 - %488 = or i32 %487, 4 - invoke void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(ptr noundef nonnull align 8 dereferenceable(264) %485, i32 noundef %488) + br i1 %.not.i189, label %487, label %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 + +487: ; preds = %.noexc190 + %488 = load ptr, ptr %3, align 8, !tbaa !66 + %489 = getelementptr i8, ptr %488, i64 -24 + %490 = load i64, ptr %489, align 8 + %491 = getelementptr inbounds i8, ptr %3, i64 %490 + %492 = getelementptr inbounds nuw i8, ptr %491, i64 32 + %493 = load i32, ptr %492, align 8, !tbaa !285 + %494 = or i32 %493, 4 + invoke void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(ptr noundef nonnull align 8 dereferenceable(264) %491, i32 noundef %494) to label %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 unwind label %311 -489: ; preds = %413, %378 - %490 = landingpad { ptr, i32 } +495: ; preds = %413, %378 + %496 = landingpad { ptr, i32 } cleanup br label %_ZN17btCollisionObjectdlEPv.exit -491: ; preds = %463, %428 - %492 = landingpad { ptr, i32 } +497: ; preds = %466, %428 + %498 = landingpad { ptr, i32 } cleanup br label %_ZN17btCollisionObjectdlEPv.exit -_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192: ; preds = %_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev.exit, %.noexc190, %481 +_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192: ; preds = %_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev.exit, %.noexc190, %487 %.4 = phi ptr [ %307, %481 ], [ %307, %.noexc190 ], [ null, %_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev.exit ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #27 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #27 - %493 = load i32, ptr %37, align 4, !tbaa !304 - %494 = icmp sgt i32 %493, 0 - br i1 %494, label %.lr.ph.i.i.i195, label %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i + %499 = load i32, ptr %37, align 4, !tbaa !304 + %500 = icmp sgt i32 %499, 0 + br i1 %500, label %.lr.ph.i.i.i195, label %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i .lr.ph.i.i.i195: ; preds = %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 - %zext.i.i = zext nneg i32 %493 to i64 - br label %495 + %zext.i.i = zext nneg i32 %499 to i64 + br label %501 -495: ; preds = %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i, %.lr.ph.i.i.i195 +501: ; preds = %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i, %.lr.ph.i.i.i195 %indvars.iv.i.i.i196 = phi i64 [ 0, %.lr.ph.i.i.i195 ], [ %indvars.iv.next.i.i.i197, %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i ] - %496 = load ptr, ptr %36, align 8, !tbaa !303 - %497 = getelementptr inbounds nuw %class.btAlignedObjectArray.52, ptr %496, i64 %indvars.iv.i.i.i196 - %498 = getelementptr inbounds nuw i8, ptr %497, i64 16 - %499 = load ptr, ptr %498, align 8, !tbaa !51 - %.not.i.i.i.i.i.i = icmp ne ptr %499, null - %500 = getelementptr inbounds nuw i8, ptr %497, i64 24 - %501 = load i8, ptr %500, align 8, !range !33 - %502 = trunc nuw i8 %501 to i1 - %or.cond.i.i.i.i.i = select i1 %.not.i.i.i.i.i.i, i1 %502, i1 false - br i1 %or.cond.i.i.i.i.i, label %503, label %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i - -503: ; preds = %495 - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %499) - to label %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i unwind label %504 - -504: ; preds = %503 - %505 = landingpad { ptr, i32 } + %502 = load ptr, ptr %36, align 8, !tbaa !303 + %503 = getelementptr inbounds nuw %class.btAlignedObjectArray.52, ptr %502, i64 %indvars.iv.i.i.i196 + %504 = getelementptr inbounds nuw i8, ptr %503, i64 16 + %505 = load ptr, ptr %504, align 8, !tbaa !51 + %.not.i.i.i.i.i.i = icmp ne ptr %505, null + %506 = getelementptr inbounds nuw i8, ptr %503, i64 24 + %507 = load i8, ptr %506, align 8, !range !33 + %508 = trunc nuw i8 %507 to i1 + %or.cond.i.i.i.i.i = select i1 %.not.i.i.i.i.i.i, i1 %508, i1 false + br i1 %or.cond.i.i.i.i.i, label %509, label %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i + +509: ; preds = %501 + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %505) + to label %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i unwind label %510 + +510: ; preds = %509 + %511 = landingpad { ptr, i32 } catch ptr null - %506 = extractvalue { ptr, i32 } %505, 0 - call void @__clang_call_terminate(ptr %506) #28 + %512 = extractvalue { ptr, i32 } %511, 0 + call void @__clang_call_terminate(ptr %512) #28 unreachable -_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i: ; preds = %503, %495 - %507 = getelementptr inbounds nuw i8, ptr %497, i64 4 - store i8 1, ptr %500, align 8, !tbaa !47 - store ptr null, ptr %498, align 8, !tbaa !51 - store i32 0, ptr %507, align 4, !tbaa !52 - %508 = getelementptr inbounds nuw i8, ptr %497, i64 8 - store i32 0, ptr %508, align 8, !tbaa !53 +_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i: ; preds = %509, %501 + %513 = getelementptr inbounds nuw i8, ptr %503, i64 4 + store i8 1, ptr %506, align 8, !tbaa !47 + store ptr null, ptr %504, align 8, !tbaa !51 + store i32 0, ptr %513, align 4, !tbaa !52 + %514 = getelementptr inbounds nuw i8, ptr %503, i64 8 + store i32 0, ptr %514, align 8, !tbaa !53 %indvars.iv.next.i.i.i197 = add nuw nsw i64 %indvars.iv.i.i.i196, 1 - %509 = icmp eq i64 %indvars.iv.next.i.i.i197, %zext.i.i - br i1 %509, label %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i, label %495, !llvm.loop !337 + %515 = icmp eq i64 %indvars.iv.next.i.i.i197, %zext.i.i + br i1 %515, label %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i, label %501, !llvm.loop !337 _ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i: ; preds = %_ZN20btAlignedObjectArrayIiED2Ev.exit.i.i.i, %_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv.exit192 - %510 = load ptr, ptr %36, align 8, !tbaa !303 - %.not.i.i.i193 = icmp ne ptr %510, null - %511 = load i8, ptr %35, align 8, !range !33 - %512 = trunc nuw i8 %511 to i1 - %or.cond.i.i194 = select i1 %.not.i.i.i193, i1 %512, i1 false - br i1 %or.cond.i.i194, label %513, label %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit - -513: ; preds = %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %510) - to label %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit unwind label %514 - -514: ; preds = %513 - %515 = landingpad { ptr, i32 } + %516 = load ptr, ptr %36, align 8, !tbaa !303 + %.not.i.i.i193 = icmp ne ptr %516, null + %517 = load i8, ptr %35, align 8, !range !33 + %518 = trunc nuw i8 %517 to i1 + %or.cond.i.i194 = select i1 %.not.i.i.i193, i1 %518, i1 false + br i1 %or.cond.i.i194, label %519, label %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit + +519: ; preds = %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %516) + to label %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit unwind label %520 + +520: ; preds = %519 + %521 = landingpad { ptr, i32 } catch ptr null - %516 = extractvalue { ptr, i32 } %515, 0 - call void @__clang_call_terminate(ptr %516) #28 + %522 = extractvalue { ptr, i32 } %521, 0 + call void @__clang_call_terminate(ptr %522) #28 unreachable -_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit: ; preds = %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i, %513 +_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit: ; preds = %_ZN20btAlignedObjectArrayIS_IiEE7destroyEii.exit.i.i, %519 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #27 - %517 = load ptr, ptr %32, align 8, !tbaa !37 - %.not.i.i.i198 = icmp ne ptr %517, null - %518 = load i8, ptr %31, align 8, !range !33 - %519 = trunc nuw i8 %518 to i1 - %or.cond.i.i199 = select i1 %.not.i.i.i198, i1 %519, i1 false - br i1 %or.cond.i.i199, label %520, label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit - -520: ; preds = %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %517) - to label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit unwind label %521 - -521: ; preds = %520 - %522 = landingpad { ptr, i32 } + %523 = load ptr, ptr %32, align 8, !tbaa !37 + %.not.i.i.i198 = icmp ne ptr %523, null + %524 = load i8, ptr %31, align 8, !range !33 + %525 = trunc nuw i8 %524 to i1 + %or.cond.i.i199 = select i1 %.not.i.i.i198, i1 %525, i1 false + br i1 %or.cond.i.i199, label %526, label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit + +526: ; preds = %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %523) + to label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit unwind label %527 + +527: ; preds = %526 + %528 = landingpad { ptr, i32 } catch ptr null - %523 = extractvalue { ptr, i32 } %522, 0 - call void @__clang_call_terminate(ptr %523) #28 + %529 = extractvalue { ptr, i32 } %528, 0 + call void @__clang_call_terminate(ptr %529) #28 unreachable -_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit: ; preds = %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit, %520 +_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit: ; preds = %_ZN20btAlignedObjectArrayIS_IiEED2Ev.exit, %526 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #27 - %524 = load ptr, ptr %4, align 8, !tbaa !322 - %525 = icmp eq ptr %524, %29 - br i1 %525, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i201, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i200 + %530 = load ptr, ptr %4, align 8, !tbaa !322 + %531 = icmp eq ptr %530, %29 + br i1 %531, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i201, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i200 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i201: ; preds = %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit - %526 = load i64, ptr %30, align 8, !tbaa !297 - %527 = icmp ult i64 %526, 16 - call void @llvm.assume(i1 %527) + %532 = load i64, ptr %30, align 8, !tbaa !297 + %533 = icmp ult i64 %532, 16 + call void @llvm.assume(i1 %533) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit202 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i200: ; preds = %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit - %528 = load i64, ptr %29, align 8, !tbaa !35 - %529 = add i64 %528, 1 - call void @_ZdlPvm(ptr noundef %524, i64 noundef %529) #30 + %534 = load i64, ptr %29, align 8, !tbaa !35 + %535 = add i64 %534, 1 + call void @_ZdlPvm(ptr noundef %530, i64 noundef %535) #30 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit202 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit202: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i201, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i200 @@ -7689,35 +7689,35 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit202: ; preds = %_Z call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %3) #27 ret ptr %.4 -_ZN17btCollisionObjectdlEPv.exit: ; preds = %.loopexit229, %.loopexit.split-lp, %313, %311, %364, %489, %491, %305 - %.pn92.pn.pn = phi { ptr, i32 } [ %.pn92.pn, %305 ], [ %365, %364 ], [ %312, %311 ], [ %492, %491 ], [ %490, %489 ], [ %314, %313 ], [ %lpad.loopexit, %.loopexit229 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] +_ZN17btCollisionObjectdlEPv.exit: ; preds = %.loopexit229, %.loopexit.split-lp, %313, %311, %364, %495, %497, %305 + %.pn92.pn.pn = phi { ptr, i32 } [ %.pn92.pn, %305 ], [ %365, %364 ], [ %312, %311 ], [ %498, %491 ], [ %496, %489 ], [ %314, %313 ], [ %lpad.loopexit, %.loopexit229 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #27 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #27 call void @_ZN20btAlignedObjectArrayIS_IiEED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %6) #27 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #27 call void @_ZN20btAlignedObjectArrayI9btVector3ED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %5) #27 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #27 - %530 = load ptr, ptr %4, align 8, !tbaa !322 - %531 = icmp eq ptr %530, %29 - br i1 %531, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i204, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i203 + %536 = load ptr, ptr %4, align 8, !tbaa !322 + %537 = icmp eq ptr %536, %29 + br i1 %537, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i204, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i203 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i204: ; preds = %_ZN17btCollisionObjectdlEPv.exit - %532 = load i64, ptr %30, align 8, !tbaa !297 - %533 = icmp ult i64 %532, 16 - call void @llvm.assume(i1 %533) + %538 = load i64, ptr %30, align 8, !tbaa !297 + %539 = icmp ult i64 %538, 16 + call void @llvm.assume(i1 %539) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i203: ; preds = %_ZN17btCollisionObjectdlEPv.exit - %534 = load i64, ptr %29, align 8, !tbaa !35 - %535 = add i64 %534, 1 - call void @_ZdlPvm(ptr noundef %530, i64 noundef %535) #30 + %540 = load i64, ptr %29, align 8, !tbaa !35 + %541 = add i64 %540, 1 + call void @_ZdlPvm(ptr noundef %536, i64 noundef %541) #30 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i204, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i203 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #27 - br label %536 + br label %542 -536: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205, %100 +542: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205, %100 %.pn92.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn92.pn.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit205 ], [ %101, %100 ] call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %3) #27 call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %3) #27 diff --git a/bench/ceres/optimized/line_search.ll b/bench/ceres/optimized/line_search.ll index 050e6e0a294..22d56730150 100644 --- a/bench/ceres/optimized/line_search.ll +++ b/bench/ceres/optimized/line_search.ll @@ -1817,10 +1817,10 @@ define hidden void @_ZNK5ceres8internal10LineSearch6SearchEdddPNS1_7SummaryE(ptr br i1 %43, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i: ; preds = %.critedge - %44 = getelementptr inbounds nuw i8, ptr %4, i64 168 - %45 = load i64, ptr %44, align 8, !tbaa !11 - %46 = icmp ult i64 %45, 16 - call void @llvm.assume(i1 %46) + %52 = getelementptr inbounds nuw i8, ptr %4, i64 168 + %53 = load i64, ptr %52, align 8, !tbaa !11 + %54 = icmp ult i64 %53, 16 + call void @llvm.assume(i1 %54) br label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i: ; preds = %.critedge, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i @@ -1828,30 +1828,30 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.threa br i1 %.not22.i.i, label %_ZN5ceres8internal10LineSearch7SummaryaSEOS2_.exit, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i, !prof !32 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i - %47 = getelementptr inbounds nuw i8, ptr %4, i64 168 - store i64 0, ptr %47, align 8, !tbaa !11 + %55 = getelementptr inbounds nuw i8, ptr %4, i64 168 + store i64 0, ptr %55, align 8, !tbaa !11 store i8 0, ptr %41, align 1, !tbaa !12 %.pre.i.i = load ptr, ptr %13, align 8, !tbaa !3 br label %_ZN5ceres8internal10LineSearch7SummaryaSEOS2_.exit _ZN5ceres8internal10LineSearch7SummaryaSEOS2_.exit: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i - %48 = phi ptr [ %.pre.i.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i ], [ %14, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i ] + %56 = phi ptr [ %.pre.i.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i ], [ %14, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i ] store i64 0, ptr %15, align 8, !tbaa !11 - store i8 0, ptr %48, align 1, !tbaa !12 - %49 = load ptr, ptr %13, align 8, !tbaa !3 - %50 = icmp eq ptr %49, %14 - br i1 %50, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i + store i8 0, ptr %56, align 1, !tbaa !12 + %57 = load ptr, ptr %13, align 8, !tbaa !3 + %58 = icmp eq ptr %57, %14 + br i1 %58, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i: ; preds = %_ZN5ceres8internal10LineSearch7SummaryaSEOS2_.exit - %51 = load i64, ptr %15, align 8, !tbaa !11 - %52 = icmp ult i64 %51, 16 - call void @llvm.assume(i1 %52) + %59 = load i64, ptr %15, align 8, !tbaa !11 + %60 = icmp ult i64 %59, 16 + call void @llvm.assume(i1 %60) br label %_ZN5ceres8internal10LineSearch7SummaryD2Ev.exit _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i: ; preds = %_ZN5ceres8internal10LineSearch7SummaryaSEOS2_.exit - %53 = load i64, ptr %14, align 8, !tbaa !12 - %54 = add i64 %53, 1 - call void @_ZdlPvm(ptr noundef %49, i64 noundef %54) #33 + %61 = load i64, ptr %14, align 8, !tbaa !12 + %62 = add i64 %61, 1 + call void @_ZdlPvm(ptr noundef %57, i64 noundef %62) #33 br label %_ZN5ceres8internal10LineSearch7SummaryD2Ev.exit _ZN5ceres8internal10LineSearch7SummaryD2Ev.exit: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i @@ -1860,31 +1860,31 @@ _ZN5ceres8internal10LineSearch7SummaryD2Ev.exit: ; preds = %_ZNKSt7__cxx1112bas %57 = getelementptr inbounds nuw i8, ptr %4, i64 108 %.fca.0.extract33 = extractvalue { i64, i32 } %9, 0 %.fca.1.extract34 = extractvalue { i64, i32 } %9, 1 - %58 = load ptr, ptr %30, align 8, !tbaa !45 - call void @free(ptr noundef %58) #32 - %59 = load ptr, ptr %20, align 8, !tbaa !45 - call void @free(ptr noundef %59) #32 + %63 = load ptr, ptr %30, align 8, !tbaa !45 + call void @free(ptr noundef %63) #32 + %64 = load ptr, ptr %20, align 8, !tbaa !45 + call void @free(ptr noundef %64) #32 call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %8) #32 - %60 = getelementptr inbounds nuw i8, ptr %0, i64 80 + %65 = getelementptr inbounds nuw i8, ptr %0, i64 80 call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %57, i8 0, i64 36, i1 false) - %61 = load ptr, ptr %60, align 8, !tbaa !79 - call void @_ZN5ceres8internal18LineSearchFunction19ResetTimeStatisticsEv(ptr noundef nonnull align 8 dereferenceable(80) %61) - %62 = load ptr, ptr %0, align 8, !tbaa !13 - %63 = getelementptr inbounds nuw i8, ptr %62, i64 16 - %64 = load ptr, ptr %63, align 8 + %66 = load ptr, ptr %65, align 8, !tbaa !79 + call void @_ZN5ceres8internal18LineSearchFunction19ResetTimeStatisticsEv(ptr noundef nonnull align 8 dereferenceable(80) %66) + %67 = load ptr, ptr %0, align 8, !tbaa !13 + %68 = getelementptr inbounds nuw i8, ptr %67, i64 16 + %69 = load ptr, ptr %68, align 8 call void %64(ptr noundef nonnull align 8 dereferenceable(88) %0, double noundef %1, double noundef %2, double noundef %3, ptr noundef nonnull %4) - %65 = load ptr, ptr %60, align 8, !tbaa !79 - call void @_ZNK5ceres8internal18LineSearchFunction14TimeStatisticsEPN4absl12lts_202401168DurationES5_(ptr noundef nonnull align 8 dereferenceable(80) %65, ptr noundef nonnull %57, ptr noundef nonnull %56) - %66 = call { i64, i32 } @_ZN4absl12lts_202401163NowEv() - %.fca.0.extract7 = extractvalue { i64, i32 } %66, 0 - %.fca.1.extract8 = extractvalue { i64, i32 } %66, 1 + %70 = load ptr, ptr %65, align 8, !tbaa !79 + call void @_ZNK5ceres8internal18LineSearchFunction14TimeStatisticsEPN4absl12lts_202401168DurationES5_(ptr noundef nonnull align 8 dereferenceable(80) %70, ptr noundef nonnull %57, ptr noundef nonnull %56) + %71 = call { i64, i32 } @_ZN4absl12lts_202401163NowEv() + %.fca.0.extract7 = extractvalue { i64, i32 } %71, 0 + %.fca.1.extract8 = extractvalue { i64, i32 } %71, 1 call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %6) store i64 %.fca.0.extract7, ptr %6, align 8 %.sroa.210.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %6, i64 8 store i32 %.fca.1.extract8, ptr %.sroa.210.0..sroa_idx.i.i, align 8 - %67 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN4absl12lts_202401168DurationmIES1_(ptr noundef nonnull align 4 dereferenceable(12) %6, i64 %.fca.0.extract33, i32 %.fca.1.extract34) #32 - %.sroa.011.0.copyload.i.i = load i64, ptr %67, align 4 - %.sroa.212.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %67, i64 8 + %72 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN4absl12lts_202401168DurationmIES1_(ptr noundef nonnull align 4 dereferenceable(12) %6, i64 %.fca.0.extract33, i32 %.fca.1.extract34) #32 + %.sroa.011.0.copyload.i.i = load i64, ptr %72, align 4 + %.sroa.212.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %72, i64 8 %.sroa.212.0.copyload.i.i = load i32, ptr %.sroa.212.0..sroa_idx.i.i, align 4, !tbaa !20 call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %6) store i64 %.sroa.011.0.copyload.i.i, ptr %55, align 8 diff --git a/bench/clamav/optimized/headers.ll b/bench/clamav/optimized/headers.ll index b57491fb593..86533961ed6 100644 --- a/bench/clamav/optimized/headers.ll +++ b/bench/clamav/optimized/headers.ll @@ -43,7 +43,7 @@ define void @_ZN10FileHeader5ResetEm(ptr noundef nonnull align 8 dereferenceable %18 = add i64 %17, %16 %..i.i = tail call i64 @llvm.umax.i64(i64 %14, i64 %18) %19 = load ptr, ptr %3, align 8, !tbaa !12 - %20 = tail call ptr @realloc(ptr noundef %19, i64 noundef %..i.i) #9 + %20 = tail call ptr @realloc(ptr noundef %19, i64 noundef %..i.i) #10 %21 = icmp eq ptr %20, null br i1 %21, label %22, label %_ZN5ArrayIhE3AddEm.exit.i @@ -94,7 +94,7 @@ define noundef nonnull align 8 dereferenceable(17184) ptr @_ZN10FileHeaderaSERS_ br i1 %.not.i, label %_ZN5ArrayIhE5ResetEv.exit, label %5 5: ; preds = %2 - tail call void @free(ptr noundef nonnull %4) #10 + tail call void @free(ptr noundef nonnull %4) #11 store ptr null, ptr %3, align 8, !tbaa !12 br label %_ZN5ArrayIhE5ResetEv.exit @@ -118,7 +118,7 @@ define linkonce_odr noundef nonnull align 8 dereferenceable(32) ptr @_ZN5ArrayIh br i1 %.not.i, label %_ZN5ArrayIhE5ResetEv.exit, label %4 4: ; preds = %2 - tail call void @free(ptr noundef nonnull %3) #10 + tail call void @free(ptr noundef nonnull %3) #11 store ptr null, ptr %0, align 8, !tbaa !12 br label %_ZN5ArrayIhE5ResetEv.exit @@ -156,7 +156,7 @@ _ZN5ArrayIhE5ResetEv.exit: ; preds = %2, %4 %19 = add i64 %17, 32 %20 = add i64 %19, %18 %..i.i = tail call i64 @llvm.umax.i64(i64 %16, i64 %20) - %21 = tail call ptr @realloc(ptr noundef %15, i64 noundef %..i.i) #9 + %21 = tail call ptr @realloc(ptr noundef %15, i64 noundef %..i.i) #10 %22 = icmp eq ptr %21, null br i1 %22, label %23, label %_ZN5ArrayIhE5AllocEm.exit @@ -190,23 +190,23 @@ define void @_ZN10MainHeader5ResetEv(ptr noundef nonnull align 8 captures(addres br i1 %5, label %_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv.exit.i.i, label %_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_S_copyEPwPKwm.exit.i.i _ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv.exit.i.i: ; preds = %1 - %6 = getelementptr inbounds nuw i8, ptr %0, i64 80 - %7 = load i64, ptr %6, align 8, !tbaa !36 - %8 = icmp ult i64 %7, 4 - tail call void @llvm.assume(i1 %8) + %9 = getelementptr inbounds nuw i8, ptr %0, i64 80 + %10 = load i64, ptr %9, align 8, !tbaa !36 + %11 = icmp ult i64 %10, 4 + tail call void @llvm.assume(i1 %11) br label %_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_S_copyEPwPKwm.exit.i.i _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_S_copyEPwPKwm.exit.i.i: ; preds = %_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv.exit.i.i, %1 - %9 = getelementptr inbounds nuw i8, ptr %0, i64 80 - store i64 0, ptr %9, align 8, !tbaa !36 + %12 = getelementptr inbounds nuw i8, ptr %0, i64 80 + store i64 0, ptr %12, align 8, !tbaa !36 store i32 0, ptr %3, align 4, !tbaa !37 - %10 = getelementptr inbounds nuw i8, ptr %0, i64 104 - store i64 0, ptr %10, align 8, !tbaa !39 + %13 = getelementptr inbounds nuw i8, ptr %0, i64 104 + store i64 0, ptr %13, align 8, !tbaa !39 ret void } ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #4 +declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #5 declare i32 @__gxx_personality_v0(...) @@ -215,25 +215,25 @@ declare void @_ZN12ErrorHandler13GeneralErrMsgEPKwz(ptr noundef nonnull align 4 declare void @_ZN12ErrorHandler11MemoryErrorEv(ptr noundef nonnull align 4 dereferenceable(14)) local_unnamed_addr #1 ; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) -declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #5 +declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #6 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) -declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #6 +declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #7 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) -declare void @llvm.assume(i1 noundef) #7 +declare void @llvm.assume(i1 noundef) #8 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umax.i64(i64, i64) #8 +declare i64 @llvm.umax.i64(i64, i64) #9 attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #3 = { mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #5 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #6 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } +attributes #4 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: write) } +attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 = { mustprogress nounwind willreturn allockind("free") memory(argmem: write) } attributes #8 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #9 = { nounwind allocsize(1) } attributes #10 = { nounwind } diff --git a/bench/cmake/optimized/cmCTest.ll b/bench/cmake/optimized/cmCTest.ll index 2499ffa62ef..8fdc65b8ce6 100644 --- a/bench/cmake/optimized/cmCTest.ll +++ b/bench/cmake/optimized/cmCTest.ll @@ -24697,8 +24697,8 @@ _ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit171: ; pred %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %363, i64 48 store ptr %6, ptr %.sroa.9.0..sroa_idx, align 16, !tbaa !612, !noalias !598 store ptr %363, ptr %365, align 8, !noalias !598 - %.sroa.4396.0..sroa_idx = getelementptr inbounds nuw i8, ptr %362, i64 32 - store i64 0, ptr %.sroa.4396.0..sroa_idx, align 8, !noalias !598 + %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %362, i64 32 + store i64 0, ptr %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx, align 8, !noalias !598 %366 = getelementptr inbounds nuw i8, ptr %362, i64 40 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZN7cmCTest14RunMakeCommandERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES1_EERS9_PiPKcNSt6chrono8durationIdSt5ratioILl1ELl1EEEERSoN15cmProcessOutput8EncodingEE3$_0E10_M_managerERSt9_Any_dataRKSQ_St18_Manager_operation", ptr %366, align 8, !tbaa !613, !noalias !598 %367 = getelementptr inbounds nuw i8, ptr %362, i64 48 @@ -24716,8 +24716,8 @@ _ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit171: ; pred %.sroa.6394.0..sroa_idx = getelementptr inbounds nuw i8, ptr %368, i64 24 store ptr %6, ptr %.sroa.6394.0..sroa_idx, align 8, !tbaa !612, !noalias !598 store ptr %368, ptr %370, align 8, !noalias !598 - %.sroa.4399.0..sroa_idx = getelementptr inbounds nuw i8, ptr %362, i64 64 - store i64 0, ptr %.sroa.4399.0..sroa_idx, align 8, !noalias !598 + %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %362, i64 64 + store i64 0, ptr %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx, align 8, !noalias !598 %371 = getelementptr inbounds nuw i8, ptr %362, i64 72 store ptr @"_ZNSt17_Function_handlerIFvvEZN7cmCTest14RunMakeCommandERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS7_PiPKcNSt6chrono8durationIdSt5ratioILl1ELl1EEEERSoN15cmProcessOutput8EncodingEE3$_1E10_M_managerERSt9_Any_dataRKSO_St18_Manager_operation", ptr %371, align 8, !tbaa !613, !noalias !598 %372 = getelementptr inbounds nuw i8, ptr %362, i64 80 @@ -71109,8 +71109,8 @@ define internal fastcc void @"_ZZN7cmCTest10RunCommandERKSt6vectorINSt7__cxx1112 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %18, i64 16 store ptr %16, ptr %.sroa.5.0..sroa_idx, align 16, !tbaa !608, !noalias !2774 store ptr %18, ptr %19, align 8, !noalias !2774 - %.sroa.48.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 32 - store i64 0, ptr %.sroa.48.0..sroa_idx, align 8, !noalias !2774 + %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 32 + store i64 0, ptr %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx, align 8, !noalias !2774 %20 = getelementptr inbounds nuw i8, ptr %17, i64 40 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZZN7cmCTest10RunCommandERKS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcES1_EESaIS9_EEPS9_SE_PiPKcNSt6chrono8durationIdSt5ratioILl1ELl1EEEEN15cmProcessOutput8EncodingEENK3$_1clERN2cm11uv_pipe_ptrEiRS2_RbEUlS2_E_E10_M_managerERSt9_Any_dataRKSX_St18_Manager_operation", ptr %20, align 8, !tbaa !613, !noalias !2774 %21 = getelementptr inbounds nuw i8, ptr %17, i64 48 @@ -71118,8 +71118,8 @@ define internal fastcc void @"_ZZN7cmCTest10RunCommandERKSt6vectorINSt7__cxx1112 %22 = getelementptr inbounds nuw i8, ptr %17, i64 56 %23 = ptrtoint ptr %5 to i64 store i64 %23, ptr %22, align 8, !noalias !2774 - %.sroa.411.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 64 - store i64 0, ptr %.sroa.411.0..sroa_idx, align 8, !noalias !2774 + %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 64 + store i64 0, ptr %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx, align 8, !noalias !2774 %24 = getelementptr inbounds nuw i8, ptr %17, i64 72 store ptr @"_ZNSt17_Function_handlerIFvvEZZN7cmCTest10RunCommandERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEPS8_SD_PiPKcNSt6chrono8durationIdSt5ratioILl1ELl1EEEEN15cmProcessOutput8EncodingEENK3$_1clERN2cm11uv_pipe_ptrEiRS2_IcS7_ERbEUlvE_E10_M_managerERSt9_Any_dataRKSX_St18_Manager_operation", ptr %24, align 8, !tbaa !613, !noalias !2774 %25 = getelementptr inbounds nuw i8, ptr %17, i64 80 diff --git a/bench/cmake/optimized/cmCTestBuildHandler.ll b/bench/cmake/optimized/cmCTestBuildHandler.ll index ca75253bbf2..d99c7427a7b 100644 --- a/bench/cmake/optimized/cmCTestBuildHandler.ll +++ b/bench/cmake/optimized/cmCTestBuildHandler.ll @@ -16450,8 +16450,8 @@ define internal fastcc void @"_ZZN19cmCTestBuildHandler14RunMakeCommandERKNSt7__ %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %23, i64 40 store ptr %21, ptr %.sroa.9.0..sroa_idx, align 8, !tbaa !350, !noalias !567 store ptr %23, ptr %25, align 8, !noalias !567 - %.sroa.430.0..sroa_idx = getelementptr inbounds nuw i8, ptr %22, i64 32 - store i64 0, ptr %.sroa.430.0..sroa_idx, align 8, !noalias !567 + %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %22, i64 32 + store i64 0, ptr %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx, align 8, !noalias !567 %26 = getelementptr inbounds nuw i8, ptr %22, i64 40 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZZN19cmCTestBuildHandler14RunMakeCommandERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES1_EEPiPKciRSoN15cmProcessOutput8EncodingEENK3$_1clERN2cm11uv_pipe_ptrEiRSt5dequeIcS1_ERbiEUlS2_E_E10_M_managerERSt9_Any_dataRKSS_St18_Manager_operation", ptr %26, align 8, !tbaa !577, !noalias !567 %27 = getelementptr inbounds nuw i8, ptr %22, i64 48 @@ -16475,8 +16475,8 @@ define internal fastcc void @"_ZZN19cmCTestBuildHandler14RunMakeCommandERKNSt7__ %.sroa.10.0..sroa_idx = getelementptr inbounds nuw i8, ptr %28, i64 48 store ptr %5, ptr %.sroa.10.0..sroa_idx, align 16, !tbaa !578, !noalias !567 store ptr %28, ptr %30, align 8, !noalias !567 - %.sroa.433.0..sroa_idx = getelementptr inbounds nuw i8, ptr %22, i64 64 - store i64 0, ptr %.sroa.433.0..sroa_idx, align 8, !noalias !567 + %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %22, i64 64 + store i64 0, ptr %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx, align 8, !noalias !567 %31 = getelementptr inbounds nuw i8, ptr %22, i64 72 store ptr @"_ZNSt17_Function_handlerIFvvEZZN19cmCTestBuildHandler14RunMakeCommandERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPiPKciRSoN15cmProcessOutput8EncodingEENK3$_1clERN2cm11uv_pipe_ptrEiRSt5dequeIcS6_ERbiEUlvE_E10_M_managerERSt9_Any_dataRKSQ_St18_Manager_operation", ptr %31, align 8, !tbaa !577, !noalias !567 %32 = getelementptr inbounds nuw i8, ptr %22, i64 80 diff --git a/bench/cmake/optimized/cmNinjaTargetGenerator.ll b/bench/cmake/optimized/cmNinjaTargetGenerator.ll index b179de1e7a3..8ae0a90e41b 100644 --- a/bench/cmake/optimized/cmNinjaTargetGenerator.ll +++ b/bench/cmake/optimized/cmNinjaTargetGenerator.ll @@ -48706,7 +48706,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit134: ; preds = %_Z 171: ; preds = %169, %167 %.pn = phi { ptr, i32 } [ %170, %169 ], [ %168, %167 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #29 - br label %628 + br label %629 172: ; preds = %43 %173 = landingpad { ptr, i32 } @@ -48748,7 +48748,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit137: ; preds = %_Z %.pn66.pn = phi { ptr, i32 } [ %173, %172 ], [ %.pn66, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i136 ], [ %.pn66, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i135 ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #29 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #29 - br label %628 + br label %629 187: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit %188 = landingpad { ptr, i32 } @@ -48790,7 +48790,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit140: ; preds = %_Z %.pn69.pn = phi { ptr, i32 } [ %188, %187 ], [ %.pn69, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i139 ], [ %.pn69, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i138 ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #29 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #29 - br label %628 + br label %629 202: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit125 %203 = landingpad { ptr, i32 } @@ -48832,18 +48832,18 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit143: ; preds = %_Z %.pn72.pn = phi { ptr, i32 } [ %203, %202 ], [ %.pn72, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i142 ], [ %.pn72, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i141 ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #29 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #29 - br label %628 + br label %629 217: ; preds = %305, %302 %218 = landingpad { ptr, i32 } cleanup - br label %621 + br label %622 219: ; preds = %125, %120 %220 = landingpad { ptr, i32 } cleanup call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #29 - br label %621 + br label %622 221: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit131 %222 = call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull @.str.17) #29 @@ -49036,7 +49036,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit160: ; preds = %_Z 298: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit160, %284 %.pn75.pn = phi { ptr, i32 } [ %.pn75, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit160 ], [ %285, %284 ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #29 - br label %621 + br label %622 299: ; preds = %221, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit157, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit134 %300 = load i64, ptr %117, align 8, !tbaa !74 @@ -49194,7 +49194,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit170: ; preds = %_Z 354: ; preds = %352, %350 %.pn78 = phi { ptr, i32 } [ %353, %352 ], [ %351, %350 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %21) #29 - br label %621 + br label %622 355: ; preds = %.noexc.i %356 = landingpad { ptr, i32 } @@ -49234,7 +49234,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit173: ; preds = %_Z %.pn80.pn = phi { ptr, i32 } [ %356, %355 ], [ %.pn80, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i172 ], [ %.pn80, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i171 ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #29 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %22) #29 - br label %621 + br label %622 368: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit163 %369 = landingpad { ptr, i32 } @@ -49274,7 +49274,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176: ; preds = %_Z %.pn83.pn = phi { ptr, i32 } [ %369, %368 ], [ %.pn83, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i175 ], [ %.pn83, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i174 ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #29 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %24) #29 - br label %621 + br label %622 381: ; preds = %308 %382 = call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull @.str.17) #29 @@ -49396,7 +49396,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176: ; preds = %_Z 428: ; preds = %426, %424 %.pn86 = phi { ptr, i32 } [ %427, %426 ], [ %425, %424 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %26) #29 - br label %621 + br label %622 429: ; preds = %393, %389 %430 = landingpad { ptr, i32 } @@ -49412,7 +49412,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176: ; preds = %_Z 433: ; preds = %431, %429 %.pn88 = phi { ptr, i32 } [ %432, %431 ], [ %430, %429 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %27) #29 - br label %621 + br label %622 434: ; preds = %400, %396 %435 = landingpad { ptr, i32 } @@ -49428,7 +49428,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176: ; preds = %_Z 438: ; preds = %436, %434 %.pn90 = phi { ptr, i32 } [ %437, %436 ], [ %435, %434 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %28) #29 - br label %621 + br label %622 439: ; preds = %407, %403 %440 = landingpad { ptr, i32 } @@ -49444,7 +49444,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176: ; preds = %_Z 443: ; preds = %441, %439 %.pn92 = phi { ptr, i32 } [ %442, %441 ], [ %440, %439 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %29) #29 - br label %621 + br label %622 444: ; preds = %410 %445 = landingpad { ptr, i32 } @@ -49460,12 +49460,12 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176: ; preds = %_Z 448: ; preds = %446, %444 %.pn94 = phi { ptr, i32 } [ %447, %446 ], [ %445, %444 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %30) #29 - br label %621 + br label %622 449: ; preds = %414 %450 = landingpad { ptr, i32 } cleanup - br label %620 + br label %621 .lr.ph: ; preds = %420, %456 %.sroa.0205.0213 = phi ptr [ %457, %456 ], [ %421, %420 ] @@ -49507,7 +49507,7 @@ _ZNK22cmNinjaTargetGenerator18ConvertToNinjaPathERKNSt7__cxx1112basic_stringIcSt 462: ; preds = %460, %458 %.pn112 = phi { ptr, i32 } [ %461, %460 ], [ %459, %458 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %32) #29 - br label %620 + br label %621 463: ; preds = %._crit_edge %464 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN4Json5ValueixEPKc(ptr noundef nonnull align 8 dereferenceable(40) %9, ptr noundef nonnull @.str.192) @@ -49531,7 +49531,7 @@ _ZNK22cmNinjaTargetGenerator18ConvertToNinjaPathERKNSt7__cxx1112basic_stringIcSt ._crit_edge218: ; preds = %480, %467 call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %36) #29 invoke void @_ZN4Json5ValueC1ENS_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(40) %36, i32 noundef 6) - to label %487 unwind label %501 + to label %487 unwind label %502 471: ; preds = %._crit_edge %472 = landingpad { ptr, i32 } @@ -49547,12 +49547,12 @@ _ZNK22cmNinjaTargetGenerator18ConvertToNinjaPathERKNSt7__cxx1112basic_stringIcSt 475: ; preds = %473, %471 %.pn96 = phi { ptr, i32 } [ %474, %473 ], [ %472, %471 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %33) #29 - br label %620 + br label %621 476: ; preds = %465 %477 = landingpad { ptr, i32 } cleanup - br label %619 + br label %620 .lr.ph217: ; preds = %467, %480 %.sroa.0201.0215 = phi ptr [ %481, %480 ], [ %468, %467 ] @@ -49585,11 +49585,11 @@ _ZNK22cmNinjaTargetGenerator18ConvertToNinjaPathERKNSt7__cxx1112basic_stringIcSt 486: ; preds = %484, %482 %.pn107 = phi { ptr, i32 } [ %485, %484 ], [ %483, %482 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %35) #29 - br label %618 + br label %619 487: ; preds = %._crit_edge218 %488 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN4Json5ValueixEPKc(ptr noundef nonnull align 8 dereferenceable(40) %9, ptr noundef nonnull @.str.193) - to label %489 unwind label %503 + to label %489 unwind label %504 489: ; preds = %487 %490 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZN4Json5ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(40) %488, ptr noundef nonnull align 8 dereferenceable(40) %36) #29 @@ -49602,7 +49602,7 @@ _ZNK22cmNinjaTargetGenerator18ConvertToNinjaPathERKNSt7__cxx1112basic_stringIcSt %.not211219 = icmp eq ptr %492, %494 br i1 %.not211219, label %"_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EEaSIZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1EENSt9enable_ifIXsr9_CallableIT_EE5valueERSC_E4typeEOSH_.exit", label %.lr.ph222 -"_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EEaSIZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1EENSt9enable_ifIXsr9_CallableIT_EE5valueERSC_E4typeEOSH_.exit": ; preds = %508, %489 +"_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EEaSIZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1EENSt9enable_ifIXsr9_CallableIT_EE5valueERSC_E4typeEOSH_.exit": ; preds = %509, %489 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %38) #29 %495 = ptrtoint ptr %0 to i64 store i64 %495, ptr %38, align 8 @@ -49614,163 +49614,163 @@ _ZNK22cmNinjaTargetGenerator18ConvertToNinjaPathERKNSt7__cxx1112basic_stringIcSt store ptr @"_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_0E9_M_invokeERKSt9_Any_dataOS8_SA_", ptr %497, align 8, !tbaa !1975 %498 = getelementptr inbounds nuw i8, ptr %38, i64 32 store i64 %495, ptr %498, align 8 - %.sroa.4225.0..sroa_idx = getelementptr inbounds nuw i8, ptr %38, i64 40 - store i64 0, ptr %.sroa.4225.0..sroa_idx, align 8 - %499 = getelementptr inbounds nuw i8, ptr %38, i64 48 - store ptr @"_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1E10_M_managerERSt9_Any_dataRKSF_St18_Manager_operation", ptr %499, align 8, !tbaa !1975 + %499 = getelementptr inbounds nuw i8, ptr %38, i64 40 + store i64 0, ptr %499, align 8 + %.sroa.0.i.i.i179.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %38, i64 48 + store ptr @"_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1E10_M_managerERSt9_Any_dataRKSF_St18_Manager_operation", ptr %.sroa.0.i.i.i179.sroa.4.0..sroa_idx, align 8, !tbaa !1975 %500 = getelementptr inbounds nuw i8, ptr %38, i64 56 store ptr @"_ZNSt17_Function_handlerIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1E9_M_invokeERKSt9_Any_dataOS8_SA_", ptr %500, align 8, !tbaa !1975 %.pre = load ptr, ptr %418, align 8, !tbaa !88 invoke void @_ZN17cmDyndepCollation23AddCollationInformationERN4Json5ValueEPK17cmGeneratorTargetRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK26cmDyndepGeneratorCallbacks(ptr noundef nonnull align 8 dereferenceable(40) %9, ptr noundef %.pre, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(64) %38) - to label %515 unwind label %600 + to label %515 unwind label %601 -501: ; preds = %._crit_edge218 - %502 = landingpad { ptr, i32 } +502: ; preds = %._crit_edge218 + %503 = landingpad { ptr, i32 } cleanup - br label %505 + br label %506 -503: ; preds = %487 - %504 = landingpad { ptr, i32 } +504: ; preds = %487 + %505 = landingpad { ptr, i32 } cleanup call void @_ZN4Json5ValueD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %36) #29 - br label %505 + br label %506 -505: ; preds = %503, %501 - %.pn98 = phi { ptr, i32 } [ %504, %503 ], [ %502, %501 ] +506: ; preds = %504, %502 + %.pn98 = phi { ptr, i32 } [ %505, %503 ], [ %503, %501 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %36) #29 - br label %618 + br label %619 -.lr.ph222: ; preds = %489, %508 - %.sroa.0197.0220 = phi ptr [ %509, %508 ], [ %492, %489 ] +.lr.ph222: ; preds = %489, %509 + %.sroa.0197.0220 = phi ptr [ %510, %508 ], [ %492, %489 ] call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %37) #29 invoke void @_ZN4Json5ValueC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %37, ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0197.0220) - to label %506 unwind label %510 + to label %506 unwind label %511 -506: ; preds = %.lr.ph222 - %507 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN4Json5Value6appendEOS0_(ptr noundef nonnull align 8 dereferenceable(40) %490, ptr noundef nonnull align 8 dereferenceable(40) %37) - to label %508 unwind label %512 +507: ; preds = %.lr.ph222 + %508 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN4Json5Value6appendEOS0_(ptr noundef nonnull align 8 dereferenceable(40) %490, ptr noundef nonnull align 8 dereferenceable(40) %37) + to label %508 unwind label %513 -508: ; preds = %506 +509: ; preds = %507 call void @_ZN4Json5ValueD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %37) #29 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %37) #29 - %509 = getelementptr inbounds nuw i8, ptr %.sroa.0197.0220, i64 32 - %.not211 = icmp eq ptr %509, %494 + %510 = getelementptr inbounds nuw i8, ptr %.sroa.0197.0220, i64 32 + %.not211 = icmp eq ptr %510, %494 br i1 %.not211, label %"_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EEaSIZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1EENSt9enable_ifIXsr9_CallableIT_EE5valueERSC_E4typeEOSH_.exit", label %.lr.ph222 -510: ; preds = %.lr.ph222 - %511 = landingpad { ptr, i32 } +511: ; preds = %.lr.ph222 + %512 = landingpad { ptr, i32 } cleanup - br label %514 + br label %515 -512: ; preds = %506 - %513 = landingpad { ptr, i32 } +513: ; preds = %507 + %514 = landingpad { ptr, i32 } cleanup call void @_ZN4Json5ValueD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %37) #29 - br label %514 + br label %515 -514: ; preds = %512, %510 - %.pn104 = phi { ptr, i32 } [ %513, %512 ], [ %511, %510 ] +515: ; preds = %513, %511 + %.pn104 = phi { ptr, i32 } [ %514, %512 ], [ %512, %510 ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %37) #29 - br label %618 + br label %619 -515: ; preds = %"_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EEaSIZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1EENSt9enable_ifIXsr9_CallableIT_EE5valueERSC_E4typeEOSH_.exit" +516: ; preds = %"_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EEaSIZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1EENSt9enable_ifIXsr9_CallableIT_EE5valueERSC_E4typeEOSH_.exit" call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #29 invoke void @_ZNK22cmNinjaTargetGenerator23GetTargetDependInfoPathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull align 8 dereferenceable(32) %2) - to label %516 unwind label %602 + to label %516 unwind label %603 -516: ; preds = %515 +517: ; preds = %516 call void @llvm.lifetime.start.p0(i64 616, ptr nonnull %40) #29 invoke void @_ZN21cmGeneratedFileStreamC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb16codecvt_Encoding(ptr noundef nonnull align 8 dereferenceable(348) %40, ptr noundef nonnull align 8 dereferenceable(32) %39, i1 noundef zeroext false, i32 noundef 0) - to label %517 unwind label %604 + to label %517 unwind label %605 -517: ; preds = %516 - %518 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4JsonlsERSoRKNS_5ValueE(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(40) %9) - to label %519 unwind label %606 +518: ; preds = %517 + %519 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4JsonlsERSoRKNS_5ValueE(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(40) %9) + to label %519 unwind label %607 -519: ; preds = %517 +520: ; preds = %518 call void @_ZN21cmGeneratedFileStreamD1Ev(ptr noundef nonnull align 8 dereferenceable(348) %40) #29 call void @llvm.lifetime.end.p0(i64 616, ptr nonnull %40) #29 - %520 = load ptr, ptr %39, align 8, !tbaa !72 - %521 = getelementptr inbounds nuw i8, ptr %39, i64 16 - %522 = icmp eq ptr %520, %521 - br i1 %522, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i182, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i181 - -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i182: ; preds = %519 - %523 = getelementptr inbounds nuw i8, ptr %39, i64 8 - %524 = load i64, ptr %523, align 8, !tbaa !74 - %525 = icmp ult i64 %524, 16 - call void @llvm.assume(i1 %525) + %521 = load ptr, ptr %39, align 8, !tbaa !72 + %522 = getelementptr inbounds nuw i8, ptr %39, i64 16 + %523 = icmp eq ptr %521, %522 + br i1 %523, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i182, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i181 + +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i182: ; preds = %520 + %524 = getelementptr inbounds nuw i8, ptr %39, i64 8 + %525 = load i64, ptr %524, align 8, !tbaa !74 + %526 = icmp ult i64 %525, 16 + call void @llvm.assume(i1 %526) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit183 -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i181: ; preds = %519 - %526 = load i64, ptr %521, align 8, !tbaa !76 - %527 = add i64 %526, 1 - call void @_ZdlPvm(ptr noundef %520, i64 noundef %527) #28 +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i181: ; preds = %520 + %527 = load i64, ptr %522, align 8, !tbaa !76 + %528 = add i64 %527, 1 + call void @_ZdlPvm(ptr noundef %521, i64 noundef %528) #28 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit183 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit183: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i182, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i181 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #29 - %528 = load ptr, ptr %499, align 8, !tbaa !1308 - %.not.i.i184 = icmp eq ptr %528, null - br i1 %.not.i.i184, label %_ZNSt14_Function_baseD2Ev.exit.i, label %529 + %529 = load ptr, ptr %499, align 8, !tbaa !1308 + %.not.i.i184 = icmp eq ptr %529, null + br i1 %.not.i.i184, label %_ZNSt14_Function_baseD2Ev.exit.i, label %530 -529: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit183 - %530 = invoke noundef zeroext i1 %528(ptr noundef nonnull align 8 dereferenceable(32) %498, ptr noundef nonnull align 8 dereferenceable(32) %498, i32 noundef 3) - to label %_ZNSt14_Function_baseD2Ev.exit.i unwind label %531 +530: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit183 + %531 = invoke noundef zeroext i1 %528(ptr noundef nonnull align 8 dereferenceable(32) %498, ptr noundef nonnull align 8 dereferenceable(32) %498, i32 noundef 3) + to label %_ZNSt14_Function_baseD2Ev.exit.i unwind label %532 -531: ; preds = %529 - %532 = landingpad { ptr, i32 } +532: ; preds = %530 + %533 = landingpad { ptr, i32 } catch ptr null - %533 = extractvalue { ptr, i32 } %532, 0 - call void @__clang_call_terminate(ptr %533) #30 + %534 = extractvalue { ptr, i32 } %533, 0 + call void @__clang_call_terminate(ptr %534) #30 unreachable -_ZNSt14_Function_baseD2Ev.exit.i: ; preds = %529, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit183 - %534 = load ptr, ptr %496, align 8, !tbaa !1308 - %.not.i1.i = icmp eq ptr %534, null - br i1 %.not.i1.i, label %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit, label %535 +_ZNSt14_Function_baseD2Ev.exit.i: ; preds = %530, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit183 + %535 = load ptr, ptr %496, align 8, !tbaa !1308 + %.not.i1.i = icmp eq ptr %535, null + br i1 %.not.i1.i, label %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit, label %536 -535: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i - %536 = invoke noundef zeroext i1 %534(ptr noundef nonnull align 8 dereferenceable(64) %38, ptr noundef nonnull align 8 dereferenceable(64) %38, i32 noundef 3) - to label %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit unwind label %537 +536: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i + %537 = invoke noundef zeroext i1 %534(ptr noundef nonnull align 8 dereferenceable(64) %38, ptr noundef nonnull align 8 dereferenceable(64) %38, i32 noundef 3) + to label %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit unwind label %538 -537: ; preds = %535 - %538 = landingpad { ptr, i32 } +538: ; preds = %536 + %539 = landingpad { ptr, i32 } catch ptr null - %539 = extractvalue { ptr, i32 } %538, 0 - call void @__clang_call_terminate(ptr %539) #30 + %540 = extractvalue { ptr, i32 } %539, 0 + call void @__clang_call_terminate(ptr %540) #30 unreachable -_ZN26cmDyndepGeneratorCallbacksD2Ev.exit: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i, %535 +_ZN26cmDyndepGeneratorCallbacksD2Ev.exit: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i, %536 call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %38) #29 - %540 = load ptr, ptr %491, align 8, !tbaa !339 - %541 = load ptr, ptr %493, align 8, !tbaa !340 - %.not4.i.i.i.i.i = icmp eq ptr %540, %541 + %541 = load ptr, ptr %491, align 8, !tbaa !339 + %542 = load ptr, ptr %493, align 8, !tbaa !340 + %.not4.i.i.i.i.i = icmp eq ptr %541, %542 br i1 %.not4.i.i.i.i.i, label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i.i, label %.lr.ph.i.i.i.i.i .lr.ph.i.i.i.i.i: ; preds = %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i - %.05.i.i.i.i.i = phi ptr [ %550, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i ], [ %540, %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit ] - %542 = load ptr, ptr %.05.i.i.i.i.i, align 8, !tbaa !72 - %543 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 16 - %544 = icmp eq ptr %542, %543 - br i1 %544, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i.i + %.05.i.i.i.i.i = phi ptr [ %551, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i ], [ %541, %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit ] + %543 = load ptr, ptr %.05.i.i.i.i.i, align 8, !tbaa !72 + %544 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 16 + %545 = icmp eq ptr %543, %544 + br i1 %545, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i - %545 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 8 - %546 = load i64, ptr %545, align 8, !tbaa !74 - %547 = icmp ult i64 %546, 16 - call void @llvm.assume(i1 %547) + %546 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 8 + %547 = load i64, ptr %546, align 8, !tbaa !74 + %548 = icmp ult i64 %547, 16 + call void @llvm.assume(i1 %548) br label %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i - %548 = load i64, ptr %543, align 8, !tbaa !76 - %549 = add i64 %548, 1 - call void @_ZdlPvm(ptr noundef %542, i64 noundef %549) #28 + %549 = load i64, ptr %544, align 8, !tbaa !76 + %550 = add i64 %549, 1 + call void @_ZdlPvm(ptr noundef %543, i64 noundef %550) #28 br label %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i _ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i.i, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i - %550 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 32 - %.not.i.i.i.i.i = icmp eq ptr %550, %541 + %551 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 32 + %.not.i.i.i.i.i = icmp eq ptr %551, %542 br i1 %.not.i.i.i.i.i, label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i.i, label %.lr.ph.i.i.i.i.i, !llvm.loop !341 _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i.i: ; preds = %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i @@ -49778,48 +49778,48 @@ _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSa br label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i.i _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i.i: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i.i, %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit - %551 = phi ptr [ %.pr.i.i, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i.i ], [ %540, %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit ] - %.not.i.i.i.i = icmp eq ptr %551, null - br i1 %.not.i.i.i.i, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i, label %552 - -552: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i.i - %553 = getelementptr inbounds nuw i8, ptr %34, i64 40 - %554 = load ptr, ptr %553, align 8, !tbaa !342 - %555 = ptrtoint ptr %554 to i64 - %556 = ptrtoint ptr %551 to i64 - %557 = sub i64 %555, %556 - call void @_ZdlPvm(ptr noundef nonnull %551, i64 noundef %557) #28 + %552 = phi ptr [ %.pr.i.i, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i.i ], [ %541, %_ZN26cmDyndepGeneratorCallbacksD2Ev.exit ] + %.not.i.i.i.i = icmp eq ptr %552, null + br i1 %.not.i.i.i.i, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i, label %553 + +553: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i.i + %554 = getelementptr inbounds nuw i8, ptr %34, i64 40 + %555 = load ptr, ptr %554, align 8, !tbaa !342 + %556 = ptrtoint ptr %555 to i64 + %557 = ptrtoint ptr %552 to i64 + %558 = sub i64 %556, %557 + call void @_ZdlPvm(ptr noundef nonnull %552, i64 noundef %558) #28 br label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i -_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i: ; preds = %552, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i.i - %558 = load ptr, ptr %34, align 8, !tbaa !339 - %559 = load ptr, ptr %469, align 8, !tbaa !340 - %.not4.i.i.i.i1.i = icmp eq ptr %558, %559 +_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i: ; preds = %553, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i.i + %559 = load ptr, ptr %34, align 8, !tbaa !339 + %560 = load ptr, ptr %469, align 8, !tbaa !340 + %.not4.i.i.i.i1.i = icmp eq ptr %559, %560 br i1 %.not4.i.i.i.i1.i, label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i9.i, label %.lr.ph.i.i.i.i2.i .lr.ph.i.i.i.i2.i: ; preds = %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i5.i - %.05.i.i.i.i3.i = phi ptr [ %568, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i5.i ], [ %558, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i ] - %560 = load ptr, ptr %.05.i.i.i.i3.i, align 8, !tbaa !72 - %561 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i3.i, i64 16 - %562 = icmp eq ptr %560, %561 - br i1 %562, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i11.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i4.i + %.05.i.i.i.i3.i = phi ptr [ %569, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i5.i ], [ %559, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i ] + %561 = load ptr, ptr %.05.i.i.i.i3.i, align 8, !tbaa !72 + %562 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i3.i, i64 16 + %563 = icmp eq ptr %561, %562 + br i1 %563, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i11.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i4.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i11.i: ; preds = %.lr.ph.i.i.i.i2.i - %563 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i3.i, i64 8 - %564 = load i64, ptr %563, align 8, !tbaa !74 - %565 = icmp ult i64 %564, 16 - call void @llvm.assume(i1 %565) + %564 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i3.i, i64 8 + %565 = load i64, ptr %564, align 8, !tbaa !74 + %566 = icmp ult i64 %565, 16 + call void @llvm.assume(i1 %566) br label %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i5.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i4.i: ; preds = %.lr.ph.i.i.i.i2.i - %566 = load i64, ptr %561, align 8, !tbaa !76 - %567 = add i64 %566, 1 - call void @_ZdlPvm(ptr noundef %560, i64 noundef %567) #28 + %567 = load i64, ptr %562, align 8, !tbaa !76 + %568 = add i64 %567, 1 + call void @_ZdlPvm(ptr noundef %561, i64 noundef %568) #28 br label %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i5.i _ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i5.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i4.i, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i11.i - %568 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i3.i, i64 32 - %.not.i.i.i.i6.i = icmp eq ptr %568, %559 + %569 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i3.i, i64 32 + %.not.i.i.i.i6.i = icmp eq ptr %569, %560 br i1 %.not.i.i.i.i6.i, label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i7.i, label %.lr.ph.i.i.i.i2.i, !llvm.loop !341 _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i7.i: ; preds = %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i5.i @@ -49827,49 +49827,49 @@ _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSa br label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i9.i _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i9.i: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i7.i, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i - %569 = phi ptr [ %.pr.i8.i, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i7.i ], [ %558, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i ] - %.not.i.i.i10.i = icmp eq ptr %569, null - br i1 %.not.i.i.i10.i, label %_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit, label %570 - -570: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i9.i - %571 = getelementptr inbounds nuw i8, ptr %34, i64 16 - %572 = load ptr, ptr %571, align 8, !tbaa !342 - %573 = ptrtoint ptr %572 to i64 - %574 = ptrtoint ptr %569 to i64 - %575 = sub i64 %573, %574 - call void @_ZdlPvm(ptr noundef nonnull %569, i64 noundef %575) #28 + %570 = phi ptr [ %.pr.i8.i, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i7.i ], [ %559, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i ] + %.not.i.i.i10.i = icmp eq ptr %570, null + br i1 %.not.i.i.i10.i, label %_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit, label %571 + +571: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i9.i + %572 = getelementptr inbounds nuw i8, ptr %34, i64 16 + %573 = load ptr, ptr %572, align 8, !tbaa !342 + %574 = ptrtoint ptr %573 to i64 + %575 = ptrtoint ptr %570 to i64 + %576 = sub i64 %574, %575 + call void @_ZdlPvm(ptr noundef nonnull %570, i64 noundef %576) #28 br label %_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit -_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i9.i, %570 +_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i9.i, %571 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %34) #29 - %576 = load ptr, ptr %31, align 8, !tbaa !339 - %577 = load ptr, ptr %422, align 8, !tbaa !340 - %.not4.i.i.i.i = icmp eq ptr %576, %577 + %577 = load ptr, ptr %31, align 8, !tbaa !339 + %578 = load ptr, ptr %422, align 8, !tbaa !340 + %.not4.i.i.i.i = icmp eq ptr %577, %578 br i1 %.not4.i.i.i.i, label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i, label %.lr.ph.i.i.i.i .lr.ph.i.i.i.i: ; preds = %_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i - %.05.i.i.i.i = phi ptr [ %586, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i ], [ %576, %_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit ] - %578 = load ptr, ptr %.05.i.i.i.i, align 8, !tbaa !72 - %579 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i, i64 16 - %580 = icmp eq ptr %578, %579 - br i1 %580, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i + %.05.i.i.i.i = phi ptr [ %587, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i ], [ %577, %_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit ] + %579 = load ptr, ptr %.05.i.i.i.i, align 8, !tbaa !72 + %580 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i, i64 16 + %581 = icmp eq ptr %579, %580 + br i1 %581, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i - %581 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i, i64 8 - %582 = load i64, ptr %581, align 8, !tbaa !74 - %583 = icmp ult i64 %582, 16 - call void @llvm.assume(i1 %583) + %582 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i, i64 8 + %583 = load i64, ptr %582, align 8, !tbaa !74 + %584 = icmp ult i64 %583, 16 + call void @llvm.assume(i1 %584) br label %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i - %584 = load i64, ptr %579, align 8, !tbaa !76 - %585 = add i64 %584, 1 - call void @_ZdlPvm(ptr noundef %578, i64 noundef %585) #28 + %585 = load i64, ptr %580, align 8, !tbaa !76 + %586 = add i64 %585, 1 + call void @_ZdlPvm(ptr noundef %579, i64 noundef %586) #28 br label %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i _ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i - %586 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i, i64 32 - %.not.i.i.i.i185 = icmp eq ptr %586, %577 + %587 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i, i64 32 + %.not.i.i.i.i185 = icmp eq ptr %587, %578 br i1 %.not.i.i.i.i185, label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i, label %.lr.ph.i.i.i.i, !llvm.loop !341 _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i: ; preds = %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i @@ -49877,35 +49877,35 @@ _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSa br label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i, %_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit - %587 = phi ptr [ %.pr.i, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i ], [ %576, %_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit ] - %.not.i.i.i = icmp eq ptr %587, null - br i1 %.not.i.i.i, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit, label %588 - -588: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i - %589 = getelementptr inbounds nuw i8, ptr %31, i64 16 - %590 = load ptr, ptr %589, align 8, !tbaa !342 - %591 = ptrtoint ptr %590 to i64 - %592 = ptrtoint ptr %587 to i64 - %593 = sub i64 %591, %592 - call void @_ZdlPvm(ptr noundef nonnull %587, i64 noundef %593) #28 + %588 = phi ptr [ %.pr.i, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i ], [ %577, %_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev.exit ] + %.not.i.i.i = icmp eq ptr %588, null + br i1 %.not.i.i.i, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit, label %589 + +589: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i + %590 = getelementptr inbounds nuw i8, ptr %31, i64 16 + %591 = load ptr, ptr %590, align 8, !tbaa !342 + %592 = ptrtoint ptr %591 to i64 + %593 = ptrtoint ptr %588 to i64 + %594 = sub i64 %592, %593 + call void @_ZdlPvm(ptr noundef nonnull %588, i64 noundef %594) #28 br label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit -_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i, %588 +_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i, %589 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #29 - %594 = load ptr, ptr %17, align 8, !tbaa !72 - %595 = icmp eq ptr %594, %116 - br i1 %595, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i187, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i186 + %595 = load ptr, ptr %17, align 8, !tbaa !72 + %596 = icmp eq ptr %595, %116 + br i1 %596, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i187, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i186 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i187: ; preds = %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit - %596 = load i64, ptr %117, align 8, !tbaa !74 - %597 = icmp ult i64 %596, 16 - call void @llvm.assume(i1 %597) + %597 = load i64, ptr %117, align 8, !tbaa !74 + %598 = icmp ult i64 %597, 16 + call void @llvm.assume(i1 %598) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit188 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i186: ; preds = %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit - %598 = load i64, ptr %116, align 8, !tbaa !76 - %599 = add i64 %598, 1 - call void @_ZdlPvm(ptr noundef %594, i64 noundef %599) #28 + %599 = load i64, ptr %116, align 8, !tbaa !76 + %600 = add i64 %599, 1 + call void @_ZdlPvm(ptr noundef %595, i64 noundef %600) #28 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit188 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit188: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i187, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i186 @@ -49914,98 +49914,98 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit188: ; preds = %_Z call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #29 ret void -600: ; preds = %"_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EEaSIZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1EENSt9enable_ifIXsr9_CallableIT_EE5valueERSC_E4typeEOSH_.exit" - %601 = landingpad { ptr, i32 } +601: ; preds = %"_ZNSt8functionIFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK12cmSourceFileRKS5_EEaSIZN22cmNinjaTargetGenerator21WriteTargetDependInfoESA_SA_E3$_1EENSt9enable_ifIXsr9_CallableIT_EE5valueERSC_E4typeEOSH_.exit" + %602 = landingpad { ptr, i32 } cleanup - br label %617 + br label %618 -602: ; preds = %515 - %603 = landingpad { ptr, i32 } +603: ; preds = %516 + %604 = landingpad { ptr, i32 } cleanup br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit191 -604: ; preds = %516 - %605 = landingpad { ptr, i32 } +605: ; preds = %517 + %606 = landingpad { ptr, i32 } cleanup - br label %608 + br label %609 -606: ; preds = %517 - %607 = landingpad { ptr, i32 } +607: ; preds = %518 + %608 = landingpad { ptr, i32 } cleanup call void @_ZN21cmGeneratedFileStreamD1Ev(ptr noundef nonnull align 8 dereferenceable(348) %40) #29 - br label %608 + br label %609 -608: ; preds = %606, %604 - %.pn100 = phi { ptr, i32 } [ %607, %606 ], [ %605, %604 ] +609: ; preds = %607, %605 + %.pn100 = phi { ptr, i32 } [ %608, %606 ], [ %606, %604 ] call void @llvm.lifetime.end.p0(i64 616, ptr nonnull %40) #29 - %609 = load ptr, ptr %39, align 8, !tbaa !72 - %610 = getelementptr inbounds nuw i8, ptr %39, i64 16 - %611 = icmp eq ptr %609, %610 - br i1 %611, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i190, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i189 - -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i190: ; preds = %608 - %612 = getelementptr inbounds nuw i8, ptr %39, i64 8 - %613 = load i64, ptr %612, align 8, !tbaa !74 - %614 = icmp ult i64 %613, 16 - call void @llvm.assume(i1 %614) + %610 = load ptr, ptr %39, align 8, !tbaa !72 + %611 = getelementptr inbounds nuw i8, ptr %39, i64 16 + %612 = icmp eq ptr %610, %611 + br i1 %612, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i190, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i189 + +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i190: ; preds = %609 + %613 = getelementptr inbounds nuw i8, ptr %39, i64 8 + %614 = load i64, ptr %613, align 8, !tbaa !74 + %615 = icmp ult i64 %614, 16 + call void @llvm.assume(i1 %615) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit191 -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i189: ; preds = %608 - %615 = load i64, ptr %610, align 8, !tbaa !76 - %616 = add i64 %615, 1 - call void @_ZdlPvm(ptr noundef %609, i64 noundef %616) #28 +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i189: ; preds = %609 + %616 = load i64, ptr %611, align 8, !tbaa !76 + %617 = add i64 %616, 1 + call void @_ZdlPvm(ptr noundef %610, i64 noundef %617) #28 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit191 -_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit191: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i189, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i190, %602 - %.pn100.pn = phi { ptr, i32 } [ %603, %602 ], [ %.pn100, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i190 ], [ %.pn100, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i189 ] +_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit191: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i189, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i190, %603 + %.pn100.pn = phi { ptr, i32 } [ %604, %602 ], [ %.pn100, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i190 ], [ %.pn100, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i189 ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #29 - br label %617 + br label %618 -617: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit191, %600 - %.pn100.pn.pn = phi { ptr, i32 } [ %.pn100.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit191 ], [ %601, %600 ] +618: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit191, %601 + %.pn100.pn.pn = phi { ptr, i32 } [ %.pn100.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit191 ], [ %602, %600 ] call void @_ZN26cmDyndepGeneratorCallbacksD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %38) #29 call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %38) #29 - br label %618 + br label %619 -618: ; preds = %505, %514, %617, %486 +619: ; preds = %506, %515, %618, %486 %.pn107.pn = phi { ptr, i32 } [ %.pn107, %486 ], [ %.pn104, %514 ], [ %.pn100.pn.pn, %617 ], [ %.pn98, %505 ] call void @_ZN23cmCommonTargetGenerator16LinkedTargetDirsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %34) #29 - br label %619 + br label %620 -619: ; preds = %618, %476 +620: ; preds = %619, %476 %.pn107.pn.pn = phi { ptr, i32 } [ %.pn107.pn, %618 ], [ %477, %476 ] call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %34) #29 - br label %620 + br label %621 -620: ; preds = %475, %619, %462, %449 +621: ; preds = %475, %620, %462, %449 %.pn112.pn = phi { ptr, i32 } [ %.pn112, %462 ], [ %450, %449 ], [ %.pn107.pn.pn, %619 ], [ %.pn96, %475 ] call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #29 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #29 - br label %621 + br label %622 -621: ; preds = %448, %620, %443, %438, %433, %428, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit173, %354, %298, %219, %217 +622: ; preds = %448, %621, %443, %438, %433, %428, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit173, %354, %298, %219, %217 %.pn112.pn.pn.pn = phi { ptr, i32 } [ %.pn92, %443 ], [ %.pn90, %438 ], [ %.pn88, %433 ], [ %.pn86, %428 ], [ %.pn83.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit176 ], [ %.pn80.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit173 ], [ %.pn78, %354 ], [ %218, %217 ], [ %220, %219 ], [ %.pn75.pn, %298 ], [ %.pn112.pn, %620 ], [ %.pn94, %448 ] - %622 = load ptr, ptr %17, align 8, !tbaa !72 - %623 = icmp eq ptr %622, %116 - br i1 %623, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i193, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i192 - -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i193: ; preds = %621 - %624 = load i64, ptr %117, align 8, !tbaa !74 - %625 = icmp ult i64 %624, 16 - call void @llvm.assume(i1 %625) + %623 = load ptr, ptr %17, align 8, !tbaa !72 + %624 = icmp eq ptr %623, %116 + br i1 %624, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i193, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i192 + +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i193: ; preds = %622 + %625 = load i64, ptr %117, align 8, !tbaa !74 + %626 = icmp ult i64 %625, 16 + call void @llvm.assume(i1 %626) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit194 -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i192: ; preds = %621 - %626 = load i64, ptr %116, align 8, !tbaa !76 - %627 = add i64 %626, 1 - call void @_ZdlPvm(ptr noundef %622, i64 noundef %627) #28 +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i192: ; preds = %622 + %627 = load i64, ptr %116, align 8, !tbaa !76 + %628 = add i64 %627, 1 + call void @_ZdlPvm(ptr noundef %623, i64 noundef %628) #28 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit194 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit194: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i193, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i192 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #29 - br label %628 + br label %629 -628: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit194, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit143, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit140, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit137, %171 +629: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit194, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit143, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit140, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit137, %171 %.pn112.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn112.pn.pn.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit194 ], [ %.pn72.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit143 ], [ %.pn69.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit140 ], [ %.pn66.pn, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit137 ], [ %.pn, %171 ] call void @_ZN4Json5ValueD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %9) #29 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #29 diff --git a/bench/cmake/optimized/cmProcessTools.ll b/bench/cmake/optimized/cmProcessTools.ll index c48236b3933..933303eb46e 100644 --- a/bench/cmake/optimized/cmProcessTools.ll +++ b/bench/cmake/optimized/cmProcessTools.ll @@ -150,8 +150,8 @@ define dso_local void @_ZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilde %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %34, i64 16 store ptr %11, ptr %.sroa.5.0..sroa_idx, align 16, !tbaa !29, !noalias !16 store ptr %34, ptr %35, align 8, !noalias !16 - %.sroa.463.0..sroa_idx = getelementptr inbounds nuw i8, ptr %33, i64 32 - store i64 0, ptr %.sroa.463.0..sroa_idx, align 8, !noalias !16 + %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %33, i64 32 + store i64 0, ptr %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx, align 8, !noalias !16 %36 = getelementptr inbounds nuw i8, ptr %33, i64 40 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS4_12OutputParserES8_N15cmProcessOutput8EncodingEE3$_0E10_M_managerERSt9_Any_dataRKSD_St18_Manager_operation", ptr %36, align 8, !tbaa !31, !noalias !16 %37 = getelementptr inbounds nuw i8, ptr %33, i64 48 @@ -159,8 +159,8 @@ define dso_local void @_ZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilde %38 = getelementptr inbounds nuw i8, ptr %33, i64 56 %39 = ptrtoint ptr %7 to i64 store i64 %39, ptr %38, align 8, !noalias !16 - %.sroa.466.0..sroa_idx = getelementptr inbounds nuw i8, ptr %33, i64 64 - store i64 0, ptr %.sroa.466.0..sroa_idx, align 8, !noalias !16 + %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %33, i64 64 + store i64 0, ptr %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx, align 8, !noalias !16 %40 = getelementptr inbounds nuw i8, ptr %33, i64 72 store ptr @"_ZNSt17_Function_handlerIFvvEZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS1_12OutputParserES5_N15cmProcessOutput8EncodingEE3$_1E10_M_managerERSt9_Any_dataRKSA_St18_Manager_operation", ptr %40, align 8, !tbaa !31, !noalias !16 %41 = getelementptr inbounds nuw i8, ptr %33, i64 80 @@ -217,22 +217,22 @@ define dso_local void @_ZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilde %61 = invoke noalias noundef nonnull dereferenceable(88) ptr @_Znwm(i64 noundef 88) #24 to label %.noexc29 unwind label %92 -.noexc29: ; preds = %60 +.noexc31: ; preds = %60 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %61, i8 0, i64 88, i1 false), !noalias !47 store ptr %61, ptr %15, align 8, !tbaa !23, !alias.scope !47 %62 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #24 to label %"_ZNSt8functionIFvvEEaSIZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS3_12OutputParserES7_N15cmProcessOutput8EncodingEE3$_3EENSt9enable_ifIXsr9_CallableIT_EE5valueERS1_E4typeEOSC_.exit.i" unwind label %71, !noalias !41 -"_ZNSt8functionIFvvEEaSIZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS3_12OutputParserES7_N15cmProcessOutput8EncodingEE3$_3EENSt9enable_ifIXsr9_CallableIT_EE5valueERS1_E4typeEOSC_.exit.i": ; preds = %.noexc29 +"_ZNSt8functionIFvvEEaSIZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS3_12OutputParserES7_N15cmProcessOutput8EncodingEE3$_3EENSt9enable_ifIXsr9_CallableIT_EE5valueERS1_E4typeEOSC_.exit.i": ; preds = %.noexc31 %63 = getelementptr inbounds nuw i8, ptr %61, i64 24 store ptr %8, ptr %62, align 16, !tbaa !25, !noalias !41 - %.sroa.469.0..sroa_idx = getelementptr inbounds nuw i8, ptr %62, i64 8 - store ptr %9, ptr %.sroa.469.0..sroa_idx, align 8, !tbaa !27, !noalias !41 - %.sroa.570.0..sroa_idx = getelementptr inbounds nuw i8, ptr %62, i64 16 - store ptr %11, ptr %.sroa.570.0..sroa_idx, align 16, !tbaa !29, !noalias !41 + %.sroa.471.0..sroa_idx = getelementptr inbounds nuw i8, ptr %62, i64 8 + store ptr %9, ptr %.sroa.471.0..sroa_idx, align 8, !tbaa !27, !noalias !41 + %.sroa.572.0..sroa_idx = getelementptr inbounds nuw i8, ptr %62, i64 16 + store ptr %11, ptr %.sroa.572.0..sroa_idx, align 16, !tbaa !29, !noalias !41 store ptr %62, ptr %63, align 8, !noalias !41 - %.sroa.472.0..sroa_idx = getelementptr inbounds nuw i8, ptr %61, i64 32 - store i64 0, ptr %.sroa.472.0..sroa_idx, align 8, !noalias !41 + %.sroa.0.i.i.i.i29.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %61, i64 32 + store i64 0, ptr %.sroa.0.i.i.i.i29.sroa.4.0..sroa_idx, align 8, !noalias !41 %64 = getelementptr inbounds nuw i8, ptr %61, i64 40 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS4_12OutputParserES8_N15cmProcessOutput8EncodingEE3$_2E10_M_managerERSt9_Any_dataRKSD_St18_Manager_operation", ptr %64, align 8, !tbaa !31, !noalias !41 %65 = getelementptr inbounds nuw i8, ptr %61, i64 48 @@ -240,8 +240,8 @@ define dso_local void @_ZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilde %66 = getelementptr inbounds nuw i8, ptr %61, i64 56 %67 = ptrtoint ptr %8 to i64 store i64 %67, ptr %66, align 8, !noalias !41 - %.sroa.475.0..sroa_idx = getelementptr inbounds nuw i8, ptr %61, i64 64 - store i64 0, ptr %.sroa.475.0..sroa_idx, align 8, !noalias !41 + %.sroa.0.i.i.i6.i28.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %61, i64 64 + store i64 0, ptr %.sroa.0.i.i.i6.i28.sroa.4.0..sroa_idx, align 8, !noalias !41 %68 = getelementptr inbounds nuw i8, ptr %61, i64 72 store ptr @"_ZNSt17_Function_handlerIFvvEZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS1_12OutputParserES5_N15cmProcessOutput8EncodingEE3$_3E10_M_managerERSt9_Any_dataRKSA_St18_Manager_operation", ptr %68, align 8, !tbaa !31, !noalias !41 %69 = getelementptr inbounds nuw i8, ptr %61, i64 80 @@ -250,7 +250,7 @@ define dso_local void @_ZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilde %70 = invoke i32 @uv_read_start(ptr noundef nonnull %59, ptr noundef nonnull @"_ZZ14cmUVStreamReadIZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS0_12OutputParserES4_N15cmProcessOutput8EncodingEE3$_2ZNS0_10RunProcessES2_S4_S4_S6_E3$_3ESt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteISA_EEP11uv_stream_sT_T0_ENUlP11uv_handle_smP8uv_buf_tE_8__invokeESJ_mSL_", ptr noundef nonnull @"_ZZ14cmUVStreamReadIZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS0_12OutputParserES4_N15cmProcessOutput8EncodingEE3$_2ZNS0_10RunProcessES2_S4_S4_S6_E3$_3ESt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteISA_EEP11uv_stream_sT_T0_ENUlSF_lPK8uv_buf_tE_8__invokeESF_lSK_") to label %"_Z14cmUVStreamReadIZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS0_12OutputParserES4_N15cmProcessOutput8EncodingEE3$_2ZNS0_10RunProcessES2_S4_S4_S6_E3$_3ESt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteISA_EEP11uv_stream_sT_T0_.exit" unwind label %73, !noalias !41 -71: ; preds = %.noexc29 +71: ; preds = %.noexc31 %72 = landingpad { ptr, i32 } cleanup br label %75 @@ -261,9 +261,9 @@ define dso_local void @_ZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilde br label %75 75: ; preds = %73, %71 - %.pn.i28 = phi { ptr, i32 } [ %74, %73 ], [ %72, %71 ] + %.pn.i30 = phi { ptr, i32 } [ %74, %73 ], [ %72, %71 ] call void @_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #23 - br label %.body30 + br label %.body32 "_Z14cmUVStreamReadIZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS0_12OutputParserES4_N15cmProcessOutput8EncodingEE3$_2ZNS0_10RunProcessES2_S4_S4_S6_E3$_3ESt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteISA_EEP11uv_stream_sT_T0_.exit": ; preds = %"_ZNSt8functionIFvvEEaSIZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNS3_12OutputParserES7_N15cmProcessOutput8EncodingEE3$_3EENSt9enable_ifIXsr9_CallableIT_EE5valueERS1_E4typeEOSC_.exit.i", %84 %76 = load ptr, ptr %7, align 8, !tbaa !4 @@ -306,7 +306,7 @@ define dso_local void @_ZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilde 92: ; preds = %60, %58 %93 = landingpad { ptr, i32 } cleanup - br label %.body30 + br label %.body32 94: ; preds = %84, %.critedge, %80 %95 = landingpad { ptr, i32 } @@ -317,7 +317,7 @@ define dso_local void @_ZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilde call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #23 invoke void @_ZNK16cmUVProcessChain9GetStatusEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.25") align 8 %16, ptr noundef nonnull align 8 dereferenceable(8) %10) - to label %97 unwind label %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53.thread + to label %97 unwind label %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55.thread 97: ; preds = %96 %98 = load ptr, ptr %16, align 8, !tbaa !50 @@ -360,7 +360,7 @@ define dso_local void @_ZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilde invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.3) #25 to label %.noexc32 unwind label %.loopexit.split-lp -.noexc32: ; preds = %116 +.noexc34: ; preds = %116 unreachable _ZNKSt6vectorIN16cmUVProcessChain6StatusESaIS1_EE12_M_check_lenEmPKc.exit.i.i.i.i.i: ; preds = %110 @@ -376,17 +376,17 @@ _ZNKSt6vectorIN16cmUVProcessChain6StatusESaIS1_EE12_M_check_lenEmPKc.exit.i.i.i. %123 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %122) #24 to label %.noexc33 unwind label %.loopexit -.noexc33: ; preds = %_ZNKSt6vectorIN16cmUVProcessChain6StatusESaIS1_EE12_M_check_lenEmPKc.exit.i.i.i.i.i +.noexc35: ; preds = %_ZNKSt6vectorIN16cmUVProcessChain6StatusESaIS1_EE12_M_check_lenEmPKc.exit.i.i.i.i.i %124 = getelementptr inbounds i8, ptr %123, i64 %114 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %124, ptr noundef nonnull align 8 dereferenceable(24) %6, i64 24, i1 false), !tbaa.struct !54 %125 = icmp sgt i64 %114, 0 br i1 %125, label %126, label %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit16.i.i.i.i.i -126: ; preds = %.noexc33 +126: ; preds = %.noexc35 call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %123, ptr align 8 %111, i64 %114, i1 false) br label %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit16.i.i.i.i.i -_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit16.i.i.i.i.i: ; preds = %126, %.noexc33 +_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit16.i.i.i.i.i: ; preds = %126, %.noexc35 %127 = getelementptr inbounds nuw i8, ptr %124, i64 24 %.not.i17.i.i.i.i.i = icmp eq ptr %111, null br i1 %.not.i17.i.i.i.i.i, label %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_.exit.i.i.i.i, label %128 @@ -430,14 +430,14 @@ _ZNSt20back_insert_iteratorISt6vectorIN16cmUVProcessChain6StatusESaIS2_EEEaSEOS2 _ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit: ; preds = %"_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPPKN16cmUVProcessChain6StatusESt6vectorIS5_SaIS5_EEEESt20back_insert_iteratorIS7_IS3_SaIS3_EEEZN14cmProcessTools10RunProcessER23cmUVProcessChainBuilderPNSF_12OutputParserESJ_N15cmProcessOutput8EncodingEE3$_4ET0_T_SO_SN_T1_.exit", %133 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #23 %139 = load ptr, ptr %15, align 8, !tbaa !23 - %.not.i34 = icmp eq ptr %139, null - br i1 %.not.i34, label %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit, label %140 + %.not.i36 = icmp eq ptr %139, null + br i1 %.not.i36, label %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit, label %140 140: ; preds = %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit %141 = getelementptr inbounds nuw i8, ptr %139, i64 72 %142 = load ptr, ptr %141, align 8, !tbaa !67 - %.not.i.i.i.i35 = icmp eq ptr %142, null - br i1 %.not.i.i.i.i35, label %_ZNSt14_Function_baseD2Ev.exit.i.i.i, label %143 + %.not.i.i.i.i37 = icmp eq ptr %142, null + br i1 %.not.i.i.i.i37, label %_ZNSt14_Function_baseD2Ev.exit.i.i.i, label %143 143: ; preds = %140 %144 = getelementptr inbounds nuw i8, ptr %139, i64 56 @@ -471,8 +471,8 @@ _ZNSt14_Function_baseD2Ev.exit.i.i.i: ; preds = %143, %140 _ZNSt14_Function_baseD2Ev.exit2.i.i.i: ; preds = %151, %_ZNSt14_Function_baseD2Ev.exit.i.i.i %157 = load ptr, ptr %139, align 8, !tbaa !69 - %.not.i.i.i.i.i.i36 = icmp eq ptr %157, null - br i1 %.not.i.i.i.i.i.i36, label %_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i, label %158 + %.not.i.i.i.i.i.i38 = icmp eq ptr %157, null + br i1 %.not.i.i.i.i.i.i38, label %_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i, label %158 158: ; preds = %_ZNSt14_Function_baseD2Ev.exit2.i.i.i %159 = getelementptr inbounds nuw i8, ptr %139, i64 16 @@ -495,8 +495,8 @@ _ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit: ; pre 164: ; preds = %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit %165 = getelementptr inbounds nuw i8, ptr %14, i64 8 %166 = load ptr, ptr %165, align 8, !tbaa !72 - %.not.i.i.i37 = icmp eq ptr %166, null - br i1 %.not.i.i.i37, label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit, label %167 + %.not.i.i.i39 = icmp eq ptr %166, null + br i1 %.not.i.i.i39, label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit, label %167 167: ; preds = %164 %168 = getelementptr inbounds nuw i8, ptr %166, i64 8 @@ -521,8 +521,8 @@ _ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit: ; pre 180: ; preds = %167 %181 = load i8, ptr @__libc_single_threaded, align 1, !tbaa !15 - %.not.i.i.i.i38 = icmp eq i8 %181, 0 - br i1 %.not.i.i.i.i38, label %184, label %182 + %.not.i.i.i.i40 = icmp eq i8 %181, 0 + br i1 %.not.i.i.i.i40, label %184, label %182 182: ; preds = %180 %183 = add nsw i32 %171, -1 @@ -552,14 +552,14 @@ _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i: ; preds = %184, %18 _ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit: ; preds = %164, %172, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i, %187 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #23 %191 = load ptr, ptr %13, align 8, !tbaa !23 - %.not.i39 = icmp eq ptr %191, null - br i1 %.not.i39, label %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit46, label %192 + %.not.i41 = icmp eq ptr %191, null + br i1 %.not.i41, label %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit48, label %192 192: ; preds = %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit %193 = getelementptr inbounds nuw i8, ptr %191, i64 72 %194 = load ptr, ptr %193, align 8, !tbaa !67 - %.not.i.i.i.i40 = icmp eq ptr %194, null - br i1 %.not.i.i.i.i40, label %_ZNSt14_Function_baseD2Ev.exit.i.i.i41, label %195 + %.not.i.i.i.i42 = icmp eq ptr %194, null + br i1 %.not.i.i.i.i42, label %_ZNSt14_Function_baseD2Ev.exit.i.i.i43, label %195 195: ; preds = %192 %196 = getelementptr inbounds nuw i8, ptr %191, i64 56 @@ -573,13 +573,13 @@ _ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit: ; preds = %164, %172, %_ZN9__g call void @__clang_call_terminate(ptr %200) #27 unreachable -_ZNSt14_Function_baseD2Ev.exit.i.i.i41: ; preds = %195, %192 +_ZNSt14_Function_baseD2Ev.exit.i.i.i43: ; preds = %195, %192 %201 = getelementptr inbounds nuw i8, ptr %191, i64 40 %202 = load ptr, ptr %201, align 8, !tbaa !67 - %.not.i1.i.i.i42 = icmp eq ptr %202, null - br i1 %.not.i1.i.i.i42, label %_ZNSt14_Function_baseD2Ev.exit2.i.i.i43, label %203 + %.not.i1.i.i.i44 = icmp eq ptr %202, null + br i1 %.not.i1.i.i.i44, label %_ZNSt14_Function_baseD2Ev.exit2.i.i.i45, label %203 -203: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i.i.i41 +203: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i.i.i43 %204 = getelementptr inbounds nuw i8, ptr %191, i64 24 %205 = invoke noundef zeroext i1 %202(ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef nonnull align 8 dereferenceable(32) %204, i32 noundef 3) to label %_ZNSt14_Function_baseD2Ev.exit2.i.i.i43 unwind label %206 @@ -591,34 +591,34 @@ _ZNSt14_Function_baseD2Ev.exit.i.i.i41: ; preds = %195, %192 call void @__clang_call_terminate(ptr %208) #27 unreachable -_ZNSt14_Function_baseD2Ev.exit2.i.i.i43: ; preds = %203, %_ZNSt14_Function_baseD2Ev.exit.i.i.i41 +_ZNSt14_Function_baseD2Ev.exit2.i.i.i45: ; preds = %203, %_ZNSt14_Function_baseD2Ev.exit.i.i.i43 %209 = load ptr, ptr %191, align 8, !tbaa !69 - %.not.i.i.i.i.i.i44 = icmp eq ptr %209, null - br i1 %.not.i.i.i.i.i.i44, label %_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i45, label %210 + %.not.i.i.i.i.i.i46 = icmp eq ptr %209, null + br i1 %.not.i.i.i.i.i.i46, label %_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i47, label %210 -210: ; preds = %_ZNSt14_Function_baseD2Ev.exit2.i.i.i43 +210: ; preds = %_ZNSt14_Function_baseD2Ev.exit2.i.i.i45 %211 = getelementptr inbounds nuw i8, ptr %191, i64 16 %212 = load ptr, ptr %211, align 8, !tbaa !71 %213 = ptrtoint ptr %212 to i64 %214 = ptrtoint ptr %209 to i64 %215 = sub i64 %213, %214 call void @_ZdlPvm(ptr noundef nonnull %209, i64 noundef %215) #26 - br label %_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i45 + br label %_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i47 -_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i45: ; preds = %210, %_ZNSt14_Function_baseD2Ev.exit2.i.i.i43 +_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i47: ; preds = %210, %_ZNSt14_Function_baseD2Ev.exit2.i.i.i45 call void @_ZdlPvm(ptr noundef nonnull %191, i64 noundef 88) #26 - br label %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit46 + br label %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit48 -_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit46: ; preds = %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit, %_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i45 +_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit48: ; preds = %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit, %_ZNKSt14default_deleteI20cmUVStreamReadHandleEclEPS0_.exit.i47 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #23 invoke void @_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sE5resetEv(ptr noundef nonnull align 8 dereferenceable(16) %12) to label %216 unwind label %240 -216: ; preds = %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit46 +216: ; preds = %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit48 %217 = getelementptr inbounds nuw i8, ptr %12, i64 8 %218 = load ptr, ptr %217, align 8, !tbaa !72 - %.not.i.i.i47 = icmp eq ptr %218, null - br i1 %.not.i.i.i47, label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit51, label %219 + %.not.i.i.i49 = icmp eq ptr %218, null + br i1 %.not.i.i.i49, label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit53, label %219 219: ; preds = %216 %220 = getelementptr inbounds nuw i8, ptr %218, i64 8 @@ -639,51 +639,51 @@ _ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit46: ; p %230 = getelementptr inbounds nuw i8, ptr %229, i64 24 %231 = load ptr, ptr %230, align 8 call void %231(ptr noundef nonnull align 8 dereferenceable(16) %218) #23 - br label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit51 + br label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit53 232: ; preds = %219 %233 = load i8, ptr @__libc_single_threaded, align 1, !tbaa !15 - %.not.i.i.i.i48 = icmp eq i8 %233, 0 - br i1 %.not.i.i.i.i48, label %236, label %234 + %.not.i.i.i.i50 = icmp eq i8 %233, 0 + br i1 %.not.i.i.i.i50, label %236, label %234 234: ; preds = %232 %235 = add nsw i32 %223, -1 store i32 %235, ptr %220, align 4, !tbaa !55 - br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i49 + br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i51 236: ; preds = %232 %237 = atomicrmw volatile add ptr %220, i32 -1 acq_rel, align 4 - br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i49 + br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i51 -_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i49: ; preds = %236, %234 - %.0.i.i.i.i.i50 = phi i32 [ %223, %234 ], [ %237, %236 ] - %238 = icmp eq i32 %.0.i.i.i.i.i50, 1 - br i1 %238, label %239, label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit51, !prof !80 +_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i51: ; preds = %236, %234 + %.0.i.i.i.i.i52 = phi i32 [ %223, %234 ], [ %237, %236 ] + %238 = icmp eq i32 %.0.i.i.i.i.i52, 1 + br i1 %238, label %239, label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit53, !prof !80 -239: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i49 +239: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i51 call void @_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv(ptr noundef nonnull align 8 dereferenceable(16) %218) #23 - br label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit51 + br label %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit53 -240: ; preds = %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit46 +240: ; preds = %_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev.exit48 %241 = landingpad { ptr, i32 } catch ptr null %242 = extractvalue { ptr, i32 } %241, 0 call void @__clang_call_terminate(ptr %242) #27 unreachable -_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit51: ; preds = %216, %224, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i49, %239 +_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit53: ; preds = %216, %224, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i51, %239 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #23 %243 = load ptr, ptr %11, align 8, !tbaa !81 %244 = icmp eq ptr %243, %19 br i1 %244, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i: ; preds = %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit51 +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i: ; preds = %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit53 %245 = load i64, ptr %20, align 8, !tbaa !12 %246 = icmp ult i64 %245, 16 call void @llvm.assume(i1 %246) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i: ; preds = %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit51 +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i: ; preds = %_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev.exit53 %247 = load i64, ptr %19, align 8, !tbaa !15 %248 = add i64 %247, 1 call void @_ZdlPvm(ptr noundef %243, i64 noundef %248) #26 @@ -696,7 +696,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %_ZNKS call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #23 ret void -_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53.thread: ; preds = %96 +_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55.thread: ; preds = %96 %249 = landingpad { ptr, i32 } cleanup call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #23 @@ -715,8 +715,8 @@ _ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53.thread: ; preds = 250: ; preds = %.loopexit.split-lp, %.loopexit %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] %251 = load ptr, ptr %16, align 8, !tbaa !64 - %.not.i.i.i52 = icmp eq ptr %251, null - br i1 %.not.i.i.i52, label %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53, label %252 + %.not.i.i.i54 = icmp eq ptr %251, null + br i1 %.not.i.i.i54, label %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55, label %252 252: ; preds = %250 %253 = getelementptr inbounds nuw i8, ptr %16, i64 16 @@ -725,31 +725,31 @@ _ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53.thread: ; preds = %256 = ptrtoint ptr %251 to i64 %257 = sub i64 %255, %256 call void @_ZdlPvm(ptr noundef nonnull %251, i64 noundef %257) #26 - br label %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53 + br label %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55 -_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53: ; preds = %252, %250 +_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55: ; preds = %252, %250 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #23 - %.not.i.i.i54 = icmp eq ptr %111, null - br i1 %.not.i.i.i54, label %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit, label %258 + %.not.i.i.i56 = icmp eq ptr %111, null + br i1 %.not.i.i.i56, label %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit, label %258 -258: ; preds = %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53 +258: ; preds = %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55 %259 = ptrtoint ptr %104 to i64 %260 = ptrtoint ptr %111 to i64 %261 = sub i64 %259, %260 call void @_ZdlPvm(ptr noundef nonnull %111, i64 noundef %261) #26 br label %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit -_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit: ; preds = %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53.thread, %258, %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53, %94 +_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit: ; preds = %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55.thread, %258, %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit55, %94 %.pn20 = phi { ptr, i32 } [ %95, %94 ], [ %lpad.phi, %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53 ], [ %lpad.phi, %258 ], [ %249, %_ZNSt6vectorIPKN16cmUVProcessChain6StatusESaIS3_EED2Ev.exit53.thread ] call void @_ZNSt10unique_ptrI20cmUVStreamReadHandleSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #23 - br label %.body30 + br label %.body32 -.body30: ; preds = %92, %75, %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit - %.pn20.pn = phi { ptr, i32 } [ %.pn20, %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit ], [ %93, %92 ], [ %.pn.i28, %75 ] +.body32: ; preds = %92, %75, %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit + %.pn20.pn = phi { ptr, i32 } [ %.pn20, %_ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit ], [ %93, %92 ], [ %.pn.i30, %75 ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #23 br label %262 -262: ; preds = %.body30, %90 +262: ; preds = %.body32, %90 %.pn20.pn.pn = phi { ptr, i32 } [ %.pn20.pn, %.body30 ], [ %91, %90 ] call void @_ZN2cm19uv_handle_ptr_base_I9uv_pipe_sED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #23 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #23 @@ -767,21 +767,21 @@ _ZNSt6vectorIN16cmUVProcessChain6StatusESaIS1_EED2Ev.exit: ; preds = %_ZNSt6vect call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #23 %264 = load ptr, ptr %11, align 8, !tbaa !81 %265 = icmp eq ptr %264, %19 - br i1 %265, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i56, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i55 + br i1 %265, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i58, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i57 -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i56: ; preds = %263 +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i58: ; preds = %263 %266 = load i64, ptr %20, align 8, !tbaa !12 %267 = icmp ult i64 %266, 16 call void @llvm.assume(i1 %267) - br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit57 + br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit59 -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i55: ; preds = %263 +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i57: ; preds = %263 %268 = load i64, ptr %19, align 8, !tbaa !15 %269 = add i64 %268, 1 call void @_ZdlPvm(ptr noundef %264, i64 noundef %269) #26 - br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit57 + br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit59 -_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit57: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i56, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i55 +_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit59: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i58, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i57 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #23 call void @_ZN16cmUVProcessChainD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #23 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #23 diff --git a/bench/cmake/optimized/cmSystemTools.ll b/bench/cmake/optimized/cmSystemTools.ll index 45e13db1db5..0238c3033df 100644 --- a/bench/cmake/optimized/cmSystemTools.ll +++ b/bench/cmake/optimized/cmSystemTools.ll @@ -4894,8 +4894,8 @@ define internal fastcc void @"_ZZN13cmSystemTools16RunSingleCommandERKSt6vectorI %.sroa.10.0..sroa_idx = getelementptr inbounds nuw i8, ptr %25, i64 40 store ptr %7, ptr %.sroa.10.0..sroa_idx, align 8, !tbaa !63, !noalias !179 store ptr %25, ptr %27, align 8, !noalias !179 - %.sroa.434.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 32 - store i64 0, ptr %.sroa.434.0..sroa_idx, align 8, !noalias !179 + %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 32 + store i64 0, ptr %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx, align 8, !noalias !179 %28 = getelementptr inbounds nuw i8, ptr %24, i64 40 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZZN13cmSystemTools16RunSingleCommandERKS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcES1_EESaIS9_EEPS9_SE_PiPKcNS4_12OutputOptionENSt6chrono8durationIdSt5ratioILl1ELl1EEEEN15cmProcessOutput8EncodingEENK3$_1clERN2cm11uv_pipe_ptrEiSE_RS2_iPFvRKS9_ERbEUlS2_E_E10_M_managerERSt9_Any_dataRKS12_St18_Manager_operation", ptr %28, align 8, !tbaa !63, !noalias !179 %29 = getelementptr inbounds nuw i8, ptr %24, i64 48 @@ -4915,8 +4915,8 @@ define internal fastcc void @"_ZZN13cmSystemTools16RunSingleCommandERKSt6vectorI %.sroa.932.0..sroa_idx = getelementptr inbounds nuw i8, ptr %30, i64 32 store ptr %7, ptr %.sroa.932.0..sroa_idx, align 16, !tbaa !63, !noalias !179 store ptr %30, ptr %32, align 8, !noalias !179 - %.sroa.437.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 64 - store i64 0, ptr %.sroa.437.0..sroa_idx, align 8, !noalias !179 + %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 64 + store i64 0, ptr %.sroa.0.i.i.i6.i.sroa.4.0..sroa_idx, align 8, !noalias !179 %33 = getelementptr inbounds nuw i8, ptr %24, i64 72 store ptr @"_ZNSt17_Function_handlerIFvvEZZN13cmSystemTools16RunSingleCommandERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEPS8_SD_PiPKcNS1_12OutputOptionENSt6chrono8durationIdSt5ratioILl1ELl1EEEEN15cmProcessOutput8EncodingEENK3$_1clERN2cm11uv_pipe_ptrEiSD_RS2_IcS7_EiPFvRKS8_ERbEUlvE_E10_M_managerERSt9_Any_dataRKS12_St18_Manager_operation", ptr %33, align 8, !tbaa !63, !noalias !179 %34 = getelementptr inbounds nuw i8, ptr %24, i64 80 @@ -18265,16 +18265,16 @@ _ZSt4moveIN9__gnu_cxx17__normal_iteratorIPcSt6vectorIcSaIcEEEES6_ET0_T_S8_S7_.ex store ptr %124, ptr %11, align 8, !tbaa !149, !alias.scope !498 %125 = getelementptr inbounds nuw i8, ptr %124, i64 24 store i64 %27, ptr %125, align 8, !noalias !499 - %.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %124, i64 32 - store i64 0, ptr %.sroa.4.0..sroa_idx.i, align 8, !noalias !499 + %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %124, i64 32 + store i64 0, ptr %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx.i, align 8, !noalias !499 %126 = getelementptr inbounds nuw i8, ptr %124, i64 40 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZZN13cmSystemTools11WaitForLineEP9uv_loop_sP11uv_stream_sS8_RNSt7__cxx1112basic_stringIcSt11char_traitsIcES1_EENSt6chrono8durationIdSt5ratioILl1ELl1EEEERS2_SK_ENK3$_0clES8_RZNS4_11WaitForLineES6_S8_S8_SE_SJ_SK_SK_E8ReadDataEUlS2_E_E10_M_managerERSt9_Any_dataRKSQ_St18_Manager_operation", ptr %126, align 8, !tbaa !63, !noalias !499 %127 = getelementptr inbounds nuw i8, ptr %124, i64 48 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZZN13cmSystemTools11WaitForLineEP9uv_loop_sP11uv_stream_sS8_RNSt7__cxx1112basic_stringIcSt11char_traitsIcES1_EENSt6chrono8durationIdSt5ratioILl1ELl1EEEERS2_SK_ENK3$_0clES8_RZNS4_11WaitForLineES6_S8_S8_SE_SJ_SK_SK_E8ReadDataEUlS2_E_E9_M_invokeERKSt9_Any_dataOS2_", ptr %127, align 8, !tbaa !63, !noalias !499 %128 = getelementptr inbounds nuw i8, ptr %124, i64 56 store i64 %27, ptr %128, align 8, !noalias !499 - %.sroa.42.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %124, i64 64 - store i64 0, ptr %.sroa.42.0..sroa_idx.i, align 8, !noalias !499 + %.sroa.0.i.i.i5.i.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %124, i64 64 + store i64 0, ptr %.sroa.0.i.i.i5.i.sroa.4.0..sroa_idx.i, align 8, !noalias !499 %129 = getelementptr inbounds nuw i8, ptr %124, i64 72 store ptr @"_ZNSt17_Function_handlerIFvvEZZN13cmSystemTools11WaitForLineEP9uv_loop_sP11uv_stream_sS5_RNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENSt6chrono8durationIdSt5ratioILl1ELl1EEEERSt6vectorIcSA_ESK_ENK3$_0clES5_RZNS1_11WaitForLineES3_S5_S5_SC_SH_SK_SK_E8ReadDataEUlvE_E10_M_managerERSt9_Any_dataRKSQ_St18_Manager_operation", ptr %129, align 8, !tbaa !63, !noalias !499 %130 = getelementptr inbounds nuw i8, ptr %124, i64 80 @@ -18305,16 +18305,16 @@ _ZSt4moveIN9__gnu_cxx17__normal_iteratorIPcSt6vectorIcSaIcEEEES6_ET0_T_S8_S7_.ex store ptr %134, ptr %13, align 8, !tbaa !149, !alias.scope !509 %135 = getelementptr inbounds nuw i8, ptr %134, i64 24 store i64 %29, ptr %135, align 8, !noalias !510 - %.sroa.4.0..sroa_idx.i129 = getelementptr inbounds nuw i8, ptr %134, i64 32 - store i64 0, ptr %.sroa.4.0..sroa_idx.i129, align 8, !noalias !510 + %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx.i129 = getelementptr inbounds nuw i8, ptr %134, i64 32 + store i64 0, ptr %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx.i129, align 8, !noalias !510 %136 = getelementptr inbounds nuw i8, ptr %134, i64 40 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZZN13cmSystemTools11WaitForLineEP9uv_loop_sP11uv_stream_sS8_RNSt7__cxx1112basic_stringIcSt11char_traitsIcES1_EENSt6chrono8durationIdSt5ratioILl1ELl1EEEERS2_SK_ENK3$_0clES8_RZNS4_11WaitForLineES6_S8_S8_SE_SJ_SK_SK_E8ReadDataEUlS2_E_E10_M_managerERSt9_Any_dataRKSQ_St18_Manager_operation", ptr %136, align 8, !tbaa !63, !noalias !510 %137 = getelementptr inbounds nuw i8, ptr %134, i64 48 store ptr @"_ZNSt17_Function_handlerIFvSt6vectorIcSaIcEEEZZN13cmSystemTools11WaitForLineEP9uv_loop_sP11uv_stream_sS8_RNSt7__cxx1112basic_stringIcSt11char_traitsIcES1_EENSt6chrono8durationIdSt5ratioILl1ELl1EEEERS2_SK_ENK3$_0clES8_RZNS4_11WaitForLineES6_S8_S8_SE_SJ_SK_SK_E8ReadDataEUlS2_E_E9_M_invokeERKSt9_Any_dataOS2_", ptr %137, align 8, !tbaa !63, !noalias !510 %138 = getelementptr inbounds nuw i8, ptr %134, i64 56 store i64 %29, ptr %138, align 8, !noalias !510 - %.sroa.42.0..sroa_idx.i130 = getelementptr inbounds nuw i8, ptr %134, i64 64 - store i64 0, ptr %.sroa.42.0..sroa_idx.i130, align 8, !noalias !510 + %.sroa.0.i.i.i5.i.sroa.4.0..sroa_idx.i130 = getelementptr inbounds nuw i8, ptr %134, i64 64 + store i64 0, ptr %.sroa.0.i.i.i5.i.sroa.4.0..sroa_idx.i130, align 8, !noalias !510 %139 = getelementptr inbounds nuw i8, ptr %134, i64 72 store ptr @"_ZNSt17_Function_handlerIFvvEZZN13cmSystemTools11WaitForLineEP9uv_loop_sP11uv_stream_sS5_RNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENSt6chrono8durationIdSt5ratioILl1ELl1EEEERSt6vectorIcSA_ESK_ENK3$_0clES5_RZNS1_11WaitForLineES3_S5_S5_SC_SH_SK_SK_E8ReadDataEUlvE_E10_M_managerERSt9_Any_dataRKSQ_St18_Manager_operation", ptr %139, align 8, !tbaa !63, !noalias !510 %140 = getelementptr inbounds nuw i8, ptr %134, i64 80 diff --git a/bench/fish-rs/optimized/13v7qjk9d4erkgv5w97enxlzt.ll b/bench/fish-rs/optimized/13v7qjk9d4erkgv5w97enxlzt.ll index 45a6ffd907d..334c7144bd5 100644 --- a/bench/fish-rs/optimized/13v7qjk9d4erkgv5w97enxlzt.ll +++ b/bench/fish-rs/optimized/13v7qjk9d4erkgv5w97enxlzt.ll @@ -40770,17 +40770,17 @@ define void @_ZN4fish4proc3Job3new17h6109bc2e2519bbb6E(ptr dead_on_unwind noalia store ptr inttoptr (i64 8 to ptr), ptr %.sroa.45.0..sroa_idx, align 8 %.sroa.56.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 40 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(37) %.sroa.56.0..sroa_idx, i8 0, i64 37, i1 false) - %8 = getelementptr inbounds nuw i8, ptr %0, i64 80 - store i24 %1, ptr %8, align 8 + %9 = getelementptr inbounds nuw i8, ptr %0, i64 80 + store i24 %1, ptr %9, align 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %2, i64 24, i1 false) - %9 = getelementptr inbounds nuw i8, ptr %0, i64 24 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %7, i64 24, i1 false) - %10 = getelementptr inbounds nuw i8, ptr %0, i64 48 - store ptr null, ptr %10, align 8 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 56 - store i64 %5, ptr %11, align 8 - %12 = getelementptr inbounds nuw i8, ptr %0, i64 64 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(13) %12, i8 0, i64 13, i1 false) + %10 = getelementptr inbounds nuw i8, ptr %0, i64 24 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(24) %7, i64 24, i1 false) + %11 = getelementptr inbounds nuw i8, ptr %0, i64 48 + store ptr null, ptr %11, align 8 + %12 = getelementptr inbounds nuw i8, ptr %0, i64 56 + store i64 %5, ptr %12, align 8 + %13 = getelementptr inbounds nuw i8, ptr %0, i64 64 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(13) %13, i8 0, i64 13, i1 false) call void @"_ZN4core3ptr55drop_in_place$LT$widestring..utfstring..Utf32String$GT$17ha7bfb33de0f2dd54E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %4) call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %4) ret void diff --git a/bench/lean4/optimized/ir_interpreter.ll b/bench/lean4/optimized/ir_interpreter.ll index 250965e157b..9a27ce13cdf 100644 --- a/bench/lean4/optimized/ir_interpreter.ll +++ b/bench/lean4/optimized/ir_interpreter.ll @@ -6980,7 +6980,7 @@ define linkonce_odr hidden noundef ptr @_ZNK4lean6rb_mapINS_4nameENS_2ir11interp 14: ; preds = %13 invoke void @lean_inc_ref_cold(ptr noundef nonnull %6) - to label %15 unwind label %83 + to label %15 unwind label %84 15: ; preds = %2, %11, %13, %14 %16 = getelementptr inbounds nuw i8, ptr %3, i64 8 @@ -6991,199 +6991,199 @@ define linkonce_odr hidden noundef ptr @_ZNK4lean6rb_mapINS_4nameENS_2ir11interp %.not28.i = icmp eq ptr %.01127.i, null br i1 %.not28.i, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit, label %.lr.ph.i -.lr.ph.i: ; preds = %15, %40 +.lr.ph.i: ; preds = %15, %41 %.01129.i = phi ptr [ %.011.i, %40 ], [ %.01127.i, %15 ] - %18 = getelementptr inbounds nuw i8, ptr %.01129.i, i64 16 - %19 = load ptr, ptr %3, align 8, !tbaa !6 - %20 = load ptr, ptr %18, align 8, !tbaa !6 - %21 = icmp eq ptr %19, %20 - br i1 %21, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit, label %22 - -22: ; preds = %.lr.ph.i - %23 = ptrtoint ptr %19 to i64 - %24 = and i64 %23, 1 - %.not.i.i.i.i.i.i.i.i = icmp eq i64 %24, 0 - br i1 %.not.i.i.i.i.i.i.i.i, label %25, label %_ZNK4lean4name4hashEv.exit.i.i.i.i.i + %19 = getelementptr inbounds nuw i8, ptr %.01129.i, i64 16 + %20 = load ptr, ptr %3, align 8, !tbaa !6 + %21 = load ptr, ptr %19, align 8, !tbaa !6 + %22 = icmp eq ptr %20, %21 + br i1 %22, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit, label %23 + +23: ; preds = %.lr.ph.i + %24 = ptrtoint ptr %20 to i64 + %25 = and i64 %24, 1 + %.not.i.i.i.i.i.i.i.i = icmp eq i64 %25, 0 + br i1 %.not.i.i.i.i.i.i.i.i, label %26, label %_ZNK4lean4name4hashEv.exit.i.i.i.i.i -25: ; preds = %22 - %26 = getelementptr i8, ptr %19, i64 24 - %.val.i.i.i.i.i.i.i.i = load i64, ptr %26, align 8, !tbaa !22 - %27 = trunc i64 %.val.i.i.i.i.i.i.i.i to i32 +26: ; preds = %23 + %27 = getelementptr i8, ptr %20, i64 24 + %.val.i.i.i.i.i.i.i.i = load i64, ptr %27, align 8, !tbaa !22 + %28 = trunc i64 %.val.i.i.i.i.i.i.i.i to i32 br label %_ZNK4lean4name4hashEv.exit.i.i.i.i.i -_ZNK4lean4name4hashEv.exit.i.i.i.i.i: ; preds = %25, %22 - %.0.i.i.i.i.i.i.i.i = phi i32 [ %27, %25 ], [ 1723, %22 ] - %28 = ptrtoint ptr %20 to i64 - %29 = and i64 %28, 1 - %.not.i.i.i14.i.i.i.i.i = icmp eq i64 %29, 0 - br i1 %.not.i.i.i14.i.i.i.i.i, label %30, label %_ZNK4lean4name4hashEv.exit17.i.i.i.i.i - -30: ; preds = %_ZNK4lean4name4hashEv.exit.i.i.i.i.i - %31 = getelementptr i8, ptr %20, i64 24 - %.val.i.i.i16.i.i.i.i.i = load i64, ptr %31, align 8, !tbaa !22 - %32 = trunc i64 %.val.i.i.i16.i.i.i.i.i to i32 +_ZNK4lean4name4hashEv.exit.i.i.i.i.i: ; preds = %26, %23 + %.0.i.i.i.i.i.i.i.i = phi i32 [ %28, %25 ], [ 1723, %22 ] + %29 = ptrtoint ptr %21 to i64 + %30 = and i64 %29, 1 + %.not.i.i.i14.i.i.i.i.i = icmp eq i64 %30, 0 + br i1 %.not.i.i.i14.i.i.i.i.i, label %31, label %_ZNK4lean4name4hashEv.exit17.i.i.i.i.i + +31: ; preds = %_ZNK4lean4name4hashEv.exit.i.i.i.i.i + %32 = getelementptr i8, ptr %21, i64 24 + %.val.i.i.i16.i.i.i.i.i = load i64, ptr %32, align 8, !tbaa !22 + %33 = trunc i64 %.val.i.i.i16.i.i.i.i.i to i32 br label %_ZNK4lean4name4hashEv.exit17.i.i.i.i.i -_ZNK4lean4name4hashEv.exit17.i.i.i.i.i: ; preds = %30, %_ZNK4lean4name4hashEv.exit.i.i.i.i.i - %.0.i.i.i15.i.i.i.i.i = phi i32 [ %32, %30 ], [ 1723, %_ZNK4lean4name4hashEv.exit.i.i.i.i.i ] +_ZNK4lean4name4hashEv.exit17.i.i.i.i.i: ; preds = %31, %_ZNK4lean4name4hashEv.exit.i.i.i.i.i + %.0.i.i.i15.i.i.i.i.i = phi i32 [ %33, %30 ], [ 1723, %_ZNK4lean4name4hashEv.exit.i.i.i.i.i ] %.not.i.i.i.i.i = icmp eq i32 %.0.i.i.i.i.i.i.i.i, %.0.i.i.i15.i.i.i.i.i - br i1 %.not.i.i.i.i.i, label %35, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.thread19.i + br i1 %.not.i.i.i.i.i, label %36, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.thread19.i _ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.thread19.i: ; preds = %_ZNK4lean4name4hashEv.exit17.i.i.i.i.i - %33 = icmp ult i32 %.0.i.i.i.i.i.i.i.i, %.0.i.i.i15.i.i.i.i.i - %34 = select i1 %33, i32 -1, i32 1 - br label %40 + %34 = icmp ult i32 %.0.i.i.i.i.i.i.i.i, %.0.i.i.i15.i.i.i.i.i + %35 = select i1 %34, i32 -1, i32 1 + br label %41 -35: ; preds = %_ZNK4lean4name4hashEv.exit17.i.i.i.i.i - %36 = invoke zeroext i8 @lean_name_eq(ptr noundef %19, ptr noundef %20) - to label %.noexc7 unwind label %85 +36: ; preds = %_ZNK4lean4name4hashEv.exit17.i.i.i.i.i + %37 = invoke zeroext i8 @lean_name_eq(ptr noundef %20, ptr noundef %21) + to label %.noexc7 unwind label %86 -.noexc7: ; preds = %35 - %.not18.i.i.i.i.i = icmp eq i8 %36, 0 +.noexc7: ; preds = %36 + %.not18.i.i.i.i.i = icmp eq i8 %37, 0 br i1 %.not18.i.i.i.i.i, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.i, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit _ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.i: ; preds = %.noexc7 - %37 = load ptr, ptr %3, align 8, !tbaa !6 - %38 = load ptr, ptr %18, align 8, !tbaa !6 - %39 = invoke noundef i32 @_ZN4lean4name8cmp_coreEP11lean_objectS2_(ptr noundef %37, ptr noundef %38) - to label %.noexc8 unwind label %85 + %38 = load ptr, ptr %3, align 8, !tbaa !6 + %39 = load ptr, ptr %19, align 8, !tbaa !6 + %40 = invoke noundef i32 @_ZN4lean4name8cmp_coreEP11lean_objectS2_(ptr noundef %38, ptr noundef %39) + to label %.noexc8 unwind label %86 .noexc8: ; preds = %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.i - %.not15.i = icmp eq i32 %39, 0 - br i1 %.not15.i, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit, label %40 + %.not15.i = icmp eq i32 %40, 0 + br i1 %.not15.i, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit, label %41 -40: ; preds = %.noexc8, %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.thread19.i - %.0.i.i.i.i22.i = phi i32 [ %34, %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.thread19.i ], [ %39, %.noexc8 ] - %41 = icmp slt i32 %.0.i.i.i.i22.i, 0 - %.213.in.idx.i = select i1 %41, i64 0, i64 8 +41: ; preds = %.noexc8, %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.thread19.i + %.0.i.i.i.i22.i = phi i32 [ %35, %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.thread19.i ], [ %40, %.noexc8 ] + %42 = icmp slt i32 %.0.i.i.i.i22.i, 0 + %.213.in.idx.i = select i1 %42, i64 0, i64 8 %.213.in.i = getelementptr inbounds nuw i8, ptr %.01129.i, i64 %.213.in.idx.i %.011.i = load ptr, ptr %.213.in.i, align 8, !tbaa !187 %.not.i = icmp eq ptr %.011.i, null br i1 %.not.i, label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit, label %.lr.ph.i -_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit: ; preds = %.lr.ph.i, %.noexc7, %.noexc8, %40 - %.2.i.ph = phi ptr [ %18, %.noexc7 ], [ %18, %.lr.ph.i ], [ %18, %.noexc8 ], [ null, %40 ] +_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit: ; preds = %.lr.ph.i, %.noexc7, %.noexc8, %41 + %.2.i.ph = phi ptr [ %19, %.noexc7 ], [ %19, %.lr.ph.i ], [ %19, %.noexc8 ], [ null, %40 ] %.pre = load ptr, ptr %16, align 8, !tbaa !6 br label %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit _ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit: ; preds = %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit, %15 - %42 = phi ptr [ inttoptr (i64 1 to ptr), %15 ], [ %.pre, %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit ] + %43 = phi ptr [ inttoptr (i64 1 to ptr), %15 ], [ %.pre, %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit ] %.2.i = phi ptr [ null, %15 ], [ %.2.i.ph, %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit.loopexit ] - %43 = ptrtoint ptr %42 to i64 - %44 = and i64 %43, 1 - %.not.i.i.i.i = icmp eq i64 %44, 0 - br i1 %.not.i.i.i.i, label %45, label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i + %44 = ptrtoint ptr %43 to i64 + %45 = and i64 %44, 1 + %.not.i.i.i.i = icmp eq i64 %45, 0 + br i1 %.not.i.i.i.i, label %46, label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i -45: ; preds = %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit - %46 = load i32, ptr %42, align 4, !tbaa !12 - %47 = icmp sgt i32 %46, 1 - br i1 %47, label %48, label %50, !prof !15 +46: ; preds = %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit + %47 = load i32, ptr %43, align 4, !tbaa !12 + %48 = icmp sgt i32 %47, 1 + br i1 %48, label %49, label %51, !prof !15 -48: ; preds = %45 - %49 = add nsw i32 %46, -1 - store i32 %49, ptr %42, align 4, !tbaa !12 +49: ; preds = %46 + %50 = add nsw i32 %47, -1 + store i32 %50, ptr %43, align 4, !tbaa !12 br label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i -50: ; preds = %45 - %.not.i.i.i.i.i9 = icmp eq i32 %46, 0 - br i1 %.not.i.i.i.i.i9, label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i, label %51 - -51: ; preds = %50 - invoke void @lean_dec_ref_cold(ptr noundef nonnull %42) - to label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i unwind label %52 +51: ; preds = %46 + %.not.i.i.i.i.i9 = icmp eq i32 %47, 0 + br i1 %.not.i.i.i.i.i9, label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i, label %52 52: ; preds = %51 - %53 = landingpad { ptr, i32 } + invoke void @lean_dec_ref_cold(ptr noundef nonnull %43) + to label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i unwind label %53 + +53: ; preds = %52 + %54 = landingpad { ptr, i32 } catch ptr null - %54 = extractvalue { ptr, i32 } %53, 0 - tail call void @__clang_call_terminate(ptr %54) #26 + %55 = extractvalue { ptr, i32 } %54, 0 + tail call void @__clang_call_terminate(ptr %55) #26 unreachable -_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i: ; preds = %51, %50, %48, %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit - %55 = load ptr, ptr %3, align 8, !tbaa !6 - %56 = ptrtoint ptr %55 to i64 - %57 = and i64 %56, 1 - %.not.i.i.i = icmp eq i64 %57, 0 - br i1 %.not.i.i.i, label %58, label %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit - -58: ; preds = %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i - %59 = load i32, ptr %55, align 4, !tbaa !12 - %60 = icmp sgt i32 %59, 1 - br i1 %60, label %61, label %63, !prof !15 - -61: ; preds = %58 - %62 = add nsw i32 %59, -1 - store i32 %62, ptr %55, align 4, !tbaa !12 - br label %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit +_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i: ; preds = %52, %51, %49, %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE4findERKS6_.exit + %56 = load ptr, ptr %3, align 8, !tbaa !6 + %57 = ptrtoint ptr %56 to i64 + %58 = and i64 %57, 1 + %.not.i.i.i = icmp eq i64 %58, 0 + br i1 %.not.i.i.i, label %59, label %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit -63: ; preds = %58 - %.not.i.i.i1.i = icmp eq i32 %59, 0 - br i1 %.not.i.i.i1.i, label %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit, label %64 +59: ; preds = %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i + %60 = load i32, ptr %56, align 4, !tbaa !12 + %61 = icmp sgt i32 %60, 1 + br i1 %61, label %62, label %64, !prof !15 -64: ; preds = %63 - invoke void @lean_dec_ref_cold(ptr noundef nonnull %55) - to label %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit unwind label %65 +62: ; preds = %59 + %63 = add nsw i32 %60, -1 + store i32 %63, ptr %56, align 4, !tbaa !12 + br label %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit + +64: ; preds = %59 + %.not.i.i.i1.i = icmp eq i32 %60, 0 + br i1 %.not.i.i.i1.i, label %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit, label %65 65: ; preds = %64 - %66 = landingpad { ptr, i32 } + invoke void @lean_dec_ref_cold(ptr noundef nonnull %56) + to label %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit unwind label %66 + +66: ; preds = %65 + %67 = landingpad { ptr, i32 } catch ptr null - %67 = extractvalue { ptr, i32 } %66, 0 - tail call void @__clang_call_terminate(ptr %67) #26 + %68 = extractvalue { ptr, i32 } %67, 0 + tail call void @__clang_call_terminate(ptr %68) #26 unreachable -_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit: ; preds = %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i, %61, %63, %64 - %68 = load ptr, ptr %4, align 8, !tbaa !6 - %69 = ptrtoint ptr %68 to i64 - %70 = and i64 %69, 1 - %.not.i.i.i10 = icmp eq i64 %70, 0 - br i1 %.not.i.i.i10, label %71, label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit - -71: ; preds = %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit - %72 = load i32, ptr %68, align 4, !tbaa !12 - %73 = icmp sgt i32 %72, 1 - br i1 %73, label %74, label %76, !prof !15 - -74: ; preds = %71 - %75 = add nsw i32 %72, -1 - store i32 %75, ptr %68, align 4, !tbaa !12 +_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit: ; preds = %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit.i, %62, %64, %65 + %69 = load ptr, ptr %4, align 8, !tbaa !6 + %70 = ptrtoint ptr %69 to i64 + %71 = and i64 %70, 1 + %.not.i.i.i10 = icmp eq i64 %71, 0 + br i1 %.not.i.i.i10, label %72, label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit + +72: ; preds = %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit + %73 = load i32, ptr %69, align 4, !tbaa !12 + %74 = icmp sgt i32 %73, 1 + br i1 %74, label %75, label %77, !prof !15 + +75: ; preds = %72 + %76 = add nsw i32 %73, -1 + store i32 %76, ptr %69, align 4, !tbaa !12 br label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit -76: ; preds = %71 - %.not.i.i.i.i11 = icmp eq i32 %72, 0 - br i1 %.not.i.i.i.i11, label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit, label %77 - -77: ; preds = %76 - invoke void @lean_dec_ref_cold(ptr noundef nonnull %68) - to label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit unwind label %78 +77: ; preds = %72 + %.not.i.i.i.i11 = icmp eq i32 %73, 0 + br i1 %.not.i.i.i.i11, label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit, label %78 78: ; preds = %77 - %79 = landingpad { ptr, i32 } + invoke void @lean_dec_ref_cold(ptr noundef nonnull %69) + to label %_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit unwind label %79 + +79: ; preds = %78 + %80 = landingpad { ptr, i32 } catch ptr null - %80 = extractvalue { ptr, i32 } %79, 0 - tail call void @__clang_call_terminate(ptr %80) #26 + %81 = extractvalue { ptr, i32 } %80, 0 + tail call void @__clang_call_terminate(ptr %81) #26 unreachable -_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit: ; preds = %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit, %74, %76, %77 +_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev.exit: ; preds = %_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev.exit, %75, %77, %78 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #24 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #24 %.not = icmp eq ptr %.2.i, null - %81 = getelementptr inbounds nuw i8, ptr %.2.i, i64 8 - %82 = select i1 %.not, ptr null, ptr %81 - ret ptr %82 + %82 = getelementptr inbounds nuw i8, ptr %.2.i, i64 8 + %83 = select i1 %.not, ptr null, ptr %82 + ret ptr %83 -83: ; preds = %14 - %84 = landingpad { ptr, i32 } +84: ; preds = %14 + %85 = landingpad { ptr, i32 } cleanup br label %.body -85: ; preds = %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.i, %35 - %86 = landingpad { ptr, i32 } +86: ; preds = %_ZNK4lean7rb_treeISt4pairINS_4nameENS_2ir11interpreter18symbol_cache_entryEENS_6rb_mapIS2_S5_NS_14name_quick_cmpEE9entry_cmpEE3cmpERKS6_SD_.exit.i, %36 + %87 = landingpad { ptr, i32 } cleanup call void @_ZNSt4pairIN4lean4nameENS0_2ir11interpreter18symbol_cache_entryEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #24 br label %.body -.body: ; preds = %83, %85 - %.pn = phi { ptr, i32 } [ %86, %85 ], [ %84, %83 ] +.body: ; preds = %84, %86 + %.pn = phi { ptr, i32 } [ %87, %85 ], [ %85, %83 ] call void @_ZN4lean2ir11interpreter18symbol_cache_entryD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #24 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #24 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #24 diff --git a/bench/llvm/optimized/Attributor.ll b/bench/llvm/optimized/Attributor.ll index 1078277d0de..e8d374280a3 100644 --- a/bench/llvm/optimized/Attributor.ll +++ b/bench/llvm/optimized/Attributor.ll @@ -32308,8 +32308,8 @@ _ZNSt8functionIFbRN4llvm10AttributorERKNS0_17AbstractAttributeERNS0_8CallBaseERN %34 = getelementptr inbounds nuw i8, ptr %8, i64 40 %35 = ptrtoint ptr %9 to i64 store i64 %35, ptr %34, align 8 - %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 48 - store i64 0, ptr %.sroa.4.0..sroa_idx, align 8 + %.sroa.0.i.i.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 48 + store i64 0, ptr %.sroa.0.i.i.i.sroa.4.0..sroa_idx, align 8 store ptr @"_ZNSt17_Function_handlerIFbRN4llvm10AttributorERKNS0_17AbstractAttributeERNS0_8CallBaseERNS0_8FunctionEjEZL24runAttributorOnFunctionsRNS0_16InformationCacheERNS0_9SetVectorIPS8_NS0_11SmallVectorISE_Lj0EEENS0_8DenseSetISE_NS0_12DenseMapInfoISE_vEEEELj0EEERNS0_14AnalysisGetterERNS0_16CallGraphUpdaterEbbE3$_0E10_M_managerERSt9_Any_dataRKST_St18_Manager_operation", ptr %27, align 8, !tbaa !378 %36 = getelementptr inbounds nuw i8, ptr %8, i64 64 store ptr @"_ZNSt17_Function_handlerIFbRN4llvm10AttributorERKNS0_17AbstractAttributeERNS0_8CallBaseERNS0_8FunctionEjEZL24runAttributorOnFunctionsRNS0_16InformationCacheERNS0_9SetVectorIPS8_NS0_11SmallVectorISE_Lj0EEENS0_8DenseSetISE_NS0_12DenseMapInfoISE_vEEEELj0EEERNS0_14AnalysisGetterERNS0_16CallGraphUpdaterEbbE3$_0E9_M_invokeERKSt9_Any_dataS2_S5_S7_S9_Oj", ptr %36, align 8, !tbaa !378 diff --git a/bench/llvm/optimized/BitcodeReader.ll b/bench/llvm/optimized/BitcodeReader.ll index 5ef6166f586..a224950056e 100644 --- a/bench/llvm/optimized/BitcodeReader.ll +++ b/bench/llvm/optimized/BitcodeReader.ll @@ -4948,8 +4948,8 @@ _ZN4llvm15ParserCallbacksC2ERKS0_.exit: ; preds = %_ZNSt8optionalISt8f store ptr @"_ZNSt17_Function_handlerIFPN4llvm4TypeEjEZN12_GLOBAL__N_113BitcodeReader16parseBitcodeIntoEPNS0_6ModuleEbbNS0_15ParserCallbacksEE3$_0E9_M_invokeERKSt9_Any_dataOj", ptr %409, align 8, !tbaa !110, !noalias !570 %410 = getelementptr inbounds nuw i8, ptr %8, i64 32 store i64 %233, ptr %410, align 8, !noalias !570 - %.sroa.499.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 40 - store i64 0, ptr %.sroa.499.0..sroa_idx, align 8, !noalias !570 + %.sroa.0.i.i.i5.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 40 + store i64 0, ptr %.sroa.0.i.i.i5.i.sroa.4.0..sroa_idx, align 8, !noalias !570 %411 = getelementptr inbounds nuw i8, ptr %8, i64 48 store ptr @"_ZNSt17_Function_handlerIFjjjEZN12_GLOBAL__N_113BitcodeReader16parseBitcodeIntoEPN4llvm6ModuleEbbNS3_15ParserCallbacksEE3$_1E10_M_managerERSt9_Any_dataRKS9_St18_Manager_operation", ptr %411, align 8, !tbaa !110, !noalias !570 %412 = getelementptr inbounds nuw i8, ptr %8, i64 56 diff --git a/bench/llvm/optimized/FastISel.ll b/bench/llvm/optimized/FastISel.ll index 2e44efcf021..46210f966e7 100644 --- a/bench/llvm/optimized/FastISel.ll +++ b/bench/llvm/optimized/FastISel.ll @@ -8836,20 +8836,20 @@ define dso_local void @_ZN4llvm8FastISel13handleDbgInfoEPKNS_11InstructionE(ptr 13: ; preds = %10 %14 = load ptr, ptr %11, align 8, !tbaa !140 %.not.i.i.i.i.i = icmp eq ptr %14, null - br i1 %.not.i.i.i.i.i, label %_ZN4llvm10MIMetadataaSEOS0_.exit.thread, label %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i + br i1 %.not.i.i.i.i.i, label %_ZN4llvm10MIMetadataD2Ev.exit, label %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i _ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i: ; preds = %13 call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 4 dereferenceable(8) %14) #21 %.pre = load ptr, ptr %4, align 8, !tbaa !140 store ptr %.pre, ptr %11, align 8, !tbaa !140 %.not.i6.i.i.i.i = icmp eq ptr %.pre, null - br i1 %.not.i6.i.i.i.i, label %_ZN4llvm10MIMetadataaSEOS0_.exit.thread, label %15 + br i1 %.not.i6.i.i.i.i, label %_ZN4llvm10MIMetadataD2Ev.exit, label %15 15: ; preds = %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i %16 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking7retrackEPvRNS_8MetadataES1_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 4 dereferenceable(8) %.pre, ptr noundef nonnull align 8 dereferenceable(24) %11) #21 - br label %_ZN4llvm10MIMetadataaSEOS0_.exit.thread + br label %_ZN4llvm10MIMetadataD2Ev.exit -_ZN4llvm10MIMetadataaSEOS0_.exit.thread: ; preds = %13, %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i, %15 +_ZN4llvm10MIMetadataD2Ev.exit: ; preds = %13, %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i, %15 %17 = getelementptr inbounds nuw i8, ptr %0, i64 80 %18 = getelementptr inbounds nuw i8, ptr %4, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(16) %18, i64 16, i1 false) @@ -8862,289 +8862,289 @@ _ZN4llvm10MIMetadataaSEOS0_.exit: ; preds = %10 _ZN4llvm10MIMetadataD2Ev.exit: ; preds = %_ZN4llvm10MIMetadataaSEOS0_.exit, %_ZN4llvm10MIMetadataaSEOS0_.exit.thread call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #21 - %20 = getelementptr inbounds nuw i8, ptr %1, i64 64 - %21 = load ptr, ptr %20, align 8, !tbaa !691 - %.not.i.i = icmp eq ptr %21, null - br i1 %.not.i.i, label %_ZNK4llvm11Instruction17getDbgRecordRangeEv.exit, label %22 + %19 = getelementptr inbounds nuw i8, ptr %1, i64 64 + %20 = load ptr, ptr %19, align 8, !tbaa !691 + %.not.i.i = icmp eq ptr %20, null + br i1 %.not.i.i, label %_ZNK4llvm11Instruction17getDbgRecordRangeEv.exit, label %21 -22: ; preds = %_ZN4llvm10MIMetadataD2Ev.exit - %23 = call { ptr, ptr } @_ZN4llvm9DbgMarker17getDbgRecordRangeEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #21 +21: ; preds = %_ZN4llvm10MIMetadataD2Ev.exit + %22 = call { ptr, ptr } @_ZN4llvm9DbgMarker17getDbgRecordRangeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #21 br label %_ZNK4llvm11Instruction17getDbgRecordRangeEv.exit -_ZNK4llvm11Instruction17getDbgRecordRangeEv.exit: ; preds = %_ZN4llvm10MIMetadataD2Ev.exit, %22 - %.pn.i.i = phi { ptr, ptr } [ %23, %22 ], [ { ptr getelementptr inbounds nuw (i8, ptr @_ZN4llvm9DbgMarker14EmptyDbgMarkerE, i64 8), ptr getelementptr inbounds nuw (i8, ptr @_ZN4llvm9DbgMarker14EmptyDbgMarkerE, i64 8) }, %_ZN4llvm10MIMetadataD2Ev.exit ] - %24 = extractvalue { ptr, ptr } %.pn.i.i, 0 - %25 = extractvalue { ptr, ptr } %.pn.i.i, 1 - %.not5457 = icmp eq ptr %25, %24 +_ZNK4llvm11Instruction17getDbgRecordRangeEv.exit: ; preds = %_ZN4llvm10MIMetadataD2Ev.exit, %21 + %.pn.i.i = phi { ptr, ptr } [ %22, %22 ], [ { ptr getelementptr inbounds nuw (i8, ptr @_ZN4llvm9DbgMarker14EmptyDbgMarkerE, i64 8), ptr getelementptr inbounds nuw (i8, ptr @_ZN4llvm9DbgMarker14EmptyDbgMarkerE, i64 8) }, %_ZN4llvm10MIMetadataD2Ev.exit ] + %23 = extractvalue { ptr, ptr } %.pn.i.i, 0 + %24 = extractvalue { ptr, ptr } %.pn.i.i, 1 + %.not5457 = icmp eq ptr %24, %23 br i1 %.not5457, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %_ZNK4llvm11Instruction17getDbgRecordRangeEv.exit - %26 = getelementptr inbounds nuw i8, ptr %0, i64 152 - %27 = getelementptr inbounds nuw i8, ptr %0, i64 32 - %28 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %29 = getelementptr inbounds nuw i8, ptr %0, i64 112 - %30 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %31 = getelementptr inbounds nuw i8, ptr %3, i64 16 - br label %32 + %25 = getelementptr inbounds nuw i8, ptr %0, i64 152 + %26 = getelementptr inbounds nuw i8, ptr %0, i64 32 + %27 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %28 = getelementptr inbounds nuw i8, ptr %0, i64 112 + %29 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %30 = getelementptr inbounds nuw i8, ptr %3, i64 16 + br label %31 -32: ; preds = %.lr.ph, %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52 - %.sroa.044.058 = phi ptr [ %25, %.lr.ph ], [ %143, %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52 ] - %33 = load ptr, ptr %.sroa.044.058, align 8, !tbaa !692 +31: ; preds = %.lr.ph, %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52 + %.sroa.044.058 = phi ptr [ %24, %.lr.ph ], [ %142, %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52 ] + %32 = load ptr, ptr %.sroa.044.058, align 8, !tbaa !692 call void @_ZN4llvm8FastISel18flushLocalValueMapEv(ptr noundef nonnull align 8 dereferenceable(176) %0) - %34 = load ptr, ptr %26, align 8, !tbaa !107 - %.not.i = icmp eq ptr %34, null - %35 = load ptr, ptr %27, align 8, !tbaa !33 - br i1 %.not.i, label %56, label %36 - -36: ; preds = %32 - %37 = getelementptr inbounds nuw i8, ptr %35, i64 688 - %38 = ptrtoint ptr %34 to i64 - store i64 %38, ptr %37, align 8 - %39 = load ptr, ptr %27, align 8, !tbaa !33 - %40 = getelementptr inbounds nuw i8, ptr %39, i64 688 - %41 = load ptr, ptr %40, align 8, !tbaa !148 - %42 = getelementptr inbounds nuw i8, ptr %41, i64 24 - %43 = load ptr, ptr %42, align 8, !tbaa !139 - %44 = getelementptr inbounds nuw i8, ptr %39, i64 680 - store ptr %43, ptr %44, align 8, !tbaa !34 - %.0.copyload.i.i.i.i.i.i.i.i.i.i = load i64, ptr %41, align 8 - %45 = and i64 %.0.copyload.i.i.i.i.i.i.i.i.i.i, 4 - %.not.i.i.i.i = icmp eq i64 %45, 0 + %33 = load ptr, ptr %25, align 8, !tbaa !107 + %.not.i = icmp eq ptr %33, null + %34 = load ptr, ptr %26, align 8, !tbaa !33 + br i1 %.not.i, label %55, label %35 + +35: ; preds = %31 + %36 = getelementptr inbounds nuw i8, ptr %34, i64 688 + %37 = ptrtoint ptr %33 to i64 + store i64 %37, ptr %36, align 8 + %38 = load ptr, ptr %26, align 8, !tbaa !33 + %39 = getelementptr inbounds nuw i8, ptr %38, i64 688 + %40 = load ptr, ptr %39, align 8, !tbaa !148 + %41 = getelementptr inbounds nuw i8, ptr %40, i64 24 + %42 = load ptr, ptr %41, align 8, !tbaa !139 + %43 = getelementptr inbounds nuw i8, ptr %38, i64 680 + store ptr %42, ptr %43, align 8, !tbaa !34 + %.0.copyload.i.i.i.i.i.i.i.i.i.i = load i64, ptr %40, align 8 + %44 = and i64 %.0.copyload.i.i.i.i.i.i.i.i.i.i, 4 + %.not.i.i.i.i = icmp eq i64 %44, 0 br i1 %.not.i.i.i.i, label %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i, label %_ZN4llvm26MachineInstrBundleIteratorINS_12MachineInstrELb0EEppEv.exit.i -_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i: ; preds = %36 - %46 = getelementptr inbounds nuw i8, ptr %41, i64 44 - %47 = load i32, ptr %46, align 4 - %48 = and i32 %47, 8 - %.not34.i.i.i.i = icmp eq i32 %48, 0 +_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i: ; preds = %35 + %45 = getelementptr inbounds nuw i8, ptr %40, i64 44 + %46 = load i32, ptr %45, align 4 + %47 = and i32 %46, 8 + %.not34.i.i.i.i = icmp eq i32 %47, 0 br i1 %.not34.i.i.i.i, label %_ZN4llvm26MachineInstrBundleIteratorINS_12MachineInstrELb0EEppEv.exit.i, label %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i _ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i: ; preds = %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i - %.sroa.0.15.i.i.i.i = phi ptr [ %50, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i ], [ %41, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i ] - %49 = getelementptr inbounds nuw i8, ptr %.sroa.0.15.i.i.i.i, i64 8 - %50 = load ptr, ptr %49, align 8, !tbaa !108 - %51 = getelementptr inbounds nuw i8, ptr %50, i64 44 - %52 = load i32, ptr %51, align 4 - %53 = and i32 %52, 8 - %.not3.i.i.i.i = icmp eq i32 %53, 0 + %.sroa.0.15.i.i.i.i = phi ptr [ %49, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i ], [ %40, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i ] + %48 = getelementptr inbounds nuw i8, ptr %.sroa.0.15.i.i.i.i, i64 8 + %49 = load ptr, ptr %48, align 8, !tbaa !108 + %50 = getelementptr inbounds nuw i8, ptr %49, i64 44 + %51 = load i32, ptr %50, align 4 + %52 = and i32 %51, 8 + %.not3.i.i.i.i = icmp eq i32 %52, 0 br i1 %.not3.i.i.i.i, label %_ZN4llvm26MachineInstrBundleIteratorINS_12MachineInstrELb0EEppEv.exit.i, label %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i, !llvm.loop !113 -_ZN4llvm26MachineInstrBundleIteratorINS_12MachineInstrELb0EEppEv.exit.i: ; preds = %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i, %36 - %.sroa.0.0.i.i.i.i = phi ptr [ %41, %36 ], [ %41, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i ], [ %50, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i ] - %54 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.i.i.i.i, i64 8 - %55 = load ptr, ptr %54, align 8, !tbaa !108 - store ptr %55, ptr %40, align 8 +_ZN4llvm26MachineInstrBundleIteratorINS_12MachineInstrELb0EEppEv.exit.i: ; preds = %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i, %35 + %.sroa.0.0.i.i.i.i = phi ptr [ %40, %36 ], [ %40, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.preheader.i.i.i.i ], [ %49, %_ZNK4llvm14ilist_iteratorINS_12ilist_detail12node_optionsINS_12MachineInstrELb1ELb1EvLb0EvEELb0ELb0EE5isEndEv.exit.i.i.i.i ] + %53 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.i.i.i.i, i64 8 + %54 = load ptr, ptr %53, align 8, !tbaa !108 + store ptr %54, ptr %39, align 8 br label %_ZN4llvm8FastISel17recomputeInsertPtEv.exit -56: ; preds = %32 - %57 = getelementptr inbounds nuw i8, ptr %35, i64 680 - %58 = load ptr, ptr %57, align 8, !tbaa !34 - %59 = call ptr @_ZN4llvm17MachineBasicBlock14getFirstNonPHIEv(ptr noundef nonnull align 8 dereferenceable(288) %58) #21 - %60 = load ptr, ptr %27, align 8, !tbaa !33 - %61 = getelementptr inbounds nuw i8, ptr %60, i64 688 - store ptr %59, ptr %61, align 8 +55: ; preds = %31 + %56 = getelementptr inbounds nuw i8, ptr %34, i64 680 + %57 = load ptr, ptr %56, align 8, !tbaa !34 + %58 = call ptr @_ZN4llvm17MachineBasicBlock14getFirstNonPHIEv(ptr noundef nonnull align 8 dereferenceable(288) %57) #21 + %59 = load ptr, ptr %26, align 8, !tbaa !33 + %60 = getelementptr inbounds nuw i8, ptr %59, i64 688 + store ptr %58, ptr %60, align 8 br label %_ZN4llvm8FastISel17recomputeInsertPtEv.exit -_ZN4llvm8FastISel17recomputeInsertPtEv.exit: ; preds = %_ZN4llvm26MachineInstrBundleIteratorINS_12MachineInstrELb0EEppEv.exit.i, %56 - %62 = getelementptr inbounds nuw i8, ptr %33, i64 32 - %63 = load i8, ptr %62, align 8, !tbaa !693 - %64 = icmp ne i8 %63, 1 - %.not55 = icmp eq ptr %33, null - %.not = select i1 %64, i1 true, i1 %.not55 - br i1 %.not, label %.critedge, label %65 - -65: ; preds = %_ZN4llvm8FastISel17recomputeInsertPtEv.exit - %66 = load ptr, ptr %27, align 8, !tbaa !33 - %67 = getelementptr inbounds nuw i8, ptr %66, i64 680 - %68 = load ptr, ptr %67, align 8, !tbaa !34 - %69 = getelementptr inbounds nuw i8, ptr %66, i64 688 - %.sroa.0.0.copyload = load ptr, ptr %69, align 8 +_ZN4llvm8FastISel17recomputeInsertPtEv.exit: ; preds = %_ZN4llvm26MachineInstrBundleIteratorINS_12MachineInstrELb0EEppEv.exit.i, %55 + %61 = getelementptr inbounds nuw i8, ptr %32, i64 32 + %62 = load i8, ptr %61, align 8, !tbaa !693 + %63 = icmp ne i8 %62, 1 + %.not55 = icmp eq ptr %32, null + %.not = select i1 %63, i1 true, i1 %.not55 + br i1 %.not, label %.critedge, label %64 + +64: ; preds = %_ZN4llvm8FastISel17recomputeInsertPtEv.exit + %65 = load ptr, ptr %26, align 8, !tbaa !33 + %66 = getelementptr inbounds nuw i8, ptr %65, i64 680 + %67 = load ptr, ptr %66, align 8, !tbaa !34 + %68 = getelementptr inbounds nuw i8, ptr %65, i64 688 + %.sroa.0.0.copyload = load ptr, ptr %68, align 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #21 call void @llvm.experimental.noalias.scope.decl(metadata !698) - %70 = getelementptr inbounds nuw i8, ptr %33, i64 24 - %71 = load ptr, ptr %70, align 8, !tbaa !140, !noalias !698 - store ptr %71, ptr %6, align 8, !tbaa !140, !alias.scope !698 - %.not.i.i.i.i.i30 = icmp eq ptr %71, null + %69 = getelementptr inbounds nuw i8, ptr %32, i64 24 + %70 = load ptr, ptr %69, align 8, !tbaa !140, !noalias !698 + store ptr %70, ptr %6, align 8, !tbaa !140, !alias.scope !698 + %.not.i.i.i.i.i30 = icmp eq ptr %70, null br i1 %.not.i.i.i.i.i30, label %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit.sink.split, label %_ZNK4llvm9DbgRecord11getDebugLocEv.exit -_ZNK4llvm9DbgRecord11getDebugLocEv.exit: ; preds = %65 - %72 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 4 dereferenceable(8) %71, i64 1) #21 +_ZNK4llvm9DbgRecord11getDebugLocEv.exit: ; preds = %64 + %71 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 4 dereferenceable(8) %70, i64 1) #21 %.pr = load ptr, ptr %6, align 8, !tbaa !140 store ptr %.pr, ptr %5, align 8, !tbaa !140 %.not.i.i.i.i.i31 = icmp eq ptr %.pr, null - br i1 %.not.i.i.i.i.i31, label %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit, label %73 + br i1 %.not.i.i.i.i.i31, label %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit, label %72 -73: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit - %74 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking7retrackEPvRNS_8MetadataES1_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 4 dereferenceable(8) %.pr, ptr noundef nonnull align 8 dereferenceable(24) %5) #21 +72: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit + %73 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking7retrackEPvRNS_8MetadataES1_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 4 dereferenceable(8) %.pr, ptr noundef nonnull align 8 dereferenceable(24) %5) #21 br label %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit.sink.split -_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit.sink.split: ; preds = %65, %73 +_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit.sink.split: ; preds = %64, %72 %.sink = phi ptr [ %6, %73 ], [ %5, %65 ] store ptr null, ptr %.sink, align 8, !tbaa !140 br label %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit _ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit: ; preds = %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit.sink.split, %_ZNK4llvm9DbgRecord11getDebugLocEv.exit - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %28, i8 0, i64 16, i1 false) - %75 = load ptr, ptr %29, align 8, !tbaa !222 - %76 = getelementptr inbounds nuw i8, ptr %75, i64 8 - %77 = load ptr, ptr %76, align 8, !tbaa !223 - %78 = getelementptr inbounds i8, ptr %77, i64 -576 - %79 = call { ptr, ptr } @_ZN4llvm7BuildMIERNS_17MachineBasicBlockENS_26MachineInstrBundleIteratorINS_12MachineInstrELb0EEERKNS_10MIMetadataERKNS_11MCInstrDescE(ptr noundef nonnull align 8 dereferenceable(288) %68, ptr %.sroa.0.0.copyload, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(32) %78) - %80 = extractvalue { ptr, ptr } %79, 0 - %81 = extractvalue { ptr, ptr } %79, 1 - %82 = getelementptr inbounds nuw i8, ptr %33, i64 40 - %83 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_7DILabelEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %82) #21 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %27, i8 0, i64 16, i1 false) + %74 = load ptr, ptr %28, align 8, !tbaa !222 + %75 = getelementptr inbounds nuw i8, ptr %74, i64 8 + %76 = load ptr, ptr %75, align 8, !tbaa !223 + %77 = getelementptr inbounds i8, ptr %76, i64 -576 + %78 = call { ptr, ptr } @_ZN4llvm7BuildMIERNS_17MachineBasicBlockENS_26MachineInstrBundleIteratorINS_12MachineInstrELb0EEERKNS_10MIMetadataERKNS_11MCInstrDescE(ptr noundef nonnull align 8 dereferenceable(288) %67, ptr %.sroa.0.0.copyload, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(32) %77) + %79 = extractvalue { ptr, ptr } %78, 0 + %80 = extractvalue { ptr, ptr } %78, 1 + %81 = getelementptr inbounds nuw i8, ptr %32, i64 40 + %82 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_7DILabelEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %81) #21 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #21 store i32 14, ptr %3, align 8, !alias.scope !701 - store ptr null, ptr %30, align 8, !tbaa !301, !alias.scope !701 - store ptr %83, ptr %31, align 8, !tbaa !125, !alias.scope !701 - call void @_ZN4llvm12MachineInstr10addOperandERNS_15MachineFunctionERKNS_14MachineOperandE(ptr noundef nonnull align 8 dereferenceable(70) %81, ptr noundef nonnull align 8 dereferenceable(1065) %80, ptr noundef nonnull align 8 dereferenceable(32) %3) #21 + store ptr null, ptr %29, align 8, !tbaa !301, !alias.scope !701 + store ptr %82, ptr %30, align 8, !tbaa !125, !alias.scope !701 + call void @_ZN4llvm12MachineInstr10addOperandERNS_15MachineFunctionERKNS_14MachineOperandE(ptr noundef nonnull align 8 dereferenceable(70) %80, ptr noundef nonnull align 8 dereferenceable(1065) %79, ptr noundef nonnull align 8 dereferenceable(32) %3) #21 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #21 - %84 = load ptr, ptr %5, align 8, !tbaa !140 - %.not.i.i.i.i.i32 = icmp eq ptr %84, null - br i1 %.not.i.i.i.i.i32, label %_ZN4llvm10MIMetadataD2Ev.exit33, label %85 + %83 = load ptr, ptr %5, align 8, !tbaa !140 + %.not.i.i.i.i.i32 = icmp eq ptr %83, null + br i1 %.not.i.i.i.i.i32, label %_ZN4llvm10MIMetadataD2Ev.exit33, label %84 -85: ; preds = %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit - call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 4 dereferenceable(8) %84) #21 +84: ; preds = %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit + call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 4 dereferenceable(8) %83) #21 br label %_ZN4llvm10MIMetadataD2Ev.exit33 -_ZN4llvm10MIMetadataD2Ev.exit33: ; preds = %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit, %85 - %86 = load ptr, ptr %6, align 8, !tbaa !140 - %.not.i.i.i.i34 = icmp eq ptr %86, null - br i1 %.not.i.i.i.i34, label %_ZN4llvm8DebugLocD2Ev.exit, label %87 +_ZN4llvm10MIMetadataD2Ev.exit33: ; preds = %_ZN4llvm10MIMetadataC2ENS_8DebugLocEPNS_6MDNodeES3_.exit, %84 + %85 = load ptr, ptr %6, align 8, !tbaa !140 + %.not.i.i.i.i34 = icmp eq ptr %85, null + br i1 %.not.i.i.i.i34, label %_ZN4llvm8DebugLocD2Ev.exit, label %86 -87: ; preds = %_ZN4llvm10MIMetadataD2Ev.exit33 - call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 4 dereferenceable(8) %86) #21 +86: ; preds = %_ZN4llvm10MIMetadataD2Ev.exit33 + call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 4 dereferenceable(8) %85) #21 br label %_ZN4llvm8DebugLocD2Ev.exit -_ZN4llvm8DebugLocD2Ev.exit: ; preds = %_ZN4llvm10MIMetadataD2Ev.exit33, %87 +_ZN4llvm8DebugLocD2Ev.exit: ; preds = %_ZN4llvm10MIMetadataD2Ev.exit33, %86 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #21 br label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52 .critedge: ; preds = %_ZN4llvm8FastISel17recomputeInsertPtEv.exit - %88 = getelementptr inbounds nuw i8, ptr %33, i64 40 - %89 = load ptr, ptr %88, align 8, !tbaa !704 - %90 = load i8, ptr %89, align 4, !tbaa !686 - %91 = icmp eq i8 %90, 4 - br i1 %91, label %94, label %92 - -92: ; preds = %.critedge - %93 = call noundef ptr @_ZNK4llvm17DbgVariableRecord21getVariableLocationOpEj(ptr noundef nonnull align 8 dereferenceable(96) %33, i32 noundef 0) #21 - br label %94 - -94: ; preds = %92, %.critedge - %.026 = phi ptr [ null, %.critedge ], [ %93, %92 ] - %95 = getelementptr inbounds nuw i8, ptr %33, i64 64 - %96 = load i8, ptr %95, align 8, !tbaa !705 - %.off = add i8 %96, -1 + %87 = getelementptr inbounds nuw i8, ptr %32, i64 40 + %88 = load ptr, ptr %87, align 8, !tbaa !704 + %89 = load i8, ptr %88, align 4, !tbaa !686 + %90 = icmp eq i8 %89, 4 + br i1 %90, label %93, label %91 + +91: ; preds = %.critedge + %92 = call noundef ptr @_ZNK4llvm17DbgVariableRecord21getVariableLocationOpEj(ptr noundef nonnull align 8 dereferenceable(96) %32, i32 noundef 0) #21 + br label %93 + +93: ; preds = %91, %.critedge + %.026 = phi ptr [ null, %.critedge ], [ %92, %92 ] + %94 = getelementptr inbounds nuw i8, ptr %32, i64 64 + %95 = load i8, ptr %94, align 8, !tbaa !705 + %.off = add i8 %95, -1 %switch = icmp ult i8 %.off, 2 - br i1 %switch, label %97, label %112 + br i1 %switch, label %96, label %111 -97: ; preds = %94 - %98 = getelementptr inbounds nuw i8, ptr %33, i64 80 - %99 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_12DIExpressionEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %98) #21 - %100 = getelementptr inbounds nuw i8, ptr %33, i64 72 - %101 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_15DILocalVariableEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %100) #21 +96: ; preds = %93 + %97 = getelementptr inbounds nuw i8, ptr %32, i64 80 + %98 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_12DIExpressionEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %97) #21 + %99 = getelementptr inbounds nuw i8, ptr %32, i64 72 + %100 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_15DILocalVariableEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %99) #21 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #21 call void @llvm.experimental.noalias.scope.decl(metadata !712) - %102 = getelementptr inbounds nuw i8, ptr %33, i64 24 - %103 = load ptr, ptr %102, align 8, !tbaa !140, !noalias !712 - store ptr %103, ptr %7, align 8, !tbaa !140, !alias.scope !712 - %.not.i.i.i.i.i35 = icmp eq ptr %103, null - br i1 %.not.i.i.i.i.i35, label %_ZNK4llvm9DbgRecord11getDebugLocEv.exit36, label %104 - -104: ; preds = %97 - %105 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %103, i64 1) #21 + %101 = getelementptr inbounds nuw i8, ptr %32, i64 24 + %102 = load ptr, ptr %101, align 8, !tbaa !140, !noalias !712 + store ptr %102, ptr %7, align 8, !tbaa !140, !alias.scope !712 + %.not.i.i.i.i.i35 = icmp eq ptr %102, null + br i1 %.not.i.i.i.i.i35, label %_ZNK4llvm9DbgRecord11getDebugLocEv.exit36, label %103 + +103: ; preds = %96 + %104 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %102, i64 1) #21 br label %_ZNK4llvm9DbgRecord11getDebugLocEv.exit36 -_ZNK4llvm9DbgRecord11getDebugLocEv.exit36: ; preds = %97, %104 - %106 = load ptr, ptr %0, align 8, !tbaa !152 - %107 = getelementptr inbounds nuw i8, ptr %106, i64 128 - %108 = load ptr, ptr %107, align 8 - %109 = call noundef zeroext i1 %108(ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef %.026, ptr noundef %99, ptr noundef %101, ptr noundef nonnull align 8 dereferenceable(8) %7) #21 - %110 = load ptr, ptr %7, align 8, !tbaa !140 - %.not.i.i.i.i37 = icmp eq ptr %110, null - br i1 %.not.i.i.i.i37, label %_ZN4llvm8DebugLocD2Ev.exit38, label %111 - -111: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit36 - call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %110) #21 +_ZNK4llvm9DbgRecord11getDebugLocEv.exit36: ; preds = %96, %103 + %105 = load ptr, ptr %0, align 8, !tbaa !152 + %106 = getelementptr inbounds nuw i8, ptr %105, i64 128 + %107 = load ptr, ptr %106, align 8 + %108 = call noundef zeroext i1 %108(ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef %.026, ptr noundef %98, ptr noundef %100, ptr noundef nonnull align 8 dereferenceable(8) %7) #21 + %109 = load ptr, ptr %7, align 8, !tbaa !140 + %.not.i.i.i.i37 = icmp eq ptr %109, null + br i1 %.not.i.i.i.i37, label %_ZN4llvm8DebugLocD2Ev.exit38, label %110 + +110: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit36 + call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %109) #21 br label %_ZN4llvm8DebugLocD2Ev.exit38 -_ZN4llvm8DebugLocD2Ev.exit38: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit36, %111 +_ZN4llvm8DebugLocD2Ev.exit38: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit36, %110 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #21 br label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52 -112: ; preds = %94 - %113 = load ptr, ptr %27, align 8, !tbaa !33 - %114 = getelementptr inbounds nuw i8, ptr %113, i64 912 - %115 = getelementptr inbounds nuw i8, ptr %113, i64 932 - %116 = load i8, ptr %115, align 4, !tbaa !679, !range !150, !noundef !151 - %117 = trunc nuw i8 %116 to i1 - br i1 %117, label %118, label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit - -118: ; preds = %112 - %119 = load ptr, ptr %114, align 8, !tbaa !680 - %120 = getelementptr inbounds nuw i8, ptr %113, i64 924 - %121 = load i32, ptr %120, align 4, !tbaa !681 - %122 = zext i32 %121 to i64 - %123 = getelementptr inbounds nuw ptr, ptr %119, i64 %122 - %.not.not9.i.i = icmp eq i32 %121, 0 +111: ; preds = %93 + %112 = load ptr, ptr %26, align 8, !tbaa !33 + %113 = getelementptr inbounds nuw i8, ptr %112, i64 912 + %114 = getelementptr inbounds nuw i8, ptr %112, i64 932 + %115 = load i8, ptr %114, align 4, !tbaa !679, !range !150, !noundef !151 + %116 = trunc nuw i8 %115 to i1 + br i1 %116, label %117, label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit + +117: ; preds = %111 + %118 = load ptr, ptr %113, align 8, !tbaa !680 + %119 = getelementptr inbounds nuw i8, ptr %112, i64 924 + %120 = load i32, ptr %119, align 4, !tbaa !681 + %121 = zext i32 %120 to i64 + %122 = getelementptr inbounds nuw ptr, ptr %118, i64 %121 + %.not.not9.i.i = icmp eq i32 %120, 0 br i1 %.not.not9.i.i, label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread, label %.lr.ph.i.i -124: ; preds = %.lr.ph.i.i - %125 = getelementptr inbounds nuw i8, ptr %.0810.i.i, i64 8 - %.not.not.i.i = icmp eq ptr %125, %123 +123: ; preds = %.lr.ph.i.i + %124 = getelementptr inbounds nuw i8, ptr %.0810.i.i, i64 8 + %.not.not.i.i = icmp eq ptr %124, %122 br i1 %.not.not.i.i, label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread, label %.lr.ph.i.i, !llvm.loop !682 -.lr.ph.i.i: ; preds = %118, %124 - %.0810.i.i = phi ptr [ %125, %124 ], [ %119, %118 ] - %126 = load ptr, ptr %.0810.i.i, align 8, !tbaa !683 - %127 = icmp eq ptr %126, %33 - br i1 %127, label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52, label %124 +.lr.ph.i.i: ; preds = %117, %123 + %.0810.i.i = phi ptr [ %124, %124 ], [ %118, %118 ] + %125 = load ptr, ptr %.0810.i.i, align 8, !tbaa !683 + %126 = icmp eq ptr %125, %32 + br i1 %126, label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52, label %123 -_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit: ; preds = %112 - %128 = call noundef ptr @_ZNK4llvm19SmallPtrSetImplBase6doFindEPKv(ptr noundef nonnull align 8 dereferenceable(21) %114, ptr noundef nonnull %33) #21 - %.not56 = icmp eq ptr %128, null +_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit: ; preds = %111 + %127 = call noundef ptr @_ZNK4llvm19SmallPtrSetImplBase6doFindEPKv(ptr noundef nonnull align 8 dereferenceable(21) %113, ptr noundef nonnull %32) #21 + %.not56 = icmp eq ptr %127, null br i1 %.not56, label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread, label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52 -_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread: ; preds = %124, %118, %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit - %129 = getelementptr inbounds nuw i8, ptr %33, i64 80 - %130 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_12DIExpressionEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %129) #21 - %131 = getelementptr inbounds nuw i8, ptr %33, i64 72 - %132 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_15DILocalVariableEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %131) #21 +_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread: ; preds = %123, %117, %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit + %128 = getelementptr inbounds nuw i8, ptr %32, i64 80 + %129 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_12DIExpressionEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %128) #21 + %130 = getelementptr inbounds nuw i8, ptr %32, i64 72 + %131 = call noundef ptr @_ZNK4llvm17DbgRecordParamRefINS_15DILocalVariableEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %130) #21 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #21 call void @llvm.experimental.noalias.scope.decl(metadata !715) - %133 = getelementptr inbounds nuw i8, ptr %33, i64 24 - %134 = load ptr, ptr %133, align 8, !tbaa !140, !noalias !715 - store ptr %134, ptr %8, align 8, !tbaa !140, !alias.scope !715 - %.not.i.i.i.i.i39 = icmp eq ptr %134, null - br i1 %.not.i.i.i.i.i39, label %_ZNK4llvm9DbgRecord11getDebugLocEv.exit40, label %135 - -135: ; preds = %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread - %136 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(8) %134, i64 1) #21 + %132 = getelementptr inbounds nuw i8, ptr %32, i64 24 + %133 = load ptr, ptr %132, align 8, !tbaa !140, !noalias !715 + store ptr %133, ptr %8, align 8, !tbaa !140, !alias.scope !715 + %.not.i.i.i.i.i39 = icmp eq ptr %133, null + br i1 %.not.i.i.i.i.i39, label %_ZNK4llvm9DbgRecord11getDebugLocEv.exit40, label %134 + +134: ; preds = %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread + %135 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(8) %133, i64 1) #21 br label %_ZNK4llvm9DbgRecord11getDebugLocEv.exit40 -_ZNK4llvm9DbgRecord11getDebugLocEv.exit40: ; preds = %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread, %135 - %137 = load ptr, ptr %0, align 8, !tbaa !152 - %138 = getelementptr inbounds nuw i8, ptr %137, i64 136 - %139 = load ptr, ptr %138, align 8 - %140 = call noundef zeroext i1 %139(ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef %.026, ptr noundef %130, ptr noundef %132, ptr noundef nonnull align 8 dereferenceable(8) %8) #21 - %141 = load ptr, ptr %8, align 8, !tbaa !140 - %.not.i.i.i.i41 = icmp eq ptr %141, null - br i1 %.not.i.i.i.i41, label %_ZN4llvm8DebugLocD2Ev.exit42, label %142 - -142: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit40 - call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(8) %141) #21 +_ZNK4llvm9DbgRecord11getDebugLocEv.exit40: ; preds = %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread, %134 + %136 = load ptr, ptr %0, align 8, !tbaa !152 + %137 = getelementptr inbounds nuw i8, ptr %136, i64 136 + %138 = load ptr, ptr %137, align 8 + %139 = call noundef zeroext i1 %139(ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef %.026, ptr noundef %129, ptr noundef %131, ptr noundef nonnull align 8 dereferenceable(8) %8) #21 + %140 = load ptr, ptr %8, align 8, !tbaa !140 + %.not.i.i.i.i41 = icmp eq ptr %140, null + br i1 %.not.i.i.i.i41, label %_ZN4llvm8DebugLocD2Ev.exit42, label %141 + +141: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit40 + call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(8) %140) #21 br label %_ZN4llvm8DebugLocD2Ev.exit42 -_ZN4llvm8DebugLocD2Ev.exit42: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit40, %142 +_ZN4llvm8DebugLocD2Ev.exit42: ; preds = %_ZNK4llvm9DbgRecord11getDebugLocEv.exit40, %141 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #21 br label %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52 _ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52: ; preds = %.lr.ph.i.i, %_ZN4llvm8DebugLocD2Ev.exit, %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit, %_ZN4llvm8DebugLocD2Ev.exit42, %_ZN4llvm8DebugLocD2Ev.exit38 - %143 = load ptr, ptr %.sroa.044.058, align 8, !tbaa !692 - %.not54 = icmp eq ptr %143, %24 - br i1 %.not54, label %.loopexit, label %32 + %142 = load ptr, ptr %.sroa.044.058, align 8, !tbaa !692 + %.not54 = icmp eq ptr %142, %23 + br i1 %.not54, label %.loopexit, label %31 .loopexit: ; preds = %_ZNK4llvm15SmallPtrSetImplIPKNS_17DbgVariableRecordEE8containsES3_.exit.thread52, %_ZNK4llvm11Instruction17getDbgRecordRangeEv.exit, %2 ret void @@ -11206,20 +11206,20 @@ _ZNK4llvm7PHINode24getIncomingValueForBlockEPKNS_10BasicBlockE.exit: ; preds = % 132: ; preds = %_ZNK4llvm7PHINode24getIncomingValueForBlockEPKNS_10BasicBlockE.exit %133 = load ptr, ptr %35, align 8, !tbaa !140 %.not.i.i.i.i.i = icmp eq ptr %133, null - br i1 %.not.i.i.i.i.i, label %_ZN4llvm10MIMetadataaSEOS0_.exit.thread, label %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i + br i1 %.not.i.i.i.i.i, label %_ZN4llvm10MIMetadataD2Ev.exit, label %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i _ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i: ; preds = %132 call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(24) %35, ptr noundef nonnull align 4 dereferenceable(8) %133) #21 %.pre194 = load ptr, ptr %4, align 8, !tbaa !140 store ptr %.pre194, ptr %35, align 8, !tbaa !140 %.not.i6.i.i.i.i = icmp eq ptr %.pre194, null - br i1 %.not.i6.i.i.i.i, label %_ZN4llvm10MIMetadataaSEOS0_.exit.thread, label %134 + br i1 %.not.i6.i.i.i.i, label %_ZN4llvm10MIMetadataD2Ev.exit, label %134 134: ; preds = %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i %135 = call noundef zeroext i1 @_ZN4llvm16MetadataTracking7retrackEPvRNS_8MetadataES1_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 4 dereferenceable(8) %.pre194, ptr noundef nonnull align 8 dereferenceable(24) %35) #21 - br label %_ZN4llvm10MIMetadataaSEOS0_.exit.thread + br label %_ZN4llvm10MIMetadataD2Ev.exit -_ZN4llvm10MIMetadataaSEOS0_.exit.thread: ; preds = %132, %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i, %134 +_ZN4llvm10MIMetadataD2Ev.exit: ; preds = %132, %_ZN4llvm13TrackingMDRef7untrackEv.exit.i.i.i.i, %134 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef nonnull align 8 dereferenceable(16) %38, i64 16, i1 false) br label %_ZN4llvm10MIMetadataD2Ev.exit diff --git a/bench/llvm/optimized/LoopVectorizationLegality.ll b/bench/llvm/optimized/LoopVectorizationLegality.ll index d57856cb4a8..ab25a3a4fe4 100644 --- a/bench/llvm/optimized/LoopVectorizationLegality.ll +++ b/bench/llvm/optimized/LoopVectorizationLegality.ll @@ -6044,7 +6044,7 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(164) ptr @_ZN ._crit_edge: ; preds = %2 %.pre = load i32, ptr %10, align 4, !tbaa !66 - br label %49 + br label %51 _ZSt9make_pairIRKPN4llvm7PHINodeENS0_20RecurrenceDescriptorEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS7_INS8_IT0_E4typeEE6__typeEEOS9_OSE_.exit: ; preds = %2 call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %5) #20 @@ -6083,70 +6083,70 @@ _ZSt9make_pairIRKPN4llvm7PHINodeENS0_20RecurrenceDescriptorEESt4pairINSt25__stri %32 = load i32, ptr %31, align 8, !tbaa !412, !noalias !470 store i32 %32, ptr %30, align 8, !tbaa !412, !alias.scope !470 call void @_ZN4llvm23SmallVectorTemplateBaseISt4pairIPNS_7PHINodeENS_20RecurrenceDescriptorEELb0EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr noundef nonnull align 8 dereferenceable(176) %5) - %33 = getelementptr inbounds nuw i8, ptr %5, i64 100 - %34 = load i8, ptr %33, align 4, !tbaa !32, !range !48, !noundef !49 - %35 = trunc nuw i8 %34 to i1 - br i1 %35, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, label %36 + %35 = getelementptr inbounds nuw i8, ptr %5, i64 100 + %36 = load i8, ptr %35, align 4, !tbaa !32, !range !48, !noundef !49 + %37 = trunc nuw i8 %36 to i1 + br i1 %37, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, label %38 -36: ; preds = %_ZSt9make_pairIRKPN4llvm7PHINodeENS0_20RecurrenceDescriptorEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS7_INS8_IT0_E4typeEE6__typeEEOS9_OSE_.exit - %37 = load ptr, ptr %28, align 8, !tbaa !28 - call void @free(ptr noundef %37) #20 +38: ; preds = %_ZSt9make_pairIRKPN4llvm7PHINodeENS0_20RecurrenceDescriptorEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS7_INS8_IT0_E4typeEE6__typeEEOS9_OSE_.exit + %39 = load ptr, ptr %28, align 8, !tbaa !28 + call void @free(ptr noundef %39) #20 br label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i -_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i: ; preds = %36, %_ZSt9make_pairIRKPN4llvm7PHINodeENS0_20RecurrenceDescriptorEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS7_INS8_IT0_E4typeEE6__typeEEOS9_OSE_.exit - %38 = load ptr, ptr %25, align 8, !tbaa !346 - %magicptr.i.i.i.i = ptrtoint ptr %38 to i64 +_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i: ; preds = %38, %_ZSt9make_pairIRKPN4llvm7PHINodeENS0_20RecurrenceDescriptorEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS7_INS8_IT0_E4typeEE6__typeEEOS9_OSE_.exit + %40 = load ptr, ptr %25, align 8, !tbaa !346 + %magicptr.i.i.i.i = ptrtoint ptr %40 to i64 switch i64 %magicptr.i.i.i.i, label %39 [ i64 0, label %_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit i64 -4096, label %_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit i64 -8192, label %_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit ] -39: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i +41: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i call void @_ZN4llvm15ValueHandleBase17RemoveFromUseListEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #20 br label %_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit -_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %39 - %40 = load i8, ptr %20, align 4, !tbaa !32, !range !48, !noundef !49 - %41 = trunc nuw i8 %40 to i1 - br i1 %41, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i, label %42 +_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %41 + %42 = load i8, ptr %20, align 4, !tbaa !32, !range !48, !noundef !49 + %43 = trunc nuw i8 %42 to i1 + br i1 %43, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i, label %44 -42: ; preds = %_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit - %43 = load ptr, ptr %16, align 8, !tbaa !28 - call void @free(ptr noundef %43) #20 +44: ; preds = %_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit + %45 = load ptr, ptr %16, align 8, !tbaa !28 + call void @free(ptr noundef %45) #20 br label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i -_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i: ; preds = %42, %_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit - %44 = load ptr, ptr %26, align 8, !tbaa !346 - %magicptr.i.i.i = ptrtoint ptr %44 to i64 +_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i: ; preds = %44, %_ZNSt4pairIPN4llvm7PHINodeENS0_20RecurrenceDescriptorEED2Ev.exit + %46 = load ptr, ptr %26, align 8, !tbaa !346 + %magicptr.i.i.i = ptrtoint ptr %46 to i64 switch i64 %magicptr.i.i.i, label %45 [ i64 0, label %_ZN4llvm20RecurrenceDescriptorD2Ev.exit i64 -4096, label %_ZN4llvm20RecurrenceDescriptorD2Ev.exit i64 -8192, label %_ZN4llvm20RecurrenceDescriptorD2Ev.exit ] -45: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i +47: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i call void @_ZN4llvm15ValueHandleBase17RemoveFromUseListEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #20 br label %_ZN4llvm20RecurrenceDescriptorD2Ev.exit -_ZN4llvm20RecurrenceDescriptorD2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i, %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i, %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i, %45 +_ZN4llvm20RecurrenceDescriptorD2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i, %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i, %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i, %47 call void @llvm.lifetime.end.p0(i64 168, ptr nonnull %6) #20 call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %5) #20 - %46 = getelementptr inbounds nuw i8, ptr %0, i64 32 - %47 = load i32, ptr %46, align 8, !tbaa !26 - %48 = add i32 %47, -1 - store i32 %48, ptr %10, align 4, !tbaa !66 - br label %49 + %48 = getelementptr inbounds nuw i8, ptr %0, i64 32 + %49 = load i32, ptr %48, align 8, !tbaa !26 + %50 = add i32 %49, -1 + store i32 %50, ptr %10, align 4, !tbaa !66 + br label %51 -49: ; preds = %._crit_edge, %_ZN4llvm20RecurrenceDescriptorD2Ev.exit - %50 = phi i32 [ %.pre, %._crit_edge ], [ %48, %_ZN4llvm20RecurrenceDescriptorD2Ev.exit ] - %51 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %52 = zext i32 %50 to i64 - %53 = load ptr, ptr %51, align 8, !tbaa !25 - %54 = getelementptr inbounds nuw %"struct.std::pair.423", ptr %53, i64 %52, i32 1 +51: ; preds = %._crit_edge, %_ZN4llvm20RecurrenceDescriptorD2Ev.exit + %52 = phi i32 [ %.pre, %._crit_edge ], [ %50, %_ZN4llvm20RecurrenceDescriptorD2Ev.exit ] + %53 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %54 = zext i32 %52 to i64 + %55 = load ptr, ptr %53, align 8, !tbaa !25 + %56 = getelementptr inbounds nuw %"struct.std::pair.423", ptr %55, i64 %54, i32 1 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #20 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #20 - ret ptr %54 + ret ptr %56 } declare noundef zeroext i1 @_ZN4llvm19InductionDescriptor14isInductionPHIEPNS_7PHINodeEPKNS_4LoopERNS_25PredicatedScalarEvolutionERS0_b(ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(80), i1 noundef zeroext) local_unnamed_addr #5 diff --git a/bench/llvm/optimized/NativeInlineSiteSymbol.ll b/bench/llvm/optimized/NativeInlineSiteSymbol.ll index 3e92236c5a1..dd674eb99b8 100644 --- a/bench/llvm/optimized/NativeInlineSiteSymbol.ll +++ b/bench/llvm/optimized/NativeInlineSiteSymbol.ll @@ -1203,17 +1203,17 @@ _ZN4llvm8codeview16TypeDeserializer11MappingInfoD2Ev.exit: ; preds = %_ZN4llvm8c ; Function Attrs: mustprogress nounwind uwtable define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_(ptr noundef nonnull readonly align 8 captures(none) dereferenceable(80) %0, i32 noundef %1, ptr noundef nonnull align 4 captures(none) dereferenceable(4) initializes((0, 4)) %2, ptr noundef nonnull writeonly align 4 captures(none) dereferenceable(4) initializes((0, 4)) %3) local_unnamed_addr #0 align 2 { - %.sroa.0136 = alloca %"struct.std::_Optional_payload.174", align 8 - %.sroa.0116 = alloca %"struct.std::_Optional_payload.174", align 8 + %.sroa.2.i54 = alloca %"struct.std::_Optional_payload.174", align 8 + %.sroa.0138 = alloca %"struct.std::_Optional_payload.174", align 8 %5 = alloca %"struct.llvm::codeview::BinaryAnnotationIterator", align 8 store i32 0, ptr %2, align 4, !tbaa !97 store i32 0, ptr %3, align 4, !tbaa !97 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %.sroa.0136) - %.sroa.0136.4..sroa_idx237 = getelementptr inbounds nuw i8, ptr %.sroa.0136, i64 4 - store i8 0, ptr %.sroa.0136.4..sroa_idx237, align 4, !tbaa !98 + %.sroa.0138.4..sroa_idx239 = getelementptr inbounds nuw i8, ptr %.sroa.0136, i64 4 + store i8 0, ptr %.sroa.0138.4..sroa_idx239, align 4, !tbaa !98 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %.sroa.0116) - %.sroa.0116.4..sroa_idx234 = getelementptr inbounds nuw i8, ptr %.sroa.0116, i64 4 - store i8 0, ptr %.sroa.0116.4..sroa_idx234, align 4, !tbaa !98 + %.sroa.0118.4..sroa_idx236 = getelementptr inbounds nuw i8, ptr %.sroa.0116, i64 4 + store i8 0, ptr %.sroa.0118.4..sroa_idx236, align 4, !tbaa !98 %6 = getelementptr inbounds nuw i8, ptr %0, i64 40 %7 = load ptr, ptr %6, align 8, !tbaa !13, !noalias !100 %8 = getelementptr inbounds nuw i8, ptr %0, i64 48 @@ -1226,35 +1226,35 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS store i8 0, ptr %13, align 8, !tbaa !103, !alias.scope !105 %14 = getelementptr inbounds nuw i8, ptr %5, i64 56 store ptr %7, ptr %14, align 8, !tbaa !16 - %.sroa.559.56..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 64 - store i64 %12, ptr %.sroa.559.56..sroa_idx, align 8, !tbaa !64 + %.sroa.561.56..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 64 + store i64 %12, ptr %.sroa.561.56..sroa_idx, align 8, !tbaa !64 %15 = getelementptr inbounds nuw i8, ptr %5, i64 72 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %15, i8 0, i64 16, i1 false), !alias.scope !105 - %.not.i.i.i.i182 = icmp eq ptr %9, %7 - br i1 %.not.i.i.i.i182, label %_ZNK4llvm20iterator_facade_baseINS_8codeview24BinaryAnnotationIteratorESt20forward_iterator_tagNS1_17DecodedAnnotationElPS4_RS4_EneERKS2_.exit, label %.lr.ph + %.not.i.i.i.i184 = icmp eq ptr %9, %7 + br i1 %.not.i.i.i.i184, label %_ZNK4llvm20iterator_facade_baseINS_8codeview24BinaryAnnotationIteratorESt20forward_iterator_tagNS1_17DecodedAnnotationElPS4_RS4_EneERKS2_.exit, label %.lr.ph .lr.ph: ; preds = %4 %16 = getelementptr inbounds nuw i8, ptr %5, i64 32 %17 = getelementptr inbounds nuw i8, ptr %5, i64 36 %18 = getelementptr inbounds nuw i8, ptr %5, i64 44 %19 = getelementptr inbounds nuw i8, ptr %5, i64 40 - %.sroa.0136.4..sroa_idx238 = getelementptr inbounds nuw i8, ptr %.sroa.0136, i64 4 - %.sroa.0136.4..sroa_idx239 = getelementptr inbounds nuw i8, ptr %.sroa.0136, i64 4 - %.sroa.0116.4..sroa_idx235 = getelementptr inbounds nuw i8, ptr %.sroa.0116, i64 4 - %.sroa.0136.4..sroa_idx240 = getelementptr inbounds nuw i8, ptr %.sroa.0136, i64 4 - %.sroa.0116.4..sroa_idx236 = getelementptr inbounds nuw i8, ptr %.sroa.0116, i64 4 + %.sroa.2.7..sroa_idx.i55 = getelementptr inbounds nuw i8, ptr %.sroa.2.i54, i64 4 + %.sroa.0138.4..sroa_idx240 = getelementptr inbounds nuw i8, ptr %.sroa.0136, i64 4 + %.sroa.0138.4..sroa_idx241 = getelementptr inbounds nuw i8, ptr %.sroa.0138, i64 4 + %.sroa.0118.4..sroa_idx237 = getelementptr inbounds nuw i8, ptr %.sroa.0136, i64 4 + %.sroa.0138.4..sroa_idx242 = getelementptr inbounds nuw i8, ptr %.sroa.0138, i64 4 br label %20 20: ; preds = %.lr.ph, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit - %.sroa.0116.4..sroa.0116.4..sroa.0116.4.126 = phi i8 [ 0, %.lr.ph ], [ %.sroa.0116.4..sroa.0116.4..sroa.0116.4.126229, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] - %.sroa.0136.4..sroa.0136.4..sroa.0136.4.150 = phi i8 [ 0, %.lr.ph ], [ %.sroa.0136.4..sroa.0136.4..sroa.0136.4.150227, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] - %.sroa.0113.0 = phi i32 [ undef, %.lr.ph ], [ %.sroa.0113.2, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] + %.sroa.0118.4..sroa.0118.4..sroa.0118.4.128 = phi i8 [ 0, %.lr.ph ], [ %.sroa.0118.4..sroa.0118.4..sroa.0118.4.128231, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] + %.sroa.0138.4..sroa.0138.4..sroa.0138.4.152 = phi i8 [ 0, %.lr.ph ], [ %.sroa.0138.4..sroa.0138.4..sroa.0138.4.152229, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] + %.sroa.0115.0 = phi i32 [ undef, %.lr.ph ], [ %.sroa.0115.2, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] %.sroa.0.0 = phi i32 [ undef, %.lr.ph ], [ %.sroa.0.1, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] - %.0188 = phi i32 [ 0, %.lr.ph ], [ %.1, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] - %.sroa.7.0187 = phi i1 [ false, %.lr.ph ], [ %.sroa.7.5.ph, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] - %.sroa.8.0186 = phi i8 [ 0, %.lr.ph ], [ %.sroa.8.5.ph, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] - %.sroa.0109.0185 = phi i32 [ undef, %.lr.ph ], [ %.sroa.0109.1, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] - %.sroa.5.0184 = phi i1 [ false, %.lr.ph ], [ %.sroa.5.4.ph, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] + %.0190 = phi i32 [ 0, %.lr.ph ], [ %.1, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] + %.sroa.7.0189 = phi i1 [ false, %.lr.ph ], [ %.sroa.7.5.ph, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] + %.sroa.8.0188 = phi i8 [ 0, %.lr.ph ], [ %.sroa.8.5.ph, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] + %.sroa.0111.0187 = phi i32 [ undef, %.lr.ph ], [ %.sroa.0111.1, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] + %.sroa.5.0186 = phi i1 [ false, %.lr.ph ], [ %.sroa.5.4.ph, %_ZN4llvm8codeview24BinaryAnnotationIteratorppEv.exit ] %21 = call noundef zeroext i1 @_ZN4llvm8codeview24BinaryAnnotationIterator22ParseCurrentAnnotationEv(ptr noundef nonnull align 8 dereferenceable(88) %5) %22 = load i32, ptr %16, align 8, !tbaa !108 switch i32 %22, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" [ @@ -1270,17 +1270,17 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS 23: ; preds = %20, %20, %20 %24 = load i32, ptr %17, align 4, !tbaa !112 - %25 = add i32 %24, %.0188 - %26 = trunc nuw i8 %.sroa.0136.4..sroa.0136.4..sroa.0136.4.150 to i1 + %25 = add i32 %24, %.0190 + %26 = trunc nuw i8 %.sroa.0138.4..sroa.0138.4..sroa.0138.4.152 to i1 br i1 %26, label %27, label %.sink.split.i 27: ; preds = %23 - %28 = trunc nuw i8 %.sroa.0116.4..sroa.0116.4..sroa.0116.4.126 to i1 + %28 = trunc nuw i8 %.sroa.0118.4..sroa.0118.4..sroa.0118.4.128 to i1 br i1 %28, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit", label %29 29: ; preds = %27 - %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.140 = load i32, ptr %.sroa.0136, align 8, !tbaa !97 - %30 = add i32 %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.140, %24 + %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.142 = load i32, ptr %.sroa.0136, align 8, !tbaa !97 + %30 = add i32 %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.142, %24 br label %.sink.split.i .sink.split.i: ; preds = %23, %29 @@ -1293,20 +1293,20 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS 31: ; preds = %20 %32 = load i32, ptr %17, align 4, !tbaa !112 - %33 = trunc nuw i8 %.sroa.0136.4..sroa.0136.4..sroa.0136.4.150 to i1 + %33 = trunc nuw i8 %.sroa.0138.4..sroa.0138.4..sroa.0138.4.152 to i1 br i1 %33, label %34, label %.sink.split.i24 34: ; preds = %31 - %35 = trunc nuw i8 %.sroa.0116.4..sroa.0116.4..sroa.0116.4.126 to i1 + %35 = trunc nuw i8 %.sroa.0118.4..sroa.0118.4..sroa.0118.4.128 to i1 br i1 %35, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit", label %36 36: ; preds = %34 - %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.139 = load i32, ptr %.sroa.0136, align 8, !tbaa !97 - %37 = add i32 %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.139, %32 + %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.141 = load i32, ptr %.sroa.0136, align 8, !tbaa !97 + %37 = add i32 %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.141, %32 br label %.sink.split.i24 .sink.split.i24: ; preds = %31, %36 - %.sink8.i25 = phi i32 [ %37, %36 ], [ %.0188, %31 ] + %.sink8.i25 = phi i32 [ %37, %36 ], [ %.0190, %31 ] %.sink.i26 = phi ptr [ %.sroa.0116, %36 ], [ %.sroa.0136, %31 ] %.sroa.0.0.insert.ext.i27 = zext i32 %.sink8.i25 to i64 %.sroa.0.0.insert.insert.i28 = or disjoint i64 %.sroa.0.0.insert.ext.i27, 4294967296 @@ -1315,12 +1315,12 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS 38: ; preds = %20 %39 = load i32, ptr %19, align 8, !tbaa !113 - %40 = add i32 %39, %.0188 - %41 = trunc nuw i8 %.sroa.0136.4..sroa.0136.4..sroa.0136.4.150 to i1 + %40 = add i32 %39, %.0190 + %41 = trunc nuw i8 %.sroa.0138.4..sroa.0138.4..sroa.0138.4.152 to i1 br i1 %41, label %42, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35" 42: ; preds = %38 - %43 = trunc nuw i8 %.sroa.0116.4..sroa.0116.4..sroa.0116.4.126 to i1 + %43 = trunc nuw i8 %.sroa.0118.4..sroa.0118.4..sroa.0118.4.128 to i1 br i1 %43, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35.thread", label %45 "_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35.thread": ; preds = %42 @@ -1328,8 +1328,8 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS br label %49 45: ; preds = %42 - %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.138 = load i32, ptr %.sroa.0136, align 8, !tbaa !97 - %46 = add i32 %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.138, %39 + %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.140 = load i32, ptr %.sroa.0136, align 8, !tbaa !97 + %46 = add i32 %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.140, %39 br label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35" "_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35": ; preds = %45, %38 @@ -1338,20 +1338,20 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS %.sroa.0.0.insert.ext.i33 = zext i32 %.sink8.i31 to i64 %.sroa.0.0.insert.insert.i34 = or disjoint i64 %.sroa.0.0.insert.ext.i33, 4294967296 store i64 %.sroa.0.0.insert.insert.i34, ptr %.sink.i32, align 8 - %.sroa.0136.4..sroa.0136.4..sroa.0136.4..sroa.0136.4.144.pre = load i8, ptr %.sroa.0136.4..sroa_idx239, align 4, !tbaa !98 + %.sroa.0138.4..sroa.0138.4..sroa.0138.4..sroa.0138.4.146.pre = load i8, ptr %.sroa.0138.4..sroa_idx240, align 4, !tbaa !98 %47 = load i32, ptr %17, align 4, !tbaa !112 - %48 = trunc nuw i8 %.sroa.0136.4..sroa.0136.4..sroa.0136.4..sroa.0136.4.144.pre to i1 + %48 = trunc nuw i8 %.sroa.0138.4..sroa.0138.4..sroa.0138.4..sroa.0138.4.146.pre to i1 br i1 %48, label %49, label %.sink.split.i36 49: ; preds = %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35.thread", %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35" %50 = phi i32 [ %44, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35.thread" ], [ %47, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35" ] - %.sroa.0116.4..sroa.0116.4..sroa.0116.4..sroa.0116.4.120 = load i8, ptr %.sroa.0116.4..sroa_idx235, align 4, !tbaa !98 - %51 = trunc nuw i8 %.sroa.0116.4..sroa.0116.4..sroa.0116.4..sroa.0116.4.120 to i1 + %.sroa.0118.4..sroa.0118.4..sroa.0118.4..sroa.0118.4.122 = load i8, ptr %.sroa.0116.4..sroa_idx235, align 4, !tbaa !98 + %51 = trunc nuw i8 %.sroa.0118.4..sroa.0118.4..sroa.0118.4..sroa.0118.4.122 to i1 br i1 %51, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit", label %52 52: ; preds = %49 - %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.137 = load i32, ptr %.sroa.0136, align 8, !tbaa !97 - %53 = add i32 %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.137, %50 + %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.139 = load i32, ptr %.sroa.0136, align 8, !tbaa !97 + %53 = add i32 %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.139, %50 br label %.sink.split.i36 .sink.split.i36: ; preds = %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit35", %52 @@ -1367,8 +1367,8 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS %55 = load i32, ptr %2, align 4, !tbaa !97 %56 = add i32 %55, %54 store i32 %56, ptr %2, align 4, !tbaa !97 - %57 = trunc nuw i8 %.sroa.0136.4..sroa.0136.4..sroa.0136.4.150 to i1 - %58 = trunc nuw i8 %.sroa.8.0186 to i1 + %57 = trunc nuw i8 %.sroa.0138.4..sroa.0138.4..sroa.0138.4.152 to i1 + %58 = trunc nuw i8 %.sroa.8.0188 to i1 %59 = select i1 %57, i1 %58, i1 false br i1 %59, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit", label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" @@ -1377,17 +1377,17 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS 60: ; preds = %20 %61 = load i32, ptr %17, align 4, !tbaa !112 - %62 = add i32 %61, %.0188 - %63 = trunc nuw i8 %.sroa.0136.4..sroa.0136.4..sroa.0136.4.150 to i1 + %62 = add i32 %61, %.0190 + %63 = trunc nuw i8 %.sroa.0138.4..sroa.0138.4..sroa.0138.4.152 to i1 br i1 %63, label %64, label %.sink.split.i43 64: ; preds = %60 - %65 = trunc nuw i8 %.sroa.0116.4..sroa.0116.4..sroa.0116.4.126 to i1 + %65 = trunc nuw i8 %.sroa.0118.4..sroa.0118.4..sroa.0118.4.128 to i1 br i1 %65, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48", label %66 66: ; preds = %64 - %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0. = load i32, ptr %.sroa.0136, align 8, !tbaa !97 - %67 = add i32 %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0., %61 + %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0. = load i32, ptr %.sroa.0136, align 8, !tbaa !97 + %67 = add i32 %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0., %61 br label %.sink.split.i43 .sink.split.i43: ; preds = %60, %66 @@ -1396,18 +1396,18 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS %.sroa.0.0.insert.ext.i46 = zext i32 %.sink8.i44 to i64 %.sroa.0.0.insert.insert.i47 = or disjoint i64 %.sroa.0.0.insert.ext.i46, 4294967296 store i64 %.sroa.0.0.insert.insert.i47, ptr %.sink.i45, align 8 - %.sroa.0136.4..sroa.0136.4..sroa.0136.4..sroa.0136.4.152.pre = load i8, ptr %.sroa.0136.4..sroa_idx238, align 4, !tbaa !98 - %68 = trunc nuw i8 %.sroa.0136.4..sroa.0136.4..sroa.0136.4..sroa.0136.4.152.pre to i1 + %.sroa.0138.4..sroa.0138.4..sroa.0138.4..sroa.0138.4.154.pre = load i8, ptr %.sroa.0136.4..sroa_idx238, align 4, !tbaa !98 + %68 = trunc nuw i8 %.sroa.0138.4..sroa.0138.4..sroa.0138.4..sroa.0138.4.154.pre to i1 br label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" "_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48": ; preds = %64, %.sink.split.i43 - %.sroa.0136.4..sroa.0136.4..sroa.0136.4.152 = phi i1 [ true, %64 ], [ %68, %.sink.split.i43 ] + %.sroa.0138.4..sroa.0138.4..sroa.0138.4.154 = phi i1 [ true, %64 ], [ %68, %.sink.split.i43 ] %69 = load i32, ptr %18, align 4, !tbaa !114 %70 = load i32, ptr %2, align 4, !tbaa !97 %71 = add i32 %70, %69 store i32 %71, ptr %2, align 4, !tbaa !97 - %72 = trunc nuw i8 %.sroa.8.0186 to i1 - %73 = select i1 %.sroa.0136.4..sroa.0136.4..sroa.0136.4.152, i1 %72, i1 false + %72 = trunc nuw i8 %.sroa.8.0188 to i1 + %73 = select i1 %.sroa.0138.4..sroa.0138.4..sroa.0138.4.154, i1 %72, i1 false br i1 %73, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit", label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" "_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else": ; preds = %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" @@ -1415,7 +1415,7 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS 74: ; preds = %20 %75 = load i32, ptr %17, align 4, !tbaa !112 - %76 = trunc nuw i8 %.sroa.0136.4..sroa.0136.4..sroa.0136.4.150 to i1 + %76 = trunc nuw i8 %.sroa.0138.4..sroa.0138.4..sroa.0138.4.152 to i1 br i1 %76, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit", label %77 77: ; preds = %74 @@ -1423,17 +1423,17 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS br label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" "_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit": ; preds = %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else", %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48", %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else", %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit", %74, %77, %.sink.split.i36, %49, %.sink.split.i24, %34, %.sink.split.i, %27, %20 - %.sroa.0113.1 = phi i32 [ %.sroa.0113.0, %20 ], [ %.sroa.0113.0, %27 ], [ %.sroa.0113.0, %.sink.split.i ], [ %.sroa.0113.0, %34 ], [ %.sroa.0113.0, %.sink.split.i24 ], [ %.sroa.0113.0, %49 ], [ %.sroa.0113.0, %.sink.split.i36 ], [ %.sroa.0113.0, %74 ], [ %.sroa.0113.0, %77 ], [ %56, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ %.sroa.0113.0, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %71, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ %.sroa.0113.0, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] + %.sroa.0115.1 = phi i32 [ %.sroa.0115.0, %20 ], [ %.sroa.0115.0, %27 ], [ %.sroa.0115.0, %.sink.split.i ], [ %.sroa.0115.0, %34 ], [ %.sroa.0115.0, %.sink.split.i24 ], [ %.sroa.0115.0, %49 ], [ %.sroa.0115.0, %.sink.split.i36 ], [ %.sroa.0115.0, %74 ], [ %.sroa.0115.0, %77 ], [ %56, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ %.sroa.0115.0, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %71, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ %.sroa.0115.0, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] %.sroa.0.1 = phi i32 [ %.sroa.0.0, %20 ], [ %.sroa.0.0, %27 ], [ %.sroa.0.0, %.sink.split.i ], [ %.sroa.0.0, %34 ], [ %.sroa.0.0, %.sink.split.i24 ], [ %.sroa.0.0, %49 ], [ %.sroa.0.0, %.sink.split.i36 ], [ %.sroa.0.0, %74 ], [ %.sroa.0.0, %77 ], [ %.sroa.0.0, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ %56, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %.sroa.0.0, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ %71, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] - %.sroa.5.1 = phi i1 [ %.sroa.5.0184, %20 ], [ %.sroa.5.0184, %27 ], [ %.sroa.5.0184, %.sink.split.i ], [ %.sroa.5.0184, %34 ], [ %.sroa.5.0184, %.sink.split.i24 ], [ %.sroa.5.0184, %49 ], [ %.sroa.5.0184, %.sink.split.i36 ], [ true, %74 ], [ %.sroa.5.0184, %77 ], [ %.sroa.5.0184, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ %.sroa.5.0184, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %.sroa.5.0184, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ %.sroa.5.0184, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] - %.sroa.0109.1 = phi i32 [ %.sroa.0109.0185, %20 ], [ %.sroa.0109.0185, %27 ], [ %.sroa.0109.0185, %.sink.split.i ], [ %.sroa.0109.0185, %34 ], [ %.sroa.0109.0185, %.sink.split.i24 ], [ %.sroa.0109.0185, %49 ], [ %.sroa.0109.0185, %.sink.split.i36 ], [ %75, %74 ], [ %.sroa.0109.0185, %77 ], [ %.sroa.0109.0185, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ %.sroa.0109.0185, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %.sroa.0109.0185, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ %.sroa.0109.0185, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] - %.sroa.8.1 = phi i8 [ %.sroa.8.0186, %20 ], [ %.sroa.8.0186, %27 ], [ %.sroa.8.0186, %.sink.split.i ], [ %.sroa.8.0186, %34 ], [ %.sroa.8.0186, %.sink.split.i24 ], [ %.sroa.8.0186, %49 ], [ %.sroa.8.0186, %.sink.split.i36 ], [ %.sroa.8.0186, %74 ], [ %.sroa.8.0186, %77 ], [ 1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ 1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ 1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ 1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] - %.sroa.7.1 = phi i1 [ %.sroa.7.0187, %20 ], [ %.sroa.7.0187, %27 ], [ %.sroa.7.0187, %.sink.split.i ], [ %.sroa.7.0187, %34 ], [ %.sroa.7.0187, %.sink.split.i24 ], [ %.sroa.7.0187, %49 ], [ %.sroa.7.0187, %.sink.split.i36 ], [ %.sroa.7.0187, %74 ], [ %.sroa.7.0187, %77 ], [ %.sroa.7.0187, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ true, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %.sroa.7.0187, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ true, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] - %.1 = phi i32 [ %.0188, %20 ], [ %25, %27 ], [ %25, %.sink.split.i ], [ %.0188, %34 ], [ %.0188, %.sink.split.i24 ], [ %40, %49 ], [ %40, %.sink.split.i36 ], [ %.0188, %74 ], [ %.0188, %77 ], [ %.0188, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ %.0188, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %62, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ %62, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] - %.sroa.0136.4..sroa.0136.4..sroa.0136.4..sroa.0136.4.158 = load i8, ptr %.sroa.0136.4..sroa_idx240, align 4, !tbaa !98 - %78 = trunc nuw i8 %.sroa.0136.4..sroa.0136.4..sroa.0136.4..sroa.0136.4.158 to i1 - %.sroa.0116.4..sroa.0116.4..sroa.0116.4..sroa.0116.4.128 = load i8, ptr %.sroa.0116.4..sroa_idx236, align 4 - %79 = trunc nuw i8 %.sroa.0116.4..sroa.0116.4..sroa.0116.4..sroa.0116.4.128 to i1 + %.sroa.5.1 = phi i1 [ %.sroa.5.0186, %20 ], [ %.sroa.5.0186, %27 ], [ %.sroa.5.0186, %.sink.split.i ], [ %.sroa.5.0186, %34 ], [ %.sroa.5.0186, %.sink.split.i24 ], [ %.sroa.5.0186, %49 ], [ %.sroa.5.0186, %.sink.split.i36 ], [ true, %74 ], [ %.sroa.5.0186, %77 ], [ %.sroa.5.0186, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ %.sroa.5.0186, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %.sroa.5.0186, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ %.sroa.5.0186, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] + %.sroa.0111.1 = phi i32 [ %.sroa.0111.0187, %20 ], [ %.sroa.0111.0187, %27 ], [ %.sroa.0111.0187, %.sink.split.i ], [ %.sroa.0111.0187, %34 ], [ %.sroa.0111.0187, %.sink.split.i24 ], [ %.sroa.0111.0187, %49 ], [ %.sroa.0111.0187, %.sink.split.i36 ], [ %75, %74 ], [ %.sroa.0111.0187, %77 ], [ %.sroa.0111.0187, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ %.sroa.0111.0187, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %.sroa.0111.0187, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ %.sroa.0111.0187, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] + %.sroa.8.1 = phi i8 [ %.sroa.8.0188, %20 ], [ %.sroa.8.0188, %27 ], [ %.sroa.8.0188, %.sink.split.i ], [ %.sroa.8.0188, %34 ], [ %.sroa.8.0188, %.sink.split.i24 ], [ %.sroa.8.0188, %49 ], [ %.sroa.8.0188, %.sink.split.i36 ], [ %.sroa.8.0188, %74 ], [ %.sroa.8.0188, %77 ], [ 1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ 1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ 1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ 1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] + %.sroa.7.1 = phi i1 [ %.sroa.7.0189, %20 ], [ %.sroa.7.0189, %27 ], [ %.sroa.7.0189, %.sink.split.i ], [ %.sroa.7.0189, %34 ], [ %.sroa.7.0189, %.sink.split.i24 ], [ %.sroa.7.0189, %49 ], [ %.sroa.7.0189, %.sink.split.i36 ], [ %.sroa.7.0189, %74 ], [ %.sroa.7.0189, %77 ], [ %.sroa.7.0189, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ true, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %.sroa.7.0189, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ true, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] + %.1 = phi i32 [ %.0190, %20 ], [ %25, %27 ], [ %25, %.sink.split.i ], [ %.0190, %34 ], [ %.0190, %.sink.split.i24 ], [ %40, %49 ], [ %40, %.sink.split.i36 ], [ %.0190, %74 ], [ %.0190, %77 ], [ %.0190, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit.else" ], [ %.0190, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_1clEi.exit" ], [ %62, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48.else" ], [ %62, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit48" ] + %.sroa.0138.4..sroa.0138.4..sroa.0138.4..sroa.0138.4.160 = load i8, ptr %.sroa.0136.4..sroa_idx240, align 4, !tbaa !98 + %78 = trunc nuw i8 %.sroa.0138.4..sroa.0138.4..sroa.0138.4..sroa.0138.4.160 to i1 + %.sroa.0118.4..sroa.0118.4..sroa.0118.4..sroa.0118.4.130 = load i8, ptr %.sroa.0116.4..sroa_idx236, align 4 + %79 = trunc nuw i8 %.sroa.0118.4..sroa.0118.4..sroa.0118.4..sroa.0118.4.130 to i1 %or.cond = select i1 %78, i1 %79, i1 false br i1 %or.cond, label %80, label %88 @@ -1442,38 +1442,38 @@ define dso_local void @_ZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS br i1 %81, label %82, label %88 82: ; preds = %80 - %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.141 = load i32, ptr %.sroa.0136, align 8 - %.not.i = icmp ule i32 %.sroa.0136.0..sroa.0136.0..sroa.0136.0..sroa.0136.0.141, %1 - %.sroa.0116.0..sroa.0116.0..sroa.0116.0..sroa.0116.0. = load i32, ptr %.sroa.0116, align 8 - %83 = icmp ult i32 %1, %.sroa.0116.0..sroa.0116.0..sroa.0116.0..sroa.0116.0. - %or.cond177 = select i1 %.not.i, i1 %83, i1 false - br i1 %or.cond177, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_3clEv.exit", label %84 + %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.143 = load i32, ptr %.sroa.0136, align 8 + %.not.i = icmp ule i32 %.sroa.0138.0..sroa.0138.0..sroa.0138.0..sroa.0138.0.143, %1 + %.sroa.0118.0..sroa.0118.0..sroa.0118.0..sroa.0118.0. = load i32, ptr %.sroa.0116, align 8 + %83 = icmp ult i32 %1, %.sroa.0118.0..sroa.0118.0..sroa.0118.0..sroa.0118.0. + %or.cond179 = select i1 %.not.i, i1 %83, i1 false + br i1 %or.cond179, label %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_3clEv.exit", label %84 84: ; preds = %82 br i1 %.sroa.5.1, label %85, label %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i 85: ; preds = %84 - store i32 %.sroa.0109.1, ptr %3, align 4, !tbaa !97 + store i32 %.sroa.0111.1, ptr %3, align 4, !tbaa !97 br label %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i _ZNSt8optionalIiEaSESt9nullopt_t.exit.i: ; preds = %85, %84 - %spec.select = select i1 %.sroa.7.1, i32 %.sroa.0.1, i32 %.sroa.0113.1 - %.sroa.0116.0..sroa.0116.0..sroa.0116.0..sroa.0116.0.117 = load i64, ptr %.sroa.0116, align 8 - store i64 %.sroa.0116.0..sroa.0116.0..sroa.0116.0..sroa.0116.0.117, ptr %.sroa.0136, align 8 - %.sroa.0109.0.insert.ext = zext i32 %.sroa.0109.1 to i64 - store i64 %.sroa.0109.0.insert.ext, ptr %.sroa.0116, align 8 - %86 = lshr i64 %.sroa.0116.0..sroa.0116.0..sroa.0116.0..sroa.0116.0.117, 32 + %spec.select = select i1 %.sroa.7.1, i32 %.sroa.0.1, i32 %.sroa.0115.1 + %.sroa.0118.0..sroa.0118.0..sroa.0118.0..sroa.0118.0.119 = load i64, ptr %.sroa.0116, align 8 + store i64 %.sroa.0118.0..sroa.0118.0..sroa.0118.0..sroa.0118.0.119, ptr %.sroa.0136, align 8 + %.sroa.0111.0.insert.ext = zext i32 %.sroa.0111.1 to i64 + store i64 %.sroa.0111.0.insert.ext, ptr %.sroa.0116, align 8 + %86 = lshr i64 %.sroa.0118.0..sroa.0118.0..sroa.0118.0..sroa.0118.0.119, 32 %87 = trunc i64 %86 to i8 br label %88 "_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_3clEv.exit": ; preds = %82 - store i32 %.sroa.0113.1, ptr %2, align 4, !tbaa !97 + store i32 %.sroa.0115.1, ptr %2, align 4, !tbaa !97 br label %_ZNK4llvm20iterator_facade_baseINS_8codeview24BinaryAnnotationIteratorESt20forward_iterator_tagNS1_17DecodedAnnotationElPS4_RS4_EneERKS2_.exit 88: ; preds = %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i, %80, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" - %.sroa.0116.4..sroa.0116.4..sroa.0116.4.126229 = phi i8 [ 0, %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i ], [ 1, %80 ], [ %.sroa.0116.4..sroa.0116.4..sroa.0116.4..sroa.0116.4.128, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" ] - %.sroa.0136.4..sroa.0136.4..sroa.0136.4.150227 = phi i8 [ %87, %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i ], [ 1, %80 ], [ %.sroa.0136.4..sroa.0136.4..sroa.0136.4..sroa.0136.4.158, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" ] - %.sroa.0113.2 = phi i32 [ %spec.select, %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i ], [ %.sroa.0113.1, %80 ], [ %.sroa.0113.1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" ] + %.sroa.0118.4..sroa.0118.4..sroa.0118.4.128231 = phi i8 [ 0, %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i ], [ 1, %80 ], [ %.sroa.0118.4..sroa.0118.4..sroa.0118.4..sroa.0118.4.130, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" ] + %.sroa.0138.4..sroa.0138.4..sroa.0138.4.152229 = phi i8 [ %87, %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i ], [ 1, %80 ], [ %.sroa.0138.4..sroa.0138.4..sroa.0138.4..sroa.0138.4.160, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" ] + %.sroa.0115.2 = phi i32 [ %spec.select, %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i ], [ %.sroa.0115.1, %80 ], [ %.sroa.0115.1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" ] %.sroa.5.4.ph = phi i1 [ false, %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i ], [ %.sroa.5.1, %80 ], [ %.sroa.5.1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" ] %.sroa.8.5.ph = phi i8 [ 1, %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i ], [ 0, %80 ], [ %.sroa.8.1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" ] %.sroa.7.5.ph = phi i1 [ false, %_ZNSt8optionalIiEaSESt9nullopt_t.exit.i ], [ %.sroa.7.1, %80 ], [ %.sroa.7.1, %"_ZZNK4llvm3pdb22NativeInlineSiteSymbol13getLineOffsetEjRjS2_ENK3$_0clEj.exit" ] diff --git a/bench/llvm/optimized/ObjCARCOpts.ll b/bench/llvm/optimized/ObjCARCOpts.ll index e198605d62c..a2ad290e816 100644 --- a/bench/llvm/optimized/ObjCARCOpts.ll +++ b/bench/llvm/optimized/ObjCARCOpts.ll @@ -16115,7 +16115,7 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(112) ptr @_ZN %10 = load i8, ptr %9, align 8, !tbaa !597, !range !54, !noundef !55 %11 = trunc nuw i8 %10 to i1 %12 = getelementptr inbounds nuw i8, ptr %0, i64 24 - br i1 %11, label %13, label %79 + br i1 %11, label %13, label %80 13: ; preds = %2 %14 = getelementptr inbounds nuw i8, ptr %0, i64 32 @@ -16134,128 +16134,128 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(112) ptr @_ZN %24 = getelementptr inbounds nuw i8, ptr %6, i64 48 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %6, i8 0, i64 112, i1 false) store ptr %24, ptr %23, align 8, !tbaa !28 - %25 = getelementptr inbounds nuw i8, ptr %6, i64 32 - store i32 2, ptr %25, align 8, !tbaa !29 - %26 = getelementptr inbounds nuw i8, ptr %6, i64 40 - store i32 0, ptr %26, align 8, !tbaa !31 - %27 = getelementptr inbounds nuw i8, ptr %6, i64 44 - store i8 1, ptr %27, align 4, !tbaa !32 - %28 = getelementptr inbounds nuw i8, ptr %6, i64 64 - %29 = getelementptr inbounds nuw i8, ptr %6, i64 88 - store ptr %29, ptr %28, align 8, !tbaa !28 - %30 = getelementptr inbounds nuw i8, ptr %6, i64 72 - store i32 2, ptr %30, align 8, !tbaa !29 - %31 = getelementptr inbounds nuw i8, ptr %6, i64 80 - store i32 0, ptr %31, align 8, !tbaa !31 - %32 = getelementptr inbounds nuw i8, ptr %6, i64 84 - store i8 1, ptr %32, align 4, !tbaa !32 - %33 = getelementptr inbounds nuw i8, ptr %6, i64 104 + %26 = getelementptr inbounds nuw i8, ptr %6, i64 32 + store i32 2, ptr %26, align 8, !tbaa !29 + %27 = getelementptr inbounds nuw i8, ptr %6, i64 40 + store i32 0, ptr %27, align 8, !tbaa !31 + %28 = getelementptr inbounds nuw i8, ptr %6, i64 44 + store i8 1, ptr %28, align 4, !tbaa !32 + %29 = getelementptr inbounds nuw i8, ptr %6, i64 64 + %30 = getelementptr inbounds nuw i8, ptr %6, i64 88 + store ptr %30, ptr %29, align 8, !tbaa !28 + %31 = getelementptr inbounds nuw i8, ptr %6, i64 72 + store i32 2, ptr %31, align 8, !tbaa !29 + %32 = getelementptr inbounds nuw i8, ptr %6, i64 80 + store i32 0, ptr %32, align 8, !tbaa !31 + %33 = getelementptr inbounds nuw i8, ptr %6, i64 84 + store i8 1, ptr %33, align 4, !tbaa !32 + %34 = getelementptr inbounds nuw i8, ptr %6, i64 104 call void @llvm.experimental.noalias.scope.decl(metadata !608) - %34 = load ptr, ptr %1, align 8, !tbaa !109, !noalias !608 - store ptr %34, ptr %5, align 8, !tbaa !530, !alias.scope !608 - %35 = getelementptr inbounds nuw i8, ptr %5, i64 8 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %35, i8 0, i64 3, i1 false) - %36 = getelementptr inbounds nuw i8, ptr %5, i64 16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %36, i8 0, i64 16, i1 false) - %37 = getelementptr inbounds nuw i8, ptr %5, i64 32 - %38 = getelementptr inbounds nuw i8, ptr %5, i64 56 - call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %37, ptr noundef nonnull %38, i32 noundef 2, ptr noundef nonnull %24, ptr noundef nonnull align 8 dereferenceable(40) %23) #21 - %39 = getelementptr inbounds nuw i8, ptr %5, i64 72 - %40 = getelementptr inbounds nuw i8, ptr %5, i64 96 - call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %39, ptr noundef nonnull %40, i32 noundef 2, ptr noundef nonnull %29, ptr noundef nonnull align 8 dereferenceable(40) %28) #21 - %41 = getelementptr inbounds nuw i8, ptr %5, i64 112 - %42 = load i8, ptr %33, align 8, !tbaa !244, !range !54, !noalias !608, !noundef !55 - store i8 %42, ptr %41, align 8, !tbaa !244, !alias.scope !608 - %43 = load ptr, ptr %14, align 8, !tbaa !520 - %44 = getelementptr inbounds nuw i8, ptr %0, i64 40 - %45 = load ptr, ptr %44, align 8, !tbaa !529 - %.not.i.i = icmp eq ptr %43, %45 - br i1 %.not.i.i, label %58, label %46 - -46: ; preds = %13 - %47 = load ptr, ptr %5, align 8, !tbaa !530 - store ptr %47, ptr %43, align 8, !tbaa !530 - %48 = getelementptr inbounds nuw i8, ptr %43, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %48, ptr noundef nonnull align 8 dereferenceable(112) %35, i64 3, i1 false) - %49 = getelementptr inbounds nuw i8, ptr %43, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(97) %49, ptr noundef nonnull align 8 dereferenceable(97) %36, i64 16, i1 false) - %50 = getelementptr inbounds nuw i8, ptr %43, i64 32 - %51 = getelementptr inbounds nuw i8, ptr %43, i64 56 - call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %50, ptr noundef nonnull %51, i32 noundef 2, ptr noundef nonnull %38, ptr noundef nonnull align 8 dereferenceable(40) %37) #21 - %52 = getelementptr inbounds nuw i8, ptr %43, i64 72 - %53 = getelementptr inbounds nuw i8, ptr %43, i64 96 - call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %52, ptr noundef nonnull %53, i32 noundef 2, ptr noundef nonnull %40, ptr noundef nonnull align 8 dereferenceable(40) %39) #21 - %54 = getelementptr inbounds nuw i8, ptr %43, i64 112 - %55 = load i8, ptr %41, align 8, !tbaa !244, !range !54, !noundef !55 - store i8 %55, ptr %54, align 8, !tbaa !244 - %56 = load ptr, ptr %14, align 8, !tbaa !520 - %57 = getelementptr inbounds nuw i8, ptr %56, i64 120 - store ptr %57, ptr %14, align 8, !tbaa !520 + %35 = load ptr, ptr %1, align 8, !tbaa !109, !noalias !608 + store ptr %35, ptr %5, align 8, !tbaa !530, !alias.scope !608 + %36 = getelementptr inbounds nuw i8, ptr %5, i64 8 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %36, i8 0, i64 3, i1 false) + %37 = getelementptr inbounds nuw i8, ptr %5, i64 16 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %37, i8 0, i64 16, i1 false) + %38 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %39 = getelementptr inbounds nuw i8, ptr %5, i64 56 + call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %38, ptr noundef nonnull %39, i32 noundef 2, ptr noundef nonnull %24, ptr noundef nonnull align 8 dereferenceable(40) %23) #21 + %40 = getelementptr inbounds nuw i8, ptr %5, i64 72 + %41 = getelementptr inbounds nuw i8, ptr %5, i64 96 + call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %40, ptr noundef nonnull %41, i32 noundef 2, ptr noundef nonnull %30, ptr noundef nonnull align 8 dereferenceable(40) %29) #21 + %42 = getelementptr inbounds nuw i8, ptr %5, i64 112 + %43 = load i8, ptr %34, align 8, !tbaa !244, !range !54, !noalias !608, !noundef !55 + store i8 %43, ptr %42, align 8, !tbaa !244, !alias.scope !608 + %44 = load ptr, ptr %14, align 8, !tbaa !520 + %45 = getelementptr inbounds nuw i8, ptr %0, i64 40 + %46 = load ptr, ptr %45, align 8, !tbaa !529 + %.not.i.i = icmp eq ptr %44, %46 + br i1 %.not.i.i, label %59, label %47 + +47: ; preds = %13 + %48 = load ptr, ptr %5, align 8, !tbaa !530 + store ptr %48, ptr %44, align 8, !tbaa !530 + %49 = getelementptr inbounds nuw i8, ptr %44, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %49, ptr noundef nonnull align 8 dereferenceable(112) %36, i64 3, i1 false) + %50 = getelementptr inbounds nuw i8, ptr %44, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(97) %50, ptr noundef nonnull align 8 dereferenceable(97) %37, i64 16, i1 false) + %51 = getelementptr inbounds nuw i8, ptr %44, i64 32 + %52 = getelementptr inbounds nuw i8, ptr %44, i64 56 + call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %51, ptr noundef nonnull %52, i32 noundef 2, ptr noundef nonnull %39, ptr noundef nonnull align 8 dereferenceable(40) %38) #21 + %53 = getelementptr inbounds nuw i8, ptr %44, i64 72 + %54 = getelementptr inbounds nuw i8, ptr %44, i64 96 + call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %53, ptr noundef nonnull %54, i32 noundef 2, ptr noundef nonnull %41, ptr noundef nonnull align 8 dereferenceable(40) %40) #21 + %55 = getelementptr inbounds nuw i8, ptr %44, i64 112 + %56 = load i8, ptr %42, align 8, !tbaa !244, !range !54, !noundef !55 + store i8 %56, ptr %55, align 8, !tbaa !244 + %57 = load ptr, ptr %14, align 8, !tbaa !520 + %58 = getelementptr inbounds nuw i8, ptr %57, i64 120 + store ptr %58, ptr %14, align 8, !tbaa !520 br label %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE9push_backEOS7_.exit -58: ; preds = %13 - call void @_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE17_M_realloc_insertIJS7_EEEvN9__gnu_cxx17__normal_iteratorIPS7_S9_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr %43, ptr noundef nonnull align 8 dereferenceable(120) %5) +59: ; preds = %13 + call void @_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE17_M_realloc_insertIJS7_EEEvN9__gnu_cxx17__normal_iteratorIPS7_S9_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr %44, ptr noundef nonnull align 8 dereferenceable(120) %5) br label %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE9push_backEOS7_.exit -_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE9push_backEOS7_.exit: ; preds = %46, %58 - %59 = getelementptr inbounds nuw i8, ptr %5, i64 92 - %60 = load i8, ptr %59, align 4, !tbaa !32, !range !54, !noundef !55 - %61 = trunc nuw i8 %60 to i1 - br i1 %61, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i, label %62 +_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE9push_backEOS7_.exit: ; preds = %47, %59 + %60 = getelementptr inbounds nuw i8, ptr %5, i64 92 + %61 = load i8, ptr %60, align 4, !tbaa !32, !range !54, !noundef !55 + %62 = trunc nuw i8 %61 to i1 + br i1 %62, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i, label %63 -62: ; preds = %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE9push_backEOS7_.exit - %63 = load ptr, ptr %39, align 8, !tbaa !28 - call void @free(ptr noundef %63) #21 +63: ; preds = %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE9push_backEOS7_.exit + %64 = load ptr, ptr %40, align 8, !tbaa !28 + call void @free(ptr noundef %64) #21 br label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i -_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i: ; preds = %62, %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE9push_backEOS7_.exit - %64 = getelementptr inbounds nuw i8, ptr %5, i64 52 - %65 = load i8, ptr %64, align 4, !tbaa !32, !range !54, !noundef !55 - %66 = trunc nuw i8 %65 to i1 - br i1 %66, label %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc16BottomUpPtrStateEED2Ev.exit, label %67 +_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i: ; preds = %63, %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc16BottomUpPtrStateEESaIS7_EE9push_backEOS7_.exit + %65 = getelementptr inbounds nuw i8, ptr %5, i64 52 + %66 = load i8, ptr %65, align 4, !tbaa !32, !range !54, !noundef !55 + %67 = trunc nuw i8 %66 to i1 + br i1 %67, label %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc16BottomUpPtrStateEED2Ev.exit, label %68 -67: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i - %68 = load ptr, ptr %37, align 8, !tbaa !28 - call void @free(ptr noundef %68) #21 +68: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i + %69 = load ptr, ptr %38, align 8, !tbaa !28 + call void @free(ptr noundef %69) #21 br label %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc16BottomUpPtrStateEED2Ev.exit -_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc16BottomUpPtrStateEED2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i, %67 - %69 = load i8, ptr %32, align 4, !tbaa !32, !range !54, !noundef !55 - %70 = trunc nuw i8 %69 to i1 - br i1 %70, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, label %71 +_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc16BottomUpPtrStateEED2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i, %68 + %70 = load i8, ptr %33, align 4, !tbaa !32, !range !54, !noundef !55 + %71 = trunc nuw i8 %70 to i1 + br i1 %71, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, label %72 -71: ; preds = %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc16BottomUpPtrStateEED2Ev.exit - %72 = load ptr, ptr %28, align 8, !tbaa !28 - call void @free(ptr noundef %72) #21 +72: ; preds = %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc16BottomUpPtrStateEED2Ev.exit + %73 = load ptr, ptr %29, align 8, !tbaa !28 + call void @free(ptr noundef %73) #21 br label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i -_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i: ; preds = %71, %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc16BottomUpPtrStateEED2Ev.exit - %73 = load i8, ptr %27, align 4, !tbaa !32, !range !54, !noundef !55 - %74 = trunc nuw i8 %73 to i1 - br i1 %74, label %_ZN4llvm7objcarc8PtrStateD2Ev.exit, label %75 +_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i: ; preds = %72, %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc16BottomUpPtrStateEED2Ev.exit + %74 = load i8, ptr %28, align 4, !tbaa !32, !range !54, !noundef !55 + %75 = trunc nuw i8 %74 to i1 + br i1 %75, label %_ZN4llvm7objcarc8PtrStateD2Ev.exit, label %76 -75: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i - %76 = load ptr, ptr %23, align 8, !tbaa !28 - call void @free(ptr noundef %76) #21 +76: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i + %77 = load ptr, ptr %23, align 8, !tbaa !28 + call void @free(ptr noundef %77) #21 br label %_ZN4llvm7objcarc8PtrStateD2Ev.exit -_ZN4llvm7objcarc8PtrStateD2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %75 +_ZN4llvm7objcarc8PtrStateD2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %76 call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %6) #21 call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %5) #21 - %77 = load ptr, ptr %12, align 8, !tbaa !519 - %78 = getelementptr inbounds nuw i8, ptr %77, i64 %19 - br label %85 - -79: ; preds = %2 - %80 = load ptr, ptr %3, align 8 - %81 = getelementptr inbounds nuw i8, ptr %80, i64 8 - %82 = load i64, ptr %81, align 8, !tbaa !527 - %83 = load ptr, ptr %12, align 8, !tbaa !519 - %84 = getelementptr inbounds nuw %"struct.std::pair.330", ptr %83, i64 %82 - br label %85 - -85: ; preds = %79, %_ZN4llvm7objcarc8PtrStateD2Ev.exit - %.pn = phi ptr [ %78, %_ZN4llvm7objcarc8PtrStateD2Ev.exit ], [ %84, %79 ] + %78 = load ptr, ptr %12, align 8, !tbaa !519 + %79 = getelementptr inbounds nuw i8, ptr %78, i64 %19 + br label %86 + +80: ; preds = %2 + %81 = load ptr, ptr %3, align 8 + %82 = getelementptr inbounds nuw i8, ptr %81, i64 8 + %83 = load i64, ptr %82, align 8, !tbaa !527 + %84 = load ptr, ptr %12, align 8, !tbaa !519 + %85 = getelementptr inbounds nuw %"struct.std::pair.330", ptr %84, i64 %83 + br label %86 + +86: ; preds = %80, %_ZN4llvm7objcarc8PtrStateD2Ev.exit + %.pn = phi ptr [ %79, %_ZN4llvm7objcarc8PtrStateD2Ev.exit ], [ %85, %79 ] %.0 = getelementptr inbounds nuw i8, ptr %.pn, i64 8 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #21 ret ptr %.0 @@ -17702,7 +17702,7 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(112) ptr @_ZN %10 = load i8, ptr %9, align 8, !tbaa !597, !range !54, !noundef !55 %11 = trunc nuw i8 %10 to i1 %12 = getelementptr inbounds nuw i8, ptr %0, i64 24 - br i1 %11, label %13, label %79 + br i1 %11, label %13, label %80 13: ; preds = %2 %14 = getelementptr inbounds nuw i8, ptr %0, i64 32 @@ -17721,128 +17721,128 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(112) ptr @_ZN %24 = getelementptr inbounds nuw i8, ptr %6, i64 48 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %6, i8 0, i64 112, i1 false) store ptr %24, ptr %23, align 8, !tbaa !28 - %25 = getelementptr inbounds nuw i8, ptr %6, i64 32 - store i32 2, ptr %25, align 8, !tbaa !29 - %26 = getelementptr inbounds nuw i8, ptr %6, i64 40 - store i32 0, ptr %26, align 8, !tbaa !31 - %27 = getelementptr inbounds nuw i8, ptr %6, i64 44 - store i8 1, ptr %27, align 4, !tbaa !32 - %28 = getelementptr inbounds nuw i8, ptr %6, i64 64 - %29 = getelementptr inbounds nuw i8, ptr %6, i64 88 - store ptr %29, ptr %28, align 8, !tbaa !28 - %30 = getelementptr inbounds nuw i8, ptr %6, i64 72 - store i32 2, ptr %30, align 8, !tbaa !29 - %31 = getelementptr inbounds nuw i8, ptr %6, i64 80 - store i32 0, ptr %31, align 8, !tbaa !31 - %32 = getelementptr inbounds nuw i8, ptr %6, i64 84 - store i8 1, ptr %32, align 4, !tbaa !32 - %33 = getelementptr inbounds nuw i8, ptr %6, i64 104 + %26 = getelementptr inbounds nuw i8, ptr %6, i64 32 + store i32 2, ptr %26, align 8, !tbaa !29 + %27 = getelementptr inbounds nuw i8, ptr %6, i64 40 + store i32 0, ptr %27, align 8, !tbaa !31 + %28 = getelementptr inbounds nuw i8, ptr %6, i64 44 + store i8 1, ptr %28, align 4, !tbaa !32 + %29 = getelementptr inbounds nuw i8, ptr %6, i64 64 + %30 = getelementptr inbounds nuw i8, ptr %6, i64 88 + store ptr %30, ptr %29, align 8, !tbaa !28 + %31 = getelementptr inbounds nuw i8, ptr %6, i64 72 + store i32 2, ptr %31, align 8, !tbaa !29 + %32 = getelementptr inbounds nuw i8, ptr %6, i64 80 + store i32 0, ptr %32, align 8, !tbaa !31 + %33 = getelementptr inbounds nuw i8, ptr %6, i64 84 + store i8 1, ptr %33, align 4, !tbaa !32 + %34 = getelementptr inbounds nuw i8, ptr %6, i64 104 call void @llvm.experimental.noalias.scope.decl(metadata !625) - %34 = load ptr, ptr %1, align 8, !tbaa !109, !noalias !625 - store ptr %34, ptr %5, align 8, !tbaa !570, !alias.scope !625 - %35 = getelementptr inbounds nuw i8, ptr %5, i64 8 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %35, i8 0, i64 3, i1 false) - %36 = getelementptr inbounds nuw i8, ptr %5, i64 16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %36, i8 0, i64 16, i1 false) - %37 = getelementptr inbounds nuw i8, ptr %5, i64 32 - %38 = getelementptr inbounds nuw i8, ptr %5, i64 56 - call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %37, ptr noundef nonnull %38, i32 noundef 2, ptr noundef nonnull %24, ptr noundef nonnull align 8 dereferenceable(40) %23) #21 - %39 = getelementptr inbounds nuw i8, ptr %5, i64 72 - %40 = getelementptr inbounds nuw i8, ptr %5, i64 96 - call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %39, ptr noundef nonnull %40, i32 noundef 2, ptr noundef nonnull %29, ptr noundef nonnull align 8 dereferenceable(40) %28) #21 - %41 = getelementptr inbounds nuw i8, ptr %5, i64 112 - %42 = load i8, ptr %33, align 8, !tbaa !244, !range !54, !noalias !625, !noundef !55 - store i8 %42, ptr %41, align 8, !tbaa !244, !alias.scope !625 - %43 = load ptr, ptr %14, align 8, !tbaa !563 - %44 = getelementptr inbounds nuw i8, ptr %0, i64 40 - %45 = load ptr, ptr %44, align 8, !tbaa !569 - %.not.i.i = icmp eq ptr %43, %45 - br i1 %.not.i.i, label %58, label %46 - -46: ; preds = %13 - %47 = load ptr, ptr %5, align 8, !tbaa !570 - store ptr %47, ptr %43, align 8, !tbaa !570 - %48 = getelementptr inbounds nuw i8, ptr %43, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %48, ptr noundef nonnull align 8 dereferenceable(112) %35, i64 3, i1 false) - %49 = getelementptr inbounds nuw i8, ptr %43, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(97) %49, ptr noundef nonnull align 8 dereferenceable(97) %36, i64 16, i1 false) - %50 = getelementptr inbounds nuw i8, ptr %43, i64 32 - %51 = getelementptr inbounds nuw i8, ptr %43, i64 56 - call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %50, ptr noundef nonnull %51, i32 noundef 2, ptr noundef nonnull %38, ptr noundef nonnull align 8 dereferenceable(40) %37) #21 - %52 = getelementptr inbounds nuw i8, ptr %43, i64 72 - %53 = getelementptr inbounds nuw i8, ptr %43, i64 96 - call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %52, ptr noundef nonnull %53, i32 noundef 2, ptr noundef nonnull %40, ptr noundef nonnull align 8 dereferenceable(40) %39) #21 - %54 = getelementptr inbounds nuw i8, ptr %43, i64 112 - %55 = load i8, ptr %41, align 8, !tbaa !244, !range !54, !noundef !55 - store i8 %55, ptr %54, align 8, !tbaa !244 - %56 = load ptr, ptr %14, align 8, !tbaa !563 - %57 = getelementptr inbounds nuw i8, ptr %56, i64 120 - store ptr %57, ptr %14, align 8, !tbaa !563 + %35 = load ptr, ptr %1, align 8, !tbaa !109, !noalias !625 + store ptr %35, ptr %5, align 8, !tbaa !570, !alias.scope !625 + %36 = getelementptr inbounds nuw i8, ptr %5, i64 8 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %36, i8 0, i64 3, i1 false) + %37 = getelementptr inbounds nuw i8, ptr %5, i64 16 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %37, i8 0, i64 16, i1 false) + %38 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %39 = getelementptr inbounds nuw i8, ptr %5, i64 56 + call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %38, ptr noundef nonnull %39, i32 noundef 2, ptr noundef nonnull %24, ptr noundef nonnull align 8 dereferenceable(40) %23) #21 + %40 = getelementptr inbounds nuw i8, ptr %5, i64 72 + %41 = getelementptr inbounds nuw i8, ptr %5, i64 96 + call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %40, ptr noundef nonnull %41, i32 noundef 2, ptr noundef nonnull %30, ptr noundef nonnull align 8 dereferenceable(40) %29) #21 + %42 = getelementptr inbounds nuw i8, ptr %5, i64 112 + %43 = load i8, ptr %34, align 8, !tbaa !244, !range !54, !noalias !625, !noundef !55 + store i8 %43, ptr %42, align 8, !tbaa !244, !alias.scope !625 + %44 = load ptr, ptr %14, align 8, !tbaa !563 + %45 = getelementptr inbounds nuw i8, ptr %0, i64 40 + %46 = load ptr, ptr %45, align 8, !tbaa !569 + %.not.i.i = icmp eq ptr %44, %46 + br i1 %.not.i.i, label %59, label %47 + +47: ; preds = %13 + %48 = load ptr, ptr %5, align 8, !tbaa !570 + store ptr %48, ptr %44, align 8, !tbaa !570 + %49 = getelementptr inbounds nuw i8, ptr %44, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %49, ptr noundef nonnull align 8 dereferenceable(112) %36, i64 3, i1 false) + %50 = getelementptr inbounds nuw i8, ptr %44, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(97) %50, ptr noundef nonnull align 8 dereferenceable(97) %37, i64 16, i1 false) + %51 = getelementptr inbounds nuw i8, ptr %44, i64 32 + %52 = getelementptr inbounds nuw i8, ptr %44, i64 56 + call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %51, ptr noundef nonnull %52, i32 noundef 2, ptr noundef nonnull %39, ptr noundef nonnull align 8 dereferenceable(40) %38) #21 + %53 = getelementptr inbounds nuw i8, ptr %44, i64 72 + %54 = getelementptr inbounds nuw i8, ptr %44, i64 96 + call void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvjS3_OS0_(ptr noundef nonnull align 8 dereferenceable(40) %53, ptr noundef nonnull %54, i32 noundef 2, ptr noundef nonnull %41, ptr noundef nonnull align 8 dereferenceable(40) %40) #21 + %55 = getelementptr inbounds nuw i8, ptr %44, i64 112 + %56 = load i8, ptr %42, align 8, !tbaa !244, !range !54, !noundef !55 + store i8 %56, ptr %55, align 8, !tbaa !244 + %57 = load ptr, ptr %14, align 8, !tbaa !563 + %58 = getelementptr inbounds nuw i8, ptr %57, i64 120 + store ptr %58, ptr %14, align 8, !tbaa !563 br label %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE9push_backEOS7_.exit -58: ; preds = %13 - call void @_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE17_M_realloc_insertIJS7_EEEvN9__gnu_cxx17__normal_iteratorIPS7_S9_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr %43, ptr noundef nonnull align 8 dereferenceable(120) %5) +59: ; preds = %13 + call void @_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE17_M_realloc_insertIJS7_EEEvN9__gnu_cxx17__normal_iteratorIPS7_S9_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr %44, ptr noundef nonnull align 8 dereferenceable(120) %5) br label %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE9push_backEOS7_.exit -_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE9push_backEOS7_.exit: ; preds = %46, %58 - %59 = getelementptr inbounds nuw i8, ptr %5, i64 92 - %60 = load i8, ptr %59, align 4, !tbaa !32, !range !54, !noundef !55 - %61 = trunc nuw i8 %60 to i1 - br i1 %61, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i, label %62 +_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE9push_backEOS7_.exit: ; preds = %47, %59 + %60 = getelementptr inbounds nuw i8, ptr %5, i64 92 + %61 = load i8, ptr %60, align 4, !tbaa !32, !range !54, !noundef !55 + %62 = trunc nuw i8 %61 to i1 + br i1 %62, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i, label %63 -62: ; preds = %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE9push_backEOS7_.exit - %63 = load ptr, ptr %39, align 8, !tbaa !28 - call void @free(ptr noundef %63) #21 +63: ; preds = %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE9push_backEOS7_.exit + %64 = load ptr, ptr %40, align 8, !tbaa !28 + call void @free(ptr noundef %64) #21 br label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i -_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i: ; preds = %62, %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE9push_backEOS7_.exit - %64 = getelementptr inbounds nuw i8, ptr %5, i64 52 - %65 = load i8, ptr %64, align 4, !tbaa !32, !range !54, !noundef !55 - %66 = trunc nuw i8 %65 to i1 - br i1 %66, label %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc15TopDownPtrStateEED2Ev.exit, label %67 +_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i: ; preds = %63, %_ZNSt6vectorISt4pairIPKN4llvm5ValueENS1_7objcarc15TopDownPtrStateEESaIS7_EE9push_backEOS7_.exit + %65 = getelementptr inbounds nuw i8, ptr %5, i64 52 + %66 = load i8, ptr %65, align 4, !tbaa !32, !range !54, !noundef !55 + %67 = trunc nuw i8 %66 to i1 + br i1 %67, label %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc15TopDownPtrStateEED2Ev.exit, label %68 -67: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i - %68 = load ptr, ptr %37, align 8, !tbaa !28 - call void @free(ptr noundef %68) #21 +68: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i + %69 = load ptr, ptr %38, align 8, !tbaa !28 + call void @free(ptr noundef %69) #21 br label %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc15TopDownPtrStateEED2Ev.exit -_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc15TopDownPtrStateEED2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i, %67 - %69 = load i8, ptr %32, align 4, !tbaa !32, !range !54, !noundef !55 - %70 = trunc nuw i8 %69 to i1 - br i1 %70, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, label %71 +_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc15TopDownPtrStateEED2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i.i, %68 + %70 = load i8, ptr %33, align 4, !tbaa !32, !range !54, !noundef !55 + %71 = trunc nuw i8 %70 to i1 + br i1 %71, label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, label %72 -71: ; preds = %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc15TopDownPtrStateEED2Ev.exit - %72 = load ptr, ptr %28, align 8, !tbaa !28 - call void @free(ptr noundef %72) #21 +72: ; preds = %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc15TopDownPtrStateEED2Ev.exit + %73 = load ptr, ptr %29, align 8, !tbaa !28 + call void @free(ptr noundef %73) #21 br label %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i -_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i: ; preds = %71, %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc15TopDownPtrStateEED2Ev.exit - %73 = load i8, ptr %27, align 4, !tbaa !32, !range !54, !noundef !55 - %74 = trunc nuw i8 %73 to i1 - br i1 %74, label %_ZN4llvm7objcarc8PtrStateD2Ev.exit, label %75 +_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i: ; preds = %72, %_ZNSt4pairIPKN4llvm5ValueENS0_7objcarc15TopDownPtrStateEED2Ev.exit + %74 = load i8, ptr %28, align 4, !tbaa !32, !range !54, !noundef !55 + %75 = trunc nuw i8 %74 to i1 + br i1 %75, label %_ZN4llvm7objcarc8PtrStateD2Ev.exit, label %76 -75: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i - %76 = load ptr, ptr %23, align 8, !tbaa !28 - call void @free(ptr noundef %76) #21 +76: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i + %77 = load ptr, ptr %23, align 8, !tbaa !28 + call void @free(ptr noundef %77) #21 br label %_ZN4llvm7objcarc8PtrStateD2Ev.exit -_ZN4llvm7objcarc8PtrStateD2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %75 +_ZN4llvm7objcarc8PtrStateD2Ev.exit: ; preds = %_ZN4llvm19SmallPtrSetImplBaseD2Ev.exit.i.i, %76 call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %6) #21 call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %5) #21 - %77 = load ptr, ptr %12, align 8, !tbaa !562 - %78 = getelementptr inbounds nuw i8, ptr %77, i64 %19 - br label %85 - -79: ; preds = %2 - %80 = load ptr, ptr %3, align 8 - %81 = getelementptr inbounds nuw i8, ptr %80, i64 8 - %82 = load i64, ptr %81, align 8, !tbaa !527 - %83 = load ptr, ptr %12, align 8, !tbaa !562 - %84 = getelementptr inbounds nuw %"struct.std::pair.332", ptr %83, i64 %82 - br label %85 - -85: ; preds = %79, %_ZN4llvm7objcarc8PtrStateD2Ev.exit - %.pn = phi ptr [ %78, %_ZN4llvm7objcarc8PtrStateD2Ev.exit ], [ %84, %79 ] + %78 = load ptr, ptr %12, align 8, !tbaa !562 + %79 = getelementptr inbounds nuw i8, ptr %78, i64 %19 + br label %86 + +80: ; preds = %2 + %81 = load ptr, ptr %3, align 8 + %82 = getelementptr inbounds nuw i8, ptr %81, i64 8 + %83 = load i64, ptr %82, align 8, !tbaa !527 + %84 = load ptr, ptr %12, align 8, !tbaa !562 + %85 = getelementptr inbounds nuw %"struct.std::pair.332", ptr %84, i64 %83 + br label %86 + +86: ; preds = %80, %_ZN4llvm7objcarc8PtrStateD2Ev.exit + %.pn = phi ptr [ %79, %_ZN4llvm7objcarc8PtrStateD2Ev.exit ], [ %85, %79 ] %.0 = getelementptr inbounds nuw i8, ptr %.pn, i64 8 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #21 ret ptr %.0 diff --git a/bench/llvm/optimized/SemaLookup.ll b/bench/llvm/optimized/SemaLookup.ll index f9c9a1e56a4..71db3fa1b2a 100644 --- a/bench/llvm/optimized/SemaLookup.ll +++ b/bench/llvm/optimized/SemaLookup.ll @@ -43036,7 +43036,7 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(72) ptr @_ZN4 ._crit_edge: ; preds = %2 %.pre8 = load i32, ptr %10, align 4, !tbaa !1096 - br label %70 + br label %71 _ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISA_SB_EEEbE4typeELb1EEEOSA_OSB_.exit: ; preds = %2 %14 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -43051,15 +43051,15 @@ _ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_i %19 = getelementptr inbounds nuw i8, ptr %5, i64 48 store ptr null, ptr %6, align 8, !tbaa !2327 store ptr null, ptr %17, align 8, !tbaa !2327 - %20 = getelementptr inbounds nuw i8, ptr %6, i64 24 + %21 = getelementptr inbounds nuw i8, ptr %6, i64 24 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %18, i8 0, i64 16, i1 false) - %21 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %22 = getelementptr inbounds nuw i8, ptr %5, i64 32 store ptr null, ptr %21, align 8, !tbaa !1494 %22 = getelementptr inbounds nuw i8, ptr %5, i64 40 store ptr null, ptr %22, align 8, !tbaa !1494 %23 = getelementptr inbounds nuw i8, ptr %6, i64 56 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %19, i8 0, i64 16, i1 false) - %24 = getelementptr inbounds nuw i8, ptr %5, i64 64 + %25 = getelementptr inbounds nuw i8, ptr %5, i64 64 store ptr null, ptr %24, align 8, !tbaa !1494 %25 = getelementptr inbounds nuw i8, ptr %5, i64 72 store ptr null, ptr %25, align 8, !tbaa !1494 @@ -43068,122 +43068,122 @@ _ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_i %.pre6 = load i32, ptr %.phi.trans.insert5, align 4, !tbaa !1063 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %0, i64 32 %.pre = load i32, ptr %.phi.trans.insert, align 8, !tbaa !1050 - %26 = getelementptr inbounds nuw i8, ptr %0, i64 32 - %27 = zext i32 %.pre to i64 - %28 = add nuw nsw i64 %27, 1 + %27 = getelementptr inbounds nuw i8, ptr %0, i64 32 + %28 = zext i32 %.pre to i64 + %29 = add nuw nsw i64 %28, 1 %.not.i.i.not.i = icmp ult i32 %.pre, %.pre6 - br i1 %.not.i.i.not.i, label %_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit, label %29, !prof !1107 + br i1 %.not.i.i.not.i, label %_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit, label %30, !prof !1107 -29: ; preds = %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISA_SB_EEEbE4typeELb1EEEOSA_OSB_.exit - %30 = getelementptr inbounds nuw %"struct.std::pair.1905", ptr %.pre3.i.pre, i64 %27 - %31 = icmp uge ptr %5, %.pre3.i.pre - %32 = icmp ult ptr %5, %30 - %spec.select.i.i.i.i.i = and i1 %31, %32 - br i1 %spec.select.i.i.i.i.i, label %34, label %33, !prof !1379 +30: ; preds = %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISA_SB_EEEbE4typeELb1EEEOSA_OSB_.exit + %31 = getelementptr inbounds nuw %"struct.std::pair.1905", ptr %.pre3.i.pre, i64 %28 + %32 = icmp uge ptr %5, %.pre3.i.pre + %33 = icmp ult ptr %5, %31 + %spec.select.i.i.i.i.i = and i1 %32, %33 + br i1 %spec.select.i.i.i.i.i, label %35, label %34, !prof !1379 -33: ; preds = %29 - call void @_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE4growEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %28) +34: ; preds = %30 + call void @_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE4growEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %29) %.pre.i = load ptr, ptr %14, align 8, !tbaa !1038 br label %_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit -34: ; preds = %29 - %35 = ptrtoint ptr %5 to i64 - %36 = ptrtoint ptr %.pre3.i.pre to i64 - %37 = sub i64 %35, %36 - call void @_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE4growEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %28) - %38 = load ptr, ptr %14, align 8, !tbaa !1038 - %39 = getelementptr inbounds i8, ptr %38, i64 %37 +35: ; preds = %30 + %36 = ptrtoint ptr %5 to i64 + %37 = ptrtoint ptr %.pre3.i.pre to i64 + %38 = sub i64 %36, %37 + call void @_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE4growEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %29) + %39 = load ptr, ptr %14, align 8, !tbaa !1038 + %40 = getelementptr inbounds i8, ptr %39, i64 %38 br label %_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit -_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit: ; preds = %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISA_SB_EEEbE4typeELb1EEEOSA_OSB_.exit, %33, %34 - %40 = phi ptr [ %.pre3.i.pre, %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISA_SB_EEEbE4typeELb1EEEOSA_OSB_.exit ], [ %38, %34 ], [ %.pre.i, %33 ] - %.016.i.i.i = phi ptr [ %5, %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISA_SB_EEEbE4typeELb1EEEOSA_OSB_.exit ], [ %39, %34 ], [ %5, %33 ] - %41 = load i32, ptr %26, align 8, !tbaa !1050 - %42 = zext i32 %41 to i64 - %43 = getelementptr inbounds nuw %"struct.std::pair.1905", ptr %40, i64 %42 - call void @_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2EOS5_(ptr noundef nonnull align 8 dereferenceable(80) %43, ptr noundef nonnull align 8 dereferenceable(80) %.016.i.i.i) #27 - %44 = load i32, ptr %26, align 8, !tbaa !1050 - %45 = add i32 %44, 1 - store i32 %45, ptr %26, align 8, !tbaa !1050 - %46 = load ptr, ptr %24, align 8, !tbaa !2397 - %.not.i.i.i = icmp eq ptr %46, null - br i1 %.not.i.i.i, label %_ZNSt14_Function_baseD2Ev.exit.i.i, label %47 - -47: ; preds = %_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit - %48 = call noundef zeroext i1 %46(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %19, i32 noundef 3) #27 +_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit: ; preds = %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISA_SB_EEEbE4typeELb1EEEOSA_OSB_.exit, %34, %35 + %41 = phi ptr [ %.pre3.i.pre, %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISA_SB_EEEbE4typeELb1EEEOSA_OSB_.exit ], [ %39, %34 ], [ %.pre.i, %33 ] + %.016.i.i.i = phi ptr [ %5, %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2IRKS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISA_SB_EEEbE4typeELb1EEEOSA_OSB_.exit ], [ %40, %34 ], [ %5, %33 ] + %42 = load i32, ptr %27, align 8, !tbaa !1050 + %43 = zext i32 %42 to i64 + %44 = getelementptr inbounds nuw %"struct.std::pair.1905", ptr %41, i64 %43 + call void @_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEEC2EOS5_(ptr noundef nonnull align 8 dereferenceable(80) %44, ptr noundef nonnull align 8 dereferenceable(80) %.016.i.i.i) #27 + %45 = load i32, ptr %27, align 8, !tbaa !1050 + %46 = add i32 %45, 1 + store i32 %46, ptr %27, align 8, !tbaa !1050 + %47 = load ptr, ptr %25, align 8, !tbaa !2397 + %.not.i.i.i = icmp eq ptr %47, null + br i1 %.not.i.i.i, label %_ZNSt14_Function_baseD2Ev.exit.i.i, label %48 + +48: ; preds = %_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit + %49 = call noundef zeroext i1 %46(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %19, i32 noundef 3) #27 br label %_ZNSt14_Function_baseD2Ev.exit.i.i -_ZNSt14_Function_baseD2Ev.exit.i.i: ; preds = %47, %_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit - %49 = load ptr, ptr %21, align 8, !tbaa !2397 - %.not.i1.i.i = icmp eq ptr %49, null - br i1 %.not.i1.i.i, label %_ZNSt14_Function_baseD2Ev.exit2.i.i, label %50 +_ZNSt14_Function_baseD2Ev.exit.i.i: ; preds = %48, %_ZN4llvm23SmallVectorTemplateBaseISt4pairIPN5clang8TypoExprENS2_4Sema13TypoExprStateEELb0EE9push_backEOS7_.exit + %50 = load ptr, ptr %22, align 8, !tbaa !2397 + %.not.i1.i.i = icmp eq ptr %50, null + br i1 %.not.i1.i.i, label %_ZNSt14_Function_baseD2Ev.exit2.i.i, label %51 -50: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i.i - %51 = call noundef zeroext i1 %49(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %18, i32 noundef 3) #27 +51: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i.i + %52 = call noundef zeroext i1 %49(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %18, i32 noundef 3) #27 br label %_ZNSt14_Function_baseD2Ev.exit2.i.i -_ZNSt14_Function_baseD2Ev.exit2.i.i: ; preds = %50, %_ZNSt14_Function_baseD2Ev.exit.i.i - %52 = load ptr, ptr %17, align 8, !tbaa !2327 - %.not.i3.i.i = icmp eq ptr %52, null +_ZNSt14_Function_baseD2Ev.exit2.i.i: ; preds = %51, %_ZNSt14_Function_baseD2Ev.exit.i.i + %53 = load ptr, ptr %17, align 8, !tbaa !2327 + %.not.i3.i.i = icmp eq ptr %53, null br i1 %.not.i3.i.i, label %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEED2Ev.exit, label %_ZNKSt14default_deleteIN5clang22TypoCorrectionConsumerEEclEPS1_.exit.i.i.i _ZNKSt14default_deleteIN5clang22TypoCorrectionConsumerEEclEPS1_.exit.i.i.i: ; preds = %_ZNSt14_Function_baseD2Ev.exit2.i.i - %53 = load ptr, ptr %52, align 8, !tbaa !1071 - %54 = getelementptr inbounds nuw i8, ptr %53, i64 8 - %55 = load ptr, ptr %54, align 8 - call void %55(ptr noundef nonnull align 8 dereferenceable(1082) %52) #27 + %54 = load ptr, ptr %53, align 8, !tbaa !1071 + %55 = getelementptr inbounds nuw i8, ptr %54, i64 8 + %56 = load ptr, ptr %55, align 8 + call void %55(ptr noundef nonnull align 8 dereferenceable(1082) %53) #27 br label %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEED2Ev.exit _ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEED2Ev.exit: ; preds = %_ZNSt14_Function_baseD2Ev.exit2.i.i, %_ZNKSt14default_deleteIN5clang22TypoCorrectionConsumerEEclEPS1_.exit.i.i.i store ptr null, ptr %17, align 8, !tbaa !2327 - %56 = load ptr, ptr %23, align 8, !tbaa !2397 - %.not.i.i = icmp eq ptr %56, null - br i1 %.not.i.i, label %_ZNSt14_Function_baseD2Ev.exit.i, label %57 + %57 = load ptr, ptr %23, align 8, !tbaa !2397 + %.not.i.i = icmp eq ptr %57, null + br i1 %.not.i.i, label %_ZNSt14_Function_baseD2Ev.exit.i, label %58 -57: ; preds = %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEED2Ev.exit - %58 = getelementptr inbounds nuw i8, ptr %6, i64 40 - %59 = call noundef zeroext i1 %56(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %58, i32 noundef 3) #27 +58: ; preds = %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEED2Ev.exit + %59 = getelementptr inbounds nuw i8, ptr %6, i64 40 + %60 = call noundef zeroext i1 %56(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %59, i32 noundef 3) #27 br label %_ZNSt14_Function_baseD2Ev.exit.i -_ZNSt14_Function_baseD2Ev.exit.i: ; preds = %57, %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEED2Ev.exit - %60 = load ptr, ptr %20, align 8, !tbaa !2397 - %.not.i1.i = icmp eq ptr %60, null - br i1 %.not.i1.i, label %_ZNSt14_Function_baseD2Ev.exit2.i, label %61 +_ZNSt14_Function_baseD2Ev.exit.i: ; preds = %58, %_ZNSt4pairIPN5clang8TypoExprENS0_4Sema13TypoExprStateEED2Ev.exit + %61 = load ptr, ptr %21, align 8, !tbaa !2397 + %.not.i1.i = icmp eq ptr %61, null + br i1 %.not.i1.i, label %_ZNSt14_Function_baseD2Ev.exit2.i, label %62 -61: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i - %62 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %63 = call noundef zeroext i1 %60(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %62, i32 noundef 3) #27 +62: ; preds = %_ZNSt14_Function_baseD2Ev.exit.i + %63 = getelementptr inbounds nuw i8, ptr %6, i64 8 + %64 = call noundef zeroext i1 %60(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(32) %63, i32 noundef 3) #27 br label %_ZNSt14_Function_baseD2Ev.exit2.i -_ZNSt14_Function_baseD2Ev.exit2.i: ; preds = %61, %_ZNSt14_Function_baseD2Ev.exit.i - %64 = load ptr, ptr %6, align 8, !tbaa !2327 - %.not.i3.i = icmp eq ptr %64, null +_ZNSt14_Function_baseD2Ev.exit2.i: ; preds = %62, %_ZNSt14_Function_baseD2Ev.exit.i + %65 = load ptr, ptr %6, align 8, !tbaa !2327 + %.not.i3.i = icmp eq ptr %65, null br i1 %.not.i3.i, label %_ZN5clang4Sema13TypoExprStateD2Ev.exit, label %_ZNKSt14default_deleteIN5clang22TypoCorrectionConsumerEEclEPS1_.exit.i.i _ZNKSt14default_deleteIN5clang22TypoCorrectionConsumerEEclEPS1_.exit.i.i: ; preds = %_ZNSt14_Function_baseD2Ev.exit2.i - %65 = load ptr, ptr %64, align 8, !tbaa !1071 - %66 = getelementptr inbounds nuw i8, ptr %65, i64 8 - %67 = load ptr, ptr %66, align 8 - call void %67(ptr noundef nonnull align 8 dereferenceable(1082) %64) #27 + %66 = load ptr, ptr %65, align 8, !tbaa !1071 + %67 = getelementptr inbounds nuw i8, ptr %66, i64 8 + %68 = load ptr, ptr %67, align 8 + call void %67(ptr noundef nonnull align 8 dereferenceable(1082) %65) #27 br label %_ZN5clang4Sema13TypoExprStateD2Ev.exit _ZN5clang4Sema13TypoExprStateD2Ev.exit: ; preds = %_ZNSt14_Function_baseD2Ev.exit2.i, %_ZNKSt14default_deleteIN5clang22TypoCorrectionConsumerEEclEPS1_.exit.i.i call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %6) #27 call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %5) #27 - %68 = load i32, ptr %26, align 8, !tbaa !1050 - %69 = add i32 %68, -1 - store i32 %69, ptr %10, align 4, !tbaa !1096 - br label %70 + %69 = load i32, ptr %27, align 8, !tbaa !1050 + %70 = add i32 %69, -1 + store i32 %70, ptr %10, align 4, !tbaa !1096 + br label %71 -70: ; preds = %._crit_edge, %_ZN5clang4Sema13TypoExprStateD2Ev.exit - %71 = phi i32 [ %.pre8, %._crit_edge ], [ %69, %_ZN5clang4Sema13TypoExprStateD2Ev.exit ] - %72 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %73 = zext i32 %71 to i64 - %74 = load ptr, ptr %72, align 8, !tbaa !1038 - %75 = getelementptr inbounds nuw %"struct.std::pair.1905", ptr %74, i64 %73, i32 1 +71: ; preds = %._crit_edge, %_ZN5clang4Sema13TypoExprStateD2Ev.exit + %72 = phi i32 [ %.pre8, %._crit_edge ], [ %70, %_ZN5clang4Sema13TypoExprStateD2Ev.exit ] + %73 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %74 = zext i32 %72 to i64 + %75 = load ptr, ptr %73, align 8, !tbaa !1038 + %76 = getelementptr inbounds nuw %"struct.std::pair.1905", ptr %75, i64 %74, i32 1 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #27 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #27 - ret ptr %75 + ret ptr %76 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable diff --git a/bench/llvm/optimized/SymbolDumper.ll b/bench/llvm/optimized/SymbolDumper.ll index a1c68af7660..26373d0eba0 100644 --- a/bench/llvm/optimized/SymbolDumper.ll +++ b/bench/llvm/optimized/SymbolDumper.ll @@ -9345,12 +9345,12 @@ define internal void @_ZN12_GLOBAL__N_118CVSymbolDumperImpl16visitKnownRecordERN store i8 0, ptr %37, align 8, !tbaa !333, !alias.scope !335 %38 = getelementptr inbounds nuw i8, ptr %5, i64 56 store ptr %31, ptr %38, align 8, !tbaa !86 - %.sroa.558.56..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 64 - store i64 %36, ptr %.sroa.558.56..sroa_idx, align 8, !tbaa !87 + %.sroa.560.56..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 64 + store i64 %36, ptr %.sroa.560.56..sroa_idx, align 8, !tbaa !87 %39 = getelementptr inbounds nuw i8, ptr %5, i64 72 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %39, i8 0, i64 16, i1 false), !alias.scope !335 - %.not.i.i.i.i73 = icmp eq ptr %33, %31 - br i1 %.not.i.i.i.i73, label %_ZN4llvm9ListScopeD2Ev.exit, label %.lr.ph + %.not.i.i.i.i75 = icmp eq ptr %33, %31 + br i1 %.not.i.i.i.i75, label %_ZN4llvm9ListScopeD2Ev.exit, label %.lr.ph .lr.ph: ; preds = %4 %40 = getelementptr inbounds nuw i8, ptr %5, i64 32 diff --git a/bench/mitsuba3/optimized/rectangle.ll b/bench/mitsuba3/optimized/rectangle.ll index 2019c17b183..4c369f0f8ee 100644 --- a/bench/mitsuba3/optimized/rectangle.ll +++ b/bench/mitsuba3/optimized/rectangle.ll @@ -1189,7 +1189,7 @@ _ZNK7mitsuba9RectangleIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE25ray_intersec store ptr null, ptr %77, align 8 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(212) %75, i8 0, i64 212, i1 false) store float 0x7FF0000000000000, ptr %0, align 16 - br label %175 + br label %174 .critedge.i: ; preds = %_ZNK7mitsuba9RectangleIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE25ray_intersect_preliminaryERKNS_3RayINS_5PointIfLm3EEES5_EEjb.exit %79 = getelementptr inbounds nuw i8, ptr %0, i64 72 @@ -1240,98 +1240,98 @@ _ZNK7mitsuba9RectangleIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE25ray_intersec %.pre79.i = load <4 x float>, ptr %.sroa.3321.0..sroa_idx.i, align 16 br label %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE28finalize_surface_interactionERKNS_23PreliminaryIntersectionIfNS_5ShapeIfS5_EEEERKNS_3RayINS_5PointIfLm3EEES5_EEjb.exit -103: ; preds = %.critedge.i - %104 = load <4 x float>, ptr %86, align 16 - %105 = load <4 x float>, ptr %.sroa.3321.0..sroa_idx.i, align 16 - %106 = tail call contract <4 x float> @llvm.x86.sse41.dpps(<4 x float> %105, <4 x float> %104, i8 113) - %107 = extractelement <4 x float> %106, i64 0 - %108 = fneg contract float %107 - %109 = insertelement <4 x float> poison, float %108, i64 0 - %110 = shufflevector <4 x float> %109, <4 x float> poison, <4 x i32> zeroinitializer - %111 = tail call contract noundef <4 x float> @llvm.fma.v4f32(<4 x float> %105, <4 x float> %110, <4 x float> %104) - %112 = fmul contract <4 x float> %111, %111 - %shift = shufflevector <4 x float> %112, <4 x float> poison, <4 x i32> - %113 = fadd contract <4 x float> %112, %shift - %shift256 = shufflevector <4 x float> %112, <4 x float> poison, <4 x i32> - %114 = fadd contract <4 x float> %shift256, %113 - %115 = extractelement <4 x float> %114, i64 0 - %116 = tail call contract noundef float @llvm.sqrt.f32(float %115) - %117 = fdiv contract float 1.000000e+00, %116 - %118 = insertelement <4 x float> poison, float %117, i64 0 - %119 = shufflevector <4 x float> %118, <4 x float> poison, <4 x i32> zeroinitializer - %120 = fmul contract <4 x float> %111, %119 - %121 = fcmp contract oeq <4 x float> %104, zeroinitializer - %122 = shufflevector <4 x i1> %121, <4 x i1> zeroinitializer, <8 x i32> - %123 = bitcast <8 x i1> %122 to i8 - %124 = and i8 %123, 7 - %125 = icmp eq i8 %124, 7 - br i1 %125, label %126, label %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i - -126: ; preds = %103 - %127 = extractelement <4 x float> %105, i64 0 - %bc.i.i203 = bitcast <4 x float> %105 to <4 x i32> - %128 = extractelement <4 x i32> %bc.i.i203, i64 2 - %129 = and i32 %128, -2147483648 - %130 = or disjoint i32 %129, 1065353216 - %131 = bitcast i32 %130 to float - %.cast.i.i.i = bitcast i32 %128 to float - %132 = fadd contract float %.cast.i.i.i, %131 - %133 = fdiv contract float -1.000000e+00, %132 - %shift257 = shufflevector <4 x float> %105, <4 x float> poison, <4 x i32> - %134 = fmul contract <4 x float> %105, %shift257 - %135 = extractelement <4 x float> %134, i64 0 - %136 = fmul contract float %135, %133 - %137 = fmul contract <4 x float> %105, %105 - %138 = extractelement <4 x float> %137, i64 0 - %139 = fmul contract float %138, %133 - %140 = bitcast float %139 to i32 - %141 = xor i32 %129, %140 - %142 = bitcast i32 %141 to float - %143 = bitcast float %136 to i32 - %144 = xor i32 %129, %143 - %145 = bitcast i32 %144 to float - %146 = fcmp contract ult float %.cast.i.i.i, 0.000000e+00 - %147 = fneg contract float %127 - %148 = select contract i1 %146, float %127, float %147 - %149 = fadd contract float %142, 1.000000e+00 - %150 = insertelement <4 x float> poison, float %149, i64 0 - %151 = insertelement <4 x float> %150, float %145, i64 1 - %152 = insertelement <4 x float> %151, float %148, i64 2 - %153 = shufflevector <4 x float> %152, <4 x float> %120, <4 x i32> +102: ; preds = %.critedge.i + %103 = load <4 x float>, ptr %86, align 16 + %104 = load <4 x float>, ptr %.sroa.3321.0..sroa_idx.i, align 16 + %105 = tail call contract <4 x float> @llvm.x86.sse41.dpps(<4 x float> %104, <4 x float> %103, i8 113) + %106 = extractelement <4 x float> %105, i64 0 + %107 = fneg contract float %106 + %108 = insertelement <4 x float> poison, float %107, i64 0 + %109 = shufflevector <4 x float> %108, <4 x float> poison, <4 x i32> zeroinitializer + %110 = tail call contract noundef <4 x float> @llvm.fma.v4f32(<4 x float> %104, <4 x float> %109, <4 x float> %103) + %111 = fmul contract <4 x float> %110, %110 + %shift = shufflevector <4 x float> %111, <4 x float> poison, <4 x i32> + %112 = fadd contract <4 x float> %111, %shift + %shift256 = shufflevector <4 x float> %111, <4 x float> poison, <4 x i32> + %113 = fadd contract <4 x float> %shift256, %112 + %114 = extractelement <4 x float> %113, i64 0 + %115 = tail call contract noundef float @llvm.sqrt.f32(float %114) + %116 = fdiv contract float 1.000000e+00, %115 + %117 = insertelement <4 x float> poison, float %116, i64 0 + %118 = shufflevector <4 x float> %117, <4 x float> poison, <4 x i32> zeroinitializer + %119 = fmul contract <4 x float> %110, %118 + %120 = fcmp contract oeq <4 x float> %103, zeroinitializer + %121 = shufflevector <4 x i1> %120, <4 x i1> zeroinitializer, <8 x i32> + %122 = bitcast <8 x i1> %121 to i8 + %123 = and i8 %122, 7 + %124 = icmp eq i8 %123, 7 + br i1 %124, label %125, label %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i + +125: ; preds = %102 + %126 = extractelement <4 x float> %104, i64 0 + %bc.i.i203 = bitcast <4 x float> %104 to <4 x i32> + %127 = extractelement <4 x i32> %bc.i.i203, i64 2 + %128 = and i32 %127, -2147483648 + %129 = or disjoint i32 %128, 1065353216 + %130 = bitcast i32 %129 to float + %.cast.i.i.i = bitcast i32 %127 to float + %131 = fadd contract float %.cast.i.i.i, %130 + %132 = fdiv contract float -1.000000e+00, %131 + %shift257 = shufflevector <4 x float> %104, <4 x float> poison, <4 x i32> + %133 = fmul contract <4 x float> %104, %shift257 + %134 = extractelement <4 x float> %133, i64 0 + %135 = fmul contract float %134, %132 + %136 = fmul contract <4 x float> %104, %104 + %137 = extractelement <4 x float> %136, i64 0 + %138 = fmul contract float %137, %132 + %139 = bitcast float %138 to i32 + %140 = xor i32 %128, %139 + %141 = bitcast i32 %140 to float + %142 = bitcast float %135 to i32 + %143 = xor i32 %128, %142 + %144 = bitcast i32 %143 to float + %145 = fcmp contract ult float %.cast.i.i.i, 0.000000e+00 + %146 = fneg contract float %126 + %147 = select contract i1 %145, float %126, float %146 + %148 = fadd contract float %141, 1.000000e+00 + %149 = insertelement <4 x float> poison, float %148, i64 0 + %150 = insertelement <4 x float> %149, float %144, i64 1 + %151 = insertelement <4 x float> %150, float %147, i64 2 + %152 = shufflevector <4 x float> %151, <4 x float> %119, <4 x i32> br label %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i -_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i: ; preds = %126, %103 - %154 = phi <4 x float> [ %153, %126 ], [ %120, %103 ] - %155 = getelementptr inbounds nuw i8, ptr %0, i64 80 - store <4 x float> %154, ptr %155, align 16 - %156 = shufflevector <4 x float> %105, <4 x float> poison, <4 x i32> - %157 = shufflevector <4 x float> %154, <4 x float> poison, <4 x i32> - %158 = shufflevector <4 x float> %105, <4 x float> poison, <4 x i32> - %159 = shufflevector <4 x float> %154, <4 x float> poison, <4 x i32> - %160 = fneg contract <4 x float> %159 - %161 = fmul contract <4 x float> %158, %160 - %162 = tail call contract noundef <4 x float> @llvm.fma.v4f32(<4 x float> %156, <4 x float> %157, <4 x float> %161) - %163 = getelementptr inbounds nuw i8, ptr %0, i64 96 - store <4 x float> %162, ptr %163, align 16 +_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i: ; preds = %125, %102 + %153 = phi <4 x float> [ %152, %126 ], [ %119, %103 ] + %154 = getelementptr inbounds nuw i8, ptr %0, i64 80 + store <4 x float> %153, ptr %154, align 16 + %155 = shufflevector <4 x float> %104, <4 x float> poison, <4 x i32> + %156 = shufflevector <4 x float> %153, <4 x float> poison, <4 x i32> + %157 = shufflevector <4 x float> %104, <4 x float> poison, <4 x i32> + %158 = shufflevector <4 x float> %153, <4 x float> poison, <4 x i32> + %159 = fneg contract <4 x float> %158 + %160 = fmul contract <4 x float> %157, %159 + %161 = tail call contract noundef <4 x float> @llvm.fma.v4f32(<4 x float> %155, <4 x float> %156, <4 x float> %160) + %162 = getelementptr inbounds nuw i8, ptr %0, i64 96 + store <4 x float> %161, ptr %162, align 16 br label %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE28finalize_surface_interactionERKNS_23PreliminaryIntersectionIfNS_5ShapeIfS5_EEEERKNS_3RayINS_5PointIfLm3EEES5_EEjb.exit _ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE28finalize_surface_interactionERKNS_23PreliminaryIntersectionIfNS_5ShapeIfS5_EEEERKNS_3RayINS_5PointIfLm3EEES5_EEjb.exit: ; preds = %.critedge._crit_edge.i, %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i - %164 = phi <4 x float> [ %.pre79.i, %.critedge._crit_edge.i ], [ %105, %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i ] - %165 = phi <4 x float> [ zeroinitializer, %.critedge._crit_edge.i ], [ %162, %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i ] - %166 = phi <4 x float> [ zeroinitializer, %.critedge._crit_edge.i ], [ %154, %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i ] - %167 = tail call contract <4 x float> @llvm.x86.sse41.dpps(<4 x float> %29, <4 x float> %166, i8 113) - %168 = tail call contract <4 x float> @llvm.x86.sse41.dpps(<4 x float> %29, <4 x float> %165, i8 113) - %169 = tail call contract <4 x float> @llvm.x86.sse41.dpps(<4 x float> %29, <4 x float> %164, i8 113) - %170 = shufflevector <4 x float> %167, <4 x float> %168, <4 x i32> - %171 = shufflevector <4 x float> %170, <4 x float> %169, <4 x i32> - %172 = shufflevector <4 x float> %171, <4 x float> %29, <4 x i32> - %173 = getelementptr inbounds nuw i8, ptr %0, i64 208 - store <4 x float> %172, ptr %173, align 16 - %174 = getelementptr inbounds nuw i8, ptr %0, i64 192 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %174, i8 0, i64 16, i1 false) - br label %175 - -175: ; preds = %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE28finalize_surface_interactionERKNS_23PreliminaryIntersectionIfNS_5ShapeIfS5_EEEERKNS_3RayINS_5PointIfLm3EEES5_EEjb.exit, %76 + %163 = phi <4 x float> [ %.pre79.i, %.critedge._crit_edge.i ], [ %104, %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i ] + %164 = phi <4 x float> [ zeroinitializer, %.critedge._crit_edge.i ], [ %161, %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i ] + %165 = phi <4 x float> [ zeroinitializer, %.critedge._crit_edge.i ], [ %153, %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE19initialize_sh_frameEv.exit.i ] + %166 = tail call contract <4 x float> @llvm.x86.sse41.dpps(<4 x float> %29, <4 x float> %165, i8 113) + %167 = tail call contract <4 x float> @llvm.x86.sse41.dpps(<4 x float> %29, <4 x float> %164, i8 113) + %168 = tail call contract <4 x float> @llvm.x86.sse41.dpps(<4 x float> %29, <4 x float> %163, i8 113) + %169 = shufflevector <4 x float> %166, <4 x float> %167, <4 x i32> + %170 = shufflevector <4 x float> %169, <4 x float> %168, <4 x i32> + %171 = shufflevector <4 x float> %170, <4 x float> %29, <4 x i32> + %172 = getelementptr inbounds nuw i8, ptr %0, i64 208 + store <4 x float> %171, ptr %172, align 16 + %173 = getelementptr inbounds nuw i8, ptr %0, i64 192 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %173, i8 0, i64 16, i1 false) + br label %174 + +174: ; preds = %_ZN7mitsuba18SurfaceInteractionIfN5drjit6MatrixINS_8SpectrumIfLm4EEELm4EEEE28finalize_surface_interactionERKNS_23PreliminaryIntersectionIfNS_5ShapeIfS5_EEEERKNS_3RayINS_5PointIfLm3EEES5_EEjb.exit, %76 ret void } diff --git a/bench/open3d/optimized/ViewTrajectory.ll b/bench/open3d/optimized/ViewTrajectory.ll index 1ab1aea1cdb..7662ad511e7 100644 --- a/bench/open3d/optimized/ViewTrajectory.ll +++ b/bench/open3d/optimized/ViewTrajectory.ll @@ -8854,7 +8854,7 @@ define void @_ZN6open3d13visualization14ViewTrajectory20GetInterpolatedFrameEm(p _ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit: ; preds = %24, %26 %.0.i = phi i64 [ %25, %24 ], [ %29, %26 ] %.not = icmp ult i64 %2, %.0.i - br i1 %.not, label %31, label %_ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit.thread + br i1 %.not, label %42, label %_ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit.thread _ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit.thread: ; preds = %3, %_ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit store ptr getelementptr inbounds nuw inrange(-16, 40) (i8, ptr @_ZTVN6open3d13visualization14ViewParametersE, i64 16), ptr %0, align 8, !tbaa !4, !alias.scope !322 @@ -8862,69 +8862,69 @@ _ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit.thread: ; preds = tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(137) %30, i8 0, i64 137, i1 false) br label %66 -31: ; preds = %_ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit - %32 = udiv i64 %2, %19 - %33 = mul i64 %32, %19 +42: ; preds = %_ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit + %43 = udiv i64 %2, %19 + %44 = mul i64 %43, %19 %.recomposed = urem i64 %2, %19 - %34 = uitofp i64 %.recomposed to double - %35 = sitofp i32 %18 to double - %36 = fdiv double %34, %35 - %37 = fmul double %36, %36 - %38 = fmul double %36, %37 - %.sroa.0.8.vec.insert = insertelement <2 x double> , double %36, i64 1 - %.sroa.5.16.vec.insert = insertelement <2 x double> poison, double %37, i64 0 - %.sroa.5.24.vec.insert = insertelement <2 x double> %.sroa.5.16.vec.insert, double %38, i64 1 + %45 = uitofp i64 %.recomposed to double + %46 = sitofp i32 %18 to double + %47 = fdiv double %45, %46 + %48 = fmul double %47, %47 + %49 = fmul double %47, %48 + %.sroa.0.8.vec.insert = insertelement <2 x double> , double %47, i64 1 + %.sroa.5.16.vec.insert = insertelement <2 x double> poison, double %48, i64 0 + %.sroa.5.24.vec.insert = insertelement <2 x double> %.sroa.5.16.vec.insert, double %49, i64 1 call void @llvm.lifetime.start.p0(i64 136, ptr nonnull %5) #28 - %39 = getelementptr inbounds nuw i8, ptr %1, i64 40 - %40 = load ptr, ptr %39, align 8, !tbaa !7 - %41 = getelementptr inbounds nuw %"class.Eigen::Matrix", ptr %40, i64 %32 - br label %42 - -42: ; preds = %42, %31 - %.05.i.i.i.i.i.i.i.i.i.i = phi i64 [ 0, %31 ], [ %53, %42 ] - %43 = getelementptr inbounds nuw double, ptr %5, i64 %.05.i.i.i.i.i.i.i.i.i.i + %50 = getelementptr inbounds nuw i8, ptr %1, i64 40 + %51 = load ptr, ptr %50, align 8, !tbaa !7 + %52 = getelementptr inbounds nuw %"class.Eigen::Matrix", ptr %51, i64 %43 + br label %53 + +53: ; preds = %53, %42 + %.05.i.i.i.i.i.i.i.i.i.i = phi i64 [ 0, %31 ], [ %64, %42 ] + %54 = getelementptr inbounds nuw double, ptr %5, i64 %.05.i.i.i.i.i.i.i.i.i.i %.idx.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %.05.i.i.i.i.i.i.i.i.i.i, 5 - %44 = getelementptr inbounds nuw i8, ptr %41, i64 %.idx.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i - %45 = load <2 x double>, ptr %44, align 16, !tbaa !40 - %46 = fmul <2 x double> %45, %.sroa.0.8.vec.insert - %47 = getelementptr inbounds nuw i8, ptr %44, i64 16 - %48 = load <2 x double>, ptr %47, align 16, !tbaa !40 - %49 = fmul <2 x double> %48, %.sroa.5.24.vec.insert - %50 = fadd <2 x double> %46, %49 - %shift = shufflevector <2 x double> %50, <2 x double> poison, <2 x i32> - %51 = fadd <2 x double> %50, %shift - %52 = extractelement <2 x double> %51, i64 0 - store double %52, ptr %43, align 8, !tbaa !41 - %53 = add nuw nsw i64 %.05.i.i.i.i.i.i.i.i.i.i, 1 - %exitcond.not.i.i.i.i.i.i.i.i.i.i = icmp eq i64 %53, 17 - br i1 %exitcond.not.i.i.i.i.i.i.i.i.i.i, label %_ZN5Eigen6MatrixIdLi17ELi1ELi0ELi17ELi1EEC2INS_7ProductINS0_IdLi17ELi4ELi1ELi17ELi4EEENS0_IdLi4ELi1ELi0ELi4ELi1EEELi0EEEEERKNS_9EigenBaseIT_EE.exit, label %42, !llvm.loop !325 - -_ZN5Eigen6MatrixIdLi17ELi1ELi0ELi17ELi1EEC2INS_7ProductINS0_IdLi17ELi4ELi1ELi17ELi4EEENS0_IdLi4ELi1ELi0ELi4ELi1EEELi0EEEEERKNS_9EigenBaseIT_EE.exit: ; preds = %42 + %55 = getelementptr inbounds nuw i8, ptr %52, i64 %.idx.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i + %56 = load <2 x double>, ptr %55, align 16, !tbaa !40 + %57 = fmul <2 x double> %56, %.sroa.0.8.vec.insert + %58 = getelementptr inbounds nuw i8, ptr %55, i64 16 + %59 = load <2 x double>, ptr %58, align 16, !tbaa !40 + %60 = fmul <2 x double> %59, %.sroa.5.24.vec.insert + %61 = fadd <2 x double> %57, %60 + %shift = shufflevector <2 x double> %61, <2 x double> poison, <2 x i32> + %62 = fadd <2 x double> %61, %shift + %63 = extractelement <2 x double> %62, i64 0 + store double %63, ptr %54, align 8, !tbaa !41 + %64 = add nuw nsw i64 %.05.i.i.i.i.i.i.i.i.i.i, 1 + %exitcond.not.i.i.i.i.i.i.i.i.i.i = icmp eq i64 %64, 17 + br i1 %exitcond.not.i.i.i.i.i.i.i.i.i.i, label %_ZN5Eigen6MatrixIdLi17ELi1ELi0ELi17ELi1EEC2INS_7ProductINS0_IdLi17ELi4ELi1ELi17ELi4EEENS0_IdLi4ELi1ELi0ELi4ELi1EEELi0EEEEERKNS_9EigenBaseIT_EE.exit, label %53, !llvm.loop !325 + +_ZN5Eigen6MatrixIdLi17ELi1ELi0ELi17ELi1EEC2INS_7ProductINS0_IdLi17ELi4ELi1ELi17ELi4EEENS0_IdLi4ELi1ELi0ELi4ELi1EEELi0EEEEERKNS_9EigenBaseIT_EE.exit: ; preds = %53 call void @_ZN6open3d13visualization14ViewParameters20ConvertFromVector17dERKN5Eigen6MatrixIdLi17ELi1ELi0ELi17ELi1EEE(ptr noundef nonnull align 8 dereferenceable(144) %4, ptr noundef nonnull align 8 dereferenceable(136) %5) store ptr getelementptr inbounds nuw inrange(-16, 40) (i8, ptr @_ZTVN6open3d13visualization14ViewParametersE, i64 16), ptr %0, align 8, !tbaa !4, !alias.scope !326 - %54 = getelementptr inbounds nuw i8, ptr %0, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %54, ptr noundef nonnull align 8 dereferenceable(16) %6, i64 16, i1 false) - %55 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %56 = getelementptr inbounds nuw i8, ptr %4, i64 24 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %55, ptr noundef nonnull align 8 dereferenceable(24) %56, i64 24, i1 false), !tbaa.struct !329 - %57 = getelementptr inbounds nuw i8, ptr %0, i64 48 - %58 = getelementptr inbounds nuw i8, ptr %4, i64 48 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %57, ptr noundef nonnull align 8 dereferenceable(24) %58, i64 24, i1 false), !tbaa.struct !329 - %59 = getelementptr inbounds nuw i8, ptr %0, i64 72 - %60 = getelementptr inbounds nuw i8, ptr %4, i64 72 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %59, ptr noundef nonnull align 8 dereferenceable(24) %60, i64 24, i1 false), !tbaa.struct !329 - %61 = getelementptr inbounds nuw i8, ptr %0, i64 96 - %62 = getelementptr inbounds nuw i8, ptr %4, i64 96 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %61, ptr noundef nonnull align 8 dereferenceable(24) %62, i64 24, i1 false), !tbaa.struct !329 - %63 = getelementptr inbounds nuw i8, ptr %0, i64 120 - %64 = getelementptr inbounds nuw i8, ptr %4, i64 120 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %63, ptr noundef nonnull align 8 dereferenceable(24) %64, i64 24, i1 false), !tbaa.struct !329 - %65 = getelementptr inbounds nuw i8, ptr %0, i64 144 - store i8 1, ptr %65, align 8, !tbaa !330, !alias.scope !326 + %65 = getelementptr inbounds nuw i8, ptr %0, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %65, ptr noundef nonnull align 8 dereferenceable(16) %6, i64 16, i1 false) + %66 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %67 = getelementptr inbounds nuw i8, ptr %4, i64 24 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %66, ptr noundef nonnull align 8 dereferenceable(24) %67, i64 24, i1 false), !tbaa.struct !329 + %68 = getelementptr inbounds nuw i8, ptr %0, i64 48 + %69 = getelementptr inbounds nuw i8, ptr %4, i64 48 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %68, ptr noundef nonnull align 8 dereferenceable(24) %69, i64 24, i1 false), !tbaa.struct !329 + %70 = getelementptr inbounds nuw i8, ptr %0, i64 72 + %71 = getelementptr inbounds nuw i8, ptr %4, i64 72 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %70, ptr noundef nonnull align 8 dereferenceable(24) %71, i64 24, i1 false), !tbaa.struct !329 + %72 = getelementptr inbounds nuw i8, ptr %0, i64 96 + %73 = getelementptr inbounds nuw i8, ptr %4, i64 96 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %72, ptr noundef nonnull align 8 dereferenceable(24) %73, i64 24, i1 false), !tbaa.struct !329 + %74 = getelementptr inbounds nuw i8, ptr %0, i64 120 + %75 = getelementptr inbounds nuw i8, ptr %4, i64 120 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %74, ptr noundef nonnull align 8 dereferenceable(24) %75, i64 24, i1 false), !tbaa.struct !329 + %76 = getelementptr inbounds nuw i8, ptr %0, i64 144 + store i8 1, ptr %76, align 8, !tbaa !330, !alias.scope !326 call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %5) #28 - br label %66 + br label %77 -66: ; preds = %_ZN5Eigen6MatrixIdLi17ELi1ELi0ELi17ELi1EEC2INS_7ProductINS0_IdLi17ELi4ELi1ELi17ELi4EEENS0_IdLi4ELi1ELi0ELi4ELi1EEELi0EEEEERKNS_9EigenBaseIT_EE.exit, %_ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit.thread +77: ; preds = %_ZN5Eigen6MatrixIdLi17ELi1ELi0ELi17ELi1EEC2INS_7ProductINS0_IdLi17ELi4ELi1ELi17ELi4EEENS0_IdLi4ELi1ELi0ELi4ELi1EEELi0EEEEERKNS_9EigenBaseIT_EE.exit, %_ZNK6open3d13visualization14ViewTrajectory11NumOfFramesEv.exit.thread call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %4) #28 ret void } diff --git a/bench/opencv/optimized/serialization.ll b/bench/opencv/optimized/serialization.ll index 0bc26a870cb..79ba4cf2bf3 100644 --- a/bench/opencv/optimized/serialization.ll +++ b/bench/opencv/optimized/serialization.ll @@ -58841,14 +58841,14 @@ _ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4 %11 = getelementptr inbounds nuw i8, ptr %0, i64 64 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(65) %11, i8 0, i64 65, i1 false) store i64 3, ptr %5, align 8, !tbaa !235 - br label %71 + br label %76 -12: ; preds = %1 +12: ; preds = %1 call void @llvm.lifetime.start.p0(i64 208, ptr nonnull %2) #31 - %13 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %16 = getelementptr inbounds nuw i8, ptr %2, i64 8 %14 = getelementptr inbounds nuw i8, ptr %2, i64 24 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(208) %2, i8 0, i64 112, i1 false) - store ptr %14, ptr %13, align 8, !tbaa !87 + store ptr %14, ptr %16, align 8, !tbaa !87 %15 = getelementptr inbounds nuw i8, ptr %2, i64 64 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %15, i8 0, i64 32, i1 false) %16 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -58857,137 +58857,137 @@ _ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4 %18 = getelementptr inbounds nuw i8, ptr %0, i64 32 br i1 %.not.i11, label %._ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit_crit_edge, label %19 -19: ; preds = %12 - %20 = getelementptr inbounds nuw [8 x ptr], ptr @constinit.110, i64 0, i64 %17 - %21 = load ptr, ptr %20, align 8, !tbaa !261 +24: ; preds = %12 + %25 = getelementptr inbounds nuw [8 x ptr], ptr @constinit.110, i64 0, i64 %17 + %26 = load ptr, ptr %25, align 8, !tbaa !261 invoke void %21(ptr noundef nonnull %18) - to label %22 unwind label %52 + to label %22 unwind label %57 -22: ; preds = %19 - %23 = load i64, ptr %2, align 8, !tbaa !193 - %24 = getelementptr inbounds nuw [8 x ptr], ptr @constinit.113, i64 0, i64 %23 - %25 = load ptr, ptr %24, align 8, !tbaa !261 +27: ; preds = %24 + %28 = load i64, ptr %2, align 8, !tbaa !193 + %29 = getelementptr inbounds nuw [8 x ptr], ptr @constinit.113, i64 0, i64 %28 + %30 = load ptr, ptr %29, align 8, !tbaa !261 invoke void %25(ptr noundef nonnull %18, ptr noundef nonnull %13) - to label %26 unwind label %52 + to label %26 unwind label %57 -26: ; preds = %22 - %27 = load i64, ptr %2, align 8, !tbaa !193 - store i64 %27, ptr %16, align 8, !tbaa !193 +31: ; preds = %27 + %32 = load i64, ptr %2, align 8, !tbaa !193 + store i64 %32, ptr %16, align 8, !tbaa !193 br label %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit ._ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit_crit_edge: ; preds = %12 - %28 = load ptr, ptr %18, align 8, !tbaa !39 - %29 = getelementptr inbounds nuw i8, ptr %0, i64 48 - %30 = icmp eq ptr %28, %29 - br i1 %30, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i.i + %33 = load ptr, ptr %18, align 8, !tbaa !39 + %34 = getelementptr inbounds nuw i8, ptr %0, i64 48 + %35 = icmp eq ptr %33, %34 + br i1 %35, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i: ; preds = %._ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit_crit_edge - %31 = getelementptr inbounds nuw i8, ptr %0, i64 40 - %32 = load i64, ptr %31, align 8, !tbaa !44 - %33 = icmp ult i64 %32, 16 - call void @llvm.assume(i1 %33) + %36 = getelementptr inbounds nuw i8, ptr %0, i64 40 + %37 = load i64, ptr %36, align 8, !tbaa !44 + %38 = icmp ult i64 %37, 16 + call void @llvm.assume(i1 %38) br label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i.i: ; preds = %._ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit_crit_edge, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i - %34 = getelementptr inbounds nuw i8, ptr %2, i64 16 + %39 = getelementptr inbounds nuw i8, ptr %2, i64 16 %.not22.i.i.i = icmp eq ptr %13, %18 br i1 %.not22.i.i.i, label %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6move_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeESJ_.exit, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i.i, !prof !125 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i.i - %35 = getelementptr inbounds nuw i8, ptr %0, i64 40 - store i64 0, ptr %35, align 8, !tbaa !44 - store i8 0, ptr %28, align 1, !tbaa !56 + %40 = getelementptr inbounds nuw i8, ptr %0, i64 40 + store i64 0, ptr %40, align 8, !tbaa !44 + store i8 0, ptr %33, align 1, !tbaa !56 %.pre.i.i.i = load ptr, ptr %13, align 8, !tbaa !39 br label %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6move_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeESJ_.exit _ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6move_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeESJ_.exit: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i.i - %36 = phi ptr [ %.pre.i.i.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i.i ], [ %14, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i.i ] - store i64 0, ptr %34, align 8, !tbaa !44 - store i8 0, ptr %36, align 1, !tbaa !56 - %37 = getelementptr inbounds nuw i8, ptr %0, i64 64 - %38 = getelementptr inbounds nuw i8, ptr %2, i64 40 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull align 8 dereferenceable(24) %38, i64 24, i1 false) - %39 = getelementptr inbounds nuw i8, ptr %0, i64 88 - %40 = load double, ptr %15, align 8, !tbaa !27 - store double %40, ptr %39, align 8, !tbaa !27 - %41 = getelementptr inbounds nuw i8, ptr %2, i64 72 - %42 = load double, ptr %41, align 8, !tbaa !27 - %43 = getelementptr inbounds nuw i8, ptr %0, i64 96 - store double %42, ptr %43, align 8, !tbaa !27 - %44 = getelementptr inbounds nuw i8, ptr %2, i64 80 - %45 = load double, ptr %44, align 8, !tbaa !27 - %46 = getelementptr inbounds nuw i8, ptr %0, i64 104 - store double %45, ptr %46, align 8, !tbaa !27 - %47 = getelementptr inbounds nuw i8, ptr %2, i64 88 - %48 = load double, ptr %47, align 8, !tbaa !27 - %49 = getelementptr inbounds nuw i8, ptr %0, i64 112 - store double %48, ptr %49, align 8, !tbaa !27 - %50 = getelementptr inbounds nuw i8, ptr %0, i64 120 - %51 = getelementptr inbounds nuw i8, ptr %2, i64 96 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %50, ptr noundef nonnull align 8 dereferenceable(9) %51, i64 9, i1 false) + %41 = phi ptr [ %.pre.i.i.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm.exit.i.i.i ], [ %14, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i.i.i ] + store i64 0, ptr %39, align 8, !tbaa !44 + store i8 0, ptr %41, align 1, !tbaa !56 + %42 = getelementptr inbounds nuw i8, ptr %0, i64 64 + %43 = getelementptr inbounds nuw i8, ptr %2, i64 40 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %42, ptr noundef nonnull align 8 dereferenceable(24) %43, i64 24, i1 false) + %44 = getelementptr inbounds nuw i8, ptr %0, i64 88 + %45 = load double, ptr %15, align 8, !tbaa !27 + store double %45, ptr %44, align 8, !tbaa !27 + %46 = getelementptr inbounds nuw i8, ptr %2, i64 72 + %47 = load double, ptr %46, align 8, !tbaa !27 + %48 = getelementptr inbounds nuw i8, ptr %0, i64 96 + store double %47, ptr %48, align 8, !tbaa !27 + %49 = getelementptr inbounds nuw i8, ptr %2, i64 80 + %50 = load double, ptr %49, align 8, !tbaa !27 + %51 = getelementptr inbounds nuw i8, ptr %0, i64 104 + store double %50, ptr %51, align 8, !tbaa !27 + %52 = getelementptr inbounds nuw i8, ptr %2, i64 88 + %53 = load double, ptr %52, align 8, !tbaa !27 + %54 = getelementptr inbounds nuw i8, ptr %0, i64 112 + store double %53, ptr %54, align 8, !tbaa !27 + %55 = getelementptr inbounds nuw i8, ptr %0, i64 120 + %56 = getelementptr inbounds nuw i8, ptr %2, i64 96 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %55, ptr noundef nonnull align 8 dereferenceable(9) %56, i64 9, i1 false) %.pre = load i64, ptr %2, align 8, !tbaa !193 br label %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit -52: ; preds = %22, %19 - %53 = landingpad { ptr, i32 } +57: ; preds = %27, %24 + %58 = landingpad { ptr, i32 } catch ptr null - %54 = extractvalue { ptr, i32 } %53, 0 - call void @__clang_call_terminate(ptr %54) #35 + %59 = extractvalue { ptr, i32 } %58, 0 + call void @__clang_call_terminate(ptr %59) #35 unreachable -_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit: ; preds = %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6move_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeESJ_.exit, %26 - %55 = phi i64 [ %.pre, %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6move_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeESJ_.exit ], [ %27, %26 ] - %56 = getelementptr inbounds nuw [8 x ptr], ptr @constinit.110, i64 0, i64 %55 - %57 = load ptr, ptr %56, align 8, !tbaa !261 +_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit: ; preds = %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6move_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeESJ_.exit, %31 + %60 = phi i64 [ %.pre, %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6move_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeESJ_.exit ], [ %32, %26 ] + %61 = getelementptr inbounds nuw [8 x ptr], ptr @constinit.110, i64 0, i64 %60 + %62 = load ptr, ptr %61, align 8, !tbaa !261 invoke void %57(ptr noundef nonnull %13) - to label %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEED2Ev.exit12 unwind label %58 + to label %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEED2Ev.exit12 unwind label %63 -58: ; preds = %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit - %59 = landingpad { ptr, i32 } +63: ; preds = %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit + %64 = landingpad { ptr, i32 } catch ptr null - %60 = extractvalue { ptr, i32 } %59, 0 - call void @__clang_call_terminate(ptr %60) #35 + %65 = extractvalue { ptr, i32 } %64, 0 + call void @__clang_call_terminate(ptr %65) #35 unreachable _ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEED2Ev.exit12: ; preds = %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEEaSEOSD_.exit call void @llvm.lifetime.end.p0(i64 208, ptr nonnull %2) #31 - br label %71 + br label %76 -61: ; preds = %1 +66: ; preds = %1 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #31 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #31 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull @.str.69, ptr noundef nonnull align 1 dereferenceable(1) %4) invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -2, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull @__func__._ZN2cv6detail10VectorRefTIiE5resetEv, ptr noundef nonnull @.str.120, i32 noundef 174) #32 - to label %62 unwind label %63 + to label %62 unwind label %68 -62: ; preds = %61 +67: ; preds = %66 unreachable -63: ; preds = %61 - %64 = landingpad { ptr, i32 } +68: ; preds = %66 + %69 = landingpad { ptr, i32 } cleanup - %65 = load ptr, ptr %3, align 8, !tbaa !39 - %66 = getelementptr inbounds nuw i8, ptr %3, i64 16 - %67 = icmp eq ptr %65, %66 - br i1 %67, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i15, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i14 + %70 = load ptr, ptr %3, align 8, !tbaa !39 + %71 = getelementptr inbounds nuw i8, ptr %3, i64 16 + %72 = icmp eq ptr %70, %71 + br i1 %72, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i15, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i14 -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i15: ; preds = %63 - %68 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %69 = load i64, ptr %68, align 8, !tbaa !44 - %70 = icmp ult i64 %69, 16 - call void @llvm.assume(i1 %70) +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i15: ; preds = %68 + %73 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %74 = load i64, ptr %73, align 8, !tbaa !44 + %75 = icmp ult i64 %74, 16 + call void @llvm.assume(i1 %75) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit16 -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i14: ; preds = %63 - call void @_ZdlPv(ptr noundef %65) #33 +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i14: ; preds = %68 + call void @_ZdlPv(ptr noundef %70) #33 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit16 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit16: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i14, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i15 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #31 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #31 - resume { ptr, i32 } %64 + resume { ptr, i32 } %69 -71: ; preds = %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEED2Ev.exit12, %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6dtor_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeE.exit +76: ; preds = %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEED2Ev.exit12, %_ZN2cv4util7variantIJNS_4gapi3wip4draw4TextENS4_5FTextENS4_4RectENS4_6CircleENS4_4LineENS4_6MosaicENS4_5ImageENS4_4PolyEEE6dtor_hIS5_E4helpEPNSt15aligned_storageILm200ELm8EE4typeE.exit ret void } diff --git a/bench/openusd/optimized/unitTestDelegate.ll b/bench/openusd/optimized/unitTestDelegate.ll index 3a66a47ffcb..898624493f2 100644 --- a/bench/openusd/optimized/unitTestDelegate.ll +++ b/bench/openusd/optimized/unitTestDelegate.ll @@ -10886,8 +10886,8 @@ define void @_ZN32pxrInternal_v0_24__pxrReserved__18HdUnitTestDelegate9AddCamera invoke void @_ZN32pxrInternal_v0_24__pxrReserved__32HdPrimTypeTokens_StaticTokenTypeC1Ev(ptr noundef nonnull align 8 dereferenceable(352) %9) to label %_ZN32pxrInternal_v0_24__pxrReserved__27Tf_StaticDataDefaultFactoryINS_32HdPrimTypeTokens_StaticTokenTypeEE3NewEv.exit.i.i.i unwind label %10 -common.resume: ; preds = %31, %10 - %common.resume.op = phi { ptr, i32 } [ %11, %10 ], [ %32, %31 ] +common.resume: ; preds = %32, %10 + %common.resume.op = phi { ptr, i32 } [ %11, %10 ], [ %33, %31 ] resume { ptr, i32 } %common.resume.op 10: ; preds = %8 @@ -10916,7 +10916,7 @@ _ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_Stati %20 = getelementptr inbounds nuw i8, ptr %0, i64 312 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %3, i8 0, i64 72, i1 false) %21 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZNSt3mapIN32pxrInternal_v0_24__pxrReserved__7SdfPathENS0_18HdUnitTestDelegate7_CameraESt4lessIS1_ESaISt4pairIKS1_S3_EEEixERS7_(ptr noundef nonnull align 8 dereferenceable(48) %20, ptr noundef nonnull align 4 dereferenceable(8) %1) - to label %22 unwind label %31 + to label %22 unwind label %32 22: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_StaticTokenTypeENS_27Tf_StaticDataDefaultFactoryIS1_EEEptEv.exit %23 = load ptr, ptr %21, align 8 @@ -10946,8 +10946,8 @@ _ZN32pxrInternal_v0_24__pxrReserved__18HdUnitTestDelegate7_CameraD2Ev.exit: ; pr tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %30, i8 0, i64 64, i1 false) ret void -31: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_StaticTokenTypeENS_27Tf_StaticDataDefaultFactoryIS1_EEEptEv.exit - %32 = landingpad { ptr, i32 } +32: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_StaticTokenTypeENS_27Tf_StaticDataDefaultFactoryIS1_EEEptEv.exit + %33 = landingpad { ptr, i32 } cleanup call void @_ZN32pxrInternal_v0_24__pxrReserved__18HdUnitTestDelegate7_CameraD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %3) #23 br label %common.resume diff --git a/bench/openusd/optimized/xformCache.ll b/bench/openusd/optimized/xformCache.ll index 6c066548335..b04024a28c7 100644 --- a/bench/openusd/optimized/xformCache.ll +++ b/bench/openusd/optimized/xformCache.ll @@ -840,141 +840,141 @@ _ZNSt4pairIKN32pxrInternal_v0_24__pxrReserved__7UsdPrimENS0_17UsdGeomXformCache6 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(129) %50, i8 0, i64 129, i1 false) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) store ptr %0, ptr %5, align 8 - %51 = invoke { ptr, i8 } @_ZNSt10_HashtableIN32pxrInternal_v0_24__pxrReserved__7UsdPrimESt4pairIKS1_NS0_17UsdGeomXformCache6_EntryEESaIS6_ENSt8__detail10_Select1stESt8equal_toIS1_ENS0_6TfHashENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb1ELb0ELb1EEEE16_M_insert_uniqueIRS3_RKS6_NS8_10_AllocNodeISaINS8_10_Hash_nodeIS6_Lb1EEEEEEEES2_INS8_14_Node_iteratorIS6_Lb0ELb1EEEbEOT_OT0_RKT1_(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(200) %6, ptr noundef nonnull align 8 dereferenceable(200) %6, ptr noundef nonnull align 8 dereferenceable(8) %5) - to label %_ZN32pxrInternal_v0_24__pxrReserved__17UsdGeomXformCache6_EntryD2Ev.exit unwind label %105 + %52 = invoke { ptr, i8 } @_ZNSt10_HashtableIN32pxrInternal_v0_24__pxrReserved__7UsdPrimESt4pairIKS1_NS0_17UsdGeomXformCache6_EntryEESaIS6_ENSt8__detail10_Select1stESt8equal_toIS1_ENS0_6TfHashENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb1ELb0ELb1EEEE16_M_insert_uniqueIRS3_RKS6_NS8_10_AllocNodeISaINS8_10_Hash_nodeIS6_Lb1EEEEEEEES2_INS8_14_Node_iteratorIS6_Lb0ELb1EEEbEOT_OT0_RKT1_(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(200) %6, ptr noundef nonnull align 8 dereferenceable(200) %6, ptr noundef nonnull align 8 dereferenceable(8) %5) + to label %_ZN32pxrInternal_v0_24__pxrReserved__17UsdGeomXformCache6_EntryD2Ev.exit unwind label %106 _ZN32pxrInternal_v0_24__pxrReserved__17UsdGeomXformCache6_EntryD2Ev.exit: ; preds = %_ZNSt4pairIKN32pxrInternal_v0_24__pxrReserved__7UsdPrimENS0_17UsdGeomXformCache6_EntryEEC2IRS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS9_SA_EEEbE4typeELb1EEEOS9_OSA_.exit call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) - %.fca.0.extract = extractvalue { ptr, i8 } %51, 0 - %.fca.1.extract = extractvalue { ptr, i8 } %51, 1 + %.fca.0.extract = extractvalue { ptr, i8 } %52, 0 + %.fca.1.extract = extractvalue { ptr, i8 } %52, 1 call void @_ZNSt4pairIKN32pxrInternal_v0_24__pxrReserved__7UsdPrimENS0_17UsdGeomXformCache6_EntryEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %6) #16 - %52 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 40 - %53 = trunc i8 %.fca.1.extract to i1 - br i1 %53, label %54, label %112 + %53 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 40 + %54 = trunc i8 %.fca.1.extract to i1 + br i1 %54, label %55, label %113 -54: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__17UsdGeomXformCache6_EntryD2Ev.exit +55: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__17UsdGeomXformCache6_EntryD2Ev.exit call void @_ZN32pxrInternal_v0_24__pxrReserved__13UsdSchemaBaseC2ERKNS_7UsdPrimE(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(32) %1) store ptr getelementptr inbounds nuw inrange(-16, 48) (i8, ptr @_ZTVN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformableE, i64 16), ptr %8, align 8 - %55 = getelementptr inbounds nuw i8, ptr %8, i64 8 - %56 = load ptr, ptr %55, align 8 - %.not.i.i = icmp eq ptr %56, null + %56 = getelementptr inbounds nuw i8, ptr %8, i64 8 + %57 = load ptr, ptr %56, align 8 + %.not.i.i = icmp eq ptr %57, null br i1 %.not.i.i, label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit, label %_ZNK32pxrInternal_v0_24__pxrReserved__18Usd_PrimDataHandlecvbEv.exit.i -_ZNK32pxrInternal_v0_24__pxrReserved__18Usd_PrimDataHandlecvbEv.exit.i: ; preds = %54 - %57 = getelementptr inbounds nuw i8, ptr %56, i64 56 - %58 = load i64, ptr %57, align 8 - %59 = and i64 %58, 2048 - %.not3.i.i = icmp eq i64 %59, 0 - br i1 %.not3.i.i, label %60, label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit +_ZNK32pxrInternal_v0_24__pxrReserved__18Usd_PrimDataHandlecvbEv.exit.i: ; preds = %55 + %58 = getelementptr inbounds nuw i8, ptr %57, i64 56 + %59 = load i64, ptr %58, align 8 + %60 = and i64 %59, 2048 + %.not3.i.i = icmp eq i64 %60, 0 + br i1 %.not3.i.i, label %61, label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit -60: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__18Usd_PrimDataHandlecvbEv.exit.i - %61 = load ptr, ptr getelementptr inbounds nuw inrange(-48, 16) (i8, ptr @_ZTVN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformableE, i64 48), align 8 - %62 = invoke noundef zeroext i1 %61(ptr noundef nonnull align 8 dereferenceable(24) %8) - to label %_ZNK32pxrInternal_v0_24__pxrReserved__13UsdSchemaBasecvbEv.exit unwind label %107 +61: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__18Usd_PrimDataHandlecvbEv.exit.i + %62 = load ptr, ptr getelementptr inbounds nuw inrange(-48, 16) (i8, ptr @_ZTVN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformableE, i64 48), align 8 + %63 = invoke noundef zeroext i1 %61(ptr noundef nonnull align 8 dereferenceable(24) %8) + to label %_ZNK32pxrInternal_v0_24__pxrReserved__13UsdSchemaBasecvbEv.exit unwind label %108 -_ZNK32pxrInternal_v0_24__pxrReserved__13UsdSchemaBasecvbEv.exit: ; preds = %60 - br i1 %62, label %63, label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit +_ZNK32pxrInternal_v0_24__pxrReserved__13UsdSchemaBasecvbEv.exit: ; preds = %61 + br i1 %63, label %64, label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit -63: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__13UsdSchemaBasecvbEv.exit +64: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__13UsdSchemaBasecvbEv.exit invoke void @_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(25) %9, ptr noundef nonnull align 8 dereferenceable(24) %8) - to label %64 unwind label %107 - -64: ; preds = %63 - %65 = load ptr, ptr %52, align 8 - %66 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 48 - %67 = load ptr, ptr %66, align 8 - %68 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 56 - %69 = load ptr, ptr %68, align 8 - %70 = load ptr, ptr %9, align 8 - store ptr %70, ptr %52, align 8 - %71 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %72 = load ptr, ptr %71, align 8 - store ptr %72, ptr %66, align 8 - %73 = getelementptr inbounds nuw i8, ptr %9, i64 16 - %74 = load ptr, ptr %73, align 8 - store ptr %74, ptr %68, align 8 - %.not4.i.i.i.i.i.i.i = icmp eq ptr %65, %67 + to label %64 unwind label %108 + +65: ; preds = %64 + %66 = load ptr, ptr %53, align 8 + %67 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 48 + %68 = load ptr, ptr %67, align 8 + %69 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 56 + %70 = load ptr, ptr %69, align 8 + %71 = load ptr, ptr %9, align 8 + store ptr %71, ptr %53, align 8 + %72 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %73 = load ptr, ptr %72, align 8 + store ptr %73, ptr %67, align 8 + %74 = getelementptr inbounds nuw i8, ptr %9, i64 16 + %75 = load ptr, ptr %74, align 8 + store ptr %75, ptr %69, align 8 + %.not4.i.i.i.i.i.i.i = icmp eq ptr %66, %68 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(25) %9, i8 0, i64 24, i1 false) br i1 %.not4.i.i.i.i.i.i.i, label %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i.i.i, label %.lr.ph.i.i.i.i.i.i.i -.lr.ph.i.i.i.i.i.i.i: ; preds = %64, %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i - %.05.i.i.i.i.i.i.i = phi ptr [ %81, %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i ], [ %65, %64 ] +.lr.ph.i.i.i.i.i.i.i: ; preds = %65, %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i + %.05.i.i.i.i.i.i.i = phi ptr [ %82, %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i ], [ %66, %64 ] call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) - %75 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i.i.i, i64 120 - %76 = load i8, ptr %75, align 8 - %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = icmp eq i8 %76, -1 - br i1 %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, label %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i, label %77 + %76 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i.i.i, i64 120 + %77 = load i8, ptr %76, align 8 + %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = icmp eq i8 %77, -1 + br i1 %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, label %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i, label %78 -77: ; preds = %.lr.ph.i.i.i.i.i.i.i +78: ; preds = %.lr.ph.i.i.i.i.i.i.i invoke void @_ZSt10__do_visitIvZNSt8__detail9__variant16_Variant_storageILb0EJN32pxrInternal_v0_24__pxrReserved__12UsdAttributeENS3_17UsdAttributeQueryEEE8_M_resetEvEUlOT_E_JRSt7variantIJS4_S5_EEEEDcOT0_DpOT1_(ptr noundef nonnull align 1 dereferenceable(1) %4, ptr noundef nonnull align 8 dereferenceable(133) %.05.i.i.i.i.i.i.i) - to label %.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i unwind label %78 + to label %.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i unwind label %79 -.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i: ; preds = %77 - store i8 -1, ptr %75, align 8 +.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i: ; preds = %78 + store i8 -1, ptr %76, align 8 br label %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i -78: ; preds = %77 - %79 = landingpad { ptr, i32 } +79: ; preds = %78 + %80 = landingpad { ptr, i32 } catch ptr null - %80 = extractvalue { ptr, i32 } %79, 0 - call void @__clang_call_terminate(ptr %80) #17 + %81 = extractvalue { ptr, i32 } %80, 0 + call void @__clang_call_terminate(ptr %81) #17 unreachable _ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i: ; preds = %.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) - %81 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i.i.i, i64 136 - %.not.i.i.i.i.i.i.i = icmp eq ptr %81, %67 + %82 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i.i.i, i64 136 + %.not.i.i.i.i.i.i.i = icmp eq ptr %82, %68 br i1 %.not.i.i.i.i.i.i.i, label %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i.i.i, label %.lr.ph.i.i.i.i.i.i.i, !llvm.loop !7 -_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i.i.i: ; preds = %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i, %64 - %.not.i.i.i.i.i.i12 = icmp eq ptr %65, null - br i1 %.not.i.i.i.i.i.i12, label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit, label %82 +_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i.i.i: ; preds = %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i.i.i, %65 + %.not.i.i.i.i.i.i12 = icmp eq ptr %66, null + br i1 %.not.i.i.i.i.i.i12, label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit, label %83 -82: ; preds = %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i.i.i - %83 = ptrtoint ptr %69 to i64 - %84 = ptrtoint ptr %65 to i64 - %85 = sub i64 %83, %84 - call void @_ZdlPvm(ptr noundef nonnull %65, i64 noundef %85) #18 +83: ; preds = %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i.i.i + %84 = ptrtoint ptr %70 to i64 + %85 = ptrtoint ptr %66 to i64 + %86 = sub i64 %84, %85 + call void @_ZdlPvm(ptr noundef nonnull %66, i64 noundef %86) #18 br label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit -_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit: ; preds = %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i.i.i, %82 - %86 = getelementptr inbounds nuw i8, ptr %9, i64 24 - %87 = load i8, ptr %86, align 8 - %88 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 64 - %89 = and i8 %87, 1 - store i8 %89, ptr %88, align 8 - %90 = load ptr, ptr %9, align 8 - %91 = load ptr, ptr %71, align 8 - %.not4.i.i.i.i.i = icmp eq ptr %90, %91 +_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit: ; preds = %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i.i.i, %83 + %87 = getelementptr inbounds nuw i8, ptr %9, i64 24 + %88 = load i8, ptr %87, align 8 + %89 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 64 + %90 = and i8 %88, 1 + store i8 %90, ptr %89, align 8 + %91 = load ptr, ptr %9, align 8 + %92 = load ptr, ptr %72, align 8 + %.not4.i.i.i.i.i = icmp eq ptr %91, %92 br i1 %.not4.i.i.i.i.i, label %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i, label %.lr.ph.i.i.i.i.i .lr.ph.i.i.i.i.i: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit, %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i - %.05.i.i.i.i.i = phi ptr [ %98, %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i ], [ %90, %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit ] + %.05.i.i.i.i.i = phi ptr [ %99, %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i ], [ %91, %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit ] call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) - %92 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 120 - %93 = load i8, ptr %92, align 8 - %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = icmp eq i8 %93, -1 - br i1 %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, label %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i, label %94 + %93 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 120 + %94 = load i8, ptr %93, align 8 + %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = icmp eq i8 %94, -1 + br i1 %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, label %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i, label %95 -94: ; preds = %.lr.ph.i.i.i.i.i +95: ; preds = %.lr.ph.i.i.i.i.i invoke void @_ZSt10__do_visitIvZNSt8__detail9__variant16_Variant_storageILb0EJN32pxrInternal_v0_24__pxrReserved__12UsdAttributeENS3_17UsdAttributeQueryEEE8_M_resetEvEUlOT_E_JRSt7variantIJS4_S5_EEEEDcOT0_DpOT1_(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 8 dereferenceable(133) %.05.i.i.i.i.i) - to label %.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i unwind label %95 + to label %.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i unwind label %96 -.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i: ; preds = %94 - store i8 -1, ptr %92, align 8 +.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i: ; preds = %95 + store i8 -1, ptr %93, align 8 br label %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i -95: ; preds = %94 - %96 = landingpad { ptr, i32 } +96: ; preds = %95 + %97 = landingpad { ptr, i32 } catch ptr null - %97 = extractvalue { ptr, i32 } %96, 0 - call void @__clang_call_terminate(ptr %97) #17 + %98 = extractvalue { ptr, i32 } %97, 0 + call void @__clang_call_terminate(ptr %98) #17 unreachable _ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i: ; preds = %.noexc.i.i.i.i.i.i.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) - %98 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 136 - %.not.i.i.i.i.i13 = icmp eq ptr %98, %91 + %99 = getelementptr inbounds nuw i8, ptr %.05.i.i.i.i.i, i64 136 + %.not.i.i.i.i.i13 = icmp eq ptr %99, %92 br i1 %.not.i.i.i.i.i13, label %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exitthread-pre-split.i.i, label %.lr.ph.i.i.i.i.i, !llvm.loop !7 _ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exitthread-pre-split.i.i: ; preds = %_ZSt8_DestroyIN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpEEvPT_.exit.i.i.i.i.i @@ -982,44 +982,44 @@ _ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSa br label %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i _ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i: ; preds = %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exitthread-pre-split.i.i, %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit - %99 = phi ptr [ %.pr.i.i, %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exitthread-pre-split.i.i ], [ %90, %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit ] - %.not.i.i.i.i = icmp eq ptr %99, null - br i1 %.not.i.i.i.i, label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit, label %100 - -100: ; preds = %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i - %101 = load ptr, ptr %73, align 8 - %102 = ptrtoint ptr %101 to i64 - %103 = ptrtoint ptr %99 to i64 - %104 = sub i64 %102, %103 - call void @_ZdlPvm(ptr noundef nonnull %99, i64 noundef %104) #18 + %100 = phi ptr [ %.pr.i.i, %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exitthread-pre-split.i.i ], [ %91, %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryaSEOS1_.exit ] + %.not.i.i.i.i = icmp eq ptr %100, null + br i1 %.not.i.i.i.i, label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit, label %101 + +101: ; preds = %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i + %102 = load ptr, ptr %74, align 8 + %103 = ptrtoint ptr %102 to i64 + %104 = ptrtoint ptr %100 to i64 + %105 = sub i64 %103, %104 + call void @_ZdlPvm(ptr noundef nonnull %100, i64 noundef %105) #18 br label %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit -105: ; preds = %_ZNSt4pairIKN32pxrInternal_v0_24__pxrReserved__7UsdPrimENS0_17UsdGeomXformCache6_EntryEEC2IRS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS9_SA_EEEbE4typeELb1EEEOS9_OSA_.exit - %106 = landingpad { ptr, i32 } +106: ; preds = %_ZNSt4pairIKN32pxrInternal_v0_24__pxrReserved__7UsdPrimENS0_17UsdGeomXformCache6_EntryEEC2IRS2_S4_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS9_SA_EEEbE4typeELb1EEEOS9_OSA_.exit + %107 = landingpad { ptr, i32 } cleanup call void @_ZNSt4pairIKN32pxrInternal_v0_24__pxrReserved__7UsdPrimENS0_17UsdGeomXformCache6_EntryEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %6) #16 call void @_ZN32pxrInternal_v0_24__pxrReserved__17UsdGeomXformCache6_EntryD2Ev(ptr noundef nonnull align 8 dereferenceable(161) %7) #16 - br label %113 + br label %114 -107: ; preds = %60, %63 - %108 = landingpad { ptr, i32 } +108: ; preds = %61, %64 + %109 = landingpad { ptr, i32 } cleanup call void @_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformableD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #16 - br label %113 + br label %114 -_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit: ; preds = %54, %_ZNK32pxrInternal_v0_24__pxrReserved__18Usd_PrimDataHandlecvbEv.exit.i, %100, %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i, %_ZNK32pxrInternal_v0_24__pxrReserved__13UsdSchemaBasecvbEv.exit +_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit: ; preds = %55, %_ZNK32pxrInternal_v0_24__pxrReserved__18Usd_PrimDataHandlecvbEv.exit.i, %101, %_ZSt8_DestroyIPN32pxrInternal_v0_24__pxrReserved__14UsdGeomXformOpES1_EvT_S3_RSaIT0_E.exit.i.i, %_ZNK32pxrInternal_v0_24__pxrReserved__13UsdSchemaBasecvbEv.exit call void @_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformableD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #16 - %109 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 72 - %110 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d11SetDiagonalEd(ptr noundef nonnull align 8 dereferenceable(128) %109, double noundef 1.000000e+00) - %111 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 200 - store i8 0, ptr %111, align 8 - br label %112 + %110 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 72 + %111 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d11SetDiagonalEd(ptr noundef nonnull align 8 dereferenceable(128) %110, double noundef 1.000000e+00) + %112 = getelementptr inbounds nuw i8, ptr %.fca.0.extract, i64 200 + store i8 0, ptr %112, align 8 + br label %113 -112: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit, %_ZN32pxrInternal_v0_24__pxrReserved__17UsdGeomXformCache6_EntryD2Ev.exit - ret ptr %52 +113: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__16UsdGeomXformable10XformQueryD2Ev.exit, %_ZN32pxrInternal_v0_24__pxrReserved__17UsdGeomXformCache6_EntryD2Ev.exit + ret ptr %53 -113: ; preds = %107, %105 - %.pn = phi { ptr, i32 } [ %108, %107 ], [ %106, %105 ] +114: ; preds = %108, %106 + %.pn = phi { ptr, i32 } [ %109, %107 ], [ %107, %105 ] resume { ptr, i32 } %.pn } diff --git a/bench/pingora-rs/optimized/2ov174hlbjn2zukn47jy5qk00.ll b/bench/pingora-rs/optimized/2ov174hlbjn2zukn47jy5qk00.ll index 6f9538465e0..da597bc5e7c 100644 --- a/bench/pingora-rs/optimized/2ov174hlbjn2zukn47jy5qk00.ll +++ b/bench/pingora-rs/optimized/2ov174hlbjn2zukn47jy5qk00.ll @@ -498,41 +498,41 @@ define hidden { i64, i64 } @"_ZN36_$LT$T$u20$as$u20$core..any..Any$GT$7type_id17 define hidden void @"_ZN36_$LT$str$u20$as$u20$nix..NixPath$GT$13with_nix_path17h02d74474d0448337E"(ptr dead_on_unwind noalias noundef writable writeonly sret([116 x i8]) align 4 captures(none) dereferenceable(116) initializes((0, 2), (4, 8)) %0, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) unnamed_addr #0 personality ptr @rust_eh_personality { %.sroa.5.i.i = alloca [108 x i8], align 4 %.sroa.7.i = alloca [104 x i8], align 4 - %4 = alloca [24 x i8], align 8 - %5 = alloca [1024 x i8], align 1 + %5 = alloca [24 x i8], align 8 + %6 = alloca [1024 x i8], align 1 tail call void @llvm.experimental.noalias.scope.decl(metadata !18) - %6 = icmp ugt i64 %2, 1023 - br i1 %6, label %12, label %7, !prof !4 + %7 = icmp ugt i64 %2, 1023 + br i1 %7, label %13, label %8, !prof !4 -7: ; preds = %3 - call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %5), !noalias !21 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %5, ptr nonnull readonly align 1 %1, i64 %2, i1 false), !noalias !18 - %8 = getelementptr inbounds nuw i8, ptr %5, i64 %2 - store i8 0, ptr %8, align 1, !noalias !21 - call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4), !noalias !21 - %9 = add nuw nsw i64 %2, 1 - call void @_ZN4core3ffi5c_str4CStr19from_bytes_with_nul17h8f4bf3b6506729ebE(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 1 %5, i64 noundef %9), !noalias !21 - %10 = load i64, ptr %4, align 8, !range !23, !noalias !21, !noundef !3 - %11 = trunc nuw i64 %10 to i1 - br i1 %11, label %13, label %15 +8: ; preds = %3 + call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %6), !noalias !21 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %6, ptr nonnull readonly align 1 %1, i64 %2, i1 false), !noalias !18 + %9 = getelementptr inbounds nuw i8, ptr %6, i64 %2 + store i8 0, ptr %9, align 1, !noalias !21 + call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5), !noalias !21 + %10 = add nuw nsw i64 %2, 1 + call void @_ZN4core3ffi5c_str4CStr19from_bytes_with_nul17h8f4bf3b6506729ebE(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 1 %6, i64 noundef %10), !noalias !21 + %11 = load i64, ptr %5, align 8, !range !23, !noalias !21, !noundef !3 + %12 = trunc nuw i64 %11 to i1 + br i1 %12, label %14, label %16 -12: ; preds = %3 +13: ; preds = %3 tail call void @_ZN3nix24with_nix_path_allocating17h87a8e8b9e0eac605E(ptr noalias noundef nonnull sret([116 x i8]) align 4 captures(none) dereferenceable(116) %0, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) br label %"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17hf6cd7adc75cbff82E.exit" -13: ; preds = %7 - %14 = getelementptr inbounds nuw i8, ptr %0, i64 4 - store i32 22, ptr %14, align 4, !alias.scope !18, !noalias !24 +14: ; preds = %8 + %15 = getelementptr inbounds nuw i8, ptr %0, i64 4 + store i32 22, ptr %15, align 4, !alias.scope !18, !noalias !24 store i16 2, ptr %0, align 4, !alias.scope !18, !noalias !24 - call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %5), !noalias !21 - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !21 + call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %6), !noalias !21 + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !21 br label %"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17hf6cd7adc75cbff82E.exit" -15: ; preds = %7 - %16 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %17 = load ptr, ptr %16, align 8, !noalias !21, !nonnull !3, !align !25, !noundef !3 - %18 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %19 = load i64, ptr %18, align 8, !noalias !21, !noundef !3 +16: ; preds = %8 + %17 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %18 = load ptr, ptr %17, align 8, !noalias !21, !nonnull !3, !align !25, !noundef !3 + %19 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %20 = load i64, ptr %19, align 8, !noalias !21, !noundef !3 call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %.sroa.7.i) call void @llvm.lifetime.start.p0(i64 108, ptr nonnull %.sroa.5.i.i) call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(108) %.sroa.5.i.i, i8 0, i64 108, i1 false), !noalias !26 @@ -540,8 +540,8 @@ define hidden void @"_ZN36_$LT$str$u20$as$u20$nix..NixPath$GT$13with_nix_path17h %21 = icmp ugt i64 %20, 107 br i1 %21, label %"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h3bfffb2b4a229441E.exit.i", label %22 -22: ; preds = %15 - %23 = trunc nuw nsw i64 %19 to i8 +22:; preds = %15 + %23 = trunc nuw nsw i64 %21 to i8 %24 = add nuw nsw i8 %23, 1 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %.sroa.5.i.i, ptr nonnull readonly align 1 %17, i64 %20, i1 false), !noalias !30 %.sroa.5.i.i.0..sroa.5.i.i.0..sroa.5.i.i.0..sroa.5.i.0..sroa.5.i.0..sroa.5.4.copyload.i = load i32, ptr %.sroa.5.i.i, align 4, !noalias !31 @@ -549,7 +549,7 @@ define hidden void @"_ZN36_$LT$str$u20$as$u20$nix..NixPath$GT$13with_nix_path17h call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(104) %.sroa.7.i, ptr noundef nonnull align 4 dereferenceable(104) %.sroa.7.4..sroa.5.i.sroa_idx.i, i64 104, i1 false), !noalias !31 br label %"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h3bfffb2b4a229441E.exit.i" -"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h3bfffb2b4a229441E.exit.i": ; preds = %22, %15 +"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h3bfffb2b4a229441E.exit.i": ; preds = %22, %16 %.sroa.5.0.i = phi i32 [ %.sroa.5.i.i.0..sroa.5.i.i.0..sroa.5.i.i.0..sroa.5.i.0..sroa.5.i.0..sroa.5.4.copyload.i, %22 ], [ 36, %15 ] %.sroa.72.0.i = phi i8 [ %24, %22 ], [ undef, %15 ] %.sink.i.i = phi i16 [ 0, %22 ], [ 1, %15 ] @@ -564,11 +564,11 @@ define hidden void @"_ZN36_$LT$str$u20$as$u20$nix..NixPath$GT$13with_nix_path17h %.sroa.72.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 112 store i8 %.sroa.72.0.i, ptr %.sroa.72.0..sroa_idx.i, align 4, !alias.scope !18, !noalias !24 call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %.sroa.7.i) - call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %5), !noalias !21 - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !21 + call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %6), !noalias !21 + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !21 br label %"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17hf6cd7adc75cbff82E.exit" -"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17hf6cd7adc75cbff82E.exit": ; preds = %12, %13, %"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h3bfffb2b4a229441E.exit.i" +"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17hf6cd7adc75cbff82E.exit": ; preds = %13, %14, %"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h3bfffb2b4a229441E.exit.i" ret void } @@ -828,38 +828,38 @@ define { i32, i32 } @_ZN3nix24with_nix_path_allocating17h085d3a6150011876E(ptr n define void @_ZN3nix24with_nix_path_allocating17h87a8e8b9e0eac605E(ptr dead_on_unwind noalias noundef writable writeonly sret([116 x i8]) align 4 captures(none) dereferenceable(116) initializes((0, 2), (4, 8)) %0, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) unnamed_addr #4 personality ptr @rust_eh_personality { %.sroa.5.i = alloca [108 x i8], align 4 %.sroa.7 = alloca [104 x i8], align 4 - %4 = alloca [32 x i8], align 8 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) - call void @"_ZN81_$LT$$RF$$u5b$u8$u5d$$u20$as$u20$alloc..ffi..c_str..CString..new..SpecNewImpl$GT$13spec_new_impl17h30fdc0baeba647c4E"(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) - %5 = load i64, ptr %4, align 8, !range !53, !noundef !3 - %.not = icmp eq i64 %5, -9223372036854775808 - br i1 %.not, label %6, label %"_ZN4core3ptr105drop_in_place$LT$core..result..Result$LT$alloc..ffi..c_str..CString$C$alloc..ffi..c_str..NulError$GT$$GT$17he980a7a0f48fe449E.exit15" + %5 = alloca [32 x i8], align 8 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) + call void @"_ZN81_$LT$$RF$$u5b$u8$u5d$$u20$as$u20$alloc..ffi..c_str..CString..new..SpecNewImpl$GT$13spec_new_impl17h30fdc0baeba647c4E"(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %5, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) + %6 = load i64, ptr %5, align 8, !range !53, !noundef !3 + %.not = icmp eq i64 %6, -9223372036854775808 + br i1 %.not, label %7, label %"_ZN4core3ptr105drop_in_place$LT$core..result..Result$LT$alloc..ffi..c_str..CString$C$alloc..ffi..c_str..NulError$GT$$GT$17he980a7a0f48fe449E.exit15" -6: ; preds = %3 - %7 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %8 = load ptr, ptr %7, align 8, !nonnull !3, !align !25, !noundef !3 - %9 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %10 = load i64, ptr %9, align 8, !noundef !3 +7: ; preds = %3 + %8 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %9 = load ptr, ptr %8, align 8, !nonnull !3, !align !25, !noundef !3 + %10 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %11 = load i64, ptr %10, align 8, !noundef !3 call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %.sroa.7) call void @llvm.lifetime.start.p0(i64 108, ptr nonnull %.sroa.5.i) call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(108) %.sroa.5.i, i8 0, i64 108, i1 false), !noalias !59 %11 = add i64 %10, -1 - %12 = icmp ugt i64 %11, 107 - br i1 %12, label %16, label %13 + %12 = icmp ugt i64 %12, 107 + br i1 %12, label %18, label %15 -13: ; preds = %6 - %14 = trunc nuw nsw i64 %10 to i8 - %15 = add nuw nsw i8 %14, 1 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %.sroa.5.i, ptr nonnull readonly align 1 %8, i64 %11, i1 false), !noalias !63 +15: ; preds = %7 + %16 = trunc nuw nsw i64 %11 to i8 + %17 = add nuw nsw i8 %16, 1 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %.sroa.5.i, ptr nonnull readonly align 1 %9, i64 %11, i1 false), !noalias !63 %.sroa.5.i.0..sroa.5.i.0..sroa.5.i.0..sroa.518.4.copyload = load i32, ptr %.sroa.5.i, align 4, !noalias !64 %.sroa.7.4..sroa.5.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.5.i, i64 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(104) %.sroa.7, ptr noundef nonnull align 4 dereferenceable(104) %.sroa.7.4..sroa.5.i.sroa_idx, i64 104, i1 false), !noalias !64 - br label %16 + br label %18 -16: ; preds = %13, %6 - %.sroa.518.0 = phi i32 [ %.sroa.5.i.0..sroa.5.i.0..sroa.5.i.0..sroa.518.4.copyload, %13 ], [ 36, %6 ] - %.sroa.719.0 = phi i8 [ %15, %13 ], [ undef, %6 ] - %.sink.i = phi i16 [ 0, %13 ], [ 1, %6 ] +18: ; preds = %15, %7 + %.sroa.518.0 = phi i32 [ %.sroa.5.i.0..sroa.5.i.0..sroa.5.i.0..sroa.518.4.copyload, %13 ], [ 36, %7 ] + %.sroa.719.0 = phi i8 [ %17, %13 ], [ undef, %7 ] + %.sink.i = phi i16 [ 0, %13 ], [ 1, %7 ] call void @llvm.lifetime.end.p0(i64 108, ptr nonnull %.sroa.5.i) store i16 %.sink.i, ptr %0, align 4 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 2 @@ -871,30 +871,30 @@ define void @_ZN3nix24with_nix_path_allocating17h87a8e8b9e0eac605E(ptr dead_on_u %.sroa.719.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 112 store i8 %.sroa.719.0, ptr %.sroa.719.0..sroa_idx, align 4 call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %.sroa.7) - store i8 0, ptr %8, align 1 - %17 = icmp eq i64 %10, 0 - br i1 %17, label %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17he713f630cc6de38aE.exit12", label %18 + store i8 0, ptr %9, align 1 + %19 = icmp eq i64 %11, 0 + br i1 %19, label %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17he713f630cc6de38aE.exit12", label %20 -18: ; preds = %16 - tail call void @_RNvCshjvJWTf7CV5_7___rustc14___rust_dealloc(ptr noundef nonnull %8, i64 noundef range(i64 1, 0) %10, i64 noundef 1) #30 +20: ; preds = %18 + tail call void @_RNvCshjvJWTf7CV5_7___rustc14___rust_dealloc(ptr noundef nonnull %9, i64 noundef range(i64 1, 0) %11, i64 noundef 1) #30 br label %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17he713f630cc6de38aE.exit12" -"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17he713f630cc6de38aE.exit12": ; preds = %18, %16 - %19 = load i64, ptr %4, align 8, !range !53, !noundef !3 - %.not5 = icmp eq i64 %19, -9223372036854775808 - br i1 %.not5, label %20, label %.sink.split +"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17he713f630cc6de38aE.exit12": ; preds = %20, %18 + %21 = load i64, ptr %5, align 8, !range !53, !noundef !3 + %.not5 = icmp eq i64 %21, -9223372036854775808 + br i1 %.not5, label %22, label %.sink.split .sink.split: ; preds = %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17he713f630cc6de38aE.exit12", %"_ZN4core3ptr105drop_in_place$LT$core..result..Result$LT$alloc..ffi..c_str..CString$C$alloc..ffi..c_str..NulError$GT$$GT$17he980a7a0f48fe449E.exit15" - call void @"_ZN4core3ptr48drop_in_place$LT$alloc..ffi..c_str..NulError$GT$17hbe8ca33343d0754cE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %4) - br label %20 + call void @"_ZN4core3ptr48drop_in_place$LT$alloc..ffi..c_str..NulError$GT$17hbe8ca33343d0754cE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %5) + br label %22 -20: ; preds = %.sink.split, %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17he713f630cc6de38aE.exit12" - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) +22: ; preds = %.sink.split, %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17he713f630cc6de38aE.exit12" + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) ret void "_ZN4core3ptr105drop_in_place$LT$core..result..Result$LT$alloc..ffi..c_str..CString$C$alloc..ffi..c_str..NulError$GT$$GT$17he980a7a0f48fe449E.exit15": ; preds = %3 - %21 = getelementptr inbounds nuw i8, ptr %0, i64 4 - store i32 22, ptr %21, align 4 + %23 = getelementptr inbounds nuw i8, ptr %0, i64 4 + store i32 22, ptr %23, align 4 store i16 2, ptr %0, align 4 br label %.sink.split } diff --git a/bench/pingora-rs/optimized/acx590v32pn6eo20biyujqd8g.ll b/bench/pingora-rs/optimized/acx590v32pn6eo20biyujqd8g.ll index 0b1c4daab29..a7c8d025b88 100644 --- a/bench/pingora-rs/optimized/acx590v32pn6eo20biyujqd8g.ll +++ b/bench/pingora-rs/optimized/acx590v32pn6eo20biyujqd8g.ll @@ -5169,38 +5169,38 @@ define hidden { i64, ptr } @_ZN2h25proto9ping_pong8PingPong17send_pending_pong17 define void @_ZN3nix24with_nix_path_allocating17hcb2703c0d3663fb6E(ptr dead_on_unwind noalias noundef writable writeonly sret([116 x i8]) align 4 captures(none) dereferenceable(116) initializes((0, 2), (4, 8)) %0, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) unnamed_addr #2 personality ptr @rust_eh_personality { %.sroa.5.i = alloca [108 x i8], align 4 %.sroa.7 = alloca [104 x i8], align 4 - %4 = alloca [32 x i8], align 8 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) - call void @"_ZN81_$LT$$RF$$u5b$u8$u5d$$u20$as$u20$alloc..ffi..c_str..CString..new..SpecNewImpl$GT$13spec_new_impl17h30fdc0baeba647c4E"(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) - %5 = load i64, ptr %4, align 8, !range !200, !noundef !3 - %.not = icmp eq i64 %5, -9223372036854775808 - br i1 %.not, label %6, label %"_ZN4core3ptr105drop_in_place$LT$core..result..Result$LT$alloc..ffi..c_str..CString$C$alloc..ffi..c_str..NulError$GT$$GT$17h049fa9850d2fc88bE.exit15" + %5 = alloca [32 x i8], align 8 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) + call void @"_ZN81_$LT$$RF$$u5b$u8$u5d$$u20$as$u20$alloc..ffi..c_str..CString..new..SpecNewImpl$GT$13spec_new_impl17h30fdc0baeba647c4E"(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %5, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) + %6 = load i64, ptr %5, align 8, !range !200, !noundef !3 + %.not = icmp eq i64 %6, -9223372036854775808 + br i1 %.not, label %7, label %"_ZN4core3ptr105drop_in_place$LT$core..result..Result$LT$alloc..ffi..c_str..CString$C$alloc..ffi..c_str..NulError$GT$$GT$17h049fa9850d2fc88bE.exit15" -6: ; preds = %3 - %7 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %8 = load ptr, ptr %7, align 8, !nonnull !3, !align !11, !noundef !3 - %9 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %10 = load i64, ptr %9, align 8, !noundef !3 +7: ; preds = %3 + %8 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %9 = load ptr, ptr %8, align 8, !nonnull !3, !align !11, !noundef !3 + %10 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %11 = load i64, ptr %10, align 8, !noundef !3 call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %.sroa.7) call void @llvm.lifetime.start.p0(i64 108, ptr nonnull %.sroa.5.i) call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(108) %.sroa.5.i, i8 0, i64 108, i1 false), !noalias !201 %11 = add i64 %10, -1 - %12 = icmp ugt i64 %11, 107 - br i1 %12, label %16, label %13 + %12 = icmp ugt i64 %12, 107 + br i1 %12, label %18, label %13 -13: ; preds = %6 - %14 = trunc nuw nsw i64 %10 to i8 - %15 = add nuw nsw i8 %14, 1 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %.sroa.5.i, ptr nonnull readonly align 1 %8, i64 %11, i1 false), !noalias !205 +15: ; preds = %7 + %16 = trunc nuw nsw i64 %11 to i8 + %17 = add nuw nsw i8 %16, 1 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %.sroa.5.i, ptr nonnull readonly align 1 %9, i64 %11, i1 false), !noalias !205 %.sroa.5.i.0..sroa.5.i.0..sroa.5.i.0..sroa.518.4.copyload = load i32, ptr %.sroa.5.i, align 4, !noalias !206 %.sroa.7.4..sroa.5.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.5.i, i64 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(104) %.sroa.7, ptr noundef nonnull align 4 dereferenceable(104) %.sroa.7.4..sroa.5.i.sroa_idx, i64 104, i1 false), !noalias !206 - br label %16 + br label %18 -16: ; preds = %13, %6 - %.sroa.518.0 = phi i32 [ %.sroa.5.i.0..sroa.5.i.0..sroa.5.i.0..sroa.518.4.copyload, %13 ], [ 36, %6 ] - %.sroa.719.0 = phi i8 [ %15, %13 ], [ undef, %6 ] - %.sink.i = phi i16 [ 0, %13 ], [ 1, %6 ] +18: ; preds = %15, %7 + %.sroa.518.0 = phi i32 [ %.sroa.5.i.0..sroa.5.i.0..sroa.5.i.0..sroa.518.4.copyload, %13 ], [ 36, %7 ] + %.sroa.719.0 = phi i8 [ %17, %13 ], [ undef, %7 ] + %.sink.i = phi i16 [ 0, %13 ], [ 1, %7 ] call void @llvm.lifetime.end.p0(i64 108, ptr nonnull %.sroa.5.i) store i16 %.sink.i, ptr %0, align 4 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 2 @@ -5212,30 +5212,30 @@ define void @_ZN3nix24with_nix_path_allocating17hcb2703c0d3663fb6E(ptr dead_on_u %.sroa.719.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 112 store i8 %.sroa.719.0, ptr %.sroa.719.0..sroa_idx, align 4 call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %.sroa.7) - store i8 0, ptr %8, align 1 - %17 = icmp eq i64 %10, 0 - br i1 %17, label %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17h0d3a65ce4011c1c1E.exit12", label %18 + store i8 0, ptr %9, align 1 + %19 = icmp eq i64 %11, 0 + br i1 %19, label %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17h0d3a65ce4011c1c1E.exit12", label %20 -18: ; preds = %16 - tail call void @_RNvCshjvJWTf7CV5_7___rustc14___rust_dealloc(ptr noundef nonnull %8, i64 noundef range(i64 1, 0) %10, i64 noundef 1) #13 +20: ; preds = %18 + tail call void @_RNvCshjvJWTf7CV5_7___rustc14___rust_dealloc(ptr noundef nonnull %9, i64 noundef range(i64 1, 0) %11, i64 noundef 1) #13 br label %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17h0d3a65ce4011c1c1E.exit12" -"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17h0d3a65ce4011c1c1E.exit12": ; preds = %18, %16 - %19 = load i64, ptr %4, align 8, !range !200, !noundef !3 - %.not5 = icmp eq i64 %19, -9223372036854775808 - br i1 %.not5, label %20, label %.sink.split +"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17h0d3a65ce4011c1c1E.exit12": ; preds = %20, %18 + %21 = load i64, ptr %5, align 8, !range !200, !noundef !3 + %.not5 = icmp eq i64 %21, -9223372036854775808 + br i1 %.not5, label %22, label %.sink.split .sink.split: ; preds = %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17h0d3a65ce4011c1c1E.exit12", %"_ZN4core3ptr105drop_in_place$LT$core..result..Result$LT$alloc..ffi..c_str..CString$C$alloc..ffi..c_str..NulError$GT$$GT$17h049fa9850d2fc88bE.exit15" - call void @"_ZN4core3ptr48drop_in_place$LT$alloc..ffi..c_str..NulError$GT$17h02925b1c446021bdE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %4) - br label %20 + call void @"_ZN4core3ptr48drop_in_place$LT$alloc..ffi..c_str..NulError$GT$17h02925b1c446021bdE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %5) + br label %22 -20: ; preds = %.sink.split, %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17h0d3a65ce4011c1c1E.exit12" - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) +22: ; preds = %.sink.split, %"_ZN4core3ptr47drop_in_place$LT$alloc..ffi..c_str..CString$GT$17h0d3a65ce4011c1c1E.exit12" + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) ret void "_ZN4core3ptr105drop_in_place$LT$core..result..Result$LT$alloc..ffi..c_str..CString$C$alloc..ffi..c_str..NulError$GT$$GT$17h049fa9850d2fc88bE.exit15": ; preds = %3 - %21 = getelementptr inbounds nuw i8, ptr %0, i64 4 - store i32 22, ptr %21, align 4 + %23 = getelementptr inbounds nuw i8, ptr %0, i64 4 + store i32 22, ptr %23, align 4 store i16 2, ptr %0, align 4 br label %.sink.split } @@ -5283,40 +5283,40 @@ define hidden noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$G define hidden void @"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17h7ca00e350a33f2a9E"(ptr dead_on_unwind noalias noundef writable writeonly sret([116 x i8]) align 4 captures(none) dereferenceable(116) initializes((0, 2), (4, 8)) %0, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) unnamed_addr #0 personality ptr @rust_eh_personality { %.sroa.5.i = alloca [108 x i8], align 4 %.sroa.7 = alloca [104 x i8], align 4 - %4 = alloca [24 x i8], align 8 - %5 = alloca [1024 x i8], align 1 - %6 = icmp ugt i64 %2, 1023 - br i1 %6, label %12, label %7, !prof !7 + %5 = alloca [24 x i8], align 8 + %6 = alloca [1024 x i8], align 1 + %7 = icmp ugt i64 %2, 1023 + br i1 %7, label %13, label %8, !prof !7 -7: ; preds = %3 - call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %5) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %5, ptr nonnull align 1 %1, i64 %2, i1 false) - %8 = getelementptr inbounds nuw i8, ptr %5, i64 %2 - store i8 0, ptr %8, align 1 - call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) - %9 = add nuw nsw i64 %2, 1 - call void @_ZN4core3ffi5c_str4CStr19from_bytes_with_nul17h8f4bf3b6506729ebE(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 1 %5, i64 noundef %9) - %10 = load i64, ptr %4, align 8, !range !117, !noundef !3 - %11 = trunc nuw i64 %10 to i1 - br i1 %11, label %13, label %15 +8: ; preds = %3 + call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %6) + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %6, ptr nonnull align 1 %1, i64 %2, i1 false) + %9 = getelementptr inbounds nuw i8, ptr %6, i64 %2 + store i8 0, ptr %9, align 1 + call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) + %10 = add nuw nsw i64 %2, 1 + call void @_ZN4core3ffi5c_str4CStr19from_bytes_with_nul17h8f4bf3b6506729ebE(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 1 %6, i64 noundef %10) + %11 = load i64, ptr %5, align 8, !range !117, !noundef !3 + %12 = trunc nuw i64 %11 to i1 + br i1 %12, label %14, label %16 -12: ; preds = %3 +13: ; preds = %3 tail call void @_ZN3nix24with_nix_path_allocating17hcb2703c0d3663fb6E(ptr noalias noundef nonnull sret([116 x i8]) align 4 captures(none) dereferenceable(116) %0, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) - br label %25 + br label %27 -13: ; preds = %7 - %14 = getelementptr inbounds nuw i8, ptr %0, i64 4 - store i32 22, ptr %14, align 4 +14: ; preds = %8 + %15 = getelementptr inbounds nuw i8, ptr %0, i64 4 + store i32 22, ptr %15, align 4 store i16 2, ptr %0, align 4 - call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %5) - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) - br label %25 + call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %6) + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) + br label %27 -15: ; preds = %7 - %16 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %17 = load ptr, ptr %16, align 8, !nonnull !3, !align !11, !noundef !3 - %18 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %19 = load i64, ptr %18, align 8, !noundef !3 +16: ; preds = %8 + %17 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %18 = load ptr, ptr %17, align 8, !nonnull !3, !align !11, !noundef !3 + %19 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %20 = load i64, ptr %19, align 8, !noundef !3 call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %.sroa.7) call void @llvm.lifetime.start.p0(i64 108, ptr nonnull %.sroa.5.i) call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(108) %.sroa.5.i, i8 0, i64 108, i1 false), !noalias !212 @@ -5324,8 +5324,8 @@ define hidden void @"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_ni %21 = icmp ugt i64 %20, 107 br i1 %21, label %"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h317b9d0f33026ff9E.exit", label %22 -22: ; preds = %15 - %23 = trunc nuw nsw i64 %19 to i8 +22:; preds = %15 + %23 = trunc nuw nsw i64 %21 to i8 %24 = add nuw nsw i8 %23, 1 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %.sroa.5.i, ptr nonnull readonly align 1 %17, i64 %20, i1 false), !noalias !216 %.sroa.5.i.0..sroa.5.i.0..sroa.5.i.0..sroa.5.4.copyload = load i32, ptr %.sroa.5.i, align 4, !noalias !217 @@ -5333,7 +5333,7 @@ define hidden void @"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_ni call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(104) %.sroa.7, ptr noundef nonnull align 4 dereferenceable(104) %.sroa.7.4..sroa.5.i.sroa_idx, i64 104, i1 false), !noalias !217 br label %"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h317b9d0f33026ff9E.exit" -"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h317b9d0f33026ff9E.exit": ; preds = %15, %22 +"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h317b9d0f33026ff9E.exit": ; preds = %16, %22 %.sroa.5.0 = phi i32 [ %.sroa.5.i.0..sroa.5.i.0..sroa.5.i.0..sroa.5.4.copyload, %22 ], [ 36, %15 ] %.sroa.72.0 = phi i8 [ %24, %22 ], [ undef, %15 ] %.sink.i = phi i16 [ 0, %22 ], [ 1, %15 ] @@ -5348,11 +5348,11 @@ define hidden void @"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_ni %.sroa.72.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 112 store i8 %.sroa.72.0, ptr %.sroa.72.0..sroa_idx, align 4 call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %.sroa.7) - call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %5) - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) - br label %25 + call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %6) + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) + br label %27 -25: ; preds = %12, %13, %"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h317b9d0f33026ff9E.exit" +27: ; preds = %13, %14, %"_ZN3nix3sys6socket4addr8UnixAddr3new28_$u7b$$u7b$closure$u7d$$u7d$17h317b9d0f33026ff9E.exit" ret void } diff --git a/bench/yosys/optimized/abc.ll b/bench/yosys/optimized/abc.ll index 9b6ab08a674..3420d3c3f43 100644 --- a/bench/yosys/optimized/abc.ll +++ b/bench/yosys/optimized/abc.ll @@ -175609,7 +175609,7 @@ _ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_ store i32 %.0.i, ptr %3, align 4, !tbaa !77 %32 = call noundef i32 @_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE9do_lookupERKS3_Rj(ptr noundef nonnull align 8 dereferenceable(49) %0, ptr noundef nonnull align 4 dereferenceable(4) %1, ptr noundef nonnull align 4 dereferenceable(4) %3) %33 = icmp slt i32 %32, 0 - br i1 %33, label %34, label %73 + br i1 %33, label %34, label %74 34: ; preds = %_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_hashERKS3_.exit call void @llvm.lifetime.start.p0(i64 136, ptr nonnull %4) #32 @@ -175655,60 +175655,60 @@ _ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_ %54 = invoke noundef i32 @_ZN5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE9do_insertEOSt4pairIS3_S4_ERj(ptr noundef nonnull align 8 dereferenceable(49) %0, ptr noundef nonnull align 8 dereferenceable(136) %4, ptr noundef nonnull align 4 dereferenceable(4) %3) to label %55 unwind label %71 -55: ; preds = %45 +56: ; preds = %45 call void @_ZN5Yosys8CellTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(123) %46) #32 - %56 = load i32, ptr %4, align 8, !tbaa !266 - %57 = load i8, ptr @_ZN5Yosys5RTLIL8IdString17destruct_guard_okE, align 1, !tbaa !130, !range !143, !noundef !144 - %58 = trunc nuw i8 %57 to i1 - %59 = icmp ne i32 %56, 0 - %or.cond.i.i.i = and i1 %59, %58 - br i1 %or.cond.i.i.i, label %60, label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit + %57 = load i32, ptr %4, align 8, !tbaa !266 + %58 = load i8, ptr @_ZN5Yosys5RTLIL8IdString17destruct_guard_okE, align 1, !tbaa !130, !range !143, !noundef !144 + %59 = trunc nuw i8 %58 to i1 + %60 = icmp ne i32 %57, 0 + %or.cond.i.i.i = and i1 %60, %59 + br i1 %or.cond.i.i.i, label %61, label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit -60: ; preds = %55 - %61 = sext i32 %56 to i64 - %62 = load ptr, ptr @_ZN5Yosys5RTLIL8IdString24global_refcount_storage_E, align 8, !tbaa !6 - %63 = getelementptr inbounds nuw i32, ptr %62, i64 %61 - %64 = load i32, ptr %63, align 4, !tbaa !77 - %65 = add nsw i32 %64, -1 - store i32 %65, ptr %63, align 4, !tbaa !77 - %66 = icmp sgt i32 %64, 1 - br i1 %66, label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit, label %67 +61: ; preds = %56 + %62 = sext i32 %57 to i64 + %63 = load ptr, ptr @_ZN5Yosys5RTLIL8IdString24global_refcount_storage_E, align 8, !tbaa !6 + %64 = getelementptr inbounds nuw i32, ptr %63, i64 %62 + %65 = load i32, ptr %64, align 4, !tbaa !77 + %66 = add nsw i32 %65, -1 + store i32 %66, ptr %64, align 4, !tbaa !77 + %67 = icmp sgt i32 %65, 1 + br i1 %67, label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit, label %68 -67: ; preds = %60 - invoke void @_ZN5Yosys5RTLIL8IdString14free_referenceEi(i32 noundef %56) - to label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit unwind label %68 +68: ; preds = %61 + invoke void @_ZN5Yosys5RTLIL8IdString14free_referenceEi(i32 noundef %57) + to label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit unwind label %69 -68: ; preds = %67 - %69 = landingpad { ptr, i32 } +69: ; preds = %68 + %70 = landingpad { ptr, i32 } catch ptr null - %70 = extractvalue { ptr, i32 } %69, 0 - call void @__clang_call_terminate(ptr %70) #33 + %71 = extractvalue { ptr, i32 } %70, 0 + call void @__clang_call_terminate(ptr %71) #33 unreachable -_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit: ; preds = %55, %60, %67 +_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit: ; preds = %56, %61, %68 call void @_ZN5Yosys8CellTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(123) %5) #32 call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %5) #32 call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %4) #32 - br label %73 + br label %74 -71: ; preds = %45 - %72 = landingpad { ptr, i32 } +72: ; preds = %45 + %73 = landingpad { ptr, i32 } cleanup call void @_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev(ptr noundef nonnull align 8 dereferenceable(136) %4) #32 call void @_ZN5Yosys8CellTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(123) %5) #32 call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %5) #32 call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %4) #32 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #32 - resume { ptr, i32 } %72 + resume { ptr, i32 } %73 -73: ; preds = %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit, %_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_hashERKS3_.exit +74: ; preds = %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit, %_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_hashERKS3_.exit %.08 = phi i32 [ %54, %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit ], [ %32, %_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_hashERKS3_.exit ] - %74 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %75 = sext i32 %.08 to i64 - %76 = load ptr, ptr %74, align 8, !tbaa !270 - %77 = getelementptr inbounds nuw %"struct.Yosys::hashlib::dict::entry_t", ptr %76, i64 %75, i32 0, i32 2 + %75 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %76 = sext i32 %.08 to i64 + %77 = load ptr, ptr %75, align 8, !tbaa !270 + %78 = getelementptr inbounds nuw %"struct.Yosys::hashlib::dict::entry_t", ptr %77, i64 %76, i32 0, i32 2 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #32 - ret ptr %77 + ret ptr %78 } ; Function Attrs: inlinehint mustprogress nounwind uwtable diff --git a/bench/yosys/optimized/cellmatch.ll b/bench/yosys/optimized/cellmatch.ll index a9690f17c78..eff1e95270b 100644 --- a/bench/yosys/optimized/cellmatch.ll +++ b/bench/yosys/optimized/cellmatch.ll @@ -34338,7 +34338,7 @@ _ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_ store i32 %.0.i, ptr %3, align 4, !tbaa !17 %32 = call noundef i32 @_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE9do_lookupERKS3_Rj(ptr noundef nonnull align 8 dereferenceable(49) %0, ptr noundef nonnull align 4 dereferenceable(4) %1, ptr noundef nonnull align 4 dereferenceable(4) %3) %33 = icmp slt i32 %32, 0 - br i1 %33, label %34, label %73 + br i1 %33, label %34, label %74 34: ; preds = %_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_hashERKS3_.exit call void @llvm.lifetime.start.p0(i64 136, ptr nonnull %4) #27 @@ -34384,60 +34384,60 @@ _ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_ %54 = invoke noundef i32 @_ZN5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE9do_insertEOSt4pairIS3_S4_ERj(ptr noundef nonnull align 8 dereferenceable(49) %0, ptr noundef nonnull align 8 dereferenceable(136) %4, ptr noundef nonnull align 4 dereferenceable(4) %3) to label %55 unwind label %71 -55: ; preds = %45 +56: ; preds = %45 call void @_ZN5Yosys8CellTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(123) %46) #27 - %56 = load i32, ptr %4, align 8, !tbaa !11 - %57 = load i8, ptr @_ZN5Yosys5RTLIL8IdString17destruct_guard_okE, align 1, !tbaa !19, !range !21, !noundef !22 - %58 = trunc nuw i8 %57 to i1 - %59 = icmp ne i32 %56, 0 - %or.cond.i.i.i = and i1 %59, %58 - br i1 %or.cond.i.i.i, label %60, label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit + %57 = load i32, ptr %4, align 8, !tbaa !11 + %58 = load i8, ptr @_ZN5Yosys5RTLIL8IdString17destruct_guard_okE, align 1, !tbaa !19, !range !21, !noundef !22 + %59 = trunc nuw i8 %58 to i1 + %60 = icmp ne i32 %57, 0 + %or.cond.i.i.i = and i1 %60, %59 + br i1 %or.cond.i.i.i, label %61, label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit -60: ; preds = %55 - %61 = sext i32 %56 to i64 - %62 = load ptr, ptr @_ZN5Yosys5RTLIL8IdString24global_refcount_storage_E, align 8, !tbaa !14 - %63 = getelementptr inbounds nuw i32, ptr %62, i64 %61 - %64 = load i32, ptr %63, align 4, !tbaa !17 - %65 = add nsw i32 %64, -1 - store i32 %65, ptr %63, align 4, !tbaa !17 - %66 = icmp sgt i32 %64, 1 - br i1 %66, label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit, label %67 +61: ; preds = %56 + %62 = sext i32 %57 to i64 + %63 = load ptr, ptr @_ZN5Yosys5RTLIL8IdString24global_refcount_storage_E, align 8, !tbaa !14 + %64 = getelementptr inbounds nuw i32, ptr %63, i64 %62 + %65 = load i32, ptr %64, align 4, !tbaa !17 + %66 = add nsw i32 %65, -1 + store i32 %66, ptr %64, align 4, !tbaa !17 + %67 = icmp sgt i32 %65, 1 + br i1 %67, label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit, label %68 -67: ; preds = %60 - invoke void @_ZN5Yosys5RTLIL8IdString14free_referenceEi(i32 noundef %56) - to label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit unwind label %68 +68: ; preds = %61 + invoke void @_ZN5Yosys5RTLIL8IdString14free_referenceEi(i32 noundef %57) + to label %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit unwind label %69 -68: ; preds = %67 - %69 = landingpad { ptr, i32 } +69: ; preds = %68 + %70 = landingpad { ptr, i32 } catch ptr null - %70 = extractvalue { ptr, i32 } %69, 0 - call void @__clang_call_terminate(ptr %70) #28 + %71 = extractvalue { ptr, i32 } %70, 0 + call void @__clang_call_terminate(ptr %71) #28 unreachable -_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit: ; preds = %55, %60, %67 +_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit: ; preds = %56, %61, %68 call void @_ZN5Yosys8CellTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(123) %5) #27 call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %5) #27 call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %4) #27 - br label %73 + br label %74 -71: ; preds = %45 - %72 = landingpad { ptr, i32 } +72: ; preds = %45 + %73 = landingpad { ptr, i32 } cleanup call void @_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev(ptr noundef nonnull align 8 dereferenceable(136) %4) #27 call void @_ZN5Yosys8CellTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(123) %5) #27 call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %5) #27 call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %4) #27 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #27 - resume { ptr, i32 } %72 + resume { ptr, i32 } %73 -73: ; preds = %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit, %_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_hashERKS3_.exit +74: ; preds = %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit, %_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_hashERKS3_.exit %.08 = phi i32 [ %54, %_ZNSt4pairIN5Yosys5RTLIL8IdStringENS0_8CellTypeEED2Ev.exit ], [ %32, %_ZNK5Yosys7hashlib4dictINS_5RTLIL8IdStringENS_8CellTypeENS0_8hash_opsIS3_EEE7do_hashERKS3_.exit ] - %74 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %75 = sext i32 %.08 to i64 - %76 = load ptr, ptr %74, align 8, !tbaa !123 - %77 = getelementptr inbounds nuw %"struct.Yosys::hashlib::dict::entry_t", ptr %76, i64 %75, i32 0, i32 2 + %75 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %76 = sext i32 %.08 to i64 + %77 = load ptr, ptr %75, align 8, !tbaa !123 + %78 = getelementptr inbounds nuw %"struct.Yosys::hashlib::dict::entry_t", ptr %77, i64 %76, i32 0, i32 2 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #27 - ret ptr %77 + ret ptr %78 } ; Function Attrs: inlinehint mustprogress nounwind uwtable diff --git a/bench/z3/optimized/drat_frontend.ll b/bench/z3/optimized/drat_frontend.ll index b25cc7b2a47..aa62164a066 100644 --- a/bench/z3/optimized/drat_frontend.ll +++ b/bench/z3/optimized/drat_frontend.ll @@ -287,8 +287,8 @@ define hidden noundef i32 @_Z9read_dratPKc(ptr noundef %0) local_unnamed_addr #3 store ptr @"_ZNSt17_Function_handlerIF6symboliEZ9read_dratPKcE3$_1E10_M_managerERSt9_Any_dataRKS6_St18_Manager_operation", ptr %30, align 8, !tbaa !31 %33 = getelementptr inbounds nuw i8, ptr %5, i64 48 store i64 %26, ptr %33, align 8 - %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 56 - store i64 0, ptr %.sroa.5.0..sroa_idx, align 8 + %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 56 + store i64 0, ptr %.sroa.0.i.i.i.i.sroa.4.0..sroa_idx, align 8 %34 = getelementptr inbounds nuw i8, ptr %5, i64 64 store ptr @"_ZNSt17_Function_handlerIFiPKcEZ9read_dratS1_E3$_0E10_M_managerERSt9_Any_dataRKS5_St18_Manager_operation", ptr %34, align 8, !tbaa !34 %35 = getelementptr inbounds nuw i8, ptr %5, i64 72