From 2f30497d52e9d9cc2965e168aa85fe02f3e2c621 Mon Sep 17 00:00:00 2001 From: dtcxzyw <15650457+dtcxzyw@users.noreply.github.com> Date: Thu, 27 Nov 2025 11:35:51 +0800 Subject: [PATCH 1/3] pre-commit: PR167771 --- 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 c8d0fce0bf7..bdcc08b00fd 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/167771 export COMPTIME_MODE=0 export STAT_MODE=0 export STAT_NAME="" From fd41a333c0c2e185a923c11d1216788215850c72 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 27 Nov 2025 03:58:40 +0000 Subject: [PATCH 2/3] pre-commit: Update --- bench/abseil-cpp/optimized/cord_test.ll | 10 +- bench/actix-rs/optimized/19s5ghr2x6s6bmh4.ll | 2 +- bench/arrow/optimized/reader.ll | 4 +- .../boost/optimized/default_filter_factory.ll | 25 +-- .../ceres/optimized/schur_eliminator_d_d_d.ll | 173 +++++++-------- bench/clap-rs/optimized/thb07xvb2pkztra.ll | 12 +- bench/cmake/optimized/cf-h2-proxy.ll | 55 ++--- bench/cmake/optimized/zstdmt_compress.ll | 103 ++++----- .../optimized/2oqtsf9adaj2wzr6.ll | 95 ++++---- bench/cpp-httplib/optimized/httplib.ll | 92 ++++---- bench/cvc5/optimized/options_handler.ll | 74 +++---- bench/delta-rs/optimized/31i6j0ayu6bevt9n.ll | 10 +- bench/delta-rs/optimized/s2xrj2sh770tx8d.ll | 203 +++++++++--------- bench/diesel-rs/optimized/3nhirlswgfgsoryk.ll | 192 ++++++++--------- bench/diesel-rs/optimized/3t9haxhg11g45rod.ll | 18 +- bench/duckdb/optimized/fastcover.ll | 42 ++-- .../optimized/538k7v4jnxs1qgfredr4viqv4.ll | 141 ++++++------ bench/ffmpeg/optimized/avformat.ll | 127 +++++------ bench/g2o/optimized/edge_se2_pointxy_calib.ll | 3 +- bench/grpc/optimized/channel_args.ll | 159 +++++++------- bench/hermes/optimized/ProfileAnalyzer.ll | 20 +- .../influxdb-rs/optimized/1zobaqtttt01ywwe.ll | 14 +- .../influxdb-rs/optimized/54bldmpi534adbqh.ll | 155 +++++++------ bench/jemalloc/optimized/tcache.ll | 8 +- bench/jq/optimized/regexec.ll | 6 +- bench/just-rs/optimized/xt6bvrk4jdo7mpy.ll | 104 +++++---- bench/libigl/optimized/polar_svd3x3.ll | 61 +++--- bench/libigl/optimized/principal_curvature.ll | 149 ++++++------- .../lightgbm/optimized/linear_tree_learner.ll | 109 +++++----- .../optimized/json-schema-to-grammar.ll | 98 +++++---- bench/llvm/optimized/AttributorAttributes.ll | 19 +- bench/llvm/optimized/CVSymbolVisitor.ll | 101 ++++----- bench/llvm/optimized/LivePhysRegs.ll | 9 +- bench/lvgl/optimized/lv_area.ll | 16 +- .../mini-lsm-rs/optimized/4vkix0mjdn2idd4b.ll | 4 +- bench/miniaudio/optimized/unity.ll | 28 +-- bench/mold/optimized/cmdline.cc.X86_64.ll | 122 +++++------ bench/nix/optimized/cgroup.ll | 70 +++--- bench/node/optimized/libnode.node_buffer.ll | 6 +- bench/ockam-rs/optimized/111eznecj9pn2lkp.ll | 24 +-- bench/ockam-rs/optimized/31s7w40jb5ho09e2.ll | 36 ++-- bench/ockam-rs/optimized/3spcfx0kj7tua4em.ll | 24 ++- bench/ockam-rs/optimized/4t3y03rrak2rtjym.ll | 41 ++-- bench/ockam-rs/optimized/7hitgxreqt236i.ll | 34 +-- bench/open3d/optimized/Geometry3D.ll | 10 +- .../optimized/TriangleMeshSimplification.ll | 77 +++---- bench/opencv/optimized/function.pb.ll | 153 ++++++------- bench/opencv/optimized/map_field.ll | 135 ++++++------ bench/openusd/optimized/layer.ll | 121 +++++------ bench/proj/optimized/param.ll | 172 ++++++--------- bench/raylib/optimized/rcore.ll | 45 ++-- bench/rayon-rs/optimized/42isjd4q974i3ftt.ll | 71 +++--- .../optimized/catch_amalgamated.ll | 86 ++++---- bench/regex-rs/optimized/3ixfkxlmcuecmmus.ll | 62 +++--- bench/rocksdb/optimized/db_impl.ll | 141 ++++++------ bench/rocksdb/optimized/internal_stats.ll | 23 +- .../optimized/2j2fovrmererjnve.ll | 133 ++++++------ .../optimized/2ztqi8ib9ngj9iz.ll | 144 +++++++------ .../optimized/4qhzdiok6f4mymhy.ll | 141 ++++++------ bench/syn/optimized/3e28wvtnspuupgei.ll | 20 +- bench/syn/optimized/3r5osr990qsnm7hf.ll | 41 ++-- bench/tev/optimized/Channel.ll | 34 +-- .../optimized/2mot01sr7ebui81b.ll | 169 ++++++++------- bench/tokio-rs/optimized/1rl1r5ea6bzd5c9z.ll | 123 +++++------ bench/tokio-rs/optimized/2i86qkpybymk1snv.ll | 24 +-- bench/tokio-rs/optimized/4zaq7yghb5wawieu.ll | 74 +++---- bench/typst-rs/optimized/4sdr2z2pqpqxs72u.ll | 100 +++++---- .../optimized/2dhzw0mhmvlvodqn.ll | 32 +-- bench/velox/optimized/AllocationPool.ll | 16 +- .../optimized/1z05d6joihj04oihu2i4irshf.ll | 18 +- .../wasmtime-rs/optimized/1zz7jsxv168dc7km.ll | 32 +-- .../wasmtime-rs/optimized/22yyfxyxsnty4v9s.ll | 8 +- .../wasmtime-rs/optimized/2wry4odhn7m84bj2.ll | 16 +- .../wasmtime-rs/optimized/3hwarn3zl2ncla2z.ll | 8 +- .../wasmtime-rs/optimized/47jrn73ttlkllmrg.ll | 12 +- .../wasmtime-rs/optimized/cxg2cx8gn6v5trt.ll | 28 ++- bench/yalantinglibs/optimized/channel.ll | 177 +++++++-------- .../optimized/bwf7odsfkes1o9vw37iz67e4b.ll | 146 +++++++------ .../optimized/f4wwu90a2y9t62jcyj6nqzu8v.ll | 38 ++-- 79 files changed, 2715 insertions(+), 2713 deletions(-) diff --git a/bench/abseil-cpp/optimized/cord_test.ll b/bench/abseil-cpp/optimized/cord_test.ll index 02784c1c067..3906ddc607f 100644 --- a/bench/abseil-cpp/optimized/cord_test.ll +++ b/bench/abseil-cpp/optimized/cord_test.ll @@ -38534,7 +38534,7 @@ _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEP _ZN4absl10CordBufferD2Ev.exit130: ; preds = %229, %227 store ptr inttoptr (i64 1 to ptr), ptr %3, align 8 %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 8 - store ptr null, ptr %.sroa.9.0..sroa_idx, align 8, !tbaa !24 + store i64 0, ptr %.sroa.9.0..sroa_idx, align 8, !tbaa !24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %32, ptr noundef nonnull align 1 dereferenceable(5) @.str.204, i64 5, i1 false) store i8 11, ptr %3, align 8, !tbaa !24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull align 8 dereferenceable(16) %3, i64 16, i1 false), !tbaa.struct !123 @@ -40784,7 +40784,7 @@ _ZN4absl4Cord6AppendENS_10CordBufferE.exit: ; preds = %_ZNK4absl10CordBuff _ZN4absl10CordBufferD2Ev.exit88: ; preds = %102, %99 store ptr inttoptr (i64 1 to ptr), ptr %4, align 8 %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 8 - store ptr null, ptr %.sroa.9.0..sroa_idx, align 8, !tbaa !24 + store i64 0, ptr %.sroa.9.0..sroa_idx, align 8, !tbaa !24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %48, ptr noundef nonnull align 1 dereferenceable(3) @.str.201, i64 3, i1 false) store i8 7, ptr %4, align 8, !tbaa !24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %4, i64 16, i1 false), !tbaa.struct !123 @@ -42673,7 +42673,7 @@ _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEP _ZN4absl10CordBufferD2Ev.exit130: ; preds = %229, %227 store ptr inttoptr (i64 1 to ptr), ptr %3, align 8 %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 8 - store ptr null, ptr %.sroa.9.0..sroa_idx, align 8, !tbaa !24 + store i64 0, ptr %.sroa.9.0..sroa_idx, align 8, !tbaa !24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %32, ptr noundef nonnull align 1 dereferenceable(5) @.str.204, i64 5, i1 false) store i8 11, ptr %3, align 8, !tbaa !24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull align 8 dereferenceable(16) %3, i64 16, i1 false), !tbaa.struct !123 @@ -44125,7 +44125,7 @@ _ZN4absl10CordBuffer22CreateWithDefaultLimitEm.exit104: ; preds = %.noexc103, %_ _ZN4absl10CordBufferD2Ev.exit115: ; preds = %240, %_ZN4absl10CordBuffer22CreateWithDefaultLimitEm.exit104 store ptr %.sroa.0.0, ptr %6, align 8 %.sroa.10.0..sroa_idx = getelementptr inbounds nuw i8, ptr %6, i64 8 - store ptr null, ptr %.sroa.10.0..sroa_idx, align 8, !tbaa !24 + store i64 0, ptr %.sroa.10.0..sroa_idx, align 8, !tbaa !24 %250 = ptrtoint ptr %.sroa.0.0 to i64 %251 = and i64 %250, 1 %.not.i116 = icmp eq i64 %251, 0 @@ -46455,7 +46455,7 @@ _ZN4absl10CordBuffer22CreateWithDefaultLimitEm.exit104: ; preds = %.noexc103, %_ _ZN4absl10CordBufferD2Ev.exit115: ; preds = %240, %_ZN4absl10CordBuffer22CreateWithDefaultLimitEm.exit104 store ptr %.sroa.0.0, ptr %6, align 8 %.sroa.10.0..sroa_idx = getelementptr inbounds nuw i8, ptr %6, i64 8 - store ptr null, ptr %.sroa.10.0..sroa_idx, align 8, !tbaa !24 + store i64 0, ptr %.sroa.10.0..sroa_idx, align 8, !tbaa !24 %250 = ptrtoint ptr %.sroa.0.0 to i64 %251 = and i64 %250, 1 %.not.i116 = icmp eq i64 %251, 0 diff --git a/bench/actix-rs/optimized/19s5ghr2x6s6bmh4.ll b/bench/actix-rs/optimized/19s5ghr2x6s6bmh4.ll index 7029185eae4..09481d9adbc 100644 --- a/bench/actix-rs/optimized/19s5ghr2x6s6bmh4.ll +++ b/bench/actix-rs/optimized/19s5ghr2x6s6bmh4.ll @@ -5845,7 +5845,7 @@ _ZN4http6header5value11HeaderValue11from_static17h991ab22da29c302dE.exit: ; pred %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store i64 %switch.load2, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 - store ptr null, ptr %.sroa.6.0..sroa_idx, align 8 + store i64 0, ptr %.sroa.6.0..sroa_idx, align 8 %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 store i8 0, ptr %.sroa.7.0..sroa_idx, align 8 ret void diff --git a/bench/arrow/optimized/reader.ll b/bench/arrow/optimized/reader.ll index 307d1d964c4..a8d57aead88 100644 --- a/bench/arrow/optimized/reader.ll +++ b/bench/arrow/optimized/reader.ll @@ -74589,7 +74589,7 @@ _ZN5arrow6StatusC2ERKS0_.exit67: ; preds = %205 225: ; preds = %203 call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.7) %226 = getelementptr inbounds nuw i8, ptr %18, i64 8 - %.sroa.0.0.copyload = load ptr, ptr %226, align 8, !tbaa !2546 + %.sroa.0.0.copyload = load i64, ptr %226, align 8, !tbaa !2546 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %18, i64 16 %.sroa.5.0.copyload = load ptr, ptr %.sroa.5.0..sroa_idx, align 8, !tbaa !47 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %18, i64 24 @@ -74685,7 +74685,7 @@ _ZNSt10shared_ptrIN5arrow2io16RandomAccessFileEEC2ERKS3_.exit.i.i.i.i.i.i.i: ; p store ptr %263, ptr %262, align 8, !tbaa !79, !noalias !2549 store ptr null, ptr %6, align 8, !tbaa !91, !noalias !2549 %264 = getelementptr inbounds nuw i8, ptr %233, i64 32 - store ptr %.sroa.0.0.copyload, ptr %264, align 8, !tbaa !2546, !noalias !2549 + store i64 %.sroa.0.0.copyload, ptr %264, align 8, !tbaa !2546, !noalias !2549 %.sroa.4.0..sroa_idx.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %233, i64 40 store ptr %.sroa.5.0.copyload, ptr %.sroa.4.0..sroa_idx.i.i.i.i.i.i.i, align 8, !tbaa !47, !noalias !2549 %.sroa.5.0..sroa_idx.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %233, i64 48 diff --git a/bench/boost/optimized/default_filter_factory.ll b/bench/boost/optimized/default_filter_factory.ll index 497a2985ed6..e65e26a2a62 100644 --- a/bench/boost/optimized/default_filter_factory.ll +++ b/bench/boost/optimized/default_filter_factory.ll @@ -17123,15 +17123,15 @@ define linkonce_odr hidden noundef ptr @_ZSt27__unguarded_partition_pivotIPSt4pa %16 = icmp eq i8 %15, 42 %.idx.i.i3.i.i.i.i.i = zext i1 %16 to i64 %17 = getelementptr inbounds nuw i8, ptr %14, i64 %.idx.i.i3.i.i.i.i.i - %18 = load ptr, ptr %.0.i, align 8, !tbaa !126 + %18 = load ptr, ptr %.0.i, align 8 %19 = getelementptr inbounds nuw i8, ptr %18, i64 8 %20 = load ptr, ptr %19, align 8, !tbaa !148 %21 = load i8, ptr %20, align 1, !tbaa !35 %22 = icmp eq i8 %21, 42 - %.idx.i.i.i.i.i.i20.i = zext i1 %22 to i64 - %23 = getelementptr inbounds nuw i8, ptr %20, i64 %.idx.i.i.i.i.i.i20.i - %.not.i.i.i.i21.i = icmp eq ptr %23, %17 - br i1 %.not.i.i.i.i21.i, label %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit.preheader.i, label %.lr.ph.i.preheader + %.idx.i.i.i.i.i.i19.i = zext i1 %22 to i64 + %23 = getelementptr inbounds nuw i8, ptr %20, i64 %.idx.i.i.i.i.i.i19.i + %.not.i.i.i.i20.i = icmp eq ptr %23, %17 + br i1 %.not.i.i.i.i20.i, label %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit.preheader.i, label %.lr.ph.i.preheader .lr.ph.i.preheader: ; preds = %11 %24 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %23, ptr noundef nonnull dereferenceable(1) %17) #28 @@ -17142,8 +17142,9 @@ define linkonce_odr hidden noundef ptr @_ZSt27__unguarded_partition_pivotIPSt4pa br label %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit.preheader.i, !llvm.loop !152 _ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit.preheader.i: ; preds = %.lr.ph.i, %.lr.ph.i.preheader, %._ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit.preheader.i.loopexit_crit_edge, %11 + %.sroa.0.0.copyload.i.i.i.i.i.in = phi ptr [ %18, %11 ], [ %29, %._ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit.preheader.i.loopexit_crit_edge ], [ %18, %.lr.ph.i.preheader ], [ %29, %.lr.ph.i ] %.1.lcssa.i = phi ptr [ %.0.i, %11 ], [ %28, %._ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit.preheader.i.loopexit_crit_edge ], [ %.0.i, %.lr.ph.i.preheader ], [ %28, %.lr.ph.i ] - %.lcssa19.i = phi ptr [ %18, %11 ], [ %29, %._ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit.preheader.i.loopexit_crit_edge ], [ %18, %.lr.ph.i.preheader ], [ %29, %.lr.ph.i ] + %.sroa.0.0.copyload.i.i.i.i.i = ptrtoint ptr %.sroa.0.0.copyload.i.i.i.i.i.in to i64 br label %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit.i .lr.ph.i: ; preds = %.lr.ph @@ -17152,9 +17153,9 @@ _ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_m br i1 %27, label %.lr.ph, label %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit.preheader.i, !llvm.loop !152 .lr.ph: ; preds = %.lr.ph.i.preheader, %.lr.ph.i - %.122.i13 = phi ptr [ %28, %.lr.ph.i ], [ %.0.i, %.lr.ph.i.preheader ] - %28 = getelementptr inbounds nuw i8, ptr %.122.i13, i64 16 - %29 = load ptr, ptr %28, align 8, !tbaa !126 + %.121.i13 = phi ptr [ %28, %.lr.ph.i ], [ %.0.i, %.lr.ph.i.preheader ] + %28 = getelementptr inbounds nuw i8, ptr %.121.i13, i64 16 + %29 = load ptr, ptr %28, align 8 %30 = getelementptr inbounds nuw i8, ptr %29, i64 8 %31 = load ptr, ptr %30, align 8, !tbaa !148 %32 = load i8, ptr %31, align 1, !tbaa !35 @@ -17189,7 +17190,7 @@ _ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_m 44: ; preds = %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit18.thread.i %45 = ptrtoint ptr %35 to i64 store i64 %45, ptr %.1.lcssa.i, align 8 - store ptr %.lcssa19.i, ptr %.114.i, align 8 + store i64 %.sroa.0.0.copyload.i.i.i.i.i, ptr %.114.i, align 8 %46 = getelementptr inbounds nuw i8, ptr %.1.lcssa.i, i64 8 %47 = getelementptr inbounds i8, ptr %.013.pn.i, i64 -8 %48 = load ptr, ptr %46, align 8, !tbaa !10 @@ -17425,9 +17426,9 @@ _ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_m %.sink55.in = phi ptr [ %11, %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit40.thread ], [ %5, %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit29.thread ], [ %11, %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit25 ], [ %20, %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit29 ], [ %5, %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit35 ], [ %30, %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit40 ] %.sink54 = phi ptr [ %2, %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit40.thread ], [ %1, %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit29.thread ], [ %2, %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit25 ], [ %3, %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit29 ], [ %1, %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit35 ], [ %3, %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit40 ] %.sink55 = ptrtoint ptr %.sink55.in to i64 - %.sroa.0.0.copyload.i.i.i.i36 = load ptr, ptr %0, align 8 + %.sroa.0.0.copyload.i.i.i.i36 = load i64, ptr %0, align 8 store i64 %.sink55, ptr %0, align 8 - store ptr %.sroa.0.0.copyload.i.i.i.i36, ptr %.sink54, align 8 + store i64 %.sroa.0.0.copyload.i.i.i.i36, ptr %.sink54, align 8 %41 = getelementptr inbounds nuw i8, ptr %0, i64 8 %42 = getelementptr inbounds nuw i8, ptr %.sink54, i64 8 %43 = load ptr, ptr %41, align 8, !tbaa !10 diff --git a/bench/ceres/optimized/schur_eliminator_d_d_d.ll b/bench/ceres/optimized/schur_eliminator_d_d_d.ll index 10add348764..45876e8b776 100644 --- a/bench/ceres/optimized/schur_eliminator_d_d_d.ll +++ b/bench/ceres/optimized/schur_eliminator_d_d_d.ll @@ -7202,8 +7202,8 @@ _ZN5Eigen6MatrixIdLin1ELin1ELi1ELin1ELin1EEC2IiiEERKT_RKT0_.exit.thread: ; preds %87 = getelementptr inbounds nuw i8, ptr %0, i64 16 %88 = load ptr, ptr %87, align 8, !tbaa !301 %89 = load ptr, ptr %88, align 8, !tbaa !50 - %.not103 = icmp eq ptr %89, null - br i1 %.not103, label %_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEEE11setConstantERKd.exit.loopexit.i, label %100 + %.not102 = icmp eq ptr %89, null + br i1 %.not102, label %_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEEE11setConstantERKd.exit.loopexit.i, label %100 90: ; preds = %_ZN5Eigen6MatrixIdLin1ELin1ELi1ELin1ELin1EEC2IiiEERKT_RKT0_.exit %91 = load ptr, ptr %22, align 8, !tbaa !299 @@ -7233,8 +7233,8 @@ _ZN5Eigen6MatrixIdLin1ELin1ELi1ELin1ELin1EEC2IiiEERKT_RKT0_.exit.thread: ; preds call void @llvm.lifetime.start.p0(ptr nonnull %6) %109 = getelementptr inbounds nuw i8, ptr %6, i64 8 store ptr %108, ptr %109, align 8 - %.sroa.074.sroa.5.0..sroa_idx105 = getelementptr inbounds nuw i8, ptr %6, i64 16 - store i64 %65, ptr %.sroa.074.sroa.5.0..sroa_idx105, align 8 + %.sroa.074.sroa.5.0..sroa_idx104 = getelementptr inbounds nuw i8, ptr %6, i64 16 + store i64 %65, ptr %.sroa.074.sroa.5.0..sroa_idx104, align 8 %110 = sdiv i64 9223372036854775807, %65 %111 = icmp slt i64 %110, %65 br i1 %111, label %112, label %.noexc33 @@ -7327,8 +7327,8 @@ _ZN5Eigen8internal13first_alignedILi16EdlEET1_PKT0_S2_.exit.i.i.i.i.i.i.i.i.i.i3 %.sext = sext i32 %137 to i64 %138 = shl nsw i64 %.sext, 1 %139 = add nsw i64 %138, %.0.i.i.i.i.i.i.i.i.i.i.i40 - %.not93 = icmp eq i64 %.0.i.i.i.i.i.i.i.i.i.i.i40, 0 - br i1 %.not93, label %_ZN5Eigen8internal31unaligned_dense_assignment_loopILb0EE3runINS0_31generic_dense_assignment_kernelINS0_9evaluatorINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEEEENS5_INS_14CwiseNullaryOpINS0_18scalar_constant_opIdEES8_EEEENS0_9assign_opIddEELi0EEEEEvRT_ll.exit.i.i.i.i.i.i.i.i.i.i41, label %.lr.ph.i.i.i.i.i.i.i.i.i.i.preheader.i48 + %.not92 = icmp eq i64 %.0.i.i.i.i.i.i.i.i.i.i.i40, 0 + br i1 %.not92, label %_ZN5Eigen8internal31unaligned_dense_assignment_loopILb0EE3runINS0_31generic_dense_assignment_kernelINS0_9evaluatorINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEEEENS5_INS_14CwiseNullaryOpINS0_18scalar_constant_opIdEES8_EEEENS0_9assign_opIddEELi0EEEEEvRT_ll.exit.i.i.i.i.i.i.i.i.i.i41, label %.lr.ph.i.i.i.i.i.i.i.i.i.i.preheader.i48 .lr.ph.i.i.i.i.i.i.i.i.i.i.preheader.i48: ; preds = %_ZN5Eigen8internal13first_alignedILi16EdlEET1_PKT0_S2_.exit.i.i.i.i.i.i.i.i.i.i39 %140 = shl nuw nsw i64 %.0.i.i.i.i.i.i.i.i.i.i.i40, 3 @@ -21892,11 +21892,11 @@ define linkonce_odr hidden void @_ZN5Eigen8internal32triangular_matrix_vector_pr %11 = alloca %"class.Eigen::internal::const_blas_data_mapper.539", align 8 %12 = alloca %"class.Eigen::internal::const_blas_data_mapper", align 8 %13 = alloca %"class.Eigen::internal::const_blas_data_mapper.539", align 8 - %.sroa.speculated136 = tail call i64 @llvm.smin.i64(i64 %1, i64 %0) - %14 = icmp sgt i64 %.sroa.speculated136, 0 - br i1 %14, label %.lr.ph151, label %._crit_edge152 + %.sroa.speculated135 = tail call i64 @llvm.smin.i64(i64 %1, i64 %0) + %14 = icmp sgt i64 %.sroa.speculated135, 0 + br i1 %14, label %.lr.ph148, label %._crit_edge149 -.lr.ph151: ; preds = %9 +.lr.ph148: ; preds = %9 %15 = ptrtoint ptr %6 to i64 %16 = getelementptr inbounds nuw i8, ptr %10, i64 8 %17 = getelementptr inbounds nuw i8, ptr %11, i64 8 @@ -21904,37 +21904,37 @@ define linkonce_odr hidden void @_ZN5Eigen8internal32triangular_matrix_vector_pr %.not.i.i.i.i.i.i.i = icmp eq i64 %18, 0 br label %20 -._crit_edge152: ; preds = %80, %9 +._crit_edge149: ; preds = %80, %9 %19 = icmp slt i64 %0, %1 br i1 %19, label %83, label %92 -20: ; preds = %.lr.ph151, %80 - %indvars.iv = phi i64 [ %.sroa.speculated136, %.lr.ph151 ], [ %indvars.iv.next, %80 ] - %.0149 = phi i64 [ 0, %.lr.ph151 ], [ %81, %80 ] +20: ; preds = %.lr.ph148, %80 + %indvars.iv = phi i64 [ %.sroa.speculated135, %.lr.ph148 ], [ %indvars.iv.next, %80 ] + %.0146 = phi i64 [ 0, %.lr.ph148 ], [ %81, %80 ] %21 = call i64 @llvm.smax.i64(i64 %indvars.iv, i64 1) %22 = call i64 @llvm.umin.i64(i64 %21, i64 8) - %23 = sub nsw i64 %.sroa.speculated136, %.0149 + %23 = sub nsw i64 %.sroa.speculated135, %.0146 %.sroa.speculated = call i64 @llvm.smin.i64(i64 %23, i64 8) - %invariant.gep = getelementptr double, ptr %2, i64 %.0149 + %invariant.gep = getelementptr double, ptr %2, i64 %.0146 %24 = icmp sgt i64 %23, 0 br i1 %24, label %.lr.ph, label %._crit_edge .lr.ph: ; preds = %20 - %25 = getelementptr inbounds nuw double, ptr %6, i64 %.0149 + %25 = getelementptr inbounds nuw double, ptr %6, i64 %.0146 %26 = ptrtoint ptr %25 to i64 %27 = lshr exact i64 %26, 3 %28 = and i64 %27, 1 br label %29 ._crit_edge: ; preds = %_ZN5Eigen10MatrixBaseINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINSC_18scalar_constant_opIdEEKS4_EEKNS1_IKNS1_IKNS2_IKNS3_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEERS8_RKNS0_IT_EE.exit, %20 - %.not = icmp eq i64 %.0149, 0 + %.not = icmp eq i64 %.0146, 0 br i1 %.not, label %80, label %74 29: ; preds = %.lr.ph, %_ZN5Eigen10MatrixBaseINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINSC_18scalar_constant_opIdEEKS4_EEKNS1_IKNS1_IKNS2_IKNS3_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEERS8_RKNS0_IT_EE.exit - %.058147 = phi i64 [ 0, %.lr.ph ], [ %31, %_ZN5Eigen10MatrixBaseINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINSC_18scalar_constant_opIdEEKS4_EEKNS1_IKNS1_IKNS2_IKNS3_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEERS8_RKNS0_IT_EE.exit ] - %30 = add nuw nsw i64 %.058147, %.0149 - %31 = add nuw nsw i64 %.058147, 1 - %.not62 = icmp eq i64 %.058147, 0 + %.058145 = phi i64 [ 0, %.lr.ph ], [ %31, %_ZN5Eigen10MatrixBaseINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINSC_18scalar_constant_opIdEEKS4_EEKNS1_IKNS1_IKNS2_IKNS3_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEERS8_RKNS0_IT_EE.exit ] + %30 = add nuw nsw i64 %.058145, %.0146 + %31 = add nuw nsw i64 %.058145, 1 + %.not62 = icmp eq i64 %.058145, 0 br i1 %.not62, label %._ZN5Eigen10MatrixBaseINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINSC_18scalar_constant_opIdEEKS4_EEKNS1_IKNS1_IKNS2_IKNS3_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEERS8_RKNS0_IT_EE.exit_crit_edge, label %_ZN5Eigen8internal13first_alignedILi16EdlEET1_PKT0_S2_.exit.i.i.i.i.i.i ._ZN5Eigen10MatrixBaseINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINSC_18scalar_constant_opIdEEKS4_EEKNS1_IKNS1_IKNS2_IKNS3_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEERS8_RKNS0_IT_EE.exit_crit_edge: ; preds = %29 @@ -21950,14 +21950,14 @@ _ZN5Eigen8internal13first_alignedILi16EdlEET1_PKT0_S2_.exit.i.i.i.i.i.i: ; preds %37 = mul nsw i64 %30, %3 %gep = getelementptr double, ptr %invariant.gep, i64 %37 %.sroa.3.8.vec.insert.i.i.i.i.i = insertelement <2 x double> poison, double %36, i64 0 - %38 = call i64 @llvm.smin.i64(i64 %28, i64 %.058147) - %.0.i.i.i.i.i.i.i = select i1 %.not.i.i.i.i.i.i.i, i64 %38, i64 %.058147 - %39 = sub nsw i64 %.058147, %.0.i.i.i.i.i.i.i + %38 = call i64 @llvm.smin.i64(i64 %28, i64 %.058145) + %.0.i.i.i.i.i.i.i = select i1 %.not.i.i.i.i.i.i.i, i64 %38, i64 %.058145 + %39 = sub nsw i64 %.058145, %.0.i.i.i.i.i.i.i %40 = sdiv i64 %39, 2 %41 = shl nsw i64 %40, 1 %42 = add nsw i64 %41, %.0.i.i.i.i.i.i.i - %.not153 = icmp eq i64 %.0.i.i.i.i.i.i.i, 0 - br i1 %.not153, label %_ZN5Eigen8internal31unaligned_dense_assignment_loopILb0EE3runINS0_31generic_dense_assignment_kernelINS0_9evaluatorINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEENS5_INS_13CwiseBinaryOpINS0_17scalar_product_opIddEEKNS_14CwiseNullaryOpINS0_18scalar_constant_opIdEEKS9_EEKNS6_IKNS6_IKNS7_IKNS8_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEENS0_13add_assign_opIddEELi0EEEEEvRT_ll.exit.i.i.i.i.i.i, label %.lr.ph.i.i.i.i.i.i.i + %.not150 = icmp eq i64 %.0.i.i.i.i.i.i.i, 0 + br i1 %.not150, label %_ZN5Eigen8internal31unaligned_dense_assignment_loopILb0EE3runINS0_31generic_dense_assignment_kernelINS0_9evaluatorINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEENS5_INS_13CwiseBinaryOpINS0_17scalar_product_opIddEEKNS_14CwiseNullaryOpINS0_18scalar_constant_opIdEEKS9_EEKNS6_IKNS6_IKNS7_IKNS8_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEENS0_13add_assign_opIddEELi0EEEEEvRT_ll.exit.i.i.i.i.i.i, label %.lr.ph.i.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i.i: ; preds = %_ZN5Eigen8internal13first_alignedILi16EdlEET1_PKT0_S2_.exit.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i.i %.05.i.i.i.i.i.i.i = phi i64 [ %49, %.lr.ph.i.i.i.i.i.i.i ], [ 0, %_ZN5Eigen8internal13first_alignedILi16EdlEET1_PKT0_S2_.exit.i.i.i.i.i.i ] @@ -21981,7 +21981,7 @@ _ZN5Eigen8internal31unaligned_dense_assignment_loopILb0EE3runINS0_31generic_dens br label %.lr.ph.i.i.i.i.i.i ._crit_edge.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i, %_ZN5Eigen8internal31unaligned_dense_assignment_loopILb0EE3runINS0_31generic_dense_assignment_kernelINS0_9evaluatorINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEENS5_INS_13CwiseBinaryOpINS0_17scalar_product_opIddEEKNS_14CwiseNullaryOpINS0_18scalar_constant_opIdEEKS9_EEKNS6_IKNS6_IKNS7_IKNS8_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEENS0_13add_assign_opIddEELi0EEEEEvRT_ll.exit.i.i.i.i.i.i - %52 = icmp slt i64 %42, %.058147 + %52 = icmp slt i64 %42, %.058145 br i1 %52, label %.lr.ph.i17.i.i.i.i.i.i, label %_ZN5Eigen10MatrixBaseINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINSC_18scalar_constant_opIdEEKS4_EEKNS1_IKNS1_IKNS2_IKNS3_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEERS8_RKNS0_IT_EE.exit .lr.ph.i17.i.i.i.i.i.i: ; preds = %._crit_edge.i.i.i.i.i.i, %.lr.ph.i17.i.i.i.i.i.i @@ -21994,7 +21994,7 @@ _ZN5Eigen8internal31unaligned_dense_assignment_loopILb0EE3runINS0_31generic_dens %58 = fadd double %56, %57 store double %58, ptr %53, align 8, !tbaa !138 %59 = add nsw i64 %.05.i18.i.i.i.i.i.i, 1 - %exitcond.not.i19.i.i.i.i.i.i = icmp eq i64 %59, %.058147 + %exitcond.not.i19.i.i.i.i.i.i = icmp eq i64 %59, %.058145 br i1 %exitcond.not.i19.i.i.i.i.i.i, label %_ZN5Eigen10MatrixBaseINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINSC_18scalar_constant_opIdEEKS4_EEKNS1_IKNS1_IKNS2_IKNS3_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEERS8_RKNS0_IT_EE.exit, label %.lr.ph.i17.i.i.i.i.i.i, !llvm.loop !964 .lr.ph.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i, %.lr.ph.i.preheader.i.i.i.i.i @@ -22024,48 +22024,48 @@ _ZN5Eigen10MatrixBaseINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0E 74: ; preds = %._crit_edge call void @llvm.lifetime.start.p0(ptr nonnull %10) - %75 = mul nsw i64 %.0149, %3 + %75 = mul nsw i64 %.0146, %3 %76 = getelementptr double, ptr %2, i64 %75 store ptr %76, ptr %10, align 8, !tbaa !374 store i64 %3, ptr %16, align 8, !tbaa !376 call void @llvm.lifetime.start.p0(ptr nonnull %11) - %77 = mul nsw i64 %.0149, %5 + %77 = mul nsw i64 %.0146, %5 %78 = getelementptr inbounds double, ptr %4, i64 %77 store ptr %78, ptr %11, align 8, !tbaa !377 store i64 %5, ptr %17, align 8, !tbaa !379 %79 = load double, ptr %8, align 8, !tbaa !138 - call void @_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi0EEELi0ELb0EdNS2_IdlLi1EEELb0ELi1EE3runEllRKS3_RKS4_Pdld(i64 noundef %.0149, i64 noundef %.sroa.speculated, ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef nonnull %6, i64 noundef %7, double noundef %79) + call void @_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi0EEELi0ELb0EdNS2_IdlLi1EEELb0ELi1EE3runEllRKS3_RKS4_Pdld(i64 noundef %.0146, i64 noundef %.sroa.speculated, ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef nonnull %6, i64 noundef %7, double noundef %79) call void @llvm.lifetime.end.p0(ptr nonnull %11) call void @llvm.lifetime.end.p0(ptr nonnull %10) br label %80 80: ; preds = %74, %._crit_edge - %81 = add nuw nsw i64 %.0149, 8 - %82 = icmp slt i64 %81, %.sroa.speculated136 + %81 = add nuw nsw i64 %.0146, 8 + %82 = icmp slt i64 %81, %.sroa.speculated135 %indvars.iv.next = add i64 %indvars.iv, -8 - br i1 %82, label %20, label %._crit_edge152, !llvm.loop !967 + br i1 %82, label %20, label %._crit_edge149, !llvm.loop !967 -83: ; preds = %._crit_edge152 - %84 = sub nsw i64 %1, %.sroa.speculated136 +83: ; preds = %._crit_edge149 + %84 = sub nsw i64 %1, %.sroa.speculated135 call void @llvm.lifetime.start.p0(ptr nonnull %12) - %85 = mul nsw i64 %3, %.sroa.speculated136 + %85 = mul nsw i64 %3, %.sroa.speculated135 %86 = getelementptr double, ptr %2, i64 %85 store ptr %86, ptr %12, align 8, !tbaa !374 %87 = getelementptr inbounds nuw i8, ptr %12, i64 8 store i64 %3, ptr %87, align 8, !tbaa !376 call void @llvm.lifetime.start.p0(ptr nonnull %13) - %88 = mul nsw i64 %5, %.sroa.speculated136 + %88 = mul nsw i64 %5, %.sroa.speculated135 %89 = getelementptr inbounds double, ptr %4, i64 %88 store ptr %89, ptr %13, align 8, !tbaa !377 %90 = getelementptr inbounds nuw i8, ptr %13, i64 8 store i64 %5, ptr %90, align 8, !tbaa !379 %91 = load double, ptr %8, align 8, !tbaa !138 - call void @_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi0EEELi0ELb0EdNS2_IdlLi1EEELb0ELi0EE3runEllRKS3_RKS4_Pdld(i64 noundef %.sroa.speculated136, i64 noundef %84, ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef %6, i64 noundef %7, double noundef %91) + call void @_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi0EEELi0ELb0EdNS2_IdlLi1EEELb0ELi0EE3runEllRKS3_RKS4_Pdld(i64 noundef %.sroa.speculated135, i64 noundef %84, ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef %6, i64 noundef %7, double noundef %91) call void @llvm.lifetime.end.p0(ptr nonnull %13) call void @llvm.lifetime.end.p0(ptr nonnull %12) br label %92 -92: ; preds = %83, %._crit_edge152 +92: ; preds = %83, %._crit_edge149 ret void } @@ -26600,7 +26600,7 @@ define linkonce_odr hidden void @_ZN5Eigen8internal20generic_product_implINS_9Tr %5 = alloca %"struct.Eigen::internal::evaluator.2141", align 8 %6 = alloca %"struct.Eigen::internal::evaluator.1953", align 8 %7 = alloca %"class.Eigen::internal::restricted_packet_dense_assignment_kernel", align 8 - %.sroa.0.0.copyload = load ptr, ptr %1, align 8 + %.sroa.0.0.copyload = load i64, ptr %1, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.4.0.copyload = load i64, ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -26612,7 +26612,7 @@ define linkonce_odr hidden void @_ZN5Eigen8internal20generic_product_implINS_9Tr %8 = load i64, ptr %2, align 8 %.sroa.8.56..sroa_idx.i = getelementptr inbounds nuw i8, ptr %2, i64 8 %.sroa.8.56.copyload.i = load i64, ptr %.sroa.8.56..sroa_idx.i, align 8 - store ptr %.sroa.0.0.copyload, ptr %5, align 8 + store i64 %.sroa.0.0.copyload, ptr %5, align 8 %.sroa.4.0..sroa_idx6.i = getelementptr inbounds nuw i8, ptr %5, i64 8 store i64 %.sroa.4.0.copyload, ptr %.sroa.4.0..sroa_idx6.i, align 8 %.sroa.5.0..sroa_idx8.i = getelementptr inbounds nuw i8, ptr %5, i64 16 @@ -26622,61 +26622,62 @@ define linkonce_odr hidden void @_ZN5Eigen8internal20generic_product_implINS_9Tr %.sroa.8.56..sroa_idx12.i = getelementptr inbounds nuw i8, ptr %5, i64 64 store i64 %.sroa.8.56.copyload.i, ptr %.sroa.8.56..sroa_idx12.i, align 8 %10 = getelementptr inbounds nuw i8, ptr %5, i64 80 - store ptr %.sroa.0.0.copyload, ptr %10, align 8, !tbaa !1112 - %11 = getelementptr inbounds nuw i8, ptr %5, i64 96 - %12 = load ptr, ptr %.sroa.6.0..sroa_idx10.i, align 8, !tbaa !858 - %13 = getelementptr inbounds nuw i8, ptr %12, i64 16 - %14 = load i64, ptr %13, align 8, !tbaa !300 - store i64 %14, ptr %11, align 8, !tbaa !315 - %15 = getelementptr inbounds nuw i8, ptr %5, i64 112 - store i64 %.sroa.4.0.copyload, ptr %15, align 8, !tbaa !1114 - %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %17 = load i64, ptr %16, align 8, !tbaa !977 - %.not.i.i.i = icmp eq i64 %17, %.sroa.5.0.copyload - %18 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %19 = load i64, ptr %18, align 8 - %.not8.i.i.i = icmp eq i64 %19, %.sroa.8.56.copyload.i + %11 = inttoptr i64 %.sroa.0.0.copyload to ptr + store ptr %11, ptr %10, align 8, !tbaa !1112 + %12 = getelementptr inbounds nuw i8, ptr %5, i64 96 + %13 = load ptr, ptr %.sroa.6.0..sroa_idx10.i, align 8, !tbaa !858 + %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 + %15 = load i64, ptr %14, align 8, !tbaa !300 + store i64 %15, ptr %12, align 8, !tbaa !315 + %16 = getelementptr inbounds nuw i8, ptr %5, i64 112 + store i64 %.sroa.4.0.copyload, ptr %16, align 8, !tbaa !1114 + %17 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %18 = load i64, ptr %17, align 8, !tbaa !977 + %.not.i.i.i = icmp eq i64 %18, %.sroa.5.0.copyload + %19 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %20 = load i64, ptr %19, align 8 + %.not8.i.i.i = icmp eq i64 %20, %.sroa.8.56.copyload.i %or.cond.i.i.i = select i1 %.not.i.i.i, i1 %.not8.i.i.i, i1 false - br i1 %or.cond.i.i.i, label %_ZN5Eigen8internal20generic_product_implINS_9TransposeIKNS_5BlockIKNS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELin1ELb0EEEEENS_14CwiseNullaryOpINS0_18scalar_identity_opIdEES5_EENS_10DenseShapeESE_Li3EE17eval_dynamic_implINS4_IdLin1ELin1ELi0ELin1ELin1EEES9_SD_NS0_9assign_opIddEEdEEvRT_RKT0_RKT1_RKT2_RKT3_NS0_10false_typeE.exit, label %20 + br i1 %or.cond.i.i.i, label %_ZN5Eigen8internal20generic_product_implINS_9TransposeIKNS_5BlockIKNS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELin1ELb0EEEEENS_14CwiseNullaryOpINS0_18scalar_identity_opIdEES5_EENS_10DenseShapeESE_Li3EE17eval_dynamic_implINS4_IdLin1ELin1ELi0ELin1ELin1EEES9_SD_NS0_9assign_opIddEEdEEvRT_RKT0_RKT1_RKT2_RKT3_NS0_10false_typeE.exit, label %21 -20: ; preds = %4 - %21 = icmp eq i64 %.sroa.5.0.copyload, 0 - %22 = icmp eq i64 %.sroa.8.56.copyload.i, 0 - %or.cond.i.i.i.i.i = or i1 %21, %22 - br i1 %or.cond.i.i.i.i.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i.i, label %23 +21: ; preds = %4 + %22 = icmp eq i64 %.sroa.5.0.copyload, 0 + %23 = icmp eq i64 %.sroa.8.56.copyload.i, 0 + %or.cond.i.i.i.i.i = or i1 %22, %23 + br i1 %or.cond.i.i.i.i.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i.i, label %24 -23: ; preds = %20 - %24 = sdiv i64 9223372036854775807, %.sroa.8.56.copyload.i - %25 = icmp sgt i64 %.sroa.5.0.copyload, %24 - br i1 %25, label %.noexc.i.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i.i +24: ; preds = %21 + %25 = sdiv i64 9223372036854775807, %.sroa.8.56.copyload.i + %26 = icmp sgt i64 %.sroa.5.0.copyload, %25 + br i1 %26, label %.noexc.i.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i.i -.noexc.i.i: ; preds = %23 - %26 = tail call ptr @__cxa_allocate_exception(i64 8) #36 - store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %26, align 8, !tbaa !3 - tail call void @__cxa_throw(ptr nonnull %26, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #38 +.noexc.i.i: ; preds = %24 + %27 = tail call ptr @__cxa_allocate_exception(i64 8) #36 + store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %27, align 8, !tbaa !3 + tail call void @__cxa_throw(ptr nonnull %27, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #38 unreachable -_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i.i: ; preds = %23, %20 - %27 = mul nsw i64 %.sroa.8.56.copyload.i, %.sroa.5.0.copyload - tail call void @_ZN5Eigen12DenseStorageIdLin1ELin1ELin1ELi0EE6resizeElll(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %27, i64 noundef %.sroa.5.0.copyload, i64 noundef %.sroa.8.56.copyload.i) - %.pre.i.i = load i64, ptr %16, align 8, !tbaa !977 +_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i.i: ; preds = %24, %21 + %28 = mul nsw i64 %.sroa.8.56.copyload.i, %.sroa.5.0.copyload + tail call void @_ZN5Eigen12DenseStorageIdLin1ELin1ELin1ELi0EE6resizeElll(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %28, i64 noundef %.sroa.5.0.copyload, i64 noundef %.sroa.8.56.copyload.i) + %.pre.i.i = load i64, ptr %17, align 8, !tbaa !977 br label %_ZN5Eigen8internal20generic_product_implINS_9TransposeIKNS_5BlockIKNS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELin1ELb0EEEEENS_14CwiseNullaryOpINS0_18scalar_identity_opIdEES5_EENS_10DenseShapeESE_Li3EE17eval_dynamic_implINS4_IdLin1ELin1ELi0ELin1ELin1EEES9_SD_NS0_9assign_opIddEEdEEvRT_RKT0_RKT1_RKT2_RKT3_NS0_10false_typeE.exit _ZN5Eigen8internal20generic_product_implINS_9TransposeIKNS_5BlockIKNS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELin1ELb0EEEEENS_14CwiseNullaryOpINS0_18scalar_identity_opIdEES5_EENS_10DenseShapeESE_Li3EE17eval_dynamic_implINS4_IdLin1ELin1ELi0ELin1ELin1EEES9_SD_NS0_9assign_opIddEEdEEvRT_RKT0_RKT1_RKT2_RKT3_NS0_10false_typeE.exit: ; preds = %4, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i.i - %28 = phi i64 [ %.pre.i.i, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i.i ], [ %.sroa.5.0.copyload, %4 ] + %29 = phi i64 [ %.pre.i.i, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i.i ], [ %.sroa.5.0.copyload, %4 ] call void @llvm.lifetime.start.p0(ptr nonnull %6) - %29 = load ptr, ptr %0, align 8, !tbaa !924 - store ptr %29, ptr %6, align 8, !tbaa !1128 - %30 = getelementptr inbounds nuw i8, ptr %6, i64 8 - store i64 %28, ptr %30, align 8, !tbaa !1130 + %30 = load ptr, ptr %0, align 8, !tbaa !924 + store ptr %30, ptr %6, align 8, !tbaa !1128 + %31 = getelementptr inbounds nuw i8, ptr %6, i64 8 + store i64 %29, ptr %31, align 8, !tbaa !1130 call void @llvm.lifetime.start.p0(ptr nonnull %7) store ptr %6, ptr %7, align 8, !tbaa !1131 - %31 = getelementptr inbounds nuw i8, ptr %7, i64 8 - store ptr %5, ptr %31, align 8, !tbaa !1133 - %32 = getelementptr inbounds nuw i8, ptr %7, i64 16 - store ptr %3, ptr %32, align 8, !tbaa !1135 - %33 = getelementptr inbounds nuw i8, ptr %7, i64 24 - store ptr %0, ptr %33, align 8, !tbaa !919 + %32 = getelementptr inbounds nuw i8, ptr %7, i64 8 + store ptr %5, ptr %32, align 8, !tbaa !1133 + %33 = getelementptr inbounds nuw i8, ptr %7, i64 16 + store ptr %3, ptr %33, align 8, !tbaa !1135 + %34 = getelementptr inbounds nuw i8, ptr %7, i64 24 + store ptr %0, ptr %34, align 8, !tbaa !919 call void @_ZN5Eigen8internal21dense_assignment_loopINS0_41restricted_packet_dense_assignment_kernelINS0_9evaluatorINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEENS3_INS_7ProductINS_9TransposeIKNS_5BlockIKNS4_IdLin1ELin1ELi1ELin1ELin1EEELin1ELin1ELb0EEEEENS_14CwiseNullaryOpINS0_18scalar_identity_opIdEESA_EELi1EEEEENS0_9assign_opIddEEEELi4ELi0EE3runERSN_(ptr noundef nonnull align 8 dereferenceable(32) %7) call void @llvm.lifetime.end.p0(ptr nonnull %7) call void @llvm.lifetime.end.p0(ptr nonnull %6) diff --git a/bench/clap-rs/optimized/thb07xvb2pkztra.ll b/bench/clap-rs/optimized/thb07xvb2pkztra.ll index 9b3a8e4dba1..ac28ba7eabf 100644 --- a/bench/clap-rs/optimized/thb07xvb2pkztra.ll +++ b/bench/clap-rs/optimized/thb07xvb2pkztra.ll @@ -4698,7 +4698,7 @@ define internal fastcc void @_ZN4core5slice4sort25insertion_sort_shift_left17h0b %.sroa.4.0.copyload.i = phi i64 [ %.sroa.4.0.copyload.pre.i, %"._ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$7sort_by28_$u7b$$u7b$closure$u7d$$u7d$17h826997466916b64eE.exit.thread_crit_edge.i" ], [ %.val1.i.i.i.i, %"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$7sort_by28_$u7b$$u7b$closure$u7d$$u7d$17h826997466916b64eE.exit.i" ] %.sroa.010.0.copyload.i = phi ptr [ %.sroa.010.0.copyload.pre.i, %"._ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$7sort_by28_$u7b$$u7b$closure$u7d$$u7d$17h826997466916b64eE.exit.thread_crit_edge.i" ], [ %.val.i.i.i.i, %"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$7sort_by28_$u7b$$u7b$closure$u7d$$u7d$17h826997466916b64eE.exit.i" ] %.sroa.611.0..sroa_idx.i = getelementptr i8, ptr %8, i64 24 - %.sroa.611.0.copyload.i = load ptr, ptr %.sroa.611.0..sroa_idx.i, align 8, !alias.scope !750 + %.sroa.611.0.copyload.i = load i64, ptr %.sroa.611.0..sroa_idx.i, align 8, !alias.scope !750 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %9, i64 32, i1 false), !alias.scope !750 %24 = add i64 %.sroa.01.03, -1 %25 = icmp ne ptr %.sroa.010.0.copyload.i, null @@ -4713,7 +4713,7 @@ define internal fastcc void @_ZN4core5slice4sort25insertion_sort_shift_left17h0b %.sroa.7.0..sroa.5.0.sroa_idx.i = getelementptr inbounds nuw i8, ptr %.sroa.5.0.lcssa.i, i64 16 store i64 %11, ptr %.sroa.7.0..sroa.5.0.sroa_idx.i, align 8, !alias.scope !750 %.sroa.8.0..sroa.5.0.sroa_idx.i = getelementptr inbounds nuw i8, ptr %.sroa.5.0.lcssa.i, i64 24 - store ptr %.sroa.611.0.copyload.i, ptr %.sroa.8.0..sroa.5.0.sroa_idx.i, align 8, !alias.scope !750 + store i64 %.sroa.611.0.copyload.i, ptr %.sroa.8.0..sroa.5.0.sroa_idx.i, align 8, !alias.scope !750 br label %_ZN4core5slice4sort11insert_tail17hf65981be4cf03a33E.exit .lr.ph.i: ; preds = %"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$7sort_by28_$u7b$$u7b$closure$u7d$$u7d$17h826997466916b64eE.exit.thread.i", %"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$7sort_by28_$u7b$$u7b$closure$u7d$$u7d$17h826997466916b64eE.exit20.thread.i" @@ -4823,7 +4823,7 @@ define internal fastcc void @_ZN4core5slice4sort25insertion_sort_shift_left17h2d %.sroa.4.0..sroa_idx.i = getelementptr i8, ptr %8, i64 8 %.sroa.4.0.copyload.i = load i64, ptr %.sroa.4.0..sroa_idx.i, align 8, !alias.scope !793 %.sroa.715.0..sroa_idx.i = getelementptr i8, ptr %8, i64 32 - %.sroa.715.0.copyload.i = load ptr, ptr %.sroa.715.0..sroa_idx.i, align 8, !alias.scope !793 + %.sroa.715.0.copyload.i = load i64, ptr %.sroa.715.0..sroa_idx.i, align 8, !alias.scope !793 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %8, ptr noundef nonnull align 8 dereferenceable(40) %9, i64 40, i1 false), !alias.scope !793 %24 = add i64 %.sroa.01.03, -1 %25 = icmp ne ptr %.sroa.5.0.copyload.i, null @@ -4840,7 +4840,7 @@ define internal fastcc void @_ZN4core5slice4sort25insertion_sort_shift_left17h2d %.sroa.7.0..sroa.5.0.sroa_idx.i = getelementptr inbounds nuw i8, ptr %.sroa.5.0.lcssa.i, i64 24 store i64 %.sroa.614.0.copyload.i, ptr %.sroa.7.0..sroa.5.0.sroa_idx.i, align 8, !alias.scope !793 %.sroa.8.0..sroa.5.0.sroa_idx.i = getelementptr inbounds nuw i8, ptr %.sroa.5.0.lcssa.i, i64 32 - store ptr %.sroa.715.0.copyload.i, ptr %.sroa.8.0..sroa.5.0.sroa_idx.i, align 8, !alias.scope !793 + store i64 %.sroa.715.0.copyload.i, ptr %.sroa.8.0..sroa.5.0.sroa_idx.i, align 8, !alias.scope !793 br label %_ZN4core5slice4sort11insert_tail17h5ebe96f5cfd99413E.exit .lr.ph.i: ; preds = %"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$7sort_by28_$u7b$$u7b$closure$u7d$$u7d$17h63edbfe7761ccff1E.exit.thread.i", %"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$7sort_by28_$u7b$$u7b$closure$u7d$$u7d$17h63edbfe7761ccff1E.exit20.thread.i" @@ -4951,7 +4951,7 @@ define internal fastcc void @_ZN4core5slice4sort25insertion_sort_shift_left17h80 %.sroa.4.0.copyload.i = phi ptr [ %.sroa.4.0.copyload.pre.i, %"._ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$7sort_by28_$u7b$$u7b$closure$u7d$$u7d$17h33d5ad3b53ae74a3E.exit.thread_crit_edge.i" ], [ %.val.i.i.i.i, %"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$7sort_by28_$u7b$$u7b$closure$u7d$$u7d$17h33d5ad3b53ae74a3E.exit.i" ] %.sroa.012.0.copyload.i = load i64, ptr %8, align 8, !alias.scope !830 %.sroa.715.0..sroa_idx.i = getelementptr i8, ptr %8, i64 32 - %.sroa.715.0.copyload.i = load ptr, ptr %.sroa.715.0..sroa_idx.i, align 8, !alias.scope !830 + %.sroa.715.0.copyload.i = load i64, ptr %.sroa.715.0..sroa_idx.i, align 8, !alias.scope !830 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %8, ptr noundef nonnull align 8 dereferenceable(40) %9, i64 40, i1 false), !alias.scope !830 %26 = add i64 %.sroa.01.03, -1 %27 = icmp ne ptr %.sroa.4.0.copyload.i, null @@ -4968,7 +4968,7 @@ define internal fastcc void @_ZN4core5slice4sort25insertion_sort_shift_left17h80 %.sroa.7.0..sroa.5.0.sroa_idx.i = getelementptr inbounds nuw i8, ptr %.sroa.5.0.lcssa.i, i64 24 store i64 %11, ptr %.sroa.7.0..sroa.5.0.sroa_idx.i, align 8, !alias.scope !830 %.sroa.8.0..sroa.5.0.sroa_idx.i = getelementptr inbounds nuw i8, ptr %.sroa.5.0.lcssa.i, i64 32 - store ptr %.sroa.715.0.copyload.i, ptr %.sroa.8.0..sroa.5.0.sroa_idx.i, align 8, !alias.scope !830 + store i64 %.sroa.715.0.copyload.i, ptr %.sroa.8.0..sroa.5.0.sroa_idx.i, align 8, !alias.scope !830 br label %_ZN4core5slice4sort11insert_tail17h2385c6e4f6fc3253E.exit .lr.ph.i: ; preds = %"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$7sort_by28_$u7b$$u7b$closure$u7d$$u7d$17h33d5ad3b53ae74a3E.exit.thread.i", %"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$7sort_by28_$u7b$$u7b$closure$u7d$$u7d$17h33d5ad3b53ae74a3E.exit20.thread.i" diff --git a/bench/cmake/optimized/cf-h2-proxy.ll b/bench/cmake/optimized/cf-h2-proxy.ll index c2ae1bb3257..55251f9def0 100644 --- a/bench/cmake/optimized/cf-h2-proxy.ll +++ b/bench/cmake/optimized/cf-h2-proxy.ll @@ -100,7 +100,7 @@ define internal void @cf_h2_proxy_destroy(ptr noundef captures(none) %0, ptr rea 5: ; preds = %2 %6 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %.sroa.0.0.copyload.i.i = load ptr, ptr %6, align 8, !tbaa !13 + %.sroa.0.0.copyload.i.i = load i64, ptr %6, align 8, !tbaa !13 %7 = load ptr, ptr %4, align 8, !tbaa !15 %.not.i.i = icmp eq ptr %7, null br i1 %.not.i.i, label %cf_h2_proxy_ctx_free.exit, label %8 @@ -126,7 +126,7 @@ cf_h2_proxy_ctx_free.exit: ; preds = %5, %8 %17 = load ptr, ptr %16, align 8, !tbaa !28 tail call void %15(ptr noundef %17) #7 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(320) %4, i8 0, i64 320, i1 false) - store ptr %.sroa.0.0.copyload.i.i, ptr %6, align 8, !tbaa !13 + store i64 %.sroa.0.0.copyload.i.i, ptr %6, align 8, !tbaa !13 %18 = load ptr, ptr @Curl_cfree, align 8, !tbaa !27 tail call void %18(ptr noundef nonnull %4) #7 store ptr null, ptr %3, align 8, !tbaa !4 @@ -189,7 +189,7 @@ define internal i32 @cf_h2_proxy_connect(ptr noundef %0, ptr noundef %1, i1 noun %35 = phi ptr [ %.pre, %._crit_edge ], [ %17, %23 ] store i8 0, ptr %3, align 1, !tbaa !29 %36 = getelementptr inbounds nuw i8, ptr %35, i64 8 - %.sroa.0.0.copyload = load ptr, ptr %36, align 8, !tbaa !13 + %.sroa.0.0.copyload = load i64, ptr %36, align 8, !tbaa !13 store ptr %1, ptr %36, align 8, !tbaa !34 %37 = load ptr, ptr %17, align 8, !tbaa !15 %.not41 = icmp eq ptr %37, null @@ -1089,7 +1089,7 @@ H2_CONNECT.exit.thread47: ; preds = %H2_CONNECT.exit %.03745 = phi i32 [ %.03746, %.critedge ], [ 0, %H2_CONNECT.exit.thread47 ], [ 0, %409 ] %415 = load ptr, ptr %16, align 8, !tbaa !4 %416 = getelementptr inbounds nuw i8, ptr %415, i64 8 - store ptr %.sroa.0.0.copyload, ptr %416, align 8, !tbaa !13 + store i64 %.sroa.0.0.copyload, ptr %416, align 8, !tbaa !13 br label %417 417: ; preds = %29, %31, %414, %22 @@ -1106,8 +1106,9 @@ define internal void @cf_h2_proxy_close(ptr noundef readonly captures(none) %0, 5: ; preds = %2 %6 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %.sroa.0.0.copyload = load ptr, ptr %6, align 8, !tbaa !13 + %.sroa.0.0.copyload = load i64, ptr %6, align 8, !tbaa !13 store ptr %1, ptr %6, align 8, !tbaa !34 + %.sroa.0.0.copyload.i.cast = ptrtoint ptr %1 to i64 %7 = load ptr, ptr %4, align 8, !tbaa !15 %.not.i = icmp eq ptr %7, null br i1 %.not.i, label %cf_h2_proxy_ctx_clear.exit, label %8 @@ -1133,10 +1134,10 @@ cf_h2_proxy_ctx_clear.exit: ; preds = %5, %8 %17 = load ptr, ptr %16, align 8, !tbaa !28 tail call void %15(ptr noundef %17) #7 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(320) %4, i8 0, i64 320, i1 false) - store ptr %1, ptr %6, align 8, !tbaa !13 + store i64 %.sroa.0.0.copyload.i.cast, ptr %6, align 8, !tbaa !13 %18 = load ptr, ptr %3, align 8, !tbaa !4 %19 = getelementptr inbounds nuw i8, ptr %18, i64 8 - store ptr %.sroa.0.0.copyload, ptr %19, align 8, !tbaa !13 + store i64 %.sroa.0.0.copyload, ptr %19, align 8, !tbaa !13 br label %20 20: ; preds = %cf_h2_proxy_ctx_clear.exit, %2 @@ -1187,7 +1188,7 @@ define internal i32 @cf_h2_proxy_shutdown(ptr noundef %0, ptr noundef %1, ptr no 17: ; preds = %12 %18 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %.sroa.0.0.copyload = load ptr, ptr %18, align 8, !tbaa !13 + %.sroa.0.0.copyload = load i64, ptr %18, align 8, !tbaa !13 store ptr %1, ptr %18, align 8, !tbaa !34 %19 = and i8 %14, 4 %.not39 = icmp eq i8 %19, 0 @@ -1203,7 +1204,7 @@ define internal i32 @cf_h2_proxy_shutdown(ptr noundef %0, ptr noundef %1, ptr no tail call void (ptr, ptr, ...) @Curl_failf(ptr noundef %1, ptr noundef nonnull @.str.62, ptr noundef %22, i32 noundef %21) #7 %23 = load ptr, ptr %4, align 8, !tbaa !4 %24 = getelementptr inbounds nuw i8, ptr %23, i64 8 - store ptr %.sroa.0.0.copyload, ptr %24, align 8, !tbaa !13 + store i64 %.sroa.0.0.copyload, ptr %24, align 8, !tbaa !13 br label %57 25: ; preds = %20 @@ -1255,7 +1256,7 @@ define internal i32 @cf_h2_proxy_shutdown(ptr noundef %0, ptr noundef %1, ptr no store i8 0, ptr %2, align 1, !tbaa !29 %43 = load ptr, ptr %4, align 8, !tbaa !4 %44 = getelementptr inbounds nuw i8, ptr %43, i64 8 - store ptr %.sroa.0.0.copyload, ptr %44, align 8, !tbaa !13 + store i64 %.sroa.0.0.copyload, ptr %44, align 8, !tbaa !13 br label %57 .thread56: ; preds = %.thread51, %42 @@ -1276,7 +1277,7 @@ define internal i32 @cf_h2_proxy_shutdown(ptr noundef %0, ptr noundef %1, ptr no store i8 %.ph, ptr %2, align 1, !tbaa !29 %51 = load ptr, ptr %4, align 8, !tbaa !4 %52 = getelementptr inbounds nuw i8, ptr %51, i64 8 - store ptr %.sroa.0.0.copyload, ptr %52, align 8, !tbaa !13 + store i64 %.sroa.0.0.copyload, ptr %52, align 8, !tbaa !13 %53 = shl nuw nsw i8 %.ph, 1 br label %57 @@ -1284,7 +1285,7 @@ define internal i32 @cf_h2_proxy_shutdown(ptr noundef %0, ptr noundef %1, ptr no store i8 1, ptr %2, align 1, !tbaa !29 %55 = load ptr, ptr %4, align 8, !tbaa !4 %56 = getelementptr inbounds nuw i8, ptr %55, i64 8 - store ptr %.sroa.0.0.copyload, ptr %56, align 8, !tbaa !13 + store i64 %.sroa.0.0.copyload, ptr %56, align 8, !tbaa !13 br label %57 57: ; preds = %54, %.thread64, %.thread68, %.thread60 @@ -1370,7 +1371,7 @@ define internal void @cf_h2_proxy_adjust_pollset(ptr noundef %0, ptr noundef %1, 38: ; preds = %33 %39 = load ptr, ptr %6, align 8, !tbaa !4 %40 = getelementptr inbounds nuw i8, ptr %39, i64 8 - %.sroa.0.0.copyload = load ptr, ptr %40, align 8, !tbaa !13 + %.sroa.0.0.copyload = load i64, ptr %40, align 8, !tbaa !13 store ptr %1, ptr %40, align 8, !tbaa !34 %41 = call i32 @nghttp2_session_get_remote_window_size(ptr noundef nonnull %32) #7 %.not86 = icmp eq i32 %41, 0 @@ -1471,7 +1472,7 @@ define internal void @cf_h2_proxy_adjust_pollset(ptr noundef %0, ptr noundef %1, 93: ; preds = %90 %94 = load ptr, ptr %6, align 8, !tbaa !4 %95 = getelementptr inbounds nuw i8, ptr %94, i64 8 - %.sroa.0.0.copyload18 = load ptr, ptr %95, align 8, !tbaa !13 + %.sroa.0.0.copyload18 = load i64, ptr %95, align 8, !tbaa !13 store ptr %1, ptr %95, align 8, !tbaa !34 %96 = call i32 @nghttp2_session_want_write(ptr noundef %32) #7 %.not82 = icmp eq i32 %96, 0 @@ -1530,7 +1531,7 @@ define internal void @cf_h2_proxy_adjust_pollset(ptr noundef %0, ptr noundef %1, br i1 %128, label %.sink.split.sink.split, label %.sink.split .sink.split.sink.split: ; preds = %124, %81 - %.sroa.0.0.copyload18.sink.ph = phi ptr [ %.sroa.0.0.copyload, %81 ], [ %.sroa.0.0.copyload18, %124 ] + %.sroa.0.0.copyload18.sink.ph = phi i64 [ %.sroa.0.0.copyload, %81 ], [ %.sroa.0.0.copyload18, %124 ] %129 = load i8, ptr %4, align 1, !tbaa !29, !range !32, !noundef !33 %130 = zext nneg i8 %129 to i32 %131 = load i8, ptr %5, align 1, !tbaa !29, !range !32, !noundef !33 @@ -1539,10 +1540,10 @@ define internal void @cf_h2_proxy_adjust_pollset(ptr noundef %0, ptr noundef %1, br label %.sink.split .sink.split: ; preds = %.sink.split.sink.split, %124, %120, %113, %105, %81, %77, %70, %65 - %.sroa.0.0.copyload18.sink = phi ptr [ %.sroa.0.0.copyload, %65 ], [ %.sroa.0.0.copyload, %70 ], [ %.sroa.0.0.copyload, %77 ], [ %.sroa.0.0.copyload, %81 ], [ %.sroa.0.0.copyload18, %105 ], [ %.sroa.0.0.copyload18, %113 ], [ %.sroa.0.0.copyload18, %120 ], [ %.sroa.0.0.copyload18, %124 ], [ %.sroa.0.0.copyload18.sink.ph, %.sink.split.sink.split ] + %.sroa.0.0.copyload18.sink = phi i64 [ %.sroa.0.0.copyload, %65 ], [ %.sroa.0.0.copyload, %70 ], [ %.sroa.0.0.copyload, %77 ], [ %.sroa.0.0.copyload, %81 ], [ %.sroa.0.0.copyload18, %105 ], [ %.sroa.0.0.copyload18, %113 ], [ %.sroa.0.0.copyload18, %120 ], [ %.sroa.0.0.copyload18, %124 ], [ %.sroa.0.0.copyload18.sink.ph, %.sink.split.sink.split ] %133 = load ptr, ptr %6, align 8, !tbaa !4 %134 = getelementptr inbounds nuw i8, ptr %133, i64 8 - store ptr %.sroa.0.0.copyload18.sink, ptr %134, align 8, !tbaa !13 + store i64 %.sroa.0.0.copyload18.sink, ptr %134, align 8, !tbaa !13 br label %135 135: ; preds = %.sink.split, %86, %90 @@ -1607,7 +1608,7 @@ define internal i64 @cf_h2_proxy_send(ptr noundef %0, ptr noundef %1, ptr nounde 12: ; preds = %6 %13 = getelementptr inbounds nuw i8, ptr %8, i64 8 - %.sroa.0.0.copyload = load ptr, ptr %13, align 8, !tbaa !13 + %.sroa.0.0.copyload = load i64, ptr %13, align 8, !tbaa !13 store ptr %1, ptr %13, align 8, !tbaa !34 %14 = getelementptr inbounds nuw i8, ptr %8, i64 300 %15 = load i8, ptr %14, align 4 @@ -1829,7 +1830,7 @@ drain_tunnel.exit.thread: ; preds = %75, %98, %drain_tun 126: ; preds = %drain_tunnel.exit, %drain_tunnel.exit.thread, %105, %109, %114 %127 = load ptr, ptr %7, align 8, !tbaa !4 %128 = getelementptr inbounds nuw i8, ptr %127, i64 8 - store ptr %.sroa.0.0.copyload, ptr %128, align 8, !tbaa !13 + store i64 %.sroa.0.0.copyload, ptr %128, align 8, !tbaa !13 br label %129 129: ; preds = %126, %11 @@ -1852,7 +1853,7 @@ define internal i64 @cf_h2_proxy_recv(ptr noundef %0, ptr noundef %1, ptr nounde 11: ; preds = %5 %12 = getelementptr inbounds nuw i8, ptr %7, i64 8 - %.sroa.0.0.copyload = load ptr, ptr %12, align 8, !tbaa !13 + %.sroa.0.0.copyload = load i64, ptr %12, align 8, !tbaa !13 store ptr %1, ptr %12, align 8, !tbaa !34 %13 = getelementptr inbounds nuw i8, ptr %7, i64 152 %14 = tail call zeroext i1 @Curl_bufq_is_empty(ptr noundef nonnull %13) #7 @@ -2243,7 +2244,7 @@ drain_tunnel.exit.thread: ; preds = %165, %188, %drain_t 208: ; preds = %drain_tunnel.exit, %drain_tunnel.exit.thread, %195, %199, %204 %209 = load ptr, ptr %6, align 8, !tbaa !4 %210 = getelementptr inbounds nuw i8, ptr %209, i64 8 - store ptr %.sroa.0.0.copyload, ptr %210, align 8, !tbaa !13 + store i64 %.sroa.0.0.copyload, ptr %210, align 8, !tbaa !13 br label %211 211: ; preds = %208, %10 @@ -2260,7 +2261,7 @@ define internal i32 @cf_h2_proxy_cntrl(ptr noundef %0, ptr noundef %1, i32 nound %7 = getelementptr inbounds nuw i8, ptr %0, i64 16 %8 = load ptr, ptr %7, align 8, !tbaa !4 %9 = getelementptr inbounds nuw i8, ptr %8, i64 8 - %.sroa.0.0.copyload = load ptr, ptr %9, align 8, !tbaa !13 + %.sroa.0.0.copyload = load i64, ptr %9, align 8, !tbaa !13 store ptr %1, ptr %9, align 8, !tbaa !34 %10 = getelementptr inbounds nuw i8, ptr %8, i64 216 %11 = tail call zeroext i1 @Curl_bufq_is_empty(ptr noundef nonnull %10) #7 @@ -2326,7 +2327,7 @@ define internal i32 @cf_h2_proxy_cntrl(ptr noundef %0, ptr noundef %1, i32 nound cf_h2_proxy_flush.exit: ; preds = %20, %21, %28, %32, %37 %47 = load ptr, ptr %7, align 8, !tbaa !4 %48 = getelementptr inbounds nuw i8, ptr %47, i64 8 - store ptr %.sroa.0.0.copyload, ptr %48, align 8, !tbaa !13 + store i64 %.sroa.0.0.copyload, ptr %48, align 8, !tbaa !13 br label %49 49: ; preds = %5, %cf_h2_proxy_flush.exit @@ -2340,7 +2341,7 @@ define internal zeroext i1 @cf_h2_proxy_is_alive(ptr noundef %0, ptr noundef %1, %5 = getelementptr inbounds nuw i8, ptr %0, i64 16 %6 = load ptr, ptr %5, align 8, !tbaa !4 %7 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %.sroa.0.0.copyload = load ptr, ptr %7, align 8, !tbaa !13 + %.sroa.0.0.copyload = load i64, ptr %7, align 8, !tbaa !13 store ptr %1, ptr %7, align 8, !tbaa !34 %8 = load ptr, ptr %6, align 8, !tbaa !15 %.not24 = icmp eq ptr %8, null @@ -2441,7 +2442,7 @@ proxy_h2_connisalive.exit: ; preds = %proxy_h2_should_clo 55: ; preds = %proxy_h2_connisalive.exit, %36, %43, %47, %52 %56 = load ptr, ptr %5, align 8, !tbaa !4 %57 = getelementptr inbounds nuw i8, ptr %56, i64 8 - store ptr %.sroa.0.0.copyload, ptr %57, align 8, !tbaa !13 + store i64 %.sroa.0.0.copyload, ptr %57, align 8, !tbaa !13 ret i1 %34 } @@ -2542,7 +2543,7 @@ define dso_local i32 @Curl_cf_h2_proxy_insert_after(ptr noundef %0, ptr noundef 10: ; preds = %6 %11 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %.sroa.0.0.copyload.i.i = load ptr, ptr %11, align 8, !tbaa !13 + %.sroa.0.0.copyload.i.i = load i64, ptr %11, align 8, !tbaa !13 %12 = load ptr, ptr %5, align 8, !tbaa !15 %.not.i.i = icmp eq ptr %12, null br i1 %.not.i.i, label %cf_h2_proxy_ctx_clear.exit.i, label %13 @@ -2568,7 +2569,7 @@ cf_h2_proxy_ctx_clear.exit.i: ; preds = %13, %10 %22 = load ptr, ptr %21, align 8, !tbaa !28 call void %20(ptr noundef %22) #7 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(320) %5, i8 0, i64 320, i1 false) - store ptr %.sroa.0.0.copyload.i.i, ptr %11, align 8, !tbaa !13 + store i64 %.sroa.0.0.copyload.i.i, ptr %11, align 8, !tbaa !13 %23 = load ptr, ptr @Curl_cfree, align 8, !tbaa !27 call void %23(ptr noundef nonnull %5) #7 br label %cf_h2_proxy_ctx_free.exit diff --git a/bench/cmake/optimized/zstdmt_compress.ll b/bench/cmake/optimized/zstdmt_compress.ll index 8ac8c8b8918..82fb14fd630 100644 --- a/bench/cmake/optimized/zstdmt_compress.ll +++ b/bench/cmake/optimized/zstdmt_compress.ll @@ -2698,103 +2698,104 @@ define internal fastcc noundef ptr @ZSTDMT_expandBufferPool(ptr noundef %0, i32 %7 = getelementptr inbounds nuw i8, ptr %0, i64 24 %.sroa.025.0.copyload = load ptr, ptr %7, align 8, !tbaa !38 %.sroa.4.0..sroa_idx = getelementptr i8, ptr %0, i64 32 - %.sroa.4.0.copyload = load ptr, ptr %.sroa.4.0..sroa_idx, align 8, !tbaa !38 + %.sroa.4.0.copyload = load i64, ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.526.0..sroa_idx = getelementptr i8, ptr %0, i64 40 %.sroa.526.0.copyload = load ptr, ptr %.sroa.526.0..sroa_idx, align 8, !tbaa !38 %8 = getelementptr inbounds nuw i8, ptr %0, i64 8 %9 = load i64, ptr %8, align 8, !tbaa !101 %.not16.i = icmp eq i32 %6, 0 + %10 = inttoptr i64 %.sroa.4.0.copyload to ptr br i1 %.not16.i, label %._crit_edge.i, label %.lr.ph.i .lr.ph.i: ; preds = %.preheader.i - %10 = getelementptr inbounds nuw i8, ptr %0, i64 48 - br label %11 + %11 = getelementptr inbounds nuw i8, ptr %0, i64 48 + br label %12 -11: ; preds = %ZSTD_customFree.exit.i, %.lr.ph.i +12: ; preds = %ZSTD_customFree.exit.i, %.lr.ph.i %indvars.iv.i = phi i64 [ 0, %.lr.ph.i ], [ %indvars.iv.next.i, %ZSTD_customFree.exit.i ] - %12 = getelementptr inbounds nuw %struct.buffer_s, ptr %10, i64 %indvars.iv.i - %13 = load ptr, ptr %12, align 8, !tbaa !44 + %13 = getelementptr inbounds nuw %struct.buffer_s, ptr %11, i64 %indvars.iv.i + %14 = load ptr, ptr %13, align 8, !tbaa !44 %.val.i = load ptr, ptr %.sroa.4.0..sroa_idx, align 8 %.val9.i = load ptr, ptr %.sroa.526.0..sroa_idx, align 8 - %.not.i.i = icmp eq ptr %13, null - br i1 %.not.i.i, label %ZSTD_customFree.exit.i, label %14 + %.not.i.i = icmp eq ptr %14, null + br i1 %.not.i.i, label %ZSTD_customFree.exit.i, label %15 -14: ; preds = %11 +15: ; preds = %12 %.not4.i.i = icmp eq ptr %.val.i, null - br i1 %.not4.i.i, label %16, label %15 + br i1 %.not4.i.i, label %17, label %16 -15: ; preds = %14 - tail call void %.val.i(ptr noundef %.val9.i, ptr noundef nonnull %13) #15 +16: ; preds = %15 + tail call void %.val.i(ptr noundef %.val9.i, ptr noundef nonnull %14) #15 br label %ZSTD_customFree.exit.i -16: ; preds = %14 - tail call void @free(ptr noundef nonnull %13) #15 +17: ; preds = %15 + tail call void @free(ptr noundef nonnull %14) #15 br label %ZSTD_customFree.exit.i -ZSTD_customFree.exit.i: ; preds = %16, %15, %11 +ZSTD_customFree.exit.i: ; preds = %17, %16, %12 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %17 = load i32, ptr %5, align 8, !tbaa !37 - %18 = zext i32 %17 to i64 - %19 = icmp samesign ult i64 %indvars.iv.next.i, %18 - br i1 %19, label %11, label %._crit_edge.i.loopexit, !llvm.loop !45 + %18 = load i32, ptr %5, align 8, !tbaa !37 + %19 = zext i32 %18 to i64 + %20 = icmp samesign ult i64 %indvars.iv.next.i, %19 + br i1 %20, label %12, label %._crit_edge.i.loopexit, !llvm.loop !45 ._crit_edge.i.loopexit: ; preds = %ZSTD_customFree.exit.i %.val10.i.pre = load ptr, ptr %.sroa.4.0..sroa_idx, align 8 br label %._crit_edge.i ._crit_edge.i: ; preds = %._crit_edge.i.loopexit, %.preheader.i - %.val10.i = phi ptr [ %.val10.i.pre, %._crit_edge.i.loopexit ], [ %.sroa.4.0.copyload, %.preheader.i ] + %.val10.i = phi ptr [ %.val10.i.pre, %._crit_edge.i.loopexit ], [ %10, %.preheader.i ] %.not4.i13.i = icmp eq ptr %.val10.i, null - br i1 %.not4.i13.i, label %21, label %20 + br i1 %.not4.i13.i, label %22, label %21 -20: ; preds = %._crit_edge.i +21: ; preds = %._crit_edge.i %.val11.i = load ptr, ptr %.sroa.526.0..sroa_idx, align 8 tail call void %.val10.i(ptr noundef %.val11.i, ptr noundef nonnull %0) #15 br label %ZSTDMT_freeBufferPool.exit -21: ; preds = %._crit_edge.i +22: ; preds = %._crit_edge.i tail call void @free(ptr noundef nonnull %0) #15 br label %ZSTDMT_freeBufferPool.exit -ZSTDMT_freeBufferPool.exit: ; preds = %20, %21 - %22 = add i32 %1, -1 - %23 = zext i32 %22 to i64 - %24 = shl nuw nsw i64 %23, 4 - %25 = add nuw nsw i64 %24, 64 +ZSTDMT_freeBufferPool.exit: ; preds = %21, %22 + %23 = add i32 %1, -1 + %24 = zext i32 %23 to i64 + %25 = shl nuw nsw i64 %24, 4 + %26 = add nuw nsw i64 %25, 64 %.not.i.i17 = icmp eq ptr %.sroa.025.0.copyload, null - br i1 %.not.i.i17, label %28, label %26 + br i1 %.not.i.i17, label %29, label %27 -26: ; preds = %ZSTDMT_freeBufferPool.exit - %27 = tail call ptr %.sroa.025.0.copyload(ptr noundef %.sroa.526.0.copyload, i64 noundef range(i64 -17179869136, 1546188226201) %25) #15 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %27, i8 0, i64 range(i64 -17179869136, 1546188226201) %25, i1 false) +27: ; preds = %ZSTDMT_freeBufferPool.exit + %28 = tail call ptr %.sroa.025.0.copyload(ptr noundef %.sroa.526.0.copyload, i64 noundef range(i64 -17179869136, 1546188226201) %26) #15 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %28, i8 0, i64 range(i64 -17179869136, 1546188226201) %26, i1 false) br label %ZSTD_customCalloc.exit.i -28: ; preds = %ZSTDMT_freeBufferPool.exit - %29 = tail call noalias ptr @calloc(i64 noundef 1, i64 noundef range(i64 -17179869136, 1546188226201) %25) #16 +29: ; preds = %ZSTDMT_freeBufferPool.exit + %30 = tail call noalias ptr @calloc(i64 noundef 1, i64 noundef range(i64 -17179869136, 1546188226201) %26) #16 br label %ZSTD_customCalloc.exit.i -ZSTD_customCalloc.exit.i: ; preds = %28, %26 - %.0.i.i = phi ptr [ %27, %26 ], [ %29, %28 ] - %30 = icmp eq ptr %.0.i.i, null - br i1 %30, label %ZSTDMT_createBufferPool.exit.thread, label %31 - -31: ; preds = %ZSTD_customCalloc.exit.i - %32 = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 8 - %33 = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 16 - store i32 %1, ptr %33, align 8, !tbaa !37 - %34 = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 20 - store i32 0, ptr %34, align 4, !tbaa !35 - %35 = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 24 - store ptr %.sroa.025.0.copyload, ptr %35, align 8, !tbaa !38 +ZSTD_customCalloc.exit.i: ; preds = %29, %27 + %.0.i.i = phi ptr [ %28, %27 ], [ %30, %29 ] + %31 = icmp eq ptr %.0.i.i, null + br i1 %31, label %ZSTDMT_createBufferPool.exit.thread, label %32 + +32: ; preds = %ZSTD_customCalloc.exit.i + %33 = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 8 + %34 = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 16 + store i32 %1, ptr %34, align 8, !tbaa !37 + %35 = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 20 + store i32 0, ptr %35, align 4, !tbaa !35 + %36 = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 24 + store ptr %.sroa.025.0.copyload, ptr %36, align 8, !tbaa !38 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 32 - store ptr %.sroa.4.0.copyload, ptr %.sroa.5.0..sroa_idx, align 8, !tbaa !38 + store i64 %.sroa.4.0.copyload, ptr %.sroa.5.0..sroa_idx, align 8, !tbaa !38 %.sroa.522.0..sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 40 store ptr %.sroa.526.0.copyload, ptr %.sroa.522.0..sroa_idx, align 8, !tbaa !38 - store i64 %9, ptr %32, align 8, !tbaa !101 + store i64 %9, ptr %33, align 8, !tbaa !101 br label %ZSTDMT_createBufferPool.exit.thread -ZSTDMT_createBufferPool.exit.thread: ; preds = %ZSTD_customCalloc.exit.i, %31, %4, %2 - %.0 = phi ptr [ null, %2 ], [ %0, %4 ], [ %.0.i.i, %31 ], [ null, %ZSTD_customCalloc.exit.i ] +ZSTDMT_createBufferPool.exit.thread: ; preds = %ZSTD_customCalloc.exit.i, %32, %4, %2 + %.0 = phi ptr [ null, %2 ], [ %0, %4 ], [ %.0.i.i, %32 ], [ null, %ZSTD_customCalloc.exit.i ] ret ptr %.0 } diff --git a/bench/coreutils-rs/optimized/2oqtsf9adaj2wzr6.ll b/bench/coreutils-rs/optimized/2oqtsf9adaj2wzr6.ll index 4910576e80a..6a748d557c7 100644 --- a/bench/coreutils-rs/optimized/2oqtsf9adaj2wzr6.ll +++ b/bench/coreutils-rs/optimized/2oqtsf9adaj2wzr6.ll @@ -8115,7 +8115,7 @@ define hidden void @"_ZN5rayon4iter6extend91_$LT$impl$u20$rayon..iter..ParallelE %8 = alloca i64, align 8 %9 = alloca { ptr, i64, i64, {} }, align 8 %10 = alloca i64, align 8 - %.sroa.0.0.copyload17 = load ptr, ptr %1, align 8, !alias.scope !1560 + %.sroa.0.0.copyload17 = load i64, ptr %1, align 8, !alias.scope !1560 %.sroa.5.0..sroa_idx20 = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.5.0.copyload21 = load i64, ptr %.sroa.5.0..sroa_idx20, align 8, !alias.scope !1560 %.sroa.6.0..sroa_idx24 = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -8174,7 +8174,7 @@ define hidden void @"_ZN5rayon4iter6extend91_$LT$impl$u20$rayon..iter..ParallelE %28 = load ptr, ptr %27, align 8, !alias.scope !1583, !noalias !1582, !nonnull !12, !noundef !12 %29 = getelementptr inbounds { i64, i64, i8, [7 x i8] }, ptr %28, i64 %26 call void @llvm.lifetime.start.p0(ptr nonnull %5), !noalias !1588 - store ptr %.sroa.0.0.copyload17, ptr %5, align 8, !noalias !1592 + store i64 %.sroa.0.0.copyload17, ptr %5, align 8, !noalias !1592 %.sroa.436.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 8 store i64 %.sroa.5.0.copyload21, ptr %.sroa.436.0..sroa_idx, align 8, !noalias !1592 %.sroa.537.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 16 @@ -8182,81 +8182,82 @@ define hidden void @"_ZN5rayon4iter6extend91_$LT$impl$u20$rayon..iter..ParallelE %.sroa.638.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.638.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.7.0..sroa_idx27, i64 24, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !1593) + %30 = inttoptr i64 %.sroa.0.0.copyload17 to ptr %.sroa.6.0.copyload.i.i.i = load i64, ptr %.sroa.638.0..sroa_idx, align 8, !alias.scope !1593, !noalias !1596 - br i1 %11, label %"_ZN5rayon4iter7collect14special_extend28_$u7b$$u7b$closure$u7d$$u7d$17hc8a3a0c98ee3b84bE.exit.i", label %30 + br i1 %11, label %"_ZN5rayon4iter7collect14special_extend28_$u7b$$u7b$closure$u7d$$u7d$17hc8a3a0c98ee3b84bE.exit.i", label %31 -30: ; preds = %"_ZN5rayon4iter7collect8consumer24CollectConsumer$LT$T$GT$8appender17hfb16059cd5ced269E.exit.i" - %31 = icmp eq i64 %.sroa.6.0.copyload25, 0 - br i1 %31, label %36, label %32, !prof !1564 +31: ; preds = %"_ZN5rayon4iter7collect8consumer24CollectConsumer$LT$T$GT$8appender17hfb16059cd5ced269E.exit.i" + %32 = icmp eq i64 %.sroa.6.0.copyload25, 0 + br i1 %32, label %37, label %33, !prof !1564 -32: ; preds = %30 - %33 = add i64 %.sroa.5.0.copyload21, -1 - %34 = udiv i64 %33, %.sroa.6.0.copyload25 - %35 = add nuw i64 %34, 1 +33: ; preds = %31 + %34 = add i64 %.sroa.5.0.copyload21, -1 + %35 = udiv i64 %34, %.sroa.6.0.copyload25 + %36 = add nuw i64 %35, 1 br label %"_ZN5rayon4iter7collect14special_extend28_$u7b$$u7b$closure$u7d$$u7d$17hc8a3a0c98ee3b84bE.exit.i" -36: ; preds = %30 +37: ; preds = %31 tail call void @_ZN4core9panicking5panic17h44790a89027c670fE(ptr noalias noundef nonnull readonly align 1 @str.0.llvm.687266931824691263, i64 noundef 25, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.8bc848f7dd0dfb57e1f6a25012cf8bbb.78.llvm.687266931824691263) #33, !noalias !1598 unreachable -"_ZN5rayon4iter7collect14special_extend28_$u7b$$u7b$closure$u7d$$u7d$17hc8a3a0c98ee3b84bE.exit.i": ; preds = %32, %"_ZN5rayon4iter7collect8consumer24CollectConsumer$LT$T$GT$8appender17hfb16059cd5ced269E.exit.i" - %.0.i.i.i.i.i.i.i.i = phi i64 [ %35, %32 ], [ 0, %"_ZN5rayon4iter7collect8consumer24CollectConsumer$LT$T$GT$8appender17hfb16059cd5ced269E.exit.i" ] - %37 = getelementptr inbounds nuw i8, ptr %5, i64 32 - %38 = icmp ne ptr %.sroa.0.0.copyload17, null - tail call void @llvm.assume(i1 %38) +"_ZN5rayon4iter7collect14special_extend28_$u7b$$u7b$closure$u7d$$u7d$17hc8a3a0c98ee3b84bE.exit.i": ; preds = %33, %"_ZN5rayon4iter7collect8consumer24CollectConsumer$LT$T$GT$8appender17hfb16059cd5ced269E.exit.i" + %.0.i.i.i.i.i.i.i.i = phi i64 [ %36, %33 ], [ 0, %"_ZN5rayon4iter7collect8consumer24CollectConsumer$LT$T$GT$8appender17hfb16059cd5ced269E.exit.i" ] + %38 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %39 = icmp ne i64 %.sroa.0.0.copyload17, 0 + tail call void @llvm.assume(i1 %39) call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !1613 - store ptr %37, ptr %4, align 8, !noalias !1622 + store ptr %38, ptr %4, align 8, !noalias !1622 %.sroa.2.0..sroa_idx.i.i.i = getelementptr inbounds nuw i8, ptr %4, i64 8 store ptr %29, ptr %.sroa.2.0..sroa_idx.i.i.i, align 8, !noalias !1622 %.sroa.3.0..sroa_idx.i.i.i = getelementptr inbounds nuw i8, ptr %4, i64 16 store i64 %.0.i.i.i.i, ptr %.sroa.3.0..sroa_idx.i.i.i, align 8, !noalias !1622 %.sroa.42.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %4, i64 24 store i64 %.0.i.i.i.i.i.i.i.i, ptr %.sroa.42.0..sroa_idx.i.i.i.i.i, align 8, !noalias !1623 - %39 = getelementptr inbounds nuw i8, ptr %4, i64 32 - store i64 %.sroa.6.0.copyload.i.i.i, ptr %39, align 8, !noalias !1613 + %40 = getelementptr inbounds nuw i8, ptr %4, i64 32 + store i64 %.sroa.6.0.copyload.i.i.i, ptr %40, align 8, !noalias !1613 call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !1624 - %40 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store i64 %.sroa.6.0.copyload25, ptr %40, align 8, !noalias !1624 - store ptr %.sroa.0.0.copyload17, ptr %3, align 8, !noalias !1624 - %41 = getelementptr inbounds nuw i8, ptr %3, i64 8 - store i64 %.sroa.5.0.copyload21, ptr %41, align 8, !noalias !1624 + %41 = getelementptr inbounds nuw i8, ptr %3, i64 16 + store i64 %.sroa.6.0.copyload25, ptr %41, align 8, !noalias !1624 + store ptr %30, ptr %3, align 8, !noalias !1624 + %42 = getelementptr inbounds nuw i8, ptr %3, i64 8 + store i64 %.sroa.5.0.copyload21, ptr %42, align 8, !noalias !1624 call void @"_ZN193_$LT$$LT$rayon..iter..len..MaxLen$LT$I$GT$$u20$as$u20$rayon..iter..IndexedParallelIterator$GT$..with_producer..Callback$LT$CB$GT$$u20$as$u20$rayon..iter..plumbing..ProducerCallback$LT$T$GT$$GT$8callback17hf6444c705e79cfa4E"(ptr noalias noundef nonnull sret({ ptr, i64, i64, {} }) align 8 captures(none) dereferenceable(24) %9, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(40) %4, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %3), !noalias !1629 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !1624 call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !1613 call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !1588 call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !1577 - %42 = getelementptr inbounds nuw i8, ptr %9, i64 16 - %43 = load i64, ptr %42, align 8, !noalias !1577, !noundef !12 - store i64 %43, ptr %8, align 8, !noalias !1577 - %.not.i = icmp eq i64 %43, %.0.i.i.i.i - br i1 %.not.i, label %_ZN5rayon4iter7collect21collect_with_consumer17h8bd715d4c7ec74dbE.exit, label %44 + %43 = getelementptr inbounds nuw i8, ptr %9, i64 16 + %44 = load i64, ptr %43, align 8, !noalias !1577, !noundef !12 + store i64 %44, ptr %8, align 8, !noalias !1577 + %.not.i = icmp eq i64 %44, %.0.i.i.i.i + br i1 %.not.i, label %_ZN5rayon4iter7collect21collect_with_consumer17h8bd715d4c7ec74dbE.exit, label %45 -44: ; preds = %"_ZN5rayon4iter7collect14special_extend28_$u7b$$u7b$closure$u7d$$u7d$17hc8a3a0c98ee3b84bE.exit.i" +45: ; preds = %"_ZN5rayon4iter7collect14special_extend28_$u7b$$u7b$closure$u7d$$u7d$17hc8a3a0c98ee3b84bE.exit.i" call void @llvm.lifetime.start.p0(ptr nonnull %7), !noalias !1577 call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !1577 store ptr %10, ptr %6, align 8, !noalias !1577 - %45 = getelementptr inbounds nuw i8, ptr %6, i64 8 - store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h0516a742b2dd93cdE", ptr %45, align 8, !noalias !1577 - %46 = getelementptr inbounds nuw i8, ptr %6, i64 16 - store ptr %8, ptr %46, align 8, !noalias !1577 - %47 = getelementptr inbounds nuw i8, ptr %6, i64 24 - store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h0516a742b2dd93cdE", ptr %47, align 8, !noalias !1577 + %46 = getelementptr inbounds nuw i8, ptr %6, i64 8 + store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h0516a742b2dd93cdE", ptr %46, align 8, !noalias !1577 + %47 = getelementptr inbounds nuw i8, ptr %6, i64 16 + store ptr %8, ptr %47, align 8, !noalias !1577 + %48 = getelementptr inbounds nuw i8, ptr %6, i64 24 + store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h0516a742b2dd93cdE", ptr %48, align 8, !noalias !1577 store ptr @anon.613dbf0bc33d550c317acf1fc6a04ca9.88, ptr %7, align 8, !alias.scope !1630, !noalias !1633 - %48 = getelementptr inbounds nuw i8, ptr %7, i64 8 - store i64 2, ptr %48, align 8, !alias.scope !1630, !noalias !1633 - %49 = getelementptr inbounds nuw i8, ptr %7, i64 32 - store ptr null, ptr %49, align 8, !alias.scope !1630, !noalias !1633 - %50 = getelementptr inbounds nuw i8, ptr %7, i64 16 - store ptr %6, ptr %50, align 8, !alias.scope !1630, !noalias !1633 - %51 = getelementptr inbounds nuw i8, ptr %7, i64 24 - store i64 2, ptr %51, align 8, !alias.scope !1630, !noalias !1633 + %49 = getelementptr inbounds nuw i8, ptr %7, i64 8 + store i64 2, ptr %49, align 8, !alias.scope !1630, !noalias !1633 + %50 = getelementptr inbounds nuw i8, ptr %7, i64 32 + store ptr null, ptr %50, align 8, !alias.scope !1630, !noalias !1633 + %51 = getelementptr inbounds nuw i8, ptr %7, i64 16 + store ptr %6, ptr %51, align 8, !alias.scope !1630, !noalias !1633 + %52 = getelementptr inbounds nuw i8, ptr %7, i64 24 + store i64 2, ptr %52, align 8, !alias.scope !1630, !noalias !1633 call void @_ZN4core9panicking9panic_fmt17ha6effc2775a0749cE(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %7, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.613dbf0bc33d550c317acf1fc6a04ca9.90) #33, !noalias !1582 unreachable _ZN5rayon4iter7collect21collect_with_consumer17h8bd715d4c7ec74dbE.exit: ; preds = %"_ZN5rayon4iter7collect14special_extend28_$u7b$$u7b$closure$u7d$$u7d$17hc8a3a0c98ee3b84bE.exit.i" - %52 = load i64, ptr %19, align 8, !alias.scope !1574, !noalias !1582, !noundef !12 - %53 = add i64 %52, %.0.i.i.i.i - store i64 %53, ptr %19, align 8, !alias.scope !1574, !noalias !1582 + %53 = load i64, ptr %19, align 8, !alias.scope !1574, !noalias !1582, !noundef !12 + %54 = add i64 %53, %.0.i.i.i.i + store i64 %54, ptr %19, align 8, !alias.scope !1574, !noalias !1582 call void @llvm.lifetime.end.p0(ptr nonnull %8), !noalias !1577 call void @llvm.lifetime.end.p0(ptr nonnull %9), !noalias !1577 call void @llvm.lifetime.end.p0(ptr nonnull %10) diff --git a/bench/cpp-httplib/optimized/httplib.ll b/bench/cpp-httplib/optimized/httplib.ll index cad84d6d207..7f79b161576 100644 --- a/bench/cpp-httplib/optimized/httplib.ll +++ b/bench/cpp-httplib/optimized/httplib.ll @@ -23896,14 +23896,14 @@ _ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_strin br label %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit40 _ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20._ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.thread.i39_crit_edge: ; preds = %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit.thread55 - %.in.in67 = getelementptr i8, ptr %3, i64 8 + %.in.in68 = getelementptr i8, ptr %3, i64 8 br label %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit40 _ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit40: ; preds = %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit34.thread53, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20._ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.thread.i39_crit_edge, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20 - %.in69.in = phi ptr [ %.in.in, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20 ], [ %.in.in67, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20._ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.thread.i39_crit_edge ], [ %14, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit34.thread53 ] %16 = phi ptr [ %3, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20 ], [ %3, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20._ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.thread.i39_crit_edge ], [ %15, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit34.thread53 ] - %.in69 = load i64, ptr %.in69.in, align 8 - %17 = inttoptr i64 %.in69 to ptr + %.sroa.011.0.copyload4450.in = phi ptr [ %.in.in, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20 ], [ %.in.in68, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20._ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.thread.i39_crit_edge ], [ %14, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit34.thread53 ] + %.sroa.011.0.copyload4450 = load i64, ptr %.sroa.011.0.copyload4450.in, align 8 + %17 = inttoptr i64 %.sroa.011.0.copyload4450 to ptr %18 = load ptr, ptr %16, align 8, !tbaa !82 %19 = icmp eq ptr %18, %17 br i1 %19, label %20, label %49 @@ -23935,10 +23935,11 @@ _ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_strin %37 = sub i64 %35, %36 %38 = getelementptr i8, ptr %34, i64 %37 %39 = getelementptr i8, ptr %38, i64 -48 - store ptr %17, ptr %39, align 8, !tbaa !82 + store i64 %.sroa.011.0.copyload4450, ptr %39, align 8, !tbaa !82 %40 = getelementptr i8, ptr %38, i64 -40 + %.cast61 = inttoptr i64 %.sroa.011.0.copyload4450 to ptr %41 = load ptr, ptr %40, align 8, !tbaa !82 - %42 = icmp ne ptr %41, %17 + %42 = icmp ne ptr %41, %.cast61 %43 = getelementptr i8, ptr %38, i64 -32 %44 = zext i1 %42 to i8 store i8 %44, ptr %43, align 8, !tbaa !78 @@ -23972,10 +23973,11 @@ _ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_strin %62 = sub i64 %60, %61 %63 = getelementptr i8, ptr %59, i64 %62 %64 = getelementptr i8, ptr %63, i64 -48 - store ptr %17, ptr %64, align 8, !tbaa !82 + store i64 %.sroa.011.0.copyload4450, ptr %64, align 8, !tbaa !82 %65 = getelementptr i8, ptr %63, i64 -40 + %.cast = inttoptr i64 %.sroa.011.0.copyload4450 to ptr %66 = load ptr, ptr %65, align 8, !tbaa !82 - %67 = icmp ne ptr %66, %17 + %67 = icmp ne ptr %66, %.cast %68 = getelementptr i8, ptr %63, i64 -32 %69 = zext i1 %67 to i8 store i8 %69, ptr %68, align 8, !tbaa !78 @@ -114852,13 +114854,13 @@ common.ret: ; preds = %91, %92, %50, %53, %61 = load i64, ptr %60, align 8, !tbaa !14 %62 = load ptr, ptr %0, align 8, !tbaa !84 %63 = getelementptr inbounds nuw %"class.std::__cxx11::sub_match", ptr %62, i64 %61 - %.sroa.0.0.copyload.i = load ptr, ptr %63, align 8, !tbaa !82 + %.sroa.0.0.copyload.i = load i64, ptr %63, align 8, !tbaa !82 %64 = load i64, ptr %11, align 8, !tbaa !82 store i64 %64, ptr %63, align 8, !tbaa !82 %65 = getelementptr inbounds nuw i8, ptr %17, i64 8 %66 = load i64, ptr %65, align 8, !tbaa !1260 tail call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %66) - store ptr %.sroa.0.0.copyload.i, ptr %63, align 8, !tbaa !82 + store i64 %.sroa.0.0.copyload.i, ptr %63, align 8, !tbaa !82 br label %common.ret 67: ; preds = %.lr.ph @@ -115312,7 +115314,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8, !tbaa !78, !range !47, !noundef !48 %16 = trunc nuw i8 %15 to i1 - br i1 %16, label %17, label %50 + br i1 %16, label %17, label %51 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -115360,7 +115362,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato store ptr %33, ptr %36, align 8, !tbaa !1249 %37 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) call void @llvm.lifetime.end.p0(ptr nonnull %4) - br i1 %37, label %41, label %50 + br i1 %37, label %41, label %51 38: ; preds = %27 %39 = getelementptr inbounds nuw i8, ptr %.sroa.017.023, i64 1 @@ -115369,26 +115371,27 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato br i1 %.not, label %.critedge, label %27, !llvm.loop !1778 41: ; preds = %.critedge - %42 = load ptr, ptr %18, align 8, !tbaa !82 + %42 = load ptr, ptr %18, align 8 %.not21 = icmp eq ptr %.sroa.017.0.lcssa, %42 - br i1 %.not21, label %47, label %43 + br i1 %.not21, label %48, label %43 43: ; preds = %41 - %44 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + %44 = ptrtoint ptr %42 to i64 + %45 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + store i64 %45, ptr %18, align 8, !tbaa !82 + %46 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %47 = load i64, ptr %46, align 8, !tbaa !1260 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %47) store i64 %44, ptr %18, align 8, !tbaa !82 - %45 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %46 = load i64, ptr %45, align 8, !tbaa !1260 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %46) - store ptr %42, ptr %18, align 8, !tbaa !82 - br label %50 + br label %51 -47: ; preds = %41 - %48 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %49 = load i64, ptr %48, align 8, !tbaa !1260 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %49) - br label %50 +48: ; preds = %41 + %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %50 = load i64, ptr %49, align 8, !tbaa !1260 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %50) + br label %51 -50: ; preds = %.critedge, %47, %43, %3 +51: ; preds = %.critedge, %48, %43, %3 ret void } @@ -116358,13 +116361,13 @@ common.ret: ; preds = %121, %_ZNKSt8__deta %77 = load i64, ptr %76, align 8, !tbaa !14 %78 = load ptr, ptr %0, align 8, !tbaa !84 %79 = getelementptr inbounds nuw %"class.std::__cxx11::sub_match", ptr %78, i64 %77 - %.sroa.0.0.copyload.i = load ptr, ptr %79, align 8, !tbaa !82 + %.sroa.0.0.copyload.i = load i64, ptr %79, align 8, !tbaa !82 %80 = load i64, ptr %7, align 8, !tbaa !82 store i64 %80, ptr %79, align 8, !tbaa !82 %81 = getelementptr inbounds nuw i8, ptr %12, i64 8 %82 = load i64, ptr %81, align 8, !tbaa !1260 tail call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %82) - store ptr %.sroa.0.0.copyload.i, ptr %79, align 8, !tbaa !82 + store i64 %.sroa.0.0.copyload.i, ptr %79, align 8, !tbaa !82 br label %common.ret 83: ; preds = %tailrecurse @@ -116574,7 +116577,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8, !tbaa !78, !range !47, !noundef !48 %16 = trunc nuw i8 %15 to i1 - br i1 %16, label %17, label %50 + br i1 %16, label %17, label %51 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -116622,7 +116625,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato store ptr %33, ptr %36, align 8, !tbaa !1249 %37 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) call void @llvm.lifetime.end.p0(ptr nonnull %4) - br i1 %37, label %41, label %50 + br i1 %37, label %41, label %51 38: ; preds = %27 %39 = getelementptr inbounds nuw i8, ptr %.sroa.017.023, i64 1 @@ -116631,26 +116634,27 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato br i1 %.not, label %.critedge, label %27, !llvm.loop !1784 41: ; preds = %.critedge - %42 = load ptr, ptr %18, align 8, !tbaa !82 + %42 = load ptr, ptr %18, align 8 %.not21 = icmp eq ptr %.sroa.017.0.lcssa, %42 - br i1 %.not21, label %47, label %43 + br i1 %.not21, label %48, label %43 43: ; preds = %41 - %44 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + %44 = ptrtoint ptr %42 to i64 + %45 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + store i64 %45, ptr %18, align 8, !tbaa !82 + %46 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %47 = load i64, ptr %46, align 8, !tbaa !1260 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %47) store i64 %44, ptr %18, align 8, !tbaa !82 - %45 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %46 = load i64, ptr %45, align 8, !tbaa !1260 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %46) - store ptr %42, ptr %18, align 8, !tbaa !82 - br label %50 + br label %51 -47: ; preds = %41 - %48 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %49 = load i64, ptr %48, align 8, !tbaa !1260 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %49) - br label %50 +48: ; preds = %41 + %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %50 = load i64, ptr %49, align 8, !tbaa !1260 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %50) + br label %51 -50: ; preds = %.critedge, %47, %43, %3 +51: ; preds = %.critedge, %48, %43, %3 ret void } diff --git a/bench/cvc5/optimized/options_handler.ll b/bench/cvc5/optimized/options_handler.ll index c877c7ab7d5..905fc85bd4b 100644 --- a/bench/cvc5/optimized/options_handler.ll +++ b/bench/cvc5/optimized/options_handler.ll @@ -32692,13 +32692,13 @@ common.ret: ; preds = %91, %92, %50, %53, %61 = load i64, ptr %60, align 8, !tbaa !223 %62 = load ptr, ptr %0, align 8, !tbaa !259 %63 = getelementptr inbounds nuw %"class.std::__cxx11::sub_match", ptr %62, i64 %61 - %.sroa.0.0.copyload.i = load ptr, ptr %63, align 8, !tbaa !676 + %.sroa.0.0.copyload.i = load i64, ptr %63, align 8, !tbaa !676 %64 = load i64, ptr %11, align 8, !tbaa !676 store i64 %64, ptr %63, align 8, !tbaa !676 %65 = getelementptr inbounds nuw i8, ptr %17, i64 8 %66 = load i64, ptr %65, align 8, !tbaa !368 tail call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %66) - store ptr %.sroa.0.0.copyload.i, ptr %63, align 8, !tbaa !676 + store i64 %.sroa.0.0.copyload.i, ptr %63, align 8, !tbaa !676 br label %common.ret 67: ; preds = %.lr.ph @@ -33152,7 +33152,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8, !tbaa !905, !range !235, !noundef !236 %16 = trunc nuw i8 %15 to i1 - br i1 %16, label %17, label %50 + br i1 %16, label %17, label %51 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -33200,7 +33200,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato store ptr %33, ptr %36, align 8, !tbaa !356 %37 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) call void @llvm.lifetime.end.p0(ptr nonnull %4) - br i1 %37, label %41, label %50 + br i1 %37, label %41, label %51 38: ; preds = %27 %39 = getelementptr inbounds nuw i8, ptr %.sroa.017.023, i64 1 @@ -33209,26 +33209,27 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato br i1 %.not, label %.critedge, label %27, !llvm.loop !939 41: ; preds = %.critedge - %42 = load ptr, ptr %18, align 8, !tbaa !676 + %42 = load ptr, ptr %18, align 8 %.not21 = icmp eq ptr %.sroa.017.0.lcssa, %42 - br i1 %.not21, label %47, label %43 + br i1 %.not21, label %48, label %43 43: ; preds = %41 - %44 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + %44 = ptrtoint ptr %42 to i64 + %45 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + store i64 %45, ptr %18, align 8, !tbaa !676 + %46 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %47 = load i64, ptr %46, align 8, !tbaa !368 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %47) store i64 %44, ptr %18, align 8, !tbaa !676 - %45 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %46 = load i64, ptr %45, align 8, !tbaa !368 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %46) - store ptr %42, ptr %18, align 8, !tbaa !676 - br label %50 + br label %51 -47: ; preds = %41 - %48 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %49 = load i64, ptr %48, align 8, !tbaa !368 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %49) - br label %50 +48: ; preds = %41 + %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %50 = load i64, ptr %49, align 8, !tbaa !368 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %50) + br label %51 -50: ; preds = %.critedge, %47, %43, %3 +51: ; preds = %.critedge, %48, %43, %3 ret void } @@ -34354,13 +34355,13 @@ common.ret: ; preds = %121, %_ZNKSt8__deta %77 = load i64, ptr %76, align 8, !tbaa !223 %78 = load ptr, ptr %0, align 8, !tbaa !259 %79 = getelementptr inbounds nuw %"class.std::__cxx11::sub_match", ptr %78, i64 %77 - %.sroa.0.0.copyload.i = load ptr, ptr %79, align 8, !tbaa !676 + %.sroa.0.0.copyload.i = load i64, ptr %79, align 8, !tbaa !676 %80 = load i64, ptr %7, align 8, !tbaa !676 store i64 %80, ptr %79, align 8, !tbaa !676 %81 = getelementptr inbounds nuw i8, ptr %12, i64 8 %82 = load i64, ptr %81, align 8, !tbaa !368 tail call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %82) - store ptr %.sroa.0.0.copyload.i, ptr %79, align 8, !tbaa !676 + store i64 %.sroa.0.0.copyload.i, ptr %79, align 8, !tbaa !676 br label %common.ret 83: ; preds = %tailrecurse @@ -34570,7 +34571,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8, !tbaa !905, !range !235, !noundef !236 %16 = trunc nuw i8 %15 to i1 - br i1 %16, label %17, label %50 + br i1 %16, label %17, label %51 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -34618,7 +34619,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato store ptr %33, ptr %36, align 8, !tbaa !356 %37 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) call void @llvm.lifetime.end.p0(ptr nonnull %4) - br i1 %37, label %41, label %50 + br i1 %37, label %41, label %51 38: ; preds = %27 %39 = getelementptr inbounds nuw i8, ptr %.sroa.017.023, i64 1 @@ -34627,26 +34628,27 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato br i1 %.not, label %.critedge, label %27, !llvm.loop !948 41: ; preds = %.critedge - %42 = load ptr, ptr %18, align 8, !tbaa !676 + %42 = load ptr, ptr %18, align 8 %.not21 = icmp eq ptr %.sroa.017.0.lcssa, %42 - br i1 %.not21, label %47, label %43 + br i1 %.not21, label %48, label %43 43: ; preds = %41 - %44 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + %44 = ptrtoint ptr %42 to i64 + %45 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + store i64 %45, ptr %18, align 8, !tbaa !676 + %46 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %47 = load i64, ptr %46, align 8, !tbaa !368 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %47) store i64 %44, ptr %18, align 8, !tbaa !676 - %45 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %46 = load i64, ptr %45, align 8, !tbaa !368 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %46) - store ptr %42, ptr %18, align 8, !tbaa !676 - br label %50 + br label %51 -47: ; preds = %41 - %48 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %49 = load i64, ptr %48, align 8, !tbaa !368 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %49) - br label %50 +48: ; preds = %41 + %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %50 = load i64, ptr %49, align 8, !tbaa !368 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %50) + br label %51 -50: ; preds = %.critedge, %47, %43, %3 +51: ; preds = %.critedge, %48, %43, %3 ret void } diff --git a/bench/delta-rs/optimized/31i6j0ayu6bevt9n.ll b/bench/delta-rs/optimized/31i6j0ayu6bevt9n.ll index c17e96225ef..ca998783929 100644 --- a/bench/delta-rs/optimized/31i6j0ayu6bevt9n.ll +++ b/bench/delta-rs/optimized/31i6j0ayu6bevt9n.ll @@ -834,12 +834,10 @@ _ZN5alloc5alloc15exchange_malloc17he27dc27497df8aaaE.exit: ; preds = %"_ZN6chron store i64 1, ptr %17, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 8 store i64 1, ptr %.sroa.4.0..sroa_idx, align 8 - %.sroa.5.0..sroa_idx10 = getelementptr inbounds nuw i8, ptr %17, i64 16 - store i32 0, ptr %.sroa.5.0..sroa_idx10, align 8 - %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 20 - store i8 0, ptr %.sroa.6.0..sroa_idx, align 4 - %.sroa.711.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 24 - store i64 %37, ptr %.sroa.711.0..sroa_idx, align 8 + %.sroa.5.0..sroa_idx11 = getelementptr inbounds nuw i8, ptr %17, i64 16 + store i64 0, ptr %.sroa.5.0..sroa_idx11, align 8 + %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 24 + store i64 %37, ptr %.sroa.6.0..sroa_idx, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %1) ret ptr %17 } diff --git a/bench/delta-rs/optimized/s2xrj2sh770tx8d.ll b/bench/delta-rs/optimized/s2xrj2sh770tx8d.ll index 405af4856c7..807c8386ca9 100644 --- a/bench/delta-rs/optimized/s2xrj2sh770tx8d.ll +++ b/bench/delta-rs/optimized/s2xrj2sh770tx8d.ll @@ -45772,77 +45772,80 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h7a0280ef360f84c5E.llvm.18123 %.sroa.65.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 32 %.sroa.65.0.copyload = load i64, ptr %.sroa.65.0..sroa_idx, align 8 %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 40 - %.sroa.7.0.copyload = load ptr, ptr %.sroa.7.0..sroa_idx, align 8, !nonnull !4, !noundef !4 + %.sroa.7.0.copyload = load i64, ptr %.sroa.7.0..sroa_idx, align 8 + %15 = inttoptr i64 %.sroa.7.0.copyload to ptr + %16 = icmp ne i64 %.sroa.7.0.copyload, 0 + tail call void @llvm.assume(i1 %16) call void @llvm.lifetime.start.p0(ptr nonnull %5), !noalias !14262 store ptr %6, ptr %5, align 8, !noalias !14275 call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !14275 - store ptr %.sroa.7.0.copyload, ptr %4, align 8, !noalias !14279 - %15 = getelementptr inbounds nuw i8, ptr %4, i64 8 - store ptr %5, ptr %15, align 8, !noalias !14279 + store ptr %15, ptr %4, align 8, !noalias !14279 + %17 = getelementptr inbounds nuw i8, ptr %4, i64 8 + store ptr %5, ptr %17, align 8, !noalias !14279 br label %.outer.i.i.i.i.i.i.i.i .outer.i.i.i.i.i.i.i.i: ; preds = %.noexc, %"_ZN73_$LT$std..hash..random..RandomState$u20$as$u20$core..default..Default$GT$7default17h6420f6cd5f39a78aE.llvm.18123795597341512700.exit" - %16 = phi i16 [ %24, %.noexc ], [ %.sroa.54.0.copyload, %"_ZN73_$LT$std..hash..random..RandomState$u20$as$u20$core..default..Default$GT$7default17h6420f6cd5f39a78aE.llvm.18123795597341512700.exit" ] + %18 = phi i16 [ %26, %.noexc ], [ %.sroa.54.0.copyload, %"_ZN73_$LT$std..hash..random..RandomState$u20$as$u20$core..default..Default$GT$7default17h6420f6cd5f39a78aE.llvm.18123795597341512700.exit" ] %.lcssa1722.i.i.i.i.i.i.i.i = phi ptr [ %.lcssa1721.i.i.i.i.i.i.i.i, %.noexc ], [ %.sroa.4.0.copyload, %"_ZN73_$LT$std..hash..random..RandomState$u20$as$u20$core..default..Default$GT$7default17h6420f6cd5f39a78aE.llvm.18123795597341512700.exit" ] %.lcssa1620.i.i.i.i.i.i.i.i = phi ptr [ %.lcssa1619.i.i.i.i.i.i.i.i, %.noexc ], [ %.sroa.0.0.copyload, %"_ZN73_$LT$std..hash..random..RandomState$u20$as$u20$core..default..Default$GT$7default17h6420f6cd5f39a78aE.llvm.18123795597341512700.exit" ] - %.0.ph.i.i.i.i.i.i.i.i = phi i64 [ %25, %.noexc ], [ %.sroa.65.0.copyload, %"_ZN73_$LT$std..hash..random..RandomState$u20$as$u20$core..default..Default$GT$7default17h6420f6cd5f39a78aE.llvm.18123795597341512700.exit" ] - %.not.i13.i.i.i.i.i.i.i.i = icmp eq i16 %16, 0 + %.0.ph.i.i.i.i.i.i.i.i = phi i64 [ %27, %.noexc ], [ %.sroa.65.0.copyload, %"_ZN73_$LT$std..hash..random..RandomState$u20$as$u20$core..default..Default$GT$7default17h6420f6cd5f39a78aE.llvm.18123795597341512700.exit" ] + %.not.i13.i.i.i.i.i.i.i.i = icmp eq i16 %18, 0 br i1 %.not.i13.i.i.i.i.i.i.i.i, label %.lr.ph.i.i.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i.i.i: ; preds = %.outer.i.i.i.i.i.i.i.i - %17 = icmp eq i64 %.0.ph.i.i.i.i.i.i.i.i, 0 - br i1 %17, label %34, label %.lr.ph.split.i.i.i.i.i.i.i.i + %19 = icmp eq i64 %.0.ph.i.i.i.i.i.i.i.i, 0 + br i1 %19, label %36, label %.lr.ph.split.i.i.i.i.i.i.i.i ._crit_edge.i.i.i.i.i.i.i.i: ; preds = %.lr.ph.split.i.i.i.i.i.i.i.i, %.outer.i.i.i.i.i.i.i.i - %.lcssa1721.i.i.i.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i.i.i.i, %.outer.i.i.i.i.i.i.i.i ], [ %31, %.lr.ph.split.i.i.i.i.i.i.i.i ] - %.lcssa1619.i.i.i.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i.i.i.i, %.outer.i.i.i.i.i.i.i.i ], [ %30, %.lr.ph.split.i.i.i.i.i.i.i.i ] - %.lcssa.i.i.i.i.i.i.i.i = phi i16 [ %16, %.outer.i.i.i.i.i.i.i.i ], [ %.cast.i.i.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i.i.i ] - %18 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i.i.i.i, i1 true) - %19 = zext nneg i16 %18 to i64 - %20 = sub nsw i64 0, %19 - %21 = getelementptr inbounds { { { { i64, ptr, {} }, i64 } }, {} }, ptr %.lcssa1619.i.i.i.i.i.i.i.i, i64 %20 - %22 = getelementptr inbounds i8, ptr %21, i64 -24 - invoke void @"_ZN113_$LT$std..collections..hash..set..Intersection$LT$T$C$S$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold28_$u7b$$u7b$closure$u7d$$u7d$17hb56d1e28b3217dd8E.llvm.240573438051967091"(ptr noalias noundef nonnull align 8 dereferenceable(16) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %22) - to label %.noexc unwind label %32 + %.lcssa1721.i.i.i.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i.i.i.i, %.outer.i.i.i.i.i.i.i.i ], [ %33, %.lr.ph.split.i.i.i.i.i.i.i.i ] + %.lcssa1619.i.i.i.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i.i.i.i, %.outer.i.i.i.i.i.i.i.i ], [ %32, %.lr.ph.split.i.i.i.i.i.i.i.i ] + %.lcssa.i.i.i.i.i.i.i.i = phi i16 [ %18, %.outer.i.i.i.i.i.i.i.i ], [ %.cast.i.i.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i.i.i ] + %20 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i.i.i.i, i1 true) + %21 = zext nneg i16 %20 to i64 + %22 = sub nsw i64 0, %21 + %23 = getelementptr inbounds { { { { i64, ptr, {} }, i64 } }, {} }, ptr %.lcssa1619.i.i.i.i.i.i.i.i, i64 %22 + %24 = getelementptr inbounds i8, ptr %23, i64 -24 + invoke void @"_ZN113_$LT$std..collections..hash..set..Intersection$LT$T$C$S$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold28_$u7b$$u7b$closure$u7d$$u7d$17hb56d1e28b3217dd8E.llvm.240573438051967091"(ptr noalias noundef nonnull align 8 dereferenceable(16) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %24) + to label %.noexc unwind label %34 .noexc: ; preds = %._crit_edge.i.i.i.i.i.i.i.i - %23 = add i16 %.lcssa.i.i.i.i.i.i.i.i, -1 - %24 = and i16 %23, %.lcssa.i.i.i.i.i.i.i.i - %25 = add i64 %.0.ph.i.i.i.i.i.i.i.i, -1 + %25 = add i16 %.lcssa.i.i.i.i.i.i.i.i, -1 + %26 = and i16 %25, %.lcssa.i.i.i.i.i.i.i.i + %27 = add i64 %.0.ph.i.i.i.i.i.i.i.i, -1 br label %.outer.i.i.i.i.i.i.i.i .lr.ph.split.i.i.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i.i.i - %26 = phi ptr [ %31, %.lr.ph.split.i.i.i.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i.i.i ] - %27 = phi ptr [ %30, %.lr.ph.split.i.i.i.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i.i.i ] - %28 = load <16 x i8>, ptr %26, align 16, !noalias !14284 - %29 = icmp sgt <16 x i8> %28, splat (i8 -1) - %30 = getelementptr inbounds i8, ptr %27, i64 -384 - %31 = getelementptr inbounds nuw i8, ptr %26, i64 16 - %.cast.i.i.i.i.i.i.i.i = bitcast <16 x i1> %29 to i16 + %28 = phi ptr [ %33, %.lr.ph.split.i.i.i.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i.i.i ] + %29 = phi ptr [ %32, %.lr.ph.split.i.i.i.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i.i.i ] + %30 = load <16 x i8>, ptr %28, align 16, !noalias !14284 + %31 = icmp sgt <16 x i8> %30, splat (i8 -1) + %32 = getelementptr inbounds i8, ptr %29, i64 -384 + %33 = getelementptr inbounds nuw i8, ptr %28, i64 16 + %.cast.i.i.i.i.i.i.i.i = bitcast <16 x i1> %31 to i16 %.not.i.i.i.i.i.i.i.i.i = icmp eq i16 %.cast.i.i.i.i.i.i.i.i, 0 br i1 %.not.i.i.i.i.i.i.i.i.i, label %.lr.ph.split.i.i.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i.i.i -32: ; preds = %._crit_edge.i.i.i.i.i.i.i.i - %33 = landingpad { ptr, i32 } +34: ; preds = %._crit_edge.i.i.i.i.i.i.i.i + %35 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr90drop_in_place$LT$std..collections..hash..set..HashSet$LT$$RF$alloc..string..String$GT$$GT$17h6f0e443c9e5c3c53E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %6) #54 - to label %37 unwind label %35 + to label %39 unwind label %37 -34: ; preds = %.lr.ph.i.i.i.i.i.i.i.i +36: ; preds = %.lr.ph.i.i.i.i.i.i.i.i call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !14275 call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !14262 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(48) %6, i64 48, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %6) ret void -35: ; preds = %32 - %36 = landingpad { ptr, i32 } +37: ; preds = %34 + %38 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #55 unreachable -37: ; preds = %32 - resume { ptr, i32 } %33 +39: ; preds = %34 + resume { ptr, i32 } %35 } ; Function Attrs: nonlazybind uwtable @@ -46006,50 +46009,53 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 %.sroa.4.0..sroa_idx2 = getelementptr inbounds nuw i8, ptr %1, i64 32 %.sroa.4.0.copyload3 = load i64, ptr %.sroa.4.0..sroa_idx2, align 8, !alias.scope !14334 %.sroa.6.0..sroa_idx5 = getelementptr inbounds nuw i8, ptr %1, i64 40 - %.sroa.6.0.copyload6 = load ptr, ptr %.sroa.6.0..sroa_idx5, align 8, !alias.scope !14334, !nonnull !4, !noundef !4 + %.sroa.6.0.copyload6 = load i64, ptr %.sroa.6.0..sroa_idx5, align 8, !alias.scope !14334 + %4 = inttoptr i64 %.sroa.6.0.copyload6 to ptr + %5 = icmp ne i64 %.sroa.6.0.copyload6, 0 + tail call void @llvm.assume(i1 %5) call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !14338 store ptr %0, ptr %3, align 8, !noalias !14345 call void @llvm.lifetime.start.p0(ptr nonnull %2), !noalias !14345 - store ptr %.sroa.6.0.copyload6, ptr %2, align 8, !noalias !14349 - %4 = getelementptr inbounds nuw i8, ptr %2, i64 8 - store ptr %3, ptr %4, align 8, !noalias !14349 + store ptr %4, ptr %2, align 8, !noalias !14349 + %6 = getelementptr inbounds nuw i8, ptr %2, i64 8 + store ptr %3, ptr %6, align 8, !noalias !14349 br label %.outer.i.i.i.i.i.i .outer.i.i.i.i.i.i: ; preds = %._crit_edge.i.i.i.i.i.i, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17ha4c55d0e4fb4b196E.exit" - %5 = phi i16 [ %10, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.0.sroa.6.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17ha4c55d0e4fb4b196E.exit" ] + %7 = phi i16 [ %12, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.0.sroa.6.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17ha4c55d0e4fb4b196E.exit" ] %.lcssa1722.i.i.i.i.i.i = phi ptr [ %.lcssa1721.i.i.i.i.i.i, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.0.sroa.4.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17ha4c55d0e4fb4b196E.exit" ] %.lcssa1620.i.i.i.i.i.i = phi ptr [ %.lcssa1619.i.i.i.i.i.i, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.0.sroa.0.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17ha4c55d0e4fb4b196E.exit" ] - %.0.ph.i.i.i.i.i.i = phi i64 [ %14, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.4.0.copyload3, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17ha4c55d0e4fb4b196E.exit" ] - %.not.i13.i.i.i.i.i.i = icmp eq i16 %5, 0 + %.0.ph.i.i.i.i.i.i = phi i64 [ %16, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.4.0.copyload3, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17ha4c55d0e4fb4b196E.exit" ] + %.not.i13.i.i.i.i.i.i = icmp eq i16 %7, 0 br i1 %.not.i13.i.i.i.i.i.i, label %.lr.ph.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i: ; preds = %.outer.i.i.i.i.i.i - %6 = icmp eq i64 %.0.ph.i.i.i.i.i.i, 0 - br i1 %6, label %_ZN4core4iter6traits8iterator8Iterator8for_each17h04ba27f7c591798bE.llvm.18123795597341512700.exit, label %.lr.ph.split.i.i.i.i.i.i + %8 = icmp eq i64 %.0.ph.i.i.i.i.i.i, 0 + br i1 %8, label %_ZN4core4iter6traits8iterator8Iterator8for_each17h04ba27f7c591798bE.llvm.18123795597341512700.exit, label %.lr.ph.split.i.i.i.i.i.i ._crit_edge.i.i.i.i.i.i: ; preds = %.lr.ph.split.i.i.i.i.i.i, %.outer.i.i.i.i.i.i - %.lcssa1721.i.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %20, %.lr.ph.split.i.i.i.i.i.i ] - %.lcssa1619.i.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %19, %.lr.ph.split.i.i.i.i.i.i ] - %.lcssa.i.i.i.i.i.i = phi i16 [ %5, %.outer.i.i.i.i.i.i ], [ %.cast.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i ] - %7 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i.i, i1 true) - %8 = zext nneg i16 %7 to i64 - %9 = add i16 %.lcssa.i.i.i.i.i.i, -1 - %10 = and i16 %9, %.lcssa.i.i.i.i.i.i - %11 = sub nsw i64 0, %8 - %12 = getelementptr inbounds { { { { i64, ptr, {} }, i64 } }, {} }, ptr %.lcssa1619.i.i.i.i.i.i, i64 %11 - %13 = getelementptr inbounds i8, ptr %12, i64 -24 - call void @"_ZN113_$LT$std..collections..hash..set..Intersection$LT$T$C$S$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold28_$u7b$$u7b$closure$u7d$$u7d$17hb56d1e28b3217dd8E.llvm.240573438051967091"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %13), !noalias !14354 - %14 = add i64 %.0.ph.i.i.i.i.i.i, -1 + %.lcssa1721.i.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %22, %.lr.ph.split.i.i.i.i.i.i ] + %.lcssa1619.i.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %21, %.lr.ph.split.i.i.i.i.i.i ] + %.lcssa.i.i.i.i.i.i = phi i16 [ %7, %.outer.i.i.i.i.i.i ], [ %.cast.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i ] + %9 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i.i, i1 true) + %10 = zext nneg i16 %9 to i64 + %11 = add i16 %.lcssa.i.i.i.i.i.i, -1 + %12 = and i16 %11, %.lcssa.i.i.i.i.i.i + %13 = sub nsw i64 0, %10 + %14 = getelementptr inbounds { { { { i64, ptr, {} }, i64 } }, {} }, ptr %.lcssa1619.i.i.i.i.i.i, i64 %13 + %15 = getelementptr inbounds i8, ptr %14, i64 -24 + call void @"_ZN113_$LT$std..collections..hash..set..Intersection$LT$T$C$S$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold28_$u7b$$u7b$closure$u7d$$u7d$17hb56d1e28b3217dd8E.llvm.240573438051967091"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %15), !noalias !14354 + %16 = add i64 %.0.ph.i.i.i.i.i.i, -1 br label %.outer.i.i.i.i.i.i .lr.ph.split.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i - %15 = phi ptr [ %20, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] - %16 = phi ptr [ %19, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] - %17 = load <16 x i8>, ptr %15, align 16, !noalias !14364 - %18 = icmp sgt <16 x i8> %17, splat (i8 -1) - %19 = getelementptr inbounds i8, ptr %16, i64 -384 - %20 = getelementptr inbounds nuw i8, ptr %15, i64 16 - %.cast.i.i.i.i.i.i = bitcast <16 x i1> %18 to i16 + %17 = phi ptr [ %22, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] + %18 = phi ptr [ %21, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] + %19 = load <16 x i8>, ptr %17, align 16, !noalias !14364 + %20 = icmp sgt <16 x i8> %19, splat (i8 -1) + %21 = getelementptr inbounds i8, ptr %18, i64 -384 + %22 = getelementptr inbounds nuw i8, ptr %17, i64 16 + %.cast.i.i.i.i.i.i = bitcast <16 x i1> %20 to i16 %.not.i.i.i.i.i.i.i = icmp eq i16 %.cast.i.i.i.i.i.i, 0 br i1 %.not.i.i.i.i.i.i.i, label %.lr.ph.split.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i @@ -46297,7 +46303,7 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 %.sroa.6.0..sroa_idx7 = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.6.0.copyload8 = load ptr, ptr %.sroa.6.0..sroa_idx7, align 8, !alias.scope !14443 %.sroa.8.0..sroa_idx10 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %.sroa.8.0.copyload11 = load ptr, ptr %.sroa.8.0..sroa_idx10, align 8, !alias.scope !14443 + %.sroa.8.0.copyload11 = load i64, ptr %.sroa.8.0..sroa_idx10, align 8, !alias.scope !14443 %.sroa.812.0..sroa_idx13 = getelementptr inbounds nuw i8, ptr %1, i64 24 %.sroa.812.0.copyload14 = load ptr, ptr %.sroa.812.0..sroa_idx13, align 8, !alias.scope !14443, !nonnull !4, !noundef !4 %6 = load i64, ptr %.sroa.812.0.copyload14, align 8, !range !1094, !noalias !4, !noundef !4 @@ -46317,7 +46323,7 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 8 store ptr %.sroa.6.0.copyload8, ptr %.sroa.6.0..sroa_idx, align 8 %.sroa.8.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 16 - store ptr %.sroa.8.0.copyload11, ptr %.sroa.8.0..sroa_idx, align 8 + store i64 %.sroa.8.0.copyload11, ptr %.sroa.8.0..sroa_idx, align 8 %.sroa.812.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 24 store ptr %.sroa.812.0.copyload14, ptr %.sroa.812.0..sroa_idx, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !14447 @@ -47061,7 +47067,7 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 %.sroa.6.0..sroa_idx7 = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.6.0.copyload8 = load ptr, ptr %.sroa.6.0..sroa_idx7, align 8, !alias.scope !14713 %.sroa.8.0..sroa_idx10 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %.sroa.8.0.copyload11 = load ptr, ptr %.sroa.8.0..sroa_idx10, align 8, !alias.scope !14713 + %.sroa.8.0.copyload11 = load i64, ptr %.sroa.8.0..sroa_idx10, align 8, !alias.scope !14713 %.sroa.812.0..sroa_idx13 = getelementptr inbounds nuw i8, ptr %1, i64 24 %.sroa.812.0.copyload14 = load ptr, ptr %.sroa.812.0..sroa_idx13, align 8, !alias.scope !14713, !nonnull !4, !noundef !4 %6 = load i64, ptr %.sroa.812.0.copyload14, align 8, !range !14542, !noalias !4, !noundef !4 @@ -47081,7 +47087,7 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 8 store ptr %.sroa.6.0.copyload8, ptr %.sroa.6.0..sroa_idx, align 8 %.sroa.8.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 16 - store ptr %.sroa.8.0.copyload11, ptr %.sroa.8.0..sroa_idx, align 8 + store i64 %.sroa.8.0.copyload11, ptr %.sroa.8.0..sroa_idx, align 8 %.sroa.812.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 24 store ptr %.sroa.812.0.copyload14, ptr %.sroa.812.0..sroa_idx, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !14717 @@ -47173,7 +47179,7 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 %.sroa.4.0..sroa_idx2 = getelementptr inbounds nuw i8, ptr %1, i64 32 %.sroa.4.0.copyload3 = load i64, ptr %.sroa.4.0..sroa_idx2, align 8, !alias.scope !14752 %.sroa.6.0..sroa_idx5 = getelementptr inbounds nuw i8, ptr %1, i64 40 - %.sroa.6.0.copyload6 = load ptr, ptr %.sroa.6.0..sroa_idx5, align 8, !alias.scope !14752 + %.sroa.6.0.copyload6 = load i64, ptr %.sroa.6.0..sroa_idx5, align 8, !alias.scope !14752 %4 = getelementptr inbounds nuw i8, ptr %0, i64 24 %5 = load i64, ptr %4, align 8, !noundef !4 %6 = icmp eq i64 %5, 0 @@ -47191,49 +47197,50 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 br label %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h27e43a3c5ea5f906E.exit" "_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h27e43a3c5ea5f906E.exit": ; preds = %2, %12 - %15 = icmp ne ptr %.sroa.6.0.copyload6, null - tail call void @llvm.assume(i1 %15) + %15 = inttoptr i64 %.sroa.6.0.copyload6 to ptr + %16 = icmp ne i64 %.sroa.6.0.copyload6, 0 + tail call void @llvm.assume(i1 %16) call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !14761 store ptr %0, ptr %3, align 8, !noalias !14772 - %16 = getelementptr inbounds nuw i8, ptr %3, i64 8 - store ptr %.sroa.6.0.copyload6, ptr %16, align 8, !noalias !14772 + %17 = getelementptr inbounds nuw i8, ptr %3, i64 8 + store ptr %15, ptr %17, align 8, !noalias !14772 br label %.outer.i.i.i.i.i.i .outer.i.i.i.i.i.i: ; preds = %._crit_edge.i.i.i.i.i.i, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h27e43a3c5ea5f906E.exit" - %17 = phi i16 [ %22, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.0.sroa.6.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h27e43a3c5ea5f906E.exit" ] + %18 = phi i16 [ %23, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.0.sroa.6.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h27e43a3c5ea5f906E.exit" ] %.lcssa1722.i.i.i.i.i.i = phi ptr [ %.lcssa1721.i.i.i.i.i.i, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.0.sroa.4.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h27e43a3c5ea5f906E.exit" ] %.lcssa1620.i.i.i.i.i.i = phi ptr [ %.lcssa1619.i.i.i.i.i.i, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.0.sroa.0.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h27e43a3c5ea5f906E.exit" ] - %.0.ph.i.i.i.i.i.i = phi i64 [ %26, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.4.0.copyload3, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h27e43a3c5ea5f906E.exit" ] - %.not.i13.i.i.i.i.i.i = icmp eq i16 %17, 0 + %.0.ph.i.i.i.i.i.i = phi i64 [ %27, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.4.0.copyload3, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h27e43a3c5ea5f906E.exit" ] + %.not.i13.i.i.i.i.i.i = icmp eq i16 %18, 0 br i1 %.not.i13.i.i.i.i.i.i, label %.lr.ph.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i: ; preds = %.outer.i.i.i.i.i.i - %18 = icmp eq i64 %.0.ph.i.i.i.i.i.i, 0 - br i1 %18, label %_ZN4core4iter6traits8iterator8Iterator8for_each17h6b1524a242e13ca5E.llvm.18123795597341512700.exit, label %.lr.ph.split.i.i.i.i.i.i + %19 = icmp eq i64 %.0.ph.i.i.i.i.i.i, 0 + br i1 %19, label %_ZN4core4iter6traits8iterator8Iterator8for_each17h6b1524a242e13ca5E.llvm.18123795597341512700.exit, label %.lr.ph.split.i.i.i.i.i.i ._crit_edge.i.i.i.i.i.i: ; preds = %.lr.ph.split.i.i.i.i.i.i, %.outer.i.i.i.i.i.i - %.lcssa1721.i.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %32, %.lr.ph.split.i.i.i.i.i.i ] - %.lcssa1619.i.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %31, %.lr.ph.split.i.i.i.i.i.i ] - %.lcssa.i.i.i.i.i.i = phi i16 [ %17, %.outer.i.i.i.i.i.i ], [ %.cast.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i ] - %19 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i.i, i1 true) - %20 = zext nneg i16 %19 to i64 - %21 = add i16 %.lcssa.i.i.i.i.i.i, -1 - %22 = and i16 %21, %.lcssa.i.i.i.i.i.i - %23 = sub nsw i64 0, %20 - %24 = getelementptr inbounds { { ptr, i64 }, {} }, ptr %.lcssa1619.i.i.i.i.i.i, i64 %23 - %25 = getelementptr inbounds i8, ptr %24, i64 -16 - call void @"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hdbb14f6b88e6b40fE.llvm.240573438051967091"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %25), !noalias !14777 - %26 = add i64 %.0.ph.i.i.i.i.i.i, -1 + %.lcssa1721.i.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %33, %.lr.ph.split.i.i.i.i.i.i ] + %.lcssa1619.i.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %32, %.lr.ph.split.i.i.i.i.i.i ] + %.lcssa.i.i.i.i.i.i = phi i16 [ %18, %.outer.i.i.i.i.i.i ], [ %.cast.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i ] + %20 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i.i, i1 true) + %21 = zext nneg i16 %20 to i64 + %22 = add i16 %.lcssa.i.i.i.i.i.i, -1 + %23 = and i16 %22, %.lcssa.i.i.i.i.i.i + %24 = sub nsw i64 0, %21 + %25 = getelementptr inbounds { { ptr, i64 }, {} }, ptr %.lcssa1619.i.i.i.i.i.i, i64 %24 + %26 = getelementptr inbounds i8, ptr %25, i64 -16 + call void @"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hdbb14f6b88e6b40fE.llvm.240573438051967091"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %26), !noalias !14777 + %27 = add i64 %.0.ph.i.i.i.i.i.i, -1 br label %.outer.i.i.i.i.i.i .lr.ph.split.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i - %27 = phi ptr [ %32, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] - %28 = phi ptr [ %31, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] - %29 = load <16 x i8>, ptr %27, align 16, !noalias !14787 - %30 = icmp sgt <16 x i8> %29, splat (i8 -1) - %31 = getelementptr inbounds i8, ptr %28, i64 -256 - %32 = getelementptr inbounds nuw i8, ptr %27, i64 16 - %.cast.i.i.i.i.i.i = bitcast <16 x i1> %30 to i16 + %28 = phi ptr [ %33, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] + %29 = phi ptr [ %32, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] + %30 = load <16 x i8>, ptr %28, align 16, !noalias !14787 + %31 = icmp sgt <16 x i8> %30, splat (i8 -1) + %32 = getelementptr inbounds i8, ptr %29, i64 -256 + %33 = getelementptr inbounds nuw i8, ptr %28, i64 16 + %.cast.i.i.i.i.i.i = bitcast <16 x i1> %31 to i16 %.not.i.i.i.i.i.i.i = icmp eq i16 %.cast.i.i.i.i.i.i, 0 br i1 %.not.i.i.i.i.i.i.i, label %.lr.ph.split.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i diff --git a/bench/diesel-rs/optimized/3nhirlswgfgsoryk.ll b/bench/diesel-rs/optimized/3nhirlswgfgsoryk.ll index 94df43eae69..6bad6ed603a 100644 --- a/bench/diesel-rs/optimized/3nhirlswgfgsoryk.ll +++ b/bench/diesel-rs/optimized/3nhirlswgfgsoryk.ll @@ -364,17 +364,16 @@ define hidden void @"_ZN52_$LT$T$u20$as$u20$alloc..slice..hack..ConvertVec$GT$6t br i1 %11, label %.thread, label %.lr.ph .lr.ph: ; preds = %3, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" - %.sroa.715.sroa.8.053 = phi i16 [ %.sroa.715.sroa.8.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] - %.sroa.013.052 = phi ptr [ %15, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ %1, %3 ] - %.sroa.7.050 = phi i64 [ %16, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ 0, %3 ] - %.sroa.10.049 = phi i64 [ %12, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ %6, %3 ] - %.sroa.15.sroa.0.048 = phi i8 [ %.sroa.15.sroa.0.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] - %.sroa.15.sroa.5.047 = phi i8 [ %.sroa.15.sroa.5.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] - %.sroa.15.sroa.6.046 = phi i16 [ %.sroa.15.sroa.6.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] - %.sroa.12.sroa.0.045 = phi i8 [ %.sroa.12.sroa.0.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] - %.sroa.12.sroa.6.sroa.0.044 = phi i24 [ %.sroa.12.sroa.6.sroa.0.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] - %12 = add i64 %.sroa.10.049, -1 - %13 = icmp eq ptr %.sroa.013.052, %10 + %.sroa.013.044 = phi ptr [ %15, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ %1, %3 ] + %.sroa.7.042 = phi i64 [ %16, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ 0, %3 ] + %.sroa.10.041 = phi i64 [ %12, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ %6, %3 ] + %.sroa.1017.sroa.6.sroa.0.040 = phi i24 [ %.sroa.1017.sroa.6.sroa.0.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] + %.sroa.13.sroa.0.039 = phi i8 [ %.sroa.13.sroa.0.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] + %.sroa.13.sroa.5.038 = phi i8 [ %.sroa.13.sroa.5.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] + %.sroa.13.sroa.6.037 = phi i16 [ %.sroa.13.sroa.6.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] + %.sroa.1017.sroa.0.036 = phi i8 [ %.sroa.1017.sroa.0.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] + %12 = add i64 %.sroa.10.041, -1 + %13 = icmp eq ptr %.sroa.013.044, %10 br i1 %13, label %.thread, label %14 .thread: ; preds = %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit", %.lr.ph, %3 @@ -384,9 +383,9 @@ define hidden void @"_ZN52_$LT$T$u20$as$u20$alloc..slice..hack..ConvertVec$GT$6t ret void 14: ; preds = %.lr.ph - %15 = getelementptr inbounds nuw i8, ptr %.sroa.013.052, i64 20 - %16 = add nuw nsw i64 %.sroa.7.050, 1 - %17 = getelementptr inbounds nuw i8, ptr %.sroa.013.052, i64 16 + %15 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 20 + %16 = add nuw nsw i64 %.sroa.7.042, 1 + %17 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 16 %18 = load i8, ptr %17, align 4, !range !69, !alias.scope !70, !noalias !73, !noundef !7 %19 = icmp samesign ugt i8 %18, 3 %20 = zext nneg i8 %18 to i64 @@ -396,137 +395,114 @@ define hidden void @"_ZN52_$LT$T$u20$as$u20$alloc..slice..hack..ConvertVec$GT$6t i64 0, label %24 i64 1, label %32 i64 2, label %36 - i64 3, label %41 + i64 3, label %39 ] 23: ; preds = %14 unreachable 24: ; preds = %14 - %25 = getelementptr inbounds nuw i8, ptr %.sroa.013.052, i64 12 + %25 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 12 %26 = load i32, ptr %25, align 4, !alias.scope !75, !noalias !78, !noundef !7 %27 = icmp eq i32 %26, 0 br i1 %27, label %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i", label %28 28: ; preds = %24 %29 = invoke noundef i32 @"_ZN78_$LT$proc_macro..bridge..client..TokenStream$u20$as$u20$core..clone..Clone$GT$5clone17h32ad9215a1bccba6E"(ptr noalias noundef nonnull readonly align 4 dereferenceable(4) %25) - to label %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" unwind label %51 + to label %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" unwind label %49 "_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i": ; preds = %28, %24 %storemerge.i.i = phi i32 [ 0, %24 ], [ %29, %28 ] - %30 = getelementptr inbounds nuw i8, ptr %.sroa.013.052, i64 4 + %30 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 4 %.val.i.i.i = load i32, ptr %30, align 4, !range !27, !alias.scope !80, !noalias !83, !noundef !7 - %31 = getelementptr inbounds nuw i8, ptr %.sroa.013.052, i64 8 + %31 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 8 %.val2.i.i.i = load i32, ptr %31, align 4, !range !27, !alias.scope !80, !noalias !83, !noundef !7 - %.sroa.715.sroa.0.0.extract.trunc20 = trunc i32 %.val.i.i.i to i8 - %.sroa.715.sroa.7.0.extract.shift23 = lshr i32 %.val.i.i.i, 8 - %.sroa.715.sroa.7.0.extract.trunc24 = trunc i32 %.sroa.715.sroa.7.0.extract.shift23 to i8 - %.sroa.715.sroa.8.0.extract.shift27 = lshr i32 %.val.i.i.i, 16 - %.sroa.715.sroa.8.0.extract.trunc28 = trunc nuw i32 %.sroa.715.sroa.8.0.extract.shift27 to i16 - %.sroa.12.sroa.0.0.extract.trunc16 = trunc i32 %.val2.i.i.i to i8 - %.sroa.12.sroa.6.0.extract.shift17 = lshr i32 %.val2.i.i.i, 8 - %.sroa.12.sroa.6.0.extract.trunc18 = trunc nuw i32 %.sroa.12.sroa.6.0.extract.shift17 to i24 - %.sroa.15.sroa.0.0.extract.trunc = trunc i32 %storemerge.i.i to i8 - %.sroa.15.sroa.5.0.extract.shift = lshr i32 %storemerge.i.i, 8 - %.sroa.15.sroa.5.0.extract.trunc = trunc i32 %.sroa.15.sroa.5.0.extract.shift to i8 - %.sroa.15.sroa.6.0.extract.shift = lshr i32 %storemerge.i.i, 16 - %.sroa.15.sroa.6.0.extract.trunc = trunc nuw i32 %.sroa.15.sroa.6.0.extract.shift to i16 + %.sroa.1017.sroa.0.0.extract.trunc18 = trunc i32 %.val2.i.i.i to i8 + %.sroa.1017.sroa.6.0.extract.shift19 = lshr i32 %.val2.i.i.i, 8 + %.sroa.1017.sroa.6.0.extract.trunc20 = trunc nuw i32 %.sroa.1017.sroa.6.0.extract.shift19 to i24 + %.sroa.13.sroa.0.0.extract.trunc = trunc i32 %storemerge.i.i to i8 + %.sroa.13.sroa.5.0.extract.shift = lshr i32 %storemerge.i.i, 8 + %.sroa.13.sroa.5.0.extract.trunc = trunc i32 %.sroa.13.sroa.5.0.extract.shift to i8 + %.sroa.13.sroa.6.0.extract.shift = lshr i32 %storemerge.i.i, 16 + %.sroa.13.sroa.6.0.extract.trunc = trunc nuw i32 %.sroa.13.sroa.6.0.extract.shift to i16 br label %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" 32: ; preds = %14 - %33 = getelementptr inbounds nuw i8, ptr %.sroa.013.052, i64 8 + %33 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 8 %34 = load i8, ptr %33, align 4, !range !47, !alias.scope !85, !noalias !88, !noundef !7 - %35 = getelementptr inbounds nuw i8, ptr %.sroa.013.052, i64 4 + %35 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 4 %.val.i.i = load i32, ptr %35, align 4, !range !27, !alias.scope !85, !noalias !88, !noundef !7 - %.sroa.715.sroa.0.0.extract.trunc19 = trunc i32 %.val.i.i to i8 - %.sroa.715.sroa.7.0.extract.shift21 = lshr i32 %.val.i.i, 8 - %.sroa.715.sroa.7.0.extract.trunc22 = trunc i32 %.sroa.715.sroa.7.0.extract.shift21 to i8 - %.sroa.715.sroa.8.0.extract.shift25 = lshr i32 %.val.i.i, 16 - %.sroa.715.sroa.8.0.extract.trunc26 = trunc nuw i32 %.sroa.715.sroa.8.0.extract.shift25 to i16 br label %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" 36: ; preds = %14 - %37 = getelementptr inbounds nuw i8, ptr %.sroa.013.052, i64 4 - %38 = load i8, ptr %37, align 4, !alias.scope !70, !noalias !73, !noundef !7 - %39 = getelementptr inbounds nuw i8, ptr %.sroa.013.052, i64 5 - %40 = load i8, ptr %39, align 1, !range !47, !alias.scope !70, !noalias !73, !noundef !7 + %37 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 4 + %38 = load i16, ptr %37, align 4, !alias.scope !70, !noalias !73 + %.sroa.014.sroa.7.0.extract.trunc = zext i16 %38 to i32 br label %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" -41: ; preds = %14 - %42 = getelementptr inbounds nuw i8, ptr %.sroa.013.052, i64 12 - %43 = load i8, ptr %42, align 4, !range !61, !alias.scope !90, !noalias !93, !noundef !7 - %44 = getelementptr inbounds nuw i8, ptr %.sroa.013.052, i64 13 - %45 = load i8, ptr %44, align 1, !alias.scope !90, !noalias !93 - %46 = getelementptr inbounds nuw i8, ptr %.sroa.013.052, i64 8 - %47 = load i32, ptr %46, align 4, !alias.scope !90, !noalias !93, !noundef !7 - %48 = getelementptr inbounds nuw i8, ptr %.sroa.013.052, i64 4 - %.val.i5.i = load i32, ptr %48, align 4, !range !27, !alias.scope !90, !noalias !93, !noundef !7 - %.sroa.715.sroa.0.0.extract.trunc = trunc i32 %.val.i5.i to i8 - %.sroa.715.sroa.7.0.extract.shift = lshr i32 %.val.i5.i, 8 - %.sroa.715.sroa.7.0.extract.trunc = trunc i32 %.sroa.715.sroa.7.0.extract.shift to i8 - %.sroa.715.sroa.8.0.extract.shift = lshr i32 %.val.i5.i, 16 - %.sroa.715.sroa.8.0.extract.trunc = trunc nuw i32 %.sroa.715.sroa.8.0.extract.shift to i16 - %.sroa.12.sroa.0.0.extract.trunc = trunc i32 %47 to i8 - %.sroa.12.sroa.6.0.extract.shift = lshr i32 %47, 8 - %.sroa.12.sroa.6.0.extract.trunc = trunc nuw i32 %.sroa.12.sroa.6.0.extract.shift to i24 +39: ; preds = %14 + %40 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 12 + %41 = load i8, ptr %40, align 4, !range !61, !alias.scope !90, !noalias !93, !noundef !7 + %42 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 13 + %43 = load i8, ptr %42, align 1, !alias.scope !90, !noalias !93 + %44 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 8 + %45 = load i32, ptr %44, align 4, !alias.scope !90, !noalias !93, !noundef !7 + %46 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 4 + %.val.i6.i = load i32, ptr %46, align 4, !range !27, !alias.scope !90, !noalias !93, !noundef !7 + %.sroa.1017.sroa.0.0.extract.trunc = trunc i32 %45 to i8 + %.sroa.1017.sroa.6.0.extract.shift = lshr i32 %45, 8 + %.sroa.1017.sroa.6.0.extract.trunc = trunc nuw i32 %.sroa.1017.sroa.6.0.extract.shift to i24 br label %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" -"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit": ; preds = %41, %36, %32, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" - %.sroa.12.sroa.6.sroa.0.1 = phi i24 [ %.sroa.12.sroa.6.0.extract.trunc18, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.12.sroa.6.sroa.0.044, %32 ], [ %.sroa.12.sroa.6.sroa.0.044, %36 ], [ %.sroa.12.sroa.6.0.extract.trunc, %41 ] - %.sroa.12.sroa.0.1 = phi i8 [ %.sroa.12.sroa.0.0.extract.trunc16, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %34, %32 ], [ %.sroa.12.sroa.0.045, %36 ], [ %.sroa.12.sroa.0.0.extract.trunc, %41 ] - %.sroa.15.sroa.6.1 = phi i16 [ %.sroa.15.sroa.6.0.extract.trunc, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.15.sroa.6.046, %32 ], [ %.sroa.15.sroa.6.046, %36 ], [ %.sroa.15.sroa.6.046, %41 ] - %.sroa.15.sroa.5.1 = phi i8 [ %.sroa.15.sroa.5.0.extract.trunc, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.15.sroa.5.047, %32 ], [ %.sroa.15.sroa.5.047, %36 ], [ %45, %41 ] - %.sroa.15.sroa.0.1 = phi i8 [ %.sroa.15.sroa.0.0.extract.trunc, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.15.sroa.0.048, %32 ], [ %.sroa.15.sroa.0.048, %36 ], [ %43, %41 ] - %.sroa.715.sroa.0.0 = phi i8 [ %.sroa.715.sroa.0.0.extract.trunc20, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.715.sroa.0.0.extract.trunc19, %32 ], [ %38, %36 ], [ %.sroa.715.sroa.0.0.extract.trunc, %41 ] - %.sroa.715.sroa.7.0 = phi i8 [ %.sroa.715.sroa.7.0.extract.trunc24, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.715.sroa.7.0.extract.trunc22, %32 ], [ %40, %36 ], [ %.sroa.715.sroa.7.0.extract.trunc, %41 ] - %.sroa.715.sroa.8.1 = phi i16 [ %.sroa.715.sroa.8.0.extract.trunc28, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.715.sroa.8.0.extract.trunc26, %32 ], [ %.sroa.715.sroa.8.053, %36 ], [ %.sroa.715.sroa.8.0.extract.trunc, %41 ] - %.sink.i = phi i8 [ %18, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ 4, %32 ], [ 5, %36 ], [ 6, %41 ] - %.sroa.014.0 = load i32, ptr %.sroa.013.052, align 4, !range !27, !alias.scope !70, !noalias !73, !noundef !7 - %49 = getelementptr inbounds nuw { [5 x i32] }, ptr %7, i64 %.sroa.7.050 - %.sroa.715.sroa.8.0.insert.ext = zext i16 %.sroa.715.sroa.8.1 to i32 - %.sroa.715.sroa.8.0.insert.shift = shl nuw i32 %.sroa.715.sroa.8.0.insert.ext, 16 - %.sroa.715.sroa.7.0.insert.ext = zext i8 %.sroa.715.sroa.7.0 to i32 - %.sroa.715.sroa.7.0.insert.shift = shl nuw nsw i32 %.sroa.715.sroa.7.0.insert.ext, 8 - %.sroa.715.sroa.7.0.insert.insert = or disjoint i32 %.sroa.715.sroa.8.0.insert.shift, %.sroa.715.sroa.7.0.insert.shift - %.sroa.715.sroa.0.0.insert.ext = zext i8 %.sroa.715.sroa.0.0 to i32 - %.sroa.715.sroa.0.0.insert.insert = or disjoint i32 %.sroa.715.sroa.7.0.insert.insert, %.sroa.715.sroa.0.0.insert.ext - %.sroa.12.sroa.6.0.insert.ext = zext i24 %.sroa.12.sroa.6.sroa.0.1 to i32 - %.sroa.12.sroa.6.0.insert.shift = shl nuw i32 %.sroa.12.sroa.6.0.insert.ext, 8 - %.sroa.12.sroa.0.0.insert.ext = zext i8 %.sroa.12.sroa.0.1 to i32 - %.sroa.12.sroa.0.0.insert.insert = or disjoint i32 %.sroa.12.sroa.6.0.insert.shift, %.sroa.12.sroa.0.0.insert.ext - %.sroa.15.sroa.6.0.insert.ext = zext i16 %.sroa.15.sroa.6.1 to i32 - %.sroa.15.sroa.6.0.insert.shift = shl nuw i32 %.sroa.15.sroa.6.0.insert.ext, 16 - %.sroa.15.sroa.5.0.insert.ext = zext i8 %.sroa.15.sroa.5.1 to i32 - %.sroa.15.sroa.5.0.insert.shift = shl nuw nsw i32 %.sroa.15.sroa.5.0.insert.ext, 8 - %.sroa.15.sroa.5.0.insert.insert = or disjoint i32 %.sroa.15.sroa.5.0.insert.shift, %.sroa.15.sroa.6.0.insert.shift - %.sroa.15.sroa.0.0.insert.ext = zext i8 %.sroa.15.sroa.0.1 to i32 - %.sroa.15.sroa.0.0.insert.insert = or disjoint i32 %.sroa.15.sroa.5.0.insert.insert, %.sroa.15.sroa.0.0.insert.ext - store i32 %.sroa.014.0, ptr %49, align 4 - %.sroa.07.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %49, i64 4 - store i32 %.sroa.715.sroa.0.0.insert.insert, ptr %.sroa.07.sroa.4.0..sroa_idx, align 4 - %.sroa.07.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %49, i64 8 - store i32 %.sroa.12.sroa.0.0.insert.insert, ptr %.sroa.07.sroa.5.0..sroa_idx, align 4 - %.sroa.07.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %49, i64 12 - store i32 %.sroa.15.sroa.0.0.insert.insert, ptr %.sroa.07.sroa.6.0..sroa_idx, align 4 - %.sroa.07.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %49, i64 16 - store i8 %.sink.i, ptr %.sroa.07.sroa.7.0..sroa_idx, align 4 - %50 = icmp eq i64 %12, 0 - br i1 %50, label %.thread, label %.lr.ph - -51: ; preds = %28 +"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit": ; preds = %39, %36, %32, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" + %.sroa.1017.sroa.0.1 = phi i8 [ %.sroa.1017.sroa.0.0.extract.trunc18, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %34, %32 ], [ %.sroa.1017.sroa.0.036, %36 ], [ %.sroa.1017.sroa.0.0.extract.trunc, %39 ] + %.sroa.13.sroa.6.1 = phi i16 [ %.sroa.13.sroa.6.0.extract.trunc, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.13.sroa.6.037, %32 ], [ %.sroa.13.sroa.6.037, %36 ], [ %.sroa.13.sroa.6.037, %39 ] + %.sroa.13.sroa.5.1 = phi i8 [ %.sroa.13.sroa.5.0.extract.trunc, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.13.sroa.5.038, %32 ], [ %.sroa.13.sroa.5.038, %36 ], [ %43, %39 ] + %.sroa.13.sroa.0.1 = phi i8 [ %.sroa.13.sroa.0.0.extract.trunc, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.13.sroa.0.039, %32 ], [ %.sroa.13.sroa.0.039, %36 ], [ %41, %39 ] + %.sroa.1017.sroa.6.sroa.0.1 = phi i24 [ %.sroa.1017.sroa.6.0.extract.trunc20, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.1017.sroa.6.sroa.0.040, %32 ], [ %.sroa.1017.sroa.6.sroa.0.040, %36 ], [ %.sroa.1017.sroa.6.0.extract.trunc, %39 ] + %.sroa.014.sroa.7.0 = phi i32 [ %.val.i.i.i, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.val.i.i, %32 ], [ %.sroa.014.sroa.7.0.extract.trunc, %36 ], [ %.val.i6.i, %39 ] + %.sink.i = phi i8 [ %18, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ 4, %32 ], [ 5, %36 ], [ 6, %39 ] + %.sroa.014.sroa.0.0 = load i32, ptr %.sroa.013.044, align 4, !range !27, !alias.scope !70, !noalias !73, !noundef !7 + %47 = getelementptr inbounds nuw { [5 x i32] }, ptr %7, i64 %.sroa.7.042 + %.sroa.014.sroa.7.0.insert.ext = zext i32 %.sroa.014.sroa.7.0 to i64 + %.sroa.014.sroa.7.0.insert.shift = shl nuw i64 %.sroa.014.sroa.7.0.insert.ext, 32 + %.sroa.014.sroa.0.0.insert.ext = zext i32 %.sroa.014.sroa.0.0 to i64 + %.sroa.014.sroa.0.0.insert.insert = or disjoint i64 %.sroa.014.sroa.7.0.insert.shift, %.sroa.014.sroa.0.0.insert.ext + %.sroa.1017.sroa.6.0.insert.ext = zext i24 %.sroa.1017.sroa.6.sroa.0.1 to i32 + %.sroa.1017.sroa.6.0.insert.shift = shl nuw i32 %.sroa.1017.sroa.6.0.insert.ext, 8 + %.sroa.1017.sroa.0.0.insert.ext = zext i8 %.sroa.1017.sroa.0.1 to i32 + %.sroa.1017.sroa.0.0.insert.insert = or disjoint i32 %.sroa.1017.sroa.6.0.insert.shift, %.sroa.1017.sroa.0.0.insert.ext + %.sroa.13.sroa.6.0.insert.ext = zext i16 %.sroa.13.sroa.6.1 to i32 + %.sroa.13.sroa.6.0.insert.shift = shl nuw i32 %.sroa.13.sroa.6.0.insert.ext, 16 + %.sroa.13.sroa.5.0.insert.ext = zext i8 %.sroa.13.sroa.5.1 to i32 + %.sroa.13.sroa.5.0.insert.shift = shl nuw nsw i32 %.sroa.13.sroa.5.0.insert.ext, 8 + %.sroa.13.sroa.5.0.insert.insert = or disjoint i32 %.sroa.13.sroa.5.0.insert.shift, %.sroa.13.sroa.6.0.insert.shift + %.sroa.13.sroa.0.0.insert.ext = zext i8 %.sroa.13.sroa.0.1 to i32 + %.sroa.13.sroa.0.0.insert.insert = or disjoint i32 %.sroa.13.sroa.5.0.insert.insert, %.sroa.13.sroa.0.0.insert.ext + store i64 %.sroa.014.sroa.0.0.insert.insert, ptr %47, align 4 + %.sroa.07.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %47, i64 8 + store i32 %.sroa.1017.sroa.0.0.insert.insert, ptr %.sroa.07.sroa.4.0..sroa_idx, align 4 + %.sroa.07.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %47, i64 12 + store i32 %.sroa.13.sroa.0.0.insert.insert, ptr %.sroa.07.sroa.5.0..sroa_idx, align 4 + %.sroa.07.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %47, i64 16 + store i8 %.sink.i, ptr %.sroa.07.sroa.6.0..sroa_idx, align 4 + %48 = icmp eq i64 %12, 0 + br i1 %48, label %.thread, label %.lr.ph + +49: ; preds = %28 %lpad.loopexit = landingpad { ptr, i32 } cleanup - store i64 %.sroa.7.050, ptr %9, align 8 + store i64 %.sroa.7.042, ptr %9, align 8 invoke void @"_ZN4core3ptr65drop_in_place$LT$alloc..vec..Vec$LT$proc_macro..TokenTree$GT$$GT$17h1b41c94877c50d95E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %4) #13 - to label %54 unwind label %52 + to label %52 unwind label %50 -52: ; preds = %51 - %53 = landingpad { ptr, i32 } +50: ; preds = %49 + %51 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #14 unreachable -54: ; preds = %51 +52: ; preds = %49 resume { ptr, i32 } %lpad.loopexit } diff --git a/bench/diesel-rs/optimized/3t9haxhg11g45rod.ll b/bench/diesel-rs/optimized/3t9haxhg11g45rod.ll index 697f797e91c..08c0cf42ed5 100644 --- a/bench/diesel-rs/optimized/3t9haxhg11g45rod.ll +++ b/bench/diesel-rs/optimized/3t9haxhg11g45rod.ll @@ -304,7 +304,7 @@ define hidden void @"_ZN57_$LT$toml_edit..de..Error$u20$as$u20$serde..de..Error$ %.sroa.5.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.5.0.copyload.i.i = load i64, ptr %.sroa.5.0..sroa_idx.i.i, align 8, !alias.scope !81, !noalias !82 %.sroa.6.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %1, i64 16 - %.sroa.6.0.copyload.i.i = load ptr, ptr %.sroa.6.0..sroa_idx.i.i, align 8, !alias.scope !81, !noalias !82 + %.sroa.6.0.copyload.i.i = load i64, ptr %.sroa.6.0..sroa_idx.i.i, align 8, !alias.scope !81, !noalias !82 %.sroa.66.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %1, i64 24 %.sroa.66.0.copyload.i.i = load i64, ptr %.sroa.66.0..sroa_idx.i.i, align 8, !alias.scope !81, !noalias !82 %.sroa.7.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %1, i64 32 @@ -323,7 +323,7 @@ define hidden void @"_ZN57_$LT$toml_edit..de..Error$u20$as$u20$serde..de..Error$ %.sroa.5.0..sroa_idx2.i.i = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 %.sroa.5.0.copyload.i.i, ptr %.sroa.5.0..sroa_idx2.i.i, align 8, !noalias !96 %.sroa.6.0..sroa_idx4.i.i = getelementptr inbounds nuw i8, ptr %3, i64 16 - store ptr %.sroa.6.0.copyload.i.i, ptr %.sroa.6.0..sroa_idx4.i.i, align 8, !noalias !96 + store i64 %.sroa.6.0.copyload.i.i, ptr %.sroa.6.0..sroa_idx4.i.i, align 8, !noalias !96 %.sroa.66.0..sroa_idx7.i.i = getelementptr inbounds nuw i8, ptr %3, i64 24 store i64 %.sroa.66.0.copyload.i.i, ptr %.sroa.66.0..sroa_idx7.i.i, align 8, !noalias !96 %.sroa.7.0..sroa_idx9.i.i = getelementptr inbounds nuw i8, ptr %3, i64 32 @@ -451,12 +451,13 @@ define hidden void @_ZN5serde2de5Error12invalid_type17hbc1ff220118b7233E(ptr noa call void @llvm.experimental.noalias.scope.decl(metadata !137) call void @llvm.lifetime.start.p0(ptr nonnull %5) call void @llvm.experimental.noalias.scope.decl(metadata !140) + %12 = ptrtoint ptr %6 to i64 call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !143 store ptr @anon.cdf13eb26b8b36169264f2aefa47550d.10.llvm.4171027954476147526, ptr %4, align 8, !noalias !160 %.sroa.5.0..sroa_idx2.i.i.i = getelementptr inbounds nuw i8, ptr %4, i64 8 store i64 2, ptr %.sroa.5.0..sroa_idx2.i.i.i, align 8, !noalias !160 %.sroa.6.0..sroa_idx4.i.i.i = getelementptr inbounds nuw i8, ptr %4, i64 16 - store ptr %6, ptr %.sroa.6.0..sroa_idx4.i.i.i, align 8, !noalias !160 + store i64 %12, ptr %.sroa.6.0..sroa_idx4.i.i.i, align 8, !noalias !160 %.sroa.66.0..sroa_idx7.i.i.i = getelementptr inbounds nuw i8, ptr %4, i64 24 store i64 2, ptr %.sroa.66.0..sroa_idx7.i.i.i, align 8, !noalias !160 %.sroa.7.0..sroa_idx9.i.i.i = getelementptr inbounds nuw i8, ptr %4, i64 32 @@ -496,12 +497,13 @@ define hidden void @_ZN5serde2de5Error15duplicate_field17h1317a820ae369a41E(ptr call void @llvm.experimental.noalias.scope.decl(metadata !166) call void @llvm.lifetime.start.p0(ptr nonnull %4) call void @llvm.experimental.noalias.scope.decl(metadata !169) + %9 = ptrtoint ptr %5 to i64 call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !172 store ptr @anon.cdf13eb26b8b36169264f2aefa47550d.13.llvm.4171027954476147526, ptr %3, align 8, !noalias !189 %.sroa.5.0..sroa_idx2.i.i.i = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 2, ptr %.sroa.5.0..sroa_idx2.i.i.i, align 8, !noalias !189 %.sroa.6.0..sroa_idx4.i.i.i = getelementptr inbounds nuw i8, ptr %3, i64 16 - store ptr %5, ptr %.sroa.6.0..sroa_idx4.i.i.i, align 8, !noalias !189 + store i64 %9, ptr %.sroa.6.0..sroa_idx4.i.i.i, align 8, !noalias !189 %.sroa.66.0..sroa_idx7.i.i.i = getelementptr inbounds nuw i8, ptr %3, i64 24 store i64 1, ptr %.sroa.66.0..sroa_idx7.i.i.i, align 8, !noalias !189 %.sroa.7.0..sroa_idx9.i.i.i = getelementptr inbounds nuw i8, ptr %3, i64 32 @@ -617,7 +619,7 @@ define hidden void @"_ZN64_$LT$core..fmt..Arguments$u20$as$u20$alloc..string..To %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.5.0.copyload = load i64, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 16 - %.sroa.6.0.copyload = load ptr, ptr %.sroa.6.0..sroa_idx, align 8 + %.sroa.6.0.copyload = load i64, ptr %.sroa.6.0..sroa_idx, align 8 %.sroa.66.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 24 %.sroa.66.0.copyload = load i64, ptr %.sroa.66.0..sroa_idx, align 8 %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 32 @@ -638,7 +640,7 @@ define hidden void @"_ZN64_$LT$core..fmt..Arguments$u20$as$u20$alloc..string..To %.sroa.5.0..sroa_idx2 = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 %.sroa.5.0.copyload, ptr %.sroa.5.0..sroa_idx2, align 8, !noalias !208 %.sroa.6.0..sroa_idx4 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store ptr %.sroa.6.0.copyload, ptr %.sroa.6.0..sroa_idx4, align 8, !noalias !208 + store i64 %.sroa.6.0.copyload, ptr %.sroa.6.0..sroa_idx4, align 8, !noalias !208 %.sroa.66.0..sroa_idx7 = getelementptr inbounds nuw i8, ptr %3, i64 24 store i64 %.sroa.66.0.copyload, ptr %.sroa.66.0..sroa_idx7, align 8, !noalias !208 %.sroa.7.0..sroa_idx9 = getelementptr inbounds nuw i8, ptr %3, i64 32 @@ -884,7 +886,7 @@ define hidden void @_ZN9toml_edit2de5Error6custom17hb607dfcaf51b3ae1E.llvm.41710 %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.5.0.copyload.i = load i64, ptr %.sroa.5.0..sroa_idx.i, align 8, !alias.scope !285, !noalias !282 %.sroa.6.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 16 - %.sroa.6.0.copyload.i = load ptr, ptr %.sroa.6.0..sroa_idx.i, align 8, !alias.scope !285, !noalias !282 + %.sroa.6.0.copyload.i = load i64, ptr %.sroa.6.0..sroa_idx.i, align 8, !alias.scope !285, !noalias !282 %.sroa.66.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 24 %.sroa.66.0.copyload.i = load i64, ptr %.sroa.66.0..sroa_idx.i, align 8, !alias.scope !285, !noalias !282 %.sroa.7.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 32 @@ -905,7 +907,7 @@ define hidden void @_ZN9toml_edit2de5Error6custom17hb607dfcaf51b3ae1E.llvm.41710 %.sroa.5.0..sroa_idx2.i = getelementptr inbounds nuw i8, ptr %4, i64 8 store i64 %.sroa.5.0.copyload.i, ptr %.sroa.5.0..sroa_idx2.i, align 8, !noalias !300 %.sroa.6.0..sroa_idx4.i = getelementptr inbounds nuw i8, ptr %4, i64 16 - store ptr %.sroa.6.0.copyload.i, ptr %.sroa.6.0..sroa_idx4.i, align 8, !noalias !300 + store i64 %.sroa.6.0.copyload.i, ptr %.sroa.6.0..sroa_idx4.i, align 8, !noalias !300 %.sroa.66.0..sroa_idx7.i = getelementptr inbounds nuw i8, ptr %4, i64 24 store i64 %.sroa.66.0.copyload.i, ptr %.sroa.66.0..sroa_idx7.i, align 8, !noalias !300 %.sroa.7.0..sroa_idx9.i = getelementptr inbounds nuw i8, ptr %4, i64 32 diff --git a/bench/duckdb/optimized/fastcover.ll b/bench/duckdb/optimized/fastcover.ll index caf5018b31d..fb4f4e30a50 100644 --- a/bench/duckdb/optimized/fastcover.ll +++ b/bench/duckdb/optimized/fastcover.ll @@ -61,39 +61,37 @@ define noundef i64 @_ZN11duckdb_zstd31ZDICT_trainFromBuffer_fastCoverEPvmPKvPKmj %16 = getelementptr inbounds nuw i8, ptr %5, i64 32 %17 = load i32, ptr %16, align 8, !tbaa !12 %18 = tail call i32 @llvm.umax.i32(i32 %17, i32 1) - %.sroa.048.0.copyload = load i32, ptr %5, align 8, !tbaa !10 - %.sroa.249.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 4 - %.sroa.249.0.copyload = load i32, ptr %.sroa.249.0..sroa_idx, align 4, !tbaa !10 - %.sroa.450.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 12 - %.sroa.450.0.copyload = load i32, ptr %.sroa.450.0..sroa_idx, align 4, !tbaa !10 - %.sroa.551.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 16 - %.sroa.551.0.copyload = load i32, ptr %.sroa.551.0..sroa_idx, align 8, !tbaa !10 - %.sroa.955.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 36 - %.sroa.955.0.copyload = load i32, ptr %.sroa.955.0..sroa_idx, align 4, !tbaa !10 + %.sroa.056.0.copyload = load i32, ptr %5, align 8, !tbaa !10 + %.sroa.257.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 4 + %.sroa.257.0.copyload = load i32, ptr %.sroa.257.0..sroa_idx, align 4, !tbaa !10 + %.sroa.459.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 12 + %.sroa.459.0.copyload = load i64, ptr %.sroa.459.0..sroa_idx, align 4 + %.sroa.964.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 36 + %.sroa.964.0.copyload = load i32, ptr %.sroa.964.0..sroa_idx, align 4, !tbaa !10 %19 = getelementptr inbounds nuw i8, ptr %5, i64 44 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.16.sroa.4, ptr noundef nonnull align 4 dereferenceable(12) %19, i64 12, i1 false) - %20 = icmp eq i32 %.sroa.249.0.copyload, 0 - %21 = icmp eq i32 %.sroa.048.0.copyload, 0 + %20 = icmp eq i32 %.sroa.257.0.copyload, 0 + %21 = icmp eq i32 %.sroa.056.0.copyload, 0 %or.cond.i = select i1 %20, i1 true, i1 %21 br i1 %or.cond.i, label %_ZN11duckdb_zstdL25FASTCOVER_checkParametersENS_20ZDICT_cover_params_tEmjj.exit.thread, label %22 22: ; preds = %6 - switch i32 %.sroa.249.0.copyload, label %_ZN11duckdb_zstdL25FASTCOVER_checkParametersENS_20ZDICT_cover_params_tEmjj.exit.thread [ + switch i32 %.sroa.257.0.copyload, label %_ZN11duckdb_zstdL25FASTCOVER_checkParametersENS_20ZDICT_cover_params_tEmjj.exit.thread [ i32 8, label %23 i32 6, label %23 ] 23: ; preds = %22, %22 - %24 = zext i32 %.sroa.048.0.copyload to i64 + %24 = zext i32 %.sroa.056.0.copyload to i64 %25 = icmp ult i64 %1, %24 - %26 = icmp ugt i32 %.sroa.249.0.copyload, %.sroa.048.0.copyload + %26 = icmp ugt i32 %.sroa.257.0.copyload, %.sroa.056.0.copyload %or.cond20.i = or i1 %26, %25 %27 = add i32 %15, -32 %or.cond7.i = icmp ult i32 %27, -31 %or.cond21.i = or i1 %or.cond7.i, %or.cond20.i %or.cond12.i = icmp ugt i32 %17, 10 - %or.cond58 = select i1 %or.cond21.i, i1 true, i1 %or.cond12.i - br i1 %or.cond58, label %_ZN11duckdb_zstdL25FASTCOVER_checkParametersENS_20ZDICT_cover_params_tEmjj.exit.thread, label %34 + %or.cond67 = select i1 %or.cond21.i, i1 true, i1 %or.cond12.i + br i1 %or.cond67, label %_ZN11duckdb_zstdL25FASTCOVER_checkParametersENS_20ZDICT_cover_params_tEmjj.exit.thread, label %34 _ZN11duckdb_zstdL25FASTCOVER_checkParametersENS_20ZDICT_cover_params_tEmjj.exit.thread: ; preds = %23, %22, %6 %28 = icmp sgt i32 %11, 0 @@ -140,7 +138,7 @@ _ZN11duckdb_zstdL25FASTCOVER_checkParametersENS_20ZDICT_cover_params_tEmjj.exit. %53 = zext nneg i32 %18 to i64 %54 = getelementptr inbounds nuw %"struct.duckdb_zstd::FASTCOVER_accel_t", ptr @_ZN11duckdb_zstdL32FASTCOVER_defaultAccelParametersE, i64 %53 %.sroa.011.0.copyload = load i64, ptr %54, align 8 - %55 = call fastcc noundef i64 @_ZN11duckdb_zstdL18FASTCOVER_ctx_initEPNS_15FASTCOVER_ctx_tEPKvPKmjjdjNS_17FASTCOVER_accel_tE(ptr noundef %7, ptr noundef %2, ptr noundef %3, i32 noundef %4, i32 noundef %.sroa.249.0.copyload, double noundef 1.000000e+00, i32 noundef %15, i64 %.sroa.011.0.copyload) + %55 = call fastcc noundef i64 @_ZN11duckdb_zstdL18FASTCOVER_ctx_initEPNS_15FASTCOVER_ctx_tEPKvPKmjjdjNS_17FASTCOVER_accel_tE(ptr noundef %7, ptr noundef %2, ptr noundef %3, i32 noundef %4, i32 noundef %.sroa.257.0.copyload, double noundef 1.000000e+00, i32 noundef %15, i64 %.sroa.011.0.copyload) %56 = icmp ult i64 %55, -119 br i1 %56, label %.critedge, label %57 @@ -178,17 +176,15 @@ _ZN11duckdb_zstdL25FASTCOVER_checkParametersENS_20ZDICT_cover_params_tEmjj.exit. %78 = tail call noalias ptr @calloc(i64 noundef %77, i64 noundef 2) #14 %79 = getelementptr inbounds nuw i8, ptr %7, i64 56 %80 = load ptr, ptr %79, align 8, !tbaa !23 - store i32 %.sroa.048.0.copyload, ptr %8, align 8, !tbaa !10 + store i32 %.sroa.056.0.copyload, ptr %8, align 8, !tbaa !10 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 4 - store i32 %.sroa.249.0.copyload, ptr %.sroa.6.0..sroa_idx, align 4, !tbaa !10 + store i32 %.sroa.257.0.copyload, ptr %.sroa.6.0..sroa_idx, align 4, !tbaa !10 %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 8 - store i32 %.sroa.450.0.copyload, ptr %.sroa.9.0..sroa_idx, align 8, !tbaa !10 - %.sroa.11.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 12 - store i32 %.sroa.551.0.copyload, ptr %.sroa.11.0..sroa_idx, align 4, !tbaa !10 + store i64 %.sroa.459.0.copyload, ptr %.sroa.9.0..sroa_idx, align 8 %.sroa.12.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 16 store double 1.000000e+00, ptr %.sroa.12.0..sroa_idx, align 8, !tbaa !24 %.sroa.14.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 24 - store i32 %.sroa.955.0.copyload, ptr %.sroa.14.0..sroa_idx, align 8, !tbaa !10 + store i32 %.sroa.964.0.copyload, ptr %.sroa.14.0..sroa_idx, align 8, !tbaa !10 %.sroa.16.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 28 store i32 0, ptr %.sroa.16.0..sroa_idx, align 4, !tbaa !10 %.sroa.16.sroa.4.0..sroa.16.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 32 diff --git a/bench/elfshaker-rs/optimized/538k7v4jnxs1qgfredr4viqv4.ll b/bench/elfshaker-rs/optimized/538k7v4jnxs1qgfredr4viqv4.ll index f6b341d4417..af85aab71a6 100644 --- a/bench/elfshaker-rs/optimized/538k7v4jnxs1qgfredr4viqv4.ll +++ b/bench/elfshaker-rs/optimized/538k7v4jnxs1qgfredr4viqv4.ll @@ -7453,6 +7453,7 @@ define hidden void @_ZN9elfshaker4repo6remote26update_remote_pack_indexes17h6073 %29 = alloca [48 x i8], align 8 %30 = alloca [8 x i8], align 8 %31 = alloca [20 x i8], align 1 + %.sroa.11.i = alloca i64, align 8 %32 = alloca [1 x i8], align 1 %33 = alloca [40 x i8], align 8 %34 = alloca [24 x i8], align 8 @@ -7573,15 +7574,15 @@ define hidden void @_ZN9elfshaker4repo6remote26update_remote_pack_indexes17h6073 br label %126 126: ; preds = %.lr.ph, %348 - %.sroa.0.0177 = phi i64 [ 0, %.lr.ph ], [ %313, %348 ] - %.sroa.02.0176 = phi i64 [ %47, %.lr.ph ], [ %314, %348 ] - %.sroa.027.0175 = phi ptr [ %50, %.lr.ph ], [ %127, %348 ] - %127 = getelementptr inbounds nuw i8, ptr %.sroa.027.0175, i64 64 + %.sroa.0.0179 = phi i64 [ 0, %.lr.ph ], [ %313, %348 ] + %.sroa.02.0178 = phi i64 [ %47, %.lr.ph ], [ %314, %348 ] + %.sroa.027.0177 = phi ptr [ %50, %.lr.ph ], [ %127, %348 ] + %127 = getelementptr inbounds nuw i8, ptr %.sroa.027.0177, i64 64 call void @llvm.lifetime.start.p0(ptr nonnull %45) call void @llvm.lifetime.start.p0(ptr nonnull %44) call void @llvm.lifetime.start.p0(ptr nonnull %43) call void @llvm.lifetime.start.p0(ptr nonnull %42) - call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h264d14c2948c37e0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %42, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.027.0175) + call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h264d14c2948c37e0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %42, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.027.0177) call void @llvm.experimental.noalias.scope.decl(metadata !539) invoke void @"_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17h8b7d0c71538f587eE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %42, ptr noundef nonnull @anon.914b41a498dd01229c97f10d279cfb3c.247, ptr noundef nonnull readonly getelementptr inbounds nuw (i8, ptr @anon.914b41a498dd01229c97f10d279cfb3c.247, i64 4), ptr noalias noundef readonly align 8 dereferenceable(24) @anon.914b41a498dd01229c97f10d279cfb3c.177) to label %"_ZN78_$LT$alloc..string..String$u20$as$u20$core..ops..arith..Add$LT$$RF$str$GT$$GT$3add17hfe8b60848f4e89dbE.exit" unwind label %128, !noalias !539 @@ -7599,7 +7600,7 @@ define hidden void @_ZN9elfshaker4repo6remote26update_remote_pack_indexes17h6073 unreachable common.resume: ; preds = %134, %.loopexit.split-lp, %128 - %common.resume.op = phi { ptr, i32 } [ %129, %128 ], [ %.pn, %.loopexit.split-lp ], [ %lpad.phi111, %134 ] + %common.resume.op = phi { ptr, i32 } [ %129, %128 ], [ %.pn, %.loopexit.split-lp ], [ %lpad.phi113, %134 ] resume { ptr, i32 } %common.resume.op "_ZN78_$LT$alloc..string..String$u20$as$u20$core..ops..arith..Add$LT$$RF$str$GT$$GT$3add17hfe8b60848f4e89dbE.exit": ; preds = %126 @@ -7612,24 +7613,24 @@ common.resume: ; preds = %134, %.loopexit.spl store ptr null, ptr %33, align 8 store ptr null, ptr %56, align 8 invoke void @_ZN3url12ParseOptions5parse17h6921ca33602c4904E(ptr noalias noundef nonnull sret([88 x i8]) align 8 captures(none) dereferenceable(88) %44, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(40) %33, ptr noalias noundef nonnull readonly align 1 %132, i64 noundef %133) - to label %135 unwind label %.loopexit107 + to label %135 unwind label %.loopexit109 ._crit_edge: ; preds = %348, %6 store i64 -9223372036854775791, ptr %0, align 8 br label %353 -.loopexit107: ; preds = %"_ZN78_$LT$alloc..string..String$u20$as$u20$core..ops..arith..Add$LT$$RF$str$GT$$GT$3add17hfe8b60848f4e89dbE.exit" - %lpad.loopexit109 = landingpad { ptr, i32 } +.loopexit109: ; preds = %"_ZN78_$LT$alloc..string..String$u20$as$u20$core..ops..arith..Add$LT$$RF$str$GT$$GT$3add17hfe8b60848f4e89dbE.exit" + %lpad.loopexit111 = landingpad { ptr, i32 } cleanup br label %134 -.loopexit.split-lp108: ; preds = %138 - %lpad.loopexit.split-lp110 = landingpad { ptr, i32 } +.loopexit.split-lp110: ; preds = %138 + %lpad.loopexit.split-lp112 = landingpad { ptr, i32 } cleanup br label %134 -134: ; preds = %.loopexit.split-lp108, %.loopexit107 - %lpad.phi111 = phi { ptr, i32 } [ %lpad.loopexit109, %.loopexit107 ], [ %lpad.loopexit.split-lp110, %.loopexit.split-lp108 ] +134: ; preds = %.loopexit.split-lp110, %.loopexit109 + %lpad.phi113 = phi { ptr, i32 } [ %lpad.loopexit111, %.loopexit109 ], [ %lpad.loopexit.split-lp112, %.loopexit.split-lp110 ] invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hf784466cc816aa33E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %43) #27 to label %common.resume unwind label %354 @@ -7647,7 +7648,7 @@ common.resume: ; preds = %134, %.loopexit.spl %140 = load i8, ptr %139, align 8, !range !213, !alias.scope !549, !noalias !551, !noundef !3 store i8 %140, ptr %32, align 1, !noalias !553 invoke void @_ZN4core6result13unwrap_failed17h563d6df1cad9fe9bE(ptr noalias noundef nonnull readonly align 1 @anon.914b41a498dd01229c97f10d279cfb3c.84, i64 noundef 43, ptr noundef nonnull align 1 %32, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.914b41a498dd01229c97f10d279cfb3c.83, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.914b41a498dd01229c97f10d279cfb3c.248) #25 - to label %.noexc unwind label %.loopexit.split-lp108 + to label %.noexc unwind label %.loopexit.split-lp110 .noexc: ; preds = %138 unreachable @@ -7659,7 +7660,7 @@ common.resume: ; preds = %134, %.loopexit.spl to label %142 unwind label %.loopexit.split-lp.loopexit .loopexit.split-lp: ; preds = %.loopexit, %.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit, %.body - %.pn = phi { ptr, i32 } [ %eh.lpad-body, %.body ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit112, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp113, %.loopexit.split-lp.loopexit.split-lp ] + %.pn = phi { ptr, i32 } [ %eh.lpad-body, %.body ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit114, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp115, %.loopexit.split-lp.loopexit.split-lp ] invoke void @"_ZN4core3ptr29drop_in_place$LT$url..Url$GT$17hc74cab4d2420e597E"(ptr noalias noundef nonnull align 8 dereferenceable(88) %45) #27 to label %common.resume unwind label %354 @@ -7669,12 +7670,12 @@ common.resume: ; preds = %134, %.loopexit.spl br label %.loopexit.split-lp .loopexit.split-lp.loopexit: ; preds = %_ZN9elfshaker8progress16ProgressReporter22checkpoint_with_detail17h698cef853b715bdeE.exit, %201, %142, %141 - %lpad.loopexit112 = landingpad { ptr, i32 } + %lpad.loopexit114 = landingpad { ptr, i32 } cleanup br label %.loopexit.split-lp -.loopexit.split-lp.loopexit.split-lp: ; preds = %.loopexit115.invoke, %184, %318 - %lpad.loopexit.split-lp113 = landingpad { ptr, i32 } +.loopexit.split-lp.loopexit.split-lp: ; preds = %.loopexit117.invoke, %184, %318 + %lpad.loopexit.split-lp115 = landingpad { ptr, i32 } cleanup br label %.loopexit.split-lp @@ -7688,7 +7689,7 @@ common.resume: ; preds = %134, %.loopexit.spl 143: ; preds = %142 %144 = load i32, ptr %57, align 4, !range !556, !noundef !3 %.not = icmp eq i32 %144, 1114112 - br i1 %.not, label %.loopexit115.invoke, label %145, !prof !33 + br i1 %.not, label %.loopexit117.invoke, label %145, !prof !33 145: ; preds = %143 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %41, ptr noundef nonnull align 8 dereferenceable(72) %40, i64 72, i1 false) @@ -7699,7 +7700,7 @@ common.resume: ; preds = %134, %.loopexit.spl .thread79: ; preds = %145 call void @llvm.lifetime.end.p0(ptr nonnull %41) - br label %.loopexit115.invoke + br label %.loopexit117.invoke .lr.ph.i: ; preds = %145 %.pre.i = load i64, ptr %61, align 8, !alias.scope !564, !noalias !567 @@ -7854,7 +7855,7 @@ _ZN4core5slice6memchr6memchr17h2d5411a4e6c78ad8E.exit.thread16.i.i.i.i: ; preds 200: ; preds = %190, %.loopexit.i.i.i call void @llvm.lifetime.end.p0(ptr nonnull %41) %.not30 = icmp eq ptr %.sroa.0.018.i, null - br i1 %.not30, label %.loopexit115.invoke, label %201, !prof !575 + br i1 %.not30, label %.loopexit117.invoke, label %201, !prof !575 201: ; preds = %.thread, %200 %.sroa.0.0.lcssa.i78 = phi ptr [ %.sroa.0.0.lcssa.i.ph, %.thread ], [ %.sroa.0.018.i, %200 ] @@ -7863,22 +7864,23 @@ _ZN4core5slice6memchr6memchr17h2d5411a4e6c78ad8E.exit.thread16.i.i.i.i: ; preds invoke void @_ZN3std4path4Path4join17hca25727a4119dca0E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %39, ptr noalias noundef nonnull readonly align 1 %3, i64 noundef %4, ptr noalias noundef nonnull readonly align 1 %.sroa.0.0.lcssa.i78, i64 noundef %.sroa.6.0.lcssa.i77) to label %203 unwind label %.loopexit.split-lp.loopexit -.loopexit115.invoke: ; preds = %200, %143, %.thread79 +.loopexit117.invoke: ; preds = %200, %143, %.thread79 %202 = phi ptr [ @anon.914b41a498dd01229c97f10d279cfb3c.250, %.thread79 ], [ @anon.914b41a498dd01229c97f10d279cfb3c.249, %143 ], [ @anon.914b41a498dd01229c97f10d279cfb3c.250, %200 ] invoke void @_ZN4core6option13unwrap_failed17h1fc5fce77a97a273E(ptr noalias noundef readonly align 8 dereferenceable(24) %202) #25 - to label %.loopexit115.cont unwind label %.loopexit.split-lp.loopexit.split-lp + to label %.loopexit117.cont unwind label %.loopexit.split-lp.loopexit.split-lp -.loopexit115.cont: ; preds = %.loopexit115.invoke +.loopexit117.cont: ; preds = %.loopexit117.invoke unreachable 203: ; preds = %201 %204 = load ptr, ptr %66, align 8, !nonnull !3, !noundef !3 %205 = load i64, ptr %67, align 8, !noundef !3 - %206 = getelementptr inbounds nuw i8, ptr %.sroa.027.0175, i64 24 + %206 = getelementptr inbounds nuw i8, ptr %.sroa.027.0177, i64 24 + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.11.i) call void @llvm.lifetime.start.p0(ptr nonnull %29), !noalias !576 call void @llvm.lifetime.start.p0(ptr nonnull %28), !noalias !576 invoke void @_ZN3std2fs4File4open17h3e0944f99039b6b7E(ptr noalias noundef nonnull sret([16 x i8]) align 8 captures(none) dereferenceable(16) %28, ptr noalias noundef nonnull readonly align 1 %204, i64 noundef %205) - to label %.noexc39 unwind label %.loopexit116 + to label %.noexc39 unwind label %.loopexit118 .noexc39: ; preds = %203 %207 = load i32, ptr %28, align 8, !range !293, !noalias !576, !noundef !3 @@ -7894,7 +7896,7 @@ _ZN4core5slice6memchr6memchr17h2d5411a4e6c78ad8E.exit.thread16.i.i.i.i: ; preds %212 = load i32, ptr %68, align 4, !range !294, !noalias !576, !noundef !3 call void @llvm.lifetime.end.p0(ptr nonnull %28), !noalias !576 invoke void @"_ZN3std2io8buffered9bufreader18BufReader$LT$R$GT$13with_capacity17hb3db984d791ae9dcE"(ptr noalias noundef nonnull sret([48 x i8]) align 8 captures(none) dereferenceable(48) %29, i64 noundef 8192, i32 noundef %212) - to label %.noexc40 unwind label %.loopexit116 + to label %.noexc40 unwind label %.loopexit118 .noexc40: ; preds = %211 call void @llvm.lifetime.start.p0(ptr nonnull %27), !noalias !576 @@ -7970,7 +7972,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. %.sroa.6.012.i.i = phi ptr [ %228, %.loopexit13.loopexit.i.i ], [ %219, %.noexc.i.i ] call void @llvm.lifetime.end.p0(ptr nonnull %27), !noalias !576 invoke void @"_ZN4core3ptr81drop_in_place$LT$std..io..buffered..bufreader..BufReader$LT$std..fs..File$GT$$GT$17habea23a93376a385E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %29) - to label %.noexc41 unwind label %.loopexit116 + to label %.noexc41 unwind label %.loopexit118 229: ; preds = %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i.i %230 = icmp eq i64 %223, %224 @@ -8011,54 +8013,56 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. call void @llvm.lifetime.start.p0(ptr nonnull %31), !noalias !584 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %31, ptr noundef nonnull align 1 dereferenceable(7) %26, i64 7, i1 false), !noalias !584 %.sroa.8.1.copyload11.i = load ptr, ptr %.sroa.8.1..sroa_idx10.i, align 1, !noalias !594 - %.sroa.11.1.copyload.i = load i40, ptr %.sroa.11.1..sroa_idx12.i, align 1, !noalias !594 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.sroa.11.i, ptr noundef nonnull align 1 dereferenceable(5) %.sroa.11.1..sroa_idx12.i, i64 5, i1 false), !noalias !594 call void @llvm.lifetime.end.p0(ptr nonnull %26), !noalias !576 call void @llvm.lifetime.end.p0(ptr nonnull %27), !noalias !576 invoke void @"_ZN4core3ptr81drop_in_place$LT$std..io..buffered..bufreader..BufReader$LT$std..fs..File$GT$$GT$17habea23a93376a385E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %29) - to label %243 unwind label %.loopexit116 + to label %243 unwind label %.loopexit118 242: ; preds = %.noexc41 call void @llvm.lifetime.start.p0(ptr nonnull %30), !noalias !584 store ptr %.sroa.8.0.ph.i, ptr %30, align 8, !noalias !584 invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hb27365d107ee18afE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %30) - to label %.thread88 unwind label %.loopexit116 + to label %.thread90 unwind label %.loopexit118 -.thread88: ; preds = %242 +.thread90: ; preds = %242 call void @llvm.lifetime.end.p0(ptr nonnull %30), !noalias !584 + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.11.i) br label %245 -.loopexit116: ; preds = %254, %323, %327, %312, %203, %211, %.loopexit13.i.i, %241, %242, %245, %.thread85.i, %250, %"_ZN4core3ptr94drop_in_place$LT$core..result..Result$LT$std..time..SystemTime$C$std..io..error..Error$GT$$GT$17hedb5dc17306c8e97E.exit.i", %.thread88.i, %329, %344, %347 - %lpad.loopexit118 = landingpad { ptr, i32 } +.loopexit118: ; preds = %254, %323, %327, %312, %203, %211, %.loopexit13.i.i, %241, %242, %245, %.thread85.i, %250, %"_ZN4core3ptr94drop_in_place$LT$core..result..Result$LT$std..time..SystemTime$C$std..io..error..Error$GT$$GT$17hedb5dc17306c8e97E.exit.i", %.thread88.i, %329, %344, %347 + %lpad.loopexit120 = landingpad { ptr, i32 } cleanup br label %.body -.loopexit.split-lp117: ; preds = %"_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$elfshaker..packidx..PackIndex$C$elfshaker..packidx..PackError$GT$$GT$17hdbe8a5488354a47bE.exit.i", %335 +.loopexit.split-lp119: ; preds = %"_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$elfshaker..packidx..PackIndex$C$elfshaker..packidx..PackError$GT$$GT$17hdbe8a5488354a47bE.exit.i", %335 %lpad.loopexit.split-lp = landingpad { ptr, i32 } cleanup br label %.body -.body: ; preds = %.loopexit116, %.loopexit.split-lp117, %342, %.thread98.i, %222 - %eh.lpad-body = phi { ptr, i32 } [ %lpad.phi.i.i, %222 ], [ %.pn73.i, %.thread98.i ], [ %343, %342 ], [ %lpad.loopexit118, %.loopexit116 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp117 ] +.body: ; preds = %.loopexit118, %.loopexit.split-lp119, %342, %.thread98.i, %222 + %eh.lpad-body = phi { ptr, i32 } [ %lpad.phi.i.i, %222 ], [ %.pn73.i, %.thread98.i ], [ %343, %342 ], [ %lpad.loopexit120, %.loopexit118 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp119 ] invoke void @"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17h61402040d85a06a8E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %39) #27 to label %.loopexit.split-lp unwind label %354 243: ; preds = %241 call void @llvm.lifetime.end.p0(ptr nonnull %29), !noalias !576 store ptr %.sroa.8.1.copyload11.i, ptr %.sroa.8.1..sroa_idx.i, align 1, !noalias !584 - store i40 %.sroa.11.1.copyload.i, ptr %.sroa.11.1..sroa_idx.i, align 1, !noalias !584 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %.sroa.11.1..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(5) %.sroa.11.i, i64 5, i1 false), !noalias !584 %bcmp.i = call i32 @bcmp(ptr noundef nonnull dereferenceable(20) %31, ptr noundef nonnull readonly align 1 dereferenceable(20) %206, i64 20), !noalias !595 %244 = icmp eq i32 %bcmp.i, 0 call void @llvm.lifetime.end.p0(ptr nonnull %31), !noalias !584 + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.11.i) br i1 %244, label %319, label %245 -245: ; preds = %.thread88, %243 +245: ; preds = %.thread90, %243 %246 = load ptr, ptr %66, align 8, !nonnull !3, !noundef !3 %247 = load i64, ptr %67, align 8, !noundef !3 call void @llvm.lifetime.start.p0(ptr nonnull %24) store ptr %45, ptr %24, align 8, !noalias !596 call void @llvm.lifetime.start.p0(ptr nonnull %23), !noalias !596 invoke void @_ZN3std2fs8metadata17h2aea8a706ede19deE(ptr noalias noundef nonnull sret([176 x i8]) align 8 captures(none) dereferenceable(176) %23, ptr noalias noundef nonnull readonly align 1 %246, i64 noundef %247) - to label %.noexc44 unwind label %.loopexit116 + to label %.noexc44 unwind label %.loopexit118 .noexc44: ; preds = %245 %248 = load i64, ptr %23, align 8, !range !283, !noalias !596, !noundef !3 @@ -8067,7 +8071,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. .thread85.i: ; preds = %.noexc44 invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hb27365d107ee18afE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %93) - to label %.noexc45 unwind label %.loopexit116 + to label %.noexc45 unwind label %.loopexit118 .noexc45: ; preds = %.thread85.i call void @llvm.lifetime.end.p0(ptr nonnull %23), !noalias !596 @@ -8080,7 +8084,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. store i64 %248, ptr %10, align 8, !noalias !596 call void @llvm.lifetime.start.p0(ptr nonnull %9), !noalias !596 invoke void @_ZN3std2fs8Metadata8modified17h4d0e35359e628f25E(ptr noalias noundef nonnull sret([16 x i8]) align 8 captures(none) dereferenceable(16) %9, ptr noalias noundef nonnull readonly align 8 dereferenceable(176) %10) - to label %.noexc46 unwind label %.loopexit116 + to label %.noexc46 unwind label %.loopexit118 .noexc46: ; preds = %250 %251 = load i32, ptr %94, align 8, !range !528, !noalias !596, !noundef !3 @@ -8096,7 +8100,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.66.i.sroa.7) call void @llvm.lifetime.start.p0(ptr nonnull %22), !noalias !596 invoke fastcc void @_ZN9elfshaker4repo6remote20read_remote_resource17h41f0e74eb770f79cE(ptr noalias noundef align 8 captures(none) dereferenceable(56) %22, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %1, ptr noalias noundef nonnull readonly align 8 dereferenceable(88) %45, i64 %.sroa.09.0.i, i32 noundef %.sroa.4.0.i) - to label %.noexc47 unwind label %.loopexit116 + to label %.noexc47 unwind label %.loopexit118 .noexc47: ; preds = %254 %255 = load i64, ptr %22, align 8, !range !511, !noalias !596, !noundef !3 @@ -8107,7 +8111,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. "_ZN4core3ptr94drop_in_place$LT$core..result..Result$LT$std..time..SystemTime$C$std..io..error..Error$GT$$GT$17hedb5dc17306c8e97E.exit.i": ; preds = %.noexc46 invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hb27365d107ee18afE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %9) - to label %.noexc48 unwind label %.loopexit116 + to label %.noexc48 unwind label %.loopexit118 .noexc48: ; preds = %"_ZN4core3ptr94drop_in_place$LT$core..result..Result$LT$std..time..SystemTime$C$std..io..error..Error$GT$$GT$17hedb5dc17306c8e97E.exit.i", %.noexc46 call void @llvm.lifetime.end.p0(ptr nonnull %9), !noalias !596 @@ -8139,20 +8143,20 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. %260 = load ptr, ptr %.sroa.570.0..sroa_idx, align 8, !noalias !596, !nonnull !3, !noundef !3 %261 = load i64, ptr %96, align 8, !noalias !596, !noundef !3 invoke void @_ZN9elfshaker7packidx9PackIndex5parse17hbee7e566b47d8a82E(ptr noalias noundef nonnull sret([264 x i8]) align 8 captures(none) dereferenceable(264) %20, ptr noalias noundef nonnull readonly align 1 %260, i64 noundef %261) - to label %262 unwind label %.loopexit120, !noalias !602 + to label %262 unwind label %.loopexit122, !noalias !602 -.thread98.i: ; preds = %.loopexit120, %.loopexit.split-lp121, %309, %308, %307, %.thread92.i - %.pn73.i = phi { ptr, i32 } [ %275, %309 ], [ %275, %307 ], [ %.pn97.i, %308 ], [ %265, %.thread92.i ], [ %lpad.loopexit122, %.loopexit120 ], [ %lpad.loopexit.split-lp123, %.loopexit.split-lp121 ] +.thread98.i: ; preds = %.loopexit122, %.loopexit.split-lp123, %309, %308, %307, %.thread92.i + %.pn73.i = phi { ptr, i32 } [ %275, %309 ], [ %275, %307 ], [ %.pn97.i, %308 ], [ %265, %.thread92.i ], [ %lpad.loopexit124, %.loopexit122 ], [ %lpad.loopexit.split-lp125, %.loopexit.split-lp123 ] invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h7c6be5b3411e794dE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %21) #27 to label %.body unwind label %283, !noalias !602 -.loopexit120: ; preds = %259, %305, %306 - %lpad.loopexit122 = landingpad { ptr, i32 } +.loopexit122: ; preds = %259, %305, %306 + %lpad.loopexit124 = landingpad { ptr, i32 } cleanup br label %.thread98.i -.loopexit.split-lp121: ; preds = %303, %304 - %lpad.loopexit.split-lp123 = landingpad { ptr, i32 } +.loopexit.split-lp123: ; preds = %303, %304 + %lpad.loopexit.split-lp125 = landingpad { ptr, i32 } cleanup br label %.thread98.i @@ -8303,20 +8307,20 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. 303: ; preds = %302 invoke void @"_ZN4core3ptr50drop_in_place$LT$elfshaker..packidx..PackIndex$GT$17hc9d685b47fab0509E"(ptr noalias noundef nonnull align 8 dereferenceable(264) %20) - to label %"_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$elfshaker..packidx..PackIndex$C$elfshaker..packidx..PackError$GT$$GT$17hdbe8a5488354a47bE.exit.i" unwind label %.loopexit.split-lp121, !noalias !602 + to label %"_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$elfshaker..packidx..PackIndex$C$elfshaker..packidx..PackError$GT$$GT$17hdbe8a5488354a47bE.exit.i" unwind label %.loopexit.split-lp123, !noalias !602 304: ; preds = %302 invoke fastcc void @"_ZN4core3ptr50drop_in_place$LT$elfshaker..packidx..PackError$GT$17he66c2344018b2808E"(ptr noalias noundef align 8 dereferenceable(48) %107) - to label %"_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$elfshaker..packidx..PackIndex$C$elfshaker..packidx..PackError$GT$$GT$17hdbe8a5488354a47bE.exit.i" unwind label %.loopexit.split-lp121, !noalias !602 + to label %"_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$elfshaker..packidx..PackIndex$C$elfshaker..packidx..PackError$GT$$GT$17hdbe8a5488354a47bE.exit.i" unwind label %.loopexit.split-lp123, !noalias !602 305: ; preds = %.thread90.i, %280 invoke void @"_ZN4core3ptr50drop_in_place$LT$elfshaker..packidx..PackIndex$GT$17hc9d685b47fab0509E"(ptr noalias noundef nonnull align 8 dereferenceable(264) %20) - to label %.thread88.i unwind label %.loopexit120, !noalias !602 + to label %.thread88.i unwind label %.loopexit122, !noalias !602 .thread88.i: ; preds = %306, %305, %.thread90.i call void @llvm.lifetime.end.p0(ptr nonnull %20), !noalias !596 invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h7c6be5b3411e794dE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %21) - to label %.noexc49 unwind label %.loopexit116 + to label %.noexc49 unwind label %.loopexit118 .noexc49: ; preds = %.thread88.i call void @llvm.lifetime.end.p0(ptr nonnull %21), !noalias !596 @@ -8324,12 +8328,12 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. 306: ; preds = %280 invoke fastcc void @"_ZN4core3ptr50drop_in_place$LT$elfshaker..packidx..PackError$GT$17he66c2344018b2808E"(ptr noalias noundef align 8 dereferenceable(48) %107) - to label %.thread88.i unwind label %.loopexit120, !noalias !602 + to label %.thread88.i unwind label %.loopexit122, !noalias !602 "_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$elfshaker..packidx..PackIndex$C$elfshaker..packidx..PackError$GT$$GT$17hdbe8a5488354a47bE.exit.i": ; preds = %304, %303 call void @llvm.lifetime.end.p0(ptr nonnull %20), !noalias !596 invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h7c6be5b3411e794dE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %21) - to label %.noexc50 unwind label %.loopexit.split-lp117 + to label %.noexc50 unwind label %.loopexit.split-lp119 .noexc50: ; preds = %"_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$elfshaker..packidx..PackIndex$C$elfshaker..packidx..PackError$GT$$GT$17hdbe8a5488354a47bE.exit.i" call void @llvm.lifetime.end.p0(ptr nonnull %21), !noalias !596 @@ -8365,15 +8369,15 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. br label %312 312: ; preds = %319, %328, %311 - %313 = add nuw nsw i64 %.sroa.0.0177, 1 - %314 = add nsw i64 %.sroa.02.0176, -1 + %313 = add nuw nsw i64 %.sroa.0.0179, 1 + %314 = add nsw i64 %.sroa.02.0178, -1 call void @llvm.lifetime.start.p0(ptr nonnull %34) - %315 = getelementptr i8, ptr %.sroa.027.0175, i64 8 + %315 = getelementptr i8, ptr %.sroa.027.0177, i64 8 %.sroa.027.0.val = load ptr, ptr %315, align 8, !nonnull !3, !noundef !3 - %316 = getelementptr i8, ptr %.sroa.027.0175, i64 16 + %316 = getelementptr i8, ptr %.sroa.027.0177, i64 16 %.sroa.027.0.val35 = load i64, ptr %316, align 8, !noundef !3 %317 = invoke fastcc { ptr, i64 } @_ZN9elfshaker4repo6remote10RemotePack9file_name17haefcb7870cdad725E(ptr nonnull %.sroa.027.0.val, i64 %.sroa.027.0.val35) - to label %329 unwind label %.loopexit116 + to label %329 unwind label %.loopexit118 318: ; preds = %350, %310 invoke void @"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17h61402040d85a06a8E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %39) @@ -8403,7 +8407,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. store i64 1, ptr %87, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %35) %326 = invoke noundef align 8 dereferenceable(24) ptr @_ZN3log13__private_api3loc17h3ab63cf1e40497eeE(ptr noalias noundef readonly align 8 dereferenceable(24) @anon.914b41a498dd01229c97f10d279cfb3c.253) - to label %327 unwind label %.loopexit116 + to label %327 unwind label %.loopexit118 327: ; preds = %323 store ptr @anon.914b41a498dd01229c97f10d279cfb3c.234, ptr %35, align 8 @@ -8412,7 +8416,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. store i64 23, ptr %90, align 8 store ptr %326, ptr %91, align 8 invoke void @_ZN3log13__private_api8log_impl17hb1db218cb75835bdE(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %38, i64 noundef 3, ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %35, ptr noalias noundef readonly align 8 null, i64 undef) - to label %328 unwind label %.loopexit116 + to label %328 unwind label %.loopexit118 328: ; preds = %327 call void @llvm.lifetime.end.p0(ptr nonnull %38) @@ -8426,7 +8430,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. %331 = extractvalue { ptr, i64 } %317, 1 call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !603 invoke void @"_ZN5alloc7raw_vec20RawVecInner$LT$A$GT$15try_allocate_in17h5063d03c34177e2eE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %8, i64 noundef %331, i1 noundef zeroext false, i64 noundef 1, i64 noundef 1) - to label %.noexc53 unwind label %.loopexit116 + to label %.noexc53 unwind label %.loopexit118 .noexc53: ; preds = %329 %332 = load i64, ptr %8, align 8, !range !18, !noalias !603, !noundef !3 @@ -8437,7 +8441,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. 335: ; preds = %.noexc53 %336 = load i64, ptr %118, align 8, !noalias !603 invoke void @_ZN5alloc7raw_vec12handle_error17h84144ef81c430b40E(i64 noundef %334, i64 %336, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.914b41a498dd01229c97f10d279cfb3c.180) #25 - to label %.noexc54 unwind label %.loopexit.split-lp117 + to label %.noexc54 unwind label %.loopexit.split-lp119 .noexc54: ; preds = %335 unreachable @@ -8471,7 +8475,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. 344: ; preds = %340 invoke void @"_ZN4core3ptr52drop_in_place$LT$elfshaker..progress..Checkpoint$GT$17h994c20b710bbabadE"(ptr noalias noundef nonnull align 8 dereferenceable(48) %7) - to label %.noexc56 unwind label %.loopexit116 + to label %.noexc56 unwind label %.loopexit118 .noexc56: ; preds = %344 call void @llvm.lifetime.end.p0(ptr nonnull %7), !noalias !610 @@ -8485,7 +8489,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. 347: ; preds = %337 invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hf784466cc816aa33E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %34) - to label %_ZN9elfshaker8progress16ProgressReporter22checkpoint_with_detail17h698cef853b715bdeE.exit unwind label %.loopexit116 + to label %_ZN9elfshaker8progress16ProgressReporter22checkpoint_with_detail17h698cef853b715bdeE.exit unwind label %.loopexit118 _ZN9elfshaker8progress16ProgressReporter22checkpoint_with_detail17h698cef853b715bdeE.exit: ; preds = %.noexc56, %347 call void @llvm.lifetime.end.p0(ptr nonnull %34) @@ -8500,6 +8504,7 @@ _ZN9elfshaker8progress16ProgressReporter22checkpoint_with_detail17h698cef853b715 br i1 %349, label %._crit_edge, label %126 350: ; preds = %.noexc41 + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.11.i) %351 = icmp ne ptr %.sroa.8.0.ph.i, null call void @llvm.assume(i1 %351) store i64 -9223372036854775807, ptr %0, align 8 diff --git a/bench/ffmpeg/optimized/avformat.ll b/bench/ffmpeg/optimized/avformat.ll index 2ae2f8dfbef..a94c7cb92ec 100644 --- a/bench/ffmpeg/optimized/avformat.ll +++ b/bench/ffmpeg/optimized/avformat.ll @@ -1957,81 +1957,82 @@ declare i64 @strtol(ptr noundef readonly, ptr noundef captures(none), i32 nounde define i64 @av_guess_sample_aspect_ratio(ptr noundef readnone captures(none) %0, ptr noundef readonly captures(address_is_null) %1, ptr noundef readonly captures(address_is_null) %2) local_unnamed_addr #0 { %4 = alloca %struct.AVRational, align 8 %5 = alloca %struct.AVRational, align 8 - %6 = alloca %struct.AVRational, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %4) %.not = icmp eq ptr %1, null - br i1 %.not, label %.critedge, label %7 + br i1 %.not, label %.critedge, label %6 -7: ; preds = %3 - %8 = getelementptr inbounds nuw i8, ptr %1, i64 72 - %9 = load i64, ptr %8, align 8 - store i64 %9, ptr %4, align 8 - call void @llvm.lifetime.start.p0(ptr nonnull %5) - %10 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %11 = load ptr, ptr %10, align 8, !tbaa !87 - %.not15 = icmp eq ptr %11, null - %12 = lshr i64 %9, 32 - br i1 %.not15, label %16, label %13 - -13: ; preds = %7 - %14 = getelementptr inbounds nuw i8, ptr %11, i64 80 - %15 = load i64, ptr %14, align 8 - br label %16 +6: ; preds = %3 + %7 = getelementptr inbounds nuw i8, ptr %1, i64 72 + %8 = load i64, ptr %7, align 8 + store i64 %8, ptr %4, align 8 + %9 = getelementptr inbounds nuw i8, ptr %1, i64 16 + %10 = load ptr, ptr %9, align 8, !tbaa !87 + %.not22 = icmp eq ptr %10, null + %11 = lshr i64 %8, 32 + br i1 %.not22, label %14, label %12 + +12: ; preds = %6 + %13 = getelementptr inbounds nuw i8, ptr %10, i64 80 + %.sroa.0.0.copyload = load i64, ptr %13, align 8 + br label %14 .critedge: ; preds = %3 store i64 4294967296, ptr %4, align 8 + br label %14 + +14: ; preds = %6, %.critedge, %12 + %15 = phi i64 [ %11, %12 ], [ 1, %.critedge ], [ %11, %6 ] + %16 = phi i64 [ %8, %12 ], [ 0, %.critedge ], [ %8, %6 ] + %.sroa.0.0 = phi i64 [ %.sroa.0.0.copyload, %12 ], [ 4294967296, %.critedge ], [ 4294967296, %6 ] call void @llvm.lifetime.start.p0(ptr nonnull %5) - br label %16 + %.not23 = icmp eq ptr %2, null + br i1 %.not23, label %20, label %17 -16: ; preds = %7, %.critedge, %13 - %17 = phi i64 [ %12, %13 ], [ 1, %.critedge ], [ %12, %7 ] - %18 = phi i64 [ %9, %13 ], [ 0, %.critedge ], [ %9, %7 ] - %storemerge16 = phi i64 [ %15, %13 ], [ 4294967296, %.critedge ], [ 4294967296, %7 ] - store i64 %storemerge16, ptr %5, align 8 - call void @llvm.lifetime.start.p0(ptr nonnull %6) - %.not17 = icmp eq ptr %2, null - %19 = getelementptr inbounds nuw i8, ptr %2, i64 124 - %storemerge18.in = select i1 %.not17, ptr %5, ptr %19 - %storemerge18 = load i64, ptr %storemerge18.in, align 4 - store i64 %storemerge18, ptr %6, align 8 - %20 = getelementptr inbounds nuw i8, ptr %4, i64 4 - %sext = shl i64 %18, 32 - %21 = ashr exact i64 %sext, 32 - %sext23 = shl nuw i64 %17, 32 - %22 = ashr exact i64 %sext23, 32 - %23 = call i32 @av_reduce(ptr noundef nonnull %4, ptr noundef nonnull %20, i64 noundef %21, i64 noundef %22, i64 noundef 2147483647) #13 - %24 = load i32, ptr %4, align 8, !tbaa !135 - %25 = icmp slt i32 %24, 1 - %26 = load i32, ptr %20, align 4 - %27 = icmp slt i32 %26, 1 - %or.cond = select i1 %25, i1 true, i1 %27 - br i1 %or.cond, label %28, label %29 - -28: ; preds = %16 +17: ; preds = %14 + %18 = getelementptr inbounds nuw i8, ptr %2, i64 124 + %19 = load i64, ptr %18, align 4 + br label %20 + +20: ; preds = %14, %17 + %storemerge24 = phi i64 [ %19, %17 ], [ %.sroa.0.0, %14 ] + store i64 %storemerge24, ptr %5, align 8 + %21 = getelementptr inbounds nuw i8, ptr %4, i64 4 + %sext = shl i64 %16, 32 + %22 = ashr exact i64 %sext, 32 + %sext30 = shl nuw i64 %15, 32 + %23 = ashr exact i64 %sext30, 32 + %24 = call i32 @av_reduce(ptr noundef nonnull %4, ptr noundef nonnull %21, i64 noundef %22, i64 noundef %23, i64 noundef 2147483647) #13 + %25 = load i32, ptr %4, align 8, !tbaa !135 + %26 = icmp slt i32 %25, 1 + %27 = load i32, ptr %21, align 4 + %28 = icmp slt i32 %27, 1 + %or.cond = select i1 %26, i1 true, i1 %28 + br i1 %or.cond, label %29, label %30 + +29: ; preds = %20 store i64 4294967296, ptr %4, align 8 - br label %29 - -29: ; preds = %16, %28 - %30 = getelementptr inbounds nuw i8, ptr %6, i64 4 - %sext24 = shl i64 %storemerge18, 32 - %31 = ashr exact i64 %sext24, 32 - %32 = ashr i64 %storemerge18, 32 - %33 = call i32 @av_reduce(ptr noundef nonnull %6, ptr noundef nonnull %30, i64 noundef %31, i64 noundef %32, i64 noundef 2147483647) #13 - %34 = load i32, ptr %6, align 8, !tbaa !135 - %35 = icmp slt i32 %34, 1 - %36 = load i32, ptr %30, align 4 - %37 = icmp slt i32 %36, 1 - %or.cond5 = select i1 %35, i1 true, i1 %37 - %.val.pre = load i64, ptr %6, align 8 + br label %30 + +30: ; preds = %20, %29 + %31 = getelementptr inbounds nuw i8, ptr %5, i64 4 + %sext31 = shl i64 %storemerge24, 32 + %32 = ashr exact i64 %sext31, 32 + %33 = ashr i64 %storemerge24, 32 + %34 = call i32 @av_reduce(ptr noundef nonnull %5, ptr noundef nonnull %31, i64 noundef %32, i64 noundef %33, i64 noundef 2147483647) #13 + %35 = load i32, ptr %5, align 8, !tbaa !135 + %36 = icmp slt i32 %35, 1 + %37 = load i32, ptr %31, align 4 + %38 = icmp slt i32 %37, 1 + %or.cond5 = select i1 %36, i1 true, i1 %38 + %.val.pre = load i64, ptr %5, align 8 %.val = select i1 %or.cond5, i64 4294967296, i64 %.val.pre - %38 = load i32, ptr %4, align 8, !tbaa !135 - %.not19 = icmp eq i32 %38, 0 - %.val20 = load i64, ptr %4, align 8 - %.sroa.0.0 = select i1 %.not19, i64 %.val, i64 %.val20 - call void @llvm.lifetime.end.p0(ptr nonnull %6) + %39 = load i32, ptr %4, align 8, !tbaa !135 + %.not25 = icmp eq i32 %39, 0 + %.val26 = load i64, ptr %4, align 8 + %.sroa.018.0 = select i1 %.not25, i64 %.val, i64 %.val26 call void @llvm.lifetime.end.p0(ptr nonnull %5) call void @llvm.lifetime.end.p0(ptr nonnull %4) - ret i64 %.sroa.0.0 + ret i64 %.sroa.018.0 } declare i32 @av_reduce(ptr noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef) local_unnamed_addr #1 diff --git a/bench/g2o/optimized/edge_se2_pointxy_calib.ll b/bench/g2o/optimized/edge_se2_pointxy_calib.ll index 2079a49efef..c62264080cb 100644 --- a/bench/g2o/optimized/edge_se2_pointxy_calib.ll +++ b/bench/g2o/optimized/edge_se2_pointxy_calib.ll @@ -7738,6 +7738,7 @@ _ZNK5Eigen10MatrixBaseINS_5BlockIKNS1_IKNS_9TransposeIKNS_3MapINS_6MatrixIdLin1E br label %_ZN5Eigen8internal20generic_product_implIKNS_5BlockIKNS_9TransposeIKNS_3MapINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi0ENS_6StrideILi0ELi0EEEEEEELi1ELin1ELb1EEENS3_IS6_EENS_10DenseShapeESG_Li7EE13scaleAndAddToINS2_IS9_Li1ELin1ELb0EEEEEvRT_RSE_RKSF_RKd.exit 90: ; preds = %66 + %.sroa.6.24.copyload.cast = ptrtoint ptr %68 to i64 call void @llvm.lifetime.start.p0(ptr nonnull %5) store ptr %67, ptr %5, align 8 %.sroa.542.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 16 @@ -7755,7 +7756,7 @@ _ZNK5Eigen10MatrixBaseINS_5BlockIKNS1_IKNS_9TransposeIKNS_3MapINS_6MatrixIdLin1E %.sroa.532.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 16 store i64 %13, ptr %.sroa.532.0..sroa_idx, align 8 %93 = getelementptr inbounds nuw i8, ptr %7, i64 24 - store ptr %68, ptr %93, align 8 + store i64 %.sroa.6.24.copyload.cast, ptr %93, align 8 %.sroa.8.24..sroa_idx34 = getelementptr inbounds nuw i8, ptr %7, i64 32 store i64 %13, ptr %.sroa.8.24..sroa_idx34, align 8 %.sroa.936.24..sroa_idx37 = getelementptr inbounds nuw i8, ptr %7, i64 40 diff --git a/bench/grpc/optimized/channel_args.ll b/bench/grpc/optimized/channel_args.ll index 03f9b7c9d98..397d1306917 100644 --- a/bench/grpc/optimized/channel_args.ll +++ b/bench/grpc/optimized/channel_args.ll @@ -3061,26 +3061,26 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit5: ; preds = %13, define noundef ptr @_Z41grpc_channel_args_copy_and_add_and_removePK17grpc_channel_argsPPKcmPK8grpc_argm(ptr noundef readonly captures(address_is_null) %0, ptr noundef readonly captures(none) %1, i64 noundef %2, ptr noundef readonly captures(none) %3, i64 noundef %4) local_unnamed_addr #9 personality ptr @__gxx_personality_v0 { %6 = alloca %"class.absl::lts_20240722::log_internal::LogMessageFatal", align 8 %.not = icmp eq ptr %0, null - br i1 %.not, label %.loopexit74, label %.preheader73 + br i1 %.not, label %.loopexit75, label %.preheader74 -.preheader73: ; preds = %5 +.preheader74: ; preds = %5 %7 = load i64, ptr %0, align 8, !tbaa !51 - %.not90 = icmp eq i64 %7, 0 - br i1 %.not90, label %.loopexit74, label %.lr.ph + %.not91 = icmp eq i64 %7, 0 + br i1 %.not91, label %.loopexit75, label %.lr.ph -.lr.ph: ; preds = %.preheader73 +.lr.ph: ; preds = %.preheader74 %.not.i = icmp eq i64 %2, 0 - br i1 %.not.i, label %.loopexit74, label %.lr.ph.split + br i1 %.not.i, label %.loopexit75, label %.lr.ph.split .lr.ph.split: ; preds = %.lr.ph %8 = getelementptr inbounds nuw i8, ptr %0, i64 8 %9 = load ptr, ptr %8, align 8, !tbaa !53 br label %.lr.ph.i -.lr.ph.i: ; preds = %.lr.ph.split, %.loopexit72 - %.04676 = phi i64 [ 0, %.lr.ph.split ], [ %22, %.loopexit72 ] - %.14875 = phi i64 [ 0, %.lr.ph.split ], [ %21, %.loopexit72 ] - %10 = getelementptr inbounds nuw %struct.grpc_arg, ptr %9, i64 %.04676 +.lr.ph.i: ; preds = %.lr.ph.split, %.loopexit73 + %.04677 = phi i64 [ 0, %.lr.ph.split ], [ %22, %.loopexit73 ] + %.14876 = phi i64 [ 0, %.lr.ph.split ], [ %21, %.loopexit73 ] + %10 = getelementptr inbounds nuw %struct.grpc_arg, ptr %9, i64 %.04677 %11 = getelementptr inbounds nuw i8, ptr %10, i64 8 %12 = load ptr, ptr %11, align 8, !tbaa !40 br label %15 @@ -3096,56 +3096,56 @@ define noundef ptr @_Z41grpc_channel_args_copy_and_add_and_removePK17grpc_channe %17 = load ptr, ptr %16, align 8, !tbaa !30 %18 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %12, ptr noundef nonnull dereferenceable(1) %17) #45 %19 = icmp eq i32 %18, 0 - br i1 %19, label %.loopexit72, label %13 + br i1 %19, label %.loopexit73, label %13 _ZL17should_remove_argPK8grpc_argPPKcm.exit.thread.loopexit: ; preds = %13 - %20 = add i64 %.14875, 1 - br label %.loopexit72 + %20 = add i64 %.14876, 1 + br label %.loopexit73 -.loopexit72: ; preds = %15, %_ZL17should_remove_argPK8grpc_argPPKcm.exit.thread.loopexit - %21 = phi i64 [ %20, %_ZL17should_remove_argPK8grpc_argPPKcm.exit.thread.loopexit ], [ %.14875, %15 ] - %22 = add nuw i64 %.04676, 1 +.loopexit73: ; preds = %15, %_ZL17should_remove_argPK8grpc_argPPKcm.exit.thread.loopexit + %21 = phi i64 [ %20, %_ZL17should_remove_argPK8grpc_argPPKcm.exit.thread.loopexit ], [ %.14876, %15 ] + %22 = add nuw i64 %.04677, 1 %exitcond.not = icmp eq i64 %22, %7 - br i1 %exitcond.not, label %.loopexit74, label %.lr.ph.i, !llvm.loop !165 + br i1 %exitcond.not, label %.loopexit75, label %.lr.ph.i, !llvm.loop !165 -.loopexit74: ; preds = %.loopexit72, %.lr.ph, %.preheader73, %5 - %.047 = phi i64 [ 0, %5 ], [ 0, %.preheader73 ], [ %7, %.lr.ph ], [ %21, %.loopexit72 ] +.loopexit75: ; preds = %.loopexit73, %.lr.ph, %.preheader74, %5 + %.047 = phi i64 [ 0, %5 ], [ 0, %.preheader74 ], [ %7, %.lr.ph ], [ %21, %.loopexit73 ] %23 = tail call ptr @gpr_malloc(i64 noundef 16) %24 = add i64 %.047, %4 store i64 %24, ptr %23, align 8, !tbaa !51 %25 = icmp eq i64 %24, 0 br i1 %25, label %26, label %28 -26: ; preds = %.loopexit74 +26: ; preds = %.loopexit75 %27 = getelementptr inbounds nuw i8, ptr %23, i64 8 store ptr null, ptr %27, align 8, !tbaa !53 br label %.critedge -28: ; preds = %.loopexit74 +28: ; preds = %.loopexit75 %29 = shl i64 %24, 5 %30 = tail call ptr @gpr_malloc(i64 noundef %29) %31 = getelementptr inbounds nuw i8, ptr %23, i64 8 store ptr %30, ptr %31, align 8, !tbaa !53 - br i1 %.not, label %.loopexit71, label %.preheader + br i1 %.not, label %.loopexit72, label %.preheader .preheader: ; preds = %28 %32 = load i64, ptr %0, align 8, !tbaa !51 - %.not91 = icmp eq i64 %32, 0 - br i1 %.not91, label %.loopexit71, label %.lr.ph82 + %.not92 = icmp eq i64 %32, 0 + br i1 %.not92, label %.loopexit72, label %.lr.ph83 -.lr.ph82: ; preds = %.preheader +.lr.ph83: ; preds = %.preheader %33 = getelementptr inbounds nuw i8, ptr %0, i64 8 %.not.i54 = icmp eq i64 %2, 0 br label %34 -34: ; preds = %.lr.ph82, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 - %35 = phi i64 [ %32, %.lr.ph82 ], [ %63, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] - %.04381 = phi i64 [ 0, %.lr.ph82 ], [ %64, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] - %.180 = phi i64 [ 0, %.lr.ph82 ], [ %.2, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] - %.sroa.567.079 = phi ptr [ undef, %.lr.ph82 ], [ %.sroa.567.1, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] - %.sroa.968.078 = phi ptr [ undef, %.lr.ph82 ], [ %.sroa.968.1, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] +34: ; preds = %.lr.ph83, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 + %35 = phi i64 [ %32, %.lr.ph83 ], [ %63, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] + %.04382 = phi i64 [ 0, %.lr.ph83 ], [ %64, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] + %.181 = phi i64 [ 0, %.lr.ph83 ], [ %.2, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] + %.sroa.567.080 = phi ptr [ undef, %.lr.ph83 ], [ %.sroa.567.1, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] + %.sroa.968.079 = phi i64 [ undef, %.lr.ph83 ], [ %.sroa.968.1, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] %36 = load ptr, ptr %33, align 8, !tbaa !53 - %37 = getelementptr inbounds nuw %struct.grpc_arg, ptr %36, i64 %.04381 + %37 = getelementptr inbounds nuw %struct.grpc_arg, ptr %36, i64 %.04382 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %37, i64 8 %.pre = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !40 br i1 %.not.i54, label %.loopexit, label %.lr.ph.i55 @@ -3181,7 +3181,7 @@ _ZL17should_remove_argPK8grpc_argPPKcm.exit.thread.loopexit: ; preds = %13 50: ; preds = %.loopexit %51 = getelementptr inbounds nuw i8, ptr %37, i64 16 %52 = load i32, ptr %51, align 8, !tbaa !41, !noalias !166 - %53 = ptrtoint ptr %.sroa.567.079 to i64 + %53 = ptrtoint ptr %.sroa.567.080 to i64 %.sroa.567.0.insert.ext = zext i32 %52 to i64 %.sroa.567.0.insert.mask = and i64 %53, -4294967296 %.sroa.567.0.insert.insert = or disjoint i64 %.sroa.567.0.insert.mask, %.sroa.567.0.insert.ext @@ -3191,54 +3191,55 @@ _ZL17should_remove_argPK8grpc_argPPKcm.exit.thread.loopexit: ; preds = %13 55: ; preds = %.loopexit %56 = getelementptr inbounds nuw i8, ptr %37, i64 16 %.sroa.968.16..sroa_idx = getelementptr inbounds nuw i8, ptr %37, i64 24 - %.sroa.968.16.copyload = load ptr, ptr %.sroa.968.16..sroa_idx, align 8, !tbaa !169 - %57 = load ptr, ptr %.sroa.968.16.copyload, align 8, !tbaa !19, !noalias !166 + %.sroa.968.16.copyload = load i64, ptr %.sroa.968.16..sroa_idx, align 8, !tbaa !169 + %.cast = inttoptr i64 %.sroa.968.16.copyload to ptr + %57 = load ptr, ptr %.cast, align 8, !tbaa !19, !noalias !166 %58 = load ptr, ptr %56, align 8, !tbaa !41, !noalias !166 %59 = tail call noundef ptr %57(ptr noundef %58), !noalias !166 br label %_ZL8copy_argPK8grpc_arg.exit _ZL8copy_argPK8grpc_arg.exit: ; preds = %.loopexit, %46, %50, %55 - %.sroa.968.2 = phi ptr [ %.sroa.968.078, %.loopexit ], [ %.sroa.968.078, %46 ], [ %.sroa.968.078, %50 ], [ %.sroa.968.16.copyload, %55 ] - %.sroa.567.2 = phi ptr [ %.sroa.567.079, %.loopexit ], [ %49, %46 ], [ %54, %50 ], [ %59, %55 ] + %.sroa.968.2 = phi i64 [ %.sroa.968.079, %.loopexit ], [ %.sroa.968.079, %46 ], [ %.sroa.968.079, %50 ], [ %.sroa.968.16.copyload, %55 ] + %.sroa.567.2 = phi ptr [ %.sroa.567.080, %.loopexit ], [ %49, %46 ], [ %54, %50 ], [ %59, %55 ] %60 = load ptr, ptr %31, align 8, !tbaa !53 - %61 = add i64 %.180, 1 - %62 = getelementptr inbounds nuw %struct.grpc_arg, ptr %60, i64 %.180 + %61 = add i64 %.181, 1 + %62 = getelementptr inbounds nuw %struct.grpc_arg, ptr %60, i64 %.181 store i32 %44, ptr %62, align 8, !tbaa !170 %.sroa.466.0..sroa_idx = getelementptr inbounds nuw i8, ptr %62, i64 8 store ptr %45, ptr %.sroa.466.0..sroa_idx, align 8, !tbaa !30 %.sroa.567.0..sroa_idx = getelementptr inbounds nuw i8, ptr %62, i64 16 store ptr %.sroa.567.2, ptr %.sroa.567.0..sroa_idx, align 8 %.sroa.968.0..sroa_idx = getelementptr inbounds nuw i8, ptr %62, i64 24 - store ptr %.sroa.968.2, ptr %.sroa.968.0..sroa_idx, align 8, !tbaa !41 - %.pre97 = load i64, ptr %0, align 8, !tbaa !51 + store i64 %.sroa.968.2, ptr %.sroa.968.0..sroa_idx, align 8, !tbaa !41 + %.pre98 = load i64, ptr %0, align 8, !tbaa !51 br label %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 _ZL17should_remove_argPK8grpc_argPPKcm.exit59: ; preds = %.lr.ph.i55, %_ZL8copy_argPK8grpc_arg.exit - %63 = phi i64 [ %.pre97, %_ZL8copy_argPK8grpc_arg.exit ], [ %35, %.lr.ph.i55 ] - %.sroa.968.1 = phi ptr [ %.sroa.968.2, %_ZL8copy_argPK8grpc_arg.exit ], [ %.sroa.968.078, %.lr.ph.i55 ] - %.sroa.567.1 = phi ptr [ %.sroa.567.2, %_ZL8copy_argPK8grpc_arg.exit ], [ %.sroa.567.079, %.lr.ph.i55 ] - %.2 = phi i64 [ %61, %_ZL8copy_argPK8grpc_arg.exit ], [ %.180, %.lr.ph.i55 ] - %64 = add nuw i64 %.04381, 1 + %63 = phi i64 [ %.pre98, %_ZL8copy_argPK8grpc_arg.exit ], [ %35, %.lr.ph.i55 ] + %.sroa.968.1 = phi i64 [ %.sroa.968.2, %_ZL8copy_argPK8grpc_arg.exit ], [ %.sroa.968.079, %.lr.ph.i55 ] + %.sroa.567.1 = phi ptr [ %.sroa.567.2, %_ZL8copy_argPK8grpc_arg.exit ], [ %.sroa.567.080, %.lr.ph.i55 ] + %.2 = phi i64 [ %61, %_ZL8copy_argPK8grpc_arg.exit ], [ %.181, %.lr.ph.i55 ] + %64 = add nuw i64 %.04382, 1 %65 = icmp ult i64 %64, %63 - br i1 %65, label %34, label %.loopexit71, !llvm.loop !171 + br i1 %65, label %34, label %.loopexit72, !llvm.loop !171 -.loopexit71: ; preds = %_ZL17should_remove_argPK8grpc_argPPKcm.exit59, %.preheader, %28 +.loopexit72: ; preds = %_ZL17should_remove_argPK8grpc_argPPKcm.exit59, %.preheader, %28 %.044 = phi i64 [ 0, %28 ], [ 0, %.preheader ], [ %.2, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] - %.not92 = icmp eq i64 %4, 0 - br i1 %.not92, label %._crit_edge, label %.lr.ph88 + %.not93 = icmp eq i64 %4, 0 + br i1 %.not93, label %._crit_edge, label %.lr.ph89 -._crit_edge: ; preds = %_ZL8copy_argPK8grpc_arg.exit60, %.loopexit71 - %.3.lcssa = phi i64 [ %.044, %.loopexit71 ], [ %87, %_ZL8copy_argPK8grpc_arg.exit60 ] +._crit_edge: ; preds = %_ZL8copy_argPK8grpc_arg.exit60, %.loopexit72 + %.3.lcssa = phi i64 [ %.044, %.loopexit72 ], [ %87, %_ZL8copy_argPK8grpc_arg.exit60 ] %66 = load i64, ptr %23, align 8, !tbaa !51 %.not53.not = icmp eq i64 %.3.lcssa, %66 br i1 %.not53.not, label %.critedge, label %90, !prof !172 -.lr.ph88: ; preds = %.loopexit71, %_ZL8copy_argPK8grpc_arg.exit60 - %.04287 = phi i64 [ %89, %_ZL8copy_argPK8grpc_arg.exit60 ], [ 0, %.loopexit71 ] - %.386 = phi i64 [ %87, %_ZL8copy_argPK8grpc_arg.exit60 ], [ %.044, %.loopexit71 ] - %.sroa.5.085 = phi ptr [ %.sroa.5.1, %_ZL8copy_argPK8grpc_arg.exit60 ], [ undef, %.loopexit71 ] - %.sroa.9.084 = phi ptr [ %.sroa.9.1, %_ZL8copy_argPK8grpc_arg.exit60 ], [ undef, %.loopexit71 ] - %67 = getelementptr inbounds nuw %struct.grpc_arg, ptr %3, i64 %.04287 +.lr.ph89: ; preds = %.loopexit72, %_ZL8copy_argPK8grpc_arg.exit60 + %.04288 = phi i64 [ %89, %_ZL8copy_argPK8grpc_arg.exit60 ], [ 0, %.loopexit72 ] + %.387 = phi i64 [ %87, %_ZL8copy_argPK8grpc_arg.exit60 ], [ %.044, %.loopexit72 ] + %.sroa.5.086 = phi ptr [ %.sroa.5.1, %_ZL8copy_argPK8grpc_arg.exit60 ], [ undef, %.loopexit72 ] + %.sroa.9.085 = phi i64 [ %.sroa.9.1, %_ZL8copy_argPK8grpc_arg.exit60 ], [ undef, %.loopexit72 ] + %67 = getelementptr inbounds nuw %struct.grpc_arg, ptr %3, i64 %.04288 %68 = load i32, ptr %67, align 8, !tbaa !37, !noalias !173 %69 = getelementptr inbounds nuw i8, ptr %67, i64 8 %70 = load ptr, ptr %69, align 8, !tbaa !40, !noalias !173 @@ -3249,47 +3250,48 @@ _ZL17should_remove_argPK8grpc_argPPKcm.exit59: ; preds = %.lr.ph.i55, %_ZL8co i32 2, label %81 ] -72: ; preds = %.lr.ph88 +72: ; preds = %.lr.ph89 %73 = getelementptr inbounds nuw i8, ptr %67, i64 16 %74 = load ptr, ptr %73, align 8, !tbaa !41, !noalias !173 %75 = tail call ptr @gpr_strdup(ptr noundef %74), !noalias !173 br label %_ZL8copy_argPK8grpc_arg.exit60 -76: ; preds = %.lr.ph88 +76: ; preds = %.lr.ph89 %77 = getelementptr inbounds nuw i8, ptr %67, i64 16 %78 = load i32, ptr %77, align 8, !tbaa !41, !noalias !173 - %79 = ptrtoint ptr %.sroa.5.085 to i64 + %79 = ptrtoint ptr %.sroa.5.086 to i64 %.sroa.5.0.insert.ext = zext i32 %78 to i64 %.sroa.5.0.insert.mask = and i64 %79, -4294967296 %.sroa.5.0.insert.insert = or disjoint i64 %.sroa.5.0.insert.mask, %.sroa.5.0.insert.ext %80 = inttoptr i64 %.sroa.5.0.insert.insert to ptr br label %_ZL8copy_argPK8grpc_arg.exit60 -81: ; preds = %.lr.ph88 +81: ; preds = %.lr.ph89 %82 = getelementptr inbounds nuw i8, ptr %67, i64 16 %.sroa.9.16..sroa_idx = getelementptr inbounds nuw i8, ptr %67, i64 24 - %.sroa.9.16.copyload = load ptr, ptr %.sroa.9.16..sroa_idx, align 8, !tbaa !169 - %83 = load ptr, ptr %.sroa.9.16.copyload, align 8, !tbaa !19, !noalias !173 + %.sroa.9.16.copyload = load i64, ptr %.sroa.9.16..sroa_idx, align 8, !tbaa !169 + %.cast71 = inttoptr i64 %.sroa.9.16.copyload to ptr + %83 = load ptr, ptr %.cast71, align 8, !tbaa !19, !noalias !173 %84 = load ptr, ptr %82, align 8, !tbaa !41, !noalias !173 %85 = tail call noundef ptr %83(ptr noundef %84), !noalias !173 br label %_ZL8copy_argPK8grpc_arg.exit60 -_ZL8copy_argPK8grpc_arg.exit60: ; preds = %.lr.ph88, %72, %76, %81 - %.sroa.9.1 = phi ptr [ %.sroa.9.084, %.lr.ph88 ], [ %.sroa.9.084, %72 ], [ %.sroa.9.084, %76 ], [ %.sroa.9.16.copyload, %81 ] - %.sroa.5.1 = phi ptr [ %.sroa.5.085, %.lr.ph88 ], [ %75, %72 ], [ %80, %76 ], [ %85, %81 ] +_ZL8copy_argPK8grpc_arg.exit60: ; preds = %.lr.ph89, %72, %76, %81 + %.sroa.9.1 = phi i64 [ %.sroa.9.085, %.lr.ph89 ], [ %.sroa.9.085, %72 ], [ %.sroa.9.085, %76 ], [ %.sroa.9.16.copyload, %81 ] + %.sroa.5.1 = phi ptr [ %.sroa.5.086, %.lr.ph89 ], [ %75, %72 ], [ %80, %76 ], [ %85, %81 ] %86 = load ptr, ptr %31, align 8, !tbaa !53 - %87 = add i64 %.386, 1 - %88 = getelementptr inbounds nuw %struct.grpc_arg, ptr %86, i64 %.386 + %87 = add i64 %.387, 1 + %88 = getelementptr inbounds nuw %struct.grpc_arg, ptr %86, i64 %.387 store i32 %68, ptr %88, align 8, !tbaa !170 %.sroa.463.0..sroa_idx = getelementptr inbounds nuw i8, ptr %88, i64 8 store ptr %71, ptr %.sroa.463.0..sroa_idx, align 8, !tbaa !30 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %88, i64 16 store ptr %.sroa.5.1, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %88, i64 24 - store ptr %.sroa.9.1, ptr %.sroa.9.0..sroa_idx, align 8, !tbaa !41 - %89 = add nuw i64 %.04287, 1 - %exitcond96.not = icmp eq i64 %89, %4 - br i1 %exitcond96.not, label %._crit_edge, label %.lr.ph88, !llvm.loop !176 + store i64 %.sroa.9.1, ptr %.sroa.9.0..sroa_idx, align 8, !tbaa !41 + %89 = add nuw i64 %.04288, 1 + %exitcond97.not = icmp eq i64 %89, %4 + br i1 %exitcond97.not, label %._crit_edge, label %.lr.ph89, !llvm.loop !176 90: ; preds = %._crit_edge call void @llvm.lifetime.start.p0(ptr nonnull %6) @@ -3515,7 +3517,7 @@ define noundef ptr @_Z27grpc_channel_args_normalizePK17grpc_channel_args(ptr nou .lr.ph31: ; preds = %._crit_edge.thread, %_ZL8copy_argPK8grpc_arg.exit %.029 = phi i64 [ %41, %_ZL8copy_argPK8grpc_arg.exit ], [ 0, %._crit_edge.thread ] %.sroa.5.028 = phi ptr [ %.sroa.5.1, %_ZL8copy_argPK8grpc_arg.exit ], [ undef, %._crit_edge.thread ] - %.sroa.9.027 = phi ptr [ %.sroa.9.1, %_ZL8copy_argPK8grpc_arg.exit ], [ undef, %._crit_edge.thread ] + %.sroa.9.027 = phi i64 [ %.sroa.9.1, %_ZL8copy_argPK8grpc_arg.exit ], [ undef, %._crit_edge.thread ] %19 = getelementptr inbounds nuw ptr, ptr %4, i64 %.029 %20 = load ptr, ptr %19, align 8, !tbaa !70 %21 = load i32, ptr %20, align 8, !tbaa !37, !noalias !182 @@ -3547,14 +3549,15 @@ define noundef ptr @_Z27grpc_channel_args_normalizePK17grpc_channel_args(ptr nou 34: ; preds = %.lr.ph31 %35 = getelementptr inbounds nuw i8, ptr %20, i64 16 %.sroa.9.16..sroa_idx = getelementptr inbounds nuw i8, ptr %20, i64 24 - %.sroa.9.16.copyload = load ptr, ptr %.sroa.9.16..sroa_idx, align 8, !tbaa !169 - %36 = load ptr, ptr %.sroa.9.16.copyload, align 8, !tbaa !19, !noalias !182 + %.sroa.9.16.copyload = load i64, ptr %.sroa.9.16..sroa_idx, align 8, !tbaa !169 + %.cast = inttoptr i64 %.sroa.9.16.copyload to ptr + %36 = load ptr, ptr %.cast, align 8, !tbaa !19, !noalias !182 %37 = load ptr, ptr %35, align 8, !tbaa !41, !noalias !182 %38 = tail call noundef ptr %36(ptr noundef %37), !noalias !182 br label %_ZL8copy_argPK8grpc_arg.exit _ZL8copy_argPK8grpc_arg.exit: ; preds = %.lr.ph31, %25, %29, %34 - %.sroa.9.1 = phi ptr [ %.sroa.9.027, %.lr.ph31 ], [ %.sroa.9.027, %25 ], [ %.sroa.9.027, %29 ], [ %.sroa.9.16.copyload, %34 ] + %.sroa.9.1 = phi i64 [ %.sroa.9.027, %.lr.ph31 ], [ %.sroa.9.027, %25 ], [ %.sroa.9.027, %29 ], [ %.sroa.9.16.copyload, %34 ] %.sroa.5.1 = phi ptr [ %.sroa.5.028, %.lr.ph31 ], [ %28, %25 ], [ %33, %29 ], [ %38, %34 ] %39 = load ptr, ptr %17, align 8, !tbaa !53 %40 = getelementptr inbounds nuw %struct.grpc_arg, ptr %39, i64 %.029 @@ -3564,7 +3567,7 @@ _ZL8copy_argPK8grpc_arg.exit: ; preds = %.lr.ph31, %25, %29, %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %40, i64 16 store ptr %.sroa.5.1, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %40, i64 24 - store ptr %.sroa.9.1, ptr %.sroa.9.0..sroa_idx, align 8, !tbaa !41 + store i64 %.sroa.9.1, ptr %.sroa.9.0..sroa_idx, align 8, !tbaa !41 %41 = add nuw i64 %.029, 1 %42 = load i64, ptr %0, align 8, !tbaa !51 %43 = icmp ult i64 %41, %42 diff --git a/bench/hermes/optimized/ProfileAnalyzer.ll b/bench/hermes/optimized/ProfileAnalyzer.ll index e977313ce04..6692f9c4a99 100644 --- a/bench/hermes/optimized/ProfileAnalyzer.ll +++ b/bench/hermes/optimized/ProfileAnalyzer.ll @@ -7214,7 +7214,7 @@ if.else.i.i.i.i41: ; preds = %for.body.i.i.i.i call void @llvm.lifetime.start.p0(ptr nonnull %__val.sroa.0.i.i.i.i.i) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %__val.sroa.0.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(24) %__i.sroa.0.011.i.ptr.i.i.i, i64 24, i1 false) %__val.sroa.3.0.__last.val2.sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %__first.coerce.pn10.i.i.i.i, i64 72 - %__val.sroa.3.0.copyload.i.i.i.i.i = load double, ptr %__val.sroa.3.0.__last.val2.sroa_idx.i.i.i.i.i, align 8 + %__val.sroa.3.0.copyload.i.i.i.i.i = load i64, ptr %__val.sroa.3.0.__last.val2.sroa_idx.i.i.i.i.i, align 8 %78 = getelementptr i8, ptr %__first.coerce.pn10.i.i.i.i, i64 24 %call.val.i7.i.i.i.i.i = load i64, ptr %78, align 8 %cmp.i.i8.i.i.i.i.i = icmp ugt i64 %call.val.i.i.i.i.i, %call.val.i7.i.i.i.i.i @@ -7235,7 +7235,7 @@ while.body.i.i.i.i.i: ; preds = %if.else.i.i.i.i41, %__val.sroa.2.0.__last.val.sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %__last.sroa.0.0.lcssa.i.i.i.i.i, i64 24 store i64 %call.val.i.i.i.i.i, ptr %__val.sroa.2.0.__last.val.sroa_idx.i.i.i.i.i, align 8 %__val.sroa.3.0.__last.val.sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %__last.sroa.0.0.lcssa.i.i.i.i.i, i64 32 - store double %__val.sroa.3.0.copyload.i.i.i.i.i, ptr %__val.sroa.3.0.__last.val.sroa_idx.i.i.i.i.i, align 8 + store i64 %__val.sroa.3.0.copyload.i.i.i.i.i, ptr %__val.sroa.3.0.__last.val.sroa_idx.i.i.i.i.i, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %__val.sroa.0.i.i.i.i.i) br label %for.inc.i.i.i.i @@ -7257,7 +7257,7 @@ for.body.i7.i.i.i: ; preds = %"_ZSt16__insertion_ %__val.sroa.2.0.__last.val2.sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %__i.sroa.0.02.i.i.i.i, i64 24 %__val.sroa.2.0.copyload.i.i.i.i.i = load i64, ptr %__val.sroa.2.0.__last.val2.sroa_idx.i.i.i.i.i, align 8 %__val.sroa.3.0.__last.val2.sroa_idx.i.i8.i.i.i = getelementptr inbounds nuw i8, ptr %__i.sroa.0.02.i.i.i.i, i64 32 - %__val.sroa.3.0.copyload.i.i9.i.i.i = load double, ptr %__val.sroa.3.0.__last.val2.sroa_idx.i.i8.i.i.i, align 8 + %__val.sroa.3.0.copyload.i.i9.i.i.i = load i64, ptr %__val.sroa.3.0.__last.val2.sroa_idx.i.i8.i.i.i, align 8 %80 = getelementptr i8, ptr %__i.sroa.0.02.i.i.i.i, i64 -16 %call.val.i7.i.i10.i.i.i = load i64, ptr %80, align 8 %cmp.i.i8.i.i11.i.i.i = icmp ugt i64 %__val.sroa.2.0.copyload.i.i.i.i.i, %call.val.i7.i.i10.i.i.i @@ -7278,7 +7278,7 @@ while.body.i.i16.i.i.i: ; preds = %for.body.i7.i.i.i, %__val.sroa.2.0.__last.val.sroa_idx.i.i14.i.i.i = getelementptr inbounds nuw i8, ptr %__last.sroa.0.0.lcssa.i.i13.i.i.i, i64 24 store i64 %__val.sroa.2.0.copyload.i.i.i.i.i, ptr %__val.sroa.2.0.__last.val.sroa_idx.i.i14.i.i.i, align 8 %__val.sroa.3.0.__last.val.sroa_idx.i.i15.i.i.i = getelementptr inbounds nuw i8, ptr %__last.sroa.0.0.lcssa.i.i13.i.i.i, i64 32 - store double %__val.sroa.3.0.copyload.i.i9.i.i.i, ptr %__val.sroa.3.0.__last.val.sroa_idx.i.i15.i.i.i, align 8 + store i64 %__val.sroa.3.0.copyload.i.i9.i.i.i, ptr %__val.sroa.3.0.__last.val.sroa_idx.i.i15.i.i.i, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %__val.sroa.0.i.i6.i.i.i) %incdec.ptr.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %__i.sroa.0.02.i.i.i.i, i64 40 %cmp.i.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i, %blockRuntimeStats.sroa.6.1 @@ -7318,7 +7318,7 @@ if.else.i35.i.i.i: ; preds = %for.body.i29.i.i.i call void @llvm.lifetime.start.p0(ptr nonnull %__val.sroa.0.i.i21.i.i.i) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %__val.sroa.0.i.i21.i.i.i, ptr noundef nonnull align 8 dereferenceable(24) %__i.sroa.0.011.i30.i.i.i, i64 24, i1 false) %__val.sroa.3.0.__last.val2.sroa_idx.i.i36.i.i.i = getelementptr inbounds nuw i8, ptr %__first.coerce.pn10.i31.i.i.i, i64 72 - %__val.sroa.3.0.copyload.i.i37.i.i.i = load double, ptr %__val.sroa.3.0.__last.val2.sroa_idx.i.i36.i.i.i, align 8 + %__val.sroa.3.0.copyload.i.i37.i.i.i = load i64, ptr %__val.sroa.3.0.__last.val2.sroa_idx.i.i36.i.i.i, align 8 %84 = getelementptr i8, ptr %__first.coerce.pn10.i31.i.i.i, i64 24 %call.val.i7.i.i38.i.i.i = load i64, ptr %84, align 8 %cmp.i.i8.i.i39.i.i.i = icmp ugt i64 %call.val.i.i32.i.i.i, %call.val.i7.i.i38.i.i.i @@ -7339,7 +7339,7 @@ while.body.i.i47.i.i.i: ; preds = %if.else.i35.i.i.i, %__val.sroa.2.0.__last.val.sroa_idx.i.i42.i.i.i = getelementptr inbounds nuw i8, ptr %__last.sroa.0.0.lcssa.i.i41.i.i.i, i64 24 store i64 %call.val.i.i32.i.i.i, ptr %__val.sroa.2.0.__last.val.sroa_idx.i.i42.i.i.i, align 8 %__val.sroa.3.0.__last.val.sroa_idx.i.i43.i.i.i = getelementptr inbounds nuw i8, ptr %__last.sroa.0.0.lcssa.i.i41.i.i.i, i64 32 - store double %__val.sroa.3.0.copyload.i.i37.i.i.i, ptr %__val.sroa.3.0.__last.val.sroa_idx.i.i43.i.i.i, align 8 + store i64 %__val.sroa.3.0.copyload.i.i37.i.i.i, ptr %__val.sroa.3.0.__last.val.sroa_idx.i.i43.i.i.i, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %__val.sroa.0.i.i21.i.i.i) br label %for.inc.i44.i.i.i @@ -17222,7 +17222,7 @@ while.body.i.i.i: ; preds = %"_ZSt13__adjust_hea %__value.sroa.2.0.ref.tmp.sroa.0.0.ref.tmp.val.sroa_idx.i.i.i = getelementptr inbounds nuw i8, ptr %phi.call.i.i.i, i64 24 %__value.sroa.2.0.copyload.i.i.i = load i64, ptr %__value.sroa.2.0.ref.tmp.sroa.0.0.ref.tmp.val.sroa_idx.i.i.i, align 8 %__value.sroa.3.0.ref.tmp.sroa.0.0.ref.tmp.val.sroa_idx.i.i.i = getelementptr inbounds nuw i8, ptr %phi.call.i.i.i, i64 32 - %__value.sroa.3.0.copyload.i.i.i = load double, ptr %__value.sroa.3.0.ref.tmp.sroa.0.0.ref.tmp.val.sroa_idx.i.i.i, align 8 + %__value.sroa.3.0.copyload.i.i.i = load i64, ptr %__value.sroa.3.0.ref.tmp.sroa.0.0.ref.tmp.val.sroa_idx.i.i.i, align 8 %cmp30.i.i.i.i = icmp slt i64 %__parent.0.i.i.i, %div.i3.i.i.i br i1 %cmp30.i.i.i.i, label %while.body.i.i.i.i, label %while.end.i.i.i.i @@ -17283,7 +17283,7 @@ while.body.i.i.i.i.i: ; preds = %land.rhs.i.i.i.i.i %agg.tmp3527.sroa.4.0.add.ptr.i12.i.sroa_idx.i.i.i.i = getelementptr inbounds nuw i8, ptr %add.ptr.i12.i.i.i.i.i, i64 24 store i64 %__value.sroa.2.0.copyload.i.i.i, ptr %agg.tmp3527.sroa.4.0.add.ptr.i12.i.sroa_idx.i.i.i.i, align 8 %agg.tmp3527.sroa.5.0.add.ptr.i12.i.sroa_idx.i.i.i.i = getelementptr inbounds nuw i8, ptr %add.ptr.i12.i.i.i.i.i, i64 32 - store double %__value.sroa.3.0.copyload.i.i.i, ptr %agg.tmp3527.sroa.5.0.add.ptr.i12.i.sroa_idx.i.i.i.i, align 8 + store i64 %__value.sroa.3.0.copyload.i.i.i, ptr %agg.tmp3527.sroa.5.0.add.ptr.i12.i.sroa_idx.i.i.i.i, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %agg.tmp615.sroa.0.i.i.i) %cmp9.i.i.i = icmp eq i64 %__parent.0.i.i.i, 0 %dec.i.i.i = add nsw i64 %__parent.0.i.i.i, -1 @@ -17301,7 +17301,7 @@ while.body.i.i: ; preds = %"_ZSt13__heap_selec %__value.sroa.2.0.__result.sroa.0.0.__result.val2.sroa_idx.i.i.i = getelementptr inbounds i8, ptr %__last.sroa.0.04.i.i, i64 -16 %__value.sroa.2.0.copyload.i.i3.i = load i64, ptr %__value.sroa.2.0.__result.sroa.0.0.__result.val2.sroa_idx.i.i.i, align 8 %__value.sroa.3.0.__result.sroa.0.0.__result.val2.sroa_idx.i.i4.i = getelementptr inbounds i8, ptr %__last.sroa.0.04.i.i, i64 -8 - %__value.sroa.3.0.copyload.i.i5.i = load double, ptr %__value.sroa.3.0.__result.sroa.0.0.__result.val2.sroa_idx.i.i4.i, align 8 + %__value.sroa.3.0.copyload.i.i5.i = load i64, ptr %__value.sroa.3.0.__result.sroa.0.0.__result.val2.sroa_idx.i.i4.i, align 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %incdec.ptr.i.i2.i, ptr noundef nonnull align 8 dereferenceable(40) %__first.coerce.fr.i, i64 40, i1 false) %sub.ptr.lhs.cast.i.i.i6.i = ptrtoint ptr %incdec.ptr.i.i2.i to i64 %sub.ptr.sub.i.i.i7.i = sub i64 %sub.ptr.lhs.cast.i.i.i6.i, %sub.ptr.rhs.cast.i @@ -17381,7 +17381,7 @@ while.body.i.i.i.i32.i: ; preds = %land.rhs.i.i.i.i20. %agg.tmp3527.sroa.4.0.add.ptr.i12.i.sroa_idx.i.i.i30.i = getelementptr inbounds nuw i8, ptr %add.ptr.i12.i.i.i.i29.i, i64 24 store i64 %__value.sroa.2.0.copyload.i.i3.i, ptr %agg.tmp3527.sroa.4.0.add.ptr.i12.i.sroa_idx.i.i.i30.i, align 8 %agg.tmp3527.sroa.5.0.add.ptr.i12.i.sroa_idx.i.i.i31.i = getelementptr inbounds nuw i8, ptr %add.ptr.i12.i.i.i.i29.i, i64 32 - store double %__value.sroa.3.0.copyload.i.i5.i, ptr %agg.tmp3527.sroa.5.0.add.ptr.i12.i.sroa_idx.i.i.i31.i, align 8 + store i64 %__value.sroa.3.0.copyload.i.i5.i, ptr %agg.tmp3527.sroa.5.0.add.ptr.i12.i.sroa_idx.i.i.i31.i, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %agg.tmp63.sroa.0.i.i1.i) %cmp.i.i = icmp sgt i64 %sub.ptr.sub.i.i.i7.i, 40 br i1 %cmp.i.i, label %while.body.i.i, label %while.end, !llvm.loop !367 diff --git a/bench/influxdb-rs/optimized/1zobaqtttt01ywwe.ll b/bench/influxdb-rs/optimized/1zobaqtttt01ywwe.ll index a71eab7c065..41a26687fe8 100644 --- a/bench/influxdb-rs/optimized/1zobaqtttt01ywwe.ll +++ b/bench/influxdb-rs/optimized/1zobaqtttt01ywwe.ll @@ -9531,12 +9531,8 @@ define hidden void @_ZN5tokio4sync5watch7channel17h13b95b33440c4ee0E(ptr noalias %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %3, i64 16 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(256) %.sroa.5.0..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(256) %.sroa.0, i64 256, i1 false) %.sroa.4.0..sroa.5.0..sroa_idx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 272 - store i64 0, ptr %.sroa.4.0..sroa.5.0..sroa_idx.i.sroa_idx, align 8 - %.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 280 - store i8 0, ptr %.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx, align 8 - %.sroa.626.0..sroa.5.0..sroa_idx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 288 %.sroa.10.0..sroa.5.0..sroa_idx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 320 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.626.0..sroa.5.0..sroa_idx.i.sroa_idx, i8 0, i64 32, i1 false) + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %.sroa.4.0..sroa.5.0..sroa_idx.i.sroa_idx, i8 0, i64 48, i1 false) store i64 1, ptr %.sroa.10.0..sroa.5.0..sroa_idx.i.sroa_idx, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0) %6 = atomicrmw add ptr %3, i64 1 monotonic, align 8 @@ -9567,7 +9563,7 @@ define hidden noundef nonnull align 8 ptr @"_ZN61_$LT$serde_json..error..Error$u %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 8 %.sroa.5.0.copyload.i = load i64, ptr %.sroa.5.0..sroa_idx.i, align 8, !alias.scope !1594, !noalias !1591 %.sroa.6.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 16 - %.sroa.6.0.copyload.i = load ptr, ptr %.sroa.6.0..sroa_idx.i, align 8, !alias.scope !1594, !noalias !1591 + %.sroa.6.0.copyload.i = load i64, ptr %.sroa.6.0..sroa_idx.i, align 8, !alias.scope !1594, !noalias !1591 %.sroa.66.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 24 %.sroa.66.0.copyload.i = load i64, ptr %.sroa.66.0..sroa_idx.i, align 8, !alias.scope !1594, !noalias !1591 %.sroa.7.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 32 @@ -9588,7 +9584,7 @@ define hidden noundef nonnull align 8 ptr @"_ZN61_$LT$serde_json..error..Error$u %.sroa.5.0..sroa_idx2.i = getelementptr inbounds nuw i8, ptr %2, i64 8 store i64 %.sroa.5.0.copyload.i, ptr %.sroa.5.0..sroa_idx2.i, align 8, !noalias !1609 %.sroa.6.0..sroa_idx4.i = getelementptr inbounds nuw i8, ptr %2, i64 16 - store ptr %.sroa.6.0.copyload.i, ptr %.sroa.6.0..sroa_idx4.i, align 8, !noalias !1609 + store i64 %.sroa.6.0.copyload.i, ptr %.sroa.6.0..sroa_idx4.i, align 8, !noalias !1609 %.sroa.66.0..sroa_idx7.i = getelementptr inbounds nuw i8, ptr %2, i64 24 store i64 %.sroa.66.0.copyload.i, ptr %.sroa.66.0..sroa_idx7.i, align 8, !noalias !1609 %.sroa.7.0..sroa_idx9.i = getelementptr inbounds nuw i8, ptr %2, i64 32 @@ -9743,7 +9739,7 @@ define hidden void @"_ZN64_$LT$core..fmt..Arguments$u20$as$u20$alloc..string..To %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.5.0.copyload = load i64, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 16 - %.sroa.6.0.copyload = load ptr, ptr %.sroa.6.0..sroa_idx, align 8 + %.sroa.6.0.copyload = load i64, ptr %.sroa.6.0..sroa_idx, align 8 %.sroa.66.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 24 %.sroa.66.0.copyload = load i64, ptr %.sroa.66.0..sroa_idx, align 8 %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 32 @@ -9764,7 +9760,7 @@ define hidden void @"_ZN64_$LT$core..fmt..Arguments$u20$as$u20$alloc..string..To %.sroa.5.0..sroa_idx2 = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 %.sroa.5.0.copyload, ptr %.sroa.5.0..sroa_idx2, align 8, !noalias !1645 %.sroa.6.0..sroa_idx4 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store ptr %.sroa.6.0.copyload, ptr %.sroa.6.0..sroa_idx4, align 8, !noalias !1645 + store i64 %.sroa.6.0.copyload, ptr %.sroa.6.0..sroa_idx4, align 8, !noalias !1645 %.sroa.66.0..sroa_idx7 = getelementptr inbounds nuw i8, ptr %3, i64 24 store i64 %.sroa.66.0.copyload, ptr %.sroa.66.0..sroa_idx7, align 8, !noalias !1645 %.sroa.7.0..sroa_idx9 = getelementptr inbounds nuw i8, ptr %3, i64 32 diff --git a/bench/influxdb-rs/optimized/54bldmpi534adbqh.ll b/bench/influxdb-rs/optimized/54bldmpi534adbqh.ll index e4555de1f7b..633d886160b 100644 --- a/bench/influxdb-rs/optimized/54bldmpi534adbqh.ll +++ b/bench/influxdb-rs/optimized/54bldmpi534adbqh.ll @@ -16199,7 +16199,7 @@ define internal void @"_ZN88_$LT$influxdb3_write..persister..PersisterImpl$u20$a %.sroa.066 = alloca { { { i32, [7 x i32] }, { { { { { ptr, i64 }, i64 } } }, i64, { ptr, [2 x i64] }, { ptr, [2 x i64] }, { { { i32, i32 }, i32 }, {} }, [1 x i32] }, { i64, i64 } }, [144 x i8] }, align 8 %9 = getelementptr inbounds nuw i8, ptr %1, i64 57 %10 = load i8, ptr %9, align 1, !range !202, !noundef !23 - switch i8 %10, label %default.unreachable107 [ + switch i8 %10, label %default.unreachable108 [ i8 0, label %16 i8 1, label %33 i8 2, label %34 @@ -16207,15 +16207,15 @@ define internal void @"_ZN88_$LT$influxdb3_write..persister..PersisterImpl$u20$a i8 4, label %12 ] -default.unreachable107: ; preds = %3 +default.unreachable108: ; preds = %3 unreachable 11: ; preds = %3 call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.066) %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %1, i64 64 %.pre = load ptr, ptr %.phi.trans.insert, align 8, !alias.scope !2775, !noalias !2780 - %.phi.trans.insert101 = getelementptr inbounds nuw i8, ptr %1, i64 72 - %.pre102 = load ptr, ptr %.phi.trans.insert101, align 8, !alias.scope !2775, !noalias !2780 + %.phi.trans.insert102 = getelementptr inbounds nuw i8, ptr %1, i64 72 + %.pre103 = load ptr, ptr %.phi.trans.insert102, align 8, !alias.scope !2775, !noalias !2780 br label %35 12: ; preds = %3 @@ -16227,7 +16227,7 @@ default.unreachable107: ; preds = %3 %13 = getelementptr inbounds nuw i8, ptr %1, i64 56 %14 = load i8, ptr %13, align 8, !range !214, !noundef !23 %15 = trunc nuw i8 %14 to i1 - br i1 %15, label %99, label %98 + br i1 %15, label %96, label %95 16: ; preds = %3 %17 = getelementptr inbounds nuw i8, ptr %1, i64 56 @@ -16260,12 +16260,12 @@ default.unreachable107: ; preds = %3 invoke void @"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1) #38 to label %29 unwind label %70 -29: ; preds = %.body, %96 - %.pn40 = phi { ptr, i32 } [ %97, %96 ], [ %.pn38, %.body ] +29: ; preds = %.body, %93 + %.pn40 = phi { ptr, i32 } [ %94, %93 ], [ %.pn38, %.body ] %30 = getelementptr inbounds nuw i8, ptr %1, i64 56 %31 = load i8, ptr %30, align 8, !range !214, !noundef !23 %32 = trunc nuw i8 %31 to i1 - br i1 %32, label %111, label %108 + br i1 %32, label %108, label %105 33: ; preds = %3 tail call void @_ZN4core9panicking5panic17h195fc2a96298d4c3E(ptr noalias noundef nonnull readonly align 1 @str.0, i64 noundef 35, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.45ca28eacd16980a982db8040ceab1d4.378) #37 @@ -16276,7 +16276,7 @@ default.unreachable107: ; preds = %3 unreachable 35: ; preds = %11, %24 - %36 = phi ptr [ %.pre102, %11 ], [ %26, %24 ] + %36 = phi ptr [ %.pre103, %11 ], [ %26, %24 ] %37 = phi ptr [ %.pre, %11 ], [ %25, %24 ] call void @llvm.lifetime.start.p0(ptr nonnull %8) %38 = getelementptr inbounds nuw i8, ptr %1, i64 64 @@ -16329,8 +16329,8 @@ default.unreachable107: ; preds = %3 invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h31b4e28eaae81b72E.llvm.12494526139044184965"(ptr noalias noundef nonnull align 8 dereferenceable(16) %38) to label %"_ZN4core3ptr226drop_in_place$LT$core..pin..Pin$LT$alloc..boxed..Box$LT$dyn$u20$core..future..future..Future$u2b$Output$u20$$u3d$$u20$core..result..Result$LT$object_store..GetResult$C$object_store..Error$GT$$u2b$core..marker..Send$GT$$GT$$GT$17h2e58eb7601e03523E.exit" unwind label %55 -common.ret: ; preds = %98, %80, %54 - %.sink = phi i8 [ 1, %98 ], [ 4, %80 ], [ 3, %54 ] +common.ret: ; preds = %95, %80, %54 + %.sink = phi i8 [ 1, %95 ], [ 4, %80 ], [ 3, %54 ] store i8 %.sink, ptr %9, align 1 ret void @@ -16372,23 +16372,24 @@ common.ret: ; preds = %98, %80, %54 %.sroa.072.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 88 %.sroa.072.sroa.3.0.copyload = load i64, ptr %.sroa.072.sroa.3.0..sroa_idx, align 8 %.sroa.072.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 96 - %.sroa.072.sroa.4.0.copyload = load ptr, ptr %.sroa.072.sroa.4.0..sroa_idx, align 8 + %.sroa.072.sroa.4.0.copyload = load i64, ptr %.sroa.072.sroa.4.0..sroa_idx, align 8 %.sroa.072.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 104 %.sroa.072.sroa.5.0.copyload = load i64, ptr %.sroa.072.sroa.5.0..sroa_idx, align 8 %61 = getelementptr inbounds nuw i8, ptr %.sroa.3, i64 44 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.sroa.880, ptr noundef nonnull align 4 dereferenceable(40) %61, i64 40, i1 false) br label %62 -62: ; preds = %94, %60 - %.sroa.7.sroa.0.1 = phi i64 [ %.sroa.072.sroa.2.0.copyload, %60 ], [ %.sroa.374.sroa.0.0.copyload, %94 ] - %.sroa.478.1 = phi i64 [ %.sroa.072.sroa.0.0.copyload, %60 ], [ %77, %94 ] - %.sroa.7.sroa.4.sroa.0.1 = phi i64 [ %.sroa.072.sroa.3.0.copyload, %60 ], [ %.sroa.374.sroa.3.0.copyload, %94 ] - %.sroa.7.sroa.4.sroa.4.sroa.0.1 = phi ptr [ %.sroa.072.sroa.4.0.copyload, %60 ], [ %95, %94 ] - %.sroa.7.sroa.4.sroa.4.sroa.4.1 = phi i64 [ %.sroa.072.sroa.5.0.copyload, %60 ], [ %.sroa.374.sroa.7.0.copyload, %94 ] +62: ; preds = %83, %60 + %.sroa.5.sink = phi ptr [ %61, %60 ], [ %.sroa.5, %83 ] + %.sroa.7.sroa.0.1 = phi i64 [ %.sroa.072.sroa.2.0.copyload, %60 ], [ %.sroa.374.sroa.0.0.copyload, %83 ] + %.sroa.478.1 = phi i64 [ %.sroa.072.sroa.0.0.copyload, %60 ], [ %77, %83 ] + %.sroa.7.sroa.4.sroa.0.1 = phi i64 [ %.sroa.072.sroa.3.0.copyload, %60 ], [ %.sroa.374.sroa.3.0.copyload, %83 ] + %.sroa.7.sroa.4.sroa.4.sroa.0.1 = phi i64 [ %.sroa.072.sroa.4.0.copyload, %60 ], [ %.sroa.374.sroa.5.0.copyload, %83 ] + %.sroa.7.sroa.4.sroa.4.sroa.4.1 = phi i64 [ %.sroa.072.sroa.5.0.copyload, %60 ], [ %.sroa.374.sroa.7.0.copyload, %83 ] + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.sroa.880, ptr noundef nonnull align 4 dereferenceable(40) %.sroa.5.sink, i64 40, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.066) call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !2783 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h6692686a2b5e9f59E.llvm.12494526139044184965"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %1) - to label %.noexc50 unwind label %96 + to label %.noexc50 unwind label %93 .noexc50: ; preds = %62 %63 = getelementptr inbounds nuw i8, ptr %6, i64 8 @@ -16402,9 +16403,9 @@ common.ret: ; preds = %98, %80, %54 %68 = load i64, ptr %67, align 8, !noalias !2783, !noundef !23 %69 = getelementptr inbounds nuw i8, ptr %1, i64 16 invoke void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h2e41f254f515f243E.llvm.12494526139044184965"(ptr noalias noundef nonnull readonly align 1 %69, ptr noundef nonnull %66, i64 noundef %64, i64 noundef %68) - to label %.noexc51 unwind label %96 + to label %.noexc51 unwind label %93 -70: ; preds = %111, %74, %42, %.body +70: ; preds = %108, %74, %42, %.body %71 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer tail call void @_ZN4core9panicking16panic_in_cleanup17hd44bb2114362504eE() #39 @@ -16455,49 +16456,43 @@ common.ret: ; preds = %98, %80, %54 83: ; preds = %79 %84 = icmp eq i64 %77, 16 - br i1 %84, label %85, label %94 + br i1 %84, label %85, label %62 85: ; preds = %83 - %86 = inttoptr i64 %.sroa.374.sroa.7.0.copyload to ptr call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.066) call void @llvm.lifetime.start.p0(ptr nonnull %5), !noalias !2811 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h6692686a2b5e9f59E.llvm.12494526139044184965"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %1) - to label %.noexc53 unwind label %96 + to label %.noexc53 unwind label %93 .noexc53: ; preds = %85 - %87 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %88 = load i64, ptr %87, align 8, !range !95, !noalias !2811, !noundef !23 - %.not.i.i.i.i.i.i52 = icmp eq i64 %88, 0 - br i1 %.not.i.i.i.i.i.i52, label %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55", label %89 - -89: ; preds = %.noexc53 - %90 = load ptr, ptr %5, align 8, !noalias !2811, !nonnull !23, !noundef !23 - %91 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %92 = load i64, ptr %91, align 8, !noalias !2811, !noundef !23 - %93 = getelementptr inbounds nuw i8, ptr %1, i64 16 - invoke void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h2e41f254f515f243E.llvm.12494526139044184965"(ptr noalias noundef nonnull readonly align 1 %93, ptr noundef nonnull %90, i64 noundef %88, i64 noundef %92) - to label %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55" unwind label %96 - -"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55": ; preds = %89, %.noexc53 + %86 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %87 = load i64, ptr %86, align 8, !range !95, !noalias !2811, !noundef !23 + %.not.i.i.i.i.i.i52 = icmp eq i64 %87, 0 + br i1 %.not.i.i.i.i.i.i52, label %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55", label %88 + +88: ; preds = %.noexc53 + %89 = load ptr, ptr %5, align 8, !noalias !2811, !nonnull !23, !noundef !23 + %90 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %91 = load i64, ptr %90, align 8, !noalias !2811, !noundef !23 + %92 = getelementptr inbounds nuw i8, ptr %1, i64 16 + invoke void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h2e41f254f515f243E.llvm.12494526139044184965"(ptr noalias noundef nonnull readonly align 1 %92, ptr noundef nonnull %89, i64 noundef %87, i64 noundef %91) + to label %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55" unwind label %93 + +"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55": ; preds = %88, %.noexc53 call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !2811 - br label %98 - -94: ; preds = %83 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.sroa.880, ptr noundef nonnull align 8 dereferenceable(40) %.sroa.5, i64 40, i1 false) - %95 = inttoptr i64 %.sroa.374.sroa.5.0.copyload to ptr - br label %62 + br label %95 -96: ; preds = %89, %85, %65, %62 - %97 = landingpad { ptr, i32 } +93: ; preds = %88, %85, %65, %62 + %94 = landingpad { ptr, i32 } cleanup br label %29 -98: ; preds = %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60", %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55", %.noexc51 +95: ; preds = %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60", %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55", %.noexc51 %.sroa.7.sroa.0.0 = phi i64 [ %.sroa.7.sroa.0.1, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60" ], [ %.sroa.7.sroa.0.1, %.noexc51 ], [ %.sroa.374.sroa.3.0.copyload, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55" ] %.sroa.478.0 = phi i64 [ %.sroa.478.1, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60" ], [ %.sroa.478.1, %.noexc51 ], [ %.sroa.374.sroa.0.0.copyload, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55" ] %.sroa.077.0 = phi i64 [ 23, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60" ], [ 23, %.noexc51 ], [ 27, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55" ] %.sroa.7.sroa.4.sroa.0.0 = phi i64 [ %.sroa.7.sroa.4.sroa.0.1, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60" ], [ %.sroa.7.sroa.4.sroa.0.1, %.noexc51 ], [ %.sroa.374.sroa.5.0.copyload, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55" ] - %.sroa.7.sroa.4.sroa.4.sroa.0.0 = phi ptr [ %.sroa.7.sroa.4.sroa.4.sroa.0.1, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60" ], [ %.sroa.7.sroa.4.sroa.4.sroa.0.1, %.noexc51 ], [ %86, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55" ] + %.sroa.7.sroa.4.sroa.4.sroa.0.0 = phi i64 [ %.sroa.7.sroa.4.sroa.4.sroa.0.1, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60" ], [ %.sroa.7.sroa.4.sroa.4.sroa.0.1, %.noexc51 ], [ %.sroa.374.sroa.7.0.copyload, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55" ] %.sroa.7.sroa.4.sroa.4.sroa.4.0 = phi i64 [ %.sroa.7.sroa.4.sroa.4.sroa.4.1, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60" ], [ %.sroa.7.sroa.4.sroa.4.sroa.4.1, %.noexc51 ], [ undef, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55" ] store i64 %.sroa.077.0, ptr %0, align 8 %.sroa.478.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -16507,51 +16502,51 @@ common.ret: ; preds = %98, %80, %54 %.sroa.7.sroa.4.0..sroa.7.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 store i64 %.sroa.7.sroa.4.sroa.0.0, ptr %.sroa.7.sroa.4.0..sroa.7.0..sroa_idx.sroa_idx, align 8 %.sroa.7.sroa.4.sroa.4.0..sroa.7.sroa.4.0..sroa.7.0..sroa_idx.sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 - store ptr %.sroa.7.sroa.4.sroa.4.sroa.0.0, ptr %.sroa.7.sroa.4.sroa.4.0..sroa.7.sroa.4.0..sroa.7.0..sroa_idx.sroa_idx.sroa_idx, align 8 + store i64 %.sroa.7.sroa.4.sroa.4.sroa.0.0, ptr %.sroa.7.sroa.4.sroa.4.0..sroa.7.sroa.4.0..sroa.7.0..sroa_idx.sroa_idx.sroa_idx, align 8 %.sroa.7.sroa.4.sroa.4.sroa.4.0..sroa.7.sroa.4.sroa.4.0..sroa.7.sroa.4.0..sroa.7.0..sroa_idx.sroa_idx.sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 40 store i64 %.sroa.7.sroa.4.sroa.4.sroa.4.0, ptr %.sroa.7.sroa.4.sroa.4.sroa.4.0..sroa.7.sroa.4.sroa.4.0..sroa.7.sroa.4.0..sroa.7.0..sroa_idx.sroa_idx.sroa_idx.sroa_idx, align 8 %.sroa.880.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 48 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.sroa.880.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(40) %.sroa.880, i64 40, i1 false) br label %common.ret -99: ; preds = %.noexc51 - %100 = getelementptr inbounds nuw i8, ptr %1, i64 24 +96: ; preds = %.noexc51 + %97 = getelementptr inbounds nuw i8, ptr %1, i64 24 call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !2824 - invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h6692686a2b5e9f59E.llvm.12494526139044184965"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %100) - to label %.noexc58 unwind label %109 - -.noexc58: ; preds = %99 - %101 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %102 = load i64, ptr %101, align 8, !range !95, !noalias !2824, !noundef !23 - %.not.i.i.i.i.i.i57 = icmp eq i64 %102, 0 - br i1 %.not.i.i.i.i.i.i57, label %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60", label %103 - -103: ; preds = %.noexc58 - %104 = load ptr, ptr %4, align 8, !noalias !2824, !nonnull !23, !noundef !23 - %105 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %106 = load i64, ptr %105, align 8, !noalias !2824, !noundef !23 - %107 = getelementptr inbounds nuw i8, ptr %1, i64 40 - invoke void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h2e41f254f515f243E.llvm.12494526139044184965"(ptr noalias noundef nonnull readonly align 1 %107, ptr noundef nonnull %104, i64 noundef %102, i64 noundef %106) - to label %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60" unwind label %109 - -"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60": ; preds = %103, %.noexc58 + invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h6692686a2b5e9f59E.llvm.12494526139044184965"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %97) + to label %.noexc58 unwind label %106 + +.noexc58: ; preds = %96 + %98 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %99 = load i64, ptr %98, align 8, !range !95, !noalias !2824, !noundef !23 + %.not.i.i.i.i.i.i57 = icmp eq i64 %99, 0 + br i1 %.not.i.i.i.i.i.i57, label %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60", label %100 + +100: ; preds = %.noexc58 + %101 = load ptr, ptr %4, align 8, !noalias !2824, !nonnull !23, !noundef !23 + %102 = getelementptr inbounds nuw i8, ptr %4, i64 16 + %103 = load i64, ptr %102, align 8, !noalias !2824, !noundef !23 + %104 = getelementptr inbounds nuw i8, ptr %1, i64 40 + invoke void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h2e41f254f515f243E.llvm.12494526139044184965"(ptr noalias noundef nonnull readonly align 1 %104, ptr noundef nonnull %101, i64 noundef %99, i64 noundef %103) + to label %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60" unwind label %106 + +"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60": ; preds = %100, %.noexc58 call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !2824 - br label %98 + br label %95 -108: ; preds = %111, %109, %29 - %.pn42 = phi { ptr, i32 } [ %110, %109 ], [ %.pn40, %111 ], [ %.pn40, %29 ] +105: ; preds = %108, %106, %29 + %.pn42 = phi { ptr, i32 } [ %107, %106 ], [ %.pn40, %108 ], [ %.pn40, %29 ] store i8 2, ptr %9, align 1 resume { ptr, i32 } %.pn42 -109: ; preds = %103, %99 - %110 = landingpad { ptr, i32 } +106: ; preds = %100, %96 + %107 = landingpad { ptr, i32 } cleanup - br label %108 + br label %105 -111: ; preds = %29 - %112 = getelementptr inbounds nuw i8, ptr %1, i64 24 - invoke void @"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %112) #38 - to label %108 unwind label %70 +108: ; preds = %29 + %109 = getelementptr inbounds nuw i8, ptr %1, i64 24 + invoke void @"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %109) #38 + to label %105 unwind label %70 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/jemalloc/optimized/tcache.ll b/bench/jemalloc/optimized/tcache.ll index 0690eebcc7f..2923d45a8f7 100644 --- a/bench/jemalloc/optimized/tcache.ll +++ b/bench/jemalloc/optimized/tcache.ll @@ -553,9 +553,9 @@ arena_get.exit: ; preds = %.lr.ph131, %62 94: ; preds = %89 %95 = zext i32 %.1161.i97 to i64 %96 = getelementptr inbounds nuw %union.emap_batch_lookup_result_u, ptr %51, i64 %95 - %.sroa.0.0.copyload.i = load ptr, ptr %96, align 8, !tbaa !56 + %.sroa.0.0.copyload.i = load i64, ptr %96, align 8, !tbaa !56 store i64 %88, ptr %96, align 8, !tbaa !56 - store ptr %.sroa.0.0.copyload.i, ptr %83, align 8, !tbaa !56 + store i64 %.sroa.0.0.copyload.i, ptr %83, align 8, !tbaa !56 %97 = getelementptr inbounds nuw ptr, ptr %43, i64 %95 %98 = load ptr, ptr %97, align 8, !tbaa !37 %99 = getelementptr inbounds nuw ptr, ptr %43, i64 %indvars.iv @@ -2156,9 +2156,9 @@ arena_dalloc_bin_locked_step.exit.us: ; preds = %340, %330, %326, %3 355: ; preds = %350 %356 = zext i32 %.1161.i145.us to i64 %357 = getelementptr inbounds nuw %union.emap_batch_lookup_result_u, ptr %51, i64 %356 - %.sroa.0.0.copyload.i.us = load ptr, ptr %357, align 8, !tbaa !56 + %.sroa.0.0.copyload.i.us = load i64, ptr %357, align 8, !tbaa !56 store i64 %349, ptr %357, align 8, !tbaa !56 - store ptr %.sroa.0.0.copyload.i.us, ptr %344, align 8, !tbaa !56 + store i64 %.sroa.0.0.copyload.i.us, ptr %344, align 8, !tbaa !56 %358 = getelementptr inbounds nuw ptr, ptr %43, i64 %356 %359 = load ptr, ptr %358, align 8, !tbaa !37 %360 = getelementptr inbounds nuw ptr, ptr %43, i64 %indvars.iv204 diff --git a/bench/jq/optimized/regexec.ll b/bench/jq/optimized/regexec.ll index 139df74dfcc..c60535e4ba2 100644 --- a/bench/jq/optimized/regexec.ll +++ b/bench/jq/optimized/regexec.ll @@ -10695,7 +10695,7 @@ onig_check_callout_data_and_clear_old_values.exit: ; preds = %2, %17 %.phi.trans.insert103 = getelementptr i8, ptr %28, i64 -112 %.sroa.0.0.copyload80.pre = load i64, ptr %.phi.trans.insert103, align 8 %.sroa.11.0..sroa_idx.phi.trans.insert = getelementptr i8, ptr %28, i64 -104 - %.sroa.11.0.copyload.pre = load ptr, ptr %.sroa.11.0..sroa_idx.phi.trans.insert, align 8, !tbaa !56 + %.sroa.11.0.copyload.pre = load i64, ptr %.sroa.11.0..sroa_idx.phi.trans.insert, align 8, !tbaa !56 %33 = icmp eq i32 %.pre102, 0 %34 = select i1 %33, i64 0, i64 %.sroa.0.0.copyload80.pre br label %onig_get_callout_data_by_callout_args_self.exit @@ -10709,7 +10709,7 @@ onig_check_callout_data_and_clear_old_values.exit: ; preds = %2, %17 onig_get_callout_data_by_callout_args_self.exit: ; preds = %.onig_get_callout_data_by_callout_args_self.exit_crit_edge, %35 %37 = phi i32 [ %19, %.onig_get_callout_data_by_callout_args_self.exit_crit_edge ], [ %.pre106, %35 ] - %.sroa.11.0.copyload = phi ptr [ %.sroa.11.0.copyload.pre, %.onig_get_callout_data_by_callout_args_self.exit_crit_edge ], [ null, %35 ] + %.sroa.11.0.copyload = phi i64 [ %.sroa.11.0.copyload.pre, %.onig_get_callout_data_by_callout_args_self.exit_crit_edge ], [ 0, %35 ] %.not = phi i64 [ %34, %.onig_get_callout_data_by_callout_args_self.exit_crit_edge ], [ 0, %35 ] %38 = getelementptr inbounds nuw i8, ptr %0, i64 16 %39 = load ptr, ptr %38, align 8, !tbaa !156 @@ -10845,7 +10845,7 @@ onig_get_callout_data_by_callout_args.exit: ; preds = %67, %.onig_get_call %105 = getelementptr i8, ptr %102, i64 -112 store i64 %.sroa.0.1, ptr %105, align 8 %.sroa.11.0..sroa_idx82 = getelementptr i8, ptr %102, i64 -104 - store ptr %.sroa.11.0.copyload, ptr %.sroa.11.0..sroa_idx82, align 8, !tbaa !56 + store i64 %.sroa.11.0.copyload, ptr %.sroa.11.0..sroa_idx82, align 8, !tbaa !56 %106 = getelementptr inbounds nuw i8, ptr %98, i64 48 %107 = load i32, ptr %106, align 8, !tbaa !40 store i32 %107, ptr %103, align 8, !tbaa !53 diff --git a/bench/just-rs/optimized/xt6bvrk4jdo7mpy.ll b/bench/just-rs/optimized/xt6bvrk4jdo7mpy.ll index 5290a34b225..bbece6bfc0a 100644 --- a/bench/just-rs/optimized/xt6bvrk4jdo7mpy.ll +++ b/bench/just-rs/optimized/xt6bvrk4jdo7mpy.ll @@ -25442,8 +25442,8 @@ define noundef zeroext i1 @"_ZN72_$LT$just..error..Error$u20$as$u20$just..color_ %9 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, [1 x i64] } }, align 8 %10 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, [1 x i64] } }, align 8 %11 = alloca { { ptr, i64 }, { ptr, i64 }, i64, i64, i64, i64, i8, [7 x i8] }, align 8 - %.sroa.0715 = alloca [64 x i8], align 8 - %.sroa.11726 = alloca [7 x i8], align 1 + %.sroa.0711 = alloca [64 x i8], align 8 + %.sroa.11721 = alloca [7 x i8], align 1 %12 = alloca { { ptr, ptr }, { i8, { i8, i8, i8, i8, i8, i8, i8, i8, { i8, [3 x i8] }, { i8, [3 x i8] } }, i8 }, [6 x i8] }, align 8 %13 = alloca [1 x { ptr, ptr }], align 8 %14 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, [1 x i64] } }, align 8 @@ -25671,13 +25671,13 @@ define noundef zeroext i1 @"_ZN72_$LT$just..error..Error$u20$as$u20$just..color_ tail call void @llvm.experimental.noalias.scope.decl(metadata !3544) %226 = getelementptr inbounds nuw i8, ptr %224, i64 17 %227 = load i8, ptr %226, align 1, !range !334, !alias.scope !3547, !noalias !3551, !noundef !4 - switch i8 %227, label %default.unreachable751 [ + switch i8 %227, label %default.unreachable746 [ i8 0, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i i8 1, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i i8 2, label %232 ] -default.unreachable751: ; preds = %245, %3 +default.unreachable746: ; preds = %245, %3 unreachable _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i: ; preds = %3 @@ -25736,9 +25736,9 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7.i) call void @llvm.lifetime.end.p0(ptr nonnull %224) call void @llvm.lifetime.start.p0(ptr nonnull %223) - %.sroa.4733.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 17 - %.sroa.4733.0.copyload = load i8, ptr %.sroa.4733.0..sroa_idx, align 1 - switch i8 %.sroa.4733.0.copyload, label %default.unreachable.i655 [ + %.sroa.4728.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 17 + %.sroa.4728.0.copyload = load i8, ptr %.sroa.4728.0..sroa_idx, align 1 + switch i8 %.sroa.4728.0.copyload, label %default.unreachable.i655 [ i8 0, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i654 i8 1, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i651 i8 2, label %235 @@ -25748,8 +25748,8 @@ default.unreachable.i655: ; preds = %232 unreachable _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i654: ; preds = %232 - %.sroa.0731.0.copyload = load i8, ptr %2, align 1 - %234 = trunc nuw i8 %.sroa.0731.0.copyload to i1 + %.sroa.0726.0.copyload = load i8, ptr %2, align 1 + %234 = trunc nuw i8 %.sroa.0726.0.copyload to i1 br i1 %234, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i651, label %235 _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i651: ; preds = %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i654, %232 @@ -25760,8 +25760,12 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t store i64 %.sroa.0.0.i647, ptr %223, align 8, !alias.scope !3557, !noalias !3560 %.sroa.5.0..sroa_idx.i648 = getelementptr inbounds nuw i8, ptr %223, i64 8 store i8 10, ptr %.sroa.5.0..sroa_idx.i648, align 8, !alias.scope !3557, !noalias !3560 + %.sroa.6.0..sroa_idx.i649 = getelementptr inbounds nuw i8, ptr %223, i64 9 + store i24 0, ptr %.sroa.6.0..sroa_idx.i649, align 1, !noalias !3560 %.sroa.65.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %223, i64 12 store i8 10, ptr %.sroa.65.0..sroa_idx.i, align 4, !alias.scope !3557, !noalias !3560 + %.sroa.7.0..sroa_idx.i650 = getelementptr inbounds nuw i8, ptr %223, i64 13 + store i24 0, ptr %.sroa.7.0..sroa_idx.i650, align 1, !noalias !3560 call void @llvm.lifetime.start.p0(ptr nonnull %222) call void @llvm.lifetime.start.p0(ptr nonnull %221) store ptr %225, ptr %221, align 8 @@ -25790,7 +25794,7 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t 245: ; preds = %244 %246 = load i8, ptr %0, align 8, !range !3537, !noundef !4 - switch i8 %246, label %default.unreachable751 [ + switch i8 %246, label %default.unreachable746 [ i8 0, label %384 i8 1, label %247 i8 2, label %258 @@ -26197,7 +26201,7 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t call void @llvm.lifetime.end.p0(ptr nonnull %220) br i1 %399, label %401, label %1126 -401: ; preds = %1135, %1125, %1109, %1068, %1028, %962, %953, %941, %931, %883, %874, %860, %851, %779, %770, %761, %613, %523, %514, %480, %400, %244, %944, %943, %942, %932, %861, %834, %515, %963, %672, %671, %506, %1203, %.loopexit755, %1100, %1041, %1006, %979, %915, %833, %811, %795, %686, %670, %654, %628, %593, %577, %561, %543, %463 +401: ; preds = %1135, %1125, %1109, %1068, %1028, %962, %953, %941, %931, %883, %874, %860, %851, %779, %770, %761, %613, %523, %514, %480, %400, %244, %944, %943, %942, %932, %861, %834, %515, %963, %672, %671, %506, %1203, %.loopexit750, %1100, %1041, %1006, %979, %915, %833, %811, %795, %686, %670, %654, %628, %593, %577, %561, %543, %463 call void @llvm.lifetime.end.p0(ptr nonnull %223) call void @llvm.experimental.noalias.scope.decl(metadata !3574) call void @llvm.experimental.noalias.scope.decl(metadata !3577) @@ -26238,10 +26242,10 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t call void @llvm.lifetime.start.p0(ptr nonnull %210) %416 = icmp ult i64 %255, %252 %spec.select = select i1 %416, ptr @anon.1a7e3f89fdd1c4a5d945b914e4a08314.42, ptr @anon.1a7e3f89fdd1c4a5d945b914e4a08314.8 - %spec.select752 = select i1 %416, i64 5, i64 0 + %spec.select747 = select i1 %416, i64 5, i64 0 store ptr %spec.select, ptr %210, align 8 %417 = getelementptr inbounds nuw i8, ptr %210, i64 8 - store i64 %spec.select752, ptr %417, align 8 + store i64 %spec.select747, ptr %417, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %209) call void @llvm.lifetime.start.p0(ptr nonnull %208) store ptr %216, ptr %208, align 8 @@ -28312,9 +28316,9 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t call void @llvm.lifetime.start.p0(ptr nonnull %22) call void @llvm.lifetime.start.p0(ptr nonnull %21) call void @llvm.lifetime.start.p0(ptr nonnull %20) - %.sroa.0734.0.copyload = load i8, ptr %2, align 1 - %.sroa.4736.0.copyload = load i8, ptr %.sroa.4733.0..sroa_idx, align 1 - switch i8 %.sroa.4736.0.copyload, label %default.unreachable.i677 [ + %.sroa.0729.0.copyload = load i8, ptr %2, align 1 + %.sroa.4731.0.copyload = load i8, ptr %.sroa.4728.0..sroa_idx, align 1 + switch i8 %.sroa.4731.0.copyload, label %default.unreachable.i677 [ i8 0, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i676 i8 1, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i668 i8 2, label %1128 @@ -28324,7 +28328,7 @@ default.unreachable.i677: ; preds = %1126 unreachable _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i676: ; preds = %1126 - %1127 = trunc nuw i8 %.sroa.0734.0.copyload to i1 + %1127 = trunc nuw i8 %.sroa.0729.0.copyload to i1 br i1 %1127, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i668, label %1128 _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i668: ; preds = %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i676, %1126 @@ -28335,8 +28339,12 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t store i64 %.sroa.0.0.i663, ptr %20, align 8, !alias.scope !3920, !noalias !3923 %.sroa.5.0..sroa_idx.i664 = getelementptr inbounds nuw i8, ptr %20, i64 8 store i8 10, ptr %.sroa.5.0..sroa_idx.i664, align 8, !alias.scope !3920, !noalias !3923 + %.sroa.6.0..sroa_idx.i665 = getelementptr inbounds nuw i8, ptr %20, i64 9 + store i24 0, ptr %.sroa.6.0..sroa_idx.i665, align 1, !noalias !3923 %.sroa.65.0..sroa_idx.i666 = getelementptr inbounds nuw i8, ptr %20, i64 12 store i8 10, ptr %.sroa.65.0..sroa_idx.i666, align 4, !alias.scope !3920, !noalias !3923 + %.sroa.7.0..sroa_idx.i667 = getelementptr inbounds nuw i8, ptr %20, i64 13 + store i24 0, ptr %.sroa.7.0..sroa_idx.i667, align 1, !noalias !3923 store ptr %20, ptr %21, align 8 %1129 = getelementptr inbounds nuw i8, ptr %21, i64 8 store ptr @"_ZN62_$LT$ansi_term..ansi..Suffix$u20$as$u20$core..fmt..Display$GT$3fmt17h69dfb38e45bba680E", ptr %1129, align 8 @@ -28380,8 +28388,8 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t to label %1147 unwind label %.loopexit.split-lp 1145: ; preds = %._crit_edge, %1136 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.0715) - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.11726) + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.0711) + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.11721) switch i8 %246, label %_ZN4just5error5Error7context17hbad5eb4341891789E.exit.thread [ i8 0, label %1146 i8 2, label %1146 @@ -28396,13 +28404,13 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t 1147: ; preds = %1138 call void @llvm.lifetime.end.p0(ptr nonnull %18) - br i1 %1144, label %.loopexit755, label %1148 + br i1 %1144, label %.loopexit750, label %1148 1148: ; preds = %1147 call void @llvm.lifetime.start.p0(ptr nonnull %17) call void @llvm.lifetime.start.p0(ptr nonnull %16) call void @llvm.lifetime.start.p0(ptr nonnull %15) - switch i8 %.sroa.4736.0.copyload, label %default.unreachable.i701 [ + switch i8 %.sroa.4731.0.copyload, label %default.unreachable.i701 [ i8 0, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i700 i8 1, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i692 i8 2, label %1152 @@ -28412,7 +28420,7 @@ default.unreachable.i701: ; preds = %1148 unreachable _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i700: ; preds = %1148 - %1149 = trunc nuw i8 %.sroa.0734.0.copyload to i1 + %1149 = trunc nuw i8 %.sroa.0729.0.copyload to i1 br i1 %1149, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i692, label %1152 _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i692: ; preds = %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i700, %1148 @@ -28430,8 +28438,12 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t store i64 %.sroa.0.0.i685, ptr %1153, align 8, !alias.scope !3931, !noalias !3934 %.sroa.5.0..sroa_idx2.i686 = getelementptr inbounds nuw i8, ptr %15, i64 32 store i8 10, ptr %.sroa.5.0..sroa_idx2.i686, align 8, !alias.scope !3931, !noalias !3934 + %.sroa.6.0..sroa_idx.i687 = getelementptr inbounds nuw i8, ptr %15, i64 33 + store i24 0, ptr %.sroa.6.0..sroa_idx.i687, align 1, !noalias !3934 %.sroa.66.0..sroa_idx.i688 = getelementptr inbounds nuw i8, ptr %15, i64 36 store i8 10, ptr %.sroa.66.0..sroa_idx.i688, align 4, !alias.scope !3931, !noalias !3934 + %.sroa.7.0..sroa_idx.i689 = getelementptr inbounds nuw i8, ptr %15, i64 37 + store i24 0, ptr %.sroa.7.0..sroa_idx.i689, align 1, !noalias !3934 store i64 -9223372036854775808, ptr %15, align 8, !alias.scope !3931, !noalias !3934 %.sroa.4.0..sroa_idx.i690 = getelementptr inbounds nuw i8, ptr %15, i64 8 store ptr @anon.1a7e3f89fdd1c4a5d945b914e4a08314.178, ptr %.sroa.4.0..sroa_idx.i690, align 8, !alias.scope !3931, !noalias !3934 @@ -28495,12 +28507,12 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t br label %1145 1177: ; preds = %.lr.ph, %1181 - %.sroa.0714.0744 = phi ptr [ %.val641, %.lr.ph ], [ %1178, %1181 ] - %1178 = getelementptr inbounds nuw i8, ptr %.sroa.0714.0744, i64 208 + %.sroa.0710.0739 = phi ptr [ %.val641, %.lr.ph ], [ %1178, %1181 ] + %1178 = getelementptr inbounds nuw i8, ptr %.sroa.0710.0739, i64 208 call void @llvm.lifetime.start.p0(ptr nonnull %14) call void @llvm.lifetime.start.p0(ptr nonnull %13) call void @llvm.lifetime.start.p0(ptr nonnull %12) - store ptr %.sroa.0714.0744, ptr %12, align 8 + store ptr %.sroa.0710.0739, ptr %12, align 8 store ptr @anon.1a7e3f89fdd1c4a5d945b914e4a08314.180, ptr %1170, align 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(18) %1171, ptr noundef nonnull align 1 dereferenceable(18) %2, i64 18, i1 false) store ptr %12, ptr %13, align 8 @@ -28517,41 +28529,41 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t call void @llvm.lifetime.end.p0(ptr nonnull %14) call void @llvm.lifetime.end.p0(ptr nonnull %12) call void @llvm.lifetime.end.p0(ptr nonnull %13) - br i1 %1179, label %.loopexit755, label %1181 + br i1 %1179, label %.loopexit750, label %1181 1181: ; preds = %1180 %1182 = icmp eq ptr %1178, %1168 br i1 %1182, label %._crit_edge, label %1177 -.loopexit755: ; preds = %1180, %1147, %1183 +.loopexit750: ; preds = %1180, %1147, %1183 call void @llvm.lifetime.end.p0(ptr nonnull %19) br label %401 1183: ; preds = %1164 call void @llvm.lifetime.end.p0(ptr nonnull %15) call void @llvm.lifetime.end.p0(ptr nonnull %16) - br label %.loopexit755 + br label %.loopexit750 _ZN4just5error5Error7context17hbad5eb4341891789E.exit: ; preds = %1145, %1146 - %.sink754 = phi i64 [ 8, %1146 ], [ 16, %1145 ] - %.sink753 = phi i64 [ 72, %1146 ], [ 80, %1145 ] + %.sink749 = phi i64 [ 8, %1146 ], [ 16, %1145 ] + %.sink748 = phi i64 [ 72, %1146 ], [ 80, %1145 ] %.sink = phi i64 [ 73, %1146 ], [ 81, %1145 ] - %.0.i = getelementptr inbounds nuw i8, ptr %0, i64 %.sink754 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %.sroa.0715, ptr noundef nonnull align 8 dereferenceable(64) %.0.i, i64 64, i1 false), !alias.scope !3949 - %.sroa.9716.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 %.sink753 - %.sroa.9716.0.copyload717 = load i8, ptr %.sroa.9716.0..0.i.sroa_idx, align 8, !alias.scope !3949 - %.sroa.11726.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 %.sink - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.11726, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.11726.0..0.i.sroa_idx, i64 7, i1 false), !alias.scope !3949 - %.not495 = icmp eq i8 %.sroa.9716.0.copyload717, 34 + %.0.i = getelementptr inbounds nuw i8, ptr %0, i64 %.sink749 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %.sroa.0711, ptr noundef nonnull align 8 dereferenceable(64) %.0.i, i64 64, i1 false), !alias.scope !3949 + %.sroa.9.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 %.sink748 + %.sroa.9.0.copyload712 = load i8, ptr %.sroa.9.0..0.i.sroa_idx, align 8, !alias.scope !3949 + %.sroa.11721.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 %.sink + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.11721, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.11721.0..0.i.sroa_idx, i64 7, i1 false), !alias.scope !3949 + %.not495 = icmp eq i8 %.sroa.9.0.copyload712, 34 br i1 %.not495, label %_ZN4just5error5Error7context17hbad5eb4341891789E.exit.thread, label %1184 1184: ; preds = %_ZN4just5error5Error7context17hbad5eb4341891789E.exit call void @llvm.lifetime.start.p0(ptr nonnull %11) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %11, ptr noundef nonnull align 8 dereferenceable(64) %.sroa.0715, i64 64, i1 false) - %.sroa.9716.0..sroa_idx = getelementptr inbounds nuw i8, ptr %11, i64 64 - store i8 %.sroa.9716.0.copyload717, ptr %.sroa.9716.0..sroa_idx, align 8 - %.sroa.11726.0..sroa_idx = getelementptr inbounds nuw i8, ptr %11, i64 65 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.11726.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.11726, i64 7, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %11, ptr noundef nonnull align 8 dereferenceable(64) %.sroa.0711, i64 64, i1 false) + %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %11, i64 64 + store i8 %.sroa.9.0.copyload712, ptr %.sroa.9.0..sroa_idx, align 8 + %.sroa.11721.0..sroa_idx = getelementptr inbounds nuw i8, ptr %11, i64 65 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.11721.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.11721, i64 7, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %10) store ptr @anon.1a7e3f89fdd1c4a5d945b914e4a08314.115, ptr %10, align 8 %1185 = getelementptr inbounds nuw i8, ptr %10, i64 8 @@ -28566,8 +28578,8 @@ _ZN4just5error5Error7context17hbad5eb4341891789E.exit: ; preds = %1145, %1146 to label %1190 unwind label %.loopexit.split-lp _ZN4just5error5Error7context17hbad5eb4341891789E.exit.thread: ; preds = %1145, %1202, %_ZN4just5error5Error7context17hbad5eb4341891789E.exit - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0715) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.11726) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0711) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.11721) call void @llvm.lifetime.end.p0(ptr nonnull %223) call void @"_ZN4core3ptr69drop_in_place$LT$ansi_term..display..ANSIGenericString$LT$str$GT$$GT$17h0a82c94ea620b5dbE"(ptr noalias noundef nonnull align 8 dereferenceable(40) %225) br label %"_ZN4core3ptr69drop_in_place$LT$ansi_term..display..ANSIGenericString$LT$str$GT$$GT$17h0a82c94ea620b5dbE.exit" @@ -28618,8 +28630,8 @@ _ZN4just5error5Error7context17hbad5eb4341891789E.exit.thread: ; preds = %1145, % 1203: ; preds = %1201, %1190 call void @llvm.lifetime.end.p0(ptr nonnull %11) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0715) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.11726) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0711) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.11721) br label %401 "_ZN4core3ptr69drop_in_place$LT$ansi_term..display..ANSIGenericString$LT$str$GT$$GT$17h0a82c94ea620b5dbE.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2f4461582ec6620eE.exit.i.i", %401, %_ZN4just5error5Error7context17hbad5eb4341891789E.exit.thread diff --git a/bench/libigl/optimized/polar_svd3x3.ll b/bench/libigl/optimized/polar_svd3x3.ll index 3732290221d..e1ab9084dca 100644 --- a/bench/libigl/optimized/polar_svd3x3.ll +++ b/bench/libigl/optimized/polar_svd3x3.ll @@ -534,7 +534,7 @@ define linkonce_odr dso_local void @_ZN5Eigen8internal20generic_product_implINS_ %17 = icmp slt i64 %16, 20 %18 = icmp sgt i64 %10, 0 %or.cond = and i1 %18, %17 - br i1 %or.cond, label %19, label %30 + br i1 %or.cond, label %19, label %31 19: ; preds = %3 call void @llvm.lifetime.start.p0(ptr nonnull %7) @@ -544,7 +544,7 @@ define linkonce_odr dso_local void @_ZN5Eigen8internal20generic_product_implINS_ %.sroa.9.56..sroa_idx14.i.i = getelementptr inbounds nuw i8, ptr %4, i64 72 call void @llvm.lifetime.start.p0(ptr nonnull %4) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.sroa.9.56..sroa_idx14.i.i, ptr noundef nonnull align 8 dereferenceable(40) %9, i64 40, i1 false) - %.sroa.0.0.copyload.i.i = load ptr, ptr %1, align 8 + %.sroa.0.0.copyload.i.i = load i64, ptr %1, align 8 %.sroa.4.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.4.0.copyload.i.i = load i64, ptr %.sroa.4.0..sroa_idx.i.i, align 8 %.sroa.5.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -552,7 +552,7 @@ define linkonce_odr dso_local void @_ZN5Eigen8internal20generic_product_implINS_ %.sroa.6.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %1, i64 24 %.sroa.6.0..sroa_idx10.i.i = getelementptr inbounds nuw i8, ptr %4, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.6.0..sroa_idx10.i.i, ptr noundef nonnull align 8 dereferenceable(32) %.sroa.6.0..sroa_idx.i.i, i64 32, i1 false) - store ptr %.sroa.0.0.copyload.i.i, ptr %4, align 8 + store i64 %.sroa.0.0.copyload.i.i, ptr %4, align 8 %.sroa.4.0..sroa_idx6.i.i = getelementptr inbounds nuw i8, ptr %4, i64 8 store i64 %.sroa.4.0.copyload.i.i, ptr %.sroa.4.0..sroa_idx6.i.i, align 8 %.sroa.5.0..sroa_idx8.i.i = getelementptr inbounds nuw i8, ptr %4, i64 16 @@ -562,60 +562,61 @@ define linkonce_odr dso_local void @_ZN5Eigen8internal20generic_product_implINS_ %.sroa.8.56..sroa_idx12.i.i = getelementptr inbounds nuw i8, ptr %4, i64 64 store i64 %.sroa.4.0.copyload.i, ptr %.sroa.8.56..sroa_idx12.i.i, align 8 %21 = getelementptr inbounds nuw i8, ptr %4, i64 112 - store ptr %.sroa.0.0.copyload.i.i, ptr %21, align 8, !tbaa !52 - %22 = getelementptr inbounds nuw i8, ptr %4, i64 128 - %23 = inttoptr i64 %.sroa.0.0.copyload.i to ptr - store ptr %23, ptr %22, align 8, !tbaa !52 - %24 = getelementptr inbounds nuw i8, ptr %4, i64 144 - store i64 %.sroa.5.0.copyload.i.i, ptr %24, align 8, !tbaa !72 + %22 = inttoptr i64 %.sroa.0.0.copyload.i.i to ptr + store ptr %22, ptr %21, align 8, !tbaa !52 + %23 = getelementptr inbounds nuw i8, ptr %4, i64 128 + %24 = inttoptr i64 %.sroa.0.0.copyload.i to ptr + store ptr %24, ptr %23, align 8, !tbaa !52 + %25 = getelementptr inbounds nuw i8, ptr %4, i64 144 + store i64 %.sroa.5.0.copyload.i.i, ptr %25, align 8, !tbaa !72 %.not.i.i.i.i = icmp eq i64 %12, %.sroa.4.0.copyload.i.i %.not8.i.i.i.i = icmp eq i64 %15, %.sroa.4.0.copyload.i %or.cond.i.i.i.i = select i1 %.not.i.i.i.i, i1 %.not8.i.i.i.i, i1 false - br i1 %or.cond.i.i.i.i, label %_ZN5Eigen8internal20generic_product_implINS_5BlockINS_6MatrixIfLi12ELi3ELi0ELi12ELi3EEELin1ELin1ELb0EEENS_9TransposeIS5_EENS_10DenseShapeES8_Li3EE12eval_dynamicINS3_IfLin1ELin1ELi0ELi12ELi12EEENS0_9assign_opIffEEEEvRT_RKS5_RKS7_RKT0_.exit, label %25 + br i1 %or.cond.i.i.i.i, label %_ZN5Eigen8internal20generic_product_implINS_5BlockINS_6MatrixIfLi12ELi3ELi0ELi12ELi3EEELin1ELin1ELb0EEENS_9TransposeIS5_EENS_10DenseShapeES8_Li3EE12eval_dynamicINS3_IfLin1ELin1ELi0ELi12ELi12EEENS0_9assign_opIffEEEEvRT_RKS5_RKS7_RKT0_.exit, label %26 -25: ; preds = %19 +26: ; preds = %19 store i64 %.sroa.4.0.copyload.i.i, ptr %11, align 16, !tbaa !45 store i64 %.sroa.4.0.copyload.i, ptr %14, align 8, !tbaa !48 br label %_ZN5Eigen8internal20generic_product_implINS_5BlockINS_6MatrixIfLi12ELi3ELi0ELi12ELi3EEELin1ELin1ELb0EEENS_9TransposeIS5_EENS_10DenseShapeES8_Li3EE12eval_dynamicINS3_IfLin1ELin1ELi0ELi12ELi12EEENS0_9assign_opIffEEEEvRT_RKS5_RKS7_RKT0_.exit -_ZN5Eigen8internal20generic_product_implINS_5BlockINS_6MatrixIfLi12ELi3ELi0ELi12ELi3EEELin1ELin1ELb0EEENS_9TransposeIS5_EENS_10DenseShapeES8_Li3EE12eval_dynamicINS3_IfLin1ELin1ELi0ELi12ELi12EEENS0_9assign_opIffEEEEvRT_RKS5_RKS7_RKT0_.exit: ; preds = %19, %25 +_ZN5Eigen8internal20generic_product_implINS_5BlockINS_6MatrixIfLi12ELi3ELi0ELi12ELi3EEELin1ELin1ELb0EEENS_9TransposeIS5_EENS_10DenseShapeES8_Li3EE12eval_dynamicINS3_IfLin1ELin1ELi0ELi12ELi12EEENS0_9assign_opIffEEEEvRT_RKS5_RKS7_RKT0_.exit: ; preds = %19, %26 call void @llvm.lifetime.start.p0(ptr nonnull %5) store ptr %0, ptr %5, align 8, !tbaa !49 - %26 = getelementptr inbounds nuw i8, ptr %5, i64 8 - store i64 %.sroa.4.0.copyload.i.i, ptr %26, align 8, !tbaa !51 + %27 = getelementptr inbounds nuw i8, ptr %5, i64 8 + store i64 %.sroa.4.0.copyload.i.i, ptr %27, align 8, !tbaa !51 call void @llvm.lifetime.start.p0(ptr nonnull %6) store ptr %5, ptr %6, align 8, !tbaa !58 - %27 = getelementptr inbounds nuw i8, ptr %6, i64 8 - store ptr %4, ptr %27, align 8, !tbaa !82 - %28 = getelementptr inbounds nuw i8, ptr %6, i64 16 - store ptr %7, ptr %28, align 8, !tbaa !29 - %29 = getelementptr inbounds nuw i8, ptr %6, i64 24 - store ptr %0, ptr %29, align 8, !tbaa !84 + %28 = getelementptr inbounds nuw i8, ptr %6, i64 8 + store ptr %4, ptr %28, align 8, !tbaa !82 + %29 = getelementptr inbounds nuw i8, ptr %6, i64 16 + store ptr %7, ptr %29, align 8, !tbaa !29 + %30 = getelementptr inbounds nuw i8, ptr %6, i64 24 + store ptr %0, ptr %30, align 8, !tbaa !84 call void @_ZN5Eigen8internal21dense_assignment_loopINS0_41restricted_packet_dense_assignment_kernelINS0_9evaluatorINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEEENS3_INS_7ProductINS_5BlockINS4_IfLi12ELi3ELi0ELi12ELi3EEELin1ELin1ELb0EEENS_9TransposeIKSA_EELi1EEEEENS0_9assign_opIffEEEELi4ELi0EE3runERSI_(ptr noundef nonnull align 8 dereferenceable(32) %6) call void @llvm.lifetime.end.p0(ptr nonnull %6) call void @llvm.lifetime.end.p0(ptr nonnull %5) call void @llvm.lifetime.end.p0(ptr nonnull %4) call void @llvm.lifetime.end.p0(ptr nonnull %7) - br label %33 + br label %34 -30: ; preds = %3 - %31 = mul nsw i64 %15, %12 - %32 = icmp slt i64 %31, 1 - br i1 %32, label %_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE7setZeroEv.exit, label %_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE11setConstantERKf.exit.loopexit.i +31: ; preds = %3 + %32 = mul nsw i64 %15, %12 + %33 = icmp slt i64 %32, 1 + br i1 %33, label %_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE7setZeroEv.exit, label %_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE11setConstantERKf.exit.loopexit.i -_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE11setConstantERKf.exit.loopexit.i: ; preds = %30 - %.idx.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %31, 2 +_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE11setConstantERKf.exit.loopexit.i: ; preds = %31 + %.idx.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %32, 2 tail call void @llvm.memset.p0.i64(ptr nonnull align 16 dereferenceable(1) %0, i8 0, i64 %.idx.i.i.i.i.i.i.i.i.i.i.i, i1 false), !tbaa !31 br label %_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE7setZeroEv.exit -_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE7setZeroEv.exit: ; preds = %30, %_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE11setConstantERKf.exit.loopexit.i +_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE7setZeroEv.exit: ; preds = %31, %_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE11setConstantERKf.exit.loopexit.i call void @llvm.lifetime.start.p0(ptr nonnull %8) store float 1.000000e+00, ptr %8, align 4, !tbaa !31 call void @_ZN5Eigen8internal20generic_product_implINS_5BlockINS_6MatrixIfLi12ELi3ELi0ELi12ELi3EEELin1ELin1ELb0EEENS_9TransposeIS5_EENS_10DenseShapeES8_Li8EE13scaleAndAddToINS3_IfLin1ELin1ELi0ELi12ELi12EEEEEvRT_RKS5_RKS7_RKf(ptr noundef nonnull align 16 dereferenceable(592) %0, ptr noundef nonnull align 8 dereferenceable(56) %1, ptr noundef nonnull align 8 dereferenceable(56) %2, ptr noundef nonnull align 4 dereferenceable(4) %8) call void @llvm.lifetime.end.p0(ptr nonnull %8) - br label %33 + br label %34 -33: ; preds = %_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE7setZeroEv.exit, %_ZN5Eigen8internal20generic_product_implINS_5BlockINS_6MatrixIfLi12ELi3ELi0ELi12ELi3EEELin1ELin1ELb0EEENS_9TransposeIS5_EENS_10DenseShapeES8_Li3EE12eval_dynamicINS3_IfLin1ELin1ELi0ELi12ELi12EEENS0_9assign_opIffEEEEvRT_RKS5_RKS7_RKT0_.exit +34: ; preds = %_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE7setZeroEv.exit, %_ZN5Eigen8internal20generic_product_implINS_5BlockINS_6MatrixIfLi12ELi3ELi0ELi12ELi3EEELin1ELin1ELb0EEENS_9TransposeIS5_EENS_10DenseShapeES8_Li3EE12eval_dynamicINS3_IfLin1ELin1ELi0ELi12ELi12EEENS0_9assign_opIffEEEEvRT_RKS5_RKS7_RKT0_.exit ret void } diff --git a/bench/libigl/optimized/principal_curvature.ll b/bench/libigl/optimized/principal_curvature.ll index 28cfcd4ba34..c3019cfa8cc 100644 --- a/bench/libigl/optimized/principal_curvature.ll +++ b/bench/libigl/optimized/principal_curvature.ll @@ -16590,38 +16590,38 @@ _ZN5Eigen8internal28aligned_stack_memory_handlerIdED2Ev.exit25: ; preds = %32, % define linkonce_odr dso_local void @_ZN5Eigen8internal32triangular_matrix_vector_productIlLi6EdLb0EdLb0ELi1ELi0EE3runEllPKdlS4_lPdlRS3_(i64 noundef %0, i64 noundef %1, ptr noundef %2, i64 noundef %3, ptr noundef %4, i64 noundef %5, ptr noundef %6, i64 noundef %7, ptr noundef nonnull align 8 dereferenceable(8) %8) local_unnamed_addr #20 comdat align 2 personality ptr @__gxx_personality_v0 { %10 = alloca %"class.Eigen::internal::const_blas_data_mapper", align 8 %11 = alloca %"class.Eigen::internal::const_blas_data_mapper", align 8 - %.sroa.speculated133 = tail call i64 @llvm.smin.i64(i64 %1, i64 %0) - %12 = icmp sgt i64 %.sroa.speculated133, 0 - br i1 %12, label %.lr.ph146, label %._crit_edge147 + %.sroa.speculated132 = tail call i64 @llvm.smin.i64(i64 %1, i64 %0) + %12 = icmp sgt i64 %.sroa.speculated132, 0 + br i1 %12, label %.lr.ph143, label %._crit_edge144 -.lr.ph146: ; preds = %9 +.lr.ph143: ; preds = %9 %13 = getelementptr inbounds nuw i8, ptr %10, i64 8 %14 = getelementptr inbounds nuw i8, ptr %11, i64 8 br label %15 -._crit_edge147: ; preds = %104, %9 +._crit_edge144: ; preds = %104, %9 ret void -15: ; preds = %.lr.ph146, %104 - %indvars.iv = phi i64 [ %.sroa.speculated133, %.lr.ph146 ], [ %indvars.iv.next, %104 ] - %.0144 = phi i64 [ 0, %.lr.ph146 ], [ %105, %104 ] +15: ; preds = %.lr.ph143, %104 + %indvars.iv = phi i64 [ %.sroa.speculated132, %.lr.ph143 ], [ %indvars.iv.next, %104 ] + %.0141 = phi i64 [ 0, %.lr.ph143 ], [ %105, %104 ] %16 = call i64 @llvm.smax.i64(i64 %indvars.iv, i64 1) %17 = call i64 @llvm.umin.i64(i64 %16, i64 8) - %18 = sub nsw i64 %.sroa.speculated133, %.0144 + %18 = sub nsw i64 %.sroa.speculated132, %.0141 %.sroa.speculated = call i64 @llvm.smin.i64(i64 %18, i64 8) %19 = icmp sgt i64 %18, 0 br i1 %19, label %.lr.ph, label %._crit_edge ._crit_edge: ; preds = %88, %15 - %20 = add i64 %.sroa.speculated, %.0144 + %20 = add i64 %.sroa.speculated, %.0141 %21 = sub i64 %1, %20 %22 = icmp sgt i64 %21, 0 br i1 %22, label %96, label %104 .lr.ph: ; preds = %15, %88 - %.052142 = phi i64 [ %95, %88 ], [ 0, %15 ] - %23 = add nuw nsw i64 %.052142, %.0144 - %24 = xor i64 %.052142, -1 + %.052140 = phi i64 [ %95, %88 ], [ 0, %15 ] + %23 = add nuw nsw i64 %.052140, %.0141 + %24 = xor i64 %.052140, -1 %25 = add nsw i64 %.sroa.speculated, %24 %26 = icmp sgt i64 %25, 0 br i1 %26, label %27, label %.lr.ph._crit_edge @@ -16639,7 +16639,7 @@ define linkonce_odr dso_local void @_ZN5Eigen8internal32triangular_matrix_vector %33 = getelementptr inbounds nuw double, ptr %4, i64 %28 %34 = and i64 %25, 9223372036854775804 %35 = and i64 %25, 9223372036854775806 - %.off.i.i.i = sub nsw i64 %.sroa.speculated, %.052142 + %.off.i.i.i = sub nsw i64 %.sroa.speculated, %.052140 %.not.i.i.i = icmp ult i64 %.off.i.i.i, 3 br i1 %.not.i.i.i, label %80, label %36 @@ -16742,13 +16742,13 @@ _ZNK5Eigen9DenseBaseINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_ %93 = load double, ptr %92, align 8, !tbaa !58 %94 = call double @llvm.fmuladd.f64(double %89, double %91, double %93) store double %94, ptr %92, align 8, !tbaa !58 - %95 = add nuw nsw i64 %.052142, 1 + %95 = add nuw nsw i64 %.052140, 1 %exitcond.not = icmp eq i64 %95, %17 br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !814 96: ; preds = %._crit_edge call void @llvm.lifetime.start.p0(ptr nonnull %10) - %97 = mul nsw i64 %.0144, %3 + %97 = mul nsw i64 %.0141, %3 %98 = getelementptr double, ptr %2, i64 %20 %99 = getelementptr double, ptr %98, i64 %97 store ptr %99, ptr %10, align 8, !tbaa !676 @@ -16757,7 +16757,7 @@ _ZNK5Eigen9DenseBaseINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_ %100 = getelementptr inbounds double, ptr %4, i64 %20 store ptr %100, ptr %11, align 8, !tbaa !676 store i64 %5, ptr %14, align 8, !tbaa !678 - %101 = mul nsw i64 %.0144, %7 + %101 = mul nsw i64 %.0141, %7 %102 = getelementptr inbounds double, ptr %6, i64 %101 %103 = load double, ptr %8, align 8, !tbaa !58 call void @_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi1EEELi1ELb0EdS3_Lb0ELi1EE3runEllRKS3_S6_Pdld(i64 noundef %.sroa.speculated, i64 noundef %21, ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef nonnull %102, i64 noundef %7, double noundef %103) @@ -16766,10 +16766,10 @@ _ZNK5Eigen9DenseBaseINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_ br label %104 104: ; preds = %96, %._crit_edge - %105 = add nuw nsw i64 %.0144, 8 - %106 = icmp slt i64 %105, %.sroa.speculated133 + %105 = add nuw nsw i64 %.0141, 8 + %106 = icmp slt i64 %105, %.sroa.speculated132 %indvars.iv.next = add i64 %indvars.iv, -8 - br i1 %106, label %15, label %._crit_edge147, !llvm.loop !815 + br i1 %106, label %15, label %._crit_edge144, !llvm.loop !815 } ; Function Attrs: mustprogress noinline uwtable @@ -26497,7 +26497,7 @@ define linkonce_odr dso_local void @_ZN5Eigen8internal20generic_product_implINS_ %6 = alloca %"struct.Eigen::internal::evaluator.1910", align 8 %7 = alloca %"struct.Eigen::internal::evaluator.364", align 8 %8 = alloca %"class.Eigen::internal::restricted_packet_dense_assignment_kernel.1914", align 8 - %.sroa.0.0.copyload = load ptr, ptr %1, align 8 + %.sroa.0.0.copyload = load i64, ptr %1, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.4.0.copyload = load i64, ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -26506,7 +26506,7 @@ define linkonce_odr dso_local void @_ZN5Eigen8internal20generic_product_implINS_ %.sroa.6.0..sroa_idx10 = getelementptr inbounds nuw i8, ptr %6, i64 24 call void @llvm.lifetime.start.p0(ptr nonnull %6) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.6.0..sroa_idx10, ptr noundef nonnull align 8 dereferenceable(32) %.sroa.6.0..sroa_idx, i64 32, i1 false) - store ptr %.sroa.0.0.copyload, ptr %6, align 8 + store i64 %.sroa.0.0.copyload, ptr %6, align 8 %.sroa.4.0..sroa_idx6 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sroa.4.0.copyload, ptr %.sroa.4.0..sroa_idx6, align 8 %.sroa.5.0..sroa_idx8 = getelementptr inbounds nuw i8, ptr %6, i64 16 @@ -26514,70 +26514,71 @@ define linkonce_odr dso_local void @_ZN5Eigen8internal20generic_product_implINS_ %9 = getelementptr inbounds nuw i8, ptr %6, i64 56 store ptr %2, ptr %9, align 8, !tbaa !195 %10 = getelementptr inbounds nuw i8, ptr %6, i64 64 - store ptr %.sroa.0.0.copyload, ptr %10, align 8, !tbaa !1190 - %11 = getelementptr inbounds nuw i8, ptr %6, i64 80 - %12 = load ptr, ptr %.sroa.6.0..sroa_idx10, align 8, !tbaa !1135 - %13 = getelementptr inbounds nuw i8, ptr %12, i64 8 - %14 = load i64, ptr %13, align 8, !tbaa !54 - store i64 %14, ptr %11, align 8, !tbaa !194 - %15 = getelementptr inbounds nuw i8, ptr %6, i64 88 - %16 = load ptr, ptr %2, align 8, !tbaa !53 - %17 = getelementptr inbounds nuw i8, ptr %2, i64 8 - %18 = load i64, ptr %17, align 8, !tbaa !54 - store ptr %16, ptr %15, align 8, !tbaa !1192 - %19 = getelementptr inbounds nuw i8, ptr %6, i64 96 - store i64 %18, ptr %19, align 8, !tbaa !1194 - %20 = getelementptr inbounds nuw i8, ptr %6, i64 104 - store i64 %.sroa.5.0.copyload, ptr %20, align 8, !tbaa !1195 - %21 = getelementptr inbounds nuw i8, ptr %2, i64 16 - %22 = load i64, ptr %21, align 8, !tbaa !55 - %23 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %24 = load i64, ptr %23, align 8, !tbaa !54 - %.not.i.i = icmp eq i64 %24, %.sroa.4.0.copyload - %25 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %26 = load i64, ptr %25, align 8 - %.not8.i.i = icmp eq i64 %26, %22 + %11 = inttoptr i64 %.sroa.0.0.copyload to ptr + store ptr %11, ptr %10, align 8, !tbaa !1190 + %12 = getelementptr inbounds nuw i8, ptr %6, i64 80 + %13 = load ptr, ptr %.sroa.6.0..sroa_idx10, align 8, !tbaa !1135 + %14 = getelementptr inbounds nuw i8, ptr %13, i64 8 + %15 = load i64, ptr %14, align 8, !tbaa !54 + store i64 %15, ptr %12, align 8, !tbaa !194 + %16 = getelementptr inbounds nuw i8, ptr %6, i64 88 + %17 = load ptr, ptr %2, align 8, !tbaa !53 + %18 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %19 = load i64, ptr %18, align 8, !tbaa !54 + store ptr %17, ptr %16, align 8, !tbaa !1192 + %20 = getelementptr inbounds nuw i8, ptr %6, i64 96 + store i64 %19, ptr %20, align 8, !tbaa !1194 + %21 = getelementptr inbounds nuw i8, ptr %6, i64 104 + store i64 %.sroa.5.0.copyload, ptr %21, align 8, !tbaa !1195 + %22 = getelementptr inbounds nuw i8, ptr %2, i64 16 + %23 = load i64, ptr %22, align 8, !tbaa !55 + %24 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %25 = load i64, ptr %24, align 8, !tbaa !54 + %.not.i.i = icmp eq i64 %25, %.sroa.4.0.copyload + %26 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %27 = load i64, ptr %26, align 8 + %.not8.i.i = icmp eq i64 %27, %23 %or.cond.i.i = select i1 %.not.i.i, i1 %.not8.i.i, i1 false - br i1 %or.cond.i.i, label %_ZN5Eigen8internal42call_restricted_packet_assignment_no_aliasINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_7ProductINS_5BlockIKS3_Lin1ELin1ELb1EEES3_Li1EEENS0_9assign_opIddEEEEvRT_RKT0_RKT1_.exit, label %27 + br i1 %or.cond.i.i, label %_ZN5Eigen8internal42call_restricted_packet_assignment_no_aliasINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_7ProductINS_5BlockIKS3_Lin1ELin1ELb1EEES3_Li1EEENS0_9assign_opIddEEEEvRT_RKT0_RKT1_.exit, label %28 -27: ; preds = %5 - %28 = icmp eq i64 %.sroa.4.0.copyload, 0 - %29 = icmp eq i64 %22, 0 - %or.cond.i.i.i.i = or i1 %28, %29 - br i1 %or.cond.i.i.i.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i, label %30 +28: ; preds = %5 + %29 = icmp eq i64 %.sroa.4.0.copyload, 0 + %30 = icmp eq i64 %23, 0 + %or.cond.i.i.i.i = or i1 %29, %30 + br i1 %or.cond.i.i.i.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i, label %31 -30: ; preds = %27 - %31 = sdiv i64 9223372036854775807, %22 - %32 = icmp sgt i64 %.sroa.4.0.copyload, %31 - br i1 %32, label %.noexc.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i +31: ; preds = %28 + %32 = sdiv i64 9223372036854775807, %23 + %33 = icmp sgt i64 %.sroa.4.0.copyload, %32 + br i1 %33, label %.noexc.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i -.noexc.i: ; preds = %30 - %33 = tail call ptr @__cxa_allocate_exception(i64 8) #31 - store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %33, align 8, !tbaa !56 - tail call void @__cxa_throw(ptr nonnull %33, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #32 +.noexc.i: ; preds = %31 + %34 = tail call ptr @__cxa_allocate_exception(i64 8) #31 + store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %34, align 8, !tbaa !56 + tail call void @__cxa_throw(ptr nonnull %34, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #32 unreachable -_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i: ; preds = %30, %27 - %34 = mul nsw i64 %22, %.sroa.4.0.copyload - tail call void @_ZN5Eigen12DenseStorageIdLin1ELin1ELin1ELi0EE6resizeElll(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %34, i64 noundef %.sroa.4.0.copyload, i64 noundef %22) - %.pre.i = load i64, ptr %23, align 8, !tbaa !54 +_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i: ; preds = %31, %28 + %35 = mul nsw i64 %23, %.sroa.4.0.copyload + tail call void @_ZN5Eigen12DenseStorageIdLin1ELin1ELin1ELi0EE6resizeElll(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %35, i64 noundef %.sroa.4.0.copyload, i64 noundef %23) + %.pre.i = load i64, ptr %24, align 8, !tbaa !54 br label %_ZN5Eigen8internal42call_restricted_packet_assignment_no_aliasINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_7ProductINS_5BlockIKS3_Lin1ELin1ELb1EEES3_Li1EEENS0_9assign_opIddEEEEvRT_RKT0_RKT1_.exit _ZN5Eigen8internal42call_restricted_packet_assignment_no_aliasINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_7ProductINS_5BlockIKS3_Lin1ELin1ELb1EEES3_Li1EEENS0_9assign_opIddEEEEvRT_RKT0_RKT1_.exit: ; preds = %5, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i - %35 = phi i64 [ %.pre.i, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i ], [ %.sroa.4.0.copyload, %5 ] + %36 = phi i64 [ %.pre.i, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i ], [ %.sroa.4.0.copyload, %5 ] call void @llvm.lifetime.start.p0(ptr nonnull %7) - %36 = load ptr, ptr %0, align 8, !tbaa !53 - store ptr %36, ptr %7, align 8, !tbaa !1192 - %37 = getelementptr inbounds nuw i8, ptr %7, i64 8 - store i64 %35, ptr %37, align 8, !tbaa !1194 + %37 = load ptr, ptr %0, align 8, !tbaa !53 + store ptr %37, ptr %7, align 8, !tbaa !1192 + %38 = getelementptr inbounds nuw i8, ptr %7, i64 8 + store i64 %36, ptr %38, align 8, !tbaa !1194 call void @llvm.lifetime.start.p0(ptr nonnull %8) store ptr %7, ptr %8, align 8, !tbaa !1201 - %38 = getelementptr inbounds nuw i8, ptr %8, i64 8 - store ptr %6, ptr %38, align 8, !tbaa !1203 - %39 = getelementptr inbounds nuw i8, ptr %8, i64 16 - store ptr %3, ptr %39, align 8, !tbaa !1205 - %40 = getelementptr inbounds nuw i8, ptr %8, i64 24 - store ptr %0, ptr %40, align 8, !tbaa !195 + %39 = getelementptr inbounds nuw i8, ptr %8, i64 8 + store ptr %6, ptr %39, align 8, !tbaa !1203 + %40 = getelementptr inbounds nuw i8, ptr %8, i64 16 + store ptr %3, ptr %40, align 8, !tbaa !1205 + %41 = getelementptr inbounds nuw i8, ptr %8, i64 24 + store ptr %0, ptr %41, align 8, !tbaa !195 call void @_ZN5Eigen8internal21dense_assignment_loopINS0_41restricted_packet_dense_assignment_kernelINS0_9evaluatorINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEENS3_INS_7ProductINS_5BlockIKS5_Lin1ELin1ELb1EEES5_Li1EEEEENS0_9assign_opIddEEEELi4ELi0EE3runERSF_(ptr noundef nonnull align 8 dereferenceable(32) %8) call void @llvm.lifetime.end.p0(ptr nonnull %8) call void @llvm.lifetime.end.p0(ptr nonnull %7) diff --git a/bench/lightgbm/optimized/linear_tree_learner.ll b/bench/lightgbm/optimized/linear_tree_learner.ll index faecc41d1e2..dff34639adb 100644 --- a/bench/lightgbm/optimized/linear_tree_learner.ll +++ b/bench/lightgbm/optimized/linear_tree_learner.ll @@ -15193,7 +15193,7 @@ define linkonce_odr void @_ZN5Eigen8internal20generic_product_implINS_5BlockIKNS %6 = alloca %"struct.Eigen::internal::evaluator.565", align 8 %7 = alloca %"struct.Eigen::internal::evaluator", align 8 %8 = alloca %"class.Eigen::internal::restricted_packet_dense_assignment_kernel.574", align 8 - %.sroa.0.0.copyload = load ptr, ptr %1, align 8 + %.sroa.0.0.copyload = load i64, ptr %1, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.4.0.copyload = load i64, ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -15205,7 +15205,7 @@ define linkonce_odr void @_ZN5Eigen8internal20generic_product_implINS_5BlockIKNS %.sroa.9.56..sroa_idx14 = getelementptr inbounds nuw i8, ptr %6, i64 80 call void @llvm.lifetime.start.p0(ptr nonnull %6) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.9.56..sroa_idx14, ptr noundef nonnull align 8 dereferenceable(32) %.sroa.9.56..sroa_idx, i64 32, i1 false) - store ptr %.sroa.0.0.copyload, ptr %6, align 8 + store i64 %.sroa.0.0.copyload, ptr %6, align 8 %.sroa.4.0..sroa_idx6 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sroa.4.0.copyload, ptr %.sroa.4.0..sroa_idx6, align 8 %.sroa.5.0..sroa_idx8 = getelementptr inbounds nuw i8, ptr %6, i64 16 @@ -15217,69 +15217,70 @@ define linkonce_odr void @_ZN5Eigen8internal20generic_product_implINS_5BlockIKNS %.sroa.8.56..sroa_idx12 = getelementptr inbounds nuw i8, ptr %6, i64 72 store i64 %.sroa.8.56.copyload, ptr %.sroa.8.56..sroa_idx12, align 8 %10 = getelementptr inbounds nuw i8, ptr %6, i64 112 - store ptr %.sroa.0.0.copyload, ptr %10, align 8, !tbaa !812 - %11 = getelementptr inbounds nuw i8, ptr %6, i64 128 - %12 = load ptr, ptr %.sroa.6.0..sroa_idx10, align 8, !tbaa !643 - %13 = getelementptr inbounds nuw i8, ptr %12, i64 8 - %14 = load i64, ptr %13, align 8, !tbaa !376 - store i64 %14, ptr %11, align 8, !tbaa !508 - %15 = getelementptr inbounds nuw i8, ptr %6, i64 136 - %16 = load ptr, ptr %9, align 8, !tbaa !600 - store ptr %16, ptr %15, align 8, !tbaa !617 - %17 = getelementptr inbounds nuw i8, ptr %6, i64 152 - %18 = load ptr, ptr %.sroa.9.56..sroa_idx14, align 8, !tbaa !645 - %19 = getelementptr inbounds nuw i8, ptr %18, i64 8 - %20 = load i64, ptr %19, align 8, !tbaa !376 - store i64 %20, ptr %17, align 8, !tbaa !508 - %21 = getelementptr inbounds nuw i8, ptr %6, i64 160 - store i64 %.sroa.5.0.copyload, ptr %21, align 8, !tbaa !814 - %22 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %23 = load i64, ptr %22, align 8, !tbaa !376 - %.not.i.i = icmp eq i64 %23, %.sroa.4.0.copyload - %24 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %25 = load i64, ptr %24, align 8 - %.not8.i.i = icmp eq i64 %25, %.sroa.8.56.copyload + %11 = inttoptr i64 %.sroa.0.0.copyload to ptr + store ptr %11, ptr %10, align 8, !tbaa !812 + %12 = getelementptr inbounds nuw i8, ptr %6, i64 128 + %13 = load ptr, ptr %.sroa.6.0..sroa_idx10, align 8, !tbaa !643 + %14 = getelementptr inbounds nuw i8, ptr %13, i64 8 + %15 = load i64, ptr %14, align 8, !tbaa !376 + store i64 %15, ptr %12, align 8, !tbaa !508 + %16 = getelementptr inbounds nuw i8, ptr %6, i64 136 + %17 = load ptr, ptr %9, align 8, !tbaa !600 + store ptr %17, ptr %16, align 8, !tbaa !617 + %18 = getelementptr inbounds nuw i8, ptr %6, i64 152 + %19 = load ptr, ptr %.sroa.9.56..sroa_idx14, align 8, !tbaa !645 + %20 = getelementptr inbounds nuw i8, ptr %19, i64 8 + %21 = load i64, ptr %20, align 8, !tbaa !376 + store i64 %21, ptr %18, align 8, !tbaa !508 + %22 = getelementptr inbounds nuw i8, ptr %6, i64 160 + store i64 %.sroa.5.0.copyload, ptr %22, align 8, !tbaa !814 + %23 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %24 = load i64, ptr %23, align 8, !tbaa !376 + %.not.i.i = icmp eq i64 %24, %.sroa.4.0.copyload + %25 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %26 = load i64, ptr %25, align 8 + %.not8.i.i = icmp eq i64 %26, %.sroa.8.56.copyload %or.cond.i.i = select i1 %.not.i.i, i1 %.not8.i.i, i1 false - br i1 %or.cond.i.i, label %_ZN5Eigen8internal42call_restricted_packet_assignment_no_aliasINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_7ProductINS_5BlockIKS3_Lin1ELin1ELb0EEENS5_IS3_Lin1ELin1ELb0EEELi1EEENS0_9assign_opIddEEEEvRT_RKT0_RKT1_.exit, label %26 + br i1 %or.cond.i.i, label %_ZN5Eigen8internal42call_restricted_packet_assignment_no_aliasINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_7ProductINS_5BlockIKS3_Lin1ELin1ELb0EEENS5_IS3_Lin1ELin1ELb0EEELi1EEENS0_9assign_opIddEEEEvRT_RKT0_RKT1_.exit, label %27 -26: ; preds = %5 - %27 = icmp eq i64 %.sroa.4.0.copyload, 0 - %28 = icmp eq i64 %.sroa.8.56.copyload, 0 - %or.cond.i.i.i.i = or i1 %27, %28 - br i1 %or.cond.i.i.i.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i, label %29 - -29: ; preds = %26 - %30 = sdiv i64 9223372036854775807, %.sroa.8.56.copyload - %31 = icmp sgt i64 %.sroa.4.0.copyload, %30 - br i1 %31, label %.noexc.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i +27: ; preds = %5 + %28 = icmp eq i64 %.sroa.4.0.copyload, 0 + %29 = icmp eq i64 %.sroa.8.56.copyload, 0 + %or.cond.i.i.i.i = or i1 %28, %29 + br i1 %or.cond.i.i.i.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i, label %30 -.noexc.i: ; preds = %29 - %32 = tail call ptr @__cxa_allocate_exception(i64 8) #8 - store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %32, align 8, !tbaa !263 - tail call void @__cxa_throw(ptr nonnull %32, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #37 +30: ; preds = %27 + %31 = sdiv i64 9223372036854775807, %.sroa.8.56.copyload + %32 = icmp sgt i64 %.sroa.4.0.copyload, %31 + br i1 %32, label %.noexc.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i + +.noexc.i: ; preds = %30 + %33 = tail call ptr @__cxa_allocate_exception(i64 8) #8 + store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %33, align 8, !tbaa !263 + tail call void @__cxa_throw(ptr nonnull %33, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #37 unreachable -_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i: ; preds = %29, %26 - %33 = mul nsw i64 %.sroa.8.56.copyload, %.sroa.4.0.copyload - tail call void @_ZN5Eigen12DenseStorageIdLin1ELin1ELin1ELi0EE6resizeElll(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %33, i64 noundef %.sroa.4.0.copyload, i64 noundef %.sroa.8.56.copyload) - %.pre.i = load i64, ptr %22, align 8, !tbaa !376 +_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i: ; preds = %30, %27 + %34 = mul nsw i64 %.sroa.8.56.copyload, %.sroa.4.0.copyload + tail call void @_ZN5Eigen12DenseStorageIdLin1ELin1ELin1ELi0EE6resizeElll(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %34, i64 noundef %.sroa.4.0.copyload, i64 noundef %.sroa.8.56.copyload) + %.pre.i = load i64, ptr %23, align 8, !tbaa !376 br label %_ZN5Eigen8internal42call_restricted_packet_assignment_no_aliasINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_7ProductINS_5BlockIKS3_Lin1ELin1ELb0EEENS5_IS3_Lin1ELin1ELb0EEELi1EEENS0_9assign_opIddEEEEvRT_RKT0_RKT1_.exit _ZN5Eigen8internal42call_restricted_packet_assignment_no_aliasINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_7ProductINS_5BlockIKS3_Lin1ELin1ELb0EEENS5_IS3_Lin1ELin1ELb0EEELi1EEENS0_9assign_opIddEEEEvRT_RKT0_RKT1_.exit: ; preds = %5, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i - %34 = phi i64 [ %.pre.i, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i ], [ %.sroa.4.0.copyload, %5 ] + %35 = phi i64 [ %.pre.i, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i ], [ %.sroa.4.0.copyload, %5 ] call void @llvm.lifetime.start.p0(ptr nonnull %7) - %35 = load ptr, ptr %0, align 8, !tbaa !379 - store ptr %35, ptr %7, align 8, !tbaa !549 - %36 = getelementptr inbounds nuw i8, ptr %7, i64 8 - store i64 %34, ptr %36, align 8, !tbaa !551 + %36 = load ptr, ptr %0, align 8, !tbaa !379 + store ptr %36, ptr %7, align 8, !tbaa !549 + %37 = getelementptr inbounds nuw i8, ptr %7, i64 8 + store i64 %35, ptr %37, align 8, !tbaa !551 call void @llvm.lifetime.start.p0(ptr nonnull %8) store ptr %7, ptr %8, align 8, !tbaa !552 - %37 = getelementptr inbounds nuw i8, ptr %8, i64 8 - store ptr %6, ptr %37, align 8, !tbaa !824 - %38 = getelementptr inbounds nuw i8, ptr %8, i64 16 - store ptr %3, ptr %38, align 8, !tbaa !556 - %39 = getelementptr inbounds nuw i8, ptr %8, i64 24 - store ptr %0, ptr %39, align 8, !tbaa !383 + %38 = getelementptr inbounds nuw i8, ptr %8, i64 8 + store ptr %6, ptr %38, align 8, !tbaa !824 + %39 = getelementptr inbounds nuw i8, ptr %8, i64 16 + store ptr %3, ptr %39, align 8, !tbaa !556 + %40 = getelementptr inbounds nuw i8, ptr %8, i64 24 + store ptr %0, ptr %40, align 8, !tbaa !383 call void @_ZN5Eigen8internal21dense_assignment_loopINS0_41restricted_packet_dense_assignment_kernelINS0_9evaluatorINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEENS3_INS_7ProductINS_5BlockIKS5_Lin1ELin1ELb0EEENS8_IS5_Lin1ELin1ELb0EEELi1EEEEENS0_9assign_opIddEEEELi4ELi0EE3runERSG_(ptr noundef nonnull align 8 dereferenceable(32) %8) call void @llvm.lifetime.end.p0(ptr nonnull %8) call void @llvm.lifetime.end.p0(ptr nonnull %7) diff --git a/bench/llama.cpp/optimized/json-schema-to-grammar.ll b/bench/llama.cpp/optimized/json-schema-to-grammar.ll index 15ff63833a4..2433081ac87 100644 --- a/bench/llama.cpp/optimized/json-schema-to-grammar.ll +++ b/bench/llama.cpp/optimized/json-schema-to-grammar.ll @@ -5618,7 +5618,7 @@ define linkonce_odr void @_ZN8nlohmann16json_abi_v3_11_310basic_jsonINS0_11order _ZNK8nlohmann16json_abi_v3_11_310basic_jsonINS0_11ordered_mapESt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES3_IhSaIhEEvE16assert_invariantEb.exit: ; preds = %8 store i8 0, ptr %1, align 8, !tbaa !170 - store ptr null, ptr %4, align 8, !tbaa !13 + store i64 0, ptr %4, align 8, !tbaa !13 %14 = load i8, ptr %0, align 8, !tbaa !170 %.not.i5 = icmp eq i8 %14, 1 %15 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -37413,14 +37413,14 @@ _ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_strin br label %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit40 _ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20._ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.thread.i39_crit_edge: ; preds = %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit.thread55 - %.in.in67 = getelementptr i8, ptr %3, i64 8 + %.in.in68 = getelementptr i8, ptr %3, i64 8 br label %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit40 _ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit40: ; preds = %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit34.thread53, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20._ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.thread.i39_crit_edge, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20 - %.in69.in = phi ptr [ %.in.in, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20 ], [ %.in.in67, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20._ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.thread.i39_crit_edge ], [ %14, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit34.thread53 ] %16 = phi ptr [ %3, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20 ], [ %3, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20._ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.thread.i39_crit_edge ], [ %15, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit34.thread53 ] - %.in69 = load i64, ptr %.in69.in, align 8 - %17 = inttoptr i64 %.in69 to ptr + %.sroa.011.0.copyload4450.in = phi ptr [ %.in.in, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20 ], [ %.in.in68, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20._ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.thread.i39_crit_edge ], [ %14, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit34.thread53 ] + %.sroa.011.0.copyload4450 = load i64, ptr %.sroa.011.0.copyload4450.in, align 8 + %17 = inttoptr i64 %.sroa.011.0.copyload4450 to ptr %18 = load ptr, ptr %16, align 8, !tbaa !574 %19 = icmp eq ptr %18, %17 br i1 %19, label %20, label %49 @@ -37452,10 +37452,11 @@ _ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_strin %37 = sub i64 %35, %36 %38 = getelementptr i8, ptr %34, i64 %37 %39 = getelementptr i8, ptr %38, i64 -48 - store ptr %17, ptr %39, align 8, !tbaa !574 + store i64 %.sroa.011.0.copyload4450, ptr %39, align 8, !tbaa !574 %40 = getelementptr i8, ptr %38, i64 -40 + %.cast61 = inttoptr i64 %.sroa.011.0.copyload4450 to ptr %41 = load ptr, ptr %40, align 8, !tbaa !574 - %42 = icmp ne ptr %41, %17 + %42 = icmp ne ptr %41, %.cast61 %43 = getelementptr i8, ptr %38, i64 -32 %44 = zext i1 %42 to i8 store i8 %44, ptr %43, align 8, !tbaa !837 @@ -37489,10 +37490,11 @@ _ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_strin %62 = sub i64 %60, %61 %63 = getelementptr i8, ptr %59, i64 %62 %64 = getelementptr i8, ptr %63, i64 -48 - store ptr %17, ptr %64, align 8, !tbaa !574 + store i64 %.sroa.011.0.copyload4450, ptr %64, align 8, !tbaa !574 %65 = getelementptr i8, ptr %63, i64 -40 + %.cast = inttoptr i64 %.sroa.011.0.copyload4450 to ptr %66 = load ptr, ptr %65, align 8, !tbaa !574 - %67 = icmp ne ptr %66, %17 + %67 = icmp ne ptr %66, %.cast %68 = getelementptr i8, ptr %63, i64 -32 %69 = zext i1 %67 to i8 store i8 %69, ptr %68, align 8, !tbaa !837 @@ -38946,13 +38948,13 @@ common.ret: ; preds = %91, %92, %50, %53, %61 = load i64, ptr %60, align 8, !tbaa !13 %62 = load ptr, ptr %0, align 8, !tbaa !822 %63 = getelementptr inbounds nuw %"class.std::__cxx11::sub_match", ptr %62, i64 %61 - %.sroa.0.0.copyload.i = load ptr, ptr %63, align 8, !tbaa !574 + %.sroa.0.0.copyload.i = load i64, ptr %63, align 8, !tbaa !574 %64 = load i64, ptr %11, align 8, !tbaa !574 store i64 %64, ptr %63, align 8, !tbaa !574 %65 = getelementptr inbounds nuw i8, ptr %17, i64 8 %66 = load i64, ptr %65, align 8, !tbaa !269 tail call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %66) - store ptr %.sroa.0.0.copyload.i, ptr %63, align 8, !tbaa !574 + store i64 %.sroa.0.0.copyload.i, ptr %63, align 8, !tbaa !574 br label %common.ret 67: ; preds = %.lr.ph @@ -39406,7 +39408,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8, !tbaa !837, !range !81, !noundef !82 %16 = trunc nuw i8 %15 to i1 - br i1 %16, label %17, label %50 + br i1 %16, label %17, label %51 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -39454,7 +39456,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato store ptr %33, ptr %36, align 8, !tbaa !257 %37 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) call void @llvm.lifetime.end.p0(ptr nonnull %4) - br i1 %37, label %41, label %50 + br i1 %37, label %41, label %51 38: ; preds = %27 %39 = getelementptr inbounds nuw i8, ptr %.sroa.017.023, i64 1 @@ -39463,26 +39465,27 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato br i1 %.not, label %.critedge, label %27, !llvm.loop !909 41: ; preds = %.critedge - %42 = load ptr, ptr %18, align 8, !tbaa !574 + %42 = load ptr, ptr %18, align 8 %.not21 = icmp eq ptr %.sroa.017.0.lcssa, %42 - br i1 %.not21, label %47, label %43 + br i1 %.not21, label %48, label %43 43: ; preds = %41 - %44 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + %44 = ptrtoint ptr %42 to i64 + %45 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + store i64 %45, ptr %18, align 8, !tbaa !574 + %46 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %47 = load i64, ptr %46, align 8, !tbaa !269 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %47) store i64 %44, ptr %18, align 8, !tbaa !574 - %45 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %46 = load i64, ptr %45, align 8, !tbaa !269 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %46) - store ptr %42, ptr %18, align 8, !tbaa !574 - br label %50 + br label %51 -47: ; preds = %41 - %48 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %49 = load i64, ptr %48, align 8, !tbaa !269 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %49) - br label %50 +48: ; preds = %41 + %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %50 = load i64, ptr %49, align 8, !tbaa !269 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %50) + br label %51 -50: ; preds = %.critedge, %47, %43, %3 +51: ; preds = %.critedge, %48, %43, %3 ret void } @@ -40605,13 +40608,13 @@ common.ret: ; preds = %121, %_ZNKSt8__deta %77 = load i64, ptr %76, align 8, !tbaa !13 %78 = load ptr, ptr %0, align 8, !tbaa !822 %79 = getelementptr inbounds nuw %"class.std::__cxx11::sub_match", ptr %78, i64 %77 - %.sroa.0.0.copyload.i = load ptr, ptr %79, align 8, !tbaa !574 + %.sroa.0.0.copyload.i = load i64, ptr %79, align 8, !tbaa !574 %80 = load i64, ptr %7, align 8, !tbaa !574 store i64 %80, ptr %79, align 8, !tbaa !574 %81 = getelementptr inbounds nuw i8, ptr %12, i64 8 %82 = load i64, ptr %81, align 8, !tbaa !269 tail call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %82) - store ptr %.sroa.0.0.copyload.i, ptr %79, align 8, !tbaa !574 + store i64 %.sroa.0.0.copyload.i, ptr %79, align 8, !tbaa !574 br label %common.ret 83: ; preds = %tailrecurse @@ -40821,7 +40824,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8, !tbaa !837, !range !81, !noundef !82 %16 = trunc nuw i8 %15 to i1 - br i1 %16, label %17, label %50 + br i1 %16, label %17, label %51 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -40869,7 +40872,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato store ptr %33, ptr %36, align 8, !tbaa !257 %37 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) call void @llvm.lifetime.end.p0(ptr nonnull %4) - br i1 %37, label %41, label %50 + br i1 %37, label %41, label %51 38: ; preds = %27 %39 = getelementptr inbounds nuw i8, ptr %.sroa.017.023, i64 1 @@ -40878,26 +40881,27 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato br i1 %.not, label %.critedge, label %27, !llvm.loop !918 41: ; preds = %.critedge - %42 = load ptr, ptr %18, align 8, !tbaa !574 + %42 = load ptr, ptr %18, align 8 %.not21 = icmp eq ptr %.sroa.017.0.lcssa, %42 - br i1 %.not21, label %47, label %43 + br i1 %.not21, label %48, label %43 43: ; preds = %41 - %44 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + %44 = ptrtoint ptr %42 to i64 + %45 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + store i64 %45, ptr %18, align 8, !tbaa !574 + %46 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %47 = load i64, ptr %46, align 8, !tbaa !269 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %47) store i64 %44, ptr %18, align 8, !tbaa !574 - %45 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %46 = load i64, ptr %45, align 8, !tbaa !269 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %46) - store ptr %42, ptr %18, align 8, !tbaa !574 - br label %50 + br label %51 -47: ; preds = %41 - %48 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %49 = load i64, ptr %48, align 8, !tbaa !269 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %49) - br label %50 +48: ; preds = %41 + %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %50 = load i64, ptr %49, align 8, !tbaa !269 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %50) + br label %51 -50: ; preds = %.critedge, %47, %43, %3 +51: ; preds = %.critedge, %48, %43, %3 ret void } @@ -49203,10 +49207,10 @@ _ZNK8nlohmann16json_abi_v3_11_310basic_jsonINS0_11ordered_mapESt6vectorNSt7__cxx store i8 %3, ptr %0, align 8, !tbaa !199 store i8 %14, ptr %1, align 1, !tbaa !199 %15 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %.sroa.0.0.copyload.i = load ptr, ptr %15, align 8, !tbaa !13 + %.sroa.0.0.copyload.i = load i64, ptr %15, align 8, !tbaa !13 %16 = load i64, ptr %4, align 8, !tbaa !13 store i64 %16, ptr %15, align 8, !tbaa !13 - store ptr %.sroa.0.0.copyload.i, ptr %4, align 8, !tbaa !13 + store i64 %.sroa.0.0.copyload.i, ptr %4, align 8, !tbaa !13 %17 = load i8, ptr %0, align 8, !tbaa !170 %.not.i1 = icmp eq i8 %17, 1 %18 = load ptr, ptr %15, align 8 diff --git a/bench/llvm/optimized/AttributorAttributes.ll b/bench/llvm/optimized/AttributorAttributes.ll index ea312c96438..a2b0dc24c92 100644 --- a/bench/llvm/optimized/AttributorAttributes.ll +++ b/bench/llvm/optimized/AttributorAttributes.ll @@ -97559,7 +97559,7 @@ _ZN4llvm23SmallVectorTemplateBaseIN12_GLOBAL__N_121AAPotentialValuesImpl8ItemInf br i1 %spec.select.i.i.i.i.i.i.i.i.i87.i, label %435, label %.thread.i.i 435: ; preds = %.thread161.i.thread - %.sroa.0148.0.copyload.i = load ptr, ptr %50, align 8 + %.sroa.0148.0.copyload.i = load i64, ptr %50, align 8 %436 = getelementptr inbounds i8, ptr %212, i64 -64 %437 = load ptr, ptr %436, align 8, !tbaa !177 %438 = getelementptr inbounds i8, ptr %212, i64 -32 @@ -97569,7 +97569,7 @@ _ZN4llvm23SmallVectorTemplateBaseIN12_GLOBAL__N_121AAPotentialValuesImpl8ItemInf %442 = and i16 %441, 63 %443 = zext nneg i16 %442 to i32 call void @llvm.lifetime.start.p0(ptr nonnull %45) - store ptr %.sroa.0148.0.copyload.i, ptr %45, align 8 + store i64 %.sroa.0148.0.copyload.i, ptr %45, align 8 store ptr %.sroa.2.0.copyload.i, ptr %.sroa.4142.0..sroa_idx.i, align 8 store i8 %.sroa.3149.0.copyload.i, ptr %.sroa.7.0..sroa_idx.i, align 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.11.0..sroa_idx.i, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.4150.0..sroa_idx.i, i64 7, i1 false) @@ -176646,14 +176646,17 @@ _ZNK4llvm10IRPosition14getAnchorScopeEv.exit: ; preds = %_ZNK4llvm10IRPositi %.sroa.6.0.extract.shift8 = lshr i16 %19, 8 %.sroa.6.0.v = select i1 %or.cond, i16 %.sroa.6.0.extract.shift8, i16 %.sroa.6.0.extract.shift %.sroa.0.0 = select i1 %or.cond, i16 %19, i16 %20 + %.sroa.0.0.insert.ext = zext i16 %19 to i32 %.sroa.6.0.insert.shift = shl nuw i16 %.sroa.6.0.v, 8 - %.sroa.0.0.insert.ext = and i16 %.sroa.0.0, 255 - %.sroa.0.0.insert.insert = or disjoint i16 %.sroa.6.0.insert.shift, %.sroa.0.0.insert.ext + %.sroa.0.0.insert.ext6 = and i16 %.sroa.0.0, 255 + %.sroa.0.0.insert.insert = or disjoint i16 %.sroa.6.0.insert.shift, %.sroa.0.0.insert.ext6 + %.sroa.0.2.insert.ext = zext i16 %.sroa.0.0.insert.insert to i32 + %.sroa.0.2.insert.shift = shl nuw i32 %.sroa.0.2.insert.ext, 16 + %.sroa.0.2.insert.insert = or disjoint i32 %.sroa.0.2.insert.shift, %.sroa.0.0.insert.ext %24 = getelementptr inbounds nuw i8, ptr %0, i64 88 - store i16 %19, ptr %24, align 8 - %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 90 - store i16 %.sroa.0.0.insert.insert, ptr %.sroa.4.0..sroa_idx, align 2 - %.not.i = icmp ne i16 %.sroa.6.0.extract.shift8, 3 + store i32 %.sroa.0.2.insert.insert, ptr %24, align 8 + %.mask = and i16 %19, -256 + %.not.i = icmp ne i16 %.mask, 768 %25 = and i16 %19, 255 %.not1.i = icmp ne i16 %25, 3 %or.cond.i.not15 = and i1 %.not.i, %.not1.i diff --git a/bench/llvm/optimized/CVSymbolVisitor.ll b/bench/llvm/optimized/CVSymbolVisitor.ll index d8af1601b2c..b32f7227096 100644 --- a/bench/llvm/optimized/CVSymbolVisitor.ll +++ b/bench/llvm/optimized/CVSymbolVisitor.ll @@ -4454,7 +4454,7 @@ _ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE9getLengt br label %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i _ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i: ; preds = %49, %46, %_ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE9getLengthEv.exit.i - %.sroa.9.16.copyload = load ptr, ptr %11, align 8 + %.sroa.9.16.copyload = load i64, ptr %11, align 8 %.sroa.11.16.copyload = load i64, ptr %13, align 8 %.sroa.13.16.copyload = load i64, ptr %14, align 8 %.sroa.15.16.copyload = load i8, ptr %12, align 8 @@ -4473,85 +4473,86 @@ _ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i: ; preds = %49, %46, %_ZNK4llvm _ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE10drop_frontEm.exit: ; preds = %52, %28, %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i %.sroa.016.1 = phi ptr [ null, %28 ], [ %41, %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i ], [ %41, %52 ] %.sroa.6.1 = phi ptr [ null, %28 ], [ %42, %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i ], [ %42, %52 ] - %56 = phi ptr [ null, %28 ], [ %.sroa.9.16.copyload, %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i ], [ %.sroa.9.16.copyload, %52 ] + %.sroa.9.1 = phi i64 [ 0, %28 ], [ %.sroa.9.16.copyload, %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i ], [ %.sroa.9.16.copyload, %52 ] %.sroa.11.1 = phi i64 [ 0, %28 ], [ %.sroa.11.16.copyload, %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i ], [ %53, %52 ] - %57 = phi i64 [ 0, %28 ], [ %.sroa.13.16.copyload, %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i ], [ %spec.select, %52 ] + %56 = phi i64 [ 0, %28 ], [ %.sroa.13.16.copyload, %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i ], [ %spec.select, %52 ] %.sroa.15.1 = phi i8 [ 0, %28 ], [ %.sroa.15.16.copyload, %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i ], [ %spec.select32, %52 ] store ptr %.sroa.016.1, ptr %10, align 8, !tbaa !407 - %58 = load ptr, ptr %15, align 8, !tbaa !173 + %57 = load ptr, ptr %15, align 8, !tbaa !173 store ptr %.sroa.6.1, ptr %15, align 8, !tbaa !173 - %.not.i.i.i.i.i.i3 = icmp eq ptr %58, null - br i1 %.not.i.i.i.i.i.i3, label %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit, label %59 - -59: ; preds = %_ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE10drop_frontEm.exit - %60 = getelementptr inbounds nuw i8, ptr %58, i64 8 - %61 = load atomic i64, ptr %60 acquire, align 8 - %62 = icmp eq i64 %61, 4294967297 - %63 = trunc i64 %61 to i32 - br i1 %62, label %64, label %72 - -64: ; preds = %59 - store i32 0, ptr %60, align 8, !tbaa !174 - %65 = getelementptr inbounds nuw i8, ptr %58, i64 12 - store i32 0, ptr %65, align 4, !tbaa !176 - %66 = load ptr, ptr %58, align 8, !tbaa !10 - %67 = getelementptr inbounds nuw i8, ptr %66, i64 16 - %68 = load ptr, ptr %67, align 8 - call void %68(ptr noundef nonnull align 8 dereferenceable(16) %58) #15 - %69 = load ptr, ptr %58, align 8, !tbaa !10 - %70 = getelementptr inbounds nuw i8, ptr %69, i64 24 - %71 = load ptr, ptr %70, align 8 - call void %71(ptr noundef nonnull align 8 dereferenceable(16) %58) #15 + %.not.i.i.i.i.i.i3 = icmp eq ptr %57, null + br i1 %.not.i.i.i.i.i.i3, label %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit, label %58 + +58: ; preds = %_ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE10drop_frontEm.exit + %59 = getelementptr inbounds nuw i8, ptr %57, i64 8 + %60 = load atomic i64, ptr %59 acquire, align 8 + %61 = icmp eq i64 %60, 4294967297 + %62 = trunc i64 %60 to i32 + br i1 %61, label %63, label %71 + +63: ; preds = %58 + store i32 0, ptr %59, align 8, !tbaa !174 + %64 = getelementptr inbounds nuw i8, ptr %57, i64 12 + store i32 0, ptr %64, align 4, !tbaa !176 + %65 = load ptr, ptr %57, align 8, !tbaa !10 + %66 = getelementptr inbounds nuw i8, ptr %65, i64 16 + %67 = load ptr, ptr %66, align 8 + call void %67(ptr noundef nonnull align 8 dereferenceable(16) %57) #15 + %68 = load ptr, ptr %57, align 8, !tbaa !10 + %69 = getelementptr inbounds nuw i8, ptr %68, i64 24 + %70 = load ptr, ptr %69, align 8 + call void %70(ptr noundef nonnull align 8 dereferenceable(16) %57) #15 br label %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit -72: ; preds = %59 - %73 = load i8, ptr @__libc_single_threaded, align 1, !tbaa !177 - %.not.i.i.i.i.i.i.i4 = icmp eq i8 %73, 0 - br i1 %.not.i.i.i.i.i.i.i4, label %76, label %74 +71: ; preds = %58 + %72 = load i8, ptr @__libc_single_threaded, align 1, !tbaa !177 + %.not.i.i.i.i.i.i.i4 = icmp eq i8 %72, 0 + br i1 %.not.i.i.i.i.i.i.i4, label %75, label %73 -74: ; preds = %72 - %75 = add nsw i32 %63, -1 - store i32 %75, ptr %60, align 4, !tbaa !178 +73: ; preds = %71 + %74 = add nsw i32 %62, -1 + store i32 %74, ptr %59, align 4, !tbaa !178 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i -76: ; preds = %72 - %77 = atomicrmw volatile add ptr %60, i32 -1 acq_rel, align 4 +75: ; preds = %71 + %76 = atomicrmw volatile add ptr %59, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i -_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i: ; preds = %76, %74 - %.0.i.i.i.i.i.i.i.i = phi i32 [ %63, %74 ], [ %77, %76 ] - %78 = icmp eq i32 %.0.i.i.i.i.i.i.i.i, 1 - br i1 %78, label %79, label %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit, !prof !179 +_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i: ; preds = %75, %73 + %.0.i.i.i.i.i.i.i.i = phi i32 [ %62, %73 ], [ %76, %75 ] + %77 = icmp eq i32 %.0.i.i.i.i.i.i.i.i, 1 + br i1 %77, label %78, label %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit, !prof !179 -79: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.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) %58) #15 +78: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.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) %57) #15 br label %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit -_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit: ; preds = %79, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i, %64, %_ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE10drop_frontEm.exit - store ptr %56, ptr %11, align 8 +_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit: ; preds = %78, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i, %63, %_ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE10drop_frontEm.exit + store i64 %.sroa.9.1, ptr %11, align 8 store i64 %.sroa.11.1, ptr %13, align 8 - store i64 %57, ptr %14, align 8 + store i64 %56, ptr %14, align 8 store i8 %.sroa.15.1, ptr %12, align 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.16.16..sroa_idx, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.16, i64 7, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.16) - %80 = trunc nuw i8 %.sroa.15.1 to i1 - br i1 %80, label %_ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE9getLengthEv.exit, label %81 + %79 = trunc nuw i8 %.sroa.15.1 to i1 + %80 = inttoptr i64 %.sroa.9.1 to ptr + br i1 %79, label %_ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE9getLengthEv.exit, label %81 81: ; preds = %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit - %.not.i5 = icmp eq ptr %56, null + %.not.i5 = icmp eq i64 %.sroa.9.1, 0 br i1 %.not.i5, label %_ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE9getLengthEv.exit.thread, label %82 82: ; preds = %81 - %83 = load ptr, ptr %56, align 8, !tbaa !10 + %83 = load ptr, ptr %80, align 8, !tbaa !10 %84 = getelementptr inbounds nuw i8, ptr %83, i64 40 %85 = load ptr, ptr %84, align 8 - %86 = call noundef i64 %85(ptr noundef nonnull align 8 dereferenceable(8) %56) #15 + %86 = call noundef i64 %85(ptr noundef nonnull align 8 dereferenceable(8) %80) #15 %87 = load i64, ptr %13, align 8, !tbaa !296 %88 = sub i64 %86, %87 br label %_ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE9getLengthEv.exit _ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE9getLengthEv.exit: ; preds = %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit, %82 - %.0.i = phi i64 [ %88, %82 ], [ %57, %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit ] + %.0.i = phi i64 [ %88, %82 ], [ %56, %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit ] %89 = icmp eq i64 %.0.i, 0 br i1 %89, label %_ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE9getLengthEv.exit.thread, label %90 diff --git a/bench/llvm/optimized/LivePhysRegs.ll b/bench/llvm/optimized/LivePhysRegs.ll index a62d0d272c3..f4ebc24a884 100644 --- a/bench/llvm/optimized/LivePhysRegs.ll +++ b/bench/llvm/optimized/LivePhysRegs.ll @@ -869,6 +869,7 @@ _ZN4llvm21iterator_adaptor_baseINS_20filter_iterator_baseINS_21ConstMIBundleOper br label %_ZN4llvm20filter_iterator_implINS_21ConstMIBundleOperandsEPFbRKNS_14MachineOperandEESt20forward_iterator_tagEC2ES1_S1_S6_.exit.split109.i, !llvm.loop !64 _ZN4llvm17make_filter_rangeINS_14iterator_rangeINS_21ConstMIBundleOperandsEEEPFbRKNS_14MachineOperandEEEENS1_INS_20filter_iterator_implIDTcl9adl_beginclsr3stdE7declvalIRT_EEEET0_NS_6detail15fwd_or_bidi_tagISC_E4typeEEEEEOSA_SD_.exit: ; preds = %_ZNK4llvm20iterator_facade_baseINS_27MIBundleOperandIteratorBaseIKNS_14MachineOperandEEESt20forward_iterator_tagS3_lPS3_RS3_EneERKS4_.exit.thread.i.i.i8.i, %85, %_ZZN4llvm19phys_regs_and_masksERKNS_12MachineInstrEENUlRKNS_14MachineOperandEE_8__invokeES5_.exit + %119 = ptrtoint ptr %13 to i64 store ptr %.sroa.037.0.i, ptr %0, align 8, !alias.scope !73 %.sroa.466.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %13, ptr %.sroa.466.0..sroa_idx.i, align 8, !alias.scope !73 @@ -879,15 +880,15 @@ _ZN4llvm17make_filter_rangeINS_14iterator_rangeINS_21ConstMIBundleOperandsEEEPFb %.sroa.769.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 32 store ptr %13, ptr %.sroa.769.0..sroa_idx.i, align 8, !alias.scope !73 %.sroa.870.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 40 - store ptr %13, ptr %.sroa.870.0..sroa_idx.i, align 8, !alias.scope !73 + store i64 %119, ptr %.sroa.870.0..sroa_idx.i, align 8, !alias.scope !73 %.sroa.9.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 48 store ptr %48, ptr %.sroa.9.0..sroa_idx.i, align 8, !alias.scope !73 %.sroa.10.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 56 store ptr %48, ptr %.sroa.10.0..sroa_idx.i, align 8, !alias.scope !73 %.sroa.11.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 64 store ptr @_ZZN4llvm19phys_regs_and_masksERKNS_12MachineInstrEENUlRKNS_14MachineOperandEE_8__invokeES5_, ptr %.sroa.11.0..sroa_idx.i, align 8, !alias.scope !73 - %119 = getelementptr inbounds nuw i8, ptr %0, i64 72 - store ptr %.sroa.026.0.i, ptr %119, align 8, !alias.scope !73 + %120 = getelementptr inbounds nuw i8, ptr %0, i64 72 + store ptr %.sroa.026.0.i, ptr %120, align 8, !alias.scope !73 %.sroa.472.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 80 store ptr %13, ptr %.sroa.472.0..sroa_idx.i, align 8, !alias.scope !73 %.sroa.573.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 88 @@ -897,7 +898,7 @@ _ZN4llvm17make_filter_rangeINS_14iterator_rangeINS_21ConstMIBundleOperandsEEEPFb %.sroa.775.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 104 store ptr %13, ptr %.sroa.775.0..sroa_idx.i, align 8, !alias.scope !73 %.sroa.876.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 112 - store ptr %13, ptr %.sroa.876.0..sroa_idx.i, align 8, !alias.scope !73 + store i64 %119, ptr %.sroa.876.0..sroa_idx.i, align 8, !alias.scope !73 %.sroa.977.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 120 store ptr %48, ptr %.sroa.977.0..sroa_idx.i, align 8, !alias.scope !73 %.sroa.1078.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 128 diff --git a/bench/lvgl/optimized/lv_area.ll b/bench/lvgl/optimized/lv_area.ll index d8a5e20720c..611f80ca6a3 100644 --- a/bench/lvgl/optimized/lv_area.ll +++ b/bench/lvgl/optimized/lv_area.ll @@ -1382,19 +1382,19 @@ define void @lv_point_precise_set(ptr noundef writeonly captures(none) initializ ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable define void @lv_point_swap(ptr noundef captures(none) %0, ptr noundef captures(none) %1) local_unnamed_addr #1 { - %3 = load i64, ptr %0, align 4 - %4 = load i64, ptr %1, align 4 - store i64 %4, ptr %0, align 4 - store i64 %3, ptr %1, align 4 + %.sroa.0.0.copyload = load i64, ptr %0, align 4 + %3 = load i64, ptr %1, align 4 + store i64 %3, ptr %0, align 4 + store i64 %.sroa.0.0.copyload, ptr %1, align 4 ret void } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable define void @lv_point_precise_swap(ptr noundef captures(none) %0, ptr noundef captures(none) %1) local_unnamed_addr #1 { - %3 = load i64, ptr %0, align 4 - %4 = load i64, ptr %1, align 4 - store i64 %4, ptr %0, align 4 - store i64 %3, ptr %1, align 4 + %.sroa.0.0.copyload = load i64, ptr %0, align 4 + %3 = load i64, ptr %1, align 4 + store i64 %3, ptr %0, align 4 + store i64 %.sroa.0.0.copyload, ptr %1, align 4 ret void } diff --git a/bench/mini-lsm-rs/optimized/4vkix0mjdn2idd4b.ll b/bench/mini-lsm-rs/optimized/4vkix0mjdn2idd4b.ll index be41e2e61d2..26f6339f0fd 100644 --- a/bench/mini-lsm-rs/optimized/4vkix0mjdn2idd4b.ll +++ b/bench/mini-lsm-rs/optimized/4vkix0mjdn2idd4b.ll @@ -8984,9 +8984,7 @@ define internal fastcc noundef nonnull ptr @"_ZN4moka9sync_base10base_cache26Bas %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %2, i64 16 store ptr %22, ptr %.sroa.2.0..sroa_idx.i, align 8 %.sroa.3.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %2, i64 24 - store i8 0, ptr %.sroa.3.0..sroa_idx.i, align 8 - %.sroa.3.sroa.2.0..sroa.3.0..sroa_idx.sroa_idx.i = getelementptr inbounds nuw i8, ptr %2, i64 32 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.3.sroa.2.0..sroa.3.0..sroa_idx.sroa_idx.i, i8 0, i64 16, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.3.0..sroa_idx.i, i8 0, i64 24, i1 false) %27 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !2266 %28 = tail call noundef align 8 dereferenceable_or_null(48) ptr @__rust_alloc(i64 noundef 48, i64 noundef 8) #23, !noalias !2266 %29 = icmp eq ptr %28, null diff --git a/bench/miniaudio/optimized/unity.ll b/bench/miniaudio/optimized/unity.ll index 4e5057ce0c4..63eaeb4e9da 100644 --- a/bench/miniaudio/optimized/unity.ll +++ b/bench/miniaudio/optimized/unity.ll @@ -24074,13 +24074,13 @@ cdce.end.i.i: ; preds = %cdce.call, %19 %28 = fsub double 0x3FF921FB54442D18, %24 %29 = tail call double @llvm.fabs.f64(double %28) %30 = fcmp oeq double %29, 0x7FF0000000000000 - br i1 %30, label %cdce.call13, label %cdce.end10.i.i, !prof !481 + br i1 %30, label %cdce.call12, label %cdce.end10.i.i, !prof !481 -cdce.call13: ; preds = %cdce.end.i.i +cdce.call12: ; preds = %cdce.end.i.i %31 = tail call double @sin(double noundef %28) #66, !tbaa !3, !noalias !591 br label %cdce.end10.i.i -cdce.end10.i.i: ; preds = %cdce.call13, %cdce.end.i.i +cdce.end10.i.i: ; preds = %cdce.call12, %cdce.end.i.i %32 = icmp eq i32 %21, 0 br i1 %32, label %ma_bpf_get_heap_layout.exit.thread, label %33 @@ -79461,7 +79461,7 @@ define void @ma_data_source_node_config_init(ptr dead_on_unwind noalias writable ma_zero_memory_default.exit: %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 20 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %.sroa.7.0..sroa_idx, i8 0, i64 20, i1 false) - store ptr null, ptr %0, align 8, !tbaa !27 + store i64 0, ptr %0, align 8, !tbaa !27 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store i32 0, ptr %.sroa.4.0..sroa_idx, align 8, !tbaa !3 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 12 @@ -79616,7 +79616,7 @@ define void @ma_splitter_node_config_init(ptr dead_on_unwind noalias writable wr ma_zero_memory_default.exit: %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 20 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %.sroa.7.0..sroa_idx, i8 0, i64 20, i1 false) - store ptr null, ptr %0, align 8, !tbaa !27 + store i64 0, ptr %0, align 8, !tbaa !27 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store i32 0, ptr %.sroa.4.0..sroa_idx, align 8, !tbaa !3 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 12 @@ -79701,7 +79701,7 @@ define void @ma_splitter_node_uninit(ptr noundef readonly captures(address_is_nu define void @ma_biquad_node_config_init(ptr dead_on_unwind noalias writable writeonly sret(%struct.ma_biquad_node_config) align 8 captures(none) initializes((0, 96)) %0, i32 noundef %1, float noundef %2, float noundef %3, float noundef %4, float noundef %5, float noundef %6, float noundef %7) local_unnamed_addr #0 { %.sroa.710.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 20 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %.sroa.710.0..sroa_idx, i8 0, i64 20, i1 false) - store ptr null, ptr %0, align 8, !tbaa !27 + store i64 0, ptr %0, align 8, !tbaa !27 %.sroa.47.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store i32 0, ptr %.sroa.47.0..sroa_idx, align 8, !tbaa !3 %.sroa.58.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 12 @@ -79902,7 +79902,7 @@ ma_biquad_uninit.exit: ; preds = %17, %15, %12, %7, % define void @ma_lpf_node_config_init(ptr dead_on_unwind noalias writable writeonly sret(%struct.ma_lpf_node_config) align 8 captures(none) initializes((0, 72)) %0, i32 noundef %1, i32 noundef %2, double noundef %3, i32 noundef %4) local_unnamed_addr #0 { %.sroa.77.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 20 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %.sroa.77.0..sroa_idx, i8 0, i64 20, i1 false) - store ptr null, ptr %0, align 8, !tbaa !27 + store i64 0, ptr %0, align 8, !tbaa !27 %.sroa.45.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store i32 0, ptr %.sroa.45.0..sroa_idx, align 8, !tbaa !3 %.sroa.56.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 12 @@ -80009,7 +80009,7 @@ define void @ma_lpf_node_uninit(ptr noundef readonly captures(address_is_null) % define void @ma_hpf_node_config_init(ptr dead_on_unwind noalias writable writeonly sret(%struct.ma_hpf_node_config) align 8 captures(none) initializes((0, 72)) %0, i32 noundef %1, i32 noundef %2, double noundef %3, i32 noundef %4) local_unnamed_addr #0 { %.sroa.77.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 20 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %.sroa.77.0..sroa_idx, i8 0, i64 20, i1 false) - store ptr null, ptr %0, align 8, !tbaa !27 + store i64 0, ptr %0, align 8, !tbaa !27 %.sroa.45.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store i32 0, ptr %.sroa.45.0..sroa_idx, align 8, !tbaa !3 %.sroa.56.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 12 @@ -80116,7 +80116,7 @@ define void @ma_hpf_node_uninit(ptr noundef readonly captures(address_is_null) % define void @ma_bpf_node_config_init(ptr dead_on_unwind noalias writable writeonly sret(%struct.ma_bpf_node_config) align 8 captures(none) initializes((0, 72)) %0, i32 noundef %1, i32 noundef %2, double noundef %3, i32 noundef %4) local_unnamed_addr #0 { %.sroa.77.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 20 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %.sroa.77.0..sroa_idx, i8 0, i64 20, i1 false) - store ptr null, ptr %0, align 8, !tbaa !27 + store i64 0, ptr %0, align 8, !tbaa !27 %.sroa.45.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store i32 0, ptr %.sroa.45.0..sroa_idx, align 8, !tbaa !3 %.sroa.56.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 12 @@ -80224,7 +80224,7 @@ define void @ma_notch_node_config_init(ptr dead_on_unwind noalias writable write ma_notch2_config_init.exit: %.sroa.76.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 20 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %.sroa.76.0..sroa_idx, i8 0, i64 20, i1 false) - store ptr null, ptr %0, align 8, !tbaa !27 + store i64 0, ptr %0, align 8, !tbaa !27 %.sroa.44.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store i32 0, ptr %.sroa.44.0..sroa_idx, align 8, !tbaa !3 %.sroa.5.0..sroa_idx5 = getelementptr inbounds nuw i8, ptr %0, i64 12 @@ -80356,7 +80356,7 @@ define void @ma_peak_node_config_init(ptr dead_on_unwind noalias writable writeo ma_peak2_config_init.exit: %.sroa.77.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 20 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %.sroa.77.0..sroa_idx, i8 0, i64 20, i1 false) - store ptr null, ptr %0, align 8, !tbaa !27 + store i64 0, ptr %0, align 8, !tbaa !27 %.sroa.45.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store i32 0, ptr %.sroa.45.0..sroa_idx, align 8, !tbaa !3 %.sroa.5.0..sroa_idx6 = getelementptr inbounds nuw i8, ptr %0, i64 12 @@ -80493,7 +80493,7 @@ ma_peak2_uninit.exit: ; preds = %17, %15, %12, %7, % define void @ma_loshelf_node_config_init(ptr dead_on_unwind noalias writable writeonly sret(%struct.ma_loshelf_node_config) align 8 captures(none) initializes((0, 80)) %0, i32 noundef %1, i32 noundef %2, double noundef %3, double noundef %4, double noundef %5) local_unnamed_addr #0 { %.sroa.77.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 20 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %.sroa.77.0..sroa_idx, i8 0, i64 20, i1 false) - store ptr null, ptr %0, align 8, !tbaa !27 + store i64 0, ptr %0, align 8, !tbaa !27 %.sroa.45.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store i32 0, ptr %.sroa.45.0..sroa_idx, align 8, !tbaa !3 %.sroa.5.0..sroa_idx6 = getelementptr inbounds nuw i8, ptr %0, i64 12 @@ -80624,7 +80624,7 @@ ma_loshelf2_uninit.exit: ; preds = %17, %15, %12, %7, % define void @ma_hishelf_node_config_init(ptr dead_on_unwind noalias writable writeonly sret(%struct.ma_hishelf_node_config) align 8 captures(none) initializes((0, 80)) %0, i32 noundef %1, i32 noundef %2, double noundef %3, double noundef %4, double noundef %5) local_unnamed_addr #0 { %.sroa.77.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 20 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %.sroa.77.0..sroa_idx, i8 0, i64 20, i1 false) - store ptr null, ptr %0, align 8, !tbaa !27 + store i64 0, ptr %0, align 8, !tbaa !27 %.sroa.45.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store i32 0, ptr %.sroa.45.0..sroa_idx, align 8, !tbaa !3 %.sroa.5.0..sroa_idx6 = getelementptr inbounds nuw i8, ptr %0, i64 12 @@ -80755,7 +80755,7 @@ ma_hishelf2_uninit.exit: ; preds = %17, %15, %12, %7, % define void @ma_delay_node_config_init(ptr dead_on_unwind noalias writable writeonly sret(%struct.ma_delay_node_config) align 8 captures(none) initializes((0, 68)) %0, i32 noundef %1, i32 noundef %2, i32 noundef %3, float noundef %4) local_unnamed_addr #0 { %.sroa.77.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 20 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %.sroa.77.0..sroa_idx, i8 0, i64 20, i1 false) - store ptr null, ptr %0, align 8, !tbaa !27 + store i64 0, ptr %0, align 8, !tbaa !27 %.sroa.44.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store i32 0, ptr %.sroa.44.0..sroa_idx, align 8, !tbaa !3 %.sroa.55.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 12 diff --git a/bench/mold/optimized/cmdline.cc.X86_64.ll b/bench/mold/optimized/cmdline.cc.X86_64.ll index 1e4578330f3..d2579ec4049 100644 --- a/bench/mold/optimized/cmdline.cc.X86_64.ll +++ b/bench/mold/optimized/cmdline.cc.X86_64.ll @@ -27854,28 +27854,28 @@ _ZN3tbb6detail2d113segment_tableISt10unique_ptrIN4mold10MappedFileESt14default_d br i1 %48, label %.lr.ph.preheader, label %_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EEZNS1_18spin_wait_while_eqIS9_S9_EET_RKSt6atomicISB_ET0_St12memory_orderEUlS9_E_EESB_SF_SG_SH_.exit .lr.ph.preheader: ; preds = %46, %44, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EENS1_23cache_aligned_allocatorIS8_EENS1_17concurrent_vectorIS8_SA_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS8_Emm.exit - %.0111 = phi ptr [ %1, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EENS1_23cache_aligned_allocatorIS8_EENS1_17concurrent_vectorIS8_SA_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS8_Emm.exit ], [ %.0.i.i.i.i.i, %46 ], [ %38, %44 ] + %.0110 = phi ptr [ %1, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EENS1_23cache_aligned_allocatorIS8_EENS1_17concurrent_vectorIS8_SA_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS8_Emm.exit ], [ %.0.i.i.i.i.i, %46 ], [ %38, %44 ] br label %.lr.ph .preheader: ; preds = %.lr.ph %invariant.umin = tail call i64 @llvm.umin.i64(i64 %6, i64 3) - br label %.lr.ph99 + br label %.lr.ph98 .lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph - %.01197 = phi i64 [ %50, %.lr.ph ], [ 1, %.lr.ph.preheader ] - %49 = getelementptr inbounds nuw %"struct.std::atomic.154", ptr %.0111, i64 %.01197 + %.01196 = phi i64 [ %50, %.lr.ph ], [ 1, %.lr.ph.preheader ] + %49 = getelementptr inbounds nuw %"struct.std::atomic.154", ptr %.0110, i64 %.01196 store atomic i64 %27, ptr %49 release, align 8 - %50 = add nuw i64 %.01197, 1 + %50 = add nuw i64 %.01196, 1 %exitcond.not = icmp eq i64 %50, %6 br i1 %exitcond.not, label %.preheader, label %.lr.ph, !llvm.loop !907 -.lr.ph99: ; preds = %.preheader, %.lr.ph99 - %.01098 = phi i64 [ %52, %.lr.ph99 ], [ 1, %.preheader ] - %51 = getelementptr inbounds nuw %"struct.std::atomic.154", ptr %31, i64 %.01098 +.lr.ph98: ; preds = %.preheader, %.lr.ph98 + %.01097 = phi i64 [ %52, %.lr.ph98 ], [ 1, %.preheader ] + %51 = getelementptr inbounds nuw %"struct.std::atomic.154", ptr %31, i64 %.01097 store atomic i64 %27, ptr %51 release, align 8 - %52 = add nuw nsw i64 %.01098, 1 - %exitcond103.not = icmp eq i64 %52, %invariant.umin - br i1 %exitcond103.not, label %_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EEZNS1_18spin_wait_while_eqIS9_S9_EET_RKSt6atomicISB_ET0_St12memory_orderEUlS9_E_EESB_SF_SG_SH_.exit, label %.lr.ph99, !llvm.loop !908 + %52 = add nuw nsw i64 %.01097, 1 + %exitcond102.not = icmp eq i64 %52, %invariant.umin + br i1 %exitcond102.not, label %_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EEZNS1_18spin_wait_while_eqIS9_S9_EET_RKSt6atomicISB_ET0_St12memory_orderEUlS9_E_EESB_SF_SG_SH_.exit, label %.lr.ph98, !llvm.loop !908 53: ; preds = %24 %54 = load ptr, ptr %0, align 8, !tbaa !899 @@ -27973,7 +27973,7 @@ _ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i29: ; preds = %_ZN3tbb6detail %95 = icmp eq i64 %94, 0 br i1 %95, label %.lr.ph.i27, label %_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EEZNS1_18spin_wait_while_eqIS9_S9_EET_RKSt6atomicISB_ET0_St12memory_orderEUlS9_E_EESB_SF_SG_SH_.exit, !llvm.loop !901 -_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EEZNS1_18spin_wait_while_eqIS9_S9_EET_RKSt6atomicISB_ET0_St12memory_orderEUlS9_E_EESB_SF_SG_SH_.exit: ; preds = %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i29, %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i, %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i18, %.lr.ph99, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EENS1_23cache_aligned_allocatorIS8_EENS1_17concurrent_vectorIS8_SA_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS8_Emm.exit, %82, %53, %55, %10, %73 +_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EEZNS1_18spin_wait_while_eqIS9_S9_EET_RKSt6atomicISB_ET0_St12memory_orderEUlS9_E_EESB_SF_SG_SH_.exit: ; preds = %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i29, %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i, %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i18, %.lr.ph98, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EENS1_23cache_aligned_allocatorIS8_EENS1_17concurrent_vectorIS8_SA_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS8_Emm.exit, %82, %53, %55, %10, %73 ret ptr null } @@ -51761,13 +51761,13 @@ common.ret: ; preds = %92, %93, %51, %54, %62 = load i64, ptr %61, align 8, !tbaa !13 %63 = load ptr, ptr %0, align 8, !tbaa !530 %64 = getelementptr inbounds nuw %"class.std::__cxx11::sub_match", ptr %63, i64 %62 - %.sroa.0.0.copyload.i = load ptr, ptr %64, align 8, !tbaa !11 + %.sroa.0.0.copyload.i = load i64, ptr %64, align 8, !tbaa !11 %65 = load i64, ptr %11, align 8, !tbaa !11 store i64 %65, ptr %64, align 8, !tbaa !11 %66 = getelementptr inbounds nuw i8, ptr %17, i64 8 %67 = load i64, ptr %66, align 8, !tbaa !967 tail call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %67) - store ptr %.sroa.0.0.copyload.i, ptr %64, align 8, !tbaa !11 + store i64 %.sroa.0.0.copyload.i, ptr %64, align 8, !tbaa !11 br label %common.ret 68: ; preds = %.lr.ph @@ -52184,7 +52184,7 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8, !tbaa !507, !range !370, !noundef !371 %16 = trunc nuw i8 %15 to i1 - br i1 %16, label %17, label %54 + br i1 %16, label %17, label %55 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -52232,7 +52232,7 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm store ptr %35, ptr %38, align 8, !tbaa !955 %39 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) call void @llvm.lifetime.end.p0(ptr nonnull %4) - br i1 %39, label %44, label %54 + br i1 %39, label %44, label %55 40: ; preds = %28 %41 = getelementptr inbounds nuw i8, ptr %.sroa.017.020, i64 1 @@ -52241,26 +52241,27 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm br i1 %43, label %.critedge, label %28, !llvm.loop !1559 44: ; preds = %.critedge - %45 = load ptr, ptr %18, align 8, !tbaa !11 + %45 = load ptr, ptr %18, align 8 %46 = icmp eq ptr %.sroa.017.0.lcssa, %45 - br i1 %46, label %51, label %47 + br i1 %46, label %52, label %47 47: ; preds = %44 - %48 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + %48 = ptrtoint ptr %45 to i64 + %49 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + store i64 %49, ptr %18, align 8, !tbaa !11 + %50 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %51 = load i64, ptr %50, align 8, !tbaa !967 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %51) store i64 %48, ptr %18, align 8, !tbaa !11 - %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %50 = load i64, ptr %49, align 8, !tbaa !967 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %50) - store ptr %45, ptr %18, align 8, !tbaa !11 - br label %54 + br label %55 -51: ; preds = %44 - %52 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %53 = load i64, ptr %52, align 8, !tbaa !967 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %53) - br label %54 +52: ; preds = %44 + %53 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %54 = load i64, ptr %53, align 8, !tbaa !967 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %54) + br label %55 -54: ; preds = %.critedge, %51, %47, %3 +55: ; preds = %.critedge, %52, %47, %3 ret void } @@ -53376,13 +53377,13 @@ common.ret: ; preds = %123, %_ZNKSt8__deta %79 = load i64, ptr %78, align 8, !tbaa !13 %80 = load ptr, ptr %0, align 8, !tbaa !530 %81 = getelementptr inbounds nuw %"class.std::__cxx11::sub_match", ptr %80, i64 %79 - %.sroa.0.0.copyload.i = load ptr, ptr %81, align 8, !tbaa !11 + %.sroa.0.0.copyload.i = load i64, ptr %81, align 8, !tbaa !11 %82 = load i64, ptr %7, align 8, !tbaa !11 store i64 %82, ptr %81, align 8, !tbaa !11 %83 = getelementptr inbounds nuw i8, ptr %12, i64 8 %84 = load i64, ptr %83, align 8, !tbaa !967 tail call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %84) - store ptr %.sroa.0.0.copyload.i, ptr %81, align 8, !tbaa !11 + store i64 %.sroa.0.0.copyload.i, ptr %81, align 8, !tbaa !11 br label %common.ret 85: ; preds = %tailrecurse @@ -53592,7 +53593,7 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8, !tbaa !507, !range !370, !noundef !371 %16 = trunc nuw i8 %15 to i1 - br i1 %16, label %17, label %54 + br i1 %16, label %17, label %55 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -53640,7 +53641,7 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm store ptr %35, ptr %38, align 8, !tbaa !955 %39 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) call void @llvm.lifetime.end.p0(ptr nonnull %4) - br i1 %39, label %44, label %54 + br i1 %39, label %44, label %55 40: ; preds = %28 %41 = getelementptr inbounds nuw i8, ptr %.sroa.017.020, i64 1 @@ -53649,26 +53650,27 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm br i1 %43, label %.critedge, label %28, !llvm.loop !1568 44: ; preds = %.critedge - %45 = load ptr, ptr %18, align 8, !tbaa !11 + %45 = load ptr, ptr %18, align 8 %46 = icmp eq ptr %.sroa.017.0.lcssa, %45 - br i1 %46, label %51, label %47 + br i1 %46, label %52, label %47 47: ; preds = %44 - %48 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + %48 = ptrtoint ptr %45 to i64 + %49 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + store i64 %49, ptr %18, align 8, !tbaa !11 + %50 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %51 = load i64, ptr %50, align 8, !tbaa !967 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %51) store i64 %48, ptr %18, align 8, !tbaa !11 - %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %50 = load i64, ptr %49, align 8, !tbaa !967 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %50) - store ptr %45, ptr %18, align 8, !tbaa !11 - br label %54 + br label %55 -51: ; preds = %44 - %52 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %53 = load i64, ptr %52, align 8, !tbaa !967 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %53) - br label %54 +52: ; preds = %44 + %53 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %54 = load i64, ptr %53, align 8, !tbaa !967 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %54) + br label %55 -54: ; preds = %.critedge, %51, %47, %3 +55: ; preds = %.critedge, %52, %47, %3 ret void } @@ -54715,28 +54717,28 @@ _ZN3tbb6detail2d113segment_tableISt10unique_ptrIA_hSt14default_deleteIS4_EENS1_2 br i1 %48, label %.lr.ph.preheader, label %_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIA_hSt14default_deleteIS4_EEZNS1_18spin_wait_while_eqIS8_S8_EET_RKSt6atomicISA_ET0_St12memory_orderEUlS8_E_EESA_SE_SF_SG_.exit .lr.ph.preheader: ; preds = %46, %44, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIA_hSt14default_deleteIS4_EENS1_23cache_aligned_allocatorIS7_EENS1_17concurrent_vectorIS7_S9_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS7_Emm.exit - %.0111 = phi ptr [ %1, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIA_hSt14default_deleteIS4_EENS1_23cache_aligned_allocatorIS7_EENS1_17concurrent_vectorIS7_S9_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS7_Emm.exit ], [ %.0.i.i.i.i.i, %46 ], [ %38, %44 ] + %.0110 = phi ptr [ %1, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIA_hSt14default_deleteIS4_EENS1_23cache_aligned_allocatorIS7_EENS1_17concurrent_vectorIS7_S9_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS7_Emm.exit ], [ %.0.i.i.i.i.i, %46 ], [ %38, %44 ] br label %.lr.ph .preheader: ; preds = %.lr.ph %invariant.umin = tail call i64 @llvm.umin.i64(i64 %6, i64 3) - br label %.lr.ph99 + br label %.lr.ph98 .lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph - %.01197 = phi i64 [ %50, %.lr.ph ], [ 1, %.lr.ph.preheader ] - %49 = getelementptr inbounds nuw %"struct.std::atomic.146", ptr %.0111, i64 %.01197 + %.01196 = phi i64 [ %50, %.lr.ph ], [ 1, %.lr.ph.preheader ] + %49 = getelementptr inbounds nuw %"struct.std::atomic.146", ptr %.0110, i64 %.01196 store atomic i64 %27, ptr %49 release, align 8 - %50 = add nuw i64 %.01197, 1 + %50 = add nuw i64 %.01196, 1 %exitcond.not = icmp eq i64 %50, %6 br i1 %exitcond.not, label %.preheader, label %.lr.ph, !llvm.loop !1578 -.lr.ph99: ; preds = %.preheader, %.lr.ph99 - %.01098 = phi i64 [ %52, %.lr.ph99 ], [ 1, %.preheader ] - %51 = getelementptr inbounds nuw %"struct.std::atomic.146", ptr %31, i64 %.01098 +.lr.ph98: ; preds = %.preheader, %.lr.ph98 + %.01097 = phi i64 [ %52, %.lr.ph98 ], [ 1, %.preheader ] + %51 = getelementptr inbounds nuw %"struct.std::atomic.146", ptr %31, i64 %.01097 store atomic i64 %27, ptr %51 release, align 8 - %52 = add nuw nsw i64 %.01098, 1 - %exitcond103.not = icmp eq i64 %52, %invariant.umin - br i1 %exitcond103.not, label %_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIA_hSt14default_deleteIS4_EEZNS1_18spin_wait_while_eqIS8_S8_EET_RKSt6atomicISA_ET0_St12memory_orderEUlS8_E_EESA_SE_SF_SG_.exit, label %.lr.ph99, !llvm.loop !1579 + %52 = add nuw nsw i64 %.01097, 1 + %exitcond102.not = icmp eq i64 %52, %invariant.umin + br i1 %exitcond102.not, label %_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIA_hSt14default_deleteIS4_EEZNS1_18spin_wait_while_eqIS8_S8_EET_RKSt6atomicISA_ET0_St12memory_orderEUlS8_E_EESA_SE_SF_SG_.exit, label %.lr.ph98, !llvm.loop !1579 53: ; preds = %24 %54 = load ptr, ptr %0, align 8, !tbaa !1571 @@ -54834,7 +54836,7 @@ _ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i29: ; preds = %_ZN3tbb6detail %95 = icmp eq i64 %94, 0 br i1 %95, label %.lr.ph.i27, label %_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIA_hSt14default_deleteIS4_EEZNS1_18spin_wait_while_eqIS8_S8_EET_RKSt6atomicISA_ET0_St12memory_orderEUlS8_E_EESA_SE_SF_SG_.exit, !llvm.loop !1572 -_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIA_hSt14default_deleteIS4_EEZNS1_18spin_wait_while_eqIS8_S8_EET_RKSt6atomicISA_ET0_St12memory_orderEUlS8_E_EESA_SE_SF_SG_.exit: ; preds = %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i29, %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i, %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i18, %.lr.ph99, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIA_hSt14default_deleteIS4_EENS1_23cache_aligned_allocatorIS7_EENS1_17concurrent_vectorIS7_S9_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS7_Emm.exit, %82, %53, %55, %10, %73 +_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIA_hSt14default_deleteIS4_EEZNS1_18spin_wait_while_eqIS8_S8_EET_RKSt6atomicISA_ET0_St12memory_orderEUlS8_E_EESA_SE_SF_SG_.exit: ; preds = %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i29, %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i, %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i18, %.lr.ph98, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIA_hSt14default_deleteIS4_EENS1_23cache_aligned_allocatorIS7_EENS1_17concurrent_vectorIS7_S9_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS7_Emm.exit, %82, %53, %55, %10, %73 ret ptr null } diff --git a/bench/nix/optimized/cgroup.ll b/bench/nix/optimized/cgroup.ll index 943fecb12b8..e31b92e5960 100644 --- a/bench/nix/optimized/cgroup.ll +++ b/bench/nix/optimized/cgroup.ll @@ -42811,13 +42811,13 @@ common.ret: ; preds = %95, %96, %51, %54, %62 = load i64, ptr %61, align 8 %63 = load ptr, ptr %0, align 8 %64 = getelementptr inbounds %"class.std::__cxx11::sub_match", ptr %63, i64 %62 - %.sroa.0.0.copyload.i = load ptr, ptr %64, align 8 + %.sroa.0.0.copyload.i = load i64, ptr %64, align 8 %65 = load i64, ptr %11, align 8 store i64 %65, ptr %64, align 8 %66 = getelementptr inbounds nuw i8, ptr %17, i64 8 %67 = load i64, ptr %66, align 8 tail call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %67) - store ptr %.sroa.0.0.copyload.i, ptr %64, align 8 + store i64 %.sroa.0.0.copyload.i, ptr %64, align 8 br label %common.ret 68: ; preds = %.lr.ph @@ -43270,7 +43270,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8 %16 = trunc i8 %15 to i1 - br i1 %16, label %17, label %54 + br i1 %16, label %17, label %55 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -43322,29 +43322,30 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %42 = getelementptr inbounds nuw i8, ptr %4, i64 8 store ptr %39, ptr %42, align 8 %43 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) - br i1 %43, label %44, label %54 + br i1 %43, label %44, label %55 44: ; preds = %.critedge %45 = load ptr, ptr %18, align 8 %46 = icmp eq ptr %.sroa.017.0.lcssa, %45 - br i1 %46, label %51, label %47 + br i1 %46, label %52, label %47 47: ; preds = %44 - %48 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + %48 = ptrtoint ptr %45 to i64 + %49 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + store i64 %49, ptr %18, align 8 + %50 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %51 = load i64, ptr %50, align 8 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %51) store i64 %48, ptr %18, align 8 - %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %50 = load i64, ptr %49, align 8 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %50) - store ptr %45, ptr %18, align 8 - br label %54 + br label %55 -51: ; preds = %44 - %52 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %53 = load i64, ptr %52, align 8 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %53) - br label %54 +52: ; preds = %44 + %53 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %54 = load i64, ptr %53, align 8 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %54) + br label %55 -54: ; preds = %47, %51, %3, %.critedge +55: ; preds = %47, %52, %3, %.critedge ret void } @@ -44474,13 +44475,13 @@ common.ret: ; preds = %126, %_ZNKSt8__deta %79 = load i64, ptr %78, align 8 %80 = load ptr, ptr %0, align 8 %81 = getelementptr inbounds %"class.std::__cxx11::sub_match", ptr %80, i64 %79 - %.sroa.0.0.copyload.i = load ptr, ptr %81, align 8 + %.sroa.0.0.copyload.i = load i64, ptr %81, align 8 %82 = load i64, ptr %7, align 8 store i64 %82, ptr %81, align 8 %83 = getelementptr inbounds nuw i8, ptr %12, i64 8 %84 = load i64, ptr %83, align 8 tail call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %84) - store ptr %.sroa.0.0.copyload.i, ptr %81, align 8 + store i64 %.sroa.0.0.copyload.i, ptr %81, align 8 br label %common.ret 85: ; preds = %tailrecurse @@ -44692,7 +44693,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8 %16 = trunc i8 %15 to i1 - br i1 %16, label %17, label %54 + br i1 %16, label %17, label %55 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -44744,29 +44745,30 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %42 = getelementptr inbounds nuw i8, ptr %4, i64 8 store ptr %39, ptr %42, align 8 %43 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) - br i1 %43, label %44, label %54 + br i1 %43, label %44, label %55 44: ; preds = %.critedge %45 = load ptr, ptr %18, align 8 %46 = icmp eq ptr %.sroa.017.0.lcssa, %45 - br i1 %46, label %51, label %47 + br i1 %46, label %52, label %47 47: ; preds = %44 - %48 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + %48 = ptrtoint ptr %45 to i64 + %49 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + store i64 %49, ptr %18, align 8 + %50 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %51 = load i64, ptr %50, align 8 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %51) store i64 %48, ptr %18, align 8 - %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %50 = load i64, ptr %49, align 8 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %50) - store ptr %45, ptr %18, align 8 - br label %54 + br label %55 -51: ; preds = %44 - %52 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %53 = load i64, ptr %52, align 8 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %53) - br label %54 +52: ; preds = %44 + %53 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %54 = load i64, ptr %53, align 8 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %54) + br label %55 -54: ; preds = %47, %51, %3, %.critedge +55: ; preds = %47, %52, %3, %.critedge ret void } diff --git a/bench/node/optimized/libnode.node_buffer.ll b/bench/node/optimized/libnode.node_buffer.ll index 2601674cb85..ccc6cbb7853 100644 --- a/bench/node/optimized/libnode.node_buffer.ll +++ b/bench/node/optimized/libnode.node_buffer.ll @@ -14999,8 +14999,9 @@ do.end12.i.i: ; preds = %_ZN4node12stringsea store i64 %haystack_length, ptr %agg.tmp.sroa.2.0.agg.tmp26.sroa_idx, align 8 %agg.tmp.sroa.3.0.agg.tmp26.sroa_idx = getelementptr inbounds nuw i8, ptr %agg.tmp26, i64 16 store i8 %frombool.i, ptr %agg.tmp.sroa.3.0.agg.tmp26.sroa_idx, align 8 + %0 = ptrtoint ptr %needle to i64 %pattern_.i.i = getelementptr inbounds nuw i8, ptr %search.i, i64 3032 - store ptr %needle, ptr %pattern_.i.i, align 8 + store i64 %0, ptr %pattern_.i.i, align 8 %agg.tmp2.sroa.4.0.pattern_.i.sroa_idx.i = getelementptr inbounds nuw i8, ptr %search.i, i64 3040 store i64 %needle_length, ptr %agg.tmp2.sroa.4.0.pattern_.i.sroa_idx.i, align 8 %agg.tmp2.sroa.5.0.pattern_.i.sroa_idx.i = getelementptr inbounds nuw i8, ptr %search.i, i64 3048 @@ -15087,8 +15088,9 @@ do.end12.i.i: ; preds = %_ZN4node12stringsea store i64 %haystack_length, ptr %agg.tmp.sroa.2.0.agg.tmp26.sroa_idx, align 8 %agg.tmp.sroa.3.0.agg.tmp26.sroa_idx = getelementptr inbounds nuw i8, ptr %agg.tmp26, i64 16 store i8 %frombool.i, ptr %agg.tmp.sroa.3.0.agg.tmp26.sroa_idx, align 8 + %0 = ptrtoint ptr %needle to i64 %pattern_.i.i = getelementptr inbounds nuw i8, ptr %search.i, i64 3032 - store ptr %needle, ptr %pattern_.i.i, align 8 + store i64 %0, ptr %pattern_.i.i, align 8 %agg.tmp2.sroa.4.0.pattern_.i.sroa_idx.i = getelementptr inbounds nuw i8, ptr %search.i, i64 3040 store i64 %needle_length, ptr %agg.tmp2.sroa.4.0.pattern_.i.sroa_idx.i, align 8 %agg.tmp2.sroa.5.0.pattern_.i.sroa_idx.i = getelementptr inbounds nuw i8, ptr %search.i, i64 3048 diff --git a/bench/ockam-rs/optimized/111eznecj9pn2lkp.ll b/bench/ockam-rs/optimized/111eznecj9pn2lkp.ll index 3586c1455af..050d9cef13f 100644 --- a/bench/ockam-rs/optimized/111eznecj9pn2lkp.ll +++ b/bench/ockam-rs/optimized/111eznecj9pn2lkp.ll @@ -5573,15 +5573,13 @@ define hidden { ptr, ptr } @_ZN5tokio2io5split5split17h141141f189a94ef7E(ptr nou %4 = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 1, ptr %4, align 8, !noalias !716 %5 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store i32 0, ptr %5, align 8 - %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 20 - store i8 0, ptr %.sroa.4.0..sroa_idx, align 4 - %.sroa.513.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 24 - store ptr %0, ptr %.sroa.513.0..sroa_idx, align 8 - %.sroa.6.0..sroa_idx14 = getelementptr inbounds nuw i8, ptr %3, i64 32 - store ptr %1, ptr %.sroa.6.0..sroa_idx14, align 8 - %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 40 - store i8 0, ptr %.sroa.7.0..sroa_idx, align 8 + store i64 0, ptr %5, align 8 + %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 24 + store ptr %0, ptr %.sroa.4.0..sroa_idx, align 8 + %.sroa.5.0..sroa_idx12 = getelementptr inbounds nuw i8, ptr %3, i64 32 + store ptr %1, ptr %.sroa.5.0..sroa_idx12, align 8 + %.sroa.6.0..sroa_idx13 = getelementptr inbounds nuw i8, ptr %3, i64 40 + store i8 0, ptr %.sroa.6.0..sroa_idx13, align 8 %6 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !719 %7 = tail call noundef align 8 dereferenceable_or_null(48) ptr @__rust_alloc(i64 noundef 48, i64 noundef 8) #40, !noalias !719 %8 = icmp eq ptr %7, null @@ -5737,7 +5735,7 @@ define hidden noalias noundef nonnull align 8 ptr @"_ZN61_$LT$serde_bare..error. %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 8 %.sroa.5.0.copyload.i = load i64, ptr %.sroa.5.0..sroa_idx.i, align 8, !alias.scope !732, !noalias !729 %.sroa.6.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 16 - %.sroa.6.0.copyload.i = load ptr, ptr %.sroa.6.0..sroa_idx.i, align 8, !alias.scope !732, !noalias !729 + %.sroa.6.0.copyload.i = load i64, ptr %.sroa.6.0..sroa_idx.i, align 8, !alias.scope !732, !noalias !729 %.sroa.66.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 24 %.sroa.66.0.copyload.i = load i64, ptr %.sroa.66.0..sroa_idx.i, align 8, !alias.scope !732, !noalias !729 %.sroa.7.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 32 @@ -5758,7 +5756,7 @@ define hidden noalias noundef nonnull align 8 ptr @"_ZN61_$LT$serde_bare..error. %.sroa.5.0..sroa_idx2.i = getelementptr inbounds nuw i8, ptr %2, i64 8 store i64 %.sroa.5.0.copyload.i, ptr %.sroa.5.0..sroa_idx2.i, align 8, !noalias !747 %.sroa.6.0..sroa_idx4.i = getelementptr inbounds nuw i8, ptr %2, i64 16 - store ptr %.sroa.6.0.copyload.i, ptr %.sroa.6.0..sroa_idx4.i, align 8, !noalias !747 + store i64 %.sroa.6.0.copyload.i, ptr %.sroa.6.0..sroa_idx4.i, align 8, !noalias !747 %.sroa.66.0..sroa_idx7.i = getelementptr inbounds nuw i8, ptr %2, i64 24 store i64 %.sroa.66.0.copyload.i, ptr %.sroa.66.0..sroa_idx7.i, align 8, !noalias !747 %.sroa.7.0..sroa_idx9.i = getelementptr inbounds nuw i8, ptr %2, i64 32 @@ -5914,7 +5912,7 @@ define hidden void @"_ZN64_$LT$core..fmt..Arguments$u20$as$u20$alloc..string..To %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.5.0.copyload = load i64, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 16 - %.sroa.6.0.copyload = load ptr, ptr %.sroa.6.0..sroa_idx, align 8 + %.sroa.6.0.copyload = load i64, ptr %.sroa.6.0..sroa_idx, align 8 %.sroa.66.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 24 %.sroa.66.0.copyload = load i64, ptr %.sroa.66.0..sroa_idx, align 8 %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 32 @@ -5935,7 +5933,7 @@ define hidden void @"_ZN64_$LT$core..fmt..Arguments$u20$as$u20$alloc..string..To %.sroa.5.0..sroa_idx2 = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 %.sroa.5.0.copyload, ptr %.sroa.5.0..sroa_idx2, align 8, !noalias !790 %.sroa.6.0..sroa_idx4 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store ptr %.sroa.6.0.copyload, ptr %.sroa.6.0..sroa_idx4, align 8, !noalias !790 + store i64 %.sroa.6.0.copyload, ptr %.sroa.6.0..sroa_idx4, align 8, !noalias !790 %.sroa.66.0..sroa_idx7 = getelementptr inbounds nuw i8, ptr %3, i64 24 store i64 %.sroa.66.0.copyload, ptr %.sroa.66.0..sroa_idx7, align 8, !noalias !790 %.sroa.7.0..sroa_idx9 = getelementptr inbounds nuw i8, ptr %3, i64 32 diff --git a/bench/ockam-rs/optimized/31s7w40jb5ho09e2.ll b/bench/ockam-rs/optimized/31s7w40jb5ho09e2.ll index e04c746ccdd..ef5baccd4b6 100644 --- a/bench/ockam-rs/optimized/31s7w40jb5ho09e2.ll +++ b/bench/ockam-rs/optimized/31s7w40jb5ho09e2.ll @@ -722,23 +722,24 @@ define hidden void @"_ZN12sharded_slab4pool17Pool$LT$T$C$C$GT$6create28_$u7b$$u7 %6 = tail call noundef i64 @_ZN4core4sync6atomic11atomic_load17h884bb096e39ee00aE.llvm.1091148472540163290(ptr noundef nonnull %5, i8 noundef 2), !noalias !111 %7 = and i64 %6, 2251799813685244 %8 = icmp eq i64 %7, 0 - br i1 %8, label %9, label %13 + br i1 %8, label %9, label %14 9: ; preds = %4 - %10 = and i64 %6, -2251799813685248 - %11 = and i64 %2, 2251799813685247 - %12 = or disjoint i64 %10, %11 - store i64 %12, ptr %0, align 8 + %10 = ptrtoint ptr %3 to i64 + %11 = and i64 %6, -2251799813685248 + %12 = and i64 %2, 2251799813685247 + %13 = or disjoint i64 %11, %12 + store i64 %13, ptr %0, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %3, ptr %.sroa.4.0..sroa_idx, align 8 + store i64 %10, ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.4.sroa.4.0..sroa.4.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store i64 %6, ptr %.sroa.4.sroa.4.0..sroa.4.0..sroa_idx.sroa_idx, align 8 - br label %13 + br label %14 -13: ; preds = %4, %9 +14: ; preds = %4, %9 %.sink = phi i8 [ 0, %9 ], [ 2, %4 ] - %14 = getelementptr inbounds nuw i8, ptr %0, i64 24 - store i8 %.sink, ptr %14, align 8 + %15 = getelementptr inbounds nuw i8, ptr %0, i64 24 + store i8 %.sink, ptr %15, align 8 ret void } @@ -3811,20 +3812,21 @@ define hidden void @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..funct br i1 %8, label %9, label %"_ZN12sharded_slab4pool17Pool$LT$T$C$C$GT$6create28_$u7b$$u7b$closure$u7d$$u7d$17h7c698bf91af177ffE.llvm.16910215836284360165.exit" 9: ; preds = %4 - %10 = and i64 %6, -2251799813685248 - %11 = and i64 %2, 2251799813685247 - %12 = or disjoint i64 %10, %11 - store i64 %12, ptr %0, align 8, !alias.scope !662 + %10 = ptrtoint ptr %3 to i64 + %11 = and i64 %6, -2251799813685248 + %12 = and i64 %2, 2251799813685247 + %13 = or disjoint i64 %11, %12 + store i64 %13, ptr %0, align 8, !alias.scope !662 %.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %3, ptr %.sroa.4.0..sroa_idx.i, align 8, !alias.scope !662 + store i64 %10, ptr %.sroa.4.0..sroa_idx.i, align 8, !alias.scope !662 %.sroa.4.sroa.4.0..sroa.4.0..sroa_idx.sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 16 store i64 %6, ptr %.sroa.4.sroa.4.0..sroa.4.0..sroa_idx.sroa_idx.i, align 8, !alias.scope !662 br label %"_ZN12sharded_slab4pool17Pool$LT$T$C$C$GT$6create28_$u7b$$u7b$closure$u7d$$u7d$17h7c698bf91af177ffE.llvm.16910215836284360165.exit" "_ZN12sharded_slab4pool17Pool$LT$T$C$C$GT$6create28_$u7b$$u7b$closure$u7d$$u7d$17h7c698bf91af177ffE.llvm.16910215836284360165.exit": ; preds = %4, %9 %.sink.i = phi i8 [ 0, %9 ], [ 2, %4 ] - %13 = getelementptr inbounds nuw i8, ptr %0, i64 24 - store i8 %.sink.i, ptr %13, align 8, !alias.scope !662 + %14 = getelementptr inbounds nuw i8, ptr %0, i64 24 + store i8 %.sink.i, ptr %14, align 8, !alias.scope !662 ret void } diff --git a/bench/ockam-rs/optimized/3spcfx0kj7tua4em.ll b/bench/ockam-rs/optimized/3spcfx0kj7tua4em.ll index 45ffc6a8cb7..ca6c95ee7da 100644 --- a/bench/ockam-rs/optimized/3spcfx0kj7tua4em.ll +++ b/bench/ockam-rs/optimized/3spcfx0kj7tua4em.ll @@ -132827,11 +132827,13 @@ define void @"_ZN9ockam_api2ui8terminal4term136_$LT$impl$u20$ockam_api..ui..term store i8 2, ptr %.sroa.3.0..sroa_idx, align 1 store i64 0, ptr %3, align 8 %5 = getelementptr inbounds nuw i8, ptr %3, i64 104 - %.sroa.59.sroa.3.0..sroa.59.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 120 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %5, i8 0, i64 9, i1 false) - store ptr inttoptr (i64 1 to ptr), ptr %.sroa.59.sroa.3.0..sroa.59.0..sroa_idx.sroa_idx, align 8 - %.sroa.59.sroa.4.0..sroa.59.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 128 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(21) %.sroa.59.sroa.4.0..sroa.59.0..sroa_idx.sroa_idx, i8 0, i64 21, i1 false) + store i64 0, ptr %5, align 8 + %.sroa.410.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 112 + store i8 0, ptr %.sroa.410.0..sroa_idx, align 8 + %.sroa.511.sroa.3.0..sroa.511.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 120 + store ptr inttoptr (i64 1 to ptr), ptr %.sroa.511.sroa.3.0..sroa.511.0..sroa_idx.sroa_idx, align 8 + %.sroa.511.sroa.4.0..sroa.511.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 128 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.511.sroa.4.0..sroa.511.0..sroa_idx.sroa_idx, i8 0, i64 24, i1 false) call void @_ZN7console4term4Term10with_inner17hff86de39b4044ed6E(ptr noalias noundef nonnull sret({ ptr, i8, i8, [6 x i8] }) align 8 captures(none) dereferenceable(16) %4, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(152) %3) call void @llvm.lifetime.end.p0(ptr nonnull %3) br i1 %1, label %13, label %6 @@ -132879,11 +132881,13 @@ define void @"_ZN9ockam_api2ui8terminal4term136_$LT$impl$u20$ockam_api..ui..term store i8 3, ptr %.sroa.3.0..sroa_idx, align 1 store i64 0, ptr %3, align 8 %5 = getelementptr inbounds nuw i8, ptr %3, i64 104 - %.sroa.59.sroa.3.0..sroa.59.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 120 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %5, i8 0, i64 9, i1 false) - store ptr inttoptr (i64 1 to ptr), ptr %.sroa.59.sroa.3.0..sroa.59.0..sroa_idx.sroa_idx, align 8 - %.sroa.59.sroa.4.0..sroa.59.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 128 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(21) %.sroa.59.sroa.4.0..sroa.59.0..sroa_idx.sroa_idx, i8 0, i64 21, i1 false) + store i64 0, ptr %5, align 8 + %.sroa.410.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 112 + store i8 0, ptr %.sroa.410.0..sroa_idx, align 8 + %.sroa.511.sroa.3.0..sroa.511.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 120 + store ptr inttoptr (i64 1 to ptr), ptr %.sroa.511.sroa.3.0..sroa.511.0..sroa_idx.sroa_idx, align 8 + %.sroa.511.sroa.4.0..sroa.511.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 128 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.511.sroa.4.0..sroa.511.0..sroa_idx.sroa_idx, i8 0, i64 24, i1 false) call void @_ZN7console4term4Term10with_inner17hff86de39b4044ed6E(ptr noalias noundef nonnull sret({ ptr, i8, i8, [6 x i8] }) align 8 captures(none) dereferenceable(16) %4, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(152) %3) call void @llvm.lifetime.end.p0(ptr nonnull %3) br i1 %1, label %13, label %6 diff --git a/bench/ockam-rs/optimized/4t3y03rrak2rtjym.ll b/bench/ockam-rs/optimized/4t3y03rrak2rtjym.ll index 58a6b4f9ca7..7cb4323792a 100644 --- a/bench/ockam-rs/optimized/4t3y03rrak2rtjym.ll +++ b/bench/ockam-rs/optimized/4t3y03rrak2rtjym.ll @@ -1141,16 +1141,16 @@ define hidden void @"_ZN12sharded_slab5shard18Shard$LT$T$C$C$GT$9init_with17hc5c %11 = load ptr, ptr %1, align 8, !nonnull !10, !align !149 br label %12 -12: ; preds = %.lr.ph, %47 - %.sroa.0.043 = phi ptr [ %4, %.lr.ph ], [ %13, %47 ] - %.sroa.8.042 = phi i64 [ 0, %.lr.ph ], [ %14, %47 ] +12: ; preds = %.lr.ph, %48 + %.sroa.0.043 = phi ptr [ %4, %.lr.ph ], [ %13, %48 ] + %.sroa.8.042 = phi i64 [ 0, %.lr.ph ], [ %14, %48 ] %13 = getelementptr inbounds nuw i8, ptr %.sroa.0.043, i64 40 %14 = add nuw nsw i64 %.sroa.8.042, 1 %exitcond.not = icmp eq i64 %.sroa.8.042, %10 br i1 %exitcond.not, label %38, label %15, !prof !235 -._crit_edge: ; preds = %47, %2, %39 - %.sink = phi i8 [ 0, %39 ], [ 2, %2 ], [ 2, %47 ] +._crit_edge: ; preds = %48, %2, %39 + %.sink = phi i8 [ 0, %39 ], [ 2, %2 ], [ 2, %48 ] %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 store i8 %.sink, ptr %.sroa.4.0..sroa_idx, align 8 ret void @@ -1167,11 +1167,11 @@ define hidden void @"_ZN12sharded_slab5shard18Shard$LT$T$C$C$GT$9init_with17hc5c %21 = getelementptr inbounds nuw i8, ptr %.sroa.0.043, i64 16 %22 = atomicrmw xchg ptr %21, i64 274877906944 acquire, align 8, !noalias !236 %.not.i.i = icmp eq i64 %22, 274877906944 - br i1 %.not.i.i, label %47, label %"_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.thread31.i" + br i1 %.not.i.i, label %48, label %"_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.thread31.i" "_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.i": ; preds = %15 - %.not39.not.i = icmp eq i64 %.val.i, 274877906944 - br i1 %.not39.not.i, label %47, label %"_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.thread31.i" + %.not42.not.i = icmp eq i64 %.val.i, 274877906944 + br i1 %.not42.not.i, label %48, label %"_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.thread31.i" "_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.thread31.i": ; preds = %"_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.i", %20 %.0.i34.i = phi i64 [ %.val.i, %"_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.i" ], [ %22, %20 ] @@ -1204,7 +1204,7 @@ define hidden void @"_ZN12sharded_slab5shard18Shard$LT$T$C$C$GT$9init_with17hc5c %34 = tail call noundef i64 @_ZN4core4sync6atomic11atomic_load17h884bb096e39ee00aE.llvm.1091148472540163290(ptr noundef nonnull %33, i8 noundef 2), !noalias !243 %35 = and i64 %34, 2251799813685244 %36 = icmp eq i64 %35, 0 - br i1 %36, label %39, label %47 + br i1 %36, label %39, label %48 37: ; preds = %.thread.i tail call void @_ZN4core9panicking18panic_bounds_check17hb0ff58c889dba9eeE(i64 noundef %.0.i34.i, i64 noundef %29, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.bd112a14df90db5fef21b728579ed996.3) #44, !noalias !239 @@ -1217,22 +1217,23 @@ define hidden void @"_ZN12sharded_slab5shard18Shard$LT$T$C$C$GT$9init_with17hc5c 39: ; preds = %31 %40 = getelementptr inbounds nuw i64, ptr %11, i64 %.sroa.8.042 %41 = add i64 %.pn.i, %.0.i34.i - %42 = and i64 %34, -2251799813685248 - %43 = and i64 %41, 2251799813685247 - %44 = or disjoint i64 %42, %43 - %45 = getelementptr inbounds nuw i8, ptr %32, i64 88 - %46 = load i64, ptr %45, align 8, !noalias !239, !noundef !10 - store i64 %46, ptr %40, align 8, !noalias !239 - store i64 %44, ptr %0, align 8 + %42 = ptrtoint ptr %32 to i64 + %43 = and i64 %34, -2251799813685248 + %44 = and i64 %41, 2251799813685247 + %45 = or disjoint i64 %43, %44 + %46 = getelementptr inbounds nuw i8, ptr %32, i64 88 + %47 = load i64, ptr %46, align 8, !noalias !239, !noundef !10 + store i64 %47, ptr %40, align 8, !noalias !239 + store i64 %45, ptr %0, align 8 %.sroa.2.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %32, ptr %.sroa.2.0..sroa_idx, align 8 + store i64 %42, ptr %.sroa.2.0..sroa_idx, align 8 %.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store i64 %34, ptr %.sroa.3.0..sroa_idx, align 8 br label %._crit_edge -47: ; preds = %20, %"_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.i", %31 - %48 = icmp eq ptr %13, %7 - br i1 %48, label %._crit_edge, label %12 +48: ; preds = %20, %"_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.i", %31 + %49 = icmp eq ptr %13, %7 + br i1 %49, label %._crit_edge, label %12 } ; Function Attrs: inlinehint nonlazybind uwtable diff --git a/bench/ockam-rs/optimized/7hitgxreqt236i.ll b/bench/ockam-rs/optimized/7hitgxreqt236i.ll index fc4a6d461fb..d8a7b142893 100644 --- a/bench/ockam-rs/optimized/7hitgxreqt236i.ll +++ b/bench/ockam-rs/optimized/7hitgxreqt236i.ll @@ -10394,7 +10394,7 @@ define hidden noalias noundef nonnull align 8 ptr @"_ZN5tokio4sync4mpsc5block14B %8 = tail call i64 @_ZN5tokio4loom3std12atomic_usize11AtomicUsize3new17h337ae450ab68f81bE(i64 noundef 0) store i64 %0, ptr %7, align 8 %.sroa.4.0..0.3.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 2824 - store ptr null, ptr %.sroa.4.0..0.3.sroa_idx, align 8 + store i64 0, ptr %.sroa.4.0..0.3.sroa_idx, align 8 %.sroa.5.0..0.3.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 2832 store i64 %8, ptr %.sroa.5.0..0.3.sroa_idx, align 8 %.sroa.6.0..0.3.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 2840 @@ -10417,7 +10417,7 @@ define hidden noalias noundef nonnull align 8 ptr @"_ZN5tokio4sync4mpsc5block14B %7 = tail call i64 @_ZN5tokio4loom3std12atomic_usize11AtomicUsize3new17h337ae450ab68f81bE(i64 noundef 0) store i64 %0, ptr %3, align 8 %.sroa.4.0..0.3.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 8 - store ptr null, ptr %.sroa.4.0..0.3.sroa_idx, align 8 + store i64 0, ptr %.sroa.4.0..0.3.sroa_idx, align 8 %.sroa.5.0..0.3.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 16 store i64 %7, ptr %.sroa.5.0..0.3.sroa_idx, align 8 %.sroa.6.0..0.3.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 24 @@ -10441,7 +10441,7 @@ define hidden noalias noundef nonnull align 8 ptr @"_ZN5tokio4sync4mpsc5block14B %8 = tail call i64 @_ZN5tokio4loom3std12atomic_usize11AtomicUsize3new17h337ae450ab68f81bE(i64 noundef 0) store i64 %0, ptr %7, align 8 %.sroa.4.0..0.3.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 7432 - store ptr null, ptr %.sroa.4.0..0.3.sroa_idx, align 8 + store i64 0, ptr %.sroa.4.0..0.3.sroa_idx, align 8 %.sroa.5.0..0.3.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 7440 store i64 %8, ptr %.sroa.5.0..0.3.sroa_idx, align 8 %.sroa.6.0..0.3.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 7448 @@ -10465,7 +10465,7 @@ define hidden noalias noundef nonnull align 8 ptr @"_ZN5tokio4sync4mpsc5block14B %8 = tail call i64 @_ZN5tokio4loom3std12atomic_usize11AtomicUsize3new17h337ae450ab68f81bE(i64 noundef 0) store i64 %0, ptr %7, align 8 %.sroa.4.0..0.3.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 2056 - store ptr null, ptr %.sroa.4.0..0.3.sroa_idx, align 8 + store i64 0, ptr %.sroa.4.0..0.3.sroa_idx, align 8 %.sroa.5.0..0.3.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 2064 store i64 %8, ptr %.sroa.5.0..0.3.sroa_idx, align 8 %.sroa.6.0..0.3.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 2072 @@ -10490,7 +10490,7 @@ define hidden noundef nonnull ptr @"_ZN5tokio4sync4mpsc5block14Block$LT$T$GT$4gr %8 = tail call i64 @_ZN5tokio4loom3std12atomic_usize11AtomicUsize3new17h337ae450ab68f81bE(i64 noundef 0) store i64 %7, ptr %4, align 8 %.sroa.4.0..0.3.sroa_idx.i = getelementptr inbounds nuw i8, ptr %4, i64 8 - store ptr null, ptr %.sroa.4.0..0.3.sroa_idx.i, align 8 + store i64 0, ptr %.sroa.4.0..0.3.sroa_idx.i, align 8 %.sroa.5.0..0.3.sroa_idx.i = getelementptr inbounds nuw i8, ptr %4, i64 16 store i64 %8, ptr %.sroa.5.0..0.3.sroa_idx.i, align 8 %.sroa.6.0..0.3.sroa_idx.i = getelementptr inbounds nuw i8, ptr %4, i64 24 @@ -10549,7 +10549,7 @@ define hidden noundef nonnull ptr @"_ZN5tokio4sync4mpsc5block14Block$LT$T$GT$4gr %10 = tail call i64 @_ZN5tokio4loom3std12atomic_usize11AtomicUsize3new17h337ae450ab68f81bE(i64 noundef 0) store i64 %8, ptr %9, align 8 %.sroa.4.0..0.3.sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 7432 - store ptr null, ptr %.sroa.4.0..0.3.sroa_idx.i, align 8 + store i64 0, ptr %.sroa.4.0..0.3.sroa_idx.i, align 8 %.sroa.5.0..0.3.sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 7440 store i64 %10, ptr %.sroa.5.0..0.3.sroa_idx.i, align 8 %.sroa.6.0..0.3.sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 7448 @@ -10610,7 +10610,7 @@ define hidden noundef nonnull ptr @"_ZN5tokio4sync4mpsc5block14Block$LT$T$GT$4gr %10 = tail call i64 @_ZN5tokio4loom3std12atomic_usize11AtomicUsize3new17h337ae450ab68f81bE(i64 noundef 0) store i64 %8, ptr %9, align 8 %.sroa.4.0..0.3.sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 2056 - store ptr null, ptr %.sroa.4.0..0.3.sroa_idx.i, align 8 + store i64 0, ptr %.sroa.4.0..0.3.sroa_idx.i, align 8 %.sroa.5.0..0.3.sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 2064 store i64 %10, ptr %.sroa.5.0..0.3.sroa_idx.i, align 8 %.sroa.6.0..0.3.sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 2072 @@ -10671,7 +10671,7 @@ define hidden noundef nonnull ptr @"_ZN5tokio4sync4mpsc5block14Block$LT$T$GT$4gr %10 = tail call i64 @_ZN5tokio4loom3std12atomic_usize11AtomicUsize3new17h337ae450ab68f81bE(i64 noundef 0) store i64 %8, ptr %9, align 8 %.sroa.4.0..0.3.sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 2824 - store ptr null, ptr %.sroa.4.0..0.3.sroa_idx.i, align 8 + store i64 0, ptr %.sroa.4.0..0.3.sroa_idx.i, align 8 %.sroa.5.0..0.3.sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 2832 store i64 %10, ptr %.sroa.5.0..0.3.sroa_idx.i, align 8 %.sroa.6.0..0.3.sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 2840 @@ -24677,16 +24677,18 @@ define noalias noundef nonnull ptr @_ZN14ockam_identity15secure_channels15secure %4 = alloca ptr, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %4) store ptr %0, ptr %4, align 8 - %5 = getelementptr inbounds nuw i8, ptr %3, i64 16 call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !3454 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %5, i8 0, i64 9, i1 false) store i64 1, ptr %3, align 8, !noalias !3454 - %6 = getelementptr inbounds nuw i8, ptr %3, i64 8 - store i64 1, ptr %6, align 8, !noalias !3454 - %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 32 - store ptr null, ptr %.sroa.4.0..sroa_idx, align 8 - %.sroa.52.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 48 - store i64 0, ptr %.sroa.52.0..sroa_idx, align 8 + %5 = getelementptr inbounds nuw i8, ptr %3, i64 8 + store i64 1, ptr %5, align 8, !noalias !3454 + %6 = getelementptr inbounds nuw i8, ptr %3, i64 16 + store i64 0, ptr %6, align 8 + %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 24 + store i8 0, ptr %.sroa.4.0..sroa_idx, align 8 + %.sroa.52.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 32 + store ptr null, ptr %.sroa.52.0..sroa_idx, align 8 + %.sroa.63.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 48 + store i64 0, ptr %.sroa.63.0..sroa_idx, align 8 %7 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !3457 %8 = tail call noundef align 8 dereferenceable_or_null(56) ptr @__rust_alloc(i64 noundef 56, i64 noundef range(i64 1, -9223372036854775807) 8) #30, !noalias !3457 %9 = icmp eq ptr %8, null diff --git a/bench/open3d/optimized/Geometry3D.ll b/bench/open3d/optimized/Geometry3D.ll index e51814de1a4..ed734b80af9 100644 --- a/bench/open3d/optimized/Geometry3D.ll +++ b/bench/open3d/optimized/Geometry3D.ll @@ -525,15 +525,17 @@ define void @_ZNK6open3d8geometry10Geometry3D15TransformPointsERKN5Eigen6MatrixI %.sroa.018.022 = phi ptr [ %4, %.lr.ph ], [ %46, %14 ] %15 = getelementptr inbounds nuw i8, ptr %.sroa.018.022, i64 8 %16 = getelementptr inbounds nuw i8, ptr %.sroa.018.022, i64 16 - %17 = load <1 x double>, ptr %.sroa.018.022, align 8, !tbaa !16 - %18 = load <1 x double>, ptr %15, align 8, !tbaa !16 + %17 = load double, ptr %.sroa.018.022, align 8, !tbaa !16 + %.sroa.0.sroa.0.0.vec.insert = insertelement <1 x double> poison, double %17, i64 0 + %18 = load double, ptr %15, align 8, !tbaa !16 + %.sroa.0.sroa.4.8.vec.insert = insertelement <1 x double> poison, double %18, i64 0 %19 = load double, ptr %16, align 8, !tbaa !16 %.sroa.0.sroa.6.24.vec.insert = insertelement <2 x double> poison, double %19, i64 0 %20 = load <2 x double>, ptr %1, align 16, !tbaa !11 - %21 = shufflevector <1 x double> %17, <1 x double> poison, <2 x i32> zeroinitializer + %21 = shufflevector <1 x double> %.sroa.0.sroa.0.0.vec.insert, <1 x double> poison, <2 x i32> zeroinitializer %22 = fmul <2 x double> %20, %21 %23 = load <2 x double>, ptr %7, align 16, !tbaa !11 - %24 = shufflevector <1 x double> %18, <1 x double> poison, <2 x i32> zeroinitializer + %24 = shufflevector <1 x double> %.sroa.0.sroa.4.8.vec.insert, <1 x double> poison, <2 x i32> zeroinitializer %25 = fmul <2 x double> %23, %24 %26 = fadd <2 x double> %22, %25 %27 = load <2 x double>, ptr %8, align 16, !tbaa !11 diff --git a/bench/open3d/optimized/TriangleMeshSimplification.ll b/bench/open3d/optimized/TriangleMeshSimplification.ll index 85ac6db8cb5..1e2a9106092 100644 --- a/bench/open3d/optimized/TriangleMeshSimplification.ll +++ b/bench/open3d/optimized/TriangleMeshSimplification.ll @@ -4879,60 +4879,61 @@ _ZN5Eigen8internal31unaligned_dense_assignment_loopILb0EE3runINS0_31generic_dens br i1 %169, label %170, label %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit 170: ; preds = %168 - %.sroa.0.0.copyload = load ptr, ptr %9, align 8 + %.sroa.0.0.copyload = load i64, ptr %9, align 8 %.sroa.4.0.copyload = load i64, ptr %10, align 8 + %171 = inttoptr i64 %.sroa.0.0.copyload to ptr %.not23.i157 = icmp sgt i64 %.sroa.4.0.copyload, 0 br i1 %.not23.i157, label %.preheader.us.us.i159, label %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit -171: ; preds = %.preheader.us.us.i159 - %172 = add nuw nsw i64 %.01324.us.us.i160, 1 - %exitcond.not.i161 = icmp eq i64 %172, %.sroa.4.0.copyload +172: ; preds = %.preheader.us.us.i159 + %173 = add nuw nsw i64 %.01324.us.us.i160, 1 + %exitcond.not.i161 = icmp eq i64 %173, %.sroa.4.0.copyload br i1 %exitcond.not.i161, label %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit, label %.preheader.us.us.i159, !llvm.loop !267 -.preheader.us.us.i159: ; preds = %170, %171 - %.01324.us.us.i160 = phi i64 [ %172, %171 ], [ 0, %170 ] - %173 = getelementptr double, ptr %.sroa.0.0.copyload, i64 %.01324.us.us.i160 - %174 = load double, ptr %173, align 8, !tbaa !40 - %175 = fcmp oeq double %174, 0.000000e+00 - br i1 %175, label %171, label %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit - -_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit: ; preds = %171, %.preheader.us.us.i159, %.lr.ph.i17.i.i.i.i.i.i149, %.thread438, %168, %170, %._crit_edge.i.i.i.i.i.i148 - %176 = phi double [ %115, %._crit_edge.i.i.i.i.i.i148 ], [ %115, %168 ], [ %115, %170 ], [ %107, %.thread438 ], [ %115, %.lr.ph.i17.i.i.i.i.i.i149 ], [ %115, %.preheader.us.us.i159 ], [ %115, %171 ] - %177 = phi i1 [ true, %._crit_edge.i.i.i.i.i.i148 ], [ false, %168 ], [ false, %170 ], [ %108, %.thread438 ], [ true, %.lr.ph.i17.i.i.i.i.i.i149 ], [ false, %.preheader.us.us.i159 ], [ false, %171 ] - %.4 = phi i8 [ %.0120.ph, %._crit_edge.i.i.i.i.i.i148 ], [ 0, %168 ], [ 1, %170 ], [ %.0120.ph, %.thread438 ], [ %.0120.ph, %.lr.ph.i17.i.i.i.i.i.i149 ], [ 1, %171 ], [ 0, %.preheader.us.us.i159 ] - %178 = select i1 %177, i1 %.0116.ph, i1 false - %.5 = select i1 %178, i8 0, i8 %.4 - %not. = xor i1 %177, true +.preheader.us.us.i159: ; preds = %170, %172 + %.01324.us.us.i160 = phi i64 [ %173, %172 ], [ 0, %170 ] + %174 = getelementptr double, ptr %171, i64 %.01324.us.us.i160 + %175 = load double, ptr %174, align 8, !tbaa !40 + %176 = fcmp oeq double %175, 0.000000e+00 + br i1 %176, label %172, label %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit + +_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit: ; preds = %172, %.preheader.us.us.i159, %.lr.ph.i17.i.i.i.i.i.i149, %.thread438, %168, %170, %._crit_edge.i.i.i.i.i.i148 + %177 = phi double [ %115, %._crit_edge.i.i.i.i.i.i148 ], [ %115, %168 ], [ %115, %170 ], [ %107, %.thread438 ], [ %115, %.lr.ph.i17.i.i.i.i.i.i149 ], [ %115, %.preheader.us.us.i159 ], [ %115, %172 ] + %178 = phi i1 [ true, %._crit_edge.i.i.i.i.i.i148 ], [ false, %168 ], [ false, %170 ], [ %108, %.thread438 ], [ true, %.lr.ph.i17.i.i.i.i.i.i149 ], [ false, %.preheader.us.us.i159 ], [ false, %172 ] + %.4 = phi i8 [ %.0120.ph, %._crit_edge.i.i.i.i.i.i148 ], [ 0, %168 ], [ 1, %170 ], [ %.0120.ph, %.thread438 ], [ %.0120.ph, %.lr.ph.i17.i.i.i.i.i.i149 ], [ 1, %172 ], [ 0, %.preheader.us.us.i159 ] + %179 = select i1 %178, i1 %.0116.ph, i1 false + %.5 = select i1 %179, i8 0, i8 %.4 + %not. = xor i1 %178, true %.2118 = select i1 %not., i1 true, i1 %.0116.ph - %179 = load i32, ptr %3, align 4, !tbaa !261 - switch i32 %179, label %.outer.backedge [ - i32 0, label %180 - i32 1, label %182 - i32 2, label %184 + %180 = load i32, ptr %3, align 4, !tbaa !261 + switch i32 %180, label %.outer.backedge [ + i32 0, label %181 + i32 1, label %183 + i32 2, label %185 ] -180: ; preds = %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit - %181 = fcmp olt double %176, 0.000000e+00 - br i1 %181, label %.outer.backedge.sink.split, label %.outer.backedge +181: ; preds = %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit + %182 = fcmp olt double %177, 0.000000e+00 + br i1 %182, label %.outer.backedge.sink.split, label %.outer.backedge -182: ; preds = %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit - %183 = fcmp ogt double %176, 0.000000e+00 - br i1 %183, label %.outer.backedge.sink.split, label %.outer.backedge +183: ; preds = %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit + %184 = fcmp ogt double %177, 0.000000e+00 + br i1 %184, label %.outer.backedge.sink.split, label %.outer.backedge -184: ; preds = %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit - %185 = fcmp ogt double %176, 0.000000e+00 - br i1 %185, label %.outer.backedge.sink.split, label %186 +185: ; preds = %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit + %186 = fcmp ogt double %177, 0.000000e+00 + br i1 %186, label %.outer.backedge.sink.split, label %187 -186: ; preds = %184 - %187 = fcmp olt double %176, 0.000000e+00 - br i1 %187, label %.outer.backedge.sink.split, label %.outer.backedge +187: ; preds = %185 + %188 = fcmp olt double %177, 0.000000e+00 + br i1 %188, label %.outer.backedge.sink.split, label %.outer.backedge -.outer.backedge.sink.split: ; preds = %186, %184, %182, %180 - %.sink = phi i32 [ 3, %180 ], [ 3, %182 ], [ 0, %184 ], [ 1, %186 ] +.outer.backedge.sink.split: ; preds = %187, %185, %183, %181 + %.sink = phi i32 [ 3, %181 ], [ 3, %183 ], [ 0, %185 ], [ 1, %187 ] store i32 %.sink, ptr %3, align 4, !tbaa !261 br label %.outer.backedge -.outer.backedge: ; preds = %.outer.backedge.sink.split, %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit, %182, %186, %180 +.outer.backedge: ; preds = %.outer.backedge.sink.split, %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit, %183, %187, %181 call void @llvm.lifetime.end.p0(ptr nonnull %9) br label %.outer, !llvm.loop !262 diff --git a/bench/opencv/optimized/function.pb.ll b/bench/opencv/optimized/function.pb.ll index 6900f00c473..debe10f3e83 100644 --- a/bench/opencv/optimized/function.pb.ll +++ b/bench/opencv/optimized/function.pb.ll @@ -4424,16 +4424,16 @@ _ZNK6google8protobuf11MessageLite21GetArenaForAllocationEv.exit: store ptr %74, ptr %73, align 8, !tbaa !194 %76 = getelementptr inbounds nuw i8, ptr %0, i64 200 %77 = getelementptr inbounds nuw i8, ptr %1, i64 200 - %.sroa.0.0.copyload.i.i.i.i.i = load ptr, ptr %76, align 8, !tbaa !62 + %.sroa.0.0.copyload.i.i.i.i.i = load i64, ptr %76, align 8, !tbaa !62 %78 = load i64, ptr %77, align 8, !tbaa !62 store i64 %78, ptr %76, align 8, !tbaa !62 - store ptr %.sroa.0.0.copyload.i.i.i.i.i, ptr %77, align 8, !tbaa !62 + store i64 %.sroa.0.0.copyload.i.i.i.i.i, ptr %77, align 8, !tbaa !62 %79 = getelementptr inbounds nuw i8, ptr %0, i64 208 %80 = getelementptr inbounds nuw i8, ptr %1, i64 208 - %.sroa.0.0.copyload.i = load ptr, ptr %80, align 8, !tbaa !25 + %.sroa.0.0.copyload.i = load i64, ptr %80, align 8, !tbaa !25 %81 = load i64, ptr %79, align 8, !tbaa !25 store i64 %81, ptr %80, align 8, !tbaa !25 - store ptr %.sroa.0.0.copyload.i, ptr %79, align 8, !tbaa !25 + store i64 %.sroa.0.0.copyload.i, ptr %79, align 8, !tbaa !25 ret void } @@ -6351,16 +6351,16 @@ _ZNK6google8protobuf11MessageLite21GetArenaForAllocationEv.exit: store i64 %3, ptr %4, align 8, !tbaa !56 %6 = getelementptr inbounds nuw i8, ptr %0, i64 16 %7 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %.sroa.0.0.copyload.i = load ptr, ptr %7, align 8, !tbaa !25 + %.sroa.0.0.copyload.i = load i64, ptr %7, align 8, !tbaa !25 %8 = load i64, ptr %6, align 8, !tbaa !25 store i64 %8, ptr %7, align 8, !tbaa !25 - store ptr %.sroa.0.0.copyload.i, ptr %6, align 8, !tbaa !25 + store i64 %.sroa.0.0.copyload.i, ptr %6, align 8, !tbaa !25 %9 = getelementptr inbounds nuw i8, ptr %0, i64 24 %10 = getelementptr inbounds nuw i8, ptr %1, i64 24 - %.sroa.0.0.copyload.i12 = load ptr, ptr %10, align 8, !tbaa !25 + %.sroa.0.0.copyload.i12 = load i64, ptr %10, align 8, !tbaa !25 %11 = load i64, ptr %9, align 8, !tbaa !25 store i64 %11, ptr %10, align 8, !tbaa !25 - store ptr %.sroa.0.0.copyload.i12, ptr %9, align 8, !tbaa !25 + store i64 %.sroa.0.0.copyload.i12, ptr %9, align 8, !tbaa !25 ret void } @@ -7739,10 +7739,10 @@ define linkonce_odr hidden void @_ZN6google8protobuf8internal8MapFieldIN17opencv store ptr %21, ptr %20, align 8, !tbaa !194 %23 = getelementptr inbounds nuw i8, ptr %0, i64 112 %24 = getelementptr inbounds nuw i8, ptr %1, i64 112 - %.sroa.0.0.copyload.i.i.i.i.i = load ptr, ptr %23, align 8, !tbaa !62 + %.sroa.0.0.copyload.i.i.i.i.i = load i64, ptr %23, align 8, !tbaa !62 %25 = load i64, ptr %24, align 8, !tbaa !62 store i64 %25, ptr %23, align 8, !tbaa !62 - store ptr %.sroa.0.0.copyload.i.i.i.i.i, ptr %24, align 8, !tbaa !62 + store i64 %.sroa.0.0.copyload.i.i.i.i.i, ptr %24, align 8, !tbaa !62 ret void } @@ -12732,100 +12732,101 @@ define linkonce_odr hidden noundef i32 @_ZNK6google8protobuf6MapKey4typeEv(ptr n define linkonce_odr hidden void @_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEE4swapERSA_(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(48) %1) local_unnamed_addr #3 comdat align 2 personality ptr @__gxx_personality_v0 { %3 = alloca %"class.google::protobuf::Map", align 8 %4 = getelementptr inbounds nuw i8, ptr %0, i64 40 - %5 = load ptr, ptr %4, align 8, !tbaa !97 + %5 = load ptr, ptr %4, align 8 %6 = getelementptr inbounds nuw i8, ptr %1, i64 40 %7 = load ptr, ptr %6, align 8 %8 = icmp eq ptr %5, %7 - br i1 %8, label %9, label %29 + br i1 %8, label %9, label %30 9: ; preds = %2 %10 = ptrtoint ptr %7 to i64 - %11 = load i64, ptr %0, align 8, !tbaa !56 - %12 = load i64, ptr %1, align 8, !tbaa !56 - store i64 %12, ptr %0, align 8, !tbaa !56 - store i64 %11, ptr %1, align 8, !tbaa !56 - %13 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %14 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %15 = load i64, ptr %13, align 8, !tbaa !56 + %11 = ptrtoint ptr %5 to i64 + %12 = load i64, ptr %0, align 8, !tbaa !56 + %13 = load i64, ptr %1, align 8, !tbaa !56 + store i64 %13, ptr %0, align 8, !tbaa !56 + store i64 %12, ptr %1, align 8, !tbaa !56 + %14 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %15 = getelementptr inbounds nuw i8, ptr %1, i64 8 %16 = load i64, ptr %14, align 8, !tbaa !56 - store i64 %16, ptr %13, align 8, !tbaa !56 - store i64 %15, ptr %14, align 8, !tbaa !56 - %17 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %18 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %19 = load i64, ptr %17, align 8, !tbaa !56 + %17 = load i64, ptr %15, align 8, !tbaa !56 + store i64 %17, ptr %14, align 8, !tbaa !56 + store i64 %16, ptr %15, align 8, !tbaa !56 + %18 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %19 = getelementptr inbounds nuw i8, ptr %1, i64 16 %20 = load i64, ptr %18, align 8, !tbaa !56 - store i64 %20, ptr %17, align 8, !tbaa !56 - store i64 %19, ptr %18, align 8, !tbaa !56 - %21 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %22 = getelementptr inbounds nuw i8, ptr %1, i64 24 - %23 = load i64, ptr %21, align 8, !tbaa !56 + %21 = load i64, ptr %19, align 8, !tbaa !56 + store i64 %21, ptr %18, align 8, !tbaa !56 + store i64 %20, ptr %19, align 8, !tbaa !56 + %22 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %23 = getelementptr inbounds nuw i8, ptr %1, i64 24 %24 = load i64, ptr %22, align 8, !tbaa !56 - store i64 %24, ptr %21, align 8, !tbaa !56 - store i64 %23, ptr %22, align 8, !tbaa !56 - %25 = getelementptr inbounds nuw i8, ptr %0, i64 32 - %26 = getelementptr inbounds nuw i8, ptr %1, i64 32 - %27 = load ptr, ptr %25, align 8, !tbaa !194 + %25 = load i64, ptr %23, align 8, !tbaa !56 + store i64 %25, ptr %22, align 8, !tbaa !56 + store i64 %24, ptr %23, align 8, !tbaa !56 + %26 = getelementptr inbounds nuw i8, ptr %0, i64 32 + %27 = getelementptr inbounds nuw i8, ptr %1, i64 32 %28 = load ptr, ptr %26, align 8, !tbaa !194 - store ptr %28, ptr %25, align 8, !tbaa !194 - store ptr %27, ptr %26, align 8, !tbaa !194 + %29 = load ptr, ptr %27, align 8, !tbaa !194 + store ptr %29, ptr %26, align 8, !tbaa !194 + store ptr %28, ptr %27, align 8, !tbaa !194 store i64 %10, ptr %4, align 8, !tbaa !62 - store ptr %5, ptr %6, align 8, !tbaa !62 - br label %51 + store i64 %11, ptr %6, align 8, !tbaa !62 + br label %52 -29: ; preds = %2 +30: ; preds = %2 call void @llvm.lifetime.start.p0(ptr nonnull %3) call void @_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEEC2ERKSA_(ptr noundef nonnull align 8 dereferenceable(48) %3, ptr noundef nonnull align 8 dereferenceable(48) %0) - %30 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEEaSERKSA_(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(48) %1) - to label %31 unwind label %49 - -31: ; preds = %29 - %32 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEEaSERKSA_(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef nonnull align 8 dereferenceable(48) %3) - to label %33 unwind label %49 - -33: ; preds = %31 - %34 = getelementptr inbounds nuw i8, ptr %3, i64 40 - %35 = load ptr, ptr %34, align 8, !tbaa !97 - %36 = icmp ne ptr %35, null - %37 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %38 = load i64, ptr %37, align 8 - %.not.i.i = icmp eq i64 %38, 1 - %or.cond.i.i = select i1 %36, i1 true, i1 %.not.i.i - br i1 %or.cond.i.i, label %_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev.exit, label %39 - -39: ; preds = %33 + %31 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEEaSERKSA_(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(48) %1) + to label %32 unwind label %50 + +32: ; preds = %30 + %33 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEEaSERKSA_(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef nonnull align 8 dereferenceable(48) %3) + to label %34 unwind label %50 + +34: ; preds = %32 + %35 = getelementptr inbounds nuw i8, ptr %3, i64 40 + %36 = load ptr, ptr %35, align 8, !tbaa !97 + %37 = icmp ne ptr %36, null + %38 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %39 = load i64, ptr %38, align 8 + %.not.i.i = icmp eq i64 %39, 1 + %or.cond.i.i = select i1 %37, i1 true, i1 %.not.i.i + br i1 %or.cond.i.i, label %_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev.exit, label %40 + +40: ; preds = %34 invoke void @_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEE8InnerMap5clearEv(ptr noundef nonnull align 8 dereferenceable(48) %3) - to label %40 unwind label %46 + to label %41 unwind label %47 -40: ; preds = %39 - %41 = load i64, ptr %34, align 8, !tbaa !62 - %42 = icmp eq i64 %41, 0 - br i1 %42, label %43, label %_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev.exit +41: ; preds = %40 + %42 = load i64, ptr %35, align 8, !tbaa !62 + %43 = icmp eq i64 %42, 0 + br i1 %43, label %44, label %_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev.exit -43: ; preds = %40 - %44 = getelementptr inbounds nuw i8, ptr %3, i64 32 - %45 = load ptr, ptr %44, align 8, !tbaa !96 - call void @_ZdlPv(ptr noundef %45) #30 +44: ; preds = %41 + %45 = getelementptr inbounds nuw i8, ptr %3, i64 32 + %46 = load ptr, ptr %45, align 8, !tbaa !96 + call void @_ZdlPv(ptr noundef %46) #30 br label %_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev.exit -46: ; preds = %39 - %47 = landingpad { ptr, i32 } +47: ; preds = %40 + %48 = landingpad { ptr, i32 } catch ptr null - %48 = extractvalue { ptr, i32 } %47, 0 - call void @__clang_call_terminate(ptr %48) #29 + %49 = extractvalue { ptr, i32 } %48, 0 + call void @__clang_call_terminate(ptr %49) #29 unreachable -_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev.exit: ; preds = %33, %40, %43 +_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev.exit: ; preds = %34, %41, %44 call void @llvm.lifetime.end.p0(ptr nonnull %3) - br label %51 + br label %52 -49: ; preds = %31, %29 - %50 = landingpad { ptr, i32 } +50: ; preds = %32, %30 + %51 = landingpad { ptr, i32 } cleanup call void @_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %3) #30 call void @llvm.lifetime.end.p0(ptr nonnull %3) - resume { ptr, i32 } %50 + resume { ptr, i32 } %51 -51: ; preds = %_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev.exit, %9 +52: ; preds = %_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev.exit, %9 ret void } diff --git a/bench/opencv/optimized/map_field.ll b/bench/opencv/optimized/map_field.ll index 346f0c17c0c..2cc6e3a4cd2 100644 --- a/bench/opencv/optimized/map_field.ll +++ b/bench/opencv/optimized/map_field.ll @@ -4169,100 +4169,101 @@ define hidden void @_ZN6google8protobuf8internal15DynamicMapField4SwapEPNS1_12Ma define linkonce_odr hidden void @_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEE4swapERS4_(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(48) %1) local_unnamed_addr #6 comdat align 2 personality ptr @__gxx_personality_v0 { %3 = alloca %"class.google::protobuf::Map", align 8 %4 = getelementptr inbounds nuw i8, ptr %0, i64 40 - %5 = load ptr, ptr %4, align 8, !tbaa !59 + %5 = load ptr, ptr %4, align 8 %6 = getelementptr inbounds nuw i8, ptr %1, i64 40 %7 = load ptr, ptr %6, align 8 %8 = icmp eq ptr %5, %7 - br i1 %8, label %9, label %29 + br i1 %8, label %9, label %30 9: ; preds = %2 %10 = ptrtoint ptr %7 to i64 - %11 = load i64, ptr %0, align 8, !tbaa !85 - %12 = load i64, ptr %1, align 8, !tbaa !85 - store i64 %12, ptr %0, align 8, !tbaa !85 - store i64 %11, ptr %1, align 8, !tbaa !85 - %13 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %14 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %15 = load i64, ptr %13, align 8, !tbaa !85 + %11 = ptrtoint ptr %5 to i64 + %12 = load i64, ptr %0, align 8, !tbaa !85 + %13 = load i64, ptr %1, align 8, !tbaa !85 + store i64 %13, ptr %0, align 8, !tbaa !85 + store i64 %12, ptr %1, align 8, !tbaa !85 + %14 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %15 = getelementptr inbounds nuw i8, ptr %1, i64 8 %16 = load i64, ptr %14, align 8, !tbaa !85 - store i64 %16, ptr %13, align 8, !tbaa !85 - store i64 %15, ptr %14, align 8, !tbaa !85 - %17 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %18 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %19 = load i64, ptr %17, align 8, !tbaa !85 + %17 = load i64, ptr %15, align 8, !tbaa !85 + store i64 %17, ptr %14, align 8, !tbaa !85 + store i64 %16, ptr %15, align 8, !tbaa !85 + %18 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %19 = getelementptr inbounds nuw i8, ptr %1, i64 16 %20 = load i64, ptr %18, align 8, !tbaa !85 - store i64 %20, ptr %17, align 8, !tbaa !85 - store i64 %19, ptr %18, align 8, !tbaa !85 - %21 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %22 = getelementptr inbounds nuw i8, ptr %1, i64 24 - %23 = load i64, ptr %21, align 8, !tbaa !85 + %21 = load i64, ptr %19, align 8, !tbaa !85 + store i64 %21, ptr %18, align 8, !tbaa !85 + store i64 %20, ptr %19, align 8, !tbaa !85 + %22 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %23 = getelementptr inbounds nuw i8, ptr %1, i64 24 %24 = load i64, ptr %22, align 8, !tbaa !85 - store i64 %24, ptr %21, align 8, !tbaa !85 - store i64 %23, ptr %22, align 8, !tbaa !85 - %25 = getelementptr inbounds nuw i8, ptr %0, i64 32 - %26 = getelementptr inbounds nuw i8, ptr %1, i64 32 - %27 = load ptr, ptr %25, align 8, !tbaa !121 + %25 = load i64, ptr %23, align 8, !tbaa !85 + store i64 %25, ptr %22, align 8, !tbaa !85 + store i64 %24, ptr %23, align 8, !tbaa !85 + %26 = getelementptr inbounds nuw i8, ptr %0, i64 32 + %27 = getelementptr inbounds nuw i8, ptr %1, i64 32 %28 = load ptr, ptr %26, align 8, !tbaa !121 - store ptr %28, ptr %25, align 8, !tbaa !121 - store ptr %27, ptr %26, align 8, !tbaa !121 + %29 = load ptr, ptr %27, align 8, !tbaa !121 + store ptr %29, ptr %26, align 8, !tbaa !121 + store ptr %28, ptr %27, align 8, !tbaa !121 store i64 %10, ptr %4, align 8, !tbaa !47 - store ptr %5, ptr %6, align 8, !tbaa !47 - br label %51 + store i64 %11, ptr %6, align 8, !tbaa !47 + br label %52 -29: ; preds = %2 +30: ; preds = %2 call void @llvm.lifetime.start.p0(ptr nonnull %3) call void @_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(48) %3, ptr noundef nonnull align 8 dereferenceable(48) %0) - %30 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(48) %1) - to label %31 unwind label %49 - -31: ; preds = %29 - %32 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef nonnull align 8 dereferenceable(48) %3) - to label %33 unwind label %49 - -33: ; preds = %31 - %34 = getelementptr inbounds nuw i8, ptr %3, i64 40 - %35 = load ptr, ptr %34, align 8, !tbaa !59 - %36 = icmp ne ptr %35, null - %37 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %38 = load i64, ptr %37, align 8 - %.not.i.i = icmp eq i64 %38, 1 - %or.cond.i.i = select i1 %36, i1 true, i1 %.not.i.i - br i1 %or.cond.i.i, label %_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev.exit, label %39 - -39: ; preds = %33 + %31 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(48) %1) + to label %32 unwind label %50 + +32: ; preds = %30 + %33 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef nonnull align 8 dereferenceable(48) %3) + to label %34 unwind label %50 + +34: ; preds = %32 + %35 = getelementptr inbounds nuw i8, ptr %3, i64 40 + %36 = load ptr, ptr %35, align 8, !tbaa !59 + %37 = icmp ne ptr %36, null + %38 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %39 = load i64, ptr %38, align 8 + %.not.i.i = icmp eq i64 %39, 1 + %or.cond.i.i = select i1 %37, i1 true, i1 %.not.i.i + br i1 %or.cond.i.i, label %_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev.exit, label %40 + +40: ; preds = %34 invoke void @_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEE8InnerMap5clearEv(ptr noundef nonnull align 8 dereferenceable(48) %3) - to label %40 unwind label %46 + to label %41 unwind label %47 -40: ; preds = %39 - %41 = load i64, ptr %34, align 8, !tbaa !47 - %42 = icmp eq i64 %41, 0 - br i1 %42, label %43, label %_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev.exit - -43: ; preds = %40 - %44 = getelementptr inbounds nuw i8, ptr %3, i64 32 - %45 = load ptr, ptr %44, align 8, !tbaa !58 - call void @_ZdlPv(ptr noundef %45) #29 +41: ; preds = %40 + %42 = load i64, ptr %35, align 8, !tbaa !47 + %43 = icmp eq i64 %42, 0 + br i1 %43, label %44, label %_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev.exit + +44: ; preds = %41 + %45 = getelementptr inbounds nuw i8, ptr %3, i64 32 + %46 = load ptr, ptr %45, align 8, !tbaa !58 + call void @_ZdlPv(ptr noundef %46) #29 br label %_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev.exit -46: ; preds = %39 - %47 = landingpad { ptr, i32 } +47: ; preds = %40 + %48 = landingpad { ptr, i32 } catch ptr null - %48 = extractvalue { ptr, i32 } %47, 0 - call void @__clang_call_terminate(ptr %48) #28 + %49 = extractvalue { ptr, i32 } %48, 0 + call void @__clang_call_terminate(ptr %49) #28 unreachable -_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev.exit: ; preds = %33, %40, %43 +_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev.exit: ; preds = %34, %41, %44 call void @llvm.lifetime.end.p0(ptr nonnull %3) - br label %51 + br label %52 -49: ; preds = %31, %29 - %50 = landingpad { ptr, i32 } +50: ; preds = %32, %30 + %51 = landingpad { ptr, i32 } cleanup call void @_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %3) #29 call void @llvm.lifetime.end.p0(ptr nonnull %3) - resume { ptr, i32 } %50 + resume { ptr, i32 } %51 -51: ; preds = %_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev.exit, %9 +52: ; preds = %_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev.exit, %9 ret void } diff --git a/bench/openusd/optimized/layer.ll b/bench/openusd/optimized/layer.ll index 4f732f9f2b1..a0e079c01cc 100644 --- a/bench/openusd/optimized/layer.ll +++ b/bench/openusd/optimized/layer.ll @@ -55035,89 +55035,84 @@ define linkonce_odr void @_ZN32pxrInternal_v0_24__pxrReserved__7VtValue15Uncheck %6 = ptrtoint ptr %5 to i64 %7 = and i64 %6, 4 %.not.i.i = icmp eq i64 %7, 0 - br i1 %.not.i.i, label %27, label %8 + br i1 %.not.i.i, label %26, label %.noexc -8: ; preds = %2 - %9 = and i64 %6, -8 - %10 = inttoptr i64 %9 to ptr - %11 = getelementptr inbounds nuw i8, ptr %10, i64 176 - %12 = load ptr, ptr %11, align 8, !noalias !709 - invoke void %12(ptr dead_on_unwind nonnull writable sret(%"class.pxrInternal_v0_24__pxrReserved__::VtValue") align 8 %3, ptr noundef nonnull align 8 dereferenceable(16) %1) - to label %.noexc unwind label %37 - -.noexc: ; preds = %8 +.noexc: ; preds = %2 + %8 = and i64 %6, -8 + %9 = inttoptr i64 %8 to ptr + %10 = getelementptr inbounds nuw i8, ptr %9, i64 176 + %11 = load ptr, ptr %10, align 8, !noalias !709 + call void %11(ptr dead_on_unwind nonnull writable sret(%"class.pxrInternal_v0_24__pxrReserved__::VtValue") align 8 %3, ptr noundef nonnull align 8 dereferenceable(16) %1) %.not.i.i.i = icmp eq ptr %1, %3 - br i1 %.not.i.i.i, label %_ZN32pxrInternal_v0_24__pxrReserved__7VtValueaSEOS0_.exit.i.i, label %13 + br i1 %.not.i.i.i, label %_ZN32pxrInternal_v0_24__pxrReserved__7VtValueaSEOS0_.exit.i.i, label %12 -13: ; preds = %.noexc +12: ; preds = %.noexc call void @_ZN32pxrInternal_v0_24__pxrReserved__7VtValue5_MoveERS0_S1_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(16) %1) #33 br label %_ZN32pxrInternal_v0_24__pxrReserved__7VtValueaSEOS0_.exit.i.i -_ZN32pxrInternal_v0_24__pxrReserved__7VtValueaSEOS0_.exit.i.i: ; preds = %13, %.noexc - %14 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %15 = load ptr, ptr %14, align 8 - %16 = ptrtoint ptr %15 to i64 - %.not.i.i.i.i = icmp eq ptr %15, null - %17 = and i64 %16, 3 - %18 = icmp eq i64 %17, 3 - %or.cond.i.i.i.i = or i1 %.not.i.i.i.i, %18 - br i1 %or.cond.i.i.i.i, label %27, label %19 +_ZN32pxrInternal_v0_24__pxrReserved__7VtValueaSEOS0_.exit.i.i: ; preds = %12, %.noexc + %13 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %14 = load ptr, ptr %13, align 8 + %15 = ptrtoint ptr %14 to i64 + %.not.i.i.i.i = icmp eq ptr %14, null + %16 = and i64 %15, 3 + %17 = icmp eq i64 %16, 3 + %or.cond.i.i.i.i = or i1 %.not.i.i.i.i, %17 + br i1 %or.cond.i.i.i.i, label %26, label %18 -19: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__7VtValueaSEOS0_.exit.i.i - %20 = and i64 %16, -8 - %21 = inttoptr i64 %20 to ptr - %22 = getelementptr inbounds nuw i8, ptr %21, i64 32 - %23 = load ptr, ptr %22, align 8 - invoke void %23(ptr noundef nonnull align 8 dereferenceable(16) %3) - to label %27 unwind label %24 +18: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__7VtValueaSEOS0_.exit.i.i + %19 = and i64 %15, -8 + %20 = inttoptr i64 %19 to ptr + %21 = getelementptr inbounds nuw i8, ptr %20, i64 32 + %22 = load ptr, ptr %21, align 8 + invoke void %22(ptr noundef nonnull align 8 dereferenceable(16) %3) + to label %26 unwind label %23 -24: ; preds = %19 - %25 = landingpad { ptr, i32 } +23: ; preds = %18 + %24 = landingpad { ptr, i32 } catch ptr null - %26 = extractvalue { ptr, i32 } %25, 0 - call void @__clang_call_terminate(ptr %26) #32 + %25 = extractvalue { ptr, i32 } %24, 0 + call void @__clang_call_terminate(ptr %25) #32 unreachable -27: ; preds = %19, %_ZN32pxrInternal_v0_24__pxrReserved__7VtValueaSEOS0_.exit.i.i, %2 +26: ; preds = %18, %_ZN32pxrInternal_v0_24__pxrReserved__7VtValueaSEOS0_.exit.i.i, %2 call void @llvm.lifetime.end.p0(ptr nonnull %3) - %.sroa.0.0.copyload.i.i.i.i = load ptr, ptr %1, align 8 + %.sroa.0.0.copyload.i.i.i.i = load i64, ptr %1, align 8 store i64 0, ptr %1, align 8 - store ptr %.sroa.0.0.copyload.i.i.i.i, ptr %0, align 8 - %28 = load ptr, ptr %4, align 8 - %29 = ptrtoint ptr %28 to i64 - %.not.i = icmp eq ptr %28, null - %30 = and i64 %29, 3 - %31 = icmp eq i64 %30, 3 - %or.cond.i = or i1 %.not.i, %31 - br i1 %or.cond.i, label %46, label %32 + store i64 %.sroa.0.0.copyload.i.i.i.i, ptr %0, align 8 + %27 = load ptr, ptr %4, align 8 + %28 = ptrtoint ptr %27 to i64 + %.not.i = icmp eq ptr %27, null + %29 = and i64 %28, 3 + %30 = icmp eq i64 %29, 3 + %or.cond.i = or i1 %.not.i, %30 + br i1 %or.cond.i, label %43, label %31 -32: ; preds = %27 - %33 = and i64 %29, -8 - %34 = inttoptr i64 %33 to ptr - %35 = getelementptr inbounds nuw i8, ptr %34, i64 32 - %36 = load ptr, ptr %35, align 8 - invoke void %36(ptr noundef nonnull align 8 dereferenceable(16) %1) - to label %46 unwind label %37 +31: ; preds = %26 + %32 = and i64 %28, -8 + %33 = inttoptr i64 %32 to ptr + %34 = getelementptr inbounds nuw i8, ptr %33, i64 32 + %35 = load ptr, ptr %34, align 8 + invoke void %35(ptr noundef nonnull align 8 dereferenceable(16) %1) + to label %43 unwind label %36 -37: ; preds = %32, %8 - %38 = phi ptr [ %.sroa.0.0.copyload.i.i.i.i, %32 ], [ null, %8 ] - %39 = landingpad { ptr, i32 } +36: ; preds = %31 + %37 = landingpad { ptr, i32 } cleanup - %40 = ptrtoint ptr %38 to i64 - %41 = and i64 %40, 7 - %.not.i.i4 = icmp eq i64 %41, 0 - br i1 %.not.i.i4, label %_ZN32pxrInternal_v0_24__pxrReserved__7TfTokenD2Ev.exit, label %42 + %38 = and i64 %.sroa.0.0.copyload.i.i.i.i, 7 + %.not.i.i4 = icmp eq i64 %38, 0 + br i1 %.not.i.i4, label %_ZN32pxrInternal_v0_24__pxrReserved__7TfTokenD2Ev.exit, label %39 -42: ; preds = %37 - %43 = and i64 %40, -8 - %44 = inttoptr i64 %43 to ptr - %45 = atomicrmw sub ptr %44, i32 2 release, align 4 +39: ; preds = %36 + %40 = and i64 %.sroa.0.0.copyload.i.i.i.i, -8 + %41 = inttoptr i64 %40 to ptr + %42 = atomicrmw sub ptr %41, i32 2 release, align 4 br label %_ZN32pxrInternal_v0_24__pxrReserved__7TfTokenD2Ev.exit -_ZN32pxrInternal_v0_24__pxrReserved__7TfTokenD2Ev.exit: ; preds = %37, %42 - resume { ptr, i32 } %39 +_ZN32pxrInternal_v0_24__pxrReserved__7TfTokenD2Ev.exit: ; preds = %36, %39 + resume { ptr, i32 } %37 -46: ; preds = %27, %32 +43: ; preds = %26, %31 store ptr null, ptr %4, align 8 ret void } diff --git a/bench/proj/optimized/param.ll b/bench/proj/optimized/param.ll index 5d12c6a95cc..cbe7a914b7e 100644 --- a/bench/proj/optimized/param.ll +++ b/bench/proj/optimized/param.ll @@ -206,8 +206,6 @@ declare i32 @strcmp(ptr noundef captures(none), ptr noundef captures(none)) loca ; Function Attrs: mustprogress uwtable define i64 @_Z8pj_paramP6pj_ctxP8ARG_listPKc(ptr noundef %0, ptr noundef %1, ptr noundef %2) local_unnamed_addr #8 { - %.sroa.0 = alloca double, align 8 - store double 0.000000e+00, ptr %.sroa.0, align 8 %4 = icmp eq ptr %0, null br i1 %4, label %5, label %7 @@ -216,7 +214,7 @@ define i64 @_Z8pj_paramP6pj_ctxP8ARG_listPKc(ptr noundef %0, ptr noundef %1, ptr br label %7 7: ; preds = %5, %3 - %.028 = phi ptr [ %6, %5 ], [ %0, %3 ] + %.048 = phi ptr [ %6, %5 ], [ %0, %3 ] %8 = getelementptr inbounds nuw i8, ptr %2, i64 1 %9 = load i8, ptr %2, align 1, !tbaa !3 %10 = sext i8 %9 to i32 @@ -274,126 +272,98 @@ define i64 @_Z8pj_paramP6pj_ctxP8ARG_listPKc(ptr noundef %0, ptr noundef %1, ptr _Z15pj_param_existsP8ARG_listPKc.exit: ; preds = %30, %33, %15, %28 %.020.i = phi ptr [ %.02127.i, %28 ], [ null, %15 ], [ null, %33 ], [ null, %30 ] %35 = icmp eq i8 %9, 116 - br i1 %35, label %36, label %39 + br i1 %35, label %36, label %38 36: ; preds = %_Z15pj_param_existsP8ARG_listPKc.exit %37 = icmp ne ptr %.020.i, null - %38 = zext i1 %37 to i32 - store i32 %38, ptr %.sroa.0, align 8, !tbaa !3 + %.sroa.0.0.insert.ext = zext i1 %37 to i64 br label %.loopexit -39: ; preds = %_Z15pj_param_existsP8ARG_listPKc.exit - %40 = icmp eq ptr %.020.i, null - br i1 %40, label %41, label %45 - -41: ; preds = %39 - switch i8 %9, label %.loopexit [ - i8 98, label %42 - i8 105, label %42 - i8 100, label %43 - i8 114, label %43 - i8 115, label %44 - ] - -42: ; preds = %41, %41 - store i32 0, ptr %.sroa.0, align 8, !tbaa !3 - br label %.loopexit - -43: ; preds = %41, %41 - store double 0.000000e+00, ptr %.sroa.0, align 8, !tbaa !3 - br label %.loopexit - -44: ; preds = %41 - store ptr null, ptr %.sroa.0, align 8, !tbaa !3 - br label %.loopexit - -45: ; preds = %39 - %46 = getelementptr inbounds nuw i8, ptr %.020.i, i64 8 - %47 = load i8, ptr %46, align 8, !tbaa !3 - %48 = or i8 %47, 1 - store i8 %48, ptr %46, align 8, !tbaa !3 - %49 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %8) #15 - %50 = getelementptr inbounds nuw i8, ptr %.020.i, i64 9 - %51 = and i64 %49, 4294967295 - %52 = getelementptr inbounds nuw i8, ptr %50, i64 %51 - %53 = load i8, ptr %52, align 1, !tbaa !3 - %54 = icmp eq i8 %53, 61 - %spec.select.idx = zext i1 %54 to i64 - %spec.select = getelementptr inbounds nuw i8, ptr %52, i64 %spec.select.idx +38: ; preds = %_Z15pj_param_existsP8ARG_listPKc.exit + %39 = icmp eq ptr %.020.i, null + br i1 %39, label %.loopexit, label %40 + +40: ; preds = %38 + %41 = getelementptr inbounds nuw i8, ptr %.020.i, i64 8 + %42 = load i8, ptr %41, align 8, !tbaa !3 + %43 = or i8 %42, 1 + store i8 %43, ptr %41, align 8, !tbaa !3 + %44 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %8) #15 + %45 = getelementptr inbounds nuw i8, ptr %.020.i, i64 9 + %46 = and i64 %44, 4294967295 + %47 = getelementptr inbounds nuw i8, ptr %45, i64 %46 + %48 = load i8, ptr %47, align 1, !tbaa !3 + %49 = icmp eq i8 %48, 61 + %spec.select.idx = zext i1 %49 to i64 + %spec.select = getelementptr inbounds nuw i8, ptr %47, i64 %spec.select.idx switch i8 %9, label %.loopexit [ - i8 105, label %55 - i8 100, label %65 - i8 114, label %67 - i8 115, label %69 - i8 98, label %70 + i8 105, label %50 + i8 100, label %59 + i8 114, label %62 + i8 115, label %65 + i8 98, label %67 ] -55: ; preds = %45 - %56 = tail call i64 @strtol(ptr noundef nonnull captures(none) %spec.select, ptr noundef null, i32 noundef 10) #17 - %57 = trunc i64 %56 to i32 - store i32 %57, ptr %.sroa.0, align 8, !tbaa !3 - %58 = load i8, ptr %spec.select, align 1, !tbaa !3 - %.not37 = icmp eq i8 %58, 0 - br i1 %.not37, label %.loopexit, label %.lr.ph - -.lr.ph: ; preds = %55, %62 - %59 = phi i8 [ %64, %62 ], [ %58, %55 ] - %.038 = phi ptr [ %63, %62 ], [ %spec.select, %55 ] - %60 = add i8 %59, -48 - %or.cond = icmp ult i8 %60, 10 - br i1 %or.cond, label %62, label %61 - -61: ; preds = %.lr.ph - tail call void @_Z22proj_context_errno_setP6pj_ctxi(ptr noundef %.028, i32 noundef 1027) - store i32 0, ptr %.sroa.0, align 8, !tbaa !3 - br label %62 - -62: ; preds = %.lr.ph, %61 - %63 = getelementptr inbounds nuw i8, ptr %.038, i64 1 - %64 = load i8, ptr %63, align 1, !tbaa !3 - %.not = icmp eq i8 %64, 0 +50: ; preds = %40 + %51 = tail call i64 @strtol(ptr noundef nonnull captures(none) %spec.select, ptr noundef null, i32 noundef 10) #17 + %.sroa.0.0.insert.ext32 = and i64 %51, 4294967295 + %52 = load i8, ptr %spec.select, align 1, !tbaa !3 + %.not55 = icmp eq i8 %52, 0 + br i1 %.not55, label %.loopexit, label %.lr.ph + +.lr.ph: ; preds = %50, %56 + %53 = phi i8 [ %58, %56 ], [ %52, %50 ] + %.057 = phi ptr [ %57, %56 ], [ %spec.select, %50 ] + %.sroa.0.356 = phi i64 [ %.sroa.0.4, %56 ], [ %.sroa.0.0.insert.ext32, %50 ] + %54 = add i8 %53, -48 + %or.cond = icmp ult i8 %54, 10 + br i1 %or.cond, label %56, label %55 + +55: ; preds = %.lr.ph + tail call void @_Z22proj_context_errno_setP6pj_ctxi(ptr noundef %.048, i32 noundef 1027) + br label %56 + +56: ; preds = %.lr.ph, %55 + %.sroa.0.4 = phi i64 [ 0, %55 ], [ %.sroa.0.356, %.lr.ph ] + %57 = getelementptr inbounds nuw i8, ptr %.057, i64 1 + %58 = load i8, ptr %57, align 1, !tbaa !3 + %.not = icmp eq i8 %58, 0 br i1 %.not, label %.loopexit, label %.lr.ph, !llvm.loop !21 -65: ; preds = %45 - %66 = tail call noundef double @_Z7pj_atofPKc(ptr noundef nonnull %spec.select) - store double %66, ptr %.sroa.0, align 8, !tbaa !3 +59: ; preds = %40 + %60 = tail call noundef double @_Z7pj_atofPKc(ptr noundef nonnull %spec.select) + %61 = bitcast double %60 to i64 br label %.loopexit -67: ; preds = %45 - %68 = tail call noundef double @_Z10dmstor_ctxP6pj_ctxPKcPPc(ptr noundef %.028, ptr noundef nonnull %spec.select, ptr noundef null) - store double %68, ptr %.sroa.0, align 8, !tbaa !3 +62: ; preds = %40 + %63 = tail call noundef double @_Z10dmstor_ctxP6pj_ctxPKcPPc(ptr noundef %.048, ptr noundef nonnull %spec.select, ptr noundef null) + %64 = bitcast double %63 to i64 br label %.loopexit -69: ; preds = %45 - store ptr %spec.select, ptr %.sroa.0, align 8, !tbaa !3 +65: ; preds = %40 + %66 = ptrtoint ptr %spec.select to i64 br label %.loopexit -70: ; preds = %45 - %71 = load i8, ptr %spec.select, align 1, !tbaa !3 - switch i8 %71, label %74 [ - i8 70, label %72 - i8 102, label %72 - i8 0, label %73 - i8 84, label %73 - i8 116, label %73 +67: ; preds = %40 + %68 = load i8, ptr %spec.select, align 1, !tbaa !3 + switch i8 %68, label %70 [ + i8 70, label %.loopexit + i8 102, label %.loopexit + i8 0, label %69 + i8 84, label %69 + i8 116, label %69 ] -72: ; preds = %70, %70 - store i32 0, ptr %.sroa.0, align 8, !tbaa !3 - br label %.loopexit - -73: ; preds = %70, %70, %70 - store i32 1, ptr %.sroa.0, align 8, !tbaa !3 +69: ; preds = %67, %67, %67 br label %.loopexit -74: ; preds = %70 - tail call void @_Z22proj_context_errno_setP6pj_ctxi(ptr noundef %.028, i32 noundef 1027) - store i32 0, ptr %.sroa.0, align 8, !tbaa !3 +70: ; preds = %67 + tail call void @_Z22proj_context_errno_setP6pj_ctxi(ptr noundef %.048, i32 noundef 1027) br label %.loopexit -.loopexit: ; preds = %62, %55, %45, %65, %67, %69, %74, %73, %72, %41, %42, %43, %44, %36 - %.sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.34354549 = load i64, ptr %.sroa.0, align 8 - ret i64 %.sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.34354549 +.loopexit: ; preds = %56, %50, %38, %40, %59, %62, %65, %70, %69, %67, %67, %36 + %.sroa.0.0 = phi i64 [ %.sroa.0.0.insert.ext, %36 ], [ 0, %40 ], [ %61, %59 ], [ %64, %62 ], [ %66, %65 ], [ 0, %70 ], [ 1, %69 ], [ 0, %67 ], [ 0, %67 ], [ 0, %38 ], [ %.sroa.0.0.insert.ext32, %50 ], [ %.sroa.0.4, %56 ] + ret i64 %.sroa.0.0 } declare noundef ptr @_Z18pj_get_default_ctxv() local_unnamed_addr #9 diff --git a/bench/raylib/optimized/rcore.ll b/bench/raylib/optimized/rcore.ll index 311920251d4..8a6d63c1ed6 100644 --- a/bench/raylib/optimized/rcore.ll +++ b/bench/raylib/optimized/rcore.ll @@ -45071,7 +45071,7 @@ define void @GetScreenToWorldRayEx(ptr dead_on_unwind noalias writable writeonly %125 = fmul float %124, -2.000000e+00 %126 = fdiv float %125, %109 store float %112, ptr %7, align 8 - store float 0.000000e+00, ptr %84, align 4 + store i32 0, ptr %84, align 4 %.sroa.578.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 8 store float %116, ptr %.sroa.578.0..sroa_idx, align 8 %.sroa.679.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 12 @@ -45088,7 +45088,8 @@ define void @GetScreenToWorldRayEx(ptr dead_on_unwind noalias writable writeonly store i64 0, ptr %.sroa.1085.0..sroa_idx, align 8 %.sroa.1086.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 56 store float -1.000000e+00, ptr %.sroa.1086.0..sroa_idx, align 8 - br label %.sink.split + store i32 0, ptr %87, align 4 + br label %150 127: ; preds = %5 %128 = sitofp i32 %3 to double @@ -45128,14 +45129,10 @@ define void @GetScreenToWorldRayEx(ptr dead_on_unwind noalias writable writeonly store float 0xBFF0001500000000, ptr %.sroa.14.0..sroa_idx, align 4 %.sroa.16.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 52 store float 0.000000e+00, ptr %.sroa.16.0..sroa_idx, align 4 - br label %.sink.split - -.sink.split: ; preds = %90, %127 - %.sink = phi float [ 1.000000e+00, %127 ], [ 0.000000e+00, %90 ] - store float %.sink, ptr %87, align 4 + store float 1.000000e+00, ptr %87, align 4 br label %150 -150: ; preds = %.sink.split, %5 +150: ; preds = %5, %127, %90 %.sroa.041.0.vec.insert = insertelement <2 x float> poison, float %11, i64 0 %.sroa.041.4.vec.insert = insertelement <2 x float> %.sroa.041.0.vec.insert, float %15, i64 1 %151 = tail call { <2 x float>, float } @Vector3Unproject(<2 x float> %.sroa.041.4.vec.insert, float 0.000000e+00, ptr noundef nonnull byval(%struct.Matrix) align 8 %7, ptr noundef nonnull byval(%struct.Matrix) align 8 %6) @@ -45375,14 +45372,14 @@ define <2 x float> @GetWorldToScreenEx(<2 x float> %0, float %1, ptr noundef rea br label %58 58: ; preds = %5, %35, %8 - %.sroa.067.0 = phi float [ 1.000000e+00, %5 ], [ %27, %8 ], [ %48, %35 ] - %.sroa.44.0 = phi float [ 0.000000e+00, %5 ], [ -1.000000e+00, %8 ], [ 0.000000e+00, %35 ] - %.sroa.47.0 = phi float [ 1.000000e+00, %5 ], [ 0.000000e+00, %8 ], [ 1.000000e+00, %35 ] - %.sroa.25.0 = phi float [ 0.000000e+00, %5 ], [ 0.000000e+00, %8 ], [ %57, %35 ] - %.sroa.2273.0 = phi float [ 0.000000e+00, %5 ], [ %34, %8 ], [ 0.000000e+00, %35 ] - %.sroa.1872.0 = phi float [ 1.000000e+00, %5 ], [ %28, %8 ], [ %49, %35 ] - %.sroa.1370.0 = phi float [ 0.000000e+00, %5 ], [ 0.000000e+00, %8 ], [ %53, %35 ] - %.sroa.1069.0 = phi float [ 0.000000e+00, %5 ], [ %31, %8 ], [ 0.000000e+00, %35 ] + %.sroa.071.0 = phi float [ 1.000000e+00, %5 ], [ %27, %8 ], [ %48, %35 ] + %.sroa.46.0 = phi float [ 0.000000e+00, %5 ], [ -1.000000e+00, %8 ], [ 0.000000e+00, %35 ] + %.sroa.49.0 = phi float [ 1.000000e+00, %5 ], [ 0.000000e+00, %8 ], [ 1.000000e+00, %35 ] + %.sroa.2676.0 = phi float [ 0.000000e+00, %5 ], [ 0.000000e+00, %8 ], [ %57, %35 ] + %.sroa.23.0 = phi float [ 0.000000e+00, %5 ], [ %34, %8 ], [ 0.000000e+00, %35 ] + %.sroa.19.0 = phi float [ 1.000000e+00, %5 ], [ %28, %8 ], [ %49, %35 ] + %.sroa.1374.0 = phi float [ 0.000000e+00, %5 ], [ 0.000000e+00, %8 ], [ %53, %35 ] + %.sroa.1073.0 = phi float [ 0.000000e+00, %5 ], [ %31, %8 ], [ 0.000000e+00, %35 ] %59 = getelementptr inbounds nuw i8, ptr %2, i64 12 %60 = getelementptr inbounds nuw i8, ptr %2, i64 24 %.sroa.021.0.copyload = load <2 x float>, ptr %2, align 8 @@ -45469,16 +45466,16 @@ define <2 x float> @GetWorldToScreenEx(<2 x float> %0, float %1, ptr noundef rea %123 = tail call float @llvm.fmuladd.f32(float %1, float 0.000000e+00, float %122) %124 = fadd float %123, 1.000000e+00 %125 = fmul float %116, 0.000000e+00 - %126 = tail call float @llvm.fmuladd.f32(float %.sroa.067.0, float %112, float %125) - %127 = tail call float @llvm.fmuladd.f32(float %.sroa.1069.0, float %120, float %126) - %128 = tail call float @llvm.fmuladd.f32(float %.sroa.1370.0, float %124, float %127) - %129 = fmul float %.sroa.1872.0, %116 + %126 = tail call float @llvm.fmuladd.f32(float %.sroa.071.0, float %112, float %125) + %127 = tail call float @llvm.fmuladd.f32(float %.sroa.1073.0, float %120, float %126) + %128 = tail call float @llvm.fmuladd.f32(float %.sroa.1374.0, float %124, float %127) + %129 = fmul float %.sroa.19.0, %116 %130 = tail call float @llvm.fmuladd.f32(float %112, float 0.000000e+00, float %129) - %131 = tail call float @llvm.fmuladd.f32(float %.sroa.2273.0, float %120, float %130) - %132 = tail call float @llvm.fmuladd.f32(float %.sroa.25.0, float %124, float %131) + %131 = tail call float @llvm.fmuladd.f32(float %.sroa.23.0, float %120, float %130) + %132 = tail call float @llvm.fmuladd.f32(float %.sroa.2676.0, float %124, float %131) %133 = tail call float @llvm.fmuladd.f32(float %112, float 0.000000e+00, float %125) - %134 = tail call float @llvm.fmuladd.f32(float %.sroa.44.0, float %120, float %133) - %135 = tail call float @llvm.fmuladd.f32(float %.sroa.47.0, float %124, float %134) + %134 = tail call float @llvm.fmuladd.f32(float %.sroa.46.0, float %120, float %133) + %135 = tail call float @llvm.fmuladd.f32(float %.sroa.49.0, float %124, float %134) %136 = fdiv float %128, %135 %137 = fadd float %136, 1.000000e+00 %138 = fmul float %137, 5.000000e-01 diff --git a/bench/rayon-rs/optimized/42isjd4q974i3ftt.ll b/bench/rayon-rs/optimized/42isjd4q974i3ftt.ll index 47c752c3260..d9cda44bf9c 100644 --- a/bench/rayon-rs/optimized/42isjd4q974i3ftt.ll +++ b/bench/rayon-rs/optimized/42isjd4q974i3ftt.ll @@ -9,70 +9,71 @@ target triple = "x86_64-unknown-linux-gnu" define hidden void @"_ZN102_$LT$$LP$ExtendA$C$ExtendB$RP$$u20$as$u20$core..iter..traits..collect..Extend$LT$$LP$A$C$B$RP$$GT$$GT$6extend17h3ab0160c369bd089E"(ptr noalias noundef align 8 dereferenceable(48) %0, ptr noalias noundef readonly align 8 captures(none) dereferenceable(24) %1) unnamed_addr #0 personality ptr @rust_eh_personality { %3 = alloca { {}, { { ptr, { ptr, i64 }, i8, {}, [7 x i8] }, { ptr, i8 } } }, align 8 %4 = alloca { { ptr, ptr }, ptr }, align 8 - %.sroa.0.0.copyload3 = load ptr, ptr %1, align 8, !alias.scope !4 + %.sroa.0.0.copyload3 = load i64, ptr %1, align 8, !alias.scope !4 %.sroa.4.0..sroa_idx4 = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.4.0.copyload5 = load i64, ptr %.sroa.4.0..sroa_idx4, align 8, !alias.scope !4 %.sroa.5.0..sroa_idx6 = getelementptr inbounds nuw i8, ptr %1, i64 16 %.sroa.5.0.copyload7 = load i64, ptr %.sroa.5.0..sroa_idx6, align 8, !alias.scope !4 %spec.select.i.i = tail call i64 @llvm.usub.sat.i64(i64 %.sroa.5.0.copyload7, i64 %.sroa.4.0.copyload5) %.not.not = icmp ugt i64 %.sroa.5.0.copyload7, %.sroa.4.0.copyload5 - br i1 %.not.not, label %11, label %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hfa422387680307ceE.llvm.15553549611834190124.exit" + br i1 %.not.not, label %12, label %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hfa422387680307ceE.llvm.15553549611834190124.exit" "_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hfa422387680307ceE.llvm.15553549611834190124.exit": ; preds = %2 call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !8 - %5 = icmp ne ptr %.sroa.0.0.copyload3, null + %5 = icmp ne i64 %.sroa.0.0.copyload3, 0 tail call void @llvm.assume(i1 %5) br label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hd90597a57c0481d5E.exit" -.lr.ph.i.i.preheader: ; preds = %24, %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hf973d6c824bce392E.llvm.15553549611834190124.exit" - %6 = getelementptr inbounds nuw i8, ptr %0, i64 24 +.lr.ph.i.i.preheader: ; preds = %25, %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hf973d6c824bce392E.llvm.15553549611834190124.exit" + %6 = inttoptr i64 %.sroa.0.0.copyload3 to ptr + %7 = getelementptr inbounds nuw i8, ptr %0, i64 24 call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !8 - %7 = icmp ne ptr %.sroa.0.0.copyload3, null - tail call void @llvm.assume(i1 %7) + %8 = icmp ne i64 %.sroa.0.0.copyload3, 0 + tail call void @llvm.assume(i1 %8) store ptr %0, ptr %4, align 8, !noalias !8 - %8 = getelementptr inbounds nuw i8, ptr %4, i64 8 - store ptr %6, ptr %8, align 8, !noalias !8 - %9 = getelementptr inbounds nuw i8, ptr %4, i64 16 - store ptr %.sroa.0.0.copyload3, ptr %9, align 8, !noalias !8 + %9 = getelementptr inbounds nuw i8, ptr %4, i64 8 + store ptr %7, ptr %9, align 8, !noalias !8 + %10 = getelementptr inbounds nuw i8, ptr %4, i64 16 + store ptr %6, ptr %10, align 8, !noalias !8 br label %.lr.ph.i.i .lr.ph.i.i: ; preds = %.lr.ph.i.i.preheader, %.lr.ph.i.i - %.sroa.0.06.i.i = phi i64 [ %10, %.lr.ph.i.i ], [ %.sroa.4.0.copyload5, %.lr.ph.i.i.preheader ] - %10 = add i64 %.sroa.0.06.i.i, 1 + %.sroa.0.06.i.i = phi i64 [ %11, %.lr.ph.i.i ], [ %.sroa.4.0.copyload5, %.lr.ph.i.i.preheader ] + %11 = add i64 %.sroa.0.06.i.i, 1 call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !13 - call void @"_ZN10rayon_core8registry8Registry3new28_$u7b$$u7b$closure$u7d$$u7d$17he3a7c9136cbd966bE.llvm.17633404800605446996"(ptr noalias noundef nonnull sret({ { ptr, { ptr, i64 }, i8, {}, [7 x i8] }, { ptr, i8 } }) align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef nonnull align 8 dereferenceable(8) %9, i64 noundef %.sroa.0.06.i.i), !noalias !18 + call void @"_ZN10rayon_core8registry8Registry3new28_$u7b$$u7b$closure$u7d$$u7d$17he3a7c9136cbd966bE.llvm.17633404800605446996"(ptr noalias noundef nonnull sret({ { ptr, { ptr, i64 }, i8, {}, [7 x i8] }, { ptr, i8 } }) align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef nonnull align 8 dereferenceable(8) %10, i64 noundef %.sroa.0.06.i.i), !noalias !18 call void @"_ZN102_$LT$$LP$ExtendA$C$ExtendB$RP$$u20$as$u20$core..iter..traits..collect..Extend$LT$$LP$A$C$B$RP$$GT$$GT$6extend6extend28_$u7b$$u7b$closure$u7d$$u7d$17h6cd47cdaf291092dE.llvm.17633404800605446996"(ptr noalias noundef nonnull align 8 dereferenceable(24) %4, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %3), !noalias !18 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !13 - %exitcond.not.i.i = icmp eq i64 %10, %.sroa.5.0.copyload7 + %exitcond.not.i.i = icmp eq i64 %11, %.sroa.5.0.copyload7 br i1 %exitcond.not.i.i, label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hd90597a57c0481d5E.exit", label %.lr.ph.i.i "_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hd90597a57c0481d5E.exit": ; preds = %.lr.ph.i.i, %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hfa422387680307ceE.llvm.15553549611834190124.exit" call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !8 ret void -11: ; preds = %2 - %12 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %13 = load i64, ptr %12, align 8, !alias.scope !19, !noundef !24 - %14 = load i64, ptr %0, align 8, !alias.scope !19, !noundef !24 - %15 = sub i64 %14, %13 - %16 = icmp ugt i64 %spec.select.i.i, %15 - br i1 %16, label %17, label %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hf973d6c824bce392E.llvm.15553549611834190124.exit" +12: ; preds = %2 + %13 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %14 = load i64, ptr %13, align 8, !alias.scope !19, !noundef !24 + %15 = load i64, ptr %0, align 8, !alias.scope !19, !noundef !24 + %16 = sub i64 %15, %14 + %17 = icmp ugt i64 %spec.select.i.i, %16 + br i1 %17, label %18, label %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hf973d6c824bce392E.llvm.15553549611834190124.exit" -17: ; preds = %11 - tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h930d6ac7651515baE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %13, i64 noundef %spec.select.i.i) +18: ; preds = %12 + tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h930d6ac7651515baE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %14, i64 noundef %spec.select.i.i) br label %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hf973d6c824bce392E.llvm.15553549611834190124.exit" -"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hf973d6c824bce392E.llvm.15553549611834190124.exit": ; preds = %11, %17 - %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %19 = getelementptr inbounds nuw i8, ptr %0, i64 40 - %20 = load i64, ptr %19, align 8, !alias.scope !25, !noundef !24 - %21 = load i64, ptr %18, align 8, !alias.scope !25, !noundef !24 - %22 = sub i64 %21, %20 - %23 = icmp ugt i64 %spec.select.i.i, %22 - br i1 %23, label %24, label %.lr.ph.i.i.preheader - -24: ; preds = %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hf973d6c824bce392E.llvm.15553549611834190124.exit" - tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h8c11bcf57aeb03b5E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %18, i64 noundef %20, i64 noundef %spec.select.i.i) +"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hf973d6c824bce392E.llvm.15553549611834190124.exit": ; preds = %12, %18 + %19 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %20 = getelementptr inbounds nuw i8, ptr %0, i64 40 + %21 = load i64, ptr %20, align 8, !alias.scope !25, !noundef !24 + %22 = load i64, ptr %19, align 8, !alias.scope !25, !noundef !24 + %23 = sub i64 %22, %21 + %24 = icmp ugt i64 %spec.select.i.i, %23 + br i1 %24, label %25, label %.lr.ph.i.i.preheader + +25: ; preds = %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hf973d6c824bce392E.llvm.15553549611834190124.exit" + tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h8c11bcf57aeb03b5E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %21, i64 noundef %spec.select.i.i) br label %.lr.ph.i.i.preheader } diff --git a/bench/recastnavigation/optimized/catch_amalgamated.ll b/bench/recastnavigation/optimized/catch_amalgamated.ll index c471eea8a14..3ab818546c7 100644 --- a/bench/recastnavigation/optimized/catch_amalgamated.ll +++ b/bench/recastnavigation/optimized/catch_amalgamated.ll @@ -45935,7 +45935,7 @@ _ZNSt6vectorIN5Catch14TestCaseHandleESaIS1_EEC2ERKS3_.exit36.thread: ; preds = % %.sroa.0.018.i.i.i.i = phi ptr [ %117, %"_ZSt25__unguarded_linear_insertIN9__gnu_cxx17__normal_iteratorIPN5Catch14TestCaseHandleESt6vectorIS3_SaIS3_EEEENS0_5__ops14_Val_comp_iterIZNS2_9sortTestsERKNS2_7IConfigERKS7_E3$_0EEEvT_T0_.exit.i.i.i.i" ], [ %56, %55 ] %.sroa.03.0.copyload.i.i.i.i.i = load ptr, ptr %.sroa.0.018.i.i.i.i, align 8 %.sroa.3.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %.sroa.0.018.i.i.i.i, i64 8 - %.sroa.3.0.copyload.i.i.i.i.i = load ptr, ptr %.sroa.3.0..sroa_idx.i.i.i.i.i, align 8 + %.sroa.3.0.copyload.i.i.i.i.i = load i64, ptr %.sroa.3.0..sroa_idx.i.i.i.i.i, align 8 %57 = getelementptr inbounds nuw i8, ptr %.sroa.03.0.copyload.i.i.i.i.i, i64 32 %58 = getelementptr inbounds nuw i8, ptr %.sroa.03.0.copyload.i.i.i.i.i, i64 40 %59 = getelementptr inbounds nuw i8, ptr %.sroa.03.0.copyload.i.i.i.i.i, i64 80 @@ -46095,7 +46095,7 @@ _ZSt30__lexicographical_compare_implIPKN5Catch3TagES3_N9__gnu_cxx5__ops15_Iter_l "_ZSt25__unguarded_linear_insertIN9__gnu_cxx17__normal_iteratorIPN5Catch14TestCaseHandleESt6vectorIS3_SaIS3_EEEENS0_5__ops14_Val_comp_iterIZNS2_9sortTestsERKNS2_7IConfigERKS7_E3$_0EEEvT_T0_.exit.i.i.i.i": ; preds = %_ZSt30__lexicographical_compare_implIPKN5Catch3TagES3_N9__gnu_cxx5__ops15_Iter_less_iterEEbT_S7_T0_S8_T1_.exit.i.i.i.i, %70, %63, %_ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPKN5Catch3TagES6_EEbT_T0_.exit40.i.i.i.i.i, %.lr.ph.i.i.i.i.i31.i.i.i.i.i store ptr %.sroa.03.0.copyload.i.i.i.i.i, ptr %.sroa.07.0.i.i.i.i.i, align 8 %.sroa.3.0..sroa_idx5.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %.sroa.07.0.i.i.i.i.i, i64 8 - store ptr %.sroa.3.0.copyload.i.i.i.i.i, ptr %.sroa.3.0..sroa_idx5.i.i.i.i.i, align 8 + store i64 %.sroa.3.0.copyload.i.i.i.i.i, ptr %.sroa.3.0..sroa_idx5.i.i.i.i.i, align 8 %117 = getelementptr inbounds nuw i8, ptr %.sroa.0.018.i.i.i.i, i64 16 %.not.i.i.i.i37 = icmp eq ptr %117, %.ptr.le br i1 %.not.i.i.i.i37, label %"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN5Catch14TestCaseHandleESt6vectorIS3_SaIS3_EEEEZNS2_9sortTestsERKNS2_7IConfigERKS7_E3$_0EvT_SF_T0_.exit", label %.lr.ph.i.i.i.i, !llvm.loop !704 @@ -105279,7 +105279,7 @@ _ZSt13move_backwardIN9__gnu_cxx17__normal_iteratorIPN5Catch14TestCaseHandleESt6v 34: ; preds = %17, %8, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZN5Catch9sortTestsERKNS2_7IConfigERKSt6vectorINS2_14TestCaseHandleESaIS7_EEE3$_0EclINS_17__normal_iteratorIPS7_S9_EESH_EEbT_T0_.exit" %.sroa.03.0.copyload.i = load ptr, ptr %.sroa.0.021, align 8 %.sroa.3.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %.pn20, i64 24 - %.sroa.3.0.copyload.i = load ptr, ptr %.sroa.3.0..sroa_idx.i, align 8 + %.sroa.3.0.copyload.i = load i64, ptr %.sroa.3.0..sroa_idx.i, align 8 %35 = getelementptr inbounds nuw i8, ptr %.sroa.03.0.copyload.i, i64 32 %36 = getelementptr inbounds nuw i8, ptr %.sroa.03.0.copyload.i, i64 40 %37 = getelementptr inbounds nuw i8, ptr %.sroa.03.0.copyload.i, i64 80 @@ -105334,7 +105334,7 @@ _ZSt13move_backwardIN9__gnu_cxx17__normal_iteratorIPN5Catch14TestCaseHandleESt6v "_ZSt25__unguarded_linear_insertIN9__gnu_cxx17__normal_iteratorIPN5Catch14TestCaseHandleESt6vectorIS3_SaIS3_EEEENS0_5__ops14_Val_comp_iterIZNS2_9sortTestsERKNS2_7IConfigERKS7_E3$_0EEEvT_T0_.exit": ; preds = %41, %48, %"_ZN9__gnu_cxx5__ops14_Val_comp_iterIZN5Catch9sortTestsERKNS2_7IConfigERKSt6vectorINS2_14TestCaseHandleESaIS7_EEE3$_0EclIS7_NS_17__normal_iteratorIPS7_S9_EEEEbRT_T0_.exit.i" store ptr %.sroa.03.0.copyload.i, ptr %.sroa.07.0.i, align 8 %.sroa.3.0..sroa_idx5.i = getelementptr inbounds nuw i8, ptr %.sroa.07.0.i, i64 8 - store ptr %.sroa.3.0.copyload.i, ptr %.sroa.3.0..sroa_idx5.i, align 8 + store i64 %.sroa.3.0.copyload.i, ptr %.sroa.3.0..sroa_idx5.i, align 8 br label %58 58: ; preds = %_ZSt13move_backwardIN9__gnu_cxx17__normal_iteratorIPN5Catch14TestCaseHandleESt6vectorIS3_SaIS3_EEEES8_ET0_T_SA_S9_.exit, %"_ZSt25__unguarded_linear_insertIN9__gnu_cxx17__normal_iteratorIPN5Catch14TestCaseHandleESt6vectorIS3_SaIS3_EEEENS0_5__ops14_Val_comp_iterIZNS2_9sortTestsERKNS2_7IConfigERKS7_E3$_0EEEvT_T0_.exit" @@ -106232,7 +106232,7 @@ define internal fastcc void @"_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iterator %.sroa.2.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 8 %.sroa.2.0.copyload = load ptr, ptr %.sroa.2.0..sroa_idx, align 8 %.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 16 - %.sroa.3.0.copyload = load ptr, ptr %.sroa.3.0..sroa_idx, align 8 + %.sroa.3.0.copyload = load i64, ptr %.sroa.3.0..sroa_idx, align 8 %62 = icmp sgt i64 %.1, %1 br i1 %62, label %.lr.ph.i, label %"_ZSt11__push_heapIN9__gnu_cxx17__normal_iteratorIPSt4pairImN5Catch14TestCaseHandleEESt6vectorIS5_SaIS5_EEEElS5_NS0_5__ops14_Iter_comp_valIZNS3_9sortTestsERKNS3_7IConfigERKS7_IS4_SaIS4_EEE3$_1EEEvT_T0_SN_T1_RT2_.exit" @@ -106312,7 +106312,7 @@ define internal fastcc void @"_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iterator %97 = getelementptr inbounds nuw i8, ptr %96, i64 8 store ptr %.sroa.2.0.copyload, ptr %97, align 8 %.sroa.6.8..sroa_idx = getelementptr inbounds nuw i8, ptr %96, i64 16 - store ptr %.sroa.3.0.copyload, ptr %.sroa.6.8..sroa_idx, align 8 + store i64 %.sroa.3.0.copyload, ptr %.sroa.6.8..sroa_idx, align 8 ret void } @@ -106441,7 +106441,7 @@ define internal fastcc void @"_ZSt25__unguarded_linear_insertIN9__gnu_cxx17__nor %.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 %.sroa.3.0.copyload = load ptr, ptr %.sroa.3.0..sroa_idx, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - %.sroa.5.0.copyload = load ptr, ptr %.sroa.5.0..sroa_idx, align 8 + %.sroa.5.0.copyload = load i64, ptr %.sroa.5.0..sroa_idx, align 8 %2 = getelementptr inbounds nuw i8, ptr %.sroa.3.0.copyload, i64 32 %3 = getelementptr inbounds nuw i8, ptr %.sroa.3.0.copyload, i64 40 %4 = getelementptr inbounds nuw i8, ptr %.sroa.3.0.copyload, i64 80 @@ -106511,7 +106511,7 @@ define internal fastcc void @"_ZSt25__unguarded_linear_insertIN9__gnu_cxx17__nor %33 = getelementptr inbounds nuw i8, ptr %.sroa.05.0, i64 8 store ptr %.sroa.3.0.copyload, ptr %33, align 8 %.sroa.5.8..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.05.0, i64 16 - store ptr %.sroa.5.0.copyload, ptr %.sroa.5.8..sroa_idx, align 8 + store i64 %.sroa.5.0.copyload, ptr %.sroa.5.8..sroa_idx, align 8 ret void } @@ -130066,13 +130066,13 @@ common.ret: ; preds = %94, %95, %50, %53, %61 = load i64, ptr %60, align 8 %62 = load ptr, ptr %0, align 8 %63 = getelementptr inbounds %"class.std::__cxx11::sub_match", ptr %62, i64 %61 - %.sroa.0.0.copyload.i = load ptr, ptr %63, align 8 + %.sroa.0.0.copyload.i = load i64, ptr %63, align 8 %64 = load i64, ptr %11, align 8 store i64 %64, ptr %63, align 8 %65 = getelementptr inbounds nuw i8, ptr %17, i64 8 %66 = load i64, ptr %65, align 8 tail call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %66) - store ptr %.sroa.0.0.copyload.i, ptr %63, align 8 + store i64 %.sroa.0.0.copyload.i, ptr %63, align 8 br label %common.ret 67: ; preds = %.lr.ph @@ -130525,7 +130525,7 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8 %16 = trunc i8 %15 to i1 - br i1 %16, label %17, label %50 + br i1 %16, label %17, label %51 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -130577,29 +130577,30 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm %39 = getelementptr inbounds nuw i8, ptr %4, i64 8 store ptr %36, ptr %39, align 8 %40 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) - br i1 %40, label %41, label %50 + br i1 %40, label %41, label %51 41: ; preds = %.critedge %42 = load ptr, ptr %18, align 8 %.not21 = icmp eq ptr %.sroa.017.0.lcssa, %42 - br i1 %.not21, label %47, label %43 + br i1 %.not21, label %48, label %43 43: ; preds = %41 - %44 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + %44 = ptrtoint ptr %42 to i64 + %45 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + store i64 %45, ptr %18, align 8 + %46 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %47 = load i64, ptr %46, align 8 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %47) store i64 %44, ptr %18, align 8 - %45 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %46 = load i64, ptr %45, align 8 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %46) - store ptr %42, ptr %18, align 8 - br label %50 + br label %51 -47: ; preds = %41 - %48 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %49 = load i64, ptr %48, align 8 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %49) - br label %50 +48: ; preds = %41 + %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %50 = load i64, ptr %49, align 8 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %50) + br label %51 -50: ; preds = %43, %47, %3, %.critedge +51: ; preds = %43, %48, %3, %.critedge ret void } @@ -131729,13 +131730,13 @@ common.ret: ; preds = %124, %_ZNKSt8__deta %77 = load i64, ptr %76, align 8 %78 = load ptr, ptr %0, align 8 %79 = getelementptr inbounds %"class.std::__cxx11::sub_match", ptr %78, i64 %77 - %.sroa.0.0.copyload.i = load ptr, ptr %79, align 8 + %.sroa.0.0.copyload.i = load i64, ptr %79, align 8 %80 = load i64, ptr %7, align 8 store i64 %80, ptr %79, align 8 %81 = getelementptr inbounds nuw i8, ptr %12, i64 8 %82 = load i64, ptr %81, align 8 tail call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %82) - store ptr %.sroa.0.0.copyload.i, ptr %79, align 8 + store i64 %.sroa.0.0.copyload.i, ptr %79, align 8 br label %common.ret 83: ; preds = %tailrecurse @@ -131947,7 +131948,7 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8 %16 = trunc i8 %15 to i1 - br i1 %16, label %17, label %50 + br i1 %16, label %17, label %51 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -131999,29 +132000,30 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm %39 = getelementptr inbounds nuw i8, ptr %4, i64 8 store ptr %36, ptr %39, align 8 %40 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) - br i1 %40, label %41, label %50 + br i1 %40, label %41, label %51 41: ; preds = %.critedge %42 = load ptr, ptr %18, align 8 %.not21 = icmp eq ptr %.sroa.017.0.lcssa, %42 - br i1 %.not21, label %47, label %43 + br i1 %.not21, label %48, label %43 43: ; preds = %41 - %44 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + %44 = ptrtoint ptr %42 to i64 + %45 = ptrtoint ptr %.sroa.017.0.lcssa to i64 + store i64 %45, ptr %18, align 8 + %46 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %47 = load i64, ptr %46, align 8 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %47) store i64 %44, ptr %18, align 8 - %45 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %46 = load i64, ptr %45, align 8 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %46) - store ptr %42, ptr %18, align 8 - br label %50 + br label %51 -47: ; preds = %41 - %48 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %49 = load i64, ptr %48, align 8 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %49) - br label %50 +48: ; preds = %41 + %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %50 = load i64, ptr %49, align 8 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %50) + br label %51 -50: ; preds = %43, %47, %3, %.critedge +51: ; preds = %43, %48, %3, %.critedge ret void } diff --git a/bench/regex-rs/optimized/3ixfkxlmcuecmmus.ll b/bench/regex-rs/optimized/3ixfkxlmcuecmmus.ll index 66cf5d21a5e..17e8d1421eb 100644 --- a/bench/regex-rs/optimized/3ixfkxlmcuecmmus.ll +++ b/bench/regex-rs/optimized/3ixfkxlmcuecmmus.ll @@ -1504,8 +1504,8 @@ define void @_ZN14regex_automata4meta8strategy3new17h42779e947a72af4fE(ptr noali %30 = alloca { i64, [16 x i64] }, align 8 %31 = alloca { i64, [16 x i64] }, align 8 %32 = alloca { { i64, i64 }, { i8, i8 }, i8, i8, i8, i8, [2 x i8] }, align 8 - %.sroa.5227.i.sroa.4 = alloca [10 x i64], align 8 - %.sroa.5227.i.sroa.5 = alloca [160 x i64], align 8 + %.sroa.5229.i.sroa.4 = alloca [10 x i64], align 8 + %.sroa.5229.i.sroa.5 = alloca [160 x i64], align 8 %33 = alloca { [16 x i8], i8, [7 x i8] }, align 8 %34 = alloca { { i64, i64 }, { i8, i8 }, i8, i8, i8, i8, [2 x i8] }, align 8 %35 = alloca { { { i64, i64 }, { i8, i8 }, i8, i8, i8, i8, [2 x i8] }, { { i8, { i8, i8, i8, i8, i8, i8 }, i8 }, { i32, i8, i8, [2 x i8] } }, { i64, { { { i64, i64 }, { { i64, ptr }, i64 }, { { i64, ptr }, i64 }, { { i64, ptr }, i64 }, { i32, i32 }, i64, i8, i8, i8, [5 x i8] } } }, { i64, { { { { { i64, ptr }, i64 }, i64, i16, [3 x i16] }, { { i64, ptr }, i64 } } } }, { i64, { { { { i64, ptr }, i64 }, { { i64, ptr }, i64 }, { { i64, ptr }, i64 }, { { i64, ptr }, i64 }, { i64, { { { i64, ptr }, i64 } } }, { i64, { { { i64, ptr }, i64 } } } } } }, { i64, { { { { i64, ptr }, i64 }, i64, i16, [3 x i16] } } } }, align 8 @@ -2033,8 +2033,8 @@ common.resume: ; preds = %.body, %213, %.body store i8 %.sink736, ptr %.sroa.551.0..sroa_idx, align 8 call void @llvm.experimental.noalias.scope.decl(metadata !329) call void @llvm.experimental.noalias.scope.decl(metadata !332) - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.5227.i.sroa.4) - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.5227.i.sroa.5) + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.5229.i.sroa.4) + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.5229.i.sroa.5) call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.718.i.sroa.6) call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.78.i.sroa.6) call void @llvm.lifetime.start.p0(ptr nonnull %47) @@ -2391,9 +2391,7 @@ common.resume: ; preds = %.body, %213, %.body %.sroa.4208.0..sroa_idx209.i = getelementptr inbounds nuw i8, ptr %34, i64 19 store i8 1, ptr %.sroa.4208.0..sroa_idx209.i, align 1, !alias.scope !440, !noalias !334 %.sroa.5211.0..sroa_idx212.i = getelementptr inbounds nuw i8, ptr %34, i64 20 - store i8 0, ptr %.sroa.5211.0..sroa_idx212.i, align 4, !alias.scope !440, !noalias !334 - %.sroa.5211.sroa.4.0..sroa.5211.0..sroa_idx212.sroa_idx.i = getelementptr inbounds nuw i8, ptr %34, i64 21 - store i8 2, ptr %.sroa.5211.sroa.4.0..sroa.5211.0..sroa_idx212.sroa_idx.i, align 1, !alias.scope !440, !noalias !334 + store i32 512, ptr %.sroa.5211.0..sroa_idx212.i, align 4, !alias.scope !440, !noalias !334 call void @llvm.lifetime.start.p0(ptr nonnull %28), !noalias !444 invoke void @_ZN14regex_automata3nfa8thompson8compiler6Config9overwrite17h540961936e0e834fE.llvm.17489849572920684177(ptr noalias noundef nonnull sret({ { i64, i64 }, { i8, i8 }, i8, i8, i8, i8, [2 x i8] }) align 8 captures(none) dereferenceable(24) %28, ptr noalias noundef nonnull readonly align 8 dereferenceable(448) %35, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %34) to label %322 unwind label %319, !noalias !364 @@ -2453,14 +2451,14 @@ common.resume: ; preds = %.body, %213, %.body %338 = load ptr, ptr %47, align 8, !alias.scope !465, !noalias !334, !nonnull !4, !noundef !4 %339 = getelementptr inbounds nuw i8, ptr %338, i64 125 %340 = load i8, ptr %339, align 1, !range !91, !alias.scope !468, !noalias !364, !noundef !4 - %.not259.i = icmp eq i8 %340, 0 - br i1 %.not259.i, label %341, label %343 + %.not261.i = icmp eq i8 %340, 0 + br i1 %.not261.i, label %341, label %343 341: ; preds = %352, %337 - %.sroa.5227.i.sroa.0.0 = phi i64 [ undef, %337 ], [ %.sroa.5227.i.sroa.0.0.copyload, %352 ] - %.pre254.i = phi ptr [ %338, %337 ], [ %.pre254.pre.i, %352 ] + %.sroa.5229.i.sroa.0.0 = phi i64 [ undef, %337 ], [ %.sroa.5229.i.sroa.0.0.copyload, %352 ] + %.pre256.i = phi ptr [ %338, %337 ], [ %.pre256.pre.i, %352 ] %342 = phi ptr [ %328, %337 ], [ %.pre.i, %352 ] - %.sroa.0224.1.i = phi i64 [ 2, %337 ], [ %.sroa.0224.0.copyload226.i, %352 ] + %.sroa.0226.1.i = phi i64 [ 2, %337 ], [ %.sroa.0226.0.copyload228.i, %352 ] call void @llvm.lifetime.end.p0(ptr nonnull %37), !noalias !334 br label %433 @@ -2496,17 +2494,17 @@ common.resume: ; preds = %.body, %213, %.body br label %349 352: ; preds = %349 - %.sroa.0224.0.copyload226.i = load i64, ptr %27, align 8, !noalias !478 - %.sroa.5227.0..sroa_idx228.i = getelementptr inbounds nuw i8, ptr %27, i64 8 - %.sroa.5227.i.sroa.0.0.copyload = load i64, ptr %.sroa.5227.0..sroa_idx228.i, align 8, !noalias !334 - %.sroa.5227.i.sroa.4.0..sroa.5227.0..sroa_idx228.i.sroa_idx = getelementptr inbounds nuw i8, ptr %27, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %.sroa.5227.i.sroa.4, ptr noundef nonnull align 8 dereferenceable(80) %.sroa.5227.i.sroa.4.0..sroa.5227.0..sroa_idx228.i.sroa_idx, i64 80, i1 false), !noalias !334 - %.sroa.5227.i.sroa.5.0..sroa.5227.0..sroa_idx228.i.sroa_idx = getelementptr inbounds nuw i8, ptr %27, i64 96 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1280) %.sroa.5227.i.sroa.5, ptr noundef nonnull align 8 dereferenceable(1280) %.sroa.5227.i.sroa.5.0..sroa.5227.0..sroa_idx228.i.sroa_idx, i64 1280, i1 false), !noalias !334 + %.sroa.0226.0.copyload228.i = load i64, ptr %27, align 8, !noalias !478 + %.sroa.5229.0..sroa_idx230.i = getelementptr inbounds nuw i8, ptr %27, i64 8 + %.sroa.5229.i.sroa.0.0.copyload = load i64, ptr %.sroa.5229.0..sroa_idx230.i, align 8, !noalias !334 + %.sroa.5229.i.sroa.4.0..sroa.5229.0..sroa_idx230.i.sroa_idx = getelementptr inbounds nuw i8, ptr %27, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %.sroa.5229.i.sroa.4, ptr noundef nonnull align 8 dereferenceable(80) %.sroa.5229.i.sroa.4.0..sroa.5229.0..sroa_idx230.i.sroa_idx, i64 80, i1 false), !noalias !334 + %.sroa.5229.i.sroa.5.0..sroa.5229.0..sroa_idx230.i.sroa_idx = getelementptr inbounds nuw i8, ptr %27, i64 96 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1280) %.sroa.5229.i.sroa.5, ptr noundef nonnull align 8 dereferenceable(1280) %.sroa.5229.i.sroa.5.0..sroa.5229.0..sroa_idx230.i.sroa_idx, i64 1280, i1 false), !noalias !334 call void @llvm.lifetime.end.p0(ptr nonnull %27), !noalias !471 call void @llvm.lifetime.end.p0(ptr nonnull %33), !noalias !334 %.pre.i = load ptr, ptr %37, align 8, !noalias !334 - %.pre254.pre.i = load ptr, ptr %47, align 8, !noalias !334 + %.pre256.pre.i = load ptr, ptr %47, align 8, !noalias !334 br label %341 353: ; preds = %329 @@ -2763,8 +2761,8 @@ common.resume: ; preds = %.body, %213, %.body br label %224 .thread619: ; preds = %"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$regex_automata..util..prefilter..Prefilter$GT$$GT$17h27d74ec3f545d326E.exit143.i", %427 - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5227.i.sroa.4) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5227.i.sroa.5) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5229.i.sroa.4) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5229.i.sroa.5) call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.718.i.sroa.6) call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.78.i.sroa.6) call void @llvm.lifetime.end.p0(ptr nonnull %47) @@ -2772,9 +2770,9 @@ common.resume: ; preds = %.body, %213, %.body br label %450 433: ; preds = %312, %341 - %.sroa.23.sroa.15.sroa.0.0.copyload573 = phi i64 [ undef, %312 ], [ %.sroa.5227.i.sroa.0.0, %341 ] - %.sroa.24.sroa.14.0.copyload255 = phi ptr [ %313, %312 ], [ %.pre254.i, %341 ] - %.sroa.23.sroa.14.0.copyload273 = phi i64 [ 2, %312 ], [ %.sroa.0224.1.i, %341 ] + %.sroa.23.sroa.15.sroa.0.0.copyload573 = phi i64 [ undef, %312 ], [ %.sroa.5229.i.sroa.0.0, %341 ] + %.sroa.24.sroa.14.0.copyload255 = phi ptr [ %313, %312 ], [ %.pre256.i, %341 ] + %.sroa.23.sroa.14.0.copyload273 = phi i64 [ 2, %312 ], [ %.sroa.0226.1.i, %341 ] %.sroa.24.sroa.15.sroa.14.0.copyload429 = phi ptr [ null, %312 ], [ %342, %341 ] %434 = load ptr, ptr %46, align 8, !noalias !334, !nonnull !4, !noundef !4 %.sroa.0.0.copyload = load i64, ptr %40, align 8, !noalias !381 @@ -2783,8 +2781,8 @@ common.resume: ; preds = %.body, %213, %.body %.sroa.14.0.copyload = load ptr, ptr %.sroa.14.0..sroa_idx, align 8, !noalias !381 %.sroa.18.0..sroa_idx = getelementptr inbounds nuw i8, ptr %40, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.18, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.18.0..sroa_idx, i64 24, i1 false), !noalias !381 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %.sroa.21.sroa.9, ptr noundef nonnull align 8 dereferenceable(80) %.sroa.5227.i.sroa.4, i64 80, i1 false), !noalias !381 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1280) %.sroa.21.sroa.10, ptr noundef nonnull align 8 dereferenceable(1280) %.sroa.5227.i.sroa.5, i64 1280, i1 false), !noalias !381 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %.sroa.21.sroa.9, ptr noundef nonnull align 8 dereferenceable(80) %.sroa.5229.i.sroa.4, i64 80, i1 false), !noalias !381 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1280) %.sroa.21.sroa.10, ptr noundef nonnull align 8 dereferenceable(1280) %.sroa.5229.i.sroa.5, i64 1280, i1 false), !noalias !381 %.sroa.21.sroa.10.1368..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.21.sroa.10, i64 1280 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(376) %.sroa.21.sroa.10.1368..sroa_idx, ptr noundef nonnull align 8 dereferenceable(376) %38, i64 376, i1 false), !noalias !381 %.sroa.21.sroa.10.1744..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.21.sroa.10, i64 1656 @@ -2795,8 +2793,8 @@ common.resume: ; preds = %.body, %213, %.body call void @llvm.lifetime.end.p0(ptr nonnull %40), !noalias !334 call void @llvm.lifetime.end.p0(ptr nonnull %42), !noalias !334 call void @llvm.lifetime.end.p0(ptr nonnull %46), !noalias !334 - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5227.i.sroa.4) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5227.i.sroa.5) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5229.i.sroa.4) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5229.i.sroa.5) call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.718.i.sroa.6) call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.78.i.sroa.6) call void @llvm.lifetime.end.p0(ptr nonnull %47) @@ -3577,6 +3575,8 @@ common.resume: ; preds = %.body, %213, %.body %645 = load i8, ptr %644, align 1, !range !91, !alias.scope !770, !noalias !749, !noundef !4 %646 = icmp eq i8 %645, 2 %647 = select i1 %646, i8 1, i8 %645 + %.sroa.760.sroa.0.0.insert.ext.i = zext nneg i8 %647 to i16 + %.sroa.760.sroa.0.0.insert.insert.i = or disjoint i16 %.sroa.760.sroa.0.0.insert.ext.i, 256 %648 = getelementptr inbounds nuw i8, ptr %.sroa.24.sroa.14.0.copyload255, i64 32 %649 = load i64, ptr %648, align 8, !range !130, !alias.scope !773, !noalias !749, !noundef !4 %650 = icmp eq i64 %649, 2 @@ -3592,9 +3592,7 @@ common.resume: ; preds = %.body, %213, %.body %.sroa.5.0..sroa_idx33.i = getelementptr inbounds nuw i8, ptr %14, i64 17 store i8 %.0.i16.i, ptr %.sroa.5.0..sroa_idx33.i, align 1, !alias.scope !776, !noalias !747 %.sroa.6.0..sroa_idx36.i = getelementptr inbounds nuw i8, ptr %14, i64 18 - store i8 %647, ptr %.sroa.6.0..sroa_idx36.i, align 2, !alias.scope !776, !noalias !747 - %.sroa.6.sroa.0.sroa.0.sroa.4.0..sroa.6.0..sroa_idx36.sroa_idx.i = getelementptr inbounds nuw i8, ptr %14, i64 19 - store i8 1, ptr %.sroa.6.sroa.0.sroa.0.sroa.4.0..sroa.6.0..sroa_idx36.sroa_idx.i, align 1, !alias.scope !776, !noalias !747 + store i16 %.sroa.760.sroa.0.0.insert.insert.i, ptr %.sroa.6.0..sroa_idx36.i, align 2, !alias.scope !776, !noalias !747 %.sroa.6.sroa.0.sroa.4.0..sroa.6.0..sroa_idx36.sroa_idx.i = getelementptr inbounds nuw i8, ptr %14, i64 20 store i8 0, ptr %.sroa.6.sroa.0.sroa.4.0..sroa.6.0..sroa_idx36.sroa_idx.i, align 4, !alias.scope !776, !noalias !747 %.sroa.6.sroa.4.0..sroa.6.0..sroa_idx36.sroa_idx.i = getelementptr inbounds nuw i8, ptr %14, i64 21 diff --git a/bench/rocksdb/optimized/db_impl.ll b/bench/rocksdb/optimized/db_impl.ll index ee1c466f9b4..bc835255fa7 100644 --- a/bench/rocksdb/optimized/db_impl.ll +++ b/bench/rocksdb/optimized/db_impl.ll @@ -39063,80 +39063,81 @@ define void @_ZN7rocksdb6DBImpl19PrepareMultiGetKeysEmbPNS_10autovectorIPNS_10Ke %9 = alloca %"class.rocksdb::autovector::iterator_impl", align 8 %10 = alloca %"class.rocksdb::autovector::iterator_impl", align 8 %11 = alloca %"class.rocksdb::autovector::iterator_impl", align 8 - br i1 %2, label %21, label %12 + br i1 %2, label %22, label %12 12: ; preds = %4 + %13 = ptrtoint ptr %3 to i64 call void @llvm.lifetime.start.p0(ptr nonnull %10) call void @llvm.lifetime.start.p0(ptr nonnull %11) %.not.i.i = icmp eq i64 %1, 0 - br i1 %.not.i.i, label %20, label %.noexc.i + br i1 %.not.i.i, label %21, label %.noexc.i .noexc.i: ; preds = %12 store ptr %3, ptr %10, align 8, !tbaa !2002 %.sroa.310.0..sroa_idx11.i = getelementptr inbounds nuw i8, ptr %10, i64 8 store i64 0, ptr %.sroa.310.0..sroa_idx11.i, align 8, !tbaa !99 - store ptr %3, ptr %11, align 8, !tbaa !2002 + store i64 %13, ptr %11, align 8, !tbaa !2002 %.sroa.3.0..sroa_idx5.i = getelementptr inbounds nuw i8, ptr %11, i64 8 store i64 %1, ptr %.sroa.3.0..sroa_idx5.i, align 8, !tbaa !99 - %13 = tail call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %1, i1 true) - %14 = shl nuw nsw i64 %13, 1 - %15 = xor i64 %14, 126 - call fastcc void @_ZSt16__introsort_loopIN7rocksdb10autovectorIPNS0_10KeyContextELm32EE13iterator_implIS4_S3_EElN9__gnu_cxx5__ops15_Iter_comp_iterINS0_12_GLOBAL__N_117CompareKeyContextEEEEvT_SD_T0_T1_(ptr noundef %10, ptr noundef %11, i64 noundef %15) + %14 = tail call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %1, i1 true) + %15 = shl nuw nsw i64 %14, 1 + %16 = xor i64 %15, 126 + call fastcc void @_ZSt16__introsort_loopIN7rocksdb10autovectorIPNS0_10KeyContextELm32EE13iterator_implIS4_S3_EElN9__gnu_cxx5__ops15_Iter_comp_iterINS0_12_GLOBAL__N_117CompareKeyContextEEEEvT_SD_T0_T1_(ptr noundef %10, ptr noundef %11, i64 noundef %16) call void @llvm.lifetime.start.p0(ptr nonnull %6) call void @llvm.lifetime.start.p0(ptr nonnull %7) call void @llvm.lifetime.start.p0(ptr nonnull %8) call void @llvm.lifetime.start.p0(ptr nonnull %9) - %16 = icmp sgt i64 %1, 16 - br i1 %16, label %.noexc.i.i, label %19 + %17 = icmp sgt i64 %1, 16 + br i1 %17, label %.noexc.i.i, label %20 .noexc.i.i: ; preds = %.noexc.i store ptr %3, ptr %6, align 8, !tbaa !2002 %.sroa.5.0..sroa_idx18.i.i = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 0, ptr %.sroa.5.0..sroa_idx18.i.i, align 8, !tbaa !99 store ptr %3, ptr %7, align 8, !tbaa !2004, !alias.scope !2006 - %17 = getelementptr inbounds nuw i8, ptr %7, i64 8 - store i64 16, ptr %17, align 8, !tbaa !2009, !alias.scope !2006 + %18 = getelementptr inbounds nuw i8, ptr %7, i64 8 + store i64 16, ptr %18, align 8, !tbaa !2009, !alias.scope !2006 call fastcc void @_ZSt16__insertion_sortIN7rocksdb10autovectorIPNS0_10KeyContextELm32EE13iterator_implIS4_S3_EEN9__gnu_cxx5__ops15_Iter_comp_iterINS0_12_GLOBAL__N_117CompareKeyContextEEEEvT_SD_T0_(ptr noundef %6, ptr noundef %7) call void @llvm.lifetime.start.p0(ptr nonnull %5) %.sroa.5.0..sroa_idx5.i.i.i.i = getelementptr inbounds nuw i8, ptr %5, i64 8 br label %.noexc.i.i.i .noexc.i.i.i: ; preds = %.noexc.i.i.i, %.noexc.i.i - %.sroa.5.09.i.i.i.i = phi i64 [ 16, %.noexc.i.i ], [ %18, %.noexc.i.i.i ] - store ptr %3, ptr %5, align 8, !tbaa !2002 + %.sroa.5.09.i.i.i.i = phi i64 [ 16, %.noexc.i.i ], [ %19, %.noexc.i.i.i ] + store i64 %13, ptr %5, align 8, !tbaa !2002 store i64 %.sroa.5.09.i.i.i.i, ptr %.sroa.5.0..sroa_idx5.i.i.i.i, align 8, !tbaa !99 call fastcc void @_ZSt25__unguarded_linear_insertIN7rocksdb10autovectorIPNS0_10KeyContextELm32EE13iterator_implIS4_S3_EEN9__gnu_cxx5__ops14_Val_comp_iterINS0_12_GLOBAL__N_117CompareKeyContextEEEEvT_T0_(ptr noundef %5) - %18 = add nuw nsw i64 %.sroa.5.09.i.i.i.i, 1 - %.not.i.i.i.i = icmp eq i64 %18, %1 + %19 = add nuw nsw i64 %.sroa.5.09.i.i.i.i, 1 + %.not.i.i.i.i = icmp eq i64 %19, %1 br i1 %.not.i.i.i.i, label %.loopexit.i.i.i, label %.noexc.i.i.i, !llvm.loop !2010 .loopexit.i.i.i: ; preds = %.noexc.i.i.i call void @llvm.lifetime.end.p0(ptr nonnull %5) br label %.noexc3.i -19: ; preds = %.noexc.i +20: ; preds = %.noexc.i store ptr %3, ptr %8, align 8, !tbaa !2002 %.sroa.5.0..sroa_idx16.i.i = getelementptr inbounds nuw i8, ptr %8, i64 8 store i64 0, ptr %.sroa.5.0..sroa_idx16.i.i, align 8, !tbaa !99 - store ptr %3, ptr %9, align 8, !tbaa !2002 + store i64 %13, ptr %9, align 8, !tbaa !2002 %.sroa.2.0..sroa_idx9.i.i = getelementptr inbounds nuw i8, ptr %9, i64 8 store i64 %1, ptr %.sroa.2.0..sroa_idx9.i.i, align 8, !tbaa !99 call fastcc void @_ZSt16__insertion_sortIN7rocksdb10autovectorIPNS0_10KeyContextELm32EE13iterator_implIS4_S3_EEN9__gnu_cxx5__ops15_Iter_comp_iterINS0_12_GLOBAL__N_117CompareKeyContextEEEEvT_SD_T0_(ptr noundef %8, ptr noundef %9) br label %.noexc3.i -.noexc3.i: ; preds = %19, %.loopexit.i.i.i +.noexc3.i: ; preds = %20, %.loopexit.i.i.i call void @llvm.lifetime.end.p0(ptr nonnull %6) call void @llvm.lifetime.end.p0(ptr nonnull %7) call void @llvm.lifetime.end.p0(ptr nonnull %8) call void @llvm.lifetime.end.p0(ptr nonnull %9) - br label %20 + br label %21 -20: ; preds = %.noexc3.i, %12 +21: ; preds = %.noexc3.i, %12 call void @llvm.lifetime.end.p0(ptr nonnull %10) call void @llvm.lifetime.end.p0(ptr nonnull %11) - br label %21 + br label %22 -21: ; preds = %4, %20 +22: ; preds = %4, %21 ret void } @@ -103483,7 +103484,7 @@ define linkonce_odr noundef zeroext i1 @_ZN7rocksdb19MultiCfIteratorImplINS_18Co %7 = alloca %"class.rocksdb::Slice", align 8 %8 = getelementptr inbounds nuw i8, ptr %1, i64 208 %9 = load ptr, ptr %8, align 8 - %.sroa.0100.0.copyload = load ptr, ptr %9, align 8, !tbaa !1714 + %.sroa.0100.0.copyload = load i64, ptr %9, align 8, !tbaa !1714 %.sroa.7104.0..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 8 %.sroa.7104.0.copyload = load ptr, ptr %.sroa.7104.0..sroa_idx, align 8, !tbaa !2110 %.sroa.9112.0..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 16 @@ -103597,7 +103598,7 @@ _ZZN7rocksdb19MultiCfIteratorImplINS_18CoalescingIterator9ResetFuncENS1_12Popula %55 = getelementptr inbounds nuw i8, ptr %5, i64 208 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %55, i8 0, i64 24, i1 false) store i64 1, ptr %5, align 8, !tbaa !2175 - store ptr %.sroa.0100.0.copyload, ptr %54, align 8, !tbaa !1714 + store i64 %.sroa.0100.0.copyload, ptr %54, align 8, !tbaa !1714 %.sroa.7104.0..sroa_idx109 = getelementptr inbounds nuw i8, ptr %5, i64 16 store ptr %.sroa.7104.0.copyload, ptr %.sroa.7104.0..sroa_idx109, align 8, !tbaa !2110 %.sroa.9112.0..sroa_idx117 = getelementptr inbounds nuw i8, ptr %5, i64 24 @@ -103690,7 +103691,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_18C 101: ; preds = %.lr.ph, %_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_18CoalescingIterator9ResetFuncENS3_12PopulateFuncEE25MultiCfHeapItemComparatorISt7greaterIiEEEE3popEv.exit68 %102 = load ptr, ptr %8, align 8 - %.sroa.083.0.copyload = load ptr, ptr %102, align 8, !tbaa !1714 + %.sroa.083.0.copyload = load i64, ptr %102, align 8, !tbaa !1714 %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %102, i64 8 %.sroa.7.0.copyload = load ptr, ptr %.sroa.7.0..sroa_idx, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %102, i64 16 @@ -103882,7 +103883,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_18C %178 = add i64 %177, 1 store i64 %178, ptr %5, align 8, !tbaa !2175 %179 = getelementptr inbounds nuw %"struct.rocksdb::MultiCfIteratorInfo", ptr %176, i64 %177 - store ptr %.sroa.083.0.copyload, ptr %179, align 8, !tbaa !1714 + store i64 %.sroa.083.0.copyload, ptr %179, align 8, !tbaa !1714 %.sroa.7.0..sroa_idx91 = getelementptr inbounds nuw i8, ptr %179, i64 8 store ptr %.sroa.7.0.copyload, ptr %.sroa.7.0..sroa_idx91, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx98 = getelementptr inbounds nuw i8, ptr %179, i64 16 @@ -103896,7 +103897,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_18C br i1 %.not.i.i52, label %186, label %183 183: ; preds = %180 - store ptr %.sroa.083.0.copyload, ptr %181, align 8, !tbaa !1714 + store i64 %.sroa.083.0.copyload, ptr %181, align 8, !tbaa !1714 %.sroa.7.0..sroa_idx87 = getelementptr inbounds nuw i8, ptr %181, i64 8 store ptr %.sroa.7.0.copyload, ptr %.sroa.7.0..sroa_idx87, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx94 = getelementptr inbounds nuw i8, ptr %181, i64 16 @@ -103936,7 +103937,7 @@ _ZNKSt6vectorIN7rocksdb19MultiCfIteratorInfoESaIS1_EE12_M_check_lenEmPKc.exit.i. .noexc60: ; preds = %_ZNKSt6vectorIN7rocksdb19MultiCfIteratorInfoESaIS1_EE12_M_check_lenEmPKc.exit.i.i.i53 %200 = getelementptr inbounds i8, ptr %199, i64 %190 - store ptr %.sroa.083.0.copyload, ptr %200, align 8, !tbaa !1714 + store i64 %.sroa.083.0.copyload, ptr %200, align 8, !tbaa !1714 %.sroa.7.0..sroa_idx89 = getelementptr inbounds nuw i8, ptr %200, i64 8 store ptr %.sroa.7.0.copyload, ptr %.sroa.7.0..sroa_idx89, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx96 = getelementptr inbounds nuw i8, ptr %200, i64 16 @@ -104273,7 +104274,7 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 %11 = getelementptr %"struct.rocksdb::MultiCfIteratorInfo", ptr %10, i64 %1 %12 = getelementptr i8, ptr %11, i64 -192 %.0.i = select i1 %5, ptr %8, ptr %12 - %.sroa.0.0.copyload = load ptr, ptr %.0.i, align 8, !tbaa !1714 + %.sroa.0.0.copyload = load i64, ptr %.0.i, align 8, !tbaa !1714 %.sroa.4.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i, i64 8 %.sroa.4.0.copyload = load ptr, ptr %.sroa.4.0..0.i.sroa_idx, align 8, !tbaa !2110 %.sroa.5.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i, i64 16 @@ -104366,7 +104367,7 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 .thread.thread: ; preds = %.thread, %2, %.thread.thread28 %64 = phi ptr [ %.pre30, %.thread.thread28 ], [ %7, %2 ], [ %spec.select, %.thread ] - store ptr %.sroa.0.0.copyload, ptr %64, align 8, !tbaa !1714 + store i64 %.sroa.0.0.copyload, ptr %64, align 8, !tbaa !1714 %.sroa.4.0..0.i13.sroa_idx = getelementptr inbounds nuw i8, ptr %64, i64 8 store ptr %.sroa.4.0.copyload, ptr %.sroa.4.0..0.i13.sroa_idx, align 8, !tbaa !2110 %.sroa.5.0..0.i13.sroa_idx = getelementptr inbounds nuw i8, ptr %64, i64 16 @@ -104481,7 +104482,7 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 %14 = getelementptr %"struct.rocksdb::MultiCfIteratorInfo", ptr %13, i64 %1 %15 = getelementptr i8, ptr %14, i64 -192 %.0.i = select i1 %8, ptr %11, ptr %15 - %.sroa.0.0.copyload = load ptr, ptr %.0.i, align 8, !tbaa !1714 + %.sroa.0.0.copyload = load i64, ptr %.0.i, align 8, !tbaa !1714 %.sroa.4.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i, i64 8 %.sroa.4.0.copyload = load ptr, ptr %.sroa.4.0..0.i.sroa_idx, align 8, !tbaa !2110 %.sroa.5.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i, i64 16 @@ -104676,7 +104677,7 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 %phi.call = phi ptr [ %136, %.split ], [ %.0.i32, %.split24 ] %144 = getelementptr inbounds nuw i8, ptr %0, i64 240 store i64 %.sink, ptr %144, align 8, !tbaa !2176 - store ptr %.sroa.0.0.copyload, ptr %phi.call, align 8, !tbaa !1714 + store i64 %.sroa.0.0.copyload, ptr %phi.call, align 8, !tbaa !1714 %.sroa.4.0.phi.call.sroa_idx = getelementptr inbounds nuw i8, ptr %phi.call, i64 8 store ptr %.sroa.4.0.copyload, ptr %.sroa.4.0.phi.call.sroa_idx, align 8, !tbaa !2110 %.sroa.5.0.phi.call.sroa_idx = getelementptr inbounds nuw i8, ptr %phi.call, i64 16 @@ -105063,7 +105064,7 @@ define linkonce_odr noundef zeroext i1 @_ZN7rocksdb19MultiCfIteratorImplINS_18Co %7 = alloca %"class.rocksdb::Slice", align 8 %8 = getelementptr inbounds nuw i8, ptr %1, i64 208 %9 = load ptr, ptr %8, align 8 - %.sroa.0100.0.copyload = load ptr, ptr %9, align 8, !tbaa !1714 + %.sroa.0100.0.copyload = load i64, ptr %9, align 8, !tbaa !1714 %.sroa.7104.0..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 8 %.sroa.7104.0.copyload = load ptr, ptr %.sroa.7104.0..sroa_idx, align 8, !tbaa !2110 %.sroa.9112.0..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 16 @@ -105177,7 +105178,7 @@ _ZZN7rocksdb19MultiCfIteratorImplINS_18CoalescingIterator9ResetFuncENS1_12Popula %55 = getelementptr inbounds nuw i8, ptr %5, i64 208 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %55, i8 0, i64 24, i1 false) store i64 1, ptr %5, align 8, !tbaa !2175 - store ptr %.sroa.0100.0.copyload, ptr %54, align 8, !tbaa !1714 + store i64 %.sroa.0100.0.copyload, ptr %54, align 8, !tbaa !1714 %.sroa.7104.0..sroa_idx109 = getelementptr inbounds nuw i8, ptr %5, i64 16 store ptr %.sroa.7104.0.copyload, ptr %.sroa.7104.0..sroa_idx109, align 8, !tbaa !2110 %.sroa.9112.0..sroa_idx117 = getelementptr inbounds nuw i8, ptr %5, i64 24 @@ -105270,7 +105271,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_18C 101: ; preds = %.lr.ph, %_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_18CoalescingIterator9ResetFuncENS3_12PopulateFuncEE25MultiCfHeapItemComparatorISt4lessIiEEEE3popEv.exit68 %102 = load ptr, ptr %8, align 8 - %.sroa.083.0.copyload = load ptr, ptr %102, align 8, !tbaa !1714 + %.sroa.083.0.copyload = load i64, ptr %102, align 8, !tbaa !1714 %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %102, i64 8 %.sroa.7.0.copyload = load ptr, ptr %.sroa.7.0..sroa_idx, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %102, i64 16 @@ -105462,7 +105463,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_18C %178 = add i64 %177, 1 store i64 %178, ptr %5, align 8, !tbaa !2175 %179 = getelementptr inbounds nuw %"struct.rocksdb::MultiCfIteratorInfo", ptr %176, i64 %177 - store ptr %.sroa.083.0.copyload, ptr %179, align 8, !tbaa !1714 + store i64 %.sroa.083.0.copyload, ptr %179, align 8, !tbaa !1714 %.sroa.7.0..sroa_idx91 = getelementptr inbounds nuw i8, ptr %179, i64 8 store ptr %.sroa.7.0.copyload, ptr %.sroa.7.0..sroa_idx91, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx98 = getelementptr inbounds nuw i8, ptr %179, i64 16 @@ -105476,7 +105477,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_18C br i1 %.not.i.i52, label %186, label %183 183: ; preds = %180 - store ptr %.sroa.083.0.copyload, ptr %181, align 8, !tbaa !1714 + store i64 %.sroa.083.0.copyload, ptr %181, align 8, !tbaa !1714 %.sroa.7.0..sroa_idx87 = getelementptr inbounds nuw i8, ptr %181, i64 8 store ptr %.sroa.7.0.copyload, ptr %.sroa.7.0..sroa_idx87, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx94 = getelementptr inbounds nuw i8, ptr %181, i64 16 @@ -105516,7 +105517,7 @@ _ZNKSt6vectorIN7rocksdb19MultiCfIteratorInfoESaIS1_EE12_M_check_lenEmPKc.exit.i. .noexc60: ; preds = %_ZNKSt6vectorIN7rocksdb19MultiCfIteratorInfoESaIS1_EE12_M_check_lenEmPKc.exit.i.i.i53 %200 = getelementptr inbounds i8, ptr %199, i64 %190 - store ptr %.sroa.083.0.copyload, ptr %200, align 8, !tbaa !1714 + store i64 %.sroa.083.0.copyload, ptr %200, align 8, !tbaa !1714 %.sroa.7.0..sroa_idx89 = getelementptr inbounds nuw i8, ptr %200, i64 8 store ptr %.sroa.7.0.copyload, ptr %.sroa.7.0..sroa_idx89, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx96 = getelementptr inbounds nuw i8, ptr %200, i64 16 @@ -105766,7 +105767,7 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 %11 = getelementptr %"struct.rocksdb::MultiCfIteratorInfo", ptr %10, i64 %1 %12 = getelementptr i8, ptr %11, i64 -192 %.0.i = select i1 %5, ptr %8, ptr %12 - %.sroa.0.0.copyload = load ptr, ptr %.0.i, align 8, !tbaa !1714 + %.sroa.0.0.copyload = load i64, ptr %.0.i, align 8, !tbaa !1714 %.sroa.4.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i, i64 8 %.sroa.4.0.copyload = load ptr, ptr %.sroa.4.0..0.i.sroa_idx, align 8, !tbaa !2110 %.sroa.5.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i, i64 16 @@ -105859,7 +105860,7 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 .thread.thread: ; preds = %.thread, %2, %.thread.thread28 %64 = phi ptr [ %.pre30, %.thread.thread28 ], [ %7, %2 ], [ %spec.select, %.thread ] - store ptr %.sroa.0.0.copyload, ptr %64, align 8, !tbaa !1714 + store i64 %.sroa.0.0.copyload, ptr %64, align 8, !tbaa !1714 %.sroa.4.0..0.i13.sroa_idx = getelementptr inbounds nuw i8, ptr %64, i64 8 store ptr %.sroa.4.0.copyload, ptr %.sroa.4.0..0.i13.sroa_idx, align 8, !tbaa !2110 %.sroa.5.0..0.i13.sroa_idx = getelementptr inbounds nuw i8, ptr %64, i64 16 @@ -105887,7 +105888,7 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 %14 = getelementptr %"struct.rocksdb::MultiCfIteratorInfo", ptr %13, i64 %1 %15 = getelementptr i8, ptr %14, i64 -192 %.0.i = select i1 %8, ptr %11, ptr %15 - %.sroa.0.0.copyload = load ptr, ptr %.0.i, align 8, !tbaa !1714 + %.sroa.0.0.copyload = load i64, ptr %.0.i, align 8, !tbaa !1714 %.sroa.4.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i, i64 8 %.sroa.4.0.copyload = load ptr, ptr %.sroa.4.0..0.i.sroa_idx, align 8, !tbaa !2110 %.sroa.5.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i, i64 16 @@ -106082,7 +106083,7 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 %phi.call = phi ptr [ %136, %.split ], [ %.0.i32, %.split24 ] %144 = getelementptr inbounds nuw i8, ptr %0, i64 240 store i64 %.sink, ptr %144, align 8, !tbaa !3338 - store ptr %.sroa.0.0.copyload, ptr %phi.call, align 8, !tbaa !1714 + store i64 %.sroa.0.0.copyload, ptr %phi.call, align 8, !tbaa !1714 %.sroa.4.0.phi.call.sroa_idx = getelementptr inbounds nuw i8, ptr %phi.call, i64 8 store ptr %.sroa.4.0.copyload, ptr %.sroa.4.0.phi.call.sroa_idx, align 8, !tbaa !2110 %.sroa.5.0.phi.call.sroa_idx = getelementptr inbounds nuw i8, ptr %phi.call, i64 16 @@ -107024,7 +107025,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_18C 76: ; preds = %.lr.ph, %_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_18CoalescingIterator9ResetFuncENS3_12PopulateFuncEE25MultiCfHeapItemComparatorISt7greaterIiEEEE3popEv.exit28 %77 = load ptr, ptr %30, align 8 - %.sroa.0.0.copyload = load ptr, ptr %77, align 8, !tbaa !1714 + %.sroa.0.0.copyload = load i64, ptr %77, align 8, !tbaa !1714 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %77, i64 8 %.sroa.5.0.copyload = load ptr, ptr %.sroa.5.0..sroa_idx, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %77, i64 16 @@ -107071,7 +107072,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_18C 104: ; preds = %96 %105 = load ptr, ptr %30, align 8 - store ptr %.sroa.0.0.copyload, ptr %105, align 8, !tbaa !1714 + store i64 %.sroa.0.0.copyload, ptr %105, align 8, !tbaa !1714 %.sroa.5.0..sroa_idx47 = getelementptr inbounds nuw i8, ptr %105, i64 8 store ptr %.sroa.5.0.copyload, ptr %.sroa.5.0..sroa_idx47, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx52 = getelementptr inbounds nuw i8, ptr %105, i64 16 @@ -107863,7 +107864,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_18C 76: ; preds = %.lr.ph, %_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_18CoalescingIterator9ResetFuncENS3_12PopulateFuncEE25MultiCfHeapItemComparatorISt4lessIiEEEE3popEv.exit28 %77 = load ptr, ptr %30, align 8 - %.sroa.0.0.copyload = load ptr, ptr %77, align 8, !tbaa !1714 + %.sroa.0.0.copyload = load i64, ptr %77, align 8, !tbaa !1714 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %77, i64 8 %.sroa.5.0.copyload = load ptr, ptr %.sroa.5.0..sroa_idx, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %77, i64 16 @@ -107910,7 +107911,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_18C 104: ; preds = %96 %105 = load ptr, ptr %30, align 8 - store ptr %.sroa.0.0.copyload, ptr %105, align 8, !tbaa !1714 + store i64 %.sroa.0.0.copyload, ptr %105, align 8, !tbaa !1714 %.sroa.5.0..sroa_idx47 = getelementptr inbounds nuw i8, ptr %105, i64 8 store ptr %.sroa.5.0.copyload, ptr %.sroa.5.0..sroa_idx47, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx52 = getelementptr inbounds nuw i8, ptr %105, i64 16 @@ -109548,7 +109549,7 @@ define linkonce_odr noundef zeroext i1 @_ZN7rocksdb19MultiCfIteratorImplINS_26At %7 = alloca %"class.rocksdb::Slice", align 8 %8 = getelementptr inbounds nuw i8, ptr %1, i64 208 %9 = load ptr, ptr %8, align 8 - %.sroa.0100.0.copyload = load ptr, ptr %9, align 8, !tbaa !1714 + %.sroa.0100.0.copyload = load i64, ptr %9, align 8, !tbaa !1714 %.sroa.7104.0..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 8 %.sroa.7104.0.copyload = load ptr, ptr %.sroa.7104.0..sroa_idx, align 8, !tbaa !2110 %.sroa.9112.0..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 16 @@ -109662,7 +109663,7 @@ _ZZN7rocksdb19MultiCfIteratorImplINS_26AttributeGroupIteratorImpl9ResetFuncENS1_ %55 = getelementptr inbounds nuw i8, ptr %5, i64 208 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %55, i8 0, i64 24, i1 false) store i64 1, ptr %5, align 8, !tbaa !2175 - store ptr %.sroa.0100.0.copyload, ptr %54, align 8, !tbaa !1714 + store i64 %.sroa.0100.0.copyload, ptr %54, align 8, !tbaa !1714 %.sroa.7104.0..sroa_idx109 = getelementptr inbounds nuw i8, ptr %5, i64 16 store ptr %.sroa.7104.0.copyload, ptr %.sroa.7104.0..sroa_idx109, align 8, !tbaa !2110 %.sroa.9112.0..sroa_idx117 = getelementptr inbounds nuw i8, ptr %5, i64 24 @@ -109755,7 +109756,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_26A 101: ; preds = %.lr.ph, %_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_26AttributeGroupIteratorImpl9ResetFuncENS3_12PopulateFuncEE25MultiCfHeapItemComparatorISt7greaterIiEEEE3popEv.exit68 %102 = load ptr, ptr %8, align 8 - %.sroa.083.0.copyload = load ptr, ptr %102, align 8, !tbaa !1714 + %.sroa.083.0.copyload = load i64, ptr %102, align 8, !tbaa !1714 %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %102, i64 8 %.sroa.7.0.copyload = load ptr, ptr %.sroa.7.0..sroa_idx, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %102, i64 16 @@ -109947,7 +109948,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_26A %178 = add i64 %177, 1 store i64 %178, ptr %5, align 8, !tbaa !2175 %179 = getelementptr inbounds nuw %"struct.rocksdb::MultiCfIteratorInfo", ptr %176, i64 %177 - store ptr %.sroa.083.0.copyload, ptr %179, align 8, !tbaa !1714 + store i64 %.sroa.083.0.copyload, ptr %179, align 8, !tbaa !1714 %.sroa.7.0..sroa_idx91 = getelementptr inbounds nuw i8, ptr %179, i64 8 store ptr %.sroa.7.0.copyload, ptr %.sroa.7.0..sroa_idx91, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx98 = getelementptr inbounds nuw i8, ptr %179, i64 16 @@ -109961,7 +109962,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_26A br i1 %.not.i.i52, label %186, label %183 183: ; preds = %180 - store ptr %.sroa.083.0.copyload, ptr %181, align 8, !tbaa !1714 + store i64 %.sroa.083.0.copyload, ptr %181, align 8, !tbaa !1714 %.sroa.7.0..sroa_idx87 = getelementptr inbounds nuw i8, ptr %181, i64 8 store ptr %.sroa.7.0.copyload, ptr %.sroa.7.0..sroa_idx87, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx94 = getelementptr inbounds nuw i8, ptr %181, i64 16 @@ -110001,7 +110002,7 @@ _ZNKSt6vectorIN7rocksdb19MultiCfIteratorInfoESaIS1_EE12_M_check_lenEmPKc.exit.i. .noexc60: ; preds = %_ZNKSt6vectorIN7rocksdb19MultiCfIteratorInfoESaIS1_EE12_M_check_lenEmPKc.exit.i.i.i53 %200 = getelementptr inbounds i8, ptr %199, i64 %190 - store ptr %.sroa.083.0.copyload, ptr %200, align 8, !tbaa !1714 + store i64 %.sroa.083.0.copyload, ptr %200, align 8, !tbaa !1714 %.sroa.7.0..sroa_idx89 = getelementptr inbounds nuw i8, ptr %200, i64 8 store ptr %.sroa.7.0.copyload, ptr %.sroa.7.0..sroa_idx89, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx96 = getelementptr inbounds nuw i8, ptr %200, i64 16 @@ -110251,7 +110252,7 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 %11 = getelementptr %"struct.rocksdb::MultiCfIteratorInfo", ptr %10, i64 %1 %12 = getelementptr i8, ptr %11, i64 -192 %.0.i = select i1 %5, ptr %8, ptr %12 - %.sroa.0.0.copyload = load ptr, ptr %.0.i, align 8, !tbaa !1714 + %.sroa.0.0.copyload = load i64, ptr %.0.i, align 8, !tbaa !1714 %.sroa.4.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i, i64 8 %.sroa.4.0.copyload = load ptr, ptr %.sroa.4.0..0.i.sroa_idx, align 8, !tbaa !2110 %.sroa.5.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i, i64 16 @@ -110344,7 +110345,7 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 .thread.thread: ; preds = %.thread, %2, %.thread.thread28 %64 = phi ptr [ %.pre30, %.thread.thread28 ], [ %7, %2 ], [ %spec.select, %.thread ] - store ptr %.sroa.0.0.copyload, ptr %64, align 8, !tbaa !1714 + store i64 %.sroa.0.0.copyload, ptr %64, align 8, !tbaa !1714 %.sroa.4.0..0.i13.sroa_idx = getelementptr inbounds nuw i8, ptr %64, i64 8 store ptr %.sroa.4.0.copyload, ptr %.sroa.4.0..0.i13.sroa_idx, align 8, !tbaa !2110 %.sroa.5.0..0.i13.sroa_idx = getelementptr inbounds nuw i8, ptr %64, i64 16 @@ -110372,7 +110373,7 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 %14 = getelementptr %"struct.rocksdb::MultiCfIteratorInfo", ptr %13, i64 %1 %15 = getelementptr i8, ptr %14, i64 -192 %.0.i = select i1 %8, ptr %11, ptr %15 - %.sroa.0.0.copyload = load ptr, ptr %.0.i, align 8, !tbaa !1714 + %.sroa.0.0.copyload = load i64, ptr %.0.i, align 8, !tbaa !1714 %.sroa.4.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i, i64 8 %.sroa.4.0.copyload = load ptr, ptr %.sroa.4.0..0.i.sroa_idx, align 8, !tbaa !2110 %.sroa.5.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i, i64 16 @@ -110567,7 +110568,7 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 %phi.call = phi ptr [ %136, %.split ], [ %.0.i32, %.split24 ] %144 = getelementptr inbounds nuw i8, ptr %0, i64 240 store i64 %.sink, ptr %144, align 8, !tbaa !2244 - store ptr %.sroa.0.0.copyload, ptr %phi.call, align 8, !tbaa !1714 + store i64 %.sroa.0.0.copyload, ptr %phi.call, align 8, !tbaa !1714 %.sroa.4.0.phi.call.sroa_idx = getelementptr inbounds nuw i8, ptr %phi.call, i64 8 store ptr %.sroa.4.0.copyload, ptr %.sroa.4.0.phi.call.sroa_idx, align 8, !tbaa !2110 %.sroa.5.0.phi.call.sroa_idx = getelementptr inbounds nuw i8, ptr %phi.call, i64 16 @@ -110950,7 +110951,7 @@ define linkonce_odr noundef zeroext i1 @_ZN7rocksdb19MultiCfIteratorImplINS_26At %7 = alloca %"class.rocksdb::Slice", align 8 %8 = getelementptr inbounds nuw i8, ptr %1, i64 208 %9 = load ptr, ptr %8, align 8 - %.sroa.0100.0.copyload = load ptr, ptr %9, align 8, !tbaa !1714 + %.sroa.0100.0.copyload = load i64, ptr %9, align 8, !tbaa !1714 %.sroa.7104.0..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 8 %.sroa.7104.0.copyload = load ptr, ptr %.sroa.7104.0..sroa_idx, align 8, !tbaa !2110 %.sroa.9112.0..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 16 @@ -111064,7 +111065,7 @@ _ZZN7rocksdb19MultiCfIteratorImplINS_26AttributeGroupIteratorImpl9ResetFuncENS1_ %55 = getelementptr inbounds nuw i8, ptr %5, i64 208 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %55, i8 0, i64 24, i1 false) store i64 1, ptr %5, align 8, !tbaa !2175 - store ptr %.sroa.0100.0.copyload, ptr %54, align 8, !tbaa !1714 + store i64 %.sroa.0100.0.copyload, ptr %54, align 8, !tbaa !1714 %.sroa.7104.0..sroa_idx109 = getelementptr inbounds nuw i8, ptr %5, i64 16 store ptr %.sroa.7104.0.copyload, ptr %.sroa.7104.0..sroa_idx109, align 8, !tbaa !2110 %.sroa.9112.0..sroa_idx117 = getelementptr inbounds nuw i8, ptr %5, i64 24 @@ -111157,7 +111158,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_26A 101: ; preds = %.lr.ph, %_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_26AttributeGroupIteratorImpl9ResetFuncENS3_12PopulateFuncEE25MultiCfHeapItemComparatorISt4lessIiEEEE3popEv.exit68 %102 = load ptr, ptr %8, align 8 - %.sroa.083.0.copyload = load ptr, ptr %102, align 8, !tbaa !1714 + %.sroa.083.0.copyload = load i64, ptr %102, align 8, !tbaa !1714 %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %102, i64 8 %.sroa.7.0.copyload = load ptr, ptr %.sroa.7.0..sroa_idx, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %102, i64 16 @@ -111349,7 +111350,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_26A %178 = add i64 %177, 1 store i64 %178, ptr %5, align 8, !tbaa !2175 %179 = getelementptr inbounds nuw %"struct.rocksdb::MultiCfIteratorInfo", ptr %176, i64 %177 - store ptr %.sroa.083.0.copyload, ptr %179, align 8, !tbaa !1714 + store i64 %.sroa.083.0.copyload, ptr %179, align 8, !tbaa !1714 %.sroa.7.0..sroa_idx91 = getelementptr inbounds nuw i8, ptr %179, i64 8 store ptr %.sroa.7.0.copyload, ptr %.sroa.7.0..sroa_idx91, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx98 = getelementptr inbounds nuw i8, ptr %179, i64 16 @@ -111363,7 +111364,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_26A br i1 %.not.i.i52, label %186, label %183 183: ; preds = %180 - store ptr %.sroa.083.0.copyload, ptr %181, align 8, !tbaa !1714 + store i64 %.sroa.083.0.copyload, ptr %181, align 8, !tbaa !1714 %.sroa.7.0..sroa_idx87 = getelementptr inbounds nuw i8, ptr %181, i64 8 store ptr %.sroa.7.0.copyload, ptr %.sroa.7.0..sroa_idx87, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx94 = getelementptr inbounds nuw i8, ptr %181, i64 16 @@ -111403,7 +111404,7 @@ _ZNKSt6vectorIN7rocksdb19MultiCfIteratorInfoESaIS1_EE12_M_check_lenEmPKc.exit.i. .noexc60: ; preds = %_ZNKSt6vectorIN7rocksdb19MultiCfIteratorInfoESaIS1_EE12_M_check_lenEmPKc.exit.i.i.i53 %200 = getelementptr inbounds i8, ptr %199, i64 %190 - store ptr %.sroa.083.0.copyload, ptr %200, align 8, !tbaa !1714 + store i64 %.sroa.083.0.copyload, ptr %200, align 8, !tbaa !1714 %.sroa.7.0..sroa_idx89 = getelementptr inbounds nuw i8, ptr %200, i64 8 store ptr %.sroa.7.0.copyload, ptr %.sroa.7.0..sroa_idx89, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx96 = getelementptr inbounds nuw i8, ptr %200, i64 16 @@ -111653,7 +111654,7 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 %11 = getelementptr %"struct.rocksdb::MultiCfIteratorInfo", ptr %10, i64 %1 %12 = getelementptr i8, ptr %11, i64 -192 %.0.i = select i1 %5, ptr %8, ptr %12 - %.sroa.0.0.copyload = load ptr, ptr %.0.i, align 8, !tbaa !1714 + %.sroa.0.0.copyload = load i64, ptr %.0.i, align 8, !tbaa !1714 %.sroa.4.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i, i64 8 %.sroa.4.0.copyload = load ptr, ptr %.sroa.4.0..0.i.sroa_idx, align 8, !tbaa !2110 %.sroa.5.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i, i64 16 @@ -111746,7 +111747,7 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 .thread.thread: ; preds = %.thread, %2, %.thread.thread28 %64 = phi ptr [ %.pre30, %.thread.thread28 ], [ %7, %2 ], [ %spec.select, %.thread ] - store ptr %.sroa.0.0.copyload, ptr %64, align 8, !tbaa !1714 + store i64 %.sroa.0.0.copyload, ptr %64, align 8, !tbaa !1714 %.sroa.4.0..0.i13.sroa_idx = getelementptr inbounds nuw i8, ptr %64, i64 8 store ptr %.sroa.4.0.copyload, ptr %.sroa.4.0..0.i13.sroa_idx, align 8, !tbaa !2110 %.sroa.5.0..0.i13.sroa_idx = getelementptr inbounds nuw i8, ptr %64, i64 16 @@ -111774,7 +111775,7 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 %14 = getelementptr %"struct.rocksdb::MultiCfIteratorInfo", ptr %13, i64 %1 %15 = getelementptr i8, ptr %14, i64 -192 %.0.i = select i1 %8, ptr %11, ptr %15 - %.sroa.0.0.copyload = load ptr, ptr %.0.i, align 8, !tbaa !1714 + %.sroa.0.0.copyload = load i64, ptr %.0.i, align 8, !tbaa !1714 %.sroa.4.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i, i64 8 %.sroa.4.0.copyload = load ptr, ptr %.sroa.4.0..0.i.sroa_idx, align 8, !tbaa !2110 %.sroa.5.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i, i64 16 @@ -111969,7 +111970,7 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 %phi.call = phi ptr [ %136, %.split ], [ %.0.i32, %.split24 ] %144 = getelementptr inbounds nuw i8, ptr %0, i64 240 store i64 %.sink, ptr %144, align 8, !tbaa !3366 - store ptr %.sroa.0.0.copyload, ptr %phi.call, align 8, !tbaa !1714 + store i64 %.sroa.0.0.copyload, ptr %phi.call, align 8, !tbaa !1714 %.sroa.4.0.phi.call.sroa_idx = getelementptr inbounds nuw i8, ptr %phi.call, i64 8 store ptr %.sroa.4.0.copyload, ptr %.sroa.4.0.phi.call.sroa_idx, align 8, !tbaa !2110 %.sroa.5.0.phi.call.sroa_idx = getelementptr inbounds nuw i8, ptr %phi.call, i64 16 @@ -112899,7 +112900,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_26A 74: ; preds = %.lr.ph, %_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_26AttributeGroupIteratorImpl9ResetFuncENS3_12PopulateFuncEE25MultiCfHeapItemComparatorISt7greaterIiEEEE3popEv.exit28 %75 = load ptr, ptr %28, align 8 - %.sroa.0.0.copyload = load ptr, ptr %75, align 8, !tbaa !1714 + %.sroa.0.0.copyload = load i64, ptr %75, align 8, !tbaa !1714 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %75, i64 8 %.sroa.5.0.copyload = load ptr, ptr %.sroa.5.0..sroa_idx, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %75, i64 16 @@ -112946,7 +112947,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_26A 102: ; preds = %94 %103 = load ptr, ptr %28, align 8 - store ptr %.sroa.0.0.copyload, ptr %103, align 8, !tbaa !1714 + store i64 %.sroa.0.0.copyload, ptr %103, align 8, !tbaa !1714 %.sroa.5.0..sroa_idx47 = getelementptr inbounds nuw i8, ptr %103, i64 8 store ptr %.sroa.5.0.copyload, ptr %.sroa.5.0..sroa_idx47, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx52 = getelementptr inbounds nuw i8, ptr %103, i64 16 @@ -113734,7 +113735,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_26A 74: ; preds = %.lr.ph, %_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_26AttributeGroupIteratorImpl9ResetFuncENS3_12PopulateFuncEE25MultiCfHeapItemComparatorISt4lessIiEEEE3popEv.exit28 %75 = load ptr, ptr %28, align 8 - %.sroa.0.0.copyload = load ptr, ptr %75, align 8, !tbaa !1714 + %.sroa.0.0.copyload = load i64, ptr %75, align 8, !tbaa !1714 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %75, i64 8 %.sroa.5.0.copyload = load ptr, ptr %.sroa.5.0..sroa_idx, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %75, i64 16 @@ -113781,7 +113782,7 @@ _ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19MultiCfIteratorImplINS_26A 102: ; preds = %94 %103 = load ptr, ptr %28, align 8 - store ptr %.sroa.0.0.copyload, ptr %103, align 8, !tbaa !1714 + store i64 %.sroa.0.0.copyload, ptr %103, align 8, !tbaa !1714 %.sroa.5.0..sroa_idx47 = getelementptr inbounds nuw i8, ptr %103, i64 8 store ptr %.sroa.5.0.copyload, ptr %.sroa.5.0..sroa_idx47, align 8, !tbaa !2110 %.sroa.9.0..sroa_idx52 = getelementptr inbounds nuw i8, ptr %103, i64 16 diff --git a/bench/rocksdb/optimized/internal_stats.ll b/bench/rocksdb/optimized/internal_stats.ll index 716035d479c..5dd317c8239 100644 --- a/bench/rocksdb/optimized/internal_stats.ll +++ b/bench/rocksdb/optimized/internal_stats.ll @@ -8338,14 +8338,15 @@ define noundef ptr @_ZN7rocksdb15GetPropertyInfoERKNS_5SliceE(ptr noundef nonnul call void @llvm.lifetime.start.p0(ptr nonnull %2) call void @llvm.lifetime.start.p0(ptr nonnull %3) tail call void @llvm.experimental.noalias.scope.decl(metadata !860) - %.sroa.013.0.copyload.i = load ptr, ptr %0, align 8, !tbaa !380, !noalias !860 + %.sroa.013.0.copyload.i = load i64, ptr %0, align 8, !tbaa !380, !noalias !860 %.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 8 %.sroa.4.0.copyload.i = load i64, ptr %.sroa.4.0..sroa_idx.i, align 8, !tbaa !40, !noalias !860 + %.sroa.0.0.copyload.cast.i = inttoptr i64 %.sroa.013.0.copyload.i to ptr %.not.i = icmp eq i64 %.sroa.4.0.copyload.i, 0 br i1 %.not.i, label %_ZN7rocksdb12_GLOBAL__N_121GetPropertyNameAndArgERKNS_5SliceE.exit, label %.lr.ph.i .lr.ph.i: ; preds = %1 - %4 = getelementptr i8, ptr %.sroa.013.0.copyload.i, i64 %.sroa.4.0.copyload.i + %4 = getelementptr i8, ptr %.sroa.0.0.copyload.cast.i, i64 %.sroa.4.0.copyload.i br label %5 5: ; preds = %10, %.lr.ph.i @@ -8366,8 +8367,8 @@ define noundef ptr @_ZN7rocksdb15GetPropertyInfoERKNS_5SliceE(ptr noundef nonnul _ZN7rocksdb12_GLOBAL__N_121GetPropertyNameAndArgERKNS_5SliceE.exit: ; preds = %5, %10, %1 %.0.lcssa.i = phi i64 [ 0, %1 ], [ %.017.i, %5 ], [ %.sroa.4.0.copyload.i, %10 ] %12 = sub i64 %.sroa.4.0.copyload.i, %.0.lcssa.i - %13 = getelementptr inbounds nuw i8, ptr %.sroa.013.0.copyload.i, i64 %12 - store ptr %.sroa.013.0.copyload.i, ptr %3, align 8, !tbaa !380, !alias.scope !860 + %13 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.copyload.cast.i, i64 %12 + store i64 %.sroa.013.0.copyload.i, ptr %3, align 8, !tbaa !380, !alias.scope !860 %.sroa.4.0..sroa_idx15.i = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 %12, ptr %.sroa.4.0..sroa_idx15.i, align 8, !tbaa !40, !alias.scope !860 %14 = getelementptr inbounds nuw i8, ptr %3, i64 16 @@ -8421,14 +8422,15 @@ declare void @_ZNK7rocksdb5Slice8ToStringB5cxx11Eb(ptr dead_on_unwind writable s ; Function Attrs: mustprogress uwtable define noundef zeroext i1 @_ZN7rocksdb13InternalStats17GetStringPropertyERKNS_14DBPropertyInfoERKNS_5SliceEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(2000) %0, ptr noundef nonnull readonly align 8 captures(none) dereferenceable(72) %1, ptr noundef nonnull readonly align 8 captures(none) dereferenceable(16) %2, ptr noundef %3) local_unnamed_addr #4 align 2 { - %.sroa.013.0.copyload.i = load ptr, ptr %2, align 8, !tbaa !380, !noalias !864 + %.sroa.013.0.copyload.i = load i64, ptr %2, align 8, !tbaa !380, !noalias !864 %.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %2, i64 8 %.sroa.4.0.copyload.i = load i64, ptr %.sroa.4.0..sroa_idx.i, align 8, !tbaa !40, !noalias !864 + %.sroa.0.0.copyload.cast.i = inttoptr i64 %.sroa.013.0.copyload.i to ptr %.not.i = icmp eq i64 %.sroa.4.0.copyload.i, 0 br i1 %.not.i, label %_ZN7rocksdb12_GLOBAL__N_121GetPropertyNameAndArgERKNS_5SliceE.exit, label %.lr.ph.i .lr.ph.i: ; preds = %4 - %5 = getelementptr i8, ptr %.sroa.013.0.copyload.i, i64 %.sroa.4.0.copyload.i + %5 = getelementptr i8, ptr %.sroa.0.0.copyload.cast.i, i64 %.sroa.4.0.copyload.i br label %6 6: ; preds = %11, %.lr.ph.i @@ -8471,7 +8473,7 @@ _ZN7rocksdb12_GLOBAL__N_121GetPropertyNameAndArgERKNS_5SliceE.exit: ; preds = %6 23: ; preds = %21, %16 %24 = phi ptr [ %20, %16 ], [ %22, %21 ] %25 = sub i64 %.sroa.4.0.copyload.i, %.0.lcssa.i - %26 = getelementptr inbounds nuw i8, ptr %.sroa.013.0.copyload.i, i64 %25 + %26 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.copyload.cast.i, i64 %25 %27 = tail call noundef zeroext i1 %24(ptr noundef nonnull align 8 dereferenceable(2000) %14, ptr noundef %3, ptr %26, i64 %.0.lcssa.i) ret i1 %27 } @@ -8481,14 +8483,15 @@ declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr no ; Function Attrs: mustprogress uwtable define noundef zeroext i1 @_ZN7rocksdb13InternalStats14GetMapPropertyERKNS_14DBPropertyInfoERKNS_5SliceEPSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESD_St4lessISD_ESaISt4pairIKSD_SD_EEE(ptr noundef nonnull align 8 dereferenceable(2000) %0, ptr noundef nonnull readonly align 8 captures(none) dereferenceable(72) %1, ptr noundef nonnull readonly align 8 captures(none) dereferenceable(16) %2, ptr noundef %3) local_unnamed_addr #4 align 2 { - %.sroa.013.0.copyload.i = load ptr, ptr %2, align 8, !tbaa !380, !noalias !869 + %.sroa.013.0.copyload.i = load i64, ptr %2, align 8, !tbaa !380, !noalias !869 %.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %2, i64 8 %.sroa.4.0.copyload.i = load i64, ptr %.sroa.4.0..sroa_idx.i, align 8, !tbaa !40, !noalias !869 + %.sroa.0.0.copyload.cast.i = inttoptr i64 %.sroa.013.0.copyload.i to ptr %.not.i = icmp eq i64 %.sroa.4.0.copyload.i, 0 br i1 %.not.i, label %_ZN7rocksdb12_GLOBAL__N_121GetPropertyNameAndArgERKNS_5SliceE.exit, label %.lr.ph.i .lr.ph.i: ; preds = %4 - %5 = getelementptr i8, ptr %.sroa.013.0.copyload.i, i64 %.sroa.4.0.copyload.i + %5 = getelementptr i8, ptr %.sroa.0.0.copyload.cast.i, i64 %.sroa.4.0.copyload.i br label %6 6: ; preds = %11, %.lr.ph.i @@ -8531,7 +8534,7 @@ _ZN7rocksdb12_GLOBAL__N_121GetPropertyNameAndArgERKNS_5SliceE.exit: ; preds = %6 23: ; preds = %21, %16 %24 = phi ptr [ %20, %16 ], [ %22, %21 ] %25 = sub i64 %.sroa.4.0.copyload.i, %.0.lcssa.i - %26 = getelementptr inbounds nuw i8, ptr %.sroa.013.0.copyload.i, i64 %25 + %26 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.copyload.cast.i, i64 %25 %27 = tail call noundef zeroext i1 %24(ptr noundef nonnull align 8 dereferenceable(2000) %14, ptr noundef %3, ptr %26, i64 %.0.lcssa.i) ret i1 %27 } diff --git a/bench/rust-analyzer-rs/optimized/2j2fovrmererjnve.ll b/bench/rust-analyzer-rs/optimized/2j2fovrmererjnve.ll index ff508601e25..bf875634969 100644 --- a/bench/rust-analyzer-rs/optimized/2j2fovrmererjnve.ll +++ b/bench/rust-analyzer-rs/optimized/2j2fovrmererjnve.ll @@ -4789,8 +4789,8 @@ _ZN11parking_lot10raw_rwlock9RawRwLock20try_lock_shared_fast17h19997ede6c8db329E .noexc14: ; preds = %40 unreachable -"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit": ; preds = %.body, %84, %93, %45 - %.pn = phi { ptr, i32 } [ %94, %93 ], [ %46, %45 ], [ %eh.lpad-body, %84 ], [ %eh.lpad-body, %.body ] +"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit": ; preds = %.body, %83, %92, %45 + %.pn = phi { ptr, i32 } [ %93, %92 ], [ %46, %45 ], [ %eh.lpad-body, %83 ], [ %eh.lpad-body, %.body ] %41 = atomicrmw sub ptr %1, i64 16 release, align 8, !noalias !455 %42 = and i64 %41, -14 %43 = icmp eq i64 %42, 18 @@ -4798,7 +4798,7 @@ _ZN11parking_lot10raw_rwlock9RawRwLock20try_lock_shared_fast17h19997ede6c8db329E 44: ; preds = %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit" invoke void @_ZN11parking_lot10raw_rwlock9RawRwLock18unlock_shared_slow17h48c5de16cc1f8475E(ptr noundef nonnull align 8 %1) - to label %"_ZN4core3ptr309drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$indexmap..map..IndexMap$LT$la_arena..Idx$LT$base_db..input..CrateData$GT$$C$salsa..input..Slot$LT$core..option..Option$LT$semver..Version$GT$$GT$$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$$GT$17h571fc03f536f21c3E.llvm.16417257138847559323.exit" unwind label %108 + to label %"_ZN4core3ptr309drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$indexmap..map..IndexMap$LT$la_arena..Idx$LT$base_db..input..CrateData$GT$$C$salsa..input..Slot$LT$core..option..Option$LT$semver..Version$GT$$GT$$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$$GT$17h571fc03f536f21c3E.llvm.16417257138847559323.exit" unwind label %107 45: ; preds = %"_ZN8indexmap3map25IndexMap$LT$K$C$V$C$S$GT$3get17h3455fa9e825515a6E.exit.thread", %40, %"_ZN8indexmap3map25IndexMap$LT$K$C$V$C$S$GT$12get_index_of17haff2ca80ca4a6dcaE.llvm.6986466436814177072.exit.i", %_ZN11parking_lot10raw_rwlock9RawRwLock20try_lock_shared_fast17h19997ede6c8db329E.llvm.16417257138847559323.exit.thread %46 = landingpad { ptr, i32 } @@ -4858,119 +4858,118 @@ _ZN11parking_lot10raw_rwlock9RawRwLock20try_lock_shared_fast17h19997ede6c8db329E %69 = load i64, ptr %68, align 8, !alias.scope !468, !noalias !469, !noundef !5 call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !471 %70 = invoke i64 @"_ZN69_$LT$semver..identifier..Identifier$u20$as$u20$core..clone..Clone$GT$5clone17h28ca814320aa363bE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %60) - to label %.noexc21 unwind label %79 + to label %.noexc21 unwind label %78 .noexc21: ; preds = %63 - %71 = inttoptr i64 %70 to ptr - store ptr %71, ptr %6, align 8, !noalias !471 - %72 = getelementptr inbounds nuw i8, ptr %49, i64 16 - %73 = invoke i64 @"_ZN69_$LT$semver..identifier..Identifier$u20$as$u20$core..clone..Clone$GT$5clone17h28ca814320aa363bE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %72) - to label %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i" unwind label %74, !noalias !469 - -74: ; preds = %.noexc21 - %75 = landingpad { ptr, i32 } + store i64 %70, ptr %6, align 8, !noalias !471 + %71 = getelementptr inbounds nuw i8, ptr %49, i64 16 + %72 = invoke i64 @"_ZN69_$LT$semver..identifier..Identifier$u20$as$u20$core..clone..Clone$GT$5clone17h28ca814320aa363bE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %71) + to label %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i" unwind label %73, !noalias !469 + +73: ; preds = %.noexc21 + %74 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$semver..identifier..Identifier$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2be2ae9091aa993eE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %6) - to label %.body unwind label %76, !noalias !469 + to label %.body unwind label %75, !noalias !469 -76: ; preds = %74 - %77 = landingpad { ptr, i32 } +75: ; preds = %73 + %76 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #14, !noalias !469 unreachable "_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i": ; preds = %.noexc21 - %78 = inttoptr i64 %73 to ptr call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !471 + %77 = inttoptr i64 %70 to ptr br label %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4bd8d8c60b7a419aE.exit" -79: ; preds = %63 - %80 = landingpad { ptr, i32 } +78: ; preds = %63 + %79 = landingpad { ptr, i32 } cleanup br label %.body -.body: ; preds = %74, %79 - %eh.lpad-body = phi { ptr, i32 } [ %80, %79 ], [ %75, %74 ] - %81 = atomicrmw sub ptr %49, i64 16 release, align 8 - %82 = and i64 %81, -14 - %83 = icmp eq i64 %82, 18 - br i1 %83, label %84, label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit" +.body: ; preds = %73, %78 + %eh.lpad-body = phi { ptr, i32 } [ %79, %78 ], [ %74, %73 ] + %80 = atomicrmw sub ptr %49, i64 16 release, align 8 + %81 = and i64 %80, -14 + %82 = icmp eq i64 %81, 18 + br i1 %82, label %83, label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit" -84: ; preds = %.body +83: ; preds = %.body invoke void @_ZN11parking_lot10raw_rwlock9RawRwLock18unlock_shared_slow17h48c5de16cc1f8475E(ptr noundef nonnull align 8 %49) - to label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit" unwind label %108 + to label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit" unwind label %107 "_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4bd8d8c60b7a419aE.exit": ; preds = %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i", %59 %.sroa.4.0 = phi i64 [ %65, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i" ], [ undef, %59 ] - %.sroa.3.0 = phi ptr [ %78, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i" ], [ undef, %59 ] - %.sroa.0.0 = phi ptr [ %71, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i" ], [ null, %59 ] + %.sroa.3.0 = phi i64 [ %72, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i" ], [ undef, %59 ] + %.sroa.0.0 = phi ptr [ %77, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i" ], [ null, %59 ] %.sroa.5.0 = phi i64 [ %67, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i" ], [ undef, %59 ] %.sroa.6.0 = phi i64 [ %69, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i" ], [ undef, %59 ] - %85 = getelementptr inbounds nuw i8, ptr %49, i64 52 - %86 = load i8, ptr %85, align 4, !noundef !5 - %87 = getelementptr inbounds nuw i8, ptr %49, i64 48 - %88 = load i32, ptr %87, align 8, !range !14, !noundef !5 + %84 = getelementptr inbounds nuw i8, ptr %49, i64 52 + %85 = load i8, ptr %84, align 4, !noundef !5 + %86 = getelementptr inbounds nuw i8, ptr %49, i64 48 + %87 = load i32, ptr %86, align 8, !range !14, !noundef !5 call void @llvm.lifetime.start.p0(ptr nonnull %7) store ptr %.sroa.0.0, ptr %7, align 8 %.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 8 - store ptr %.sroa.3.0, ptr %.sroa.3.0..sroa_idx, align 8 + store i64 %.sroa.3.0, ptr %.sroa.3.0..sroa_idx, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 16 store i64 %.sroa.4.0, ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 24 store i64 %.sroa.5.0, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 32 store i64 %.sroa.6.0, ptr %.sroa.6.0..sroa_idx, align 8 - %89 = atomicrmw sub ptr %49, i64 16 release, align 8 - %90 = and i64 %89, -14 - %91 = icmp eq i64 %90, 18 - br i1 %91, label %92, label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24" + %88 = atomicrmw sub ptr %49, i64 16 release, align 8 + %89 = and i64 %88, -14 + %90 = icmp eq i64 %89, 18 + br i1 %90, label %91, label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24" -92: ; preds = %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4bd8d8c60b7a419aE.exit" +91: ; preds = %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4bd8d8c60b7a419aE.exit" invoke void @_ZN11parking_lot10raw_rwlock9RawRwLock18unlock_shared_slow17h48c5de16cc1f8475E(ptr noundef nonnull align 8 %49) - to label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24" unwind label %93 + to label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24" unwind label %92 -93: ; preds = %92, %98, %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24" - %94 = landingpad { ptr, i32 } +92: ; preds = %91, %97, %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24" + %93 = landingpad { ptr, i32 } cleanup invoke fastcc void @"_ZN4core3ptr64drop_in_place$LT$core..option..Option$LT$semver..Version$GT$$GT$17h8414938af7aaf726E"(ptr noalias noundef align 8 dereferenceable(40) %7) #15 - to label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit" unwind label %108 - -"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24": ; preds = %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4bd8d8c60b7a419aE.exit", %92 - %95 = getelementptr inbounds nuw i8, ptr %3, i64 96 - %96 = load ptr, ptr %95, align 8, !invariant.load !5, !nonnull !5 - %97 = invoke noundef nonnull align 8 ptr %96(ptr noundef nonnull align 1 %2) - to label %98 unwind label %93 - -98: ; preds = %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24" - %99 = getelementptr inbounds nuw i8, ptr %1, i64 64 - %100 = load i16, ptr %99, align 8, !noundef !5 - %101 = getelementptr inbounds nuw i8, ptr %49, i64 56 - %102 = load i32, ptr %101, align 8, !noundef !5 - %.sroa.4.0.insert.ext = zext i16 %100 to i64 + to label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit" unwind label %107 + +"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24": ; preds = %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4bd8d8c60b7a419aE.exit", %91 + %94 = getelementptr inbounds nuw i8, ptr %3, i64 96 + %95 = load ptr, ptr %94, align 8, !invariant.load !5, !nonnull !5 + %96 = invoke noundef nonnull align 8 ptr %95(ptr noundef nonnull align 1 %2) + to label %97 unwind label %92 + +97: ; preds = %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24" + %98 = getelementptr inbounds nuw i8, ptr %1, i64 64 + %99 = load i16, ptr %98, align 8, !noundef !5 + %100 = getelementptr inbounds nuw i8, ptr %49, i64 56 + %101 = load i32, ptr %100, align 8, !noundef !5 + %.sroa.4.0.insert.ext = zext i16 %99 to i64 %.sroa.4.0.insert.shift = shl nuw nsw i64 %.sroa.4.0.insert.ext, 32 - %.sroa.0.0.insert.ext = zext i32 %102 to i64 + %.sroa.0.0.insert.ext = zext i32 %101 to i64 %.sroa.4.0.insert.insert = or disjoint i64 %.sroa.4.0.insert.shift, %.sroa.0.0.insert.ext %.sroa.0.0.insert.insert = or disjoint i64 %.sroa.4.0.insert.insert, 844424930131968 - invoke void @_ZN5salsa7runtime7Runtime46report_query_read_and_unwind_if_cycle_resulted17heb92bd3f14a6330bE(ptr noundef nonnull align 8 %97, i64 %.sroa.0.0.insert.insert, i8 noundef %86, i32 noundef %88) - to label %103 unwind label %93 + invoke void @_ZN5salsa7runtime7Runtime46report_query_read_and_unwind_if_cycle_resulted17heb92bd3f14a6330bE(ptr noundef nonnull align 8 %96, i64 %.sroa.0.0.insert.insert, i8 noundef %85, i32 noundef %87) + to label %102 unwind label %92 -103: ; preds = %98 +102: ; preds = %97 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %0, ptr noundef nonnull align 8 dereferenceable(40) %7, i64 40, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %7) - %104 = atomicrmw sub ptr %1, i64 16 release, align 8, !noalias !472 - %105 = and i64 %104, -14 - %106 = icmp eq i64 %105, 18 - br i1 %106, label %107, label %"_ZN4core3ptr309drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$indexmap..map..IndexMap$LT$la_arena..Idx$LT$base_db..input..CrateData$GT$$C$salsa..input..Slot$LT$core..option..Option$LT$semver..Version$GT$$GT$$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$$GT$17h571fc03f536f21c3E.llvm.16417257138847559323.exit25" + %103 = atomicrmw sub ptr %1, i64 16 release, align 8, !noalias !472 + %104 = and i64 %103, -14 + %105 = icmp eq i64 %104, 18 + br i1 %105, label %106, label %"_ZN4core3ptr309drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$indexmap..map..IndexMap$LT$la_arena..Idx$LT$base_db..input..CrateData$GT$$C$salsa..input..Slot$LT$core..option..Option$LT$semver..Version$GT$$GT$$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$$GT$17h571fc03f536f21c3E.llvm.16417257138847559323.exit25" -107: ; preds = %103 +106: ; preds = %102 tail call void @_ZN11parking_lot10raw_rwlock9RawRwLock18unlock_shared_slow17h48c5de16cc1f8475E(ptr noundef nonnull align 8 %1), !noalias !472 br label %"_ZN4core3ptr309drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$indexmap..map..IndexMap$LT$la_arena..Idx$LT$base_db..input..CrateData$GT$$C$salsa..input..Slot$LT$core..option..Option$LT$semver..Version$GT$$GT$$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$$GT$17h571fc03f536f21c3E.llvm.16417257138847559323.exit25" -"_ZN4core3ptr309drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$indexmap..map..IndexMap$LT$la_arena..Idx$LT$base_db..input..CrateData$GT$$C$salsa..input..Slot$LT$core..option..Option$LT$semver..Version$GT$$GT$$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$$GT$17h571fc03f536f21c3E.llvm.16417257138847559323.exit25": ; preds = %103, %107 +"_ZN4core3ptr309drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$indexmap..map..IndexMap$LT$la_arena..Idx$LT$base_db..input..CrateData$GT$$C$salsa..input..Slot$LT$core..option..Option$LT$semver..Version$GT$$GT$$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$$GT$17h571fc03f536f21c3E.llvm.16417257138847559323.exit25": ; preds = %102, %106 ret void -108: ; preds = %84, %44, %93 - %109 = landingpad { ptr, i32 } +107: ; preds = %83, %44, %92 + %108 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #14 unreachable diff --git a/bench/rust-analyzer-rs/optimized/2ztqi8ib9ngj9iz.ll b/bench/rust-analyzer-rs/optimized/2ztqi8ib9ngj9iz.ll index fccfe189a57..4cfae88960c 100644 --- a/bench/rust-analyzer-rs/optimized/2ztqi8ib9ngj9iz.ll +++ b/bench/rust-analyzer-rs/optimized/2ztqi8ib9ngj9iz.ll @@ -521,49 +521,52 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 %.sroa.4.0..sroa_idx2 = getelementptr inbounds nuw i8, ptr %1, i64 32 %.sroa.4.0.copyload3 = load i64, ptr %.sroa.4.0..sroa_idx2, align 8, !alias.scope !141 %.sroa.6.0..sroa_idx5 = getelementptr inbounds nuw i8, ptr %1, i64 40 - %.sroa.6.0.copyload6 = load ptr, ptr %.sroa.6.0..sroa_idx5, align 8, !alias.scope !141, !nonnull !16, !noundef !16 + %.sroa.6.0.copyload6 = load i64, ptr %.sroa.6.0..sroa_idx5, align 8, !alias.scope !141 + %3 = inttoptr i64 %.sroa.6.0.copyload6 to ptr + %4 = icmp ne i64 %.sroa.6.0.copyload6, 0 + tail call void @llvm.assume(i1 %4) call void @llvm.lifetime.start.p0(ptr nonnull %2), !noalias !145 - store ptr %.sroa.6.0.copyload6, ptr %2, align 8, !noalias !156 - %3 = getelementptr inbounds nuw i8, ptr %2, i64 8 - store ptr %0, ptr %3, align 8, !noalias !156 + store ptr %3, ptr %2, align 8, !noalias !156 + %5 = getelementptr inbounds nuw i8, ptr %2, i64 8 + store ptr %0, ptr %5, align 8, !noalias !156 br label %.outer.i.i.i.i.i .outer.i.i.i.i.i: ; preds = %._crit_edge.i.i.i.i.i, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h7283569612df02e4E.exit" - %4 = phi i16 [ %9, %._crit_edge.i.i.i.i.i ], [ %.sroa.0.sroa.6.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h7283569612df02e4E.exit" ] + %6 = phi i16 [ %11, %._crit_edge.i.i.i.i.i ], [ %.sroa.0.sroa.6.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h7283569612df02e4E.exit" ] %.lcssa1722.i.i.i.i.i = phi ptr [ %.lcssa1721.i.i.i.i.i, %._crit_edge.i.i.i.i.i ], [ %.sroa.0.sroa.4.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h7283569612df02e4E.exit" ] %.lcssa1620.i.i.i.i.i = phi ptr [ %.lcssa1619.i.i.i.i.i, %._crit_edge.i.i.i.i.i ], [ %.sroa.0.sroa.0.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h7283569612df02e4E.exit" ] - %.0.ph.i.i.i.i.i = phi i64 [ %14, %._crit_edge.i.i.i.i.i ], [ %.sroa.4.0.copyload3, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h7283569612df02e4E.exit" ] - %.not.i13.i.i.i.i.i = icmp eq i16 %4, 0 + %.0.ph.i.i.i.i.i = phi i64 [ %16, %._crit_edge.i.i.i.i.i ], [ %.sroa.4.0.copyload3, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h7283569612df02e4E.exit" ] + %.not.i13.i.i.i.i.i = icmp eq i16 %6, 0 br i1 %.not.i13.i.i.i.i.i, label %.lr.ph.i.i.i.i.i, label %._crit_edge.i.i.i.i.i .lr.ph.i.i.i.i.i: ; preds = %.outer.i.i.i.i.i - %5 = icmp eq i64 %.0.ph.i.i.i.i.i, 0 - br i1 %5, label %_ZN4core4iter6traits8iterator8Iterator8for_each17h03a3e39f9039d85eE.llvm.4309087787269155690.exit, label %.lr.ph.split.i.i.i.i.i + %7 = icmp eq i64 %.0.ph.i.i.i.i.i, 0 + br i1 %7, label %_ZN4core4iter6traits8iterator8Iterator8for_each17h03a3e39f9039d85eE.llvm.4309087787269155690.exit, label %.lr.ph.split.i.i.i.i.i ._crit_edge.i.i.i.i.i: ; preds = %.lr.ph.split.i.i.i.i.i, %.outer.i.i.i.i.i - %.lcssa1721.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i, %.outer.i.i.i.i.i ], [ %20, %.lr.ph.split.i.i.i.i.i ] - %.lcssa1619.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i, %.outer.i.i.i.i.i ], [ %19, %.lr.ph.split.i.i.i.i.i ] - %.lcssa.i.i.i.i.i = phi i16 [ %4, %.outer.i.i.i.i.i ], [ %.cast.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i ] - %6 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i, i1 true) - %7 = zext nneg i16 %6 to i64 - %8 = add i16 %.lcssa.i.i.i.i.i, -1 - %9 = and i16 %8, %.lcssa.i.i.i.i.i - %10 = sub nsw i64 0, %7 - %11 = getelementptr inbounds { ptr, { { i8, [15 x i8] }, i32 }, [1 x i32] }, ptr %.lcssa1619.i.i.i.i.i, i64 %10 - %12 = getelementptr inbounds i8, ptr %11, i64 -32 - %13 = getelementptr inbounds i8, ptr %11, i64 -24 - call void @"_ZN4core4iter8adapters10filter_map15filter_map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hd5f87d3e872df881E.llvm.13035063388551028202"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %12, ptr noalias noundef nonnull readonly align 4 dereferenceable(20) %13), !noalias !161 - %14 = add i64 %.0.ph.i.i.i.i.i, -1 + %.lcssa1721.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i, %.outer.i.i.i.i.i ], [ %22, %.lr.ph.split.i.i.i.i.i ] + %.lcssa1619.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i, %.outer.i.i.i.i.i ], [ %21, %.lr.ph.split.i.i.i.i.i ] + %.lcssa.i.i.i.i.i = phi i16 [ %6, %.outer.i.i.i.i.i ], [ %.cast.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i ] + %8 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i, i1 true) + %9 = zext nneg i16 %8 to i64 + %10 = add i16 %.lcssa.i.i.i.i.i, -1 + %11 = and i16 %10, %.lcssa.i.i.i.i.i + %12 = sub nsw i64 0, %9 + %13 = getelementptr inbounds { ptr, { { i8, [15 x i8] }, i32 }, [1 x i32] }, ptr %.lcssa1619.i.i.i.i.i, i64 %12 + %14 = getelementptr inbounds i8, ptr %13, i64 -32 + %15 = getelementptr inbounds i8, ptr %13, i64 -24 + call void @"_ZN4core4iter8adapters10filter_map15filter_map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hd5f87d3e872df881E.llvm.13035063388551028202"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %14, ptr noalias noundef nonnull readonly align 4 dereferenceable(20) %15), !noalias !161 + %16 = add i64 %.0.ph.i.i.i.i.i, -1 br label %.outer.i.i.i.i.i .lr.ph.split.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i - %15 = phi ptr [ %20, %.lr.ph.split.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i, %.lr.ph.i.i.i.i.i ] - %16 = phi ptr [ %19, %.lr.ph.split.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i, %.lr.ph.i.i.i.i.i ] - %17 = load <16 x i8>, ptr %15, align 16, !noalias !166 - %18 = icmp sgt <16 x i8> %17, splat (i8 -1) - %19 = getelementptr inbounds i8, ptr %16, i64 -512 - %20 = getelementptr inbounds nuw i8, ptr %15, i64 16 - %.cast.i.i.i.i.i = bitcast <16 x i1> %18 to i16 + %17 = phi ptr [ %22, %.lr.ph.split.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i, %.lr.ph.i.i.i.i.i ] + %18 = phi ptr [ %21, %.lr.ph.split.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i, %.lr.ph.i.i.i.i.i ] + %19 = load <16 x i8>, ptr %17, align 16, !noalias !166 + %20 = icmp sgt <16 x i8> %19, splat (i8 -1) + %21 = getelementptr inbounds i8, ptr %18, i64 -512 + %22 = getelementptr inbounds nuw i8, ptr %17, i64 16 + %.cast.i.i.i.i.i = bitcast <16 x i1> %20 to i16 %.not.i.i.i.i.i.i = icmp eq i16 %.cast.i.i.i.i.i, 0 br i1 %.not.i.i.i.i.i.i, label %.lr.ph.split.i.i.i.i.i, label %._crit_edge.i.i.i.i.i @@ -710,75 +713,78 @@ define hidden void @"_ZN136_$LT$std..collections..hash..map..HashMap$LT$K$C$V$C$ %.sroa.65.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 32 %.sroa.65.0.copyload = load i64, ptr %.sroa.65.0..sroa_idx, align 8 %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 40 - %.sroa.7.0.copyload = load ptr, ptr %.sroa.7.0..sroa_idx, align 8, !nonnull !16, !noundef !16 + %.sroa.7.0.copyload = load i64, ptr %.sroa.7.0..sroa_idx, align 8 + %5 = inttoptr i64 %.sroa.7.0.copyload to ptr + %6 = icmp ne i64 %.sroa.7.0.copyload, 0 + tail call void @llvm.assume(i1 %6) call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !224 - store ptr %.sroa.7.0.copyload, ptr %3, align 8, !noalias !238 - %5 = getelementptr inbounds nuw i8, ptr %3, i64 8 - store ptr %4, ptr %5, align 8, !noalias !238 + store ptr %5, ptr %3, align 8, !noalias !238 + %7 = getelementptr inbounds nuw i8, ptr %3, i64 8 + store ptr %4, ptr %7, align 8, !noalias !238 br label %.outer.i.i.i.i.i.i .outer.i.i.i.i.i.i: ; preds = %.noexc, %2 - %6 = phi i16 [ %15, %.noexc ], [ %.sroa.54.0.copyload, %2 ] + %8 = phi i16 [ %17, %.noexc ], [ %.sroa.54.0.copyload, %2 ] %.lcssa1722.i.i.i.i.i.i = phi ptr [ %.lcssa1721.i.i.i.i.i.i, %.noexc ], [ %.sroa.4.0.copyload, %2 ] %.lcssa1620.i.i.i.i.i.i = phi ptr [ %.lcssa1619.i.i.i.i.i.i, %.noexc ], [ %.sroa.0.0.copyload, %2 ] - %.0.ph.i.i.i.i.i.i = phi i64 [ %16, %.noexc ], [ %.sroa.65.0.copyload, %2 ] - %.not.i13.i.i.i.i.i.i = icmp eq i16 %6, 0 + %.0.ph.i.i.i.i.i.i = phi i64 [ %18, %.noexc ], [ %.sroa.65.0.copyload, %2 ] + %.not.i13.i.i.i.i.i.i = icmp eq i16 %8, 0 br i1 %.not.i13.i.i.i.i.i.i, label %.lr.ph.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i: ; preds = %.outer.i.i.i.i.i.i - %7 = icmp eq i64 %.0.ph.i.i.i.i.i.i, 0 - br i1 %7, label %25, label %.lr.ph.split.i.i.i.i.i.i + %9 = icmp eq i64 %.0.ph.i.i.i.i.i.i, 0 + br i1 %9, label %27, label %.lr.ph.split.i.i.i.i.i.i ._crit_edge.i.i.i.i.i.i: ; preds = %.lr.ph.split.i.i.i.i.i.i, %.outer.i.i.i.i.i.i - %.lcssa1721.i.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %22, %.lr.ph.split.i.i.i.i.i.i ] - %.lcssa1619.i.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %21, %.lr.ph.split.i.i.i.i.i.i ] - %.lcssa.i.i.i.i.i.i = phi i16 [ %6, %.outer.i.i.i.i.i.i ], [ %.cast.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i ] - %8 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i.i, i1 true) - %9 = zext nneg i16 %8 to i64 - %10 = sub nsw i64 0, %9 - %11 = getelementptr inbounds { ptr, { { i8, [15 x i8] }, i32 }, [1 x i32] }, ptr %.lcssa1619.i.i.i.i.i.i, i64 %10 - %12 = getelementptr inbounds i8, ptr %11, i64 -32 - %13 = getelementptr inbounds i8, ptr %11, i64 -24 - invoke void @"_ZN4core4iter8adapters10filter_map15filter_map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hd5f87d3e872df881E.llvm.13035063388551028202"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %12, ptr noalias noundef nonnull readonly align 4 dereferenceable(20) %13) - to label %.noexc unwind label %23 + %.lcssa1721.i.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %24, %.lr.ph.split.i.i.i.i.i.i ] + %.lcssa1619.i.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %23, %.lr.ph.split.i.i.i.i.i.i ] + %.lcssa.i.i.i.i.i.i = phi i16 [ %8, %.outer.i.i.i.i.i.i ], [ %.cast.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i ] + %10 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i.i, i1 true) + %11 = zext nneg i16 %10 to i64 + %12 = sub nsw i64 0, %11 + %13 = getelementptr inbounds { ptr, { { i8, [15 x i8] }, i32 }, [1 x i32] }, ptr %.lcssa1619.i.i.i.i.i.i, i64 %12 + %14 = getelementptr inbounds i8, ptr %13, i64 -32 + %15 = getelementptr inbounds i8, ptr %13, i64 -24 + invoke void @"_ZN4core4iter8adapters10filter_map15filter_map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hd5f87d3e872df881E.llvm.13035063388551028202"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %14, ptr noalias noundef nonnull readonly align 4 dereferenceable(20) %15) + to label %.noexc unwind label %25 .noexc: ; preds = %._crit_edge.i.i.i.i.i.i - %14 = add i16 %.lcssa.i.i.i.i.i.i, -1 - %15 = and i16 %14, %.lcssa.i.i.i.i.i.i - %16 = add i64 %.0.ph.i.i.i.i.i.i, -1 + %16 = add i16 %.lcssa.i.i.i.i.i.i, -1 + %17 = and i16 %16, %.lcssa.i.i.i.i.i.i + %18 = add i64 %.0.ph.i.i.i.i.i.i, -1 br label %.outer.i.i.i.i.i.i .lr.ph.split.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i - %17 = phi ptr [ %22, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] - %18 = phi ptr [ %21, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] - %19 = load <16 x i8>, ptr %17, align 16, !noalias !243 - %20 = icmp sgt <16 x i8> %19, splat (i8 -1) - %21 = getelementptr inbounds i8, ptr %18, i64 -512 - %22 = getelementptr inbounds nuw i8, ptr %17, i64 16 - %.cast.i.i.i.i.i.i = bitcast <16 x i1> %20 to i16 + %19 = phi ptr [ %24, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] + %20 = phi ptr [ %23, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] + %21 = load <16 x i8>, ptr %19, align 16, !noalias !243 + %22 = icmp sgt <16 x i8> %21, splat (i8 -1) + %23 = getelementptr inbounds i8, ptr %20, i64 -512 + %24 = getelementptr inbounds nuw i8, ptr %19, i64 16 + %.cast.i.i.i.i.i.i = bitcast <16 x i1> %22 to i16 %.not.i.i.i.i.i.i.i = icmp eq i16 %.cast.i.i.i.i.i.i, 0 br i1 %.not.i.i.i.i.i.i.i, label %.lr.ph.split.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i -23: ; preds = %._crit_edge.i.i.i.i.i.i - %24 = landingpad { ptr, i32 } +25: ; preds = %._crit_edge.i.i.i.i.i.i + %26 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr224drop_in_place$LT$std..collections..hash..map..HashMap$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$C$ide_ssr..resolving..UfcsCallInfo$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$17h0f191b63b9e453afE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %4) #46 - to label %28 unwind label %26 + to label %30 unwind label %28 -25: ; preds = %.lr.ph.i.i.i.i.i.i +27: ; preds = %.lr.ph.i.i.i.i.i.i call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !224 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %4, i64 32, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %4) ret void -26: ; preds = %23 - %27 = landingpad { ptr, i32 } +28: ; preds = %25 + %29 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #47 unreachable -28: ; preds = %23 - resume { ptr, i32 } %24 +30: ; preds = %25 + resume { ptr, i32 } %26 } ; Function Attrs: nonlazybind uwtable @@ -4357,10 +4363,10 @@ define hidden void @"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$12remove_ent %48 = ashr exact i64 %47, 4 call void @_ZN9hashbrown3raw13RawTableInner5erase17h86e2a65e36278b42E.llvm.13035063388551028202(ptr noalias noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %48), !noalias !1188 %49 = getelementptr inbounds i8, ptr %43, i64 -16 - %50 = load i64, ptr %49, align 8, !noalias !1189 + %.sroa.0.0.copyload.i.i = load i64, ptr %49, align 8, !noalias !1189 %.sroa.4.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %43, i64 -8 %.sroa.4.0.copyload.i.i = load ptr, ptr %.sroa.4.0..sroa_idx.i.i, align 8, !noalias !1189 - store i64 %50, ptr %0, align 8, !alias.scope !1157, !noalias !1190 + store i64 %.sroa.0.0.copyload.i.i, ptr %0, align 8, !alias.scope !1157, !noalias !1190 br label %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$12remove_entry17h324d7b3a3a016d64E.exit" "_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$12remove_entry17h324d7b3a3a016d64E.exit": ; preds = %40, %41 diff --git a/bench/rust-analyzer-rs/optimized/4qhzdiok6f4mymhy.ll b/bench/rust-analyzer-rs/optimized/4qhzdiok6f4mymhy.ll index 917b4aa8b02..a6bad7bdecc 100644 --- a/bench/rust-analyzer-rs/optimized/4qhzdiok6f4mymhy.ll +++ b/bench/rust-analyzer-rs/optimized/4qhzdiok6f4mymhy.ll @@ -87,7 +87,7 @@ define hidden void @"_ZN111_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec.. %7 = getelementptr inbounds nuw i8, ptr %1, i64 40 %.val = load i64, ptr %7, align 8, !noundef !16 %8 = invoke { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17had3fac05421dde1eE"(i64 noundef %.val, i1 noundef zeroext false) - to label %9 unwind label %66 + to label %9 unwind label %65 9: ; preds = %2 %10 = extractvalue { i64, ptr } %8, 0 @@ -110,7 +110,7 @@ define hidden void @"_ZN111_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec.. 16: ; preds = %9 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h43cc428b81e9ea79E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %6, i64 noundef 0, i64 noundef %.val.i.i) - to label %"._ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17hf2abc9be2f12c1f1E.exit_crit_edge.i.i" unwind label %57, !noalias !27 + to label %"._ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17hf2abc9be2f12c1f1E.exit_crit_edge.i.i" unwind label %56, !noalias !27 "._ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17hf2abc9be2f12c1f1E.exit_crit_edge.i.i": ; preds = %16 %.pre.i.i = load i64, ptr %13, align 8, !alias.scope !28, !noalias !27 @@ -137,15 +137,15 @@ define hidden void @"_ZN111_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec.. %25 = getelementptr inbounds nuw i8, ptr %4, i64 8 br label %26 -26: ; preds = %43, %21 - %.val4.i.i.i.i.i = phi i64 [ %18, %21 ], [ %45, %43 ] - %.0.i.in.i.i.i.i = phi i64 [ %20, %21 ], [ %.0.i.i.i.i.i, %43 ] +26: ; preds = %42, %21 + %.val4.i.i.i.i.i = phi i64 [ %18, %21 ], [ %44, %42 ] + %.0.i.in.i.i.i.i = phi i64 [ %20, %21 ], [ %.0.i.i.i.i.i, %42 ] %.0.i.i.i.i.i = add i64 %.0.i.in.i.i.i.i, -1 call void @llvm.experimental.noalias.scope.decl(metadata !43) call void @llvm.experimental.noalias.scope.decl(metadata !46) %27 = load ptr, ptr %4, align 8, !alias.scope !49, !noalias !50, !noundef !16 %28 = icmp eq ptr %27, null - br i1 %28, label %43, label %29 + br i1 %28, label %42, label %29 29: ; preds = %26 call void @llvm.experimental.noalias.scope.decl(metadata !54) @@ -154,141 +154,140 @@ define hidden void @"_ZN111_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec.. %32 = load i64, ptr %24, align 8, !alias.scope !57, !noalias !58, !noundef !16 call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !60 %33 = invoke i64 @"_ZN69_$LT$semver..identifier..Identifier$u20$as$u20$core..clone..Clone$GT$5clone17h28ca814320aa363bE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %4) - to label %.noexc.i.i.i.i.i unwind label %41, !noalias !61 + to label %.noexc.i.i.i.i.i unwind label %40, !noalias !61 .noexc.i.i.i.i.i: ; preds = %29 - %34 = inttoptr i64 %33 to ptr - store ptr %34, ptr %3, align 8, !noalias !60 - %35 = invoke i64 @"_ZN69_$LT$semver..identifier..Identifier$u20$as$u20$core..clone..Clone$GT$5clone17h28ca814320aa363bE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %25) - to label %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i" unwind label %36, !noalias !62 + store i64 %33, ptr %3, align 8, !noalias !60 + %34 = invoke i64 @"_ZN69_$LT$semver..identifier..Identifier$u20$as$u20$core..clone..Clone$GT$5clone17h28ca814320aa363bE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %25) + to label %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i" unwind label %35, !noalias !62 -36: ; preds = %.noexc.i.i.i.i.i - %37 = landingpad { ptr, i32 } +35: ; preds = %.noexc.i.i.i.i.i + %36 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$semver..identifier..Identifier$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2be2ae9091aa993eE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3) - to label %.body.i.i.i.i unwind label %38, !noalias !62 + to label %.body.i.i.i.i unwind label %37, !noalias !62 -38: ; preds = %36 - %39 = landingpad { ptr, i32 } +37: ; preds = %35 + %38 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #16, !noalias !62 unreachable "_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i": ; preds = %.noexc.i.i.i.i.i - %40 = inttoptr i64 %35 to ptr call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !60 - br label %43 + %39 = inttoptr i64 %33 to ptr + br label %42 -41: ; preds = %29 - %42 = landingpad { ptr, i32 } +40: ; preds = %29 + %41 = landingpad { ptr, i32 } cleanup br label %.body.i.i.i.i -43: ; preds = %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i", %26 +42: ; preds = %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i", %26 %.sroa.8.0.i.i.i.i.i.i = phi i64 [ %32, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i" ], [ undef, %26 ] %.sroa.7.0.i.i.i.i.i.i = phi i64 [ %31, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i" ], [ undef, %26 ] %.sroa.6.0.i.i.i.i.i.i = phi i64 [ %30, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i" ], [ undef, %26 ] - %.sroa.5.0.i.i.i.i.i.i = phi ptr [ %40, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i" ], [ undef, %26 ] - %.sroa.0.0.i.i.i.i.i.i = phi ptr [ %34, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i" ], [ null, %26 ] - %44 = getelementptr inbounds { ptr, [4 x i64] }, ptr %17, i64 %.val4.i.i.i.i.i - store ptr %.sroa.0.0.i.i.i.i.i.i, ptr %44, align 8, !noalias !63 - %.sroa.3.sroa.4.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %44, i64 8 - store ptr %.sroa.5.0.i.i.i.i.i.i, ptr %.sroa.3.sroa.4.0..sroa_idx.i.i.i.i.i, align 8, !noalias !63 - %.sroa.3.sroa.5.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %44, i64 16 + %.sroa.5.0.i.i.i.i.i.i = phi i64 [ %34, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i" ], [ undef, %26 ] + %.sroa.0.0.i.i.i.i.i.i = phi ptr [ %39, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i" ], [ null, %26 ] + %43 = getelementptr inbounds { ptr, [4 x i64] }, ptr %17, i64 %.val4.i.i.i.i.i + store ptr %.sroa.0.0.i.i.i.i.i.i, ptr %43, align 8, !noalias !63 + %.sroa.3.sroa.4.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %43, i64 8 + store i64 %.sroa.5.0.i.i.i.i.i.i, ptr %.sroa.3.sroa.4.0..sroa_idx.i.i.i.i.i, align 8, !noalias !63 + %.sroa.3.sroa.5.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %43, i64 16 store i64 %.sroa.6.0.i.i.i.i.i.i, ptr %.sroa.3.sroa.5.0..sroa_idx.i.i.i.i.i, align 8, !noalias !63 - %.sroa.3.sroa.6.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %44, i64 24 + %.sroa.3.sroa.6.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %43, i64 24 store i64 %.sroa.7.0.i.i.i.i.i.i, ptr %.sroa.3.sroa.6.0..sroa_idx.i.i.i.i.i, align 8, !noalias !63 - %.sroa.3.sroa.7.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %44, i64 32 + %.sroa.3.sroa.7.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %43, i64 32 store i64 %.sroa.8.0.i.i.i.i.i.i, ptr %.sroa.3.sroa.7.0..sroa_idx.i.i.i.i.i, align 8, !noalias !63 - %45 = add i64 %.val4.i.i.i.i.i, 1 + %44 = add i64 %.val4.i.i.i.i.i, 1 %.not.i.i.i.i.i = icmp eq i64 %.0.i.i.i.i.i, 0 br i1 %.not.i.i.i.i.i, label %.critedge.i.i.i.i, label %26 -.body.i.i.i.i: ; preds = %41, %36 - %eh.lpad-body.i.i.i.i.i = phi { ptr, i32 } [ %37, %36 ], [ %42, %41 ] +.body.i.i.i.i: ; preds = %40, %35 + %eh.lpad-body.i.i.i.i.i = phi { ptr, i32 } [ %36, %35 ], [ %41, %40 ] store i64 %.val4.i.i.i.i.i, ptr %13, align 8, !alias.scope !28, !noalias !61 invoke void @"_ZN4core3ptr147drop_in_place$LT$core..iter..adapters..take..Take$LT$core..iter..sources..repeat..Repeat$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h568a9c471cb94093E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %4) #15 - to label %.body unwind label %55, !noalias !68 + to label %.body unwind label %54, !noalias !68 -.critedge.i.i.i.i: ; preds = %43, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17hf2abc9be2f12c1f1E.exit.i.i" - %.lcssa.sink.i.i.i.i = phi i64 [ %18, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17hf2abc9be2f12c1f1E.exit.i.i" ], [ %45, %43 ] +.critedge.i.i.i.i: ; preds = %42, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17hf2abc9be2f12c1f1E.exit.i.i" + %.lcssa.sink.i.i.i.i = phi i64 [ %18, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17hf2abc9be2f12c1f1E.exit.i.i" ], [ %44, %42 ] store i64 %.lcssa.sink.i.i.i.i, ptr %13, align 8, !alias.scope !28, !noalias !68 - %46 = load ptr, ptr %4, align 8, !alias.scope !69, !noalias !37, !noundef !16 - %47 = icmp eq ptr %46, null - br i1 %47, label %62, label %48 + %45 = load ptr, ptr %4, align 8, !alias.scope !69, !noalias !37, !noundef !16 + %46 = icmp eq ptr %45, null + br i1 %46, label %61, label %47 -48: ; preds = %.critedge.i.i.i.i +47: ; preds = %.critedge.i.i.i.i invoke void @"_ZN72_$LT$semver..identifier..Identifier$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2be2ae9091aa993eE"(ptr noalias noundef nonnull align 8 dereferenceable(48) %4) - to label %"_ZN4core3ptr36drop_in_place$LT$semver..Version$GT$17hb1520cc40c9629f1E.exit.i.i.i.i.i.i.i" unwind label %49, !noalias !68 + to label %"_ZN4core3ptr36drop_in_place$LT$semver..Version$GT$17hb1520cc40c9629f1E.exit.i.i.i.i.i.i.i" unwind label %48, !noalias !68 -49: ; preds = %48 - %50 = landingpad { ptr, i32 } +48: ; preds = %47 + %49 = landingpad { ptr, i32 } cleanup - %51 = getelementptr inbounds nuw i8, ptr %4, i64 8 - invoke void @"_ZN72_$LT$semver..identifier..Identifier$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2be2ae9091aa993eE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %51) - to label %.body unwind label %52, !noalias !68 + %50 = getelementptr inbounds nuw i8, ptr %4, i64 8 + invoke void @"_ZN72_$LT$semver..identifier..Identifier$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2be2ae9091aa993eE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %50) + to label %.body unwind label %51, !noalias !68 -52: ; preds = %49 - %53 = landingpad { ptr, i32 } +51: ; preds = %48 + %52 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #16, !noalias !68 unreachable -"_ZN4core3ptr36drop_in_place$LT$semver..Version$GT$17hb1520cc40c9629f1E.exit.i.i.i.i.i.i.i": ; preds = %48 - %54 = getelementptr inbounds nuw i8, ptr %4, i64 8 - invoke void @"_ZN72_$LT$semver..identifier..Identifier$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2be2ae9091aa993eE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %54) - to label %62 unwind label %60 +"_ZN4core3ptr36drop_in_place$LT$semver..Version$GT$17hb1520cc40c9629f1E.exit.i.i.i.i.i.i.i": ; preds = %47 + %53 = getelementptr inbounds nuw i8, ptr %4, i64 8 + invoke void @"_ZN72_$LT$semver..identifier..Identifier$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2be2ae9091aa993eE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %53) + to label %61 unwind label %59 -55: ; preds = %.body.i.i.i.i - %56 = landingpad { ptr, i32 } +54: ; preds = %.body.i.i.i.i + %55 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #16, !noalias !68 unreachable -57: ; preds = %16 +56: ; preds = %16 %lpad.thr_comm.i.i = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr147drop_in_place$LT$core..iter..adapters..take..Take$LT$core..iter..sources..repeat..Repeat$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h568a9c471cb94093E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %5) #15 - to label %.body unwind label %58 + to label %.body unwind label %57 -58: ; preds = %57 - %59 = landingpad { ptr, i32 } +57: ; preds = %56 + %58 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #16 unreachable -60: ; preds = %"_ZN4core3ptr36drop_in_place$LT$semver..Version$GT$17hb1520cc40c9629f1E.exit.i.i.i.i.i.i.i" - %61 = landingpad { ptr, i32 } +59: ; preds = %"_ZN4core3ptr36drop_in_place$LT$semver..Version$GT$17hb1520cc40c9629f1E.exit.i.i.i.i.i.i.i" + %60 = landingpad { ptr, i32 } cleanup br label %.body -.body: ; preds = %.body.i.i.i.i, %49, %57, %60 - %eh.lpad-body = phi { ptr, i32 } [ %61, %60 ], [ %lpad.thr_comm.i.i, %57 ], [ %50, %49 ], [ %eh.lpad-body.i.i.i.i.i, %.body.i.i.i.i ] +.body: ; preds = %.body.i.i.i.i, %48, %56, %59 + %eh.lpad-body = phi { ptr, i32 } [ %60, %59 ], [ %lpad.thr_comm.i.i, %56 ], [ %49, %48 ], [ %eh.lpad-body.i.i.i.i.i, %.body.i.i.i.i ] invoke void @"_ZN4core3ptr87drop_in_place$LT$alloc..vec..Vec$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$17hf65937c39159cb2eE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %6) #15 - to label %65 unwind label %63 + to label %64 unwind label %62 -62: ; preds = %.critedge.i.i.i.i, %"_ZN4core3ptr36drop_in_place$LT$semver..Version$GT$17hb1520cc40c9629f1E.exit.i.i.i.i.i.i.i" +61: ; preds = %.critedge.i.i.i.i, %"_ZN4core3ptr36drop_in_place$LT$semver..Version$GT$17hb1520cc40c9629f1E.exit.i.i.i.i.i.i.i" call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !29 call void @llvm.lifetime.end.p0(ptr nonnull %5) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %6, i64 24, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %6) ret void -63: ; preds = %66, %.body - %64 = landingpad { ptr, i32 } +62: ; preds = %65, %.body + %63 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #16 unreachable -65: ; preds = %.body, %66 - %.pn4 = phi { ptr, i32 } [ %67, %66 ], [ %eh.lpad-body, %.body ] +64: ; preds = %.body, %65 + %.pn4 = phi { ptr, i32 } [ %66, %65 ], [ %eh.lpad-body, %.body ] resume { ptr, i32 } %.pn4 -66: ; preds = %2 - %67 = landingpad { ptr, i32 } +65: ; preds = %2 + %66 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr147drop_in_place$LT$core..iter..adapters..take..Take$LT$core..iter..sources..repeat..Repeat$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h568a9c471cb94093E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %1) #15 - to label %65 unwind label %63 + to label %64 unwind label %62 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/syn/optimized/3e28wvtnspuupgei.ll b/bench/syn/optimized/3e28wvtnspuupgei.ll index 13cdd604aaa..e26eac8afaf 100644 --- a/bench/syn/optimized/3e28wvtnspuupgei.ll +++ b/bench/syn/optimized/3e28wvtnspuupgei.ll @@ -3382,13 +3382,14 @@ _ZN3syn5parse11ParseBuffer4span17h1ca0c8b0ffc956f0E.exit.i.i: ; preds = %182, %1 call void @llvm.lifetime.end.p0(ptr nonnull %9), !noalias !665 %.sroa.04.0.copyload.i.i = load i32, ptr %10, align 4, !noalias !665 call void @llvm.lifetime.end.p0(ptr nonnull %10), !noalias !665 + %.sroa.499.0.insert.ext = zext i32 %.sroa.04.0.copyload.i.i to i64 + %.sroa.499.0.insert.shift = shl nuw i64 %.sroa.499.0.insert.ext, 32 + %.sroa.098.0.insert.insert = or disjoint i64 %.sroa.499.0.insert.shift, 1 store i64 2, ptr %0, align 8 %.sroa.596.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 56 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.sroa.596.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(40) %20, i64 40, i1 false) %.sroa.697.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 96 - store i32 1, ptr %.sroa.697.0..sroa_idx, align 8 - %.sroa.697.sroa.4.0..sroa.697.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 100 - store i32 %.sroa.04.0.copyload.i.i, ptr %.sroa.697.sroa.4.0..sroa.697.0..sroa_idx.sroa_idx, align 4 + store i64 %.sroa.098.0.insert.insert, ptr %.sroa.697.0..sroa_idx, align 8 br label %.thread338 193: ; preds = %.noexc196 @@ -3429,7 +3430,7 @@ _ZN3syn5parse11ParseBuffer4span17h1ca0c8b0ffc956f0E.exit.i.i: ; preds = %182, %1 %.sroa.777.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 56 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.sroa.777.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(40) %20, i64 40, i1 false) %.sroa.8.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 96 - store i32 0, ptr %.sroa.8.0..sroa_idx, align 8 + store i64 0, ptr %.sroa.8.0..sroa_idx, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.676) br label %.thread338 @@ -3444,15 +3445,16 @@ _ZN3syn5parse11ParseBuffer4span17h1ca0c8b0ffc956f0E.exit.i.i: ; preds = %182, %1 call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !676 %.sroa.04.0.copyload.i.i239 = load i32, ptr %6, align 4, !noalias !676 call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !676 + %.sroa.458.0.insert.ext = zext i32 %.sroa.04.0.copyload.i.i239 to i64 + %.sroa.458.0.insert.shift = shl nuw i64 %.sroa.458.0.insert.ext, 32 + %.sroa.057.0.insert.insert = or disjoint i64 %.sroa.458.0.insert.shift, 1 store i64 1, ptr %0, align 8 %.sroa.454.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %.sroa.454.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(48) %18, i64 48, i1 false) %.sroa.555.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 56 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.sroa.555.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(40) %20, i64 40, i1 false) %.sroa.656.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 96 - store i32 1, ptr %.sroa.656.0..sroa_idx, align 8 - %.sroa.656.sroa.4.0..sroa.656.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 100 - store i32 %.sroa.04.0.copyload.i.i239, ptr %.sroa.656.sroa.4.0..sroa.656.0..sroa_idx.sroa_idx, align 4 + store i64 %.sroa.057.0.insert.insert, ptr %.sroa.656.0..sroa_idx, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %18) br label %.thread338 @@ -10383,9 +10385,9 @@ define void @"_ZN3syn3gen5clone69_$LT$impl$u20$core..clone..Clone$u20$for$u20$sy 15: ; preds = %.noexc invoke void @_ZN5alloc5alloc18handle_alloc_error17h81706c48453a6249E(i64 noundef 8, i64 noundef 176) #26 - to label %.noexc2 unwind label %12 + to label %.noexc3 unwind label %12 -.noexc2: ; preds = %15 +.noexc3: ; preds = %15 unreachable "_ZN5alloc5boxed16Box$LT$T$C$A$GT$13new_uninit_in17hc76c3682fc5a0307E.exit.i": ; preds = %.noexc diff --git a/bench/syn/optimized/3r5osr990qsnm7hf.ll b/bench/syn/optimized/3r5osr990qsnm7hf.ll index 3be7c2fd8bb..ca60c329b77 100644 --- a/bench/syn/optimized/3r5osr990qsnm7hf.ll +++ b/bench/syn/optimized/3r5osr990qsnm7hf.ll @@ -1741,7 +1741,6 @@ _ZN3syn5parse11ParseBuffer4span17h1ca0c8b0ffc956f0E.exit.i.i: ; preds = %52, %50 %.sroa.748.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 296 %.sroa.8.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 304 %.sroa.949.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 328 - %.sroa.1050.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 336 %.sroa.4123.0..sroa_idx = getelementptr inbounds nuw i8, ptr %25, i64 8 %.sroa.5124.0..sroa_idx = getelementptr inbounds nuw i8, ptr %25, i64 32 %.sroa.438.0..sroa_idx = getelementptr inbounds nuw i8, ptr %26, i64 8 @@ -2148,8 +2147,7 @@ _ZN3syn5parse11ParseBuffer4span17h1ca0c8b0ffc956f0E.exit.i.i: ; preds = %52, %50 store ptr inttoptr (i64 8 to ptr), ptr %.sroa.047.sroa.0.sroa.7.sroa.5.0..sroa.047.sroa.0.sroa.7.0..sroa_idx.sroa_idx, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.047.sroa.0.sroa.7.sroa.6.0..sroa.047.sroa.0.sroa.7.0..sroa_idx.sroa_idx, i8 0, i64 16, i1 false) store i64 %204, ptr %.sroa.748.0..sroa_idx, align 8 - store i32 0, ptr %.sroa.949.0..sroa_idx, align 8 - store i32 0, ptr %.sroa.1050.0..sroa_idx, align 8 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.949.0..sroa_idx, i8 0, i64 16, i1 false) store i64 18, ptr %24, align 8 invoke void @"_ZN3syn10punctuated23Punctuated$LT$T$C$P$GT$10push_value17h0b4f1118c7151067E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %40, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(480) %24) to label %209 unwind label %.thread363.loopexit @@ -2996,6 +2994,9 @@ _ZN3syn5parse11ParseBuffer4span17h1ca0c8b0ffc956f0E.exit.i.i244: ; preds = %406, call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !529 %.sroa.04.0.copyload.i.i251 = load i32, ptr %7, align 4, !noalias !529 call void @llvm.lifetime.end.p0(ptr nonnull %7), !noalias !529 + %.sroa.490.0.insert.ext = zext i32 %.sroa.04.0.copyload.i.i251 to i64 + %.sroa.490.0.insert.shift = shl nuw i64 %.sroa.490.0.insert.ext, 32 + %.sroa.089.0.insert.insert = or disjoint i64 %.sroa.490.0.insert.shift, 1 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %40, i64 32, i1 false) %.sroa.085.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 store i64 -9223372036854775808, ptr %.sroa.085.sroa.4.0..sroa_idx, align 8 @@ -3004,9 +3005,7 @@ _ZN3syn5parse11ParseBuffer4span17h1ca0c8b0ffc956f0E.exit.i.i244: ; preds = %406, %.sroa.687.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 76 store i32 %.sroa.04.0.copyload.i.i, ptr %.sroa.687.0..sroa_idx, align 4 %.sroa.788.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 80 - store i32 1, ptr %.sroa.788.0..sroa_idx, align 8 - %.sroa.788.sroa.4.0..sroa.788.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 84 - store i32 %.sroa.04.0.copyload.i.i251, ptr %.sroa.788.sroa.4.0..sroa.788.0..sroa_idx.sroa_idx, align 4 + store i64 %.sroa.089.0.insert.insert, ptr %.sroa.788.0..sroa_idx, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %40) br label %60 @@ -4900,7 +4899,7 @@ _ZN3syn5parse11ParseBuffer4span17h1ca0c8b0ffc956f0E.exit.i.i131: ; preds = %63, call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.038.sroa.0.sroa.6.0..sroa_idx, i8 0, i64 16, i1 false) store i64 %77, ptr %.sroa.539.0..sroa_idx, align 8 store i64 %.sroa.595.0.copyload, ptr %.sroa.741.0..sroa_idx, align 8 - store i32 0, ptr %.sroa.842.0..sroa_idx, align 8 + store i64 0, ptr %.sroa.842.0..sroa_idx, align 8 store i64 17, ptr %18, align 8 invoke void @"_ZN3syn10punctuated23Punctuated$LT$T$C$P$GT$10push_value17h0b4f1118c7151067E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %22, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(480) %18) to label %80 unwind label %.thread182 @@ -13684,14 +13683,14 @@ common.resume: ; preds = %55, %.body, %29 call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !2360 %33 = getelementptr inbounds nuw i8, ptr %1, i64 88 %.sroa.0.0.copyload.i6.i = load i32, ptr %33, align 8, !alias.scope !2370, !noalias !2352 - %.sroa.08.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 24 - store ptr %.0.i.i, ptr %.sroa.08.sroa.4.0..sroa_idx, align 8 - %.sroa.49.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 32 - store i32 %18, ptr %.sroa.49.0..sroa_idx, align 8 - %.sroa.510.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 36 - store i32 %.sroa.0.0.copyload.i.i, ptr %.sroa.510.0..sroa_idx, align 4 - %.sroa.611.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 40 - store i32 %.sroa.0.0.copyload.i6.i, ptr %.sroa.611.0..sroa_idx, align 8 + %.sroa.09.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 24 + store ptr %.0.i.i, ptr %.sroa.09.sroa.4.0..sroa_idx, align 8 + %.sroa.410.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 32 + store i32 %18, ptr %.sroa.410.0..sroa_idx, align 8 + %.sroa.511.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 36 + store i32 %.sroa.0.0.copyload.i.i, ptr %.sroa.511.0..sroa_idx, align 4 + %.sroa.612.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 40 + store i32 %.sroa.0.0.copyload.i6.i, ptr %.sroa.612.0..sroa_idx, align 8 br label %34 34: ; preds = %"_ZN3syn3gen5clone78_$LT$impl$u20$core..clone..Clone$u20$for$u20$syn..generics..BoundLifetimes$GT$5clone17he8934f752e7ecdd4E.exit", %15 @@ -13700,7 +13699,7 @@ common.resume: ; preds = %55, %.body, %29 %35 = getelementptr inbounds nuw i8, ptr %1, i64 32 %36 = load i32, ptr %35, align 8, !range !163, !alias.scope !2373, !noalias !2376, !noundef !5 %37 = getelementptr inbounds nuw i8, ptr %1, i64 36 - %.sroa.0.0.copyload.i.i3 = load i64, ptr %37, align 4, !alias.scope !2373, !noalias !2376 + %.sroa.0.0.copyload.i.i4 = load i64, ptr %37, align 4, !alias.scope !2373, !noalias !2376 tail call void @llvm.experimental.noalias.scope.decl(metadata !2378) call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !2381 %38 = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -13748,9 +13747,9 @@ common.resume: ; preds = %55, %.body, %29 to label %common.resume unwind label %60 56: ; preds = %45, %.noexc - %.0.i.i4 = phi ptr [ null, %.noexc ], [ %46, %45 ] + %.0.i.i5 = phi ptr [ null, %.noexc ], [ %46, %45 ] %trunc.i = trunc nuw i32 %36 to i1 - %.sroa.5.0.i = select i1 %trunc.i, i64 %.sroa.0.0.copyload.i.i3, i64 undef + %.sroa.5.0.i = select i1 %trunc.i, i64 %.sroa.0.0.copyload.i.i4, i64 undef call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0, ptr noundef nonnull align 8 dereferenceable(24) %3, i64 24, i1 false), !noalias !2373 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !2381 %57 = getelementptr inbounds nuw i8, ptr %0, i64 96 @@ -13763,9 +13762,9 @@ common.resume: ; preds = %55, %.body, %29 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %59, ptr noundef nonnull align 8 dereferenceable(48) %5, i64 48, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0, i64 24, i1 false) %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 - store ptr %.0.i.i4, ptr %.sroa.4.0..sroa_idx, align 8 - %.sroa.56.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 - store i32 %36, ptr %.sroa.56.0..sroa_idx, align 8 + store ptr %.0.i.i5, ptr %.sroa.4.0..sroa_idx, align 8 + %.sroa.57.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 + store i32 %36, ptr %.sroa.57.0..sroa_idx, align 8 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 36 store i64 %.sroa.5.0.i, ptr %.sroa.6.0..sroa_idx, align 4 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0) diff --git a/bench/tev/optimized/Channel.ll b/bench/tev/optimized/Channel.ll index befbc7f7c74..95f758bc141 100644 --- a/bench/tev/optimized/Channel.ll +++ b/bench/tev/optimized/Channel.ll @@ -7628,16 +7628,16 @@ _ZN4tlog6Logger12hideSeverityENS_9ESeverityE.exit: ; preds = %19, %_ZNSt3__110un ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_ZNSt3__13setINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE6insertB8ne190000INS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEEEvT_SH_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr %1, ptr %2) local_unnamed_addr #3 comdat align 2 personality ptr @__gxx_personality_v0 { %4 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %.not25 = icmp eq ptr %1, %2 - br i1 %.not25, label %._crit_edge, label %.lr.ph + %.not26 = icmp eq ptr %1, %2 + br i1 %.not26, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %3 %5 = getelementptr inbounds nuw i8, ptr %0, i64 16 br label %6 6: ; preds = %.lr.ph, %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEppB8ne190000Ev.exit - %.sroa.011.026 = phi ptr [ %1, %.lr.ph ], [ %.06.i.i, %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEppB8ne190000Ev.exit ] - %7 = getelementptr inbounds nuw i8, ptr %.sroa.011.026, i64 32 + %.sroa.011.027 = phi ptr [ %1, %.lr.ph ], [ %.06.i.i, %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEppB8ne190000Ev.exit ] + %7 = getelementptr inbounds nuw i8, ptr %.sroa.011.027, i64 32 %8 = load ptr, ptr %0, align 8 %9 = icmp eq ptr %4, %8 %.pre.i = load ptr, ptr %4, align 8 @@ -7696,7 +7696,7 @@ _ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_n %33 = getelementptr inbounds nuw i8, ptr %.024.i.i, i64 8 %34 = load ptr, ptr %33, align 8 %.not30.i.i = icmp eq ptr %34, null - br i1 %.not30.i.i, label %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit54, label %.preheader.i.i8.backedge + br i1 %.not30.i.i, label %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit55, label %.preheader.i.i8.backedge .preheader.i.i8.backedge: ; preds = %32, %28 %.024.i.i.be = phi ptr [ %29, %28 ], [ %34, %32 ] @@ -7707,24 +7707,24 @@ _ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4 %35 = icmp eq ptr %.pre.i, null %36 = getelementptr inbounds nuw i8, ptr %.sroa.041.0.i, i64 8 %spec.select = select i1 %35, ptr %4, ptr %.sroa.041.0.i - %spec.select19 = select i1 %35, ptr %4, ptr %36 - %.pr.pre = load ptr, ptr %spec.select19, align 8 + %spec.select20 = select i1 %35, ptr %4, ptr %36 + %.pr.pre = load ptr, ptr %spec.select20, align 8 %37 = icmp eq ptr %.pr.pre, null br i1 %37, label %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread, label %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE15__insert_uniqueB8ne190000ENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKS4_.exit -_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit54: ; preds = %32 +_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit55: ; preds = %32 %38 = getelementptr inbounds nuw i8, ptr %.024.i.i, i64 8 br label %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread -_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread: ; preds = %28, %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEmmB8ne190000Ev.exit.i, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit54, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit - %.0.i18 = phi ptr [ %spec.select19, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit ], [ %38, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit54 ], [ %4, %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEmmB8ne190000Ev.exit.i ], [ %.024.i.i, %28 ] - %.017 = phi ptr [ %spec.select, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit ], [ %.024.i.i, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit54 ], [ %4, %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEmmB8ne190000Ev.exit.i ], [ %.024.i.i, %28 ] +_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread: ; preds = %28, %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEmmB8ne190000Ev.exit.i, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit55, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit + %.0.i19 = phi ptr [ %spec.select20, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit ], [ %38, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit55 ], [ %4, %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEmmB8ne190000Ev.exit.i ], [ %.024.i.i, %28 ] + %.018 = phi ptr [ %spec.select, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit ], [ %.024.i.i, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit55 ], [ %4, %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEmmB8ne190000Ev.exit.i ], [ %.024.i.i, %28 ] %39 = tail call noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #27, !noalias !324 %40 = getelementptr inbounds nuw i8, ptr %39, i64 32 %41 = load ptr, ptr %7, align 8, !noalias !324 store ptr %41, ptr %40, align 8, !noalias !324 %42 = getelementptr inbounds nuw i8, ptr %39, i64 40 - %43 = getelementptr inbounds nuw i8, ptr %.sroa.011.026, i64 40 + %43 = getelementptr inbounds nuw i8, ptr %.sroa.011.027, i64 40 %44 = load ptr, ptr %43, align 8, !noalias !324 store ptr %44, ptr %42, align 8, !noalias !324 %.not.i.i.i.i.i.i.i = icmp eq ptr %44, null @@ -7738,8 +7738,8 @@ _ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4 _ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE16__construct_nodeIJRKS4_EEENS_10unique_ptrINS_11__tree_nodeIS4_PvEENS_22__tree_node_destructorINS7_ISG_EEEEEEDpOT_.exit.i.i: ; preds = %45, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread %48 = getelementptr inbounds nuw i8, ptr %39, i64 16 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %39, i8 0, i64 16, i1 false) - store ptr %.017, ptr %48, align 8 - store ptr %39, ptr %.0.i18, align 8 + store ptr %.018, ptr %48, align 8 + store ptr %39, ptr %.0.i19, align 8 %49 = load ptr, ptr %0, align 8 %50 = load ptr, ptr %49, align 8 %.not.i.i.i = icmp eq ptr %50, null @@ -7747,7 +7747,7 @@ _ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4 51: ; preds = %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE16__construct_nodeIJRKS4_EEENS_10unique_ptrINS_11__tree_nodeIS4_PvEENS_22__tree_node_destructorINS7_ISG_EEEEEEDpOT_.exit.i.i store ptr %50, ptr %0, align 8 - %.pre.i.i.i = load ptr, ptr %.0.i18, align 8 + %.pre.i.i.i = load ptr, ptr %.0.i19, align 8 br label %_ZNSt3__110unique_ptrINS_11__tree_nodeINS_10shared_ptrIN4tlog7IOutputEEEPvEENS_22__tree_node_destructorINS_9allocatorIS7_EEEEED2B8ne190000Ev.exit.i.i _ZNSt3__110unique_ptrINS_11__tree_nodeINS_10shared_ptrIN4tlog7IOutputEEEPvEENS_22__tree_node_destructorINS_9allocatorIS7_EEEEED2B8ne190000Ev.exit.i.i: ; preds = %51, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE16__construct_nodeIJRKS4_EEENS_10unique_ptrINS_11__tree_nodeIS4_PvEENS_22__tree_node_destructorINS7_ISG_EEEEEEDpOT_.exit.i.i @@ -7760,7 +7760,7 @@ _ZNSt3__110unique_ptrINS_11__tree_nodeINS_10shared_ptrIN4tlog7IOutputEEEPvEENS_2 br label %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE15__insert_uniqueB8ne190000ENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKS4_.exit _ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE15__insert_uniqueB8ne190000ENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKS4_.exit: ; preds = %30, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit, %_ZNSt3__110unique_ptrINS_11__tree_nodeINS_10shared_ptrIN4tlog7IOutputEEEPvEENS_22__tree_node_destructorINS_9allocatorIS7_EEEEED2B8ne190000Ev.exit.i.i - %56 = getelementptr inbounds nuw i8, ptr %.sroa.011.026, i64 8 + %56 = getelementptr inbounds nuw i8, ptr %.sroa.011.027, i64 8 %57 = load ptr, ptr %56, align 8 %.not.i.i = icmp eq ptr %57, null br i1 %.not.i.i, label %.preheader.i.i, label %.preheader8.i.i @@ -7772,7 +7772,7 @@ _ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4 br i1 %.not.i.i.i3, label %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEppB8ne190000Ev.exit, label %.preheader8.i.i, !llvm.loop !117 .preheader.i.i: ; preds = %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE15__insert_uniqueB8ne190000ENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKS4_.exit, %.preheader.i.i - %.0.i.i4 = phi ptr [ %60, %.preheader.i.i ], [ %.sroa.011.026, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE15__insert_uniqueB8ne190000ENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKS4_.exit ] + %.0.i.i4 = phi ptr [ %60, %.preheader.i.i ], [ %.sroa.011.027, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE15__insert_uniqueB8ne190000ENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKS4_.exit ] %59 = getelementptr inbounds nuw i8, ptr %.0.i.i4, i64 16 %60 = load ptr, ptr %59, align 8 %61 = load ptr, ptr %60, align 8 diff --git a/bench/tokenizers-rs/optimized/2mot01sr7ebui81b.ll b/bench/tokenizers-rs/optimized/2mot01sr7ebui81b.ll index 7a443992cd7..88080794fb5 100644 --- a/bench/tokenizers-rs/optimized/2mot01sr7ebui81b.ll +++ b/bench/tokenizers-rs/optimized/2mot01sr7ebui81b.ll @@ -2266,7 +2266,7 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 ; Function Attrs: nonlazybind uwtable define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$$LP$K$C$V$RP$$GT$$GT$6extend17h4305a0ed107e918aE"(ptr noalias noundef align 8 dereferenceable(48) %0, ptr noalias noundef readonly align 8 captures(none) dereferenceable(40) %1) unnamed_addr #3 personality ptr @rust_eh_personality { %3 = alloca { { ptr, [1 x i64] }, { ptr, [1 x i64] } }, align 8 - %.sroa.0.0.copyload7 = load ptr, ptr %1, align 8, !alias.scope !625 + %.sroa.0.0.copyload7 = load i64, ptr %1, align 8, !alias.scope !625 %.sroa.4.0..sroa_idx8 = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.4.0.copyload9 = load ptr, ptr %.sroa.4.0..sroa_idx8, align 8, !alias.scope !625 %.sroa.6.0..sroa_idx11 = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -2310,8 +2310,9 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 br label %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h82175b81c8bed1ebE.exit" "_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h82175b81c8bed1ebE.exit": ; preds = %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h82175b81c8bed1ebE.exit.sink.split", %10, %11, %14, %15 - %18 = icmp ne ptr %.sroa.0.0.copyload7, null - tail call void @llvm.assume(i1 %18) + %18 = inttoptr i64 %.sroa.0.0.copyload7 to ptr + %19 = icmp ne i64 %.sroa.0.0.copyload7, 0 + tail call void @llvm.assume(i1 %19) call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !629 store ptr %.sroa.4.0.copyload9, ptr %3, align 8, !noalias !639 %.sroa.625.8..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 8 @@ -2320,7 +2321,7 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 store ptr %.sroa.8.0.copyload14, ptr %.sroa.7.8..sroa_idx, align 8, !noalias !639 %.sroa.826.8..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 24 store ptr %.sroa.10.0.copyload17, ptr %.sroa.826.8..sroa_idx, align 8, !noalias !639 - call void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4ddf78ceeca05974E"(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %.sroa.0.0.copyload7, ptr noalias noundef nonnull align 8 dereferenceable(48) %0), !noalias !640 + call void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4ddf78ceeca05974E"(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %18, ptr noalias noundef nonnull align 8 dereferenceable(48) %0), !noalias !640 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !629 ret void } @@ -2941,7 +2942,7 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 %.sroa.711.0..sroa_idx12 = getelementptr inbounds nuw i8, ptr %1, i64 56 %.sroa.711.0.copyload13 = load i64, ptr %.sroa.711.0..sroa_idx12, align 8, !alias.scope !948 %.sroa.9.0..sroa_idx15 = getelementptr inbounds nuw i8, ptr %1, i64 64 - %.sroa.9.0.copyload16 = load ptr, ptr %.sroa.9.0..sroa_idx15, align 8, !alias.scope !948 + %.sroa.9.0.copyload16 = load i64, ptr %.sroa.9.0..sroa_idx15, align 8, !alias.scope !948 %4 = getelementptr inbounds nuw i8, ptr %0, i64 24 %5 = load i64, ptr %4, align 8, !noundef !4 %6 = icmp eq i64 %5, 0 @@ -2956,13 +2957,14 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 12: ; preds = %2 %13 = getelementptr inbounds nuw i8, ptr %0, i64 32 %14 = invoke { i64, i64 } @"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$14reserve_rehash17h90dff973660db6b3E.llvm.11083375685992158394"(ptr noalias noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.0, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %13, i1 noundef zeroext true) - to label %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17hab2bc2a8bf91c6c0E.exit" unwind label %16 + to label %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17hab2bc2a8bf91c6c0E.exit" unwind label %17 "_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17hab2bc2a8bf91c6c0E.exit": ; preds = %12, %2 %.sroa.7.0..sroa_idx10 = getelementptr inbounds nuw i8, ptr %1, i64 24 %.sroa.625.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 24 call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !957 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.625.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(32) %.sroa.7.0..sroa_idx10, i64 32, i1 false) + %15 = inttoptr i64 %.sroa.9.0.copyload16 to ptr store i64 %.sroa.0.0.copyload5, ptr %3, align 8, !noalias !968 %.sroa.423.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 %.sroa.5.0.copyload7, ptr %.sroa.423.0..sroa_idx, align 8, !noalias !968 @@ -2970,26 +2972,26 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 store ptr %.sroa.6.0.copyload9, ptr %.sroa.524.0..sroa_idx, align 8, !noalias !968 %.sroa.726.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 56 store i64 %.sroa.711.0.copyload13, ptr %.sroa.726.0..sroa_idx, align 8, !noalias !968 - %15 = icmp ne ptr %.sroa.9.0.copyload16, null - tail call void @llvm.assume(i1 %15) - call void @_ZN4core4iter6traits8iterator8Iterator4fold17h4e0a4a58cad948cdE.llvm.12993343960315125427(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %3, ptr noalias noundef nonnull align 8 dereferenceable(48) %0, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %.sroa.9.0.copyload16) + %16 = icmp ne i64 %.sroa.9.0.copyload16, 0 + tail call void @llvm.assume(i1 %16) + call void @_ZN4core4iter6traits8iterator8Iterator4fold17h4e0a4a58cad948cdE.llvm.12993343960315125427(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %3, ptr noalias noundef nonnull align 8 dereferenceable(48) %0, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %15) call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !957 ret void -"_ZN4core3ptr233drop_in_place$LT$core..iter..adapters..map..Map$LT$std..collections..hash..map..IntoIter$LT$usize$C$core..ops..range..Range$LT$usize$GT$$GT$$C$tokenizers..tokenizer..encoding..Encoding..merge_with..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h1aaba2803c648044E.exit": ; preds = %20, %16 - resume { ptr, i32 } %17 +"_ZN4core3ptr233drop_in_place$LT$core..iter..adapters..map..Map$LT$std..collections..hash..map..IntoIter$LT$usize$C$core..ops..range..Range$LT$usize$GT$$GT$$C$tokenizers..tokenizer..encoding..Encoding..merge_with..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h1aaba2803c648044E.exit": ; preds = %21, %17 + resume { ptr, i32 } %18 -16: ; preds = %12 - %17 = landingpad { ptr, i32 } +17: ; preds = %12 + %18 = landingpad { ptr, i32 } cleanup - %18 = icmp eq i64 %.sroa.0.0.copyload5, 0 - %19 = icmp eq i64 %.sroa.5.0.copyload7, 0 - %or.cond = select i1 %18, i1 true, i1 %19 - br i1 %or.cond, label %"_ZN4core3ptr233drop_in_place$LT$core..iter..adapters..map..Map$LT$std..collections..hash..map..IntoIter$LT$usize$C$core..ops..range..Range$LT$usize$GT$$GT$$C$tokenizers..tokenizer..encoding..Encoding..merge_with..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h1aaba2803c648044E.exit", label %20 + %19 = icmp eq i64 %.sroa.0.0.copyload5, 0 + %20 = icmp eq i64 %.sroa.5.0.copyload7, 0 + %or.cond = select i1 %19, i1 true, i1 %20 + br i1 %or.cond, label %"_ZN4core3ptr233drop_in_place$LT$core..iter..adapters..map..Map$LT$std..collections..hash..map..IntoIter$LT$usize$C$core..ops..range..Range$LT$usize$GT$$GT$$C$tokenizers..tokenizer..encoding..Encoding..merge_with..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h1aaba2803c648044E.exit", label %21 -20: ; preds = %16 - %21 = icmp ne ptr %.sroa.6.0.copyload9, null - tail call void @llvm.assume(i1 %21) +21: ; preds = %17 + %22 = icmp ne ptr %.sroa.6.0.copyload9, null + tail call void @llvm.assume(i1 %22) tail call void @__rust_dealloc(ptr noundef nonnull %.sroa.6.0.copyload9, i64 noundef %.sroa.5.0.copyload7, i64 noundef %.sroa.0.0.copyload5) #48, !noalias !969 br label %"_ZN4core3ptr233drop_in_place$LT$core..iter..adapters..map..Map$LT$std..collections..hash..map..IntoIter$LT$usize$C$core..ops..range..Range$LT$usize$GT$$GT$$C$tokenizers..tokenizer..encoding..Encoding..merge_with..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h1aaba2803c648044E.exit" } @@ -22619,8 +22621,10 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h2e060df0334ea3a6E.llvm.15403 call void @_ZN9hashbrown3raw13RawTableInner22fallible_with_capacity17hb8f4b7ebb897beaeE.llvm.11083375685992158394(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 1 %3, i64 noundef 48, i64 noundef 16, i64 noundef %1, i1 noundef zeroext true) %.sroa.3.sroa.0.7..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.3.sroa.0, i64 7 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %.sroa.3.sroa.0.7..sroa_idx, ptr noundef nonnull align 8 dereferenceable(32) %4, i64 32, i1 false) + store i64 0, ptr %0, align 8 + %.sroa.2.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i8 0, ptr %.sroa.2.0..sroa_idx, align 8 %.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 9 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %0, i8 0, i64 9, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(39) %.sroa.3.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(39) %.sroa.3.sroa.0, i64 39, i1 false) %.sroa.3.sroa.2.0..sroa.3.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 48 store i64 %9, ptr %.sroa.3.sroa.2.0..sroa.3.0..sroa_idx.sroa_idx, align 8 @@ -22659,8 +22663,10 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h2e060df0334ea3a6E.llvm.15403 call void @_ZN9hashbrown3raw13RawTableInner22fallible_with_capacity17hb8f4b7ebb897beaeE.llvm.11083375685992158394(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 1 %3, i64 noundef 48, i64 noundef 16, i64 noundef %1, i1 noundef zeroext true) %.sroa.3.sroa.0.7..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.3.sroa.0, i64 7 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %.sroa.3.sroa.0.7..sroa_idx, ptr noundef nonnull align 8 dereferenceable(32) %4, i64 32, i1 false) + store i64 0, ptr %0, align 8 + %.sroa.2.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i8 0, ptr %.sroa.2.0..sroa_idx, align 8 %.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 9 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %0, i8 0, i64 9, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(39) %.sroa.3.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(39) %.sroa.3.sroa.0, i64 39, i1 false) %.sroa.3.sroa.2.0..sroa.3.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 48 store i64 %9, ptr %.sroa.3.sroa.2.0..sroa.3.0..sroa_idx.sroa_idx, align 8 @@ -29917,10 +29923,7 @@ define void @_ZN10tokenizers6models9wordpiece7trainer23WordPieceTrainerBuilder13 ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: readwrite) uwtable define void @_ZN10tokenizers6models9wordpiece7trainer23WordPieceTrainerBuilder10vocab_size17h345bb056b8f5c12aE(ptr noalias noundef writeonly sret([176 x i8]) align 8 captures(none) dereferenceable(176) initializes((0, 176)) %0, ptr noalias noundef align 8 captures(none) dereferenceable(176) initializes((160, 168)) %1, i64 noundef %2) unnamed_addr #30 { %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 160 - %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 168 - %4 = load i64, ptr %.sroa.5.0..sroa_idx, align 8 store i64 %2, ptr %.sroa.4.0..sroa_idx, align 8 - store i64 %4, ptr %.sroa.5.0..sroa_idx, align 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull align 8 dereferenceable(176) %1, i64 176, i1 false) ret void } @@ -30955,7 +30958,7 @@ define hidden noundef i64 @_ZN10tokenizers9tokenizer16added_vocabulary15AddedVoc %70 = getelementptr inbounds nuw i8, ptr %0, i64 32 br label %108 -.lr.ph266.lr.ph: ; preds = %610 +.lr.ph274.lr.ph: ; preds = %610 %71 = getelementptr inbounds nuw i8, ptr %0, i64 192 %72 = getelementptr inbounds nuw i8, ptr %0, i64 200 %73 = getelementptr inbounds nuw i8, ptr %0, i64 216 @@ -31020,18 +31023,18 @@ define hidden noundef i64 @_ZN10tokenizers9tokenizer16added_vocabulary15AddedVoc %105 = getelementptr inbounds nuw i8, ptr %54, i64 28 %106 = getelementptr inbounds nuw i8, ptr %0, i64 16 %107 = getelementptr inbounds nuw i8, ptr %0, i64 8 - br label %.lr.ph266.outer + br label %.lr.ph274.outer 108: ; preds = %.lr.ph, %610 - %.sroa.0.0263 = phi ptr [ %1, %.lr.ph ], [ %109, %610 ] - %109 = getelementptr inbounds nuw i8, ptr %.sroa.0.0263, i64 32 - %110 = getelementptr inbounds nuw i8, ptr %.sroa.0.0263, i64 28 + %.sroa.0.0271 = phi ptr [ %1, %.lr.ph ], [ %109, %610 ] + %109 = getelementptr inbounds nuw i8, ptr %.sroa.0.0271, i64 32 + %110 = getelementptr inbounds nuw i8, ptr %.sroa.0.0271, i64 28 %111 = load i8, ptr %110, align 4, !range !1950, !noundef !4 %112 = trunc nuw i8 %111 to i1 br i1 %112, label %612, label %610 -.outer._crit_edge: ; preds = %.outer, %.loopexit431, %5 - %.0.lcssa = phi i64 [ 0, %5 ], [ %.0265.ph, %.outer ], [ %336, %.loopexit431 ] +.outer._crit_edge: ; preds = %.outer, %.loopexit439, %5 + %.0.lcssa = phi i64 [ 0, %5 ], [ %.0273.ph, %.outer ], [ %336, %.loopexit439 ] call void @llvm.experimental.noalias.scope.decl(metadata !9312) call void @llvm.lifetime.start.p0(ptr nonnull %37) call void @llvm.lifetime.start.p0(ptr nonnull %38) @@ -31636,15 +31639,15 @@ _ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary20refresh_added_toke %270 = sub i64 %2, %.0.lcssa ret i64 %270 -.lr.ph266: ; preds = %.lr.ph266.outer, %.outer - %.sroa.094.0264 = phi ptr [ %271, %.outer ], [ %.sroa.094.0264.ph, %.lr.ph266.outer ] - %271 = getelementptr inbounds nuw i8, ptr %.sroa.094.0264, i64 32 - %272 = getelementptr inbounds nuw i8, ptr %.sroa.094.0264, i64 16 +.lr.ph274: ; preds = %.lr.ph274.outer, %.outer + %.sroa.094.0272 = phi ptr [ %271, %.outer ], [ %.sroa.094.0272.ph, %.lr.ph274.outer ] + %271 = getelementptr inbounds nuw i8, ptr %.sroa.094.0272, i64 32 + %272 = getelementptr inbounds nuw i8, ptr %.sroa.094.0272, i64 16 %273 = load i64, ptr %272, align 8, !noundef !4 %274 = icmp eq i64 %273, 0 - br i1 %274, label %.loopexit431, label %275 + br i1 %274, label %.loopexit439, label %275 -275: ; preds = %.lr.ph266 +275: ; preds = %.lr.ph274 call void @llvm.lifetime.start.p0(ptr nonnull %57) call void @llvm.experimental.noalias.scope.decl(metadata !9432) %276 = load ptr, ptr %71, align 8, !alias.scope !9432, !noalias !9435, !nonnull !4, !noundef !4 @@ -31660,12 +31663,12 @@ _ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary20refresh_added_toke store ptr %279, ptr %.sroa.021.sroa.5.0..sroa_idx, align 8 store <16 x i1> %281, ptr %.sroa.021.sroa.6.0..sroa_idx, align 8 store i64 %283, ptr %.sroa.021.sroa.8.0..sroa_idx, align 8 - %284 = getelementptr inbounds nuw i8, ptr %.sroa.094.0264, i64 8 - %285 = getelementptr inbounds nuw i8, ptr %.sroa.094.0264, i64 24 - %286 = getelementptr inbounds nuw i8, ptr %.sroa.094.0264, i64 25 - %287 = getelementptr inbounds nuw i8, ptr %.sroa.094.0264, i64 26 - %288 = getelementptr inbounds nuw i8, ptr %.sroa.094.0264, i64 27 - %289 = getelementptr inbounds nuw i8, ptr %.sroa.094.0264, i64 28 + %284 = getelementptr inbounds nuw i8, ptr %.sroa.094.0272, i64 8 + %285 = getelementptr inbounds nuw i8, ptr %.sroa.094.0272, i64 24 + %286 = getelementptr inbounds nuw i8, ptr %.sroa.094.0272, i64 25 + %287 = getelementptr inbounds nuw i8, ptr %.sroa.094.0272, i64 26 + %288 = getelementptr inbounds nuw i8, ptr %.sroa.094.0272, i64 27 + %289 = getelementptr inbounds nuw i8, ptr %.sroa.094.0272, i64 28 %290 = icmp eq i64 %283, 0 br i1 %290, label %.loopexit, label %.split.i.preheader @@ -31755,15 +31758,15 @@ _ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary20refresh_added_toke %335 = icmp eq i64 %308, 0 br i1 %335, label %.loopexit, label %.split.i.preheader, !llvm.loop !9488 -.loopexit431: ; preds = %.lr.ph266, %342 - %336 = add i64 %.0265.ph, 1 +.loopexit439: ; preds = %.lr.ph274, %342 + %336 = add i64 %.0273.ph, 1 %337 = icmp eq ptr %271, %60 - br i1 %337, label %.outer._crit_edge, label %.lr.ph266.outer + br i1 %337, label %.outer._crit_edge, label %.lr.ph274.outer -.lr.ph266.outer: ; preds = %.lr.ph266.lr.ph, %.loopexit431 - %.0265.ph = phi i64 [ 0, %.lr.ph266.lr.ph ], [ %336, %.loopexit431 ] - %.sroa.094.0264.ph = phi ptr [ %1, %.lr.ph266.lr.ph ], [ %271, %.loopexit431 ] - br label %.lr.ph266 +.lr.ph274.outer: ; preds = %.lr.ph274.lr.ph, %.loopexit439 + %.0273.ph = phi i64 [ 0, %.lr.ph274.lr.ph ], [ %336, %.loopexit439 ] + %.sroa.094.0272.ph = phi ptr [ %1, %.lr.ph274.lr.ph ], [ %271, %.loopexit439 ] + br label %.lr.ph274 .loopexit: ; preds = %.backedge.i, %275 call void @llvm.lifetime.end.p0(ptr nonnull %57) @@ -31775,7 +31778,7 @@ _ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary20refresh_added_toke 342: ; preds = %"_ZN4core4iter6traits8iterator8Iterator3any5check28_$u7b$$u7b$closure$u7d$$u7d$17h23ed0fad1ca9e848E.exit.i" call void @llvm.lifetime.end.p0(ptr nonnull %57) - br label %.loopexit431 + br label %.loopexit439 343: ; preds = %.loopexit %344 = extractvalue { i32, i32 } %339, 1 @@ -31855,40 +31858,40 @@ _ZN4core4iter6traits8iterator8Iterator6reduce17hb46ff2c95a7f629bE.exit: ; preds br i1 %.not, label %"_ZN4core6option15Option$LT$T$GT$6map_or17h924039e4693ba90bE.exit", label %switch.lookup switch.lookup: ; preds = %_ZN4core4iter6traits8iterator8Iterator6reduce17hb46ff2c95a7f629bE.exit - %switch.gep423 = getelementptr inbounds nuw i64, ptr @switch.table._ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary10add_tokens17h95860d8d7ca79737E.164, i64 %377 - %switch.load424 = load i64, ptr %switch.gep423, align 8 - %380 = getelementptr inbounds nuw i8, ptr %3, i64 %switch.load424 + %switch.gep431 = getelementptr inbounds nuw i64, ptr @switch.table._ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary10add_tokens17h95860d8d7ca79737E.164, i64 %377 + %switch.load432 = load i64, ptr %switch.gep431, align 8 + %380 = getelementptr inbounds nuw i8, ptr %3, i64 %switch.load432 %.0.i.i.i = load i64, ptr %380, align 8, !noundef !4 %381 = trunc i64 %.0.i.i.i to i32 %.not.i.i = icmp ult i32 %.sroa.3.0.i, %381 - br i1 %.not.i.i, label %switch.lookup425, label %386 + br i1 %.not.i.i, label %switch.lookup433, label %386 -switch.lookup425: ; preds = %switch.lookup - %switch.gep426 = getelementptr inbounds nuw i64, ptr @switch.table._ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary10add_tokens17h95860d8d7ca79737E.164, i64 %377 - %switch.load427 = load i64, ptr %switch.gep426, align 8 - %382 = getelementptr inbounds nuw i8, ptr %3, i64 %switch.load427 +switch.lookup433: ; preds = %switch.lookup + %switch.gep434 = getelementptr inbounds nuw i64, ptr @switch.table._ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary10add_tokens17h95860d8d7ca79737E.164, i64 %377 + %switch.load435 = load i64, ptr %switch.gep434, align 8 + %382 = getelementptr inbounds nuw i8, ptr %3, i64 %switch.load435 %.0.i2.i.i = load i64, ptr %382, align 8, !noundef !4 %383 = icmp eq i64 %.0.i2.i.i, 0 - br i1 %383, label %386, label %switch.lookup428 + br i1 %383, label %386, label %switch.lookup436 -switch.lookup428: ; preds = %switch.lookup425 - %switch.gep429 = getelementptr inbounds nuw i64, ptr @switch.table._ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary10add_tokens17h95860d8d7ca79737E.164, i64 %377 - %switch.load430 = load i64, ptr %switch.gep429, align 8 - %384 = getelementptr inbounds nuw i8, ptr %3, i64 %switch.load430 +switch.lookup436: ; preds = %switch.lookup433 + %switch.gep437 = getelementptr inbounds nuw i64, ptr @switch.table._ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary10add_tokens17h95860d8d7ca79737E.164, i64 %377 + %switch.load438 = load i64, ptr %switch.gep437, align 8 + %384 = getelementptr inbounds nuw i8, ptr %3, i64 %switch.load438 %.0.i5.i.i = load i64, ptr %384, align 8, !noundef !4 %385 = trunc i64 %.0.i5.i.i to i32 br label %"_ZN4core6option15Option$LT$T$GT$6map_or17h924039e4693ba90bE.exit" -386: ; preds = %switch.lookup425, %switch.lookup +386: ; preds = %switch.lookup433, %switch.lookup %387 = add i32 %.sroa.3.0.i, 1 br label %"_ZN4core6option15Option$LT$T$GT$6map_or17h924039e4693ba90bE.exit" -"_ZN4core6option15Option$LT$T$GT$6map_or17h924039e4693ba90bE.exit": ; preds = %386, %switch.lookup428, %_ZN4core4iter6traits8iterator8Iterator6reduce17hb46ff2c95a7f629bE.exit, %343 - %storemerge = phi i32 [ %344, %343 ], [ %379, %_ZN4core4iter6traits8iterator8Iterator6reduce17hb46ff2c95a7f629bE.exit ], [ %387, %386 ], [ %385, %switch.lookup428 ] +"_ZN4core6option15Option$LT$T$GT$6map_or17h924039e4693ba90bE.exit": ; preds = %386, %switch.lookup436, %_ZN4core4iter6traits8iterator8Iterator6reduce17hb46ff2c95a7f629bE.exit, %343 + %storemerge = phi i32 [ %344, %343 ], [ %379, %_ZN4core4iter6traits8iterator8Iterator6reduce17hb46ff2c95a7f629bE.exit ], [ %387, %386 ], [ %385, %switch.lookup436 ] call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.4) call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.5109) call void @llvm.lifetime.start.p0(ptr nonnull %55) - call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %55, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0264) + call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %55, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0272) call void @llvm.experimental.noalias.scope.decl(metadata !9542) call void @llvm.experimental.noalias.scope.decl(metadata !9545) call void @llvm.experimental.noalias.scope.decl(metadata !9547) @@ -32247,7 +32250,7 @@ switch.lookup428: ; preds = %switch.lookup425 %543 = getelementptr inbounds i8, ptr %531, i64 -32 call void @llvm.experimental.noalias.scope.decl(metadata !9718) call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.0.i.i), !noalias !9721 - call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %.sroa.0.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0264), !noalias !9721 + call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %.sroa.0.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0272), !noalias !9721 %544 = load i8, ptr %285, align 8, !range !1950, !noalias !9721, !noundef !4 %545 = load i8, ptr %286, align 1, !range !1950, !noalias !9721, !noundef !4 %546 = load i8, ptr %287, align 2, !range !1950, !noalias !9721, !noundef !4 @@ -32306,7 +32309,7 @@ switch.lookup428: ; preds = %switch.lookup425 559: ; preds = %540, %537 call void @llvm.lifetime.start.p0(ptr nonnull %7), !noalias !9737 - call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %99, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0264), !noalias !9743 + call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %99, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0272), !noalias !9743 %560 = load i8, ptr %285, align 8, !range !1950, !noalias !9744, !noundef !4 %561 = load i8, ptr %286, align 1, !range !1950, !noalias !9744, !noundef !4 %562 = load i8, ptr %287, align 2, !range !1950, !noalias !9744, !noundef !4 @@ -32367,12 +32370,12 @@ switch.lookup428: ; preds = %switch.lookup425 %591 = phi i8 [ %546, %558 ], [ %562, %"_ZN9hashbrown11rustc_entry33RustcVacantEntry$LT$K$C$V$C$A$GT$6insert17hea9b0e09d95e3c09E.exit.i" ] %592 = phi i8 [ %545, %558 ], [ %561, %"_ZN9hashbrown11rustc_entry33RustcVacantEntry$LT$K$C$V$C$A$GT$6insert17hea9b0e09d95e3c09E.exit.i" ] %593 = phi i8 [ %544, %558 ], [ %560, %"_ZN9hashbrown11rustc_entry33RustcVacantEntry$LT$K$C$V$C$A$GT$6insert17hea9b0e09d95e3c09E.exit.i" ] - %594 = call noundef zeroext i1 @"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$12contains_key17h43f4a3c62f5f5284E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %100, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0264) + %594 = call noundef zeroext i1 @"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$12contains_key17h43f4a3c62f5f5284E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %100, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0272) br i1 %594, label %.outer, label %595 595: ; preds = %"_ZN3std11collections4hash3map18Entry$LT$K$C$V$GT$14or_insert_with17h98de08265c896ec8E.exit" call void @llvm.lifetime.start.p0(ptr nonnull %54) - call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %54, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0264) + call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %54, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0272) store i8 %593, ptr %101, align 8 store i8 %592, ptr %102, align 1 store i8 %591, ptr %103, align 2 @@ -32416,32 +32419,32 @@ switch.lookup428: ; preds = %switch.lookup425 .outer: ; preds = %"_ZN3std11collections4hash3map18Entry$LT$K$C$V$GT$14or_insert_with17h98de08265c896ec8E.exit", %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h1c5d237efad571bdE.exit" %609 = icmp eq ptr %271, %60 - br i1 %609, label %.outer._crit_edge, label %.lr.ph266 + br i1 %609, label %.outer._crit_edge, label %.lr.ph274 610: ; preds = %616, %612, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h1c5d237efad571bdE.exit91", %108 %611 = icmp eq ptr %109, %60 - br i1 %611, label %.lr.ph266.lr.ph, label %108 + br i1 %611, label %.lr.ph274.lr.ph, label %108 612: ; preds = %108 - %613 = getelementptr inbounds nuw i8, ptr %.sroa.0.0263, i64 16 + %613 = getelementptr inbounds nuw i8, ptr %.sroa.0.0271, i64 16 %614 = load i64, ptr %613, align 8, !noundef !4 %615 = icmp eq i64 %614, 0 br i1 %615, label %610, label %616 616: ; preds = %612 - %617 = tail call noundef zeroext i1 @"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$12contains_key17h43f4a3c62f5f5284E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %62, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.0.0263) + %617 = tail call noundef zeroext i1 @"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$12contains_key17h43f4a3c62f5f5284E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %62, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.0.0271) br i1 %617, label %610, label %618 618: ; preds = %616 call void @llvm.lifetime.start.p0(ptr nonnull %59) - call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %59, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.0.0263) - %619 = getelementptr inbounds nuw i8, ptr %.sroa.0.0263, i64 24 + call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %59, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.0.0271) + %619 = getelementptr inbounds nuw i8, ptr %.sroa.0.0271, i64 24 %620 = load i8, ptr %619, align 8, !range !1950, !noundef !4 - %621 = getelementptr inbounds nuw i8, ptr %.sroa.0.0263, i64 25 + %621 = getelementptr inbounds nuw i8, ptr %.sroa.0.0271, i64 25 %622 = load i8, ptr %621, align 1, !range !1950, !noundef !4 - %623 = getelementptr inbounds nuw i8, ptr %.sroa.0.0263, i64 26 + %623 = getelementptr inbounds nuw i8, ptr %.sroa.0.0271, i64 26 %624 = load i8, ptr %623, align 2, !range !1950, !noundef !4 - %625 = getelementptr inbounds nuw i8, ptr %.sroa.0.0263, i64 27 + %625 = getelementptr inbounds nuw i8, ptr %.sroa.0.0271, i64 27 %626 = load i8, ptr %625, align 1, !range !1950, !noundef !4 store i8 %620, ptr %64, align 8 store i8 %622, ptr %65, align 1 @@ -32483,7 +32486,7 @@ switch.lookup428: ; preds = %switch.lookup425 store i64 %639, ptr %69, align 8, !alias.scope !9764, !noalias !9767 call void @llvm.lifetime.end.p0(ptr nonnull %59) call void @llvm.lifetime.start.p0(ptr nonnull %58) - call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %58, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.0.0263) + call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %58, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.0.0271) %640 = call noundef zeroext i1 @"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$6insert17h8400a61bde0bcc8cE"(ptr noalias noundef nonnull align 8 dereferenceable(48) %62, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %58) call void @llvm.lifetime.end.p0(ptr nonnull %58) br label %610 diff --git a/bench/tokio-rs/optimized/1rl1r5ea6bzd5c9z.ll b/bench/tokio-rs/optimized/1rl1r5ea6bzd5c9z.ll index 4fd5d8b2ee5..41211d3ec05 100644 --- a/bench/tokio-rs/optimized/1rl1r5ea6bzd5c9z.ll +++ b/bench/tokio-rs/optimized/1rl1r5ea6bzd5c9z.ll @@ -4292,7 +4292,6 @@ define hidden noundef zeroext i1 @"_ZN83_$LT$tokio..loom..std..parking_lot..RwLo define hidden void @_ZN5tokio7runtime9scheduler14current_thread13CurrentThread3new17h49c23d2147e33e28E(ptr noalias noundef writeonly sret({ { { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }, { { ptr } } }, ptr }) align 8 captures(none) dereferenceable(48) %0, ptr noalias noundef align 8 captures(none) dereferenceable(64) %1, ptr noalias noundef align 8 captures(none) dereferenceable(224) %2, ptr noundef nonnull %3, ptr noalias noundef readonly align 4 captures(none) dereferenceable(16) %4, ptr noalias noundef align 8 captures(none) dereferenceable(72) %5) unnamed_addr #1 personality ptr @rust_eh_personality { %7 = alloca { { i64 }, { i64 }, { { { { i32, i32 }, i64, { ptr, ptr }, { ptr, ptr }, { { { { i32 } }, { { i8 } }, [3 x i8], { i32, i32 } } }, i32, i8, i8, [2 x i8] }, { { { ptr, i64 }, { i64 }, i64 }, i64, { i8 }, [7 x i8] }, { { {}, { { { i8 } }, [7 x i8], { { ptr, ptr, i8, [7 x i8] } } } }, { { { { i64 } } }, {} } }, { i8 }, {}, {}, [7 x i8] }, { { [17 x i32], i32 }, ptr, { { {}, { { { i8 } }, [7 x i8], { { { i64, i32 }, { i64, i32 }, i64, i8, [7 x i8] } } } } }, { [20 x i32], i32, [1 x i32] } }, ptr, { { { { i32 } }, { { i8 } }, [3 x i8], { i32, i32 } } } } }, align 8 %8 = alloca { { ptr, i64 }, { i64 }, i64 }, align 8 - %.sroa.538 = alloca [23 x i8], align 1 %9 = alloca { { i64, [7 x i64] }, { { i64, ptr }, i64, i64 }, i32, i32, i8, {}, [7 x i8] }, align 8 %.sroa.432 = alloca [24 x i8], align 1 %.sroa.02.sroa.0.sroa.0 = alloca [104 x i8], align 8 @@ -4308,11 +4307,11 @@ define hidden void @_ZN5tokio7runtime9scheduler14current_thread13CurrentThread3n call void @llvm.lifetime.start.p0(ptr nonnull %10) call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.5) call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.432) - %.sroa.432.7..sroa_idx73 = getelementptr inbounds nuw i8, ptr %.sroa.432, i64 7 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(17) %.sroa.432.7..sroa_idx73, i8 0, i64 17, i1 false), !alias.scope !383 + %.sroa.432.7..sroa_idx69 = getelementptr inbounds nuw i8, ptr %.sroa.432, i64 7 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(17) %.sroa.432.7..sroa_idx69, i8 0, i64 17, i1 false), !alias.scope !383 call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !386 invoke void @"_ZN5tokio4util12sharded_list24ShardedList$LT$L$C$T$GT$3new17h96768b3880282718E"(ptr noalias noundef nonnull sret({ { ptr, i64 }, { i64 }, i64 }) align 8 captures(none) dereferenceable(32) %8, i64 noundef 4) - to label %.noexc unwind label %53 + to label %.noexc unwind label %54 .noexc: ; preds = %6, %.noexc %15 = atomicrmw add ptr @_ZN5tokio7runtime4task4list19NEXT_OWNED_TASKS_ID17h52476638efe660d5E.llvm.18090272232049510573, i64 1 monotonic, align 8, !noalias !386 @@ -4394,7 +4393,7 @@ define hidden void @_ZN5tokio7runtime9scheduler14current_thread13CurrentThread3n 32: ; preds = %.body fence acquire invoke void @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h6e220c583711995aE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %10) - to label %.critedge unwind label %51 + to label %.critedge unwind label %52 33: ; preds = %28 %34 = landingpad { ptr, i32 } @@ -4407,10 +4406,10 @@ define hidden void @_ZN5tokio7runtime9scheduler14current_thread13CurrentThread3n call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %9, ptr noundef nonnull align 8 dereferenceable(64) %1, i64 64, i1 false) %38 = getelementptr inbounds nuw i8, ptr %9, i64 64 store i64 %36, ptr %38, align 8 - %.sroa.467.0..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 72 - store ptr %37, ptr %.sroa.467.0..sroa_idx, align 8 - %.sroa.568.0..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 80 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.568.0..sroa_idx, i8 0, i64 20, i1 false) + %.sroa.463.0..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 72 + store ptr %37, ptr %.sroa.463.0..sroa_idx, align 8 + %.sroa.564.0..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 80 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.564.0..sroa_idx, i8 0, i64 20, i1 false) %39 = getelementptr inbounds nuw i8, ptr %9, i64 100 store i32 %.0, ptr %39, align 4 %40 = getelementptr inbounds nuw i8, ptr %9, i64 104 @@ -4442,58 +4441,52 @@ define hidden void @_ZN5tokio7runtime9scheduler14current_thread13CurrentThread3n 49: ; preds = %35 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %42, ptr noundef nonnull align 8 dereferenceable(112) %9, i64 112, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %9) - %.sroa.538.7..sroa_idx74 = getelementptr inbounds nuw i8, ptr %.sroa.538, i64 7 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) %.sroa.538.7..sroa_idx74, i8 0, i64 16, i1 false) - %.cast = ptrtoint ptr %42 to i64 - store i64 0, ptr %0, align 8 - %.sroa.0.sroa.2.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i8 0, ptr %.sroa.0.sroa.2.0..sroa_idx, align 8 - %.sroa.0.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 9 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(23) %.sroa.0.sroa.3.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(23) %.sroa.538, i64 23, i1 false) + %50 = ptrtoint ptr %42 to i64 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %0, i8 0, i64 32, i1 false) %.sroa.2.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 - store i64 %.cast, ptr %.sroa.2.0..sroa_idx, align 8 - %50 = getelementptr inbounds nuw i8, ptr %0, i64 40 - store ptr %21, ptr %50, align 8 + store i64 %50, ptr %.sroa.2.0..sroa_idx, align 8 + %51 = getelementptr inbounds nuw i8, ptr %0, i64 40 + store ptr %21, ptr %51, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %10) ret void -51: ; preds = %.critedge.thread, %57, %32, %.noexc28, %53 - %52 = landingpad { ptr, i32 } +52: ; preds = %.critedge.thread, %58, %32, %.noexc28, %54 + %53 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #40 unreachable -53: ; preds = %6 - %54 = landingpad { ptr, i32 } +54: ; preds = %6 + %55 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr51drop_in_place$LT$tokio..runtime..config..Config$GT$17h7521fe96e75aa238E"(ptr noalias noundef nonnull align 8 dereferenceable(72) %5) #39 - to label %.thread unwind label %51 + to label %.thread unwind label %52 -.thread: ; preds = %53 - %55 = atomicrmw sub ptr %3, i64 1 release, align 8, !noalias !403 - %56 = icmp eq i64 %55, 1 - br i1 %56, label %57, label %.noexc28 +.thread: ; preds = %54 + %56 = atomicrmw sub ptr %3, i64 1 release, align 8, !noalias !403 + %57 = icmp eq i64 %56, 1 + br i1 %57, label %58, label %.noexc28 -57: ; preds = %.thread +58: ; preds = %.thread fence acquire invoke void @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hbe1f6e056c8cdec0E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %11) - to label %.noexc28 unwind label %51 + to label %.noexc28 unwind label %52 .critedge: ; preds = %32, %.body br i1 %.2, label %.critedge.thread, label %"_ZN4core3ptr51drop_in_place$LT$tokio..runtime..driver..Driver$GT$17h658a2a4ffb4cf16fE.exit" -.noexc28: ; preds = %57, %.thread +.noexc28: ; preds = %58, %.thread invoke void @"_ZN4core3ptr51drop_in_place$LT$tokio..runtime..driver..Handle$GT$17h558090c734fe91abE"(ptr noalias noundef nonnull align 8 dereferenceable(224) %2) #39 - to label %.critedge.thread unwind label %51 + to label %.critedge.thread unwind label %52 "_ZN4core3ptr51drop_in_place$LT$tokio..runtime..driver..Driver$GT$17h658a2a4ffb4cf16fE.exit": ; preds = %.critedge.thread, %.critedge - %.pn.pn475660 = phi { ptr, i32 } [ %.pn, %.critedge ], [ %.pn.pn475661, %.critedge.thread ] - resume { ptr, i32 } %.pn.pn475660 + %.pn.pn425155 = phi { ptr, i32 } [ %.pn, %.critedge ], [ %.pn.pn425156, %.critedge.thread ] + resume { ptr, i32 } %.pn.pn425155 .critedge.thread: ; preds = %24, %.noexc28, %.critedge - %.pn.pn475661 = phi { ptr, i32 } [ %.pn, %.critedge ], [ %54, %.noexc28 ], [ %25, %24 ] + %.pn.pn425156 = phi { ptr, i32 } [ %.pn, %.critedge ], [ %55, %.noexc28 ], [ %25, %24 ] invoke void @"_ZN4core3ptr55drop_in_place$LT$tokio..runtime..driver..TimeDriver$GT$17hca22e64e71c86c3dE.llvm.700930863383756518"(ptr noalias noundef nonnull align 8 dereferenceable(64) %1) - to label %"_ZN4core3ptr51drop_in_place$LT$tokio..runtime..driver..Driver$GT$17h658a2a4ffb4cf16fE.exit" unwind label %51 + to label %"_ZN4core3ptr51drop_in_place$LT$tokio..runtime..driver..Driver$GT$17h658a2a4ffb4cf16fE.exit" unwind label %52 } ; Function Attrs: nounwind nonlazybind memory(readwrite, target_mem0: none, target_mem1: none) uwtable @@ -8741,13 +8734,11 @@ define hidden void @_ZN5tokio7runtime7metrics4mock12MetricsBatch19incr_overflow_ ; Function Attrs: nonlazybind uwtable define void @_ZN5tokio4sync7barrier7Barrier3new17h2164f7da09107193E(ptr noalias noundef writeonly sret({ { ptr, i64 }, { {}, { { { i8 } }, [7 x i8], { { ptr, i64, i64 } } } }, i64 }) align 8 captures(none) dereferenceable(56) %0, i64 noundef %1, ptr noalias noundef readonly align 8 captures(none) dereferenceable(24) %2) unnamed_addr #1 personality ptr @rust_eh_personality { - %.sroa.514.i = alloca [23 x i8], align 1 - %.sroa.0.sroa.0.i = alloca [8 x { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }], align 8 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.514.i) - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.0.sroa.0.i), !noalias !755 - call void @"_ZN4core5array75_$LT$impl$u20$core..default..Default$u20$for$u20$$u5b$T$u3b$$u20$_$u5d$$GT$7default17h2df7d786969fa7d4E"(ptr noalias noundef nonnull sret([8 x { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }]) align 8 captures(none) dereferenceable(256) %.sroa.0.sroa.0.i), !noalias !755 - %.sroa.514.i.7.i.7.i.7..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.514.i, i64 7 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) %.sroa.514.i.7.i.7.i.7..sroa_idx, i8 0, i64 16, i1 false), !noalias !755 + %.sroa.0.i = alloca { { [8 x { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }] }, { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } } }, align 8 + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.0.i), !noalias !755 + call void @"_ZN4core5array75_$LT$impl$u20$core..default..Default$u20$for$u20$$u5b$T$u3b$$u20$_$u5d$$GT$7default17h2df7d786969fa7d4E"(ptr noalias noundef nonnull sret([8 x { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }]) align 8 captures(none) dereferenceable(256) %.sroa.0.i), !noalias !755 + %.sroa.0.256..sroa_idx.i = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 256 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0.256..sroa_idx.i, i8 0, i64 32, i1 false), !noalias !755 %4 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !758 %5 = tail call noundef align 8 dereferenceable_or_null(336) ptr @__rust_alloc(i64 noundef 336, i64 noundef 8) #26, !noalias !758 %6 = icmp eq ptr %5, null @@ -8762,18 +8753,12 @@ define void @_ZN5tokio4sync7barrier7Barrier3new17h2164f7da09107193E(ptr noalias %.sroa.4.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %5, i64 8 store i64 1, ptr %.sroa.4.0..sroa_idx.i.i, align 8, !noalias !763 %.sroa.5.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %5, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(256) %.sroa.5.0..sroa_idx.i.i, ptr noundef nonnull align 8 dereferenceable(256) %.sroa.0.sroa.0.i, i64 256, i1 false), !noalias !755 - %.sroa.0.sroa.4.0..sroa.5.0..sroa_idx.i.sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 272 - store i64 0, ptr %.sroa.0.sroa.4.0..sroa.5.0..sroa_idx.i.sroa_idx.i, align 8, !noalias !755 - %.sroa.0.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 280 - store i8 0, ptr %.sroa.0.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx.i, align 8, !noalias !755 - %.sroa.0.sroa.6.0..sroa.5.0..sroa_idx.i.sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 281 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(23) %.sroa.0.sroa.6.0..sroa.5.0..sroa_idx.i.sroa_idx.i, ptr noundef nonnull align 1 dereferenceable(23) %.sroa.514.i, i64 23, i1 false), !noalias !755 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(288) %.sroa.5.0..sroa_idx.i.i, ptr noundef nonnull align 8 dereferenceable(288) %.sroa.0.i, i64 288, i1 false), !noalias !755 %.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 304 %.sroa.8.0..sroa.5.0..sroa_idx.i.sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 328 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx.i, i8 0, i64 24, i1 false), !noalias !755 store i64 1, ptr %.sroa.8.0..sroa.5.0..sroa_idx.i.sroa_idx.i, align 8, !noalias !755 - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0.sroa.0.i), !noalias !755 + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0.i), !noalias !755 %8 = atomicrmw add ptr %5, i64 1 monotonic, align 8, !noalias !755 %9 = icmp slt i64 %8, 0 br i1 %9, label %10, label %_ZN5tokio4sync5watch7channel17h6f762494aaf9f544E.exit @@ -8783,7 +8768,6 @@ define void @_ZN5tokio4sync7barrier7Barrier3new17h2164f7da09107193E(ptr noalias unreachable _ZN5tokio4sync5watch7channel17h6f762494aaf9f544E.exit: ; preds = %"_ZN5alloc4sync12Arc$LT$T$GT$3new17hb8f6473e483769f9E.exit.i" - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.514.i) %spec.store.select = tail call i64 @llvm.umax.i64(i64 %1, i64 1) %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 store i8 0, ptr %11, align 8 @@ -8855,12 +8839,11 @@ define hidden noundef zeroext i1 @"_ZN72_$LT$tokio..sync..watch..Shared$LT$T$GT$ ; Function Attrs: nonlazybind uwtable define hidden void @_ZN5tokio4sync5watch7channel17h33fc22043f4b2082E(ptr noalias noundef writeonly sret({ ptr, { ptr, i64 } }) align 8 captures(none) dereferenceable(24) %0) unnamed_addr #1 personality ptr @rust_eh_personality { - %.sroa.514 = alloca [23 x i8], align 1 - %.sroa.0.sroa.0 = alloca [8 x { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }], align 8 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.0.sroa.0) - call void @"_ZN4core5array75_$LT$impl$u20$core..default..Default$u20$for$u20$$u5b$T$u3b$$u20$_$u5d$$GT$7default17h2df7d786969fa7d4E"(ptr noalias noundef nonnull sret([8 x { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }]) align 8 captures(none) dereferenceable(256) %.sroa.0.sroa.0) - %.sroa.514.7..sroa_idx16 = getelementptr inbounds nuw i8, ptr %.sroa.514, i64 7 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) %.sroa.514.7..sroa_idx16, i8 0, i64 16, i1 false) + %.sroa.0 = alloca { { [8 x { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }] }, { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } } }, align 8 + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.0) + call void @"_ZN4core5array75_$LT$impl$u20$core..default..Default$u20$for$u20$$u5b$T$u3b$$u20$_$u5d$$GT$7default17h2df7d786969fa7d4E"(ptr noalias noundef nonnull sret([8 x { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }]) align 8 captures(none) dereferenceable(256) %.sroa.0) + %.sroa.0.256..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0, i64 256 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0.256..sroa_idx, i8 0, i64 32, i1 false) %2 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !764 %3 = tail call noundef align 8 dereferenceable_or_null(328) ptr @__rust_alloc(i64 noundef 328, i64 noundef 8) #26, !noalias !764 %4 = icmp eq ptr %3, null @@ -8875,18 +8858,12 @@ define hidden void @_ZN5tokio4sync5watch7channel17h33fc22043f4b2082E(ptr noalias %.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 1, ptr %.sroa.4.0..sroa_idx.i, align 8, !noalias !769 %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %3, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(256) %.sroa.5.0..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(256) %.sroa.0.sroa.0, i64 256, i1 false) - %.sroa.0.sroa.4.0..sroa.5.0..sroa_idx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 272 - store i64 0, ptr %.sroa.0.sroa.4.0..sroa.5.0..sroa_idx.i.sroa_idx, align 8 - %.sroa.0.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 280 - store i8 0, ptr %.sroa.0.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx, align 8 - %.sroa.0.sroa.6.0..sroa.5.0..sroa_idx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 281 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(23) %.sroa.0.sroa.6.0..sroa.5.0..sroa_idx.i.sroa_idx, ptr noundef nonnull align 1 dereferenceable(23) %.sroa.514, i64 23, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(288) %.sroa.5.0..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(288) %.sroa.0, i64 288, i1 false) %.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 304 %.sroa.7.0..sroa.5.0..sroa_idx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 320 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx, i8 0, i64 16, i1 false) store i64 1, ptr %.sroa.7.0..sroa.5.0..sroa_idx.i.sroa_idx, align 8 - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0.sroa.0) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0) %6 = atomicrmw add ptr %3, i64 1 monotonic, align 8, !noalias !770 %7 = icmp slt i64 %6, 0 br i1 %7, label %8, label %"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h6d50f73fe2a1d02aE.llvm.5542961546488995764.exit" @@ -9199,10 +9176,8 @@ define { i64, i32 } @"_ZN5tokio4time7instant105_$LT$impl$u20$core..convert..From } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: write) uwtable -define hidden void @_ZN5tokio4util4rand2rt16RngSeedGenerator3new17h4fb52625e0ed8f6bE(ptr noalias noundef writeonly sret({ { { { i32 } }, { { i8 } }, [3 x i8], { i32, i32 } } }) align 4 captures(none) dereferenceable(16) initializes((0, 5), (8, 16)) %0, i32 noundef %1, i32 noundef %2) unnamed_addr #4 { - store i32 0, ptr %0, align 4 - %.sroa.0.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 4 - store i8 0, ptr %.sroa.0.sroa.4.0..sroa_idx, align 4 +define hidden void @_ZN5tokio4util4rand2rt16RngSeedGenerator3new17h4fb52625e0ed8f6bE(ptr noalias noundef writeonly sret({ { { { i32 } }, { { i8 } }, [3 x i8], { i32, i32 } } }) align 4 captures(none) dereferenceable(16) initializes((0, 16)) %0, i32 noundef %1, i32 noundef %2) unnamed_addr #4 { + store i64 0, ptr %0, align 4 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store i32 %1, ptr %.sroa.5.0..sroa_idx, align 4 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 12 @@ -9322,13 +9297,11 @@ _ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.llvm.5542961546488995764.exit. } ; Function Attrs: nonlazybind uwtable -define hidden void @_ZN5tokio4util4rand2rt16RngSeedGenerator14next_generator17hcc8e630fa4485cbdE(ptr noalias noundef writeonly sret({ { { { i32 } }, { { i8 } }, [3 x i8], { i32, i32 } } }) align 4 captures(none) dereferenceable(16) initializes((0, 5), (8, 16)) %0, ptr noundef nonnull align 4 %1) unnamed_addr #1 { +define hidden void @_ZN5tokio4util4rand2rt16RngSeedGenerator14next_generator17hcc8e630fa4485cbdE(ptr noalias noundef writeonly sret({ { { { i32 } }, { { i8 } }, [3 x i8], { i32, i32 } } }) align 4 captures(none) dereferenceable(16) initializes((0, 16)) %0, ptr noundef nonnull align 4 %1) unnamed_addr #1 { %3 = tail call { i32, i32 } @_ZN5tokio4util4rand2rt16RngSeedGenerator9next_seed17h983e7f3a383fc9d6E(ptr noundef nonnull align 4 %1) %4 = extractvalue { i32, i32 } %3, 0 %5 = extractvalue { i32, i32 } %3, 1 - store i32 0, ptr %0, align 4, !alias.scope !827 - %.sroa.0.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 4 - store i8 0, ptr %.sroa.0.sroa.4.0..sroa_idx.i, align 4, !alias.scope !827 + store i64 0, ptr %0, align 4, !alias.scope !827 %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 8 store i32 %4, ptr %.sroa.5.0..sroa_idx.i, align 4, !alias.scope !827 %.sroa.6.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 12 diff --git a/bench/tokio-rs/optimized/2i86qkpybymk1snv.ll b/bench/tokio-rs/optimized/2i86qkpybymk1snv.ll index 2fb4cf434b1..7e734a58234 100644 --- a/bench/tokio-rs/optimized/2i86qkpybymk1snv.ll +++ b/bench/tokio-rs/optimized/2i86qkpybymk1snv.ll @@ -7047,22 +7047,14 @@ define hidden noundef range(i64 0, 4611686018427387904) i64 @_ZN5tokio4sync6noti } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: write) uwtable -define void @_ZN5tokio4sync6notify6Notify3new17hace6f67ad1acbacbE(ptr noalias noundef writeonly sret({ { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }) align 8 captures(none) dereferenceable(32) initializes((0, 9), (16, 32)) %0) unnamed_addr #12 { - store i64 0, ptr %0, align 8 - %2 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i8 0, ptr %2, align 8 - %.sroa.02.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.02.sroa.4.0..sroa_idx, i8 0, i64 16, i1 false) +define void @_ZN5tokio4sync6notify6Notify3new17hace6f67ad1acbacbE(ptr noalias noundef writeonly sret({ { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }) align 8 captures(none) dereferenceable(32) initializes((0, 32)) %0) unnamed_addr #12 { + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %0, i8 0, i64 32, i1 false) ret void } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: write) uwtable -define void @_ZN5tokio4sync6notify6Notify9const_new17h4b5726f518cb4052E(ptr noalias noundef writeonly sret({ { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }) align 8 captures(none) dereferenceable(32) initializes((0, 9), (16, 32)) %0) unnamed_addr #12 { - store i64 0, ptr %0, align 8 - %2 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i8 0, ptr %2, align 8 - %.sroa.02.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.02.sroa.4.0..sroa_idx, i8 0, i64 16, i1 false) +define void @_ZN5tokio4sync6notify6Notify9const_new17h4b5726f518cb4052E(ptr noalias noundef writeonly sret({ { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }) align 8 captures(none) dereferenceable(32) initializes((0, 32)) %0) unnamed_addr #12 { + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %0, i8 0, i64 32, i1 false) ret void } @@ -7520,12 +7512,8 @@ _ZN5tokio4util9wake_list8WakeList4push17hc0e5ac01899e14fdE.exit: ; preds = %_ZN5 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: write) uwtable -define void @"_ZN70_$LT$tokio..sync..notify..Notify$u20$as$u20$core..default..Default$GT$7default17h43e87fd3a5c24791E"(ptr noalias noundef writeonly sret({ { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }) align 8 captures(none) dereferenceable(32) initializes((0, 9), (16, 32)) %0) unnamed_addr #12 { - store i64 0, ptr %0, align 8, !alias.scope !1431 - %2 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i8 0, ptr %2, align 8, !alias.scope !1431 - %.sroa.02.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.02.sroa.4.0..sroa_idx.i, i8 0, i64 16, i1 false), !alias.scope !1431 +define void @"_ZN70_$LT$tokio..sync..notify..Notify$u20$as$u20$core..default..Default$GT$7default17h43e87fd3a5c24791E"(ptr noalias noundef writeonly sret({ { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }) align 8 captures(none) dereferenceable(32) initializes((0, 32)) %0) unnamed_addr #12 { + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %0, i8 0, i64 32, i1 false), !alias.scope !1431 ret void } diff --git a/bench/tokio-rs/optimized/4zaq7yghb5wawieu.ll b/bench/tokio-rs/optimized/4zaq7yghb5wawieu.ll index 9587b79b1fc..cfa9a424a65 100644 --- a/bench/tokio-rs/optimized/4zaq7yghb5wawieu.ll +++ b/bench/tokio-rs/optimized/4zaq7yghb5wawieu.ll @@ -55,26 +55,20 @@ _ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.exit.i: ; preds = %9, %_ZN3std ; Function Attrs: nonlazybind uwtable define noalias noundef nonnull ptr @_ZN10tokio_test4task8MockTask3new17h34185b8b665a38b1E() unnamed_addr #0 personality ptr @rust_eh_personality { %1 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !4 - %2 = tail call noundef align 8 dereferenceable_or_null(40) ptr @__rust_alloc(i64 noundef 40, i64 noundef 8) #12, !noalias !4 + %2 = tail call noundef align 8 dereferenceable_or_null(40) ptr @__rust_alloc(i64 noundef 40, i64 noundef 8) #13, !noalias !4 %3 = icmp eq ptr %2, null br i1 %3, label %4, label %"_ZN5alloc4sync12Arc$LT$T$GT$3new17h961f5346b9d2e415E.exit" 4: ; preds = %0 - tail call void @_ZN5alloc5alloc18handle_alloc_error17h81706c48453a6249E(i64 noundef 8, i64 noundef 40) #13, !noalias !4 + tail call void @_ZN5alloc5alloc18handle_alloc_error17h81706c48453a6249E(i64 noundef 8, i64 noundef 40) #14, !noalias !4 unreachable "_ZN5alloc4sync12Arc$LT$T$GT$3new17h961f5346b9d2e415E.exit": ; preds = %0 store i64 1, ptr %2, align 8, !noalias !9 %.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %2, i64 8 store i64 1, ptr %.sroa.4.0..sroa_idx.i, align 8, !noalias !9 - %.sroa.5.0..sroa_idx.i1 = getelementptr inbounds nuw i8, ptr %2, i64 16 - store i32 0, ptr %.sroa.5.0..sroa_idx.i1, align 8 - %.sroa.4.0..sroa.5.0..sroa_idx.i1.sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 20 - store i8 0, ptr %.sroa.4.0..sroa.5.0..sroa_idx.i1.sroa_idx, align 4 - %.sroa.52.0..sroa.5.0..sroa_idx.i1.sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 24 - store i64 0, ptr %.sroa.52.0..sroa.5.0..sroa_idx.i1.sroa_idx, align 8 - %.sroa.6.0..sroa.5.0..sroa_idx.i1.sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 32 - store i32 0, ptr %.sroa.6.0..sroa.5.0..sroa_idx.i1.sroa_idx, align 8 + %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %2, i64 16 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.5.0..sroa_idx.i, i8 0, i64 20, i1 false) ret ptr %2 } @@ -115,13 +109,13 @@ _ZN3std3sys4unix5locks11futex_mutex5Mutex4lock17h2824c483f8557e8fE.exit.i: ; pre store ptr %4, ptr %2, align 8, !noalias !14 %18 = getelementptr inbounds nuw i8, ptr %2, i64 8 store i8 %.0.i.i.i.i, ptr %18, align 8, !noalias !14 - invoke void @_ZN4core6result13unwrap_failed17h03d8a5018196e1cdE(ptr noalias noundef nonnull readonly align 1 @anon.7327f57b40318b5a6f61d49f8bdf2f55.24, i64 noundef 43, ptr noundef nonnull align 1 %2, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.28) #13 + invoke void @_ZN4core6result13unwrap_failed17h03d8a5018196e1cdE(ptr noalias noundef nonnull readonly align 1 @anon.7327f57b40318b5a6f61d49f8bdf2f55.24, i64 noundef 43, ptr noundef nonnull align 1 %2, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.28) #14 to label %21 unwind label %19, !noalias !18 19: ; preds = %17 %20 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr100drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$$GT$17he533db34d4b94251E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) #14 + invoke void @"_ZN4core3ptr100drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$$GT$17he533db34d4b94251E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) #15 to label %common.resume.i unwind label %22, !noalias !18 21: ; preds = %17 @@ -130,7 +124,7 @@ _ZN3std3sys4unix5locks11futex_mutex5Mutex4lock17h2824c483f8557e8fE.exit.i: ; pre 22: ; preds = %19 %23 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #15, !noalias !18 + call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #16, !noalias !18 unreachable common.resume.i: ; preds = %39, %19 @@ -146,7 +140,7 @@ common.resume.i: ; preds = %39, %19 ] 26: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17he5b3009b7675717dE.exit.i" - invoke void @_ZN4core9panicking5panic17hb837a5ebbbe5b188E(ptr noalias noundef nonnull readonly align 1 @anon.7327f57b40318b5a6f61d49f8bdf2f55.29, i64 noundef 40, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.30) #13 + invoke void @_ZN4core9panicking5panic17hb837a5ebbbe5b188E(ptr noalias noundef nonnull readonly align 1 @anon.7327f57b40318b5a6f61d49f8bdf2f55.29, i64 noundef 40, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.30) #14 to label %41 unwind label %39 27: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17he5b3009b7675717dE.exit.i" @@ -183,7 +177,7 @@ _ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.exit.i.i.i: ; preds = %35, %_Z 39: ; preds = %26 %40 = landingpad { ptr, i32 } cleanup - invoke fastcc void @"_ZN4core3ptr62drop_in_place$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$17hf0e5300e01df7278E"(ptr nonnull align 8 %4, i8 %.0.i.i.i.i) #14 + invoke fastcc void @"_ZN4core3ptr62drop_in_place$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$17hf0e5300e01df7278E"(ptr nonnull align 8 %4, i8 %.0.i.i.i.i) #15 to label %common.resume.i unwind label %42 41: ; preds = %26 @@ -192,7 +186,7 @@ _ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.exit.i.i.i: ; preds = %35, %_Z 42: ; preds = %39 %43 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - tail call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #15 + tail call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #16 unreachable _ZN10tokio_test4task11ThreadWaker8is_woken17h6ac0e4f758829393E.exit: ; preds = %_ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.exit.i.i.i, %38 @@ -226,26 +220,20 @@ define { ptr, ptr } @_ZN10tokio_test4task8MockTask5waker17h02f0b1aa8a531552E(ptr ; Function Attrs: nonlazybind uwtable define noalias noundef nonnull ptr @"_ZN69_$LT$tokio_test..task..MockTask$u20$as$u20$core..default..Default$GT$7default17h1505a255dd55fce2E"() unnamed_addr #0 personality ptr @rust_eh_personality { %1 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !19 - %2 = tail call noundef align 8 dereferenceable_or_null(40) ptr @__rust_alloc(i64 noundef 40, i64 noundef 8) #12, !noalias !19 + %2 = tail call noundef align 8 dereferenceable_or_null(40) ptr @__rust_alloc(i64 noundef 40, i64 noundef 8) #13, !noalias !19 %3 = icmp eq ptr %2, null br i1 %3, label %4, label %_ZN10tokio_test4task8MockTask3new17h34185b8b665a38b1E.exit 4: ; preds = %0 - tail call void @_ZN5alloc5alloc18handle_alloc_error17h81706c48453a6249E(i64 noundef 8, i64 noundef 40) #13, !noalias !19 + tail call void @_ZN5alloc5alloc18handle_alloc_error17h81706c48453a6249E(i64 noundef 8, i64 noundef 40) #14, !noalias !19 unreachable _ZN10tokio_test4task8MockTask3new17h34185b8b665a38b1E.exit: ; preds = %0 store i64 1, ptr %2, align 8, !noalias !24 %.sroa.4.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %2, i64 8 store i64 1, ptr %.sroa.4.0..sroa_idx.i.i, align 8, !noalias !24 - %.sroa.5.0..sroa_idx.i1.i = getelementptr inbounds nuw i8, ptr %2, i64 16 - store i32 0, ptr %.sroa.5.0..sroa_idx.i1.i, align 8 - %.sroa.4.0..sroa.5.0..sroa_idx.i1.sroa_idx.i = getelementptr inbounds nuw i8, ptr %2, i64 20 - store i8 0, ptr %.sroa.4.0..sroa.5.0..sroa_idx.i1.sroa_idx.i, align 4 - %.sroa.52.0..sroa.5.0..sroa_idx.i1.sroa_idx.i = getelementptr inbounds nuw i8, ptr %2, i64 24 - store i64 0, ptr %.sroa.52.0..sroa.5.0..sroa_idx.i1.sroa_idx.i, align 8 - %.sroa.6.0..sroa.5.0..sroa_idx.i1.sroa_idx.i = getelementptr inbounds nuw i8, ptr %2, i64 32 - store i32 0, ptr %.sroa.6.0..sroa.5.0..sroa_idx.i1.sroa_idx.i, align 8 + %.sroa.5.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %2, i64 16 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.5.0..sroa_idx.i.i, i8 0, i64 20, i1 false) ret ptr %2 } @@ -284,13 +272,13 @@ _ZN3std3sys4unix5locks11futex_mutex5Mutex4lock17h2824c483f8557e8fE.exit: ; preds store ptr %0, ptr %2, align 8, !noalias !28 %16 = getelementptr inbounds nuw i8, ptr %2, i64 8 store i8 %.0.i.i.i, ptr %16, align 8, !noalias !28 - invoke void @_ZN4core6result13unwrap_failed17h03d8a5018196e1cdE(ptr noalias noundef nonnull readonly align 1 @anon.7327f57b40318b5a6f61d49f8bdf2f55.24, i64 noundef 43, ptr noundef nonnull align 1 %2, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.27) #13 + invoke void @_ZN4core6result13unwrap_failed17h03d8a5018196e1cdE(ptr noalias noundef nonnull readonly align 1 @anon.7327f57b40318b5a6f61d49f8bdf2f55.24, i64 noundef 43, ptr noundef nonnull align 1 %2, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.27) #14 to label %19 unwind label %17, !noalias !32 17: ; preds = %15 %18 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr100drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$$GT$17he533db34d4b94251E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) #14 + invoke void @"_ZN4core3ptr100drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$$GT$17he533db34d4b94251E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) #15 to label %22 unwind label %20, !noalias !32 19: ; preds = %15 @@ -299,7 +287,7 @@ _ZN3std3sys4unix5locks11futex_mutex5Mutex4lock17h2824c483f8557e8fE.exit: ; preds 20: ; preds = %17 %21 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #15, !noalias !32 + call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #16, !noalias !32 unreachable 22: ; preds = %17 @@ -375,13 +363,13 @@ _ZN3std3sys4unix5locks11futex_mutex5Mutex4lock17h2824c483f8557e8fE.exit: ; preds store ptr %0, ptr %2, align 8, !noalias !36 %18 = getelementptr inbounds nuw i8, ptr %2, i64 8 store i8 %.0.i.i.i, ptr %18, align 8, !noalias !36 - invoke void @_ZN4core6result13unwrap_failed17h03d8a5018196e1cdE(ptr noalias noundef nonnull readonly align 1 @anon.7327f57b40318b5a6f61d49f8bdf2f55.24, i64 noundef 43, ptr noundef nonnull align 1 %2, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.31) #13 + invoke void @_ZN4core6result13unwrap_failed17h03d8a5018196e1cdE(ptr noalias noundef nonnull readonly align 1 @anon.7327f57b40318b5a6f61d49f8bdf2f55.24, i64 noundef 43, ptr noundef nonnull align 1 %2, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.31) #14 to label %21 unwind label %19, !noalias !40 19: ; preds = %17 %20 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr100drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$$GT$17he533db34d4b94251E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) #14 + invoke void @"_ZN4core3ptr100drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$$GT$17he533db34d4b94251E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) #15 to label %common.resume unwind label %22, !noalias !40 21: ; preds = %17 @@ -390,7 +378,7 @@ _ZN3std3sys4unix5locks11futex_mutex5Mutex4lock17h2824c483f8557e8fE.exit: ; preds 22: ; preds = %19 %23 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #15, !noalias !40 + call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #16, !noalias !40 unreachable common.resume: ; preds = %31, %19 @@ -420,13 +408,13 @@ common.resume: ; preds = %31, %19 30: ; preds = %27 call void @llvm.lifetime.start.p0(ptr nonnull %3) store ptr null, ptr %3, align 8 - invoke void @_ZN4core9panicking13assert_failed17h342b42205c6ae7b1E(i8 noundef 0, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %4, ptr noalias noundef readonly align 8 dereferenceable(8) @anon.7327f57b40318b5a6f61d49f8bdf2f55.32, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.33) #13 + invoke void @_ZN4core9panicking13assert_failed17h342b42205c6ae7b1E(i8 noundef 0, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %4, ptr noalias noundef readonly align 8 dereferenceable(8) @anon.7327f57b40318b5a6f61d49f8bdf2f55.32, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.33) #14 to label %43 unwind label %31 31: ; preds = %30, %28 %32 = landingpad { ptr, i32 } cleanup - invoke fastcc void @"_ZN4core3ptr62drop_in_place$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$17hf0e5300e01df7278E"(ptr nonnull %0, i8 %.0.i.i.i) #14 + invoke fastcc void @"_ZN4core3ptr62drop_in_place$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$17hf0e5300e01df7278E"(ptr nonnull %0, i8 %.0.i.i.i) #15 to label %common.resume unwind label %44 33: ; preds = %28 @@ -466,7 +454,7 @@ _ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.exit.i.i: ; preds = %40, %_ZN3 44: ; preds = %31 %45 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #15 + call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #16 unreachable 46: ; preds = %27, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17he5b3009b7675717dE.exit" @@ -550,7 +538,7 @@ define internal void @_ZN10tokio_test4task4wake17h63efacc5ff6bdcfaE(ptr noundef 13: ; preds = %8 %14 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #15 + call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #16 unreachable "_ZN4core3ptr74drop_in_place$LT$alloc..sync..Arc$LT$tokio_test..task..ThreadWaker$GT$$GT$17hb6fbe7cb8a3ab976E.exit": ; preds = %4, %8 @@ -585,7 +573,7 @@ define internal void @_ZN10tokio_test4task11wake_by_ref17h66428f1ebc504812E(ptr 10: ; preds = %8 %11 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #15 + call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #16 unreachable "_ZN4core3ptr74drop_in_place$LT$alloc..sync..Arc$LT$tokio_test..task..ThreadWaker$GT$$GT$17hb6fbe7cb8a3ab976E.exit": ; preds = %4, %8 @@ -674,6 +662,9 @@ declare void @llvm.lifetime.start.p0(ptr captures(none)) #11 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(ptr captures(none)) #11 +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #12 + attributes #0 = { nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #1 = { mustprogress nofree norecurse nounwind nonlazybind willreturn memory(readwrite, inaccessiblemem: none, target_mem0: none, target_mem1: none) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #2 = { nounwind nonlazybind memory(readwrite, inaccessiblemem: write, target_mem0: none, target_mem1: none) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } @@ -686,10 +677,11 @@ attributes #8 = { nounwind nonlazybind allockind("alloc,uninitialized,aligned") attributes #9 = { cold noreturn nounwind memory(inaccessiblemem: write) } attributes #10 = { inlinehint nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #11 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #12 = { nounwind } -attributes #13 = { noreturn } -attributes #14 = { cold } -attributes #15 = { cold noreturn nounwind } +attributes #12 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #13 = { nounwind } +attributes #14 = { noreturn } +attributes #15 = { cold } +attributes #16 = { cold noreturn nounwind } !llvm.module.flags = !{!0, !1, !2} !llvm.ident = !{!3} diff --git a/bench/typst-rs/optimized/4sdr2z2pqpqxs72u.ll b/bench/typst-rs/optimized/4sdr2z2pqpqxs72u.ll index 1a49fb6cf0d..85f2122cbdd 100644 --- a/bench/typst-rs/optimized/4sdr2z2pqpqxs72u.ll +++ b/bench/typst-rs/optimized/4sdr2z2pqpqxs72u.ll @@ -1714,11 +1714,11 @@ _ZN10pdf_writer6object4Dict6insert17hbdd766f8807bb414E.llvm.9476733087058070434. store i64 %1, ptr %.sroa.5.0..sroa_idx.i, align 8, !noalias !283 br label %52 -52: ; preds = %.noexc6, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" - %53 = phi i64 [ 0, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ 1, %.noexc6 ] - %54 = phi i1 [ true, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ false, %.noexc6 ] - %exitcond = phi i1 [ false, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ true, %.noexc6 ] - %55 = phi i32 [ 1, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ 2, %.noexc6 ] +52: ; preds = %.noexc7, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" + %53 = phi i64 [ 0, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ 1, %.noexc7 ] + %54 = phi i1 [ true, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ false, %.noexc7 ] + %exitcond = phi i1 [ false, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ true, %.noexc7 ] + %55 = phi i32 [ 1, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ 2, %.noexc7 ] %56 = getelementptr inbounds nuw float, ptr %.sroa.5.0..sroa_idx.i, i64 %53 %57 = load float, ptr %56, align 4, !alias.scope !286, !noalias !283, !noundef !4 br i1 %54, label %_ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.9476733087058070434.exit.i.i, label %58 @@ -1749,9 +1749,9 @@ _ZN10pdf_writer6object4Dict6insert17hbdd766f8807bb414E.llvm.9476733087058070434. _ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.9476733087058070434.exit.i.i: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit.i.i", %52 invoke void @"_ZN53_$LT$f32$u20$as$u20$pdf_writer..object..Primitive$GT$5write17h9f0f42301bbc2773E.llvm.9476733087058070434"(float noundef %57, ptr noalias noundef nonnull align 8 dereferenceable(24) %8) - to label %.noexc6 unwind label %67 + to label %.noexc7 unwind label %67 -.noexc6: ; preds = %_ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.9476733087058070434.exit.i.i +.noexc7: ; preds = %_ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.9476733087058070434.exit.i.i br i1 %exitcond, label %70, label %52 67: ; preds = %_ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.9476733087058070434.exit.i.i, %.noexc.i @@ -1762,7 +1762,7 @@ _ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.947673308705807043 invoke void @"_ZN4core3ptr46drop_in_place$LT$pdf_writer..object..Array$GT$17h5fab74e1742e36b0E.llvm.9476733087058070434"(ptr noalias noundef nonnull align 8 dereferenceable(16) %4) #28 to label %82 unwind label %80 -70: ; preds = %.noexc6 +70: ; preds = %.noexc7 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !283 %71 = load i64, ptr %9, align 8, !alias.scope !295, !noalias !298, !noundef !4 %72 = load i64, ptr %8, align 8, !alias.scope !295, !noalias !298, !noundef !4 @@ -1771,11 +1771,11 @@ _ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.947673308705807043 74: ; preds = %70 tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hac19cc53fa7490beE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %71), !noalias !298 - %.pre.i.i.i8 = load i64, ptr %9, align 8, !alias.scope !295, !noalias !298 + %.pre.i.i.i9 = load i64, ptr %9, align 8, !alias.scope !295, !noalias !298 br label %"_ZN4core3ptr46drop_in_place$LT$pdf_writer..object..Array$GT$17h5fab74e1742e36b0E.llvm.9476733087058070434.exit" "_ZN4core3ptr46drop_in_place$LT$pdf_writer..object..Array$GT$17h5fab74e1742e36b0E.llvm.9476733087058070434.exit": ; preds = %70, %74 - %75 = phi i64 [ %.pre.i.i.i8, %74 ], [ %71, %70 ] + %75 = phi i64 [ %.pre.i.i.i9, %74 ], [ %71, %70 ] %76 = load ptr, ptr %15, align 8, !alias.scope !295, !noalias !298, !nonnull !4, !noundef !4 %77 = getelementptr inbounds i8, ptr %76, i64 %75 store i8 93, ptr %77, align 1, !noalias !298 @@ -3297,11 +3297,11 @@ _ZN10pdf_writer6object4Dict6insert17hbdd766f8807bb414E.llvm.9476733087058070434. store i64 %1, ptr %.sroa.5.0..sroa_idx.i, align 8, !noalias !605 br label %52 -52: ; preds = %.noexc6, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" - %53 = phi i64 [ 0, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ 1, %.noexc6 ] - %54 = phi i1 [ true, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ false, %.noexc6 ] - %exitcond = phi i1 [ false, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ true, %.noexc6 ] - %55 = phi i32 [ 1, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ 2, %.noexc6 ] +52: ; preds = %.noexc7, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" + %53 = phi i64 [ 0, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ 1, %.noexc7 ] + %54 = phi i1 [ true, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ false, %.noexc7 ] + %exitcond = phi i1 [ false, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ true, %.noexc7 ] + %55 = phi i32 [ 1, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ 2, %.noexc7 ] %56 = getelementptr inbounds nuw float, ptr %.sroa.5.0..sroa_idx.i, i64 %53 %57 = load float, ptr %56, align 4, !alias.scope !608, !noalias !605, !noundef !4 br i1 %54, label %_ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.9476733087058070434.exit.i.i, label %58 @@ -3332,9 +3332,9 @@ _ZN10pdf_writer6object4Dict6insert17hbdd766f8807bb414E.llvm.9476733087058070434. _ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.9476733087058070434.exit.i.i: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit.i.i", %52 invoke void @"_ZN53_$LT$f32$u20$as$u20$pdf_writer..object..Primitive$GT$5write17h9f0f42301bbc2773E.llvm.9476733087058070434"(float noundef %57, ptr noalias noundef nonnull align 8 dereferenceable(24) %8) - to label %.noexc6 unwind label %67 + to label %.noexc7 unwind label %67 -.noexc6: ; preds = %_ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.9476733087058070434.exit.i.i +.noexc7: ; preds = %_ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.9476733087058070434.exit.i.i br i1 %exitcond, label %70, label %52 67: ; preds = %_ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.9476733087058070434.exit.i.i, %.noexc.i @@ -3345,7 +3345,7 @@ _ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.947673308705807043 invoke void @"_ZN4core3ptr46drop_in_place$LT$pdf_writer..object..Array$GT$17h5fab74e1742e36b0E.llvm.9476733087058070434"(ptr noalias noundef nonnull align 8 dereferenceable(16) %4) #28 to label %82 unwind label %80 -70: ; preds = %.noexc6 +70: ; preds = %.noexc7 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !605 %71 = load i64, ptr %9, align 8, !alias.scope !617, !noalias !620, !noundef !4 %72 = load i64, ptr %8, align 8, !alias.scope !617, !noalias !620, !noundef !4 @@ -3354,11 +3354,11 @@ _ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.947673308705807043 74: ; preds = %70 tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hac19cc53fa7490beE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %71), !noalias !620 - %.pre.i.i.i8 = load i64, ptr %9, align 8, !alias.scope !617, !noalias !620 + %.pre.i.i.i9 = load i64, ptr %9, align 8, !alias.scope !617, !noalias !620 br label %"_ZN4core3ptr46drop_in_place$LT$pdf_writer..object..Array$GT$17h5fab74e1742e36b0E.llvm.9476733087058070434.exit" "_ZN4core3ptr46drop_in_place$LT$pdf_writer..object..Array$GT$17h5fab74e1742e36b0E.llvm.9476733087058070434.exit": ; preds = %70, %74 - %75 = phi i64 [ %.pre.i.i.i8, %74 ], [ %71, %70 ] + %75 = phi i64 [ %.pre.i.i.i9, %74 ], [ %71, %70 ] %76 = load ptr, ptr %15, align 8, !alias.scope !617, !noalias !620, !nonnull !4, !noundef !4 %77 = getelementptr inbounds i8, ptr %76, i64 %75 store i8 93, ptr %77, align 1, !noalias !620 @@ -5758,25 +5758,25 @@ switch.lookup: ; preds = %7 %switch.downshift = lshr i64 432912912328295424, %switch.shiftamt %switch.masked = trunc i64 %switch.downshift to i8 %20 = shl nuw nsw i8 %6, 3 - %switch.shiftamt121 = zext nneg i8 %20 to i64 - %switch.downshift122 = lshr i64 1157442765274482696, %switch.shiftamt121 - %switch.masked123 = trunc i64 %switch.downshift122 to i8 + %switch.shiftamt120 = zext nneg i8 %20 to i64 + %switch.downshift121 = lshr i64 1157442765274482696, %switch.shiftamt120 + %switch.masked122 = trunc i64 %switch.downshift121 to i8 %21 = getelementptr inbounds nuw i8, ptr %1, i64 9 %22 = load i8, ptr %21, align 1, !range !741, !noundef !4 %switch.selectcmp = icmp eq i8 %22, 2 %switch.select = select i1 %switch.selectcmp, i8 2, i8 1 - %switch.selectcmp76 = icmp eq i8 %22, 0 - %switch.select77 = select i1 %switch.selectcmp76, i8 0, i8 %switch.select + %switch.selectcmp75 = icmp eq i8 %22, 0 + %switch.select76 = select i1 %switch.selectcmp75, i8 0, i8 %switch.select %23 = getelementptr inbounds nuw i8, ptr %1, i64 8 %24 = load i8, ptr %23, align 8, !range !1053, !noundef !4 %25 = shl nuw nsw i8 %24, 3 - %switch.shiftamt126 = zext nneg i8 %25 to i48 - %switch.downshift127 = lshr i48 1116741959936, %switch.shiftamt126 - %switch.masked128 = trunc i48 %switch.downshift127 to i8 + %switch.shiftamt125 = zext nneg i8 %25 to i48 + %switch.downshift126 = lshr i48 1116741959936, %switch.shiftamt125 + %switch.masked127 = trunc i48 %switch.downshift126 to i8 %26 = shl nuw nsw i8 %24, 3 - %switch.shiftamt130 = zext nneg i8 %26 to i48 - %switch.downshift131 = lshr i48 4311810305, %switch.shiftamt130 - %switch.masked132 = trunc i48 %switch.downshift131 to i8 + %switch.shiftamt129 = zext nneg i8 %26 to i48 + %switch.downshift130 = lshr i48 4311810305, %switch.shiftamt129 + %switch.masked131 = trunc i48 %switch.downshift130 to i8 %27 = load ptr, ptr %1, align 8, !nonnull !4, !align !6, !noundef !4 call void @llvm.lifetime.start.p0(ptr nonnull %15) call void @llvm.lifetime.start.p0(ptr nonnull %14) @@ -5821,23 +5821,21 @@ switch.lookup: ; preds = %7 %.sroa.011.sroa.16.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 292 store i8 0, ptr %.sroa.011.sroa.16.0..sroa_idx, align 4 %.sroa.512.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 293 - store i8 %switch.select77, ptr %.sroa.512.0..sroa_idx, align 1 + store i8 %switch.select76, ptr %.sroa.512.0..sroa_idx, align 1 %.sroa.615.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 294 store i8 4, ptr %.sroa.615.0..sroa_idx, align 2 %.sroa.618.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 295 store i8 %switch.masked, ptr %.sroa.618.0..sroa_idx, align 1 %.sroa.721.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 296 - store i8 %switch.masked123, ptr %.sroa.721.0..sroa_idx, align 8 + store i8 %switch.masked122, ptr %.sroa.721.0..sroa_idx, align 8 %.sroa.825.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 304 store ptr %27, ptr %.sroa.825.0..sroa_idx, align 8 %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 312 - store i8 %switch.masked132, ptr %.sroa.9.0..sroa_idx, align 8 + store i8 %switch.masked131, ptr %.sroa.9.0..sroa_idx, align 8 %.sroa.11.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 313 - store i8 0, ptr %.sroa.11.0..sroa_idx, align 1 - %.sroa.11.sroa.5.0..sroa.11.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 314 - store i8 0, ptr %.sroa.11.sroa.5.0..sroa.11.0..sroa_idx.sroa_idx, align 2 + store i16 0, ptr %.sroa.11.0..sroa_idx, align 1 %.sroa.1126.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 315 - store i8 %switch.masked128, ptr %.sroa.1126.0..sroa_idx, align 1 + store i8 %switch.masked127, ptr %.sroa.1126.0..sroa_idx, align 1 call void @"_ZN3png7encoder16Encoder$LT$W$GT$12write_header17hb102e0c8f7f16fabE"(ptr noalias noundef nonnull sret({ [4 x i32], i32, [15 x i32] }) align 8 captures(none) dereferenceable(80) %14, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(320) %13) call void @llvm.lifetime.end.p0(ptr nonnull %13) tail call void @llvm.experimental.noalias.scope.decl(metadata !1054) @@ -5848,18 +5846,18 @@ switch.lookup: ; preds = %7 br i1 %30, label %32, label %31 31: ; preds = %switch.lookup - %.sroa.4.8.copyload80 = load i8, ptr %14, align 8, !alias.scope !1060 - %.sroa.8.8..sroa_idx82 = getelementptr inbounds nuw i8, ptr %14, i64 1 - %.sroa.498.0..sroa_idx = getelementptr inbounds nuw i8, ptr %15, i64 1 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.498.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.8.8..sroa_idx82, i64 7, i1 false) - %.sroa.884.8..sroa_idx85 = getelementptr inbounds nuw i8, ptr %14, i64 8 - %.sroa.884.8.copyload86 = load ptr, ptr %.sroa.884.8..sroa_idx85, align 8, !alias.scope !1060 - %.sroa.6100.0..sroa_idx = getelementptr inbounds nuw i8, ptr %15, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %.sroa.6100.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(64) %28, i64 64, i1 false) + %.sroa.4.8.copyload79 = load i8, ptr %14, align 8, !alias.scope !1060 + %.sroa.8.8..sroa_idx81 = getelementptr inbounds nuw i8, ptr %14, i64 1 + %.sroa.497.0..sroa_idx = getelementptr inbounds nuw i8, ptr %15, i64 1 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.497.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.8.8..sroa_idx81, i64 7, i1 false) + %.sroa.883.8..sroa_idx84 = getelementptr inbounds nuw i8, ptr %14, i64 8 + %.sroa.883.8.copyload85 = load ptr, ptr %.sroa.883.8..sroa_idx84, align 8, !alias.scope !1060 + %.sroa.699.0..sroa_idx = getelementptr inbounds nuw i8, ptr %15, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %.sroa.699.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(64) %28, i64 64, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %14) - store i8 %.sroa.4.8.copyload80, ptr %15, align 8 - %.sroa.599.0..sroa_idx = getelementptr inbounds nuw i8, ptr %15, i64 8 - store ptr %.sroa.884.8.copyload86, ptr %.sroa.599.0..sroa_idx, align 8 + store i8 %.sroa.4.8.copyload79, ptr %15, align 8 + %.sroa.598.0..sroa_idx = getelementptr inbounds nuw i8, ptr %15, i64 8 + store ptr %.sroa.883.8.copyload85, ptr %.sroa.598.0..sroa_idx, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %12) invoke void @"_ZN3png7encoder15Writer$LT$W$GT$16write_image_data17h0b1b35cab97cc162E"(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %12, ptr noalias noundef nonnull align 8 dereferenceable(80) %15, ptr noalias noundef nonnull readonly align 1 %2, i64 noundef %3) to label %37 unwind label %35 @@ -5898,8 +5896,8 @@ switch.lookup: ; preds = %7 .noexc: ; preds = %40 call void @llvm.lifetime.end.p0(ptr nonnull %10), !noalias !1070 - %.sroa.41.0..sroa_idx.i79 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %41, ptr %.sroa.41.0..sroa_idx.i79, align 8, !alias.scope !1064, !noalias !1067 + %.sroa.41.0..sroa_idx.i78 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store ptr %41, ptr %.sroa.41.0..sroa_idx.i78, align 8, !alias.scope !1064, !noalias !1067 br label %42 42: ; preds = %.noexc, %37 diff --git a/bench/unicode-normalization-rs/optimized/2dhzw0mhmvlvodqn.ll b/bench/unicode-normalization-rs/optimized/2dhzw0mhmvlvodqn.ll index ec5995d22da..fec77ee2574 100644 --- a/bench/unicode-normalization-rs/optimized/2dhzw0mhmvlvodqn.ll +++ b/bench/unicode-normalization-rs/optimized/2dhzw0mhmvlvodqn.ll @@ -221,20 +221,20 @@ define { ptr, i64 } @_ZN21unicode_normalization7lookups26canonical_fully_decompo %15 = mul nuw nsw i64 %14, 2061 %16 = lshr i64 %15, 32 %17 = getelementptr inbounds nuw { i32, { i16, i16 } }, ptr @anon.1bf8cbd9db60c063894021140588f89d.5.llvm.3355593342274400970, i64 %16 - %.sroa.03.0.copyload.i = load i64, ptr %17, align 4, !alias.scope !19, !noalias !16 - %.sroa.01.0.extract.trunc.i.i.i = trunc i64 %.sroa.03.0.copyload.i to i32 + %.sroa.02.0.copyload.i = load i64, ptr %17, align 4, !alias.scope !19, !noalias !16 + %.sroa.01.0.extract.trunc.i.i.i = trunc i64 %.sroa.02.0.copyload.i to i32 %18 = icmp eq i32 %0, %.sroa.01.0.extract.trunc.i.i.i br i1 %18, label %_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit, label %_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit.thread _ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit: ; preds = %1 - %19 = lshr i64 %.sroa.03.0.copyload.i, 32 + %19 = lshr i64 %.sroa.02.0.copyload.i, 32 %.2.extract.trunc = trunc i64 %19 to i16 %20 = and i64 %19, 65535 %21 = icmp ugt i16 %.2.extract.trunc, 3406 br i1 %21, label %26, label %22 22: ; preds = %_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit - %.4.extract.shift8 = lshr i64 %.sroa.03.0.copyload.i, 48 + %.4.extract.shift8 = lshr i64 %.sroa.02.0.copyload.i, 48 %23 = sub nuw nsw i64 3406, %20 %24 = icmp samesign ult i64 %23, %.4.extract.shift8 br i1 %24, label %25, label %"_ZN21unicode_normalization7lookups26canonical_fully_decomposed28_$u7b$$u7b$closure$u7d$$u7d$17h8e2d0b0857b7106bE.llvm.3355593342274400970.exit" @@ -306,20 +306,20 @@ define { ptr, i64 } @_ZN21unicode_normalization7lookups30compatibility_fully_dec %15 = mul nuw nsw i64 %14, 3812 %16 = lshr i64 %15, 32 %17 = getelementptr inbounds nuw { i32, { i16, i16 } }, ptr @anon.1bf8cbd9db60c063894021140588f89d.11.llvm.3355593342274400970, i64 %16 - %.sroa.03.0.copyload.i = load i64, ptr %17, align 4, !alias.scope !30, !noalias !27 - %.sroa.01.0.extract.trunc.i.i.i = trunc i64 %.sroa.03.0.copyload.i to i32 + %.sroa.02.0.copyload.i = load i64, ptr %17, align 4, !alias.scope !30, !noalias !27 + %.sroa.01.0.extract.trunc.i.i.i = trunc i64 %.sroa.02.0.copyload.i to i32 %18 = icmp eq i32 %0, %.sroa.01.0.extract.trunc.i.i.i br i1 %18, label %_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit, label %_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit.thread _ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit: ; preds = %1 - %19 = lshr i64 %.sroa.03.0.copyload.i, 32 + %19 = lshr i64 %.sroa.02.0.copyload.i, 32 %.2.extract.trunc = trunc i64 %19 to i16 %20 = and i64 %19, 65535 %21 = icmp ugt i16 %.2.extract.trunc, 5735 br i1 %21, label %26, label %22 22: ; preds = %_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit - %.4.extract.shift8 = lshr i64 %.sroa.03.0.copyload.i, 48 + %.4.extract.shift8 = lshr i64 %.sroa.02.0.copyload.i, 48 %23 = sub nuw nsw i64 5735, %20 %24 = icmp samesign ult i64 %23, %.4.extract.shift8 br i1 %24, label %25, label %"_ZN21unicode_normalization7lookups30compatibility_fully_decomposed28_$u7b$$u7b$closure$u7d$$u7d$17h1cb84bb88a75d1a0E.llvm.3355593342274400970.exit" @@ -391,20 +391,20 @@ define { ptr, i64 } @_ZN21unicode_normalization7lookups36cjk_compat_variants_ful %15 = mul nuw nsw i64 %14, 1002 %16 = lshr i64 %15, 32 %17 = getelementptr inbounds nuw { i32, { i16, i16 } }, ptr @anon.1bf8cbd9db60c063894021140588f89d.16, i64 %16 - %.sroa.03.0.copyload.i = load i64, ptr %17, align 4, !alias.scope !41, !noalias !38 - %.sroa.01.0.extract.trunc.i.i.i = trunc i64 %.sroa.03.0.copyload.i to i32 + %.sroa.02.0.copyload.i = load i64, ptr %17, align 4, !alias.scope !41, !noalias !38 + %.sroa.01.0.extract.trunc.i.i.i = trunc i64 %.sroa.02.0.copyload.i to i32 %18 = icmp eq i32 %0, %.sroa.01.0.extract.trunc.i.i.i br i1 %18, label %_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit, label %_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit.thread _ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit: ; preds = %1 - %19 = lshr i64 %.sroa.03.0.copyload.i, 32 + %19 = lshr i64 %.sroa.02.0.copyload.i, 32 %.2.extract.trunc = trunc i64 %19 to i16 %20 = and i64 %19, 65535 %21 = icmp ugt i16 %.2.extract.trunc, 2004 br i1 %21, label %26, label %22 22: ; preds = %_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit - %.4.extract.shift8 = lshr i64 %.sroa.03.0.copyload.i, 48 + %.4.extract.shift8 = lshr i64 %.sroa.02.0.copyload.i, 48 %23 = sub nuw nsw i64 2004, %20 %24 = icmp samesign ult i64 %23, %.4.extract.shift8 br i1 %24, label %25, label %"_ZN21unicode_normalization7lookups36cjk_compat_variants_fully_decomposed28_$u7b$$u7b$closure$u7d$$u7d$17h11e9bd9139359a17E.exit" @@ -554,8 +554,8 @@ define hidden i48 @_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5 26: ; preds = %14 %27 = getelementptr inbounds nuw { i32, { i16, i16 } }, ptr %3, i64 %23 - %.sroa.03.0.copyload = load i64, ptr %27, align 4 - %.sroa.01.0.extract.trunc.i.i = trunc i64 %.sroa.03.0.copyload to i32 + %.sroa.02.0.copyload = load i64, ptr %27, align 4 + %.sroa.01.0.extract.trunc.i.i = trunc i64 %.sroa.02.0.copyload to i32 %28 = icmp eq i32 %0, %.sroa.01.0.extract.trunc.i.i br i1 %28, label %30, label %33 @@ -564,10 +564,10 @@ define hidden i48 @_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5 unreachable 30: ; preds = %26 - %sh.diff.i.i = lshr i64 %.sroa.03.0.copyload, 16 + %sh.diff.i.i = lshr i64 %.sroa.02.0.copyload, 16 %tr.sh.diff.i.i = trunc nuw i64 %sh.diff.i.i to i48 %.sroa.3.0.insert.shift.i.i = and i48 %tr.sh.diff.i.i, -4294967296 - %31 = trunc i64 %.sroa.03.0.copyload to i48 + %31 = trunc i64 %.sroa.02.0.copyload to i48 %32 = lshr i48 %31, 16 %.sroa.23.0.insert.shift.i.i = and i48 %32, 4294901760 %.sroa.23.0.insert.insert.i.i = or disjoint i48 %.sroa.23.0.insert.shift.i.i, %.sroa.3.0.insert.shift.i.i diff --git a/bench/velox/optimized/AllocationPool.ll b/bench/velox/optimized/AllocationPool.ll index 628dc591c7e..15adbe88fe2 100644 --- a/bench/velox/optimized/AllocationPool.ll +++ b/bench/velox/optimized/AllocationPool.ll @@ -105,12 +105,10 @@ if.end.i: ; preds = %if.then15 _ZNOSt8optionalIN5folly5RangeIPcEEE5valueEv.exit: ; preds = %if.then15 %range.sroa.0.0.copyload = load ptr, ptr %ref.tmp, align 8 - %range.sroa.4.0.ref.tmp.sroa_idx = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 8 - %range.sroa.4.0.copyload = load ptr, ptr %range.sroa.4.0.ref.tmp.sroa_idx, align 8 %startOfRun_20 = getelementptr inbounds nuw i8, ptr %this, i64 56 %10 = load ptr, ptr %startOfRun_20, align 8 %cmp21 = icmp eq ptr %range.sroa.0.0.copyload, %10 - br i1 %cmp21, label %if.then22, label %return + br i1 %cmp21, label %if.then22, label %if.end25 if.then22: ; preds = %_ZNOSt8optionalIN5folly5RangeIPcEEE5valueEv.exit %currentOffset_24 = getelementptr inbounds nuw i8, ptr %this, i64 72 @@ -118,13 +116,19 @@ if.then22: ; preds = %_ZNOSt8optionalIN5f %add.ptr.i18 = getelementptr inbounds i8, ptr %range.sroa.0.0.copyload, i64 %11 br label %return +if.end25: ; preds = %_ZNOSt8optionalIN5folly5RangeIPcEEE5valueEv.exit + %range.sroa.4.0.ref.tmp.sroa_idx = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 8 + %range.sroa.4.0.copyload = load i64, ptr %range.sroa.4.0.ref.tmp.sroa_idx, align 8 + %12 = inttoptr i64 %range.sroa.4.0.copyload to ptr + br label %return + if.end26: ; preds = %if.end tail call void @llvm.trap() unreachable -return: ; preds = %_ZNOSt8optionalIN5folly5RangeIPcEEE5valueEv.exit, %if.then22, %if.then - %retval.sroa.0.0 = phi ptr [ %3, %if.then ], [ %range.sroa.0.0.copyload, %if.then22 ], [ %range.sroa.0.0.copyload, %_ZNOSt8optionalIN5folly5RangeIPcEEE5valueEv.exit ] - %retval.sroa.4.0 = phi ptr [ %add.ptr.i5, %if.then ], [ %add.ptr.i18, %if.then22 ], [ %range.sroa.4.0.copyload, %_ZNOSt8optionalIN5folly5RangeIPcEEE5valueEv.exit ] +return: ; preds = %if.end25, %if.then22, %if.then + %retval.sroa.0.0 = phi ptr [ %3, %if.then ], [ %range.sroa.0.0.copyload, %if.then22 ], [ %range.sroa.0.0.copyload, %if.end25 ] + %retval.sroa.4.0 = phi ptr [ %add.ptr.i5, %if.then ], [ %add.ptr.i18, %if.then22 ], [ %12, %if.end25 ] %.fca.0.insert = insertvalue { ptr, ptr } poison, ptr %retval.sroa.0.0, 0 %.fca.1.insert = insertvalue { ptr, ptr } %.fca.0.insert, ptr %retval.sroa.4.0, 1 ret { ptr, ptr } %.fca.1.insert diff --git a/bench/wasmi-rs/optimized/1z05d6joihj04oihu2i4irshf.ll b/bench/wasmi-rs/optimized/1z05d6joihj04oihu2i4irshf.ll index 229f999d321..8dfe3fd802e 100644 --- a/bench/wasmi-rs/optimized/1z05d6joihj04oihu2i4irshf.ll +++ b/bench/wasmi-rs/optimized/1z05d6joihj04oihu2i4irshf.ll @@ -5704,8 +5704,8 @@ define internal fastcc noundef ptr @_ZN10wasmi_wast10WastRunner6invoke17h0d7c95d 63: ; preds = %54 %64 = getelementptr inbounds nuw i8, ptr %.sroa.05.013.i, i64 8 %65 = load i64, ptr %64, align 8, !alias.scope !377, !noalias !378, !noundef !9 - %.sroa.18.sroa.0.0.extract.trunc1.i.i = trunc i64 %65 to i32 - %.sroa.18.sroa.10.0.extract.shift3.i.i = and i64 %65, -4294967296 + %.sroa.18.sroa.0.0.extract.trunc2.i.i = trunc i64 %65 to i32 + %.sroa.18.sroa.10.0.extract.shift4.i.i = and i64 %65, -4294967296 br label %94 66: ; preds = %54 @@ -5716,8 +5716,8 @@ define internal fastcc noundef ptr @_ZN10wasmi_wast10WastRunner6invoke17h0d7c95d 69: ; preds = %54 %70 = getelementptr inbounds nuw i8, ptr %.sroa.05.013.i, i64 8 %71 = load i64, ptr %70, align 8, !alias.scope !377, !noalias !378, !noundef !9 - %.sroa.18.sroa.0.0.extract.trunc2.i.i = trunc i64 %71 to i32 - %.sroa.18.sroa.10.0.extract.shift5.i.i = and i64 %71, -4294967296 + %.sroa.18.sroa.0.0.extract.trunc3.i.i = trunc i64 %71 to i32 + %.sroa.18.sroa.10.0.extract.shift6.i.i = and i64 %71, -4294967296 br label %94 72: ; preds = %54 @@ -5738,8 +5738,8 @@ define internal fastcc noundef ptr @_ZN10wasmi_wast10WastRunner6invoke17h0d7c95d %.sroa.18.1.copyload.i.i = load i64, ptr %.sroa.18.1..sroa_idx.i.i, align 1, !noalias !381 %.sroa.18.sroa.0.0.extract.trunc.i.i = trunc i64 %.sroa.18.1.copyload.i.i to i32 %.sroa.18.sroa.10.0.extract.shift.i.i = and i64 %.sroa.18.1.copyload.i.i, -4294967296 - %.sroa.23.1.copyload.i.i = load i8, ptr %.sroa.23.1..sroa_idx.i.i, align 1, !noalias !381 - %.sroa.23.1.insert.ext.i.i = zext i8 %.sroa.23.1.copyload.i.i to i64 + %.sroa.23.0.copyload1.i.i = load i8, ptr %.sroa.23.1..sroa_idx.i.i, align 1, !noalias !381 + %.sroa.23.0.insert.ext.i.i = zext i8 %.sroa.23.0.copyload1.i.i to i64 br label %94 75: ; preds = %54 @@ -5784,9 +5784,9 @@ define internal fastcc noundef ptr @_ZN10wasmi_wast10WastRunner6invoke17h0d7c95d br label %94 94: ; preds = %.noexc36, %.noexc35, %.noexc34, %.noexc33, %69, %66, %63, %60 - %.sroa.18.sroa.10.0.i.i = phi i64 [ 0, %60 ], [ %.sroa.18.sroa.10.0.extract.shift3.i.i, %63 ], [ 0, %66 ], [ %.sroa.18.sroa.10.0.extract.shift5.i.i, %69 ], [ %.sroa.18.sroa.10.0.extract.shift.i.i, %.noexc33 ], [ 0, %.noexc35 ], [ 0, %.noexc36 ], [ 0, %.noexc34 ] - %.sroa.18.sroa.0.0.i.i = phi i32 [ undef, %60 ], [ %.sroa.18.sroa.0.0.extract.trunc1.i.i, %63 ], [ undef, %66 ], [ %.sroa.18.sroa.0.0.extract.trunc2.i.i, %69 ], [ %.sroa.18.sroa.0.0.extract.trunc.i.i, %.noexc33 ], [ %89, %.noexc35 ], [ %93, %.noexc36 ], [ %82, %.noexc34 ] - %.sroa.23.0.i.i = phi i64 [ undef, %60 ], [ undef, %63 ], [ undef, %66 ], [ undef, %69 ], [ %.sroa.23.1.insert.ext.i.i, %.noexc33 ], [ undef, %.noexc35 ], [ undef, %.noexc36 ], [ undef, %.noexc34 ] + %.sroa.18.sroa.10.0.i.i = phi i64 [ 0, %60 ], [ %.sroa.18.sroa.10.0.extract.shift4.i.i, %63 ], [ 0, %66 ], [ %.sroa.18.sroa.10.0.extract.shift6.i.i, %69 ], [ %.sroa.18.sroa.10.0.extract.shift.i.i, %.noexc33 ], [ 0, %.noexc35 ], [ 0, %.noexc36 ], [ 0, %.noexc34 ] + %.sroa.18.sroa.0.0.i.i = phi i32 [ undef, %60 ], [ %.sroa.18.sroa.0.0.extract.trunc2.i.i, %63 ], [ undef, %66 ], [ %.sroa.18.sroa.0.0.extract.trunc3.i.i, %69 ], [ %.sroa.18.sroa.0.0.extract.trunc.i.i, %.noexc33 ], [ %89, %.noexc35 ], [ %93, %.noexc36 ], [ %82, %.noexc34 ] + %.sroa.23.0.i.i = phi i64 [ undef, %60 ], [ undef, %63 ], [ undef, %66 ], [ undef, %69 ], [ %.sroa.23.0.insert.ext.i.i, %.noexc33 ], [ undef, %.noexc35 ], [ undef, %.noexc36 ], [ undef, %.noexc34 ] %.sroa.13.0.i.i = phi i32 [ %62, %60 ], [ undef, %63 ], [ %68, %66 ], [ undef, %69 ], [ %.sroa.13.1.copyload.i.i, %.noexc33 ], [ %88, %.noexc35 ], [ %92, %.noexc36 ], [ %81, %.noexc34 ] %.sroa.0.0.i.i = phi i8 [ 0, %60 ], [ 1, %63 ], [ 2, %66 ], [ 3, %69 ], [ 4, %.noexc33 ], [ 5, %.noexc35 ], [ 6, %.noexc36 ], [ 6, %.noexc34 ] call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.2.i, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.12.i.i, i64 3, i1 false), !noalias !372 diff --git a/bench/wasmtime-rs/optimized/1zz7jsxv168dc7km.ll b/bench/wasmtime-rs/optimized/1zz7jsxv168dc7km.ll index 6e3b45fee28..ced9b986cd3 100644 --- a/bench/wasmtime-rs/optimized/1zz7jsxv168dc7km.ll +++ b/bench/wasmtime-rs/optimized/1zz7jsxv168dc7km.ll @@ -2435,7 +2435,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit: ; preds = %1, %11, %9 call void @llvm.lifetime.start.p0(ptr nonnull %3) call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.7) %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - %.sroa.6.0.copyload = load ptr, ptr %.sroa.6.0..sroa_idx, align 8 + %.sroa.6.0.copyload = load i64, ptr %.sroa.6.0..sroa_idx, align 8 %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7.0..sroa_idx, i64 16, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %2), !noalias !140 @@ -2443,7 +2443,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit: ; preds = %1, %11, %9 %.sroa.5.0..sroa_idx3 = getelementptr inbounds nuw i8, ptr %2, i64 8 store i64 %6, ptr %.sroa.5.0..sroa_idx3, align 8, !noalias !151 %.sroa.6.0..sroa_idx5 = getelementptr inbounds nuw i8, ptr %2, i64 16 - store ptr %.sroa.6.0.copyload, ptr %.sroa.6.0..sroa_idx5, align 8, !noalias !151 + store i64 %.sroa.6.0.copyload, ptr %.sroa.6.0..sroa_idx5, align 8, !noalias !151 %.sroa.67.0..sroa_idx8 = getelementptr inbounds nuw i8, ptr %2, i64 24 store i64 %8, ptr %.sroa.67.0..sroa_idx8, align 8, !noalias !151 %.sroa.7.0..sroa_idx10 = getelementptr inbounds nuw i8, ptr %2, i64 32 @@ -3587,7 +3587,7 @@ define { i64, ptr } @_ZN16wasmtime_runtime7threads13shared_memory12SharedMemory4 %18 = getelementptr inbounds nuw i8, ptr %10, i64 24 store i64 0, ptr %18, align 8 %19 = invoke fastcc noundef nonnull ptr @_ZN6anyhow9__private10format_err17hf904e1bf1fa96dd8E(ptr noalias noundef align 8 captures(none) dereferenceable(48) %10) - to label %24 unwind label %.thread48 + to label %24 unwind label %.thread49 20: ; preds = %4 %21 = getelementptr inbounds nuw i8, ptr %0, i64 32 @@ -3595,7 +3595,7 @@ define { i64, ptr } @_ZN16wasmtime_runtime7threads13shared_memory12SharedMemory4 %.not = icmp eq i64 %22, 0 br i1 %.not, label %48, label %44 -.thread48: ; preds = %14, %44, %48, %54, %61 +.thread49: ; preds = %14, %44, %48, %54, %61 %23 = landingpad { ptr, i32 } cleanup br label %.thread @@ -3641,14 +3641,14 @@ define { i64, ptr } @_ZN16wasmtime_runtime7threads13shared_memory12SharedMemory4 br label %"_ZN4core3ptr99drop_in_place$LT$alloc..boxed..Box$LT$dyn$u20$wasmtime_runtime..memory..RuntimeLinearMemory$GT$$GT$17hd6041e714ae6a6cdE.exit" common.resume: ; preds = %.thread, %79, %27, %35 - %common.resume.op = phi { ptr, i32 } [ %28, %35 ], [ %28, %27 ], [ %.pn47, %.thread ], [ %80, %79 ] + %common.resume.op = phi { ptr, i32 } [ %28, %35 ], [ %28, %27 ], [ %.pn48, %.thread ], [ %80, %79 ] resume { ptr, i32 } %common.resume.op 44: ; preds = %20 %45 = getelementptr inbounds nuw i8, ptr %2, i64 72 %46 = load ptr, ptr %45, align 8, !invariant.load !4, !nonnull !4 %47 = invoke { ptr, ptr } %46(ptr noundef nonnull align 1 %1) - to label %54 unwind label %.thread48 + to label %54 unwind label %.thread49 48: ; preds = %20 call void @llvm.lifetime.start.p0(ptr nonnull %9) @@ -3662,7 +3662,7 @@ common.resume: ; preds = %.thread, %79, %27, %52 = getelementptr inbounds nuw i8, ptr %9, i64 24 store i64 0, ptr %52, align 8 %53 = invoke fastcc noundef nonnull ptr @_ZN6anyhow9__private10format_err17hf904e1bf1fa96dd8E(ptr noalias noundef align 8 captures(none) dereferenceable(48) %9) - to label %88 unwind label %.thread48 + to label %88 unwind label %.thread49 54: ; preds = %44 %55 = extractvalue { ptr, ptr } %47, 0 @@ -3670,11 +3670,11 @@ common.resume: ; preds = %.thread, %79, %27, %57 = getelementptr inbounds nuw i8, ptr %56, i64 24 %58 = load ptr, ptr %57, align 8, !invariant.load !4, !nonnull !4 %59 = invoke noundef i128 %58(ptr noundef align 1 %55) - to label %60 unwind label %.thread48 + to label %60 unwind label %.thread49 60: ; preds = %54 - %.not36 = icmp eq i128 %59, -101084004025800487874573260070676418087 - br i1 %.not36, label %61, label %66 + %.not37 = icmp eq i128 %59, -101084004025800487874573260070676418087 + br i1 %.not37, label %61, label %66 61: ; preds = %60 call void @llvm.lifetime.start.p0(ptr nonnull %8) @@ -3688,7 +3688,7 @@ common.resume: ; preds = %.thread, %79, %27, %65 = getelementptr inbounds nuw i8, ptr %8, i64 24 store i64 0, ptr %65, align 8 invoke void @_ZN4core9panicking9panic_fmt17ha6effc2775a0749cE(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %8, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.f3b90557b61ab883507bc0abd2bbf363.148) #30 - to label %69 unwind label %.thread48 + to label %69 unwind label %.thread49 66: ; preds = %60 call void @llvm.lifetime.start.p0(ptr nonnull %7) @@ -3727,9 +3727,11 @@ common.resume: ; preds = %.thread, %79, %27, store i64 1, ptr %73, align 8 %74 = getelementptr inbounds nuw i8, ptr %5, i64 16 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %3, i64 32, i1 false) - %.sroa.05.sroa.0.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 48 + %.sroa.05.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 48 + store i64 0, ptr %.sroa.05.sroa.4.0..sroa_idx, align 8 + %.sroa.05.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 56 + store i8 0, ptr %.sroa.05.sroa.5.0..sroa_idx, align 8 %.sroa.56.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 64 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %.sroa.05.sroa.0.sroa.4.0..sroa_idx, i8 0, i64 9, i1 false) store ptr %1, ptr %.sroa.56.0..sroa_idx, align 8 %.sroa.67.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 72 store ptr %2, ptr %.sroa.67.0..sroa_idx, align 8 @@ -3779,8 +3781,8 @@ common.resume: ; preds = %.thread, %79, %27, call void @llvm.lifetime.end.p0(ptr nonnull %9) br label %25 -.thread: ; preds = %70, %.thread48 - %.pn47 = phi { ptr, i32 } [ %23, %.thread48 ], [ %71, %70 ] +.thread: ; preds = %70, %.thread49 + %.pn48 = phi { ptr, i32 } [ %23, %.thread49 ], [ %71, %70 ] invoke fastcc void @"_ZN4core3ptr99drop_in_place$LT$alloc..boxed..Box$LT$dyn$u20$wasmtime_runtime..memory..RuntimeLinearMemory$GT$$GT$17hd6041e714ae6a6cdE"(ptr nonnull %1, ptr nonnull %2) #33 to label %common.resume unwind label %86 } diff --git a/bench/wasmtime-rs/optimized/22yyfxyxsnty4v9s.ll b/bench/wasmtime-rs/optimized/22yyfxyxsnty4v9s.ll index b163c801eb4..89615e313bf 100644 --- a/bench/wasmtime-rs/optimized/22yyfxyxsnty4v9s.ll +++ b/bench/wasmtime-rs/optimized/22yyfxyxsnty4v9s.ll @@ -16111,7 +16111,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.llvm.15947207822535676624.exit: ; preds call void @llvm.lifetime.start.p0(ptr nonnull %3) call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.7) %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - %.sroa.6.0.copyload = load ptr, ptr %.sroa.6.0..sroa_idx, align 8 + %.sroa.6.0.copyload = load i64, ptr %.sroa.6.0..sroa_idx, align 8 %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7.0..sroa_idx, i64 16, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %2), !noalias !2140 @@ -16119,7 +16119,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.llvm.15947207822535676624.exit: ; preds %.sroa.5.0..sroa_idx3 = getelementptr inbounds nuw i8, ptr %2, i64 8 store i64 %6, ptr %.sroa.5.0..sroa_idx3, align 8, !noalias !2151 %.sroa.6.0..sroa_idx5 = getelementptr inbounds nuw i8, ptr %2, i64 16 - store ptr %.sroa.6.0.copyload, ptr %.sroa.6.0..sroa_idx5, align 8, !noalias !2151 + store i64 %.sroa.6.0.copyload, ptr %.sroa.6.0..sroa_idx5, align 8, !noalias !2151 %.sroa.67.0..sroa_idx8 = getelementptr inbounds nuw i8, ptr %2, i64 24 store i64 %8, ptr %.sroa.67.0..sroa_idx8, align 8, !noalias !2151 %.sroa.7.0..sroa_idx10 = getelementptr inbounds nuw i8, ptr %2, i64 32 @@ -20339,9 +20339,7 @@ define hidden void @_ZN13wasmtime_wasi10filesystem15ReaddirIterator3new17h6c51e6 "_ZN5alloc5boxed12Box$LT$T$GT$3new17hd4b8b10e207159ccE.llvm.15947207822535676624.exit": ; preds = %2 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %1, i64 32, i1 false) - store i32 0, ptr %0, align 8 - %.sroa.0.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 4 - store i8 0, ptr %.sroa.0.sroa.4.0..sroa_idx, align 4 + store i64 0, ptr %0, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %4, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 diff --git a/bench/wasmtime-rs/optimized/2wry4odhn7m84bj2.ll b/bench/wasmtime-rs/optimized/2wry4odhn7m84bj2.ll index 9a93562bf9e..bfe92707a6b 100644 --- a/bench/wasmtime-rs/optimized/2wry4odhn7m84bj2.ll +++ b/bench/wasmtime-rs/optimized/2wry4odhn7m84bj2.ll @@ -24363,7 +24363,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit: ; preds = %1, %11, %9 call void @llvm.lifetime.start.p0(ptr nonnull %3) call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.7) %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - %.sroa.6.0.copyload = load ptr, ptr %.sroa.6.0..sroa_idx, align 8 + %.sroa.6.0.copyload = load i64, ptr %.sroa.6.0..sroa_idx, align 8 %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7.0..sroa_idx, i64 16, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %2), !noalias !3746 @@ -24371,7 +24371,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit: ; preds = %1, %11, %9 %.sroa.5.0..sroa_idx3 = getelementptr inbounds nuw i8, ptr %2, i64 8 store i64 %6, ptr %.sroa.5.0..sroa_idx3, align 8, !noalias !3757 %.sroa.6.0..sroa_idx5 = getelementptr inbounds nuw i8, ptr %2, i64 16 - store ptr %.sroa.6.0.copyload, ptr %.sroa.6.0..sroa_idx5, align 8, !noalias !3757 + store i64 %.sroa.6.0.copyload, ptr %.sroa.6.0..sroa_idx5, align 8, !noalias !3757 %.sroa.67.0..sroa_idx8 = getelementptr inbounds nuw i8, ptr %2, i64 24 store i64 %8, ptr %.sroa.67.0..sroa_idx8, align 8, !noalias !3757 %.sroa.7.0..sroa_idx10 = getelementptr inbounds nuw i8, ptr %2, i64 32 @@ -25124,11 +25124,13 @@ define hidden noundef i8 @"_ZN77_$LT$object..xcoff..Rel64$u20$as$u20$object..rea ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: write) uwtable define hidden void @"_ZN77_$LT$std..sync..rwlock..RwLock$LT$T$GT$$u20$as$u20$core..default..Default$GT$7default17h4a2d2bb3f44d1a19E"(ptr noalias noundef writeonly sret({ { { i32 }, { i32 } }, { { i8 } }, [7 x i8], { { { ptr, [1 x i64] }, i64, { {} }, {} } } }) align 8 captures(none) dereferenceable(40) initializes((0, 9), (16, 24), (32, 40)) %0) unnamed_addr #13 { - %2 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr null, ptr %2, align 8 - %.sroa.02.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 - store i64 0, ptr %.sroa.02.sroa.5.0..sroa_idx, align 8 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %0, i8 0, i64 9, i1 false) + store i64 0, ptr %0, align 8 + %2 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i8 0, ptr %2, align 8 + %3 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr null, ptr %3, align 8 + %.sroa.04.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 + store i64 0, ptr %.sroa.04.sroa.5.0..sroa_idx, align 8 ret void } diff --git a/bench/wasmtime-rs/optimized/3hwarn3zl2ncla2z.ll b/bench/wasmtime-rs/optimized/3hwarn3zl2ncla2z.ll index 7db3f0938e9..91783433340 100644 --- a/bench/wasmtime-rs/optimized/3hwarn3zl2ncla2z.ll +++ b/bench/wasmtime-rs/optimized/3hwarn3zl2ncla2z.ll @@ -9540,7 +9540,7 @@ define void @_ZN11wasi_common5table5Table3new17he834642e3350e2ffE(ptr noalias no "._ZN4core6result19Result$LT$T$C$E$GT$6expect17hffc5c0b5642fd961E.llvm.17575819821291883266.exit_crit_edge": ; preds = %1 %.pre = load i64, ptr getelementptr inbounds nuw (i8, ptr @_ZN3std4hash6random11RandomState3new4KEYS7__getit5__KEY17hc99e64f5c8d1830fE, i64 8), align 8, !noalias !3074 - %.pre18 = load i64, ptr getelementptr inbounds nuw (i8, ptr @_ZN3std4hash6random11RandomState3new4KEYS7__getit5__KEY17hc99e64f5c8d1830fE, i64 16), align 8, !noalias !3074 + %.pre17 = load i64, ptr getelementptr inbounds nuw (i8, ptr @_ZN3std4hash6random11RandomState3new4KEYS7__getit5__KEY17hc99e64f5c8d1830fE, i64 16), align 8, !noalias !3074 br label %"_ZN4core6result19Result$LT$T$C$E$GT$6expect17hffc5c0b5642fd961E.llvm.17575819821291883266.exit" 3: ; preds = %1 @@ -9552,14 +9552,16 @@ define void @_ZN11wasi_common5table5Table3new17he834642e3350e2ffE(ptr noalias no br label %"_ZN4core6result19Result$LT$T$C$E$GT$6expect17hffc5c0b5642fd961E.llvm.17575819821291883266.exit" "_ZN4core6result19Result$LT$T$C$E$GT$6expect17hffc5c0b5642fd961E.llvm.17575819821291883266.exit": ; preds = %"._ZN4core6result19Result$LT$T$C$E$GT$6expect17hffc5c0b5642fd961E.llvm.17575819821291883266.exit_crit_edge", %3 - %7 = phi i64 [ %.pre18, %"._ZN4core6result19Result$LT$T$C$E$GT$6expect17hffc5c0b5642fd961E.llvm.17575819821291883266.exit_crit_edge" ], [ %6, %3 ] + %7 = phi i64 [ %.pre17, %"._ZN4core6result19Result$LT$T$C$E$GT$6expect17hffc5c0b5642fd961E.llvm.17575819821291883266.exit_crit_edge" ], [ %6, %3 ] %8 = phi i64 [ %.pre, %"._ZN4core6result19Result$LT$T$C$E$GT$6expect17hffc5c0b5642fd961E.llvm.17575819821291883266.exit_crit_edge" ], [ %5, %3 ] %9 = add i64 %8, 1 store i64 %9, ptr getelementptr inbounds nuw (i8, ptr @_ZN3std4hash6random11RandomState3new4KEYS7__getit5__KEY17hc99e64f5c8d1830fE, i64 8), align 8, !noalias !3074 %.sroa.59.sroa.0.7..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.59.sroa.0, i64 7 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %.sroa.59.sroa.0.7..sroa_idx, ptr noundef nonnull align 8 dereferenceable(32) @anon.bf6d5467f4e221758038f393bad32ebf.55.llvm.17575819821291883266, i64 32, i1 false) + store i64 0, ptr %0, align 8 + %.sroa.48.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i8 0, ptr %.sroa.48.0..sroa_idx, align 8 %.sroa.59.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 9 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %0, i8 0, i64 9, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(39) %.sroa.59.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(39) %.sroa.59.sroa.0, i64 39, i1 false) %.sroa.59.sroa.4.0..sroa.59.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 48 store i64 %8, ptr %.sroa.59.sroa.4.0..sroa.59.0..sroa_idx.sroa_idx, align 8 diff --git a/bench/wasmtime-rs/optimized/47jrn73ttlkllmrg.ll b/bench/wasmtime-rs/optimized/47jrn73ttlkllmrg.ll index f06eeef1b75..04565139457 100644 --- a/bench/wasmtime-rs/optimized/47jrn73ttlkllmrg.ll +++ b/bench/wasmtime-rs/optimized/47jrn73ttlkllmrg.ll @@ -2000,8 +2000,10 @@ define { ptr, i1 } @_ZN11wasi_common4sync14WasiCtxBuilder3new17hd9a4710b81612b7c call void @llvm.lifetime.end.p0(ptr nonnull %2), !noalias !180 %.sroa.59.sroa.0.7..sroa_idx.i = getelementptr inbounds nuw i8, ptr %.sroa.59.sroa.0.i, i64 7 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %.sroa.59.sroa.0.7..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(32) @anon.bf6d5467f4e221758038f393bad32ebf.55.llvm.17575819821291883266, i64 32, i1 false), !noalias !180 + store i64 0, ptr %5, align 8, !alias.scope !180 + %.sroa.48.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 8 + store i8 0, ptr %.sroa.48.0..sroa_idx.i, align 8, !alias.scope !180 %.sroa.59.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 9 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %5, i8 0, i64 9, i1 false), !alias.scope !180 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(39) %.sroa.59.0..sroa_idx.i, ptr noundef nonnull align 1 dereferenceable(39) %.sroa.59.sroa.0.i, i64 39, i1 false) %.sroa.59.sroa.4.0..sroa.59.0..sroa_idx.sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 48 store i64 %16, ptr %.sroa.59.sroa.4.0..sroa.59.0..sroa_idx.sroa_idx.i, align 8, !alias.scope !180 @@ -6935,7 +6937,7 @@ _ZN11wasi_common5sched12subscription14RwSubscription5error17he1b92eb4753cb17aE.e ._crit_edge.i.i: ; preds = %434 %.pre.i.i = load ptr, ptr %57, align 8, !alias.scope !1080 - %.pre3.i.i = add i64 %435, 1 + %.pre5.i.i = add i64 %435, 1 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h59e7b7c493b16d9eE.exit.i" 438: ; preds = %434 @@ -7001,7 +7003,7 @@ _ZN5alloc7raw_vec11finish_grow17h5dc0bd592416ad76E.exit.i.i.i.i: ; preds = %452, br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h59e7b7c493b16d9eE.exit.i" "_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h59e7b7c493b16d9eE.exit.i": ; preds = %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hc4baa36907a33654E.exit.i.i", %._crit_edge.i.i - %.pre-phi.i.i = phi i64 [ %.pre3.i.i, %._crit_edge.i.i ], [ %442, %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hc4baa36907a33654E.exit.i.i" ] + %.pre-phi.i.i = phi i64 [ %.pre5.i.i, %._crit_edge.i.i ], [ %442, %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hc4baa36907a33654E.exit.i.i" ] %455 = phi ptr [ %.pre.i.i, %._crit_edge.i.i ], [ %.sroa.012.1.i.i.pn.i.i.i.i.i, %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hc4baa36907a33654E.exit.i.i" ] %456 = getelementptr inbounds { i32, i16, i16 }, ptr %455, i64 %435 store i64 %.sroa.0.0.insert.insert.i.i, ptr %456, align 4, !noalias !1080 @@ -7104,7 +7106,7 @@ _ZN5alloc7raw_vec11finish_grow17h5dc0bd592416ad76E.exit.i.i.i.i: ; preds = %452, ._crit_edge.i257.i: ; preds = %480 %.pre.i259.i = load ptr, ptr %57, align 8, !alias.scope !1111 - %.pre3.i260.i = add i64 %481, 1 + %.pre5.i260.i = add i64 %481, 1 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h59e7b7c493b16d9eE.exit275.i" 484: ; preds = %480 @@ -7170,7 +7172,7 @@ _ZN5alloc7raw_vec11finish_grow17h5dc0bd592416ad76E.exit.i.i.i266.i: ; preds = %4 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h59e7b7c493b16d9eE.exit275.i" "_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h59e7b7c493b16d9eE.exit275.i": ; preds = %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hc4baa36907a33654E.exit.i269.i", %._crit_edge.i257.i - %.pre-phi.i261.i = phi i64 [ %.pre3.i260.i, %._crit_edge.i257.i ], [ %488, %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hc4baa36907a33654E.exit.i269.i" ] + %.pre-phi.i261.i = phi i64 [ %.pre5.i260.i, %._crit_edge.i257.i ], [ %488, %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hc4baa36907a33654E.exit.i269.i" ] %501 = phi ptr [ %.pre.i259.i, %._crit_edge.i257.i ], [ %.sroa.012.1.i.i.pn.i.i.i.i267.i, %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hc4baa36907a33654E.exit.i269.i" ] %502 = getelementptr inbounds { i32, i16, i16 }, ptr %501, i64 %481 store i64 %.sroa.0.0.insert.insert.i256.i, ptr %502, align 4, !noalias !1111 diff --git a/bench/wasmtime-rs/optimized/cxg2cx8gn6v5trt.ll b/bench/wasmtime-rs/optimized/cxg2cx8gn6v5trt.ll index b78fdeaad76..d5fc120ea77 100644 --- a/bench/wasmtime-rs/optimized/cxg2cx8gn6v5trt.ll +++ b/bench/wasmtime-rs/optimized/cxg2cx8gn6v5trt.ll @@ -2652,8 +2652,10 @@ define hidden noalias noundef nonnull ptr @"_ZN11wasi_common4pipe17ReadPipe$LT$R %3 = getelementptr inbounds nuw i8, ptr %2, i64 8 store i64 1, ptr %3, align 8 %4 = getelementptr inbounds nuw i8, ptr %2, i64 16 + store i64 0, ptr %4, align 8 + %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 24 + store i8 0, ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 25 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %4, i8 0, i64 9, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(39) %.sroa.5.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(39) %.sroa.5, i64 39, i1 false) %5 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !240 %6 = tail call noundef align 8 dereferenceable_or_null(64) ptr @__rust_alloc(i64 noundef 64, i64 noundef 8) #28, !noalias !240 @@ -2703,10 +2705,12 @@ define hidden noalias noundef nonnull ptr @"_ZN11wasi_common4pipe17ReadPipe$LT$R _ZN5alloc5alloc15exchange_malloc17he27dc27497df8aaaE.llvm.7437452962731462277.exit: ; preds = %0 store i64 1, ptr %2, align 8 - %.sroa.4.0..sroa_idx13 = getelementptr inbounds nuw i8, ptr %2, i64 8 - store i64 1, ptr %.sroa.4.0..sroa_idx13, align 8 + %.sroa.4.0..sroa_idx12 = getelementptr inbounds nuw i8, ptr %2, i64 8 + store i64 1, ptr %.sroa.4.0..sroa_idx12, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %.sroa.5.0..sroa_idx, i8 0, i64 9, i1 false) + store i64 0, ptr %.sroa.5.0..sroa_idx, align 8 + %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 24 + store i8 0, ptr %.sroa.6.0..sroa_idx, align 8 ret ptr %2 } @@ -2722,8 +2726,10 @@ define hidden noalias noundef nonnull ptr @"_ZN11wasi_common4pipe17ReadPipe$LT$R %3 = getelementptr inbounds nuw i8, ptr %2, i64 8 store i64 1, ptr %3, align 8 %4 = getelementptr inbounds nuw i8, ptr %2, i64 16 + store i64 0, ptr %4, align 8 + %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 24 + store i8 0, ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 25 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %4, i8 0, i64 9, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(39) %.sroa.5.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(39) %.sroa.5, i64 39, i1 false) %5 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !246 %6 = tail call noundef align 8 dereferenceable_or_null(64) ptr @__rust_alloc(i64 noundef 64, i64 noundef 8) #28, !noalias !246 @@ -2773,10 +2779,12 @@ define hidden noalias noundef nonnull ptr @"_ZN11wasi_common4pipe18WritePipe$LT$ _ZN5alloc5alloc15exchange_malloc17he27dc27497df8aaaE.llvm.7437452962731462277.exit: ; preds = %0 store i64 1, ptr %2, align 8 - %.sroa.4.0..sroa_idx13 = getelementptr inbounds nuw i8, ptr %2, i64 8 - store i64 1, ptr %.sroa.4.0..sroa_idx13, align 8 + %.sroa.4.0..sroa_idx12 = getelementptr inbounds nuw i8, ptr %2, i64 8 + store i64 1, ptr %.sroa.4.0..sroa_idx12, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %.sroa.5.0..sroa_idx, i8 0, i64 9, i1 false) + store i64 0, ptr %.sroa.5.0..sroa_idx, align 8 + %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 24 + store i8 0, ptr %.sroa.6.0..sroa_idx, align 8 ret ptr %2 } @@ -2792,8 +2800,10 @@ define hidden noalias noundef nonnull ptr @"_ZN11wasi_common4pipe18WritePipe$LT$ %3 = getelementptr inbounds nuw i8, ptr %2, i64 8 store i64 1, ptr %3, align 8 %4 = getelementptr inbounds nuw i8, ptr %2, i64 16 + store i64 0, ptr %4, align 8 + %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 24 + store i8 0, ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 25 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %4, i8 0, i64 9, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(39) %.sroa.5.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(39) %.sroa.5, i64 39, i1 false) %5 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !252 %6 = tail call noundef align 8 dereferenceable_or_null(64) ptr @__rust_alloc(i64 noundef 64, i64 noundef 8) #28, !noalias !252 diff --git a/bench/yalantinglibs/optimized/channel.ll b/bench/yalantinglibs/optimized/channel.ll index a271591a080..5db7b734b38 100644 --- a/bench/yalantinglibs/optimized/channel.ll +++ b/bench/yalantinglibs/optimized/channel.ll @@ -63992,6 +63992,7 @@ _ZNK4asio19basic_streambuf_refISaIcEE4dataEv.exit: ; preds = %invoke.cont2.i.i store ptr %call.i.i, ptr %data_buffers, align 8 %3 = getelementptr inbounds nuw i8, ptr %data_buffers, i64 8 store i64 %sub.ptr.sub.i.i, ptr %3, align 8 + %begin.sroa.0.0.copyload.cast = ptrtoint ptr %call.i.i to i64 %cmp8.not.i = icmp eq i64 %sub.ptr.sub.i.i, 0 %.sroa.gep = getelementptr inbounds nuw i8, ptr %data_buffers, i64 16 %spec.select112.idx.sroa.sel = select i1 %cmp8.not.i, ptr %.sroa.gep, ptr %data_buffers @@ -64005,13 +64006,13 @@ for.cond.preheader.i: ; preds = %_ZNK4asio19basic_st br i1 %cmp232.i, label %if.then3.i, label %if.end.i70 if.then3.i.loopexit: ; preds = %if.end13.i - %start_pos.sroa.0.0.copyload82.le = load ptr, ptr %incdec.ptr.i, align 8 + %start_pos.sroa.0.0.copyload82.le = load i64, ptr %incdec.ptr.i, align 8 br label %if.then3.i if.then3.i: ; preds = %if.then3.i.loopexit, %for.cond.preheader.i %start_pos.sroa.16.3 = phi ptr [ %spec.select112.idx.sroa.sel, %for.cond.preheader.i ], [ %incdec.ptr.i, %if.then3.i.loopexit ] %start_pos.sroa.5.4 = phi i64 [ %sub.ptr.sub.i.i, %for.cond.preheader.i ], [ %start_pos.sroa.5.0.copyload84, %if.then3.i.loopexit ] - %start_pos.sroa.0.4 = phi ptr [ %call.i.i, %for.cond.preheader.i ], [ %start_pos.sroa.0.0.copyload82.le, %if.then3.i.loopexit ] + %start_pos.sroa.0.4 = phi i64 [ %begin.sroa.0.0.copyload.cast, %for.cond.preheader.i ], [ %start_pos.sroa.0.0.copyload82.le, %if.then3.i.loopexit ] %5 = phi i64 [ 0, %for.cond.preheader.i ], [ %add8.i, %if.then3.i.loopexit ] %n.addr.0.lcssa.i = phi i64 [ %4, %for.cond.preheader.i ], [ %sub6.i, %if.then3.i.loopexit ] %add.i = add i64 %n.addr.0.lcssa.i, %5 @@ -64050,7 +64051,7 @@ if.then23.i: ; preds = %while.end.i if.end28.i: ; preds = %while.end.i, %if.end28.lr.ph.i %start_pos.sroa.16.1 = phi ptr [ %spec.select112.idx.sroa.sel, %if.end28.lr.ph.i ], [ %start_pos.sroa.16.2, %while.end.i ] %start_pos.sroa.5.1 = phi i64 [ %sub.ptr.sub.i.i, %if.end28.lr.ph.i ], [ %start_pos.sroa.5.2, %while.end.i ] - %start_pos.sroa.0.1 = phi ptr [ %call.i.i, %if.end28.lr.ph.i ], [ %start_pos.sroa.0.2, %while.end.i ] + %start_pos.sroa.0.1 = phi i64 [ %begin.sroa.0.0.copyload.cast, %if.end28.lr.ph.i ], [ %start_pos.sroa.0.2, %while.end.i ] %8 = phi ptr [ %spec.select112.idx.sroa.sel, %if.end28.lr.ph.i ], [ %11, %while.end.i ] %9 = phi i64 [ 0, %if.end28.lr.ph.i ], [ %sub33.i, %while.end.i ] %abs_n.028.i = phi i64 [ %sub19.i, %if.end28.lr.ph.i ], [ %sub30.i, %while.end.i ] @@ -64073,13 +64074,13 @@ while.body.i: ; preds = %while.cond.i br i1 %cmp44.not.i, label %while.cond.i, label %if.then45.i, !llvm.loop !669 if.then45.i: ; preds = %while.body.i - %buffer.sroa.0.0.copyload.i = load ptr, ptr %incdec.ptr42.i, align 8 + %buffer.sroa.0.0.copyload.i = load i64, ptr %incdec.ptr42.i, align 8 br label %while.end.i while.end.i: ; preds = %while.cond.i, %if.then45.i %start_pos.sroa.16.2 = phi ptr [ %incdec.ptr42.i, %if.then45.i ], [ %start_pos.sroa.16.1, %while.cond.i ] %start_pos.sroa.5.2 = phi i64 [ %buffer.sroa.2.0.copyload.i, %if.then45.i ], [ %start_pos.sroa.5.1, %while.cond.i ] - %start_pos.sroa.0.2 = phi ptr [ %buffer.sroa.0.0.copyload.i, %if.then45.i ], [ %start_pos.sroa.0.1, %while.cond.i ] + %start_pos.sroa.0.2 = phi i64 [ %buffer.sroa.0.0.copyload.i, %if.then45.i ], [ %start_pos.sroa.0.1, %while.cond.i ] %11 = phi ptr [ %incdec.ptr42.i, %if.then45.i ], [ %8, %while.cond.i ] %12 = phi i64 [ %buffer.sroa.2.0.copyload.i, %if.then45.i ], [ %10, %while.cond.i ] %cmp22.not.i = icmp ult i64 %12, %sub30.i @@ -64090,7 +64091,7 @@ _ZN4asio16buffers_iteratorINS_15const_buffers_1EcE7advanceEl.exit: ; preds = %if %start_pos.sroa.21.0 = phi i64 [ %add.i, %if.then3.i ], [ %sub25.i, %if.then23.i ], [ 0, %if.else.i ], [ %add8.i, %if.end.i70 ], [ %sub33.i, %if.end28.i ] %start_pos.sroa.8.1 = phi i64 [ %n.addr.0.lcssa.i, %if.then3.i ], [ %sub27.i, %if.then23.i ], [ 0, %if.else.i ], [ 0, %if.end.i70 ], [ 0, %if.end28.i ] %start_pos.sroa.5.5 = phi i64 [ %start_pos.sroa.5.4, %if.then3.i ], [ %start_pos.sroa.5.2, %if.then23.i ], [ %sub.ptr.sub.i.i, %if.else.i ], [ 0, %if.end.i70 ], [ %start_pos.sroa.5.1, %if.end28.i ] - %start_pos.sroa.0.5 = phi ptr [ %start_pos.sroa.0.4, %if.then3.i ], [ %start_pos.sroa.0.2, %if.then23.i ], [ %call.i.i, %if.else.i ], [ null, %if.end.i70 ], [ %start_pos.sroa.0.1, %if.end28.i ] + %start_pos.sroa.0.5 = phi i64 [ %start_pos.sroa.0.4, %if.then3.i ], [ %start_pos.sroa.0.2, %if.then23.i ], [ %begin.sroa.0.0.copyload.cast, %if.else.i ], [ 0, %if.end.i70 ], [ %start_pos.sroa.0.1, %if.end28.i ] %delim_ = getelementptr inbounds nuw i8, ptr %this, i64 16 %13 = load ptr, ptr %delim_, align 8 %_M_string_length.i.i = getelementptr inbounds nuw i8, ptr %this, i64 24 @@ -64101,14 +64102,18 @@ _ZN4asio16buffers_iteratorINS_15const_buffers_1EcE7advanceEl.exit: ; preds = %if for.cond2.preheader.lr.ph.i: ; preds = %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcE7advanceEl.exit %cmp.i74.i = icmp eq i64 %14, 0 - br i1 %cmp.i74.i, label %_ZN4asio6detail14partial_searchINS_16buffers_iteratorINS_15const_buffers_1EcEEN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairIT_bESG_SG_T0_SI_.exit, label %for.cond2.preheader.i - -for.cond2.preheader.i: ; preds = %for.cond2.preheader.lr.ph.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i - %iter1.sroa.19.095.i = phi i64 [ %inc.i.i10.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i ], [ %start_pos.sroa.21.0, %for.cond2.preheader.lr.ph.i ] - %iter1.sroa.13.094.i = phi ptr [ %iter1.sroa.13.2.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i ], [ %start_pos.sroa.16.4, %for.cond2.preheader.lr.ph.i ] - %iter1.sroa.8.093.i = phi i64 [ %iter1.sroa.8.1.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i ], [ %start_pos.sroa.8.1, %for.cond2.preheader.lr.ph.i ] - %iter1.sroa.5.092.i = phi i64 [ %iter1.sroa.5.1.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i ], [ %start_pos.sroa.5.5, %for.cond2.preheader.lr.ph.i ] - %iter1.sroa.0.091.i = phi ptr [ %iter1.sroa.0.1.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i ], [ %start_pos.sroa.0.5, %for.cond2.preheader.lr.ph.i ] + br i1 %cmp.i74.i, label %_ZN4asio6detail14partial_searchINS_16buffers_iteratorINS_15const_buffers_1EcEEN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairIT_bESG_SG_T0_SI_.exit, label %for.cond2.preheader.i.preheader + +for.cond2.preheader.i.preheader: ; preds = %for.cond2.preheader.lr.ph.i + %15 = inttoptr i64 %start_pos.sroa.0.5 to ptr + br label %for.cond2.preheader.i + +for.cond2.preheader.i: ; preds = %for.cond2.preheader.i.preheader, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i + %iter1.sroa.19.095.i = phi i64 [ %inc.i.i10.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i ], [ %start_pos.sroa.21.0, %for.cond2.preheader.i.preheader ] + %iter1.sroa.13.094.i = phi ptr [ %iter1.sroa.13.2.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i ], [ %start_pos.sroa.16.4, %for.cond2.preheader.i.preheader ] + %iter1.sroa.8.093.i = phi i64 [ %iter1.sroa.8.1.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i ], [ %start_pos.sroa.8.1, %for.cond2.preheader.i.preheader ] + %iter1.sroa.5.092.i = phi i64 [ %iter1.sroa.5.1.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i ], [ %start_pos.sroa.5.5, %for.cond2.preheader.i.preheader ] + %iter1.sroa.0.091.i = phi ptr [ %iter1.sroa.0.1.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i ], [ %15, %for.cond2.preheader.i.preheader ] br label %if.end.i13 if.end.i13: ; preds = %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit.i, %for.cond2.preheader.i @@ -64127,9 +64132,9 @@ if.then5.i: ; preds = %if.end.i13 if.end9.i: ; preds = %if.end.i13 %arrayidx.i.i.i = getelementptr inbounds i8, ptr %test_iter1.sroa.0.079.i, i64 %test_iter1.sroa.5.077.i - %15 = load i8, ptr %arrayidx.i.i.i, align 1, !noalias !671 - %16 = load i8, ptr %test_iter2.sroa.0.080.i, align 1, !noalias !671 - %cmp.not.i = icmp eq i8 %15, %16 + %16 = load i8, ptr %arrayidx.i.i.i, align 1, !noalias !671 + %17 = load i8, ptr %test_iter2.sroa.0.080.i, align 1, !noalias !671 + %cmp.not.i = icmp eq i8 %16, %17 br i1 %cmp.not.i, label %for.inc.i, label %for.inc17.i for.inc.i: ; preds = %if.end9.i @@ -64217,29 +64222,29 @@ if.then: ; preds = %_ZN4asio6detail14pa if.else: ; preds = %if.then5.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcE7advanceEl.exit, %_ZN4asio6detail14partial_searchINS_16buffers_iteratorINS_15const_buffers_1EcEEN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairIT_bESG_SG_T0_SI_.exit %cmp.i.i14111 = phi i64 [ %sub.ptr.sub.i.i, %_ZN4asio6detail14partial_searchINS_16buffers_iteratorINS_15const_buffers_1EcEEN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairIT_bESG_SG_T0_SI_.exit ], [ %sub.ptr.sub.i.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcE7advanceEl.exit ], [ %iter1.sroa.19.095.i, %if.then5.i ], [ %sub.ptr.sub.i.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i ] - %17 = load ptr, ptr %buffers_, align 8 - %call.i.i17 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %17) + %18 = load ptr, ptr %buffers_, align 8 + %call.i.i17 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %18) to label %invoke.cont.i.i19 unwind label %terminate.lpad.i.i18 invoke.cont.i.i19: ; preds = %if.else - %call3.i.i20 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv(ptr noundef nonnull align 8 dereferenceable(96) %17) + %call3.i.i20 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv(ptr noundef nonnull align 8 dereferenceable(96) %18) to label %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit unwind label %terminate.lpad.i.i18 terminate.lpad.i.i18: ; preds = %invoke.cont.i.i19, %if.else - %18 = landingpad { ptr, i32 } + %19 = landingpad { ptr, i32 } catch ptr null - %19 = extractvalue { ptr, i32 } %18, 0 - call void @__clang_call_terminate(ptr %19) #45 + %20 = extractvalue { ptr, i32 } %19, 0 + call void @__clang_call_terminate(ptr %20) #45 unreachable _ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit: ; preds = %invoke.cont.i.i19 %sub.ptr.lhs.cast.i.i21 = ptrtoint ptr %call.i.i17 to i64 %sub.ptr.rhs.cast.i.i22 = ptrtoint ptr %call3.i.i20 to i64 %sub.ptr.sub.i.i23 = sub i64 %sub.ptr.lhs.cast.i.i21, %sub.ptr.rhs.cast.i.i22 - %20 = load ptr, ptr %buffers_, align 8 - %max_size_.i.i = getelementptr inbounds nuw i8, ptr %20, i64 64 - %21 = load i64, ptr %max_size_.i.i, align 8 - %cmp = icmp eq i64 %sub.ptr.sub.i.i23, %21 + %21 = load ptr, ptr %buffers_, align 8 + %max_size_.i.i = getelementptr inbounds nuw i8, ptr %21, i64 64 + %22 = load i64, ptr %max_size_.i.i, align 8 + %cmp = icmp eq i64 %sub.ptr.sub.i.i23, %22 br i1 %cmp, label %if.then22, label %if.else24 if.then22: ; preds = %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit @@ -64248,25 +64253,25 @@ if.then22: ; preds = %_ZNK4asio19basic_st if.else24: ; preds = %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit store i64 %cmp.i.i14111, ptr %search_position_, align 8 - %buffer_.i.i = getelementptr inbounds nuw i8, ptr %20, i64 72 - %_M_end_of_storage.i.i.i = getelementptr inbounds nuw i8, ptr %20, i64 88 - %22 = load ptr, ptr %_M_end_of_storage.i.i.i, align 8 - %23 = load ptr, ptr %buffer_.i.i, align 8 - %sub.ptr.lhs.cast.i.i.i = ptrtoint ptr %22 to i64 - %sub.ptr.rhs.cast.i.i.i = ptrtoint ptr %23 to i64 + %buffer_.i.i = getelementptr inbounds nuw i8, ptr %21, i64 72 + %_M_end_of_storage.i.i.i = getelementptr inbounds nuw i8, ptr %21, i64 88 + %23 = load ptr, ptr %_M_end_of_storage.i.i.i, align 8 + %24 = load ptr, ptr %buffer_.i.i, align 8 + %sub.ptr.lhs.cast.i.i.i = ptrtoint ptr %23 to i64 + %sub.ptr.rhs.cast.i.i.i = ptrtoint ptr %24 to i64 %sub.ptr.sub.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i, %sub.ptr.rhs.cast.i.i.i - %call.i.i33 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %20) + %call.i.i33 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %21) to label %invoke.cont.i.i35 unwind label %terminate.lpad.i.i34 invoke.cont.i.i35: ; preds = %if.else24 - %call3.i.i36 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv(ptr noundef nonnull align 8 dereferenceable(96) %20) + %call3.i.i36 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv(ptr noundef nonnull align 8 dereferenceable(96) %21) to label %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit40 unwind label %terminate.lpad.i.i34 terminate.lpad.i.i34: ; preds = %invoke.cont.i.i35, %if.else24 - %24 = landingpad { ptr, i32 } + %25 = landingpad { ptr, i32 } catch ptr null - %25 = extractvalue { ptr, i32 } %24, 0 - call void @__clang_call_terminate(ptr %25) #45 + %26 = extractvalue { ptr, i32 } %25, 0 + call void @__clang_call_terminate(ptr %26) #45 unreachable _ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit40: ; preds = %invoke.cont.i.i35 @@ -64274,70 +64279,70 @@ _ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit40: ; preds = %invoke.cont.i.i3 %sub.ptr.rhs.cast.i.i38 = ptrtoint ptr %call3.i.i36 to i64 %sub.ptr.sub.i.i39.neg = sub i64 %sub.ptr.rhs.cast.i.i38, %sub.ptr.lhs.cast.i.i37 %sub = add i64 %sub.ptr.sub.i.i39.neg, %sub.ptr.sub.i.i.i - %26 = load ptr, ptr %buffers_, align 8 - %max_size_.i.i41 = getelementptr inbounds nuw i8, ptr %26, i64 64 - %27 = load i64, ptr %max_size_.i.i41, align 8 - %call.i.i42 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %26) + %27 = load ptr, ptr %buffers_, align 8 + %max_size_.i.i41 = getelementptr inbounds nuw i8, ptr %27, i64 64 + %28 = load i64, ptr %max_size_.i.i41, align 8 + %call.i.i42 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %27) to label %invoke.cont.i.i44 unwind label %terminate.lpad.i.i43 invoke.cont.i.i44: ; preds = %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit40 - %call3.i.i45 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv(ptr noundef nonnull align 8 dereferenceable(96) %26) + %call3.i.i45 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv(ptr noundef nonnull align 8 dereferenceable(96) %27) to label %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit49 unwind label %terminate.lpad.i.i43 terminate.lpad.i.i43: ; preds = %invoke.cont.i.i44, %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit40 - %28 = landingpad { ptr, i32 } + %29 = landingpad { ptr, i32 } catch ptr null - %29 = extractvalue { ptr, i32 } %28, 0 - call void @__clang_call_terminate(ptr %29) #45 + %30 = extractvalue { ptr, i32 } %29, 0 + call void @__clang_call_terminate(ptr %30) #45 unreachable _ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit49: ; preds = %invoke.cont.i.i44 %sub.ptr.lhs.cast.i.i46 = ptrtoint ptr %call.i.i42 to i64 %sub.ptr.rhs.cast.i.i47 = ptrtoint ptr %call3.i.i45 to i64 %sub.ptr.sub.i.i48.neg = sub i64 %sub.ptr.rhs.cast.i.i47, %sub.ptr.lhs.cast.i.i46 - %sub46 = add i64 %sub.ptr.sub.i.i48.neg, %27 - %30 = call i64 @llvm.umax.i64(i64 %sub, i64 512) - %31 = call i64 @llvm.umin.i64(i64 %sub46, i64 %30) - %32 = call i64 @llvm.umin.i64(i64 %31, i64 65536) + %sub46 = add i64 %sub.ptr.sub.i.i48.neg, %28 + %31 = call i64 @llvm.umax.i64(i64 %sub, i64 512) + %32 = call i64 @llvm.umin.i64(i64 %sub46, i64 %31) + %33 = call i64 @llvm.umin.i64(i64 %32, i64 65536) br label %if.end50 if.end50: ; preds = %if.then22, %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit49, %if.then - %bytes_to_read.0 = phi i64 [ 0, %if.then ], [ 0, %if.then22 ], [ %32, %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit49 ] + %bytes_to_read.0 = phi i64 [ 0, %if.then ], [ 0, %if.then22 ], [ %33, %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit49 ] %tobool51 = icmp eq i32 %start, 0 %cmp53 = icmp eq i64 %bytes_to_read.0, 0 %or.cond2 = select i1 %tobool51, i1 %cmp53, i1 false br i1 %or.cond2, label %for.end, label %if.end55 if.end55: ; preds = %if.end50 - %33 = load ptr, ptr %this, align 8 - %34 = load ptr, ptr %buffers_, align 8 - call void @_ZN4asio15basic_streambufISaIcEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(96) %34, i64 noundef %bytes_to_read.0) - %call.i.i54 = call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %34) + %34 = load ptr, ptr %this, align 8 + %35 = load ptr, ptr %buffers_, align 8 + call void @_ZN4asio15basic_streambufISaIcEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(96) %35, i64 noundef %bytes_to_read.0) + %call.i.i54 = call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %35) store ptr %call.i.i54, ptr %ref.tmp56, align 8 - %35 = getelementptr inbounds nuw i8, ptr %ref.tmp56, i64 8 - store i64 %bytes_to_read.0, ptr %35, align 8 - %36 = load ptr, ptr %33, align 8 - %add.ptr.i.i.i.i = getelementptr inbounds nuw i8, ptr %36, i64 40 - %implementation_.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %33, i64 8 - %executor_.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %33, i64 32 + %36 = getelementptr inbounds nuw i8, ptr %ref.tmp56, i64 8 + store i64 %bytes_to_read.0, ptr %36, align 8 + %37 = load ptr, ptr %34, align 8 + %add.ptr.i.i.i.i = getelementptr inbounds nuw i8, ptr %37, i64 40 + %implementation_.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %34, i64 8 + %executor_.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %34, i64 32 call void @_ZN4asio6detail28reactive_socket_service_base13async_receiveINS_17mutable_buffers_1ENS0_29read_until_delim_string_op_v1INS_19basic_stream_socketINS_2ip3tcpENS_15any_io_executorEEENS_19basic_streambuf_refISaIcEEEZZN7coro_io16async_read_untilIS9_NS_15basic_streambufISB_EEEEN12async_simple4coro4LazyISt4pairISt10error_codemEEERT_RT0_St17basic_string_viewIcSt11char_traitsIcEEENKUlSO_E_clINSD_21callback_awaitor_baseISM_NSD_16callback_awaitorISM_EEE15awaitor_handlerEEEDaSO_EUlRKSO_SQ_E_EES8_EEvRNS1_24base_implementation_typeES14_iSR_RKT1_(ptr noundef nonnull align 8 dereferenceable(24) %add.ptr.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %implementation_.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp56, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(72) %this, ptr noundef nonnull align 8 dereferenceable(56) %executor_.i.i.i.i.i) br label %sw.epilog sw.default: ; preds = %entry %buffers_60 = getelementptr inbounds nuw i8, ptr %this, i64 8 - %37 = load ptr, ptr %buffers_60, align 8 - %call.i.i57 = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv(ptr noundef nonnull align 8 dereferenceable(96) %37) - %call2.i.i = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %37) + %38 = load ptr, ptr %buffers_60, align 8 + %call.i.i57 = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv(ptr noundef nonnull align 8 dereferenceable(96) %38) + %call2.i.i = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %38) %sub.ptr.lhs.cast.i.i58 = ptrtoint ptr %call.i.i57 to i64 %sub.ptr.rhs.cast.i.i59 = ptrtoint ptr %call2.i.i to i64 %sub.ptr.sub.i.i60 = sub i64 %sub.ptr.lhs.cast.i.i58, %sub.ptr.rhs.cast.i.i59 %.sroa.speculated.i.i = tail call i64 @llvm.umin.i64(i64 %sub.ptr.sub.i.i60, i64 %bytes_transferred) %conv.i.i = trunc i64 %.sroa.speculated.i.i to i32 - tail call void @_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi(ptr noundef nonnull align 8 dereferenceable(96) %37, i32 noundef %conv.i.i) - %call4.i.i = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv(ptr noundef nonnull align 8 dereferenceable(96) %37) - %call5.i.i61 = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv(ptr noundef nonnull align 8 dereferenceable(96) %37) - %call6.i.i = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %37) - tail call void @_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %37, ptr noundef %call4.i.i, ptr noundef %call5.i.i61, ptr noundef %call6.i.i) + tail call void @_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi(ptr noundef nonnull align 8 dereferenceable(96) %38, i32 noundef %conv.i.i) + %call4.i.i = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv(ptr noundef nonnull align 8 dereferenceable(96) %38) + %call5.i.i61 = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv(ptr noundef nonnull align 8 dereferenceable(96) %38) + %call6.i.i = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %38) + tail call void @_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %38, ptr noundef %call4.i.i, ptr noundef %call5.i.i61, ptr noundef %call6.i.i) %cmp.i62 = icmp ne i32 %ec.coerce0, 0 %cmp62 = icmp eq i64 %bytes_transferred, 0 %or.cond3 = or i1 %cmp.i62, %cmp62 @@ -64345,22 +64350,22 @@ sw.default: ; preds = %entry for.end: ; preds = %sw.default, %if.end50 %search_position_70 = getelementptr inbounds nuw i8, ptr %this, i64 56 - %38 = load i64, ptr %search_position_70, align 8 - %cmp71 = icmp eq i64 %38, -1 + %39 = load i64, ptr %search_position_70, align 8 + %cmp71 = icmp eq i64 %39, -1 br i1 %cmp71, label %cond.true, label %cond.end cond.true: ; preds = %for.end - %39 = load atomic i8, ptr @_ZGVZN4asio5error17get_misc_categoryEvE8instance acquire, align 8 - %guard.uninitialized.i.i.i = icmp eq i8 %39, 0 + %40 = load atomic i8, ptr @_ZGVZN4asio5error17get_misc_categoryEvE8instance acquire, align 8 + %guard.uninitialized.i.i.i = icmp eq i8 %40, 0 br i1 %guard.uninitialized.i.i.i, label %init.check.i.i.i, label %cond.end, !prof !5 init.check.i.i.i: ; preds = %cond.true - %40 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN4asio5error17get_misc_categoryEvE8instance) #35 - %tobool.not.i.i.i = icmp eq i32 %40, 0 + %41 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN4asio5error17get_misc_categoryEvE8instance) #35 + %tobool.not.i.i.i = icmp eq i32 %41, 0 br i1 %tobool.not.i.i.i, label %cond.end, label %init.i.i.i init.i.i.i: ; preds = %init.check.i.i.i - %41 = call i32 @__cxa_atexit(ptr nonnull @_ZN4asio5error6detail13misc_categoryD2Ev, ptr nonnull @_ZZN4asio5error17get_misc_categoryEvE8instance, ptr nonnull @__dso_handle) #35 + %42 = call i32 @__cxa_atexit(ptr nonnull @_ZN4asio5error6detail13misc_categoryD2Ev, ptr nonnull @_ZZN4asio5error17get_misc_categoryEvE8instance, ptr nonnull @__dso_handle) #35 call void @__cxa_guard_release(ptr nonnull @_ZGVZN4asio5error17get_misc_categoryEvE8instance) #35 br label %cond.end @@ -64368,22 +64373,22 @@ cond.end: ; preds = %for.end, %init.i.i. %result_ec.sroa.374.0 = phi ptr [ @_ZZN4asio5error17get_misc_categoryEvE8instance, %cond.true ], [ @_ZZN4asio5error17get_misc_categoryEvE8instance, %init.check.i.i.i ], [ @_ZZN4asio5error17get_misc_categoryEvE8instance, %init.i.i.i ], [ %ec.coerce1, %for.end ] %result_ec.sroa.0.0 = phi i32 [ 3, %cond.true ], [ 3, %init.check.i.i.i ], [ 3, %init.i.i.i ], [ %ec.coerce0, %for.end ] %cmp.i64.not = icmp eq i32 %ec.coerce0, 0 - %42 = load i64, ptr %search_position_70, align 8 - %cmp75 = icmp eq i64 %42, -1 - %spec.select = select i1 %cmp75, i64 0, i64 %42 + %43 = load i64, ptr %search_position_70, align 8 + %cmp75 = icmp eq i64 %43, -1 + %spec.select = select i1 %cmp75, i64 0, i64 %43 %cond = select i1 %cmp.i64.not, i64 %spec.select, i64 0 %handler_ = getelementptr inbounds nuw i8, ptr %this, i64 64 - %43 = load ptr, ptr %handler_, align 8 - %arg_.i.i.i = getelementptr inbounds nuw i8, ptr %43, i64 8 + %44 = load ptr, ptr %handler_, align 8 + %arg_.i.i.i = getelementptr inbounds nuw i8, ptr %44, i64 8 store i32 %result_ec.sroa.0.0, ptr %arg_.i.i.i, align 8 - %result_ec.sroa.374.0.arg_.i.i.i.sroa_idx = getelementptr inbounds nuw i8, ptr %43, i64 16 + %result_ec.sroa.374.0.arg_.i.i.i.sroa_idx = getelementptr inbounds nuw i8, ptr %44, i64 16 store ptr %result_ec.sroa.374.0, ptr %result_ec.sroa.374.0.arg_.i.i.i.sroa_idx, align 8 - %second3.i.i.i.i = getelementptr inbounds nuw i8, ptr %43, i64 24 + %second3.i.i.i.i = getelementptr inbounds nuw i8, ptr %44, i64 24 store i64 %cond, ptr %second3.i.i.i.i, align 8 - %44 = load ptr, ptr %handler_, align 8 - %45 = load ptr, ptr %44, align 8 + %45 = load ptr, ptr %handler_, align 8 %46 = load ptr, ptr %45, align 8 - call fastcc void %46(ptr nonnull %45) + %47 = load ptr, ptr %46, align 8 + call fastcc void %47(ptr nonnull %46) br label %sw.epilog sw.epilog: ; preds = %cond.end, %if.end55 diff --git a/bench/zed-rs/optimized/bwf7odsfkes1o9vw37iz67e4b.ll b/bench/zed-rs/optimized/bwf7odsfkes1o9vw37iz67e4b.ll index 892bac63b23..4d4620af34f 100644 --- a/bench/zed-rs/optimized/bwf7odsfkes1o9vw37iz67e4b.ll +++ b/bench/zed-rs/optimized/bwf7odsfkes1o9vw37iz67e4b.ll @@ -762,6 +762,9 @@ define void @_ZN3git5blame5Blame8for_path17h0405cd2daf47ad09E(ptr dead_on_unwind %44 = alloca [48 x i8], align 8 %45 = alloca [24 x i8], align 8 %.sroa.014.i.i = alloca [7 x i8], align 1 + %.sroa.3.i.i = alloca [5 x i8], align 1 + %.sroa.10.i.i = alloca i64, align 8 + %.sroa.9.i.i = alloca i64, align 8 %46 = alloca [64 x i8], align 8 %47 = alloca [24 x i8], align 8 %48 = alloca [24 x i8], align 8 @@ -1702,8 +1705,8 @@ default.unreachable: ; preds = %.noexc131.i %.sroa.5244.0..sroa_idx245 = getelementptr inbounds nuw i8, ptr %51, i64 8 br label %340 -.body.i: ; preds = %.loopexit547.i.loopexit, %.loopexit547.i.loopexit.split-lp, %696, %687, %541, %459, %.loopexit.split-lp548.i - %.pn.i = phi { ptr, i32 } [ %697, %696 ], [ %lpad.phi.i92, %541 ], [ %lpad.thr_comm.split-lp.i95, %459 ], [ %688, %687 ], [ %lpad.loopexit.split-lp550.i, %.loopexit.split-lp548.i ], [ %lpad.loopexit393, %.loopexit547.i.loopexit ], [ %lpad.loopexit.split-lp394, %.loopexit547.i.loopexit.split-lp ] +.body.i: ; preds = %.loopexit542.i.loopexit, %.loopexit542.i.loopexit.split-lp, %696, %687, %541, %459, %.loopexit.split-lp543.i + %.pn.i = phi { ptr, i32 } [ %697, %696 ], [ %lpad.phi.i92, %541 ], [ %lpad.thr_comm.split-lp.i95, %459 ], [ %688, %687 ], [ %lpad.loopexit.split-lp545.i, %.loopexit.split-lp543.i ], [ %lpad.loopexit393, %.loopexit542.i.loopexit ], [ %lpad.loopexit.split-lp394, %.loopexit542.i.loopexit.split-lp ] %337 = load i64, ptr %58, align 8, !range !147, !alias.scope !242, !noalias !238, !noundef !4 %338 = icmp eq i64 %337, 2 br i1 %338, label %"_ZN4core3ptr71drop_in_place$LT$core..option..Option$LT$git..blame..BlameEntry$GT$$GT$17h8156f4e530ffc9beE.exit.i", label %339 @@ -1712,18 +1715,18 @@ default.unreachable: ; preds = %.noexc131.i invoke void @"_ZN4core3ptr43drop_in_place$LT$git..blame..BlameEntry$GT$17hf9b82a9ebaaab84dE"(ptr noalias noundef nonnull align 8 dereferenceable(280) %58) to label %"_ZN4core3ptr71drop_in_place$LT$core..option..Option$LT$git..blame..BlameEntry$GT$$GT$17h8156f4e530ffc9beE.exit.i" unwind label %542, !noalias !245 -.loopexit547.i.loopexit: ; preds = %340, %359, %376, %388, %401, %415, %424, %548, %558, %566, %590, %596, %607, %614, %648, %655, %662, %691, %598, %583 +.loopexit542.i.loopexit: ; preds = %340, %359, %376, %388, %401, %415, %424, %548, %558, %566, %590, %596, %607, %614, %648, %655, %662, %691, %598, %583 %lpad.loopexit393 = landingpad { ptr, i32 } cleanup br label %.body.i -.loopexit547.i.loopexit.split-lp: ; preds = %.invoke +.loopexit542.i.loopexit.split-lp: ; preds = %.invoke %lpad.loopexit.split-lp394 = landingpad { ptr, i32 } cleanup br label %.body.i -.loopexit.split-lp548.i: ; preds = %.invoke512, %.invoke.i, %418, %409, %395, %.thread.i.i, %.thread170.i.i - %lpad.loopexit.split-lp550.i = landingpad { ptr, i32 } +.loopexit.split-lp543.i: ; preds = %.invoke512, %.invoke.i, %418, %409, %395, %.thread.i.i, %.thread169.i.i + %lpad.loopexit.split-lp545.i = landingpad { ptr, i32 } cleanup br label %.body.i @@ -1732,7 +1735,7 @@ default.unreachable: ; preds = %.noexc131.i %.val.i.i = load ptr, ptr %.sroa.3.0..sroa_idx.i80, align 8, !alias.scope !246, !noalias !238, !nonnull !4, !align !5, !noundef !4 call void @llvm.lifetime.start.p0(ptr nonnull %47), !noalias !249 invoke fastcc void @"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h9816e5a8d5bad087E"(ptr noalias noundef align 8 captures(none) dereferenceable(24) %47, ptr noalias noundef align 8 dereferenceable(48) %.sroa.3.0..sroa_idx.i80) - to label %.noexc94.i unwind label %.loopexit547.i.loopexit, !noalias !245 + to label %.noexc94.i unwind label %.loopexit542.i.loopexit, !noalias !245 .noexc94.i: ; preds = %340 %341 = load i64, ptr %47, align 8, !range !45, !noalias !249, !noundef !4 @@ -1790,7 +1793,7 @@ default.unreachable: ; preds = %.noexc131.i %.sroa.0.1.i.ph.i = phi ptr [ %349, %._crit_edge.i.i.i ], [ %354, %350 ] call void @llvm.lifetime.end.p0(ptr nonnull %47), !noalias !249 %360 = invoke { ptr, i64 } @"_ZN89_$LT$core..str..LinesMap$u20$as$u20$core..ops..function..Fn$LT$$LP$$RF$str$C$$RP$$GT$$GT$4call17h04106af659525decE.llvm.11431389067375718170"(ptr noalias noundef nonnull readonly align 1 %274, ptr noalias noundef nonnull readonly align 1 %.sroa.0.1.i.ph.i, i64 noundef %.sroa.4.1.i.ph.i) - to label %"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17h37ef0c7dd9e1195cE.exit.i" unwind label %.loopexit547.i.loopexit, !noalias !245 + to label %"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17h37ef0c7dd9e1195cE.exit.i" unwind label %.loopexit542.i.loopexit, !noalias !245 "_ZN4core3ptr71drop_in_place$LT$core..option..Option$LT$git..blame..BlameEntry$GT$$GT$17h8156f4e530ffc9beE.exit.i": ; preds = %362, %339, %.body.i %.sroa.031.0.i = phi i1 [ %363, %362 ], [ true, %339 ], [ true, %.body.i ] @@ -1826,6 +1829,7 @@ default.unreachable: ; preds = %.noexc131.i 371: ; preds = %"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17h37ef0c7dd9e1195cE.exit.i" call void @llvm.lifetime.start.p0(ptr nonnull %56), !noalias !238 call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.014.i.i) + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.3.i.i) call void @llvm.lifetime.start.p0(ptr nonnull %46), !noalias !257 %372 = getelementptr inbounds i8, ptr %366, i64 %367 store i64 0, ptr %46, align 8, !noalias !257 @@ -1837,6 +1841,8 @@ default.unreachable: ; preds = %.noexc131.i store i64 0, ptr %.sroa.572.sroa.7.0..sroa.572.0..sroa_idx.sroa_idx.i.i, align 8, !noalias !257 store i8 1, ptr %.sroa.673.0..sroa_idx.i.i, align 8, !noalias !257 store i8 0, ptr %.sroa.774.0..sroa_idx.i.i, align 1, !noalias !257 + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.9.i.i) + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.10.i.i) %373 = call fastcc { ptr, i64 } @_ZN4core4iter6traits8iterator8Iterator8try_fold17ha63b088709aec0c2E(ptr noalias noundef align 8 dereferenceable(64) %46) %374 = extractvalue { ptr, i64 } %373, 0 %375 = icmp eq ptr %374, null @@ -1846,26 +1852,30 @@ default.unreachable: ; preds = %.noexc131.i %377 = extractvalue { ptr, i64 } %373, 1 call void @llvm.lifetime.start.p0(ptr nonnull %45), !noalias !257 invoke void @"_ZN55_$LT$git..Oid$u20$as$u20$core..str..traits..FromStr$GT$8from_str17h90864d37b363e480E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %45, ptr noalias noundef nonnull readonly align 1 %374, i64 noundef %377) - to label %.noexc102.i unwind label %.loopexit547.i.loopexit, !noalias !245 + to label %.noexc102.i unwind label %.loopexit542.i.loopexit, !noalias !245 .noexc102.i: ; preds = %376 %378 = load i8, ptr %45, align 8, !range !16, !noalias !257, !noundef !4 %trunc.i101.i = trunc nuw i8 %378 to i1 - br i1 %trunc.i101.i, label %.thread170.i.i, label %379 + br i1 %trunc.i101.i, label %.thread169.i.i, label %379 -.thread170.i.i: ; preds = %.noexc102.i +.thread169.i.i: ; preds = %.noexc102.i invoke void @"_ZN6anyhow5error65_$LT$impl$u20$core..ops..drop..Drop$u20$for$u20$anyhow..Error$GT$4drop17ha085256a7583661aE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %.sroa.483.0..sroa_idx.i.i) - to label %.noexc103.i unwind label %.loopexit.split-lp548.i, !noalias !245 + to label %.noexc103.i unwind label %.loopexit.split-lp543.i, !noalias !245 -.noexc103.i: ; preds = %.thread170.i.i +.noexc103.i: ; preds = %.thread169.i.i call void @llvm.lifetime.end.p0(ptr nonnull %45), !noalias !257 br label %.thread.i.i 379: ; preds = %.noexc102.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.014.i.i, ptr noundef nonnull align 1 dereferenceable(7) %322, i64 7, i1 false), !noalias !257 %.sroa.483.0.copyload.i.i = load ptr, ptr %.sroa.483.0..sroa_idx.i.i, align 8, !noalias !257 - %.sroa.584.0.copyload.i.i = load i40, ptr %.sroa.584.0..sroa_idx.i.i, align 8, !noalias !257 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.sroa.10.i.i, ptr noundef nonnull align 8 dereferenceable(5) %.sroa.584.0..sroa_idx.i.i, i64 5, i1 false), !noalias !257 call void @llvm.lifetime.end.p0(ptr nonnull %45), !noalias !257 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.sroa.9.i.i, ptr noundef nonnull align 8 dereferenceable(5) %.sroa.10.i.i, i64 5, i1 false), !noalias !257 + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.10.i.i) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %.sroa.3.i.i, ptr noundef nonnull align 8 dereferenceable(5) %.sroa.9.i.i, i64 5, i1 false), !noalias !257 + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.9.i.i) %380 = call fastcc { ptr, i64 } @_ZN4core4iter6traits8iterator8Iterator8try_fold17ha63b088709aec0c2E(ptr noalias noundef align 8 dereferenceable(64) %46) %381 = extractvalue { ptr, i64 } %380, 0 %382 = icmp eq ptr %381, null @@ -1883,16 +1893,18 @@ default.unreachable: ; preds = %.noexc131.i %386 = getelementptr inbounds nuw i8, ptr %44, i64 24 store i64 0, ptr %386, align 8, !noalias !257 %387 = invoke fastcc noundef nonnull ptr @_ZN6anyhow9__private10format_err17h72a43e378e179026E(ptr noalias noundef align 8 captures(none) dereferenceable(48) %44) - to label %.noexc104.i unwind label %.loopexit.split-lp548.i, !noalias !245 + to label %.noexc104.i unwind label %.loopexit.split-lp543.i, !noalias !245 .noexc104.i: ; preds = %.thread.i.i call void @llvm.lifetime.end.p0(ptr nonnull %44), !noalias !257 + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.10.i.i) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.9.i.i) br label %458 388: ; preds = %379 %389 = extractvalue { ptr, i64 } %380, 1 %390 = invoke i64 @"_ZN4core3num60_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$u32$GT$8from_str17hcb16b30e8490ab70E"(ptr noalias noundef nonnull readonly align 1 %381, i64 noundef %389) - to label %.noexc105.i unwind label %.loopexit547.i.loopexit, !noalias !245 + to label %.noexc105.i unwind label %.loopexit542.i.loopexit, !noalias !245 .noexc105.i: ; preds = %388 %trunc137.i.i = trunc i64 %390 to i1 @@ -1918,7 +1930,7 @@ default.unreachable: ; preds = %.noexc131.i %399 = getelementptr inbounds nuw i8, ptr %43, i64 24 store i64 0, ptr %399, align 8, !noalias !257 %400 = invoke fastcc noundef nonnull ptr @_ZN6anyhow9__private10format_err17h72a43e378e179026E(ptr noalias noundef align 8 captures(none) dereferenceable(48) %43) - to label %.noexc106.i unwind label %.loopexit.split-lp548.i, !noalias !245 + to label %.noexc106.i unwind label %.loopexit.split-lp543.i, !noalias !245 .noexc106.i: ; preds = %395 call void @llvm.lifetime.end.p0(ptr nonnull %43), !noalias !257 @@ -1927,7 +1939,7 @@ default.unreachable: ; preds = %.noexc131.i 401: ; preds = %391 %402 = extractvalue { ptr, i64 } %392, 1 %403 = invoke i64 @"_ZN4core3num60_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$u32$GT$8from_str17hcb16b30e8490ab70E"(ptr noalias noundef nonnull readonly align 1 %393, i64 noundef %402) - to label %.noexc107.i unwind label %.loopexit547.i.loopexit, !noalias !245 + to label %.noexc107.i unwind label %.loopexit542.i.loopexit, !noalias !245 .noexc107.i: ; preds = %401 %trunc139.i.i = trunc i64 %403 to i1 @@ -1954,7 +1966,7 @@ default.unreachable: ; preds = %.noexc131.i %413 = getelementptr inbounds nuw i8, ptr %42, i64 24 store i64 0, ptr %413, align 8, !noalias !257 %414 = invoke fastcc noundef nonnull ptr @_ZN6anyhow9__private10format_err17h72a43e378e179026E(ptr noalias noundef align 8 captures(none) dereferenceable(48) %42) - to label %.noexc108.i unwind label %.loopexit.split-lp548.i, !noalias !245 + to label %.noexc108.i unwind label %.loopexit.split-lp543.i, !noalias !245 .noexc108.i: ; preds = %409 call void @llvm.lifetime.end.p0(ptr nonnull %42), !noalias !257 @@ -1963,7 +1975,7 @@ default.unreachable: ; preds = %.noexc131.i 415: ; preds = %404 %416 = extractvalue { ptr, i64 } %406, 1 %417 = invoke i64 @"_ZN4core3num60_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$u32$GT$8from_str17hcb16b30e8490ab70E"(ptr noalias noundef nonnull readonly align 1 %407, i64 noundef %416) - to label %.noexc109.i unwind label %.loopexit547.i.loopexit, !noalias !245 + to label %.noexc109.i unwind label %.loopexit542.i.loopexit, !noalias !245 .noexc109.i: ; preds = %415 %trunc142.i.i = trunc i64 %417 to i1 @@ -1981,7 +1993,7 @@ default.unreachable: ; preds = %.noexc131.i %422 = getelementptr inbounds nuw i8, ptr %41, i64 24 store i64 0, ptr %422, align 8, !noalias !257 %423 = invoke fastcc noundef nonnull ptr @_ZN6anyhow9__private10format_err17h72a43e378e179026E(ptr noalias noundef align 8 captures(none) dereferenceable(48) %41) - to label %.noexc110.i unwind label %.loopexit.split-lp548.i, !noalias !245 + to label %.noexc110.i unwind label %.loopexit.split-lp543.i, !noalias !245 .noexc110.i: ; preds = %418 call void @llvm.lifetime.end.p0(ptr nonnull %41), !noalias !257 @@ -1998,7 +2010,7 @@ default.unreachable: ; preds = %.noexc131.i store i8 1, ptr %279, align 8, !alias.scope !265, !noalias !268 store i32 32, ptr %280, align 8, !alias.scope !265, !noalias !268 invoke fastcc void @"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h9816e5a8d5bad087E"(ptr noalias noundef align 8 captures(none) dereferenceable(24) %40, ptr noalias noundef align 8 dereferenceable(48) %39) - to label %.noexc112.i unwind label %.loopexit547.i.loopexit, !noalias !245 + to label %.noexc112.i unwind label %.loopexit542.i.loopexit, !noalias !245 .noexc112.i: ; preds = %424 %425 = load i64, ptr %40, align 8, !range !45, !noalias !261, !noundef !4 @@ -2010,8 +2022,10 @@ default.unreachable: ; preds = %.noexc131.i %.sroa.5133.0.extract.trunc.i.i = trunc nuw i64 %.sroa.5133.0.extract.shift.i.i to i32 %427 = add i32 %405, %.sroa.5133.0.extract.trunc.i.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(7) %.sroa.5.sroa.26.0..sroa.5.0..sroa_idx.sroa_idx.i, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.014.i.i, i64 7, i1 false), !noalias !238 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %.sroa.5.sroa.28.0..sroa.5.0..sroa_idx.sroa_idx.i, ptr noundef nonnull align 1 dereferenceable(5) %.sroa.3.i.i, i64 5, i1 false), !noalias !238 call void @llvm.lifetime.end.p0(ptr nonnull %46), !noalias !257 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.014.i.i) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.3.i.i) store i64 0, ptr %56, align 8, !noalias !238 store i64 0, ptr %.sroa.5.0..sroa_idx.i82, align 8, !noalias !238 store i64 0, ptr %.sroa.5.sroa.5.0..sroa.5.0..sroa_idx.sroa_idx.i, align 8, !noalias !238 @@ -2028,7 +2042,6 @@ default.unreachable: ; preds = %.noexc131.i store i32 %405, ptr %.sroa.5.sroa.24.0..sroa.5.0..sroa_idx.sroa_idx.i, align 8, !noalias !238 store i32 %427, ptr %.sroa.5.sroa.25.0..sroa.5.0..sroa_idx.sroa_idx.i, align 4, !noalias !238 store ptr %.sroa.483.0.copyload.i.i, ptr %.sroa.5.sroa.27.0..sroa.5.0..sroa_idx.sroa_idx.i, align 1, !noalias !238 - store i40 %.sroa.584.0.copyload.i.i, ptr %.sroa.5.sroa.28.0..sroa.5.0..sroa_idx.sroa_idx.i, align 1, !noalias !238 store i32 %.sroa.5127.0.extract.trunc.i.i, ptr %.sroa.5.sroa.29.0..sroa.5.0..sroa_idx.sroa_idx.i, align 4, !noalias !238 call void @llvm.experimental.noalias.scope.decl(metadata !270) %428 = load i64, ptr %323, align 8, !alias.scope !270, !noalias !273, !noundef !4 @@ -2101,6 +2114,7 @@ default.unreachable: ; preds = %.noexc131.i %.sroa.8.2.ph.i = phi ptr [ %423, %.noexc110.i ], [ %414, %.noexc108.i ], [ %400, %.noexc106.i ], [ %387, %.noexc104.i ] call void @llvm.lifetime.end.p0(ptr nonnull %46), !noalias !257 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.014.i.i) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.3.i.i) call void @llvm.lifetime.end.p0(ptr nonnull %56), !noalias !238 br label %544 @@ -2508,14 +2522,14 @@ default.unreachable: ; preds = %.noexc131.i %551 = sub nuw i64 %367, %550 %552 = getelementptr inbounds i8, ptr %366, i64 %550 %553 = invoke noundef zeroext i1 @_ZN4git23oid3Oid7is_zero17h2a10fc8cf911800aE(ptr noalias noundef nonnull readonly align 1 dereferenceable(20) %283) - to label %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i unwind label %.loopexit547.i.loopexit, !noalias !245 + to label %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i unwind label %.loopexit542.i.loopexit, !noalias !245 554: ; preds = %.noexc112.i call void @llvm.lifetime.end.p0(ptr nonnull %40), !noalias !261 call void @llvm.lifetime.end.p0(ptr nonnull %39), !noalias !261 br label %.backedge.i -.backedge.i: ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h4bcc0dc585979a82E.exit.i", %.thread525.i, %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit288.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit286.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit278.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit270.i", %619, %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit260.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit252.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit250.i", %595, %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit.i", %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit248.i", %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit244.i", %580, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit236.i", %577, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit228.i", %574, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit220.i", %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit210.i", %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit202.i", %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i, %554, %"_ZN4core3ptr71drop_in_place$LT$core..option..Option$LT$git..blame..BlameEntry$GT$$GT$17h8156f4e530ffc9beE.exit122.i" +.backedge.i: ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h4bcc0dc585979a82E.exit.i", %.thread520.i, %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit288.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit286.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit278.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit270.i", %619, %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit260.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit252.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit250.i", %595, %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit.i", %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit248.i", %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit244.i", %580, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit236.i", %577, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit228.i", %574, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit220.i", %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit210.i", %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit202.i", %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i, %554, %"_ZN4core3ptr71drop_in_place$LT$core..option..Option$LT$git..blame..BlameEntry$GT$$GT$17h8156f4e530ffc9beE.exit122.i" %555 = load i8, ptr %.sroa.552.0..sroa_idx.i, align 1, !range !16, !alias.scope !433, !noalias !238, !noundef !4 %556 = trunc nuw i8 %555 to i1 br i1 %556, label %.thread.i, label %340 @@ -2539,7 +2553,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 558: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit.i86" call void @llvm.lifetime.start.p0(ptr nonnull %30), !noalias !439 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h7c0e6e9ccb6a7ce0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %30, i64 noundef %551, i1 noundef zeroext false) - to label %.noexc205.i unwind label %.loopexit547.i.loopexit, !noalias !245 + to label %.noexc205.i unwind label %.loopexit542.i.loopexit, !noalias !245 .noexc205.i: ; preds = %558 %559 = load i64, ptr %30, align 8, !range !45, !noalias !439, !noundef !4 @@ -2555,7 +2569,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 %563 = phi i64 [ %560, %561 ], [ %568, %569 ], [ %609, %610 ], [ %650, %651 ], [ %657, %658 ], [ %664, %665 ] %564 = phi i64 [ %562, %561 ], [ %570, %569 ], [ %611, %610 ], [ %652, %651 ], [ %659, %658 ], [ %666, %665 ] invoke void @_ZN5alloc7raw_vec12handle_error17hc0e4a0ae60df49a1E(i64 noundef %563, i64 %564) #17 - to label %.cont.i unwind label %.loopexit.split-lp548.i, !noalias !245 + to label %.cont.i unwind label %.loopexit.split-lp543.i, !noalias !245 .cont.i: ; preds = %.invoke.i unreachable @@ -2568,7 +2582,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 566: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit202.i" call void @llvm.lifetime.start.p0(ptr nonnull %29), !noalias !447 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h7c0e6e9ccb6a7ce0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %29, i64 noundef %551, i1 noundef zeroext false) - to label %.noexc214.i unwind label %.loopexit547.i.loopexit, !noalias !245 + to label %.noexc214.i unwind label %.loopexit542.i.loopexit, !noalias !245 .noexc214.i: ; preds = %566 %567 = load i64, ptr %29, align 8, !range !45, !noalias !447, !noundef !4 @@ -2583,14 +2597,14 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit210.i": ; preds = %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i %bcmp.i209.i = call i32 @bcmp(ptr noundef nonnull readonly align 1 dereferenceable(7) %366, ptr noundef nonnull dereferenceable(7) @anon.5e2d673e6eae030aad46836fb47fafd9.81, i64 7), !alias.scope !451, !noalias !245 %571 = icmp ne i32 %bcmp.i209.i, 0 - %brmerge540.i = or i1 %553, %571 - br i1 %brmerge540.i, label %.backedge.i, label %662 + %brmerge535.i = or i1 %553, %571 + br i1 %brmerge535.i, label %.backedge.i, label %662 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit220.i": ; preds = %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i %bcmp.i219.i = call i32 @bcmp(ptr noundef nonnull readonly align 1 dereferenceable(6) %366, ptr noundef nonnull dereferenceable(6) @anon.5e2d673e6eae030aad46836fb47fafd9.82, i64 6), !alias.scope !455, !noalias !245 %572 = icmp ne i32 %bcmp.i219.i, 0 - %brmerge542.i = or i1 %553, %572 - br i1 %brmerge542.i, label %.backedge.i, label %655 + %brmerge537.i = or i1 %553, %572 + br i1 %brmerge537.i, label %.backedge.i, label %655 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit224.i": ; preds = %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i %bcmp.i223.i = call i32 @bcmp(ptr noundef nonnull readonly align 1 dereferenceable(11) %366, ptr noundef nonnull dereferenceable(11) @anon.5e2d673e6eae030aad46836fb47fafd9.83, i64 11), !alias.scope !459, !noalias !245 @@ -2603,8 +2617,8 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit228.i": ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit224.i" %bcmp.i227.i = call i32 @bcmp(ptr noundef nonnull readonly align 1 dereferenceable(11) %366, ptr noundef nonnull dereferenceable(11) @anon.5e2d673e6eae030aad46836fb47fafd9.84, i64 11), !alias.scope !463, !noalias !245 %575 = icmp ne i32 %bcmp.i227.i, 0 - %brmerge544.i = or i1 %553, %575 - br i1 %brmerge544.i, label %.backedge.i, label %614 + %brmerge539.i = or i1 %553, %575 + br i1 %brmerge539.i, label %.backedge.i, label %614 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit232.i": ; preds = %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i %bcmp.i231.i = call i32 @bcmp(ptr noundef nonnull readonly align 1 dereferenceable(9) %366, ptr noundef nonnull dereferenceable(9) @anon.5e2d673e6eae030aad46836fb47fafd9.85, i64 9), !alias.scope !467, !noalias !245 @@ -2617,8 +2631,8 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit236.i": ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit232.i" %bcmp.i235.i = call i32 @bcmp(ptr noundef nonnull readonly align 1 dereferenceable(9) %366, ptr noundef nonnull dereferenceable(9) @anon.5e2d673e6eae030aad46836fb47fafd9.86, i64 9), !alias.scope !471, !noalias !245 %578 = icmp ne i32 %bcmp.i235.i, 0 - %brmerge546.i = or i1 %553, %578 - br i1 %brmerge546.i, label %.backedge.i, label %598 + %brmerge541.i = or i1 %553, %578 + br i1 %brmerge541.i, label %.backedge.i, label %598 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit240.i": ; preds = %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i %bcmp.i239.i = call i32 @bcmp(ptr noundef nonnull readonly align 1 dereferenceable(14) %366, ptr noundef nonnull dereferenceable(14) @anon.5e2d673e6eae030aad46836fb47fafd9.87, i64 14), !alias.scope !475, !noalias !245 @@ -2631,8 +2645,8 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit244.i": ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit240.i" %bcmp.i243.i = call i32 @bcmp(ptr noundef nonnull readonly align 1 dereferenceable(14) %366, ptr noundef nonnull dereferenceable(14) @anon.5e2d673e6eae030aad46836fb47fafd9.88, i64 14), !alias.scope !479, !noalias !245 %581 = icmp ne i32 %bcmp.i243.i, 0 - %brmerge538.i = or i1 %553, %581 - br i1 %brmerge538.i, label %.backedge.i, label %590 + %brmerge533.i = or i1 %553, %581 + br i1 %brmerge533.i, label %.backedge.i, label %590 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit248.i": ; preds = %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i %bcmp.i247.i = call i32 @bcmp(ptr noundef nonnull readonly align 1 dereferenceable(12) %366, ptr noundef nonnull dereferenceable(12) @anon.5e2d673e6eae030aad46836fb47fafd9.89, i64 12), !alias.scope !483, !noalias !245 @@ -2643,7 +2657,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 583: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit248.i" call void @llvm.lifetime.start.p0(ptr nonnull %12), !noalias !487 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h7c0e6e9ccb6a7ce0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %12, i64 noundef %551, i1 noundef zeroext false) - to label %.noexc172 unwind label %.loopexit547.i.loopexit + to label %.noexc172 unwind label %.loopexit542.i.loopexit .noexc172: ; preds = %583 %584 = load i64, ptr %12, align 8, !range !45, !noalias !487, !noundef !4 @@ -2677,7 +2691,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 590: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit244.i" call void @llvm.lifetime.start.p0(ptr nonnull %52), !noalias !238 invoke void @"_ZN4core3num60_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$i64$GT$8from_str17ha05329e681512aa8E"(ptr noalias noundef nonnull sret([16 x i8]) align 8 captures(none) dereferenceable(16) %52, ptr noalias noundef nonnull readonly align 1 %552, i64 noundef %551) - to label %591 unwind label %.loopexit547.i.loopexit, !noalias !245 + to label %591 unwind label %.loopexit542.i.loopexit, !noalias !245 591: ; preds = %590 %592 = load i8, ptr %52, align 8, !range !16, !noalias !238, !noundef !4 @@ -2696,14 +2710,14 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 call void @llvm.lifetime.start.p0(ptr nonnull %53) call void @llvm.lifetime.start.p0(ptr nonnull %48), !noalias !238 invoke fastcc void @"_ZN52_$LT$T$u20$as$u20$alloc..slice..hack..ConvertVec$GT$6to_vec17heef7bb8321cc7506E"(ptr noalias noundef align 8 captures(none) dereferenceable(24) %48, ptr noalias noundef nonnull readonly align 1 %552, i64 noundef %551) - to label %597 unwind label %.loopexit547.i.loopexit, !noalias !245 + to label %597 unwind label %.loopexit542.i.loopexit, !noalias !245 597: ; preds = %596 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %53, ptr noundef nonnull align 8 dereferenceable(24) %48, i64 24, i1 false), !noalias !238 call void @llvm.lifetime.end.p0(ptr nonnull %48), !noalias !238 %.val90.i = load i64, ptr %290, align 8, !range !46, !noalias !238, !noundef !4 - %switch530.i = icmp sgt i64 %.val90.i, 0 - br i1 %switch530.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i249.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit250.i" + %switch525.i = icmp sgt i64 %.val90.i, 0 + br i1 %switch525.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i249.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit250.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i249.i": ; preds = %597 %.val91.i = load ptr, ptr %291, align 8, !noalias !238, !nonnull !4, !noundef !4 @@ -2718,7 +2732,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 598: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit236.i" call void @llvm.lifetime.start.p0(ptr nonnull %13), !noalias !511 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h7c0e6e9ccb6a7ce0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %13, i64 noundef %551, i1 noundef zeroext false) - to label %.noexc167 unwind label %.loopexit547.i.loopexit + to label %.noexc167 unwind label %.loopexit542.i.loopexit .noexc167: ; preds = %598 %599 = load i64, ptr %13, align 8, !range !45, !noalias !511, !noundef !4 @@ -2734,7 +2748,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 %603 = phi i64 [ %600, %601 ], [ %585, %586 ] %604 = phi i64 [ %602, %601 ], [ %587, %586 ] invoke void @_ZN5alloc7raw_vec12handle_error17hc0e4a0ae60df49a1E(i64 noundef %603, i64 %604) #17 - to label %.cont unwind label %.loopexit547.i.loopexit.split-lp + to label %.cont unwind label %.loopexit542.i.loopexit.split-lp .cont: ; preds = %.invoke unreachable @@ -2744,8 +2758,8 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 call void @llvm.lifetime.end.p0(ptr nonnull %13), !noalias !511 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %606, ptr nonnull readonly align 1 %552, i64 %551, i1 false), !noalias !515 %.val88.i = load i64, ptr %292, align 8, !range !46, !noalias !238, !noundef !4 - %switch531.i = icmp sgt i64 %.val88.i, 0 - br i1 %switch531.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i251.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit252.i" + %switch526.i = icmp sgt i64 %.val88.i, 0 + br i1 %switch526.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i251.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit252.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i251.i": ; preds = %605 %.val89.i = load ptr, ptr %293, align 8, !noalias !238, !nonnull !4, !noundef !4 @@ -2761,7 +2775,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 607: ; preds = %577 call void @llvm.lifetime.start.p0(ptr nonnull %28), !noalias !525 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h7c0e6e9ccb6a7ce0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %28, i64 noundef %551, i1 noundef zeroext false) - to label %.noexc256.i unwind label %.loopexit547.i.loopexit, !noalias !245 + to label %.noexc256.i unwind label %.loopexit542.i.loopexit, !noalias !245 .noexc256.i: ; preds = %607 %608 = load i64, ptr %28, align 8, !range !45, !noalias !525, !noundef !4 @@ -2778,8 +2792,8 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 call void @llvm.lifetime.end.p0(ptr nonnull %28), !noalias !525 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %613, ptr nonnull readonly align 1 %552, i64 %551, i1 false), !noalias !529 %.val86.i = load i64, ptr %296, align 8, !range !46, !noalias !238, !noundef !4 - %switch532.i = icmp sgt i64 %.val86.i, 0 - br i1 %switch532.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i259.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit260.i" + %switch527.i = icmp sgt i64 %.val86.i, 0 + br i1 %switch527.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i259.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit260.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i259.i": ; preds = %612 %.val87.i = load ptr, ptr %297, align 8, !noalias !238, !nonnull !4, !noundef !4 @@ -2795,7 +2809,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 614: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit228.i" call void @llvm.lifetime.start.p0(ptr nonnull %54), !noalias !238 invoke void @"_ZN4core3num60_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$i64$GT$8from_str17ha05329e681512aa8E"(ptr noalias noundef nonnull sret([16 x i8]) align 8 captures(none) dereferenceable(16) %54, ptr noalias noundef nonnull readonly align 1 %552, i64 noundef %551) - to label %615 unwind label %.loopexit547.i.loopexit, !noalias !245 + to label %615 unwind label %.loopexit542.i.loopexit, !noalias !245 615: ; preds = %614 %616 = load i8, ptr %54, align 8, !range !16, !noalias !238, !noundef !4 @@ -2813,7 +2827,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 .invoke512: ; preds = %615, %591 %620 = phi i8 [ %594, %591 ], [ %618, %615 ] %621 = invoke noundef nonnull ptr @"_ZN6anyhow5error72_$LT$impl$u20$core..convert..From$LT$E$GT$$u20$for$u20$anyhow..Error$GT$4from17h1a717e12d60357e3E"(i8 noundef %620) - to label %544 unwind label %.loopexit.split-lp548.i, !noalias !245 + to label %544 unwind label %.loopexit.split-lp543.i, !noalias !245 "_ZN4core3ptr71drop_in_place$LT$core..option..Option$LT$git..blame..BlameEntry$GT$$GT$17h8156f4e530ffc9beE.exit196.i": ; preds = %547, %544 call void @llvm.lifetime.end.p0(ptr nonnull %58), !noalias !238 @@ -2894,7 +2908,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 648: ; preds = %574 call void @llvm.lifetime.start.p0(ptr nonnull %27), !noalias !571 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h7c0e6e9ccb6a7ce0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %27, i64 noundef %551, i1 noundef zeroext false) - to label %.noexc266.i unwind label %.loopexit547.i.loopexit, !noalias !245 + to label %.noexc266.i unwind label %.loopexit542.i.loopexit, !noalias !245 .noexc266.i: ; preds = %648 %649 = load i64, ptr %27, align 8, !range !45, !noalias !571, !noundef !4 @@ -2911,8 +2925,8 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 call void @llvm.lifetime.end.p0(ptr nonnull %27), !noalias !571 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %654, ptr nonnull readonly align 1 %552, i64 %551, i1 false), !noalias !575 %.val84.i = load i64, ptr %303, align 8, !range !46, !noalias !238, !noundef !4 - %switch533.i = icmp sgt i64 %.val84.i, 0 - br i1 %switch533.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i269.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit270.i" + %switch528.i = icmp sgt i64 %.val84.i, 0 + br i1 %switch528.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i269.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit270.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i269.i": ; preds = %653 %.val85.i = load ptr, ptr %304, align 8, !noalias !238, !nonnull !4, !noundef !4 @@ -2928,7 +2942,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 655: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit220.i" call void @llvm.lifetime.start.p0(ptr nonnull %26), !noalias !585 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h7c0e6e9ccb6a7ce0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %26, i64 noundef %551, i1 noundef zeroext false) - to label %.noexc274.i unwind label %.loopexit547.i.loopexit, !noalias !245 + to label %.noexc274.i unwind label %.loopexit542.i.loopexit, !noalias !245 .noexc274.i: ; preds = %655 %656 = load i64, ptr %26, align 8, !range !45, !noalias !585, !noundef !4 @@ -2945,8 +2959,8 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 call void @llvm.lifetime.end.p0(ptr nonnull %26), !noalias !585 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %661, ptr nonnull readonly align 1 %552, i64 %551, i1 false), !noalias !589 %.val82.i = load i64, ptr %307, align 8, !range !46, !noalias !238, !noundef !4 - %switch534.i = icmp sgt i64 %.val82.i, 0 - br i1 %switch534.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i277.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit278.i" + %switch529.i = icmp sgt i64 %.val82.i, 0 + br i1 %switch529.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i277.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit278.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i277.i": ; preds = %660 %.val83.i = load ptr, ptr %308, align 8, !noalias !238, !nonnull !4, !noundef !4 @@ -2962,7 +2976,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 662: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit210.i" call void @llvm.lifetime.start.p0(ptr nonnull %25), !noalias !599 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h7c0e6e9ccb6a7ce0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %25, i64 noundef %551, i1 noundef zeroext false) - to label %.noexc282.i unwind label %.loopexit547.i.loopexit, !noalias !245 + to label %.noexc282.i unwind label %.loopexit542.i.loopexit, !noalias !245 .noexc282.i: ; preds = %662 %663 = load i64, ptr %25, align 8, !range !45, !noalias !599, !noundef !4 @@ -2979,8 +2993,8 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 call void @llvm.lifetime.end.p0(ptr nonnull %25), !noalias !599 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %668, ptr nonnull readonly align 1 %552, i64 %551, i1 false), !noalias !603 %.val80.i = load i64, ptr %311, align 8, !range !46, !noalias !238, !noundef !4 - %switch535.i = icmp sgt i64 %.val80.i, 0 - br i1 %switch535.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i285.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit286.i" + %switch530.i = icmp sgt i64 %.val80.i, 0 + br i1 %switch530.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i285.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit286.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i285.i": ; preds = %667 %.val81.i = load ptr, ptr %312, align 8, !noalias !238, !nonnull !4, !noundef !4 @@ -2998,8 +3012,8 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 call void @llvm.lifetime.end.p0(ptr nonnull %29), !noalias !447 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %670, ptr nonnull readonly align 1 %552, i64 %551, i1 false), !noalias !613 %.val.i88 = load i64, ptr %315, align 8, !range !46, !noalias !238, !noundef !4 - %switch536.i = icmp sgt i64 %.val.i88, 0 - br i1 %switch536.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i287.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit288.i" + %switch531.i = icmp sgt i64 %.val.i88, 0 + br i1 %switch531.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i287.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit288.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i287.i": ; preds = %669 %.val79.i = load ptr, ptr %316, align 8, !noalias !238, !nonnull !4, !noundef !4 @@ -3082,7 +3096,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit290.i: ; preds = %680 691: ; preds = %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit290.i invoke void @"_ZN4core3ptr43drop_in_place$LT$git..blame..BlameEntry$GT$17hf9b82a9ebaaab84dE"(ptr noalias noundef nonnull align 8 dereferenceable(280) %51) - to label %.thread525.i unwind label %.loopexit547.i.loopexit, !noalias !245 + to label %.thread520.i unwind label %.loopexit542.i.loopexit, !noalias !245 692: ; preds = %686, %682 %693 = load ptr, ptr %271, align 8, !alias.scope !642, !noalias !645, !nonnull !4, !noundef !4 @@ -3091,9 +3105,9 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit290.i: ; preds = %680 %695 = add i64 %683, 1 store i64 %695, ptr %272, align 8, !alias.scope !642, !noalias !645 call void @llvm.lifetime.end.p0(ptr nonnull %49), !noalias !238 - br label %.thread525.i + br label %.thread520.i -.thread525.i: ; preds = %692, %691 +.thread520.i: ; preds = %692, %691 call void @llvm.lifetime.end.p0(ptr nonnull %51), !noalias !238 br label %.backedge.i diff --git a/bench/zed-rs/optimized/f4wwu90a2y9t62jcyj6nqzu8v.ll b/bench/zed-rs/optimized/f4wwu90a2y9t62jcyj6nqzu8v.ll index 06de1b2f613..2da4d72fe1b 100644 --- a/bench/zed-rs/optimized/f4wwu90a2y9t62jcyj6nqzu8v.ll +++ b/bench/zed-rs/optimized/f4wwu90a2y9t62jcyj6nqzu8v.ll @@ -1842,6 +1842,8 @@ define void @_ZN3git3Oid10from_bytes17h771164592ddb7f55E(ptr dead_on_unwind noal %7 = alloca [48 x i8], align 8 %8 = alloca [24 x i8], align 8 %9 = alloca [32 x i8], align 8 + %.sroa.9 = alloca i64, align 8 + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.9) call void @llvm.lifetime.start.p0(ptr nonnull %9) call void @_ZN4git23oid3Oid10from_bytes17hd9cd9500edec59f1E(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %9, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) tail call void @llvm.experimental.noalias.scope.decl(metadata !289) @@ -1911,13 +1913,15 @@ define void @_ZN3git3Oid10from_bytes17h771164592ddb7f55E(ptr dead_on_unwind noal %.sroa.7.1..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 8 %.sroa.7.1.copyload = load ptr, ptr %.sroa.7.1..sroa_idx, align 8, !alias.scope !317, !noalias !318 %.sroa.10.1..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 16 - %.sroa.10.1.copyload = load i40, ptr %.sroa.10.1..sroa_idx, align 8, !alias.scope !317, !noalias !318 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.sroa.9, ptr noundef nonnull align 8 dereferenceable(5) %.sroa.10.1..sroa_idx, i64 5, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %8) call void @llvm.lifetime.end.p0(ptr nonnull %9) + %.sroa.57.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.sroa.57.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(5) %.sroa.9, i64 5, i1 false) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.9) %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.sroa.7.1.copyload, ptr %.sroa.4.0..sroa_idx, align 8 - %.sroa.57.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i40 %.sroa.10.1.copyload, ptr %.sroa.57.0..sroa_idx, align 8 + store i8 0, ptr %0, align 8 br label %34 29: ; preds = %20, %19 @@ -1934,11 +1938,11 @@ define void @_ZN3git3Oid10from_bytes17h771164592ddb7f55E(ptr dead_on_unwind noal call void @llvm.lifetime.end.p0(ptr nonnull %9) %33 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %32, ptr %33, align 8 + store i8 1, ptr %0, align 8 + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.9) br label %34 34: ; preds = %29, %26 - %storemerge = phi i8 [ 0, %26 ], [ 1, %29 ] - store i8 %storemerge, ptr %0, align 8 ret void } @@ -2076,6 +2080,8 @@ define void @"_ZN55_$LT$git..Oid$u20$as$u20$core..str..traits..FromStr$GT$8from_ %6 = alloca [24 x i8], align 8 %7 = alloca [24 x i8], align 8 %8 = alloca [32 x i8], align 8 + %.sroa.8 = alloca i64, align 8 + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.8) call void @llvm.lifetime.start.p0(ptr nonnull %8) call void @_ZN4git23oid3Oid8from_str17h660b4c7b698f5d46E(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %8, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) %9 = load i8, ptr %8, align 8, !range !17, !noundef !4 @@ -2089,13 +2095,11 @@ define void @"_ZN55_$LT$git..Oid$u20$as$u20$core..str..traits..FromStr$GT$8from_ %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 8 %.sroa.5.0.copyload = load ptr, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.65.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 16 - %.sroa.65.0.copyload = load i40, ptr %.sroa.65.0..sroa_idx, align 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.sroa.8, ptr noundef nonnull align 8 dereferenceable(5) %.sroa.65.0..sroa_idx, i64 5, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %8) - %.sroa.413.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %.sroa.5.0.copyload, ptr %.sroa.413.0..sroa_idx, align 8 - %.sroa.514.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i40 %.sroa.65.0.copyload, ptr %.sroa.514.0..sroa_idx, align 8 - br label %29 + %.sroa.513.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.sroa.513.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(5) %.sroa.8, i64 5, i1 false) + br label %28 13: ; preds = %3 %14 = getelementptr inbounds nuw i8, ptr %8, i64 8 @@ -2163,13 +2167,15 @@ define void @"_ZN55_$LT$git..Oid$u20$as$u20$core..str..traits..FromStr$GT$8from_ call void @llvm.lifetime.end.p0(ptr nonnull %6) call void @llvm.lifetime.end.p0(ptr nonnull %7) call void @llvm.lifetime.end.p0(ptr nonnull %8) - %28 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %22, ptr %28, align 8 - br label %29 + br label %28 -29: ; preds = %"_ZN55_$LT$git..Oid$u20$as$u20$core..str..traits..FromStr$GT$8from_str28_$u7b$$u7b$closure$u7d$$u7d$17h98f489dd27269378E.llvm.5252317761193634178.exit", %10 - %storemerge = phi i8 [ 0, %10 ], [ 1, %"_ZN55_$LT$git..Oid$u20$as$u20$core..str..traits..FromStr$GT$8from_str28_$u7b$$u7b$closure$u7d$$u7d$17h98f489dd27269378E.llvm.5252317761193634178.exit" ] +28: ; preds = %"_ZN55_$LT$git..Oid$u20$as$u20$core..str..traits..FromStr$GT$8from_str28_$u7b$$u7b$closure$u7d$$u7d$17h98f489dd27269378E.llvm.5252317761193634178.exit", %10 + %.sink = phi ptr [ %22, %"_ZN55_$LT$git..Oid$u20$as$u20$core..str..traits..FromStr$GT$8from_str28_$u7b$$u7b$closure$u7d$$u7d$17h98f489dd27269378E.llvm.5252317761193634178.exit" ], [ %.sroa.5.0.copyload, %10 ] + %storemerge = phi i8 [ 1, %"_ZN55_$LT$git..Oid$u20$as$u20$core..str..traits..FromStr$GT$8from_str28_$u7b$$u7b$closure$u7d$$u7d$17h98f489dd27269378E.llvm.5252317761193634178.exit" ], [ 0, %10 ] + %29 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store ptr %.sink, ptr %29, align 8 store i8 %storemerge, ptr %0, align 8 + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.8) ret void } From 114508a42617240a08c17ada6ec7f53f96ebd4ee Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 27 Nov 2025 03:58:57 +0000 Subject: [PATCH 3/3] pre-commit: Remap --- .../boost/optimized/default_filter_factory.ll | 12 +- .../ceres/optimized/schur_eliminator_d_d_d.ll | 138 +++++++------- bench/cmake/optimized/zstdmt_compress.ll | 94 +++++----- .../optimized/2oqtsf9adaj2wzr6.ll | 88 ++++----- bench/cpp-httplib/optimized/httplib.ll | 38 ++-- bench/cvc5/optimized/options_handler.ll | 36 ++-- bench/delta-rs/optimized/31i6j0ayu6bevt9n.ll | 4 +- bench/delta-rs/optimized/s2xrj2sh770tx8d.ll | 174 +++++++++--------- bench/diesel-rs/optimized/3nhirlswgfgsoryk.ll | 98 +++++----- bench/duckdb/optimized/fastcover.ll | 38 ++-- .../optimized/538k7v4jnxs1qgfredr4viqv4.ll | 130 ++++++------- bench/ffmpeg/optimized/avformat.ll | 52 +++--- bench/grpc/optimized/channel_args.ll | 128 ++++++------- .../influxdb-rs/optimized/54bldmpi534adbqh.ll | 130 ++++++------- bench/just-rs/optimized/xt6bvrk4jdo7mpy.ll | 88 ++++----- bench/libigl/optimized/polar_svd3x3.ll | 44 ++--- bench/libigl/optimized/principal_curvature.ll | 96 +++++----- .../lightgbm/optimized/linear_tree_learner.ll | 40 ++-- .../optimized/json-schema-to-grammar.ll | 38 ++-- bench/llvm/optimized/AttributorAttributes.ll | 4 +- bench/llvm/optimized/CVSymbolVisitor.ll | 92 ++++----- bench/llvm/optimized/LivePhysRegs.ll | 4 +- bench/lvgl/optimized/lv_area.ll | 16 +- bench/miniaudio/optimized/unity.ll | 6 +- bench/mold/optimized/cmdline.cc.X86_64.ll | 88 ++++----- bench/nix/optimized/cgroup.ll | 40 ++-- bench/ockam-rs/optimized/111eznecj9pn2lkp.ll | 8 +- bench/ockam-rs/optimized/31s7w40jb5ho09e2.ll | 14 +- bench/ockam-rs/optimized/3spcfx0kj7tua4em.ll | 8 +- bench/ockam-rs/optimized/4t3y03rrak2rtjym.ll | 20 +- bench/ockam-rs/optimized/7hitgxreqt236i.ll | 12 +- .../optimized/TriangleMeshSimplification.ll | 68 +++---- bench/opencv/optimized/function.pb.ll | 80 ++++---- bench/opencv/optimized/map_field.ll | 82 ++++----- bench/openusd/optimized/layer.ll | 100 +++++----- bench/proj/optimized/param.ll | 88 ++++----- bench/raylib/optimized/rcore.ll | 32 ++-- bench/rayon-rs/optimized/42isjd4q974i3ftt.ll | 64 +++---- .../optimized/catch_amalgamated.ll | 36 ++-- bench/regex-rs/optimized/3ixfkxlmcuecmmus.ll | 52 +++--- bench/rocksdb/optimized/db_impl.ll | 38 ++-- .../optimized/2j2fovrmererjnve.ll | 110 +++++------ .../optimized/2ztqi8ib9ngj9iz.ll | 130 ++++++------- .../optimized/4qhzdiok6f4mymhy.ll | 122 ++++++------ bench/syn/optimized/3e28wvtnspuupgei.ll | 2 +- bench/syn/optimized/3r5osr990qsnm7hf.ll | 28 +-- bench/tev/optimized/Channel.ll | 34 ++-- .../optimized/2mot01sr7ebui81b.ll | 146 +++++++-------- bench/tokio-rs/optimized/1rl1r5ea6bzd5c9z.ll | 60 +++--- bench/tokio-rs/optimized/4zaq7yghb5wawieu.ll | 36 ++-- bench/typst-rs/optimized/4sdr2z2pqpqxs72u.ll | 76 ++++---- .../optimized/2dhzw0mhmvlvodqn.ll | 32 ++-- .../optimized/1z05d6joihj04oihu2i4irshf.ll | 18 +- .../wasmtime-rs/optimized/1zz7jsxv168dc7km.ll | 24 +-- .../wasmtime-rs/optimized/3hwarn3zl2ncla2z.ll | 4 +- .../wasmtime-rs/optimized/47jrn73ttlkllmrg.ll | 8 +- .../wasmtime-rs/optimized/cxg2cx8gn6v5trt.ll | 8 +- bench/yalantinglibs/optimized/channel.ll | 148 +++++++-------- .../optimized/bwf7odsfkes1o9vw37iz67e4b.ll | 128 ++++++------- .../optimized/f4wwu90a2y9t62jcyj6nqzu8v.ll | 10 +- 60 files changed, 1771 insertions(+), 1771 deletions(-) diff --git a/bench/boost/optimized/default_filter_factory.ll b/bench/boost/optimized/default_filter_factory.ll index e65e26a2a62..628dd093305 100644 --- a/bench/boost/optimized/default_filter_factory.ll +++ b/bench/boost/optimized/default_filter_factory.ll @@ -17128,10 +17128,10 @@ define linkonce_odr hidden noundef ptr @_ZSt27__unguarded_partition_pivotIPSt4pa %20 = load ptr, ptr %19, align 8, !tbaa !148 %21 = load i8, ptr %20, align 1, !tbaa !35 %22 = icmp eq i8 %21, 42 - %.idx.i.i.i.i.i.i19.i = zext i1 %22 to i64 - %23 = getelementptr inbounds nuw i8, ptr %20, i64 %.idx.i.i.i.i.i.i19.i - %.not.i.i.i.i20.i = icmp eq ptr %23, %17 - br i1 %.not.i.i.i.i20.i, label %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit.preheader.i, label %.lr.ph.i.preheader + %.idx.i.i.i.i.i.i20.i = zext i1 %22 to i64 + %23 = getelementptr inbounds nuw i8, ptr %20, i64 %.idx.i.i.i.i.i.i20.i + %.not.i.i.i.i21.i = icmp eq ptr %23, %17 + br i1 %.not.i.i.i.i21.i, label %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit.preheader.i, label %.lr.ph.i.preheader .lr.ph.i.preheader: ; preds = %11 %24 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %23, ptr noundef nonnull dereferenceable(1) %17) #28 @@ -17153,8 +17153,8 @@ _ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_m br i1 %27, label %.lr.ph, label %_ZN9__gnu_cxx5__ops15_Iter_comp_iterIN5boost3log11v2_mt_posix3aux21dispatching_map_orderEEclIPSt4pairINS2_9typeindex14stl_type_indexEPvESE_EEbT_T0_.exit.preheader.i, !llvm.loop !152 .lr.ph: ; preds = %.lr.ph.i.preheader, %.lr.ph.i - %.121.i13 = phi ptr [ %28, %.lr.ph.i ], [ %.0.i, %.lr.ph.i.preheader ] - %28 = getelementptr inbounds nuw i8, ptr %.121.i13, i64 16 + %.122.i13 = phi ptr [ %28, %.lr.ph.i ], [ %.0.i, %.lr.ph.i.preheader ] + %28 = getelementptr inbounds nuw i8, ptr %.122.i13, i64 16 %29 = load ptr, ptr %28, align 8 %30 = getelementptr inbounds nuw i8, ptr %29, i64 8 %31 = load ptr, ptr %30, align 8, !tbaa !148 diff --git a/bench/ceres/optimized/schur_eliminator_d_d_d.ll b/bench/ceres/optimized/schur_eliminator_d_d_d.ll index 45876e8b776..949a2d7f8d0 100644 --- a/bench/ceres/optimized/schur_eliminator_d_d_d.ll +++ b/bench/ceres/optimized/schur_eliminator_d_d_d.ll @@ -7202,8 +7202,8 @@ _ZN5Eigen6MatrixIdLin1ELin1ELi1ELin1ELin1EEC2IiiEERKT_RKT0_.exit.thread: ; preds %87 = getelementptr inbounds nuw i8, ptr %0, i64 16 %88 = load ptr, ptr %87, align 8, !tbaa !301 %89 = load ptr, ptr %88, align 8, !tbaa !50 - %.not102 = icmp eq ptr %89, null - br i1 %.not102, label %_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEEE11setConstantERKd.exit.loopexit.i, label %100 + %.not103 = icmp eq ptr %89, null + br i1 %.not103, label %_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEEE11setConstantERKd.exit.loopexit.i, label %100 90: ; preds = %_ZN5Eigen6MatrixIdLin1ELin1ELi1ELin1ELin1EEC2IiiEERKT_RKT0_.exit %91 = load ptr, ptr %22, align 8, !tbaa !299 @@ -7233,8 +7233,8 @@ _ZN5Eigen6MatrixIdLin1ELin1ELi1ELin1ELin1EEC2IiiEERKT_RKT0_.exit.thread: ; preds call void @llvm.lifetime.start.p0(ptr nonnull %6) %109 = getelementptr inbounds nuw i8, ptr %6, i64 8 store ptr %108, ptr %109, align 8 - %.sroa.074.sroa.5.0..sroa_idx104 = getelementptr inbounds nuw i8, ptr %6, i64 16 - store i64 %65, ptr %.sroa.074.sroa.5.0..sroa_idx104, align 8 + %.sroa.074.sroa.5.0..sroa_idx105 = getelementptr inbounds nuw i8, ptr %6, i64 16 + store i64 %65, ptr %.sroa.074.sroa.5.0..sroa_idx105, align 8 %110 = sdiv i64 9223372036854775807, %65 %111 = icmp slt i64 %110, %65 br i1 %111, label %112, label %.noexc33 @@ -7327,8 +7327,8 @@ _ZN5Eigen8internal13first_alignedILi16EdlEET1_PKT0_S2_.exit.i.i.i.i.i.i.i.i.i.i3 %.sext = sext i32 %137 to i64 %138 = shl nsw i64 %.sext, 1 %139 = add nsw i64 %138, %.0.i.i.i.i.i.i.i.i.i.i.i40 - %.not92 = icmp eq i64 %.0.i.i.i.i.i.i.i.i.i.i.i40, 0 - br i1 %.not92, label %_ZN5Eigen8internal31unaligned_dense_assignment_loopILb0EE3runINS0_31generic_dense_assignment_kernelINS0_9evaluatorINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEEEENS5_INS_14CwiseNullaryOpINS0_18scalar_constant_opIdEES8_EEEENS0_9assign_opIddEELi0EEEEEvRT_ll.exit.i.i.i.i.i.i.i.i.i.i41, label %.lr.ph.i.i.i.i.i.i.i.i.i.i.preheader.i48 + %.not93 = icmp eq i64 %.0.i.i.i.i.i.i.i.i.i.i.i40, 0 + br i1 %.not93, label %_ZN5Eigen8internal31unaligned_dense_assignment_loopILb0EE3runINS0_31generic_dense_assignment_kernelINS0_9evaluatorINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEEEENS5_INS_14CwiseNullaryOpINS0_18scalar_constant_opIdEES8_EEEENS0_9assign_opIddEELi0EEEEEvRT_ll.exit.i.i.i.i.i.i.i.i.i.i41, label %.lr.ph.i.i.i.i.i.i.i.i.i.i.preheader.i48 .lr.ph.i.i.i.i.i.i.i.i.i.i.preheader.i48: ; preds = %_ZN5Eigen8internal13first_alignedILi16EdlEET1_PKT0_S2_.exit.i.i.i.i.i.i.i.i.i.i39 %140 = shl nuw nsw i64 %.0.i.i.i.i.i.i.i.i.i.i.i40, 3 @@ -21892,11 +21892,11 @@ define linkonce_odr hidden void @_ZN5Eigen8internal32triangular_matrix_vector_pr %11 = alloca %"class.Eigen::internal::const_blas_data_mapper.539", align 8 %12 = alloca %"class.Eigen::internal::const_blas_data_mapper", align 8 %13 = alloca %"class.Eigen::internal::const_blas_data_mapper.539", align 8 - %.sroa.speculated135 = tail call i64 @llvm.smin.i64(i64 %1, i64 %0) - %14 = icmp sgt i64 %.sroa.speculated135, 0 - br i1 %14, label %.lr.ph148, label %._crit_edge149 + %.sroa.speculated136 = tail call i64 @llvm.smin.i64(i64 %1, i64 %0) + %14 = icmp sgt i64 %.sroa.speculated136, 0 + br i1 %14, label %.lr.ph151, label %._crit_edge152 -.lr.ph148: ; preds = %9 +.lr.ph151: ; preds = %9 %15 = ptrtoint ptr %6 to i64 %16 = getelementptr inbounds nuw i8, ptr %10, i64 8 %17 = getelementptr inbounds nuw i8, ptr %11, i64 8 @@ -21904,37 +21904,37 @@ define linkonce_odr hidden void @_ZN5Eigen8internal32triangular_matrix_vector_pr %.not.i.i.i.i.i.i.i = icmp eq i64 %18, 0 br label %20 -._crit_edge149: ; preds = %80, %9 +._crit_edge152: ; preds = %80, %9 %19 = icmp slt i64 %0, %1 br i1 %19, label %83, label %92 -20: ; preds = %.lr.ph148, %80 - %indvars.iv = phi i64 [ %.sroa.speculated135, %.lr.ph148 ], [ %indvars.iv.next, %80 ] - %.0146 = phi i64 [ 0, %.lr.ph148 ], [ %81, %80 ] +20: ; preds = %.lr.ph151, %80 + %indvars.iv = phi i64 [ %.sroa.speculated136, %.lr.ph148 ], [ %indvars.iv.next, %80 ] + %.0149 = phi i64 [ 0, %.lr.ph148 ], [ %81, %80 ] %21 = call i64 @llvm.smax.i64(i64 %indvars.iv, i64 1) %22 = call i64 @llvm.umin.i64(i64 %21, i64 8) - %23 = sub nsw i64 %.sroa.speculated135, %.0146 + %23 = sub nsw i64 %.sroa.speculated136, %.0149 %.sroa.speculated = call i64 @llvm.smin.i64(i64 %23, i64 8) - %invariant.gep = getelementptr double, ptr %2, i64 %.0146 + %invariant.gep = getelementptr double, ptr %2, i64 %.0149 %24 = icmp sgt i64 %23, 0 br i1 %24, label %.lr.ph, label %._crit_edge .lr.ph: ; preds = %20 - %25 = getelementptr inbounds nuw double, ptr %6, i64 %.0146 + %25 = getelementptr inbounds nuw double, ptr %6, i64 %.0149 %26 = ptrtoint ptr %25 to i64 %27 = lshr exact i64 %26, 3 %28 = and i64 %27, 1 br label %29 ._crit_edge: ; preds = %_ZN5Eigen10MatrixBaseINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINSC_18scalar_constant_opIdEEKS4_EEKNS1_IKNS1_IKNS2_IKNS3_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEERS8_RKNS0_IT_EE.exit, %20 - %.not = icmp eq i64 %.0146, 0 + %.not = icmp eq i64 %.0149, 0 br i1 %.not, label %80, label %74 29: ; preds = %.lr.ph, %_ZN5Eigen10MatrixBaseINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINSC_18scalar_constant_opIdEEKS4_EEKNS1_IKNS1_IKNS2_IKNS3_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEERS8_RKNS0_IT_EE.exit - %.058145 = phi i64 [ 0, %.lr.ph ], [ %31, %_ZN5Eigen10MatrixBaseINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINSC_18scalar_constant_opIdEEKS4_EEKNS1_IKNS1_IKNS2_IKNS3_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEERS8_RKNS0_IT_EE.exit ] - %30 = add nuw nsw i64 %.058145, %.0146 - %31 = add nuw nsw i64 %.058145, 1 - %.not62 = icmp eq i64 %.058145, 0 + %.058147 = phi i64 [ 0, %.lr.ph ], [ %31, %_ZN5Eigen10MatrixBaseINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINSC_18scalar_constant_opIdEEKS4_EEKNS1_IKNS1_IKNS2_IKNS3_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEERS8_RKNS0_IT_EE.exit ] + %30 = add nuw nsw i64 %.058147, %.0149 + %31 = add nuw nsw i64 %.058147, 1 + %.not62 = icmp eq i64 %.058147, 0 br i1 %.not62, label %._ZN5Eigen10MatrixBaseINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINSC_18scalar_constant_opIdEEKS4_EEKNS1_IKNS1_IKNS2_IKNS3_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEERS8_RKNS0_IT_EE.exit_crit_edge, label %_ZN5Eigen8internal13first_alignedILi16EdlEET1_PKT0_S2_.exit.i.i.i.i.i.i ._ZN5Eigen10MatrixBaseINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINSC_18scalar_constant_opIdEEKS4_EEKNS1_IKNS1_IKNS2_IKNS3_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEERS8_RKNS0_IT_EE.exit_crit_edge: ; preds = %29 @@ -21950,14 +21950,14 @@ _ZN5Eigen8internal13first_alignedILi16EdlEET1_PKT0_S2_.exit.i.i.i.i.i.i: ; preds %37 = mul nsw i64 %30, %3 %gep = getelementptr double, ptr %invariant.gep, i64 %37 %.sroa.3.8.vec.insert.i.i.i.i.i = insertelement <2 x double> poison, double %36, i64 0 - %38 = call i64 @llvm.smin.i64(i64 %28, i64 %.058145) - %.0.i.i.i.i.i.i.i = select i1 %.not.i.i.i.i.i.i.i, i64 %38, i64 %.058145 - %39 = sub nsw i64 %.058145, %.0.i.i.i.i.i.i.i + %38 = call i64 @llvm.smin.i64(i64 %28, i64 %.058147) + %.0.i.i.i.i.i.i.i = select i1 %.not.i.i.i.i.i.i.i, i64 %38, i64 %.058147 + %39 = sub nsw i64 %.058147, %.0.i.i.i.i.i.i.i %40 = sdiv i64 %39, 2 %41 = shl nsw i64 %40, 1 %42 = add nsw i64 %41, %.0.i.i.i.i.i.i.i - %.not150 = icmp eq i64 %.0.i.i.i.i.i.i.i, 0 - br i1 %.not150, label %_ZN5Eigen8internal31unaligned_dense_assignment_loopILb0EE3runINS0_31generic_dense_assignment_kernelINS0_9evaluatorINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEENS5_INS_13CwiseBinaryOpINS0_17scalar_product_opIddEEKNS_14CwiseNullaryOpINS0_18scalar_constant_opIdEEKS9_EEKNS6_IKNS6_IKNS7_IKNS8_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEENS0_13add_assign_opIddEELi0EEEEEvRT_ll.exit.i.i.i.i.i.i, label %.lr.ph.i.i.i.i.i.i.i + %.not153 = icmp eq i64 %.0.i.i.i.i.i.i.i, 0 + br i1 %.not153, label %_ZN5Eigen8internal31unaligned_dense_assignment_loopILb0EE3runINS0_31generic_dense_assignment_kernelINS0_9evaluatorINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEENS5_INS_13CwiseBinaryOpINS0_17scalar_product_opIddEEKNS_14CwiseNullaryOpINS0_18scalar_constant_opIdEEKS9_EEKNS6_IKNS6_IKNS7_IKNS8_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEENS0_13add_assign_opIddEELi0EEEEEvRT_ll.exit.i.i.i.i.i.i, label %.lr.ph.i.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i.i: ; preds = %_ZN5Eigen8internal13first_alignedILi16EdlEET1_PKT0_S2_.exit.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i.i %.05.i.i.i.i.i.i.i = phi i64 [ %49, %.lr.ph.i.i.i.i.i.i.i ], [ 0, %_ZN5Eigen8internal13first_alignedILi16EdlEET1_PKT0_S2_.exit.i.i.i.i.i.i ] @@ -21981,7 +21981,7 @@ _ZN5Eigen8internal31unaligned_dense_assignment_loopILb0EE3runINS0_31generic_dens br label %.lr.ph.i.i.i.i.i.i ._crit_edge.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i, %_ZN5Eigen8internal31unaligned_dense_assignment_loopILb0EE3runINS0_31generic_dense_assignment_kernelINS0_9evaluatorINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEENS5_INS_13CwiseBinaryOpINS0_17scalar_product_opIddEEKNS_14CwiseNullaryOpINS0_18scalar_constant_opIdEEKS9_EEKNS6_IKNS6_IKNS7_IKNS8_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEENS0_13add_assign_opIddEELi0EEEEEvRT_ll.exit.i.i.i.i.i.i - %52 = icmp slt i64 %42, %.058145 + %52 = icmp slt i64 %42, %.058147 br i1 %52, label %.lr.ph.i17.i.i.i.i.i.i, label %_ZN5Eigen10MatrixBaseINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINSC_18scalar_constant_opIdEEKS4_EEKNS1_IKNS1_IKNS2_IKNS3_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEERS8_RKNS0_IT_EE.exit .lr.ph.i17.i.i.i.i.i.i: ; preds = %._crit_edge.i.i.i.i.i.i, %.lr.ph.i17.i.i.i.i.i.i @@ -21994,7 +21994,7 @@ _ZN5Eigen8internal31unaligned_dense_assignment_loopILb0EE3runINS0_31generic_dens %58 = fadd double %56, %57 store double %58, ptr %53, align 8, !tbaa !138 %59 = add nsw i64 %.05.i18.i.i.i.i.i.i, 1 - %exitcond.not.i19.i.i.i.i.i.i = icmp eq i64 %59, %.058145 + %exitcond.not.i19.i.i.i.i.i.i = icmp eq i64 %59, %.058147 br i1 %exitcond.not.i19.i.i.i.i.i.i, label %_ZN5Eigen10MatrixBaseINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINSC_18scalar_constant_opIdEEKS4_EEKNS1_IKNS1_IKNS2_IKNS3_IdLin1ELin1ELi0ELin1ELin1EEELi0ENS_11OuterStrideILin1EEEEELin1ELi1ELb1EEELin1ELi1ELb0EEEEEEERS8_RKNS0_IT_EE.exit, label %.lr.ph.i17.i.i.i.i.i.i, !llvm.loop !964 .lr.ph.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i, %.lr.ph.i.preheader.i.i.i.i.i @@ -22024,48 +22024,48 @@ _ZN5Eigen10MatrixBaseINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0E 74: ; preds = %._crit_edge call void @llvm.lifetime.start.p0(ptr nonnull %10) - %75 = mul nsw i64 %.0146, %3 + %75 = mul nsw i64 %.0149, %3 %76 = getelementptr double, ptr %2, i64 %75 store ptr %76, ptr %10, align 8, !tbaa !374 store i64 %3, ptr %16, align 8, !tbaa !376 call void @llvm.lifetime.start.p0(ptr nonnull %11) - %77 = mul nsw i64 %.0146, %5 + %77 = mul nsw i64 %.0149, %5 %78 = getelementptr inbounds double, ptr %4, i64 %77 store ptr %78, ptr %11, align 8, !tbaa !377 store i64 %5, ptr %17, align 8, !tbaa !379 %79 = load double, ptr %8, align 8, !tbaa !138 - call void @_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi0EEELi0ELb0EdNS2_IdlLi1EEELb0ELi1EE3runEllRKS3_RKS4_Pdld(i64 noundef %.0146, i64 noundef %.sroa.speculated, ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef nonnull %6, i64 noundef %7, double noundef %79) + call void @_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi0EEELi0ELb0EdNS2_IdlLi1EEELb0ELi1EE3runEllRKS3_RKS4_Pdld(i64 noundef %.0149, i64 noundef %.sroa.speculated, ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef nonnull %6, i64 noundef %7, double noundef %79) call void @llvm.lifetime.end.p0(ptr nonnull %11) call void @llvm.lifetime.end.p0(ptr nonnull %10) br label %80 80: ; preds = %74, %._crit_edge - %81 = add nuw nsw i64 %.0146, 8 - %82 = icmp slt i64 %81, %.sroa.speculated135 + %81 = add nuw nsw i64 %.0149, 8 + %82 = icmp slt i64 %81, %.sroa.speculated136 %indvars.iv.next = add i64 %indvars.iv, -8 - br i1 %82, label %20, label %._crit_edge149, !llvm.loop !967 + br i1 %82, label %20, label %._crit_edge152, !llvm.loop !967 -83: ; preds = %._crit_edge149 - %84 = sub nsw i64 %1, %.sroa.speculated135 +83: ; preds = %._crit_edge152 + %84 = sub nsw i64 %1, %.sroa.speculated136 call void @llvm.lifetime.start.p0(ptr nonnull %12) - %85 = mul nsw i64 %3, %.sroa.speculated135 + %85 = mul nsw i64 %3, %.sroa.speculated136 %86 = getelementptr double, ptr %2, i64 %85 store ptr %86, ptr %12, align 8, !tbaa !374 %87 = getelementptr inbounds nuw i8, ptr %12, i64 8 store i64 %3, ptr %87, align 8, !tbaa !376 call void @llvm.lifetime.start.p0(ptr nonnull %13) - %88 = mul nsw i64 %5, %.sroa.speculated135 + %88 = mul nsw i64 %5, %.sroa.speculated136 %89 = getelementptr inbounds double, ptr %4, i64 %88 store ptr %89, ptr %13, align 8, !tbaa !377 %90 = getelementptr inbounds nuw i8, ptr %13, i64 8 store i64 %5, ptr %90, align 8, !tbaa !379 %91 = load double, ptr %8, align 8, !tbaa !138 - call void @_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi0EEELi0ELb0EdNS2_IdlLi1EEELb0ELi0EE3runEllRKS3_RKS4_Pdld(i64 noundef %.sroa.speculated135, i64 noundef %84, ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef %6, i64 noundef %7, double noundef %91) + call void @_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi0EEELi0ELb0EdNS2_IdlLi1EEELb0ELi0EE3runEllRKS3_RKS4_Pdld(i64 noundef %.sroa.speculated136, i64 noundef %84, ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef %6, i64 noundef %7, double noundef %91) call void @llvm.lifetime.end.p0(ptr nonnull %13) call void @llvm.lifetime.end.p0(ptr nonnull %12) br label %92 -92: ; preds = %83, %._crit_edge149 +92: ; preds = %83, %._crit_edge152 ret void } @@ -26638,46 +26638,46 @@ define linkonce_odr hidden void @_ZN5Eigen8internal20generic_product_implINS_9Tr %20 = load i64, ptr %19, align 8 %.not8.i.i.i = icmp eq i64 %20, %.sroa.8.56.copyload.i %or.cond.i.i.i = select i1 %.not.i.i.i, i1 %.not8.i.i.i, i1 false - br i1 %or.cond.i.i.i, label %_ZN5Eigen8internal20generic_product_implINS_9TransposeIKNS_5BlockIKNS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELin1ELb0EEEEENS_14CwiseNullaryOpINS0_18scalar_identity_opIdEES5_EENS_10DenseShapeESE_Li3EE17eval_dynamic_implINS4_IdLin1ELin1ELi0ELin1ELin1EEES9_SD_NS0_9assign_opIddEEdEEvRT_RKT0_RKT1_RKT2_RKT3_NS0_10false_typeE.exit, label %21 + br i1 %or.cond.i.i.i, label %_ZN5Eigen8internal20generic_product_implINS_9TransposeIKNS_5BlockIKNS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELin1ELb0EEEEENS_14CwiseNullaryOpINS0_18scalar_identity_opIdEES5_EENS_10DenseShapeESE_Li3EE17eval_dynamic_implINS4_IdLin1ELin1ELi0ELin1ELin1EEES9_SD_NS0_9assign_opIddEEdEEvRT_RKT0_RKT1_RKT2_RKT3_NS0_10false_typeE.exit, label %20 -21: ; preds = %4 - %22 = icmp eq i64 %.sroa.5.0.copyload, 0 - %23 = icmp eq i64 %.sroa.8.56.copyload.i, 0 - %or.cond.i.i.i.i.i = or i1 %22, %23 - br i1 %or.cond.i.i.i.i.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i.i, label %24 +20: ; preds = %4 + %21 = icmp eq i64 %.sroa.5.0.copyload, 0 + %22 = icmp eq i64 %.sroa.8.56.copyload.i, 0 + %or.cond.i.i.i.i.i = or i1 %21, %22 + br i1 %or.cond.i.i.i.i.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i.i, label %23 -24: ; preds = %21 - %25 = sdiv i64 9223372036854775807, %.sroa.8.56.copyload.i - %26 = icmp sgt i64 %.sroa.5.0.copyload, %25 - br i1 %26, label %.noexc.i.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i.i +23: ; preds = %20 + %24 = sdiv i64 9223372036854775807, %.sroa.8.56.copyload.i + %25 = icmp sgt i64 %.sroa.5.0.copyload, %24 + br i1 %25, label %.noexc.i.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i.i -.noexc.i.i: ; preds = %24 - %27 = tail call ptr @__cxa_allocate_exception(i64 8) #36 - store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %27, align 8, !tbaa !3 - tail call void @__cxa_throw(ptr nonnull %27, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #38 +.noexc.i.i: ; preds = %23 + %26 = tail call ptr @__cxa_allocate_exception(i64 8) #36 + store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %26, align 8, !tbaa !3 + tail call void @__cxa_throw(ptr nonnull %26, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #38 unreachable -_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i.i: ; preds = %24, %21 - %28 = mul nsw i64 %.sroa.8.56.copyload.i, %.sroa.5.0.copyload - tail call void @_ZN5Eigen12DenseStorageIdLin1ELin1ELin1ELi0EE6resizeElll(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %28, i64 noundef %.sroa.5.0.copyload, i64 noundef %.sroa.8.56.copyload.i) +_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i.i: ; preds = %23, %20 + %27 = mul nsw i64 %.sroa.8.56.copyload.i, %.sroa.5.0.copyload + tail call void @_ZN5Eigen12DenseStorageIdLin1ELin1ELin1ELi0EE6resizeElll(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %27, i64 noundef %.sroa.5.0.copyload, i64 noundef %.sroa.8.56.copyload.i) %.pre.i.i = load i64, ptr %17, align 8, !tbaa !977 br label %_ZN5Eigen8internal20generic_product_implINS_9TransposeIKNS_5BlockIKNS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELin1ELb0EEEEENS_14CwiseNullaryOpINS0_18scalar_identity_opIdEES5_EENS_10DenseShapeESE_Li3EE17eval_dynamic_implINS4_IdLin1ELin1ELi0ELin1ELin1EEES9_SD_NS0_9assign_opIddEEdEEvRT_RKT0_RKT1_RKT2_RKT3_NS0_10false_typeE.exit _ZN5Eigen8internal20generic_product_implINS_9TransposeIKNS_5BlockIKNS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELin1ELb0EEEEENS_14CwiseNullaryOpINS0_18scalar_identity_opIdEES5_EENS_10DenseShapeESE_Li3EE17eval_dynamic_implINS4_IdLin1ELin1ELi0ELin1ELin1EEES9_SD_NS0_9assign_opIddEEdEEvRT_RKT0_RKT1_RKT2_RKT3_NS0_10false_typeE.exit: ; preds = %4, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i.i - %29 = phi i64 [ %.pre.i.i, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i.i ], [ %.sroa.5.0.copyload, %4 ] + %28 = phi i64 [ %.pre.i.i, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i.i ], [ %.sroa.5.0.copyload, %4 ] call void @llvm.lifetime.start.p0(ptr nonnull %6) - %30 = load ptr, ptr %0, align 8, !tbaa !924 - store ptr %30, ptr %6, align 8, !tbaa !1128 - %31 = getelementptr inbounds nuw i8, ptr %6, i64 8 - store i64 %29, ptr %31, align 8, !tbaa !1130 + %29 = load ptr, ptr %0, align 8, !tbaa !924 + store ptr %29, ptr %6, align 8, !tbaa !1128 + %30 = getelementptr inbounds nuw i8, ptr %6, i64 8 + store i64 %28, ptr %30, align 8, !tbaa !1130 call void @llvm.lifetime.start.p0(ptr nonnull %7) store ptr %6, ptr %7, align 8, !tbaa !1131 - %32 = getelementptr inbounds nuw i8, ptr %7, i64 8 - store ptr %5, ptr %32, align 8, !tbaa !1133 - %33 = getelementptr inbounds nuw i8, ptr %7, i64 16 - store ptr %3, ptr %33, align 8, !tbaa !1135 - %34 = getelementptr inbounds nuw i8, ptr %7, i64 24 - store ptr %0, ptr %34, align 8, !tbaa !919 + %31 = getelementptr inbounds nuw i8, ptr %7, i64 8 + store ptr %5, ptr %31, align 8, !tbaa !1133 + %32 = getelementptr inbounds nuw i8, ptr %7, i64 16 + store ptr %3, ptr %32, align 8, !tbaa !1135 + %33 = getelementptr inbounds nuw i8, ptr %7, i64 24 + store ptr %0, ptr %33, align 8, !tbaa !919 call void @_ZN5Eigen8internal21dense_assignment_loopINS0_41restricted_packet_dense_assignment_kernelINS0_9evaluatorINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEENS3_INS_7ProductINS_9TransposeIKNS_5BlockIKNS4_IdLin1ELin1ELi1ELin1ELin1EEELin1ELin1ELb0EEEEENS_14CwiseNullaryOpINS0_18scalar_identity_opIdEESA_EELi1EEEEENS0_9assign_opIddEEEELi4ELi0EE3runERSN_(ptr noundef nonnull align 8 dereferenceable(32) %7) call void @llvm.lifetime.end.p0(ptr nonnull %7) call void @llvm.lifetime.end.p0(ptr nonnull %6) diff --git a/bench/cmake/optimized/zstdmt_compress.ll b/bench/cmake/optimized/zstdmt_compress.ll index 82fb14fd630..1221fcdc80e 100644 --- a/bench/cmake/optimized/zstdmt_compress.ll +++ b/bench/cmake/optimized/zstdmt_compress.ll @@ -2708,36 +2708,36 @@ define internal fastcc noundef ptr @ZSTDMT_expandBufferPool(ptr noundef %0, i32 br i1 %.not16.i, label %._crit_edge.i, label %.lr.ph.i .lr.ph.i: ; preds = %.preheader.i - %11 = getelementptr inbounds nuw i8, ptr %0, i64 48 - br label %12 + %10 = getelementptr inbounds nuw i8, ptr %0, i64 48 + br label %11 -12: ; preds = %ZSTD_customFree.exit.i, %.lr.ph.i +11: ; preds = %ZSTD_customFree.exit.i, %.lr.ph.i %indvars.iv.i = phi i64 [ 0, %.lr.ph.i ], [ %indvars.iv.next.i, %ZSTD_customFree.exit.i ] - %13 = getelementptr inbounds nuw %struct.buffer_s, ptr %11, i64 %indvars.iv.i - %14 = load ptr, ptr %13, align 8, !tbaa !44 + %12 = getelementptr inbounds nuw %struct.buffer_s, ptr %10, i64 %indvars.iv.i + %13 = load ptr, ptr %12, align 8, !tbaa !44 %.val.i = load ptr, ptr %.sroa.4.0..sroa_idx, align 8 %.val9.i = load ptr, ptr %.sroa.526.0..sroa_idx, align 8 - %.not.i.i = icmp eq ptr %14, null - br i1 %.not.i.i, label %ZSTD_customFree.exit.i, label %15 + %.not.i.i = icmp eq ptr %13, null + br i1 %.not.i.i, label %ZSTD_customFree.exit.i, label %14 -15: ; preds = %12 +14: ; preds = %11 %.not4.i.i = icmp eq ptr %.val.i, null - br i1 %.not4.i.i, label %17, label %16 + br i1 %.not4.i.i, label %16, label %15 -16: ; preds = %15 - tail call void %.val.i(ptr noundef %.val9.i, ptr noundef nonnull %14) #15 +15: ; preds = %14 + tail call void %.val.i(ptr noundef %.val9.i, ptr noundef nonnull %13) #15 br label %ZSTD_customFree.exit.i -17: ; preds = %15 - tail call void @free(ptr noundef nonnull %14) #15 +16: ; preds = %14 + tail call void @free(ptr noundef nonnull %13) #15 br label %ZSTD_customFree.exit.i -ZSTD_customFree.exit.i: ; preds = %17, %16, %12 +ZSTD_customFree.exit.i: ; preds = %16, %15, %11 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %18 = load i32, ptr %5, align 8, !tbaa !37 - %19 = zext i32 %18 to i64 - %20 = icmp samesign ult i64 %indvars.iv.next.i, %19 - br i1 %20, label %12, label %._crit_edge.i.loopexit, !llvm.loop !45 + %17 = load i32, ptr %5, align 8, !tbaa !37 + %18 = zext i32 %17 to i64 + %19 = icmp samesign ult i64 %indvars.iv.next.i, %18 + br i1 %19, label %11, label %._crit_edge.i.loopexit, !llvm.loop !45 ._crit_edge.i.loopexit: ; preds = %ZSTD_customFree.exit.i %.val10.i.pre = load ptr, ptr %.sroa.4.0..sroa_idx, align 8 @@ -2746,55 +2746,55 @@ ZSTD_customFree.exit.i: ; preds = %17, %16, %12 ._crit_edge.i: ; preds = %._crit_edge.i.loopexit, %.preheader.i %.val10.i = phi ptr [ %.val10.i.pre, %._crit_edge.i.loopexit ], [ %10, %.preheader.i ] %.not4.i13.i = icmp eq ptr %.val10.i, null - br i1 %.not4.i13.i, label %22, label %21 + br i1 %.not4.i13.i, label %21, label %20 -21: ; preds = %._crit_edge.i +20: ; preds = %._crit_edge.i %.val11.i = load ptr, ptr %.sroa.526.0..sroa_idx, align 8 tail call void %.val10.i(ptr noundef %.val11.i, ptr noundef nonnull %0) #15 br label %ZSTDMT_freeBufferPool.exit -22: ; preds = %._crit_edge.i +21: ; preds = %._crit_edge.i tail call void @free(ptr noundef nonnull %0) #15 br label %ZSTDMT_freeBufferPool.exit -ZSTDMT_freeBufferPool.exit: ; preds = %21, %22 - %23 = add i32 %1, -1 - %24 = zext i32 %23 to i64 - %25 = shl nuw nsw i64 %24, 4 - %26 = add nuw nsw i64 %25, 64 +ZSTDMT_freeBufferPool.exit: ; preds = %20, %21 + %22 = add i32 %1, -1 + %23 = zext i32 %22 to i64 + %24 = shl nuw nsw i64 %23, 4 + %25 = add nuw nsw i64 %24, 64 %.not.i.i17 = icmp eq ptr %.sroa.025.0.copyload, null - br i1 %.not.i.i17, label %29, label %27 + br i1 %.not.i.i17, label %28, label %26 -27: ; preds = %ZSTDMT_freeBufferPool.exit - %28 = tail call ptr %.sroa.025.0.copyload(ptr noundef %.sroa.526.0.copyload, i64 noundef range(i64 -17179869136, 1546188226201) %26) #15 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %28, i8 0, i64 range(i64 -17179869136, 1546188226201) %26, i1 false) +26: ; preds = %ZSTDMT_freeBufferPool.exit + %27 = tail call ptr %.sroa.025.0.copyload(ptr noundef %.sroa.526.0.copyload, i64 noundef range(i64 -17179869136, 1546188226201) %25) #15 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %27, i8 0, i64 range(i64 -17179869136, 1546188226201) %25, i1 false) br label %ZSTD_customCalloc.exit.i -29: ; preds = %ZSTDMT_freeBufferPool.exit - %30 = tail call noalias ptr @calloc(i64 noundef 1, i64 noundef range(i64 -17179869136, 1546188226201) %26) #16 +28: ; preds = %ZSTDMT_freeBufferPool.exit + %29 = tail call noalias ptr @calloc(i64 noundef 1, i64 noundef range(i64 -17179869136, 1546188226201) %25) #16 br label %ZSTD_customCalloc.exit.i -ZSTD_customCalloc.exit.i: ; preds = %29, %27 - %.0.i.i = phi ptr [ %28, %27 ], [ %30, %29 ] - %31 = icmp eq ptr %.0.i.i, null - br i1 %31, label %ZSTDMT_createBufferPool.exit.thread, label %32 - -32: ; preds = %ZSTD_customCalloc.exit.i - %33 = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 8 - %34 = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 16 - store i32 %1, ptr %34, align 8, !tbaa !37 - %35 = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 20 - store i32 0, ptr %35, align 4, !tbaa !35 - %36 = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 24 - store ptr %.sroa.025.0.copyload, ptr %36, align 8, !tbaa !38 +ZSTD_customCalloc.exit.i: ; preds = %28, %26 + %.0.i.i = phi ptr [ %27, %27 ], [ %29, %29 ] + %30 = icmp eq ptr %.0.i.i, null + br i1 %30, label %ZSTDMT_createBufferPool.exit.thread, label %31 + +31: ; preds = %ZSTD_customCalloc.exit.i + %32 = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 8 + %33 = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 16 + store i32 %1, ptr %33, align 8, !tbaa !37 + %34 = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 20 + store i32 0, ptr %34, align 4, !tbaa !35 + %35 = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 24 + store ptr %.sroa.025.0.copyload, ptr %35, align 8, !tbaa !38 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 32 store i64 %.sroa.4.0.copyload, ptr %.sroa.5.0..sroa_idx, align 8, !tbaa !38 %.sroa.522.0..sroa_idx = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 40 store ptr %.sroa.526.0.copyload, ptr %.sroa.522.0..sroa_idx, align 8, !tbaa !38 - store i64 %9, ptr %33, align 8, !tbaa !101 + store i64 %9, ptr %32, align 8, !tbaa !101 br label %ZSTDMT_createBufferPool.exit.thread -ZSTDMT_createBufferPool.exit.thread: ; preds = %ZSTD_customCalloc.exit.i, %32, %4, %2 +ZSTDMT_createBufferPool.exit.thread: ; preds = %ZSTD_customCalloc.exit.i, %31, %4, %2 %.0 = phi ptr [ null, %2 ], [ %0, %4 ], [ %.0.i.i, %32 ], [ null, %ZSTD_customCalloc.exit.i ] ret ptr %.0 } diff --git a/bench/coreutils-rs/optimized/2oqtsf9adaj2wzr6.ll b/bench/coreutils-rs/optimized/2oqtsf9adaj2wzr6.ll index 6a748d557c7..53bb588ff3b 100644 --- a/bench/coreutils-rs/optimized/2oqtsf9adaj2wzr6.ll +++ b/bench/coreutils-rs/optimized/2oqtsf9adaj2wzr6.ll @@ -8184,80 +8184,80 @@ define hidden void @"_ZN5rayon4iter6extend91_$LT$impl$u20$rayon..iter..ParallelE tail call void @llvm.experimental.noalias.scope.decl(metadata !1593) %30 = inttoptr i64 %.sroa.0.0.copyload17 to ptr %.sroa.6.0.copyload.i.i.i = load i64, ptr %.sroa.638.0..sroa_idx, align 8, !alias.scope !1593, !noalias !1596 - br i1 %11, label %"_ZN5rayon4iter7collect14special_extend28_$u7b$$u7b$closure$u7d$$u7d$17hc8a3a0c98ee3b84bE.exit.i", label %31 + br i1 %11, label %"_ZN5rayon4iter7collect14special_extend28_$u7b$$u7b$closure$u7d$$u7d$17hc8a3a0c98ee3b84bE.exit.i", label %30 -31: ; preds = %"_ZN5rayon4iter7collect8consumer24CollectConsumer$LT$T$GT$8appender17hfb16059cd5ced269E.exit.i" - %32 = icmp eq i64 %.sroa.6.0.copyload25, 0 - br i1 %32, label %37, label %33, !prof !1564 +30: ; preds = %"_ZN5rayon4iter7collect8consumer24CollectConsumer$LT$T$GT$8appender17hfb16059cd5ced269E.exit.i" + %31 = icmp eq i64 %.sroa.6.0.copyload25, 0 + br i1 %31, label %36, label %32, !prof !1564 -33: ; preds = %31 - %34 = add i64 %.sroa.5.0.copyload21, -1 - %35 = udiv i64 %34, %.sroa.6.0.copyload25 - %36 = add nuw i64 %35, 1 +32: ; preds = %30 + %33 = add i64 %.sroa.5.0.copyload21, -1 + %34 = udiv i64 %33, %.sroa.6.0.copyload25 + %35 = add nuw i64 %34, 1 br label %"_ZN5rayon4iter7collect14special_extend28_$u7b$$u7b$closure$u7d$$u7d$17hc8a3a0c98ee3b84bE.exit.i" -37: ; preds = %31 +36: ; preds = %30 tail call void @_ZN4core9panicking5panic17h44790a89027c670fE(ptr noalias noundef nonnull readonly align 1 @str.0.llvm.687266931824691263, i64 noundef 25, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.8bc848f7dd0dfb57e1f6a25012cf8bbb.78.llvm.687266931824691263) #33, !noalias !1598 unreachable -"_ZN5rayon4iter7collect14special_extend28_$u7b$$u7b$closure$u7d$$u7d$17hc8a3a0c98ee3b84bE.exit.i": ; preds = %33, %"_ZN5rayon4iter7collect8consumer24CollectConsumer$LT$T$GT$8appender17hfb16059cd5ced269E.exit.i" - %.0.i.i.i.i.i.i.i.i = phi i64 [ %36, %33 ], [ 0, %"_ZN5rayon4iter7collect8consumer24CollectConsumer$LT$T$GT$8appender17hfb16059cd5ced269E.exit.i" ] - %38 = getelementptr inbounds nuw i8, ptr %5, i64 32 - %39 = icmp ne i64 %.sroa.0.0.copyload17, 0 - tail call void @llvm.assume(i1 %39) +"_ZN5rayon4iter7collect14special_extend28_$u7b$$u7b$closure$u7d$$u7d$17hc8a3a0c98ee3b84bE.exit.i": ; preds = %32, %"_ZN5rayon4iter7collect8consumer24CollectConsumer$LT$T$GT$8appender17hfb16059cd5ced269E.exit.i" + %.0.i.i.i.i.i.i.i.i = phi i64 [ %35, %33 ], [ 0, %"_ZN5rayon4iter7collect8consumer24CollectConsumer$LT$T$GT$8appender17hfb16059cd5ced269E.exit.i" ] + %37 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %38 = icmp ne i64 %.sroa.0.0.copyload17, 0 + tail call void @llvm.assume(i1 %38) call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !1613 - store ptr %38, ptr %4, align 8, !noalias !1622 + store ptr %37, ptr %4, align 8, !noalias !1622 %.sroa.2.0..sroa_idx.i.i.i = getelementptr inbounds nuw i8, ptr %4, i64 8 store ptr %29, ptr %.sroa.2.0..sroa_idx.i.i.i, align 8, !noalias !1622 %.sroa.3.0..sroa_idx.i.i.i = getelementptr inbounds nuw i8, ptr %4, i64 16 store i64 %.0.i.i.i.i, ptr %.sroa.3.0..sroa_idx.i.i.i, align 8, !noalias !1622 %.sroa.42.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %4, i64 24 store i64 %.0.i.i.i.i.i.i.i.i, ptr %.sroa.42.0..sroa_idx.i.i.i.i.i, align 8, !noalias !1623 - %40 = getelementptr inbounds nuw i8, ptr %4, i64 32 - store i64 %.sroa.6.0.copyload.i.i.i, ptr %40, align 8, !noalias !1613 + %39 = getelementptr inbounds nuw i8, ptr %4, i64 32 + store i64 %.sroa.6.0.copyload.i.i.i, ptr %39, align 8, !noalias !1613 call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !1624 - %41 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store i64 %.sroa.6.0.copyload25, ptr %41, align 8, !noalias !1624 + %40 = getelementptr inbounds nuw i8, ptr %3, i64 16 + store i64 %.sroa.6.0.copyload25, ptr %40, align 8, !noalias !1624 store ptr %30, ptr %3, align 8, !noalias !1624 - %42 = getelementptr inbounds nuw i8, ptr %3, i64 8 - store i64 %.sroa.5.0.copyload21, ptr %42, align 8, !noalias !1624 + %41 = getelementptr inbounds nuw i8, ptr %3, i64 8 + store i64 %.sroa.5.0.copyload21, ptr %41, align 8, !noalias !1624 call void @"_ZN193_$LT$$LT$rayon..iter..len..MaxLen$LT$I$GT$$u20$as$u20$rayon..iter..IndexedParallelIterator$GT$..with_producer..Callback$LT$CB$GT$$u20$as$u20$rayon..iter..plumbing..ProducerCallback$LT$T$GT$$GT$8callback17hf6444c705e79cfa4E"(ptr noalias noundef nonnull sret({ ptr, i64, i64, {} }) align 8 captures(none) dereferenceable(24) %9, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(40) %4, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %3), !noalias !1629 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !1624 call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !1613 call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !1588 call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !1577 - %43 = getelementptr inbounds nuw i8, ptr %9, i64 16 - %44 = load i64, ptr %43, align 8, !noalias !1577, !noundef !12 - store i64 %44, ptr %8, align 8, !noalias !1577 - %.not.i = icmp eq i64 %44, %.0.i.i.i.i - br i1 %.not.i, label %_ZN5rayon4iter7collect21collect_with_consumer17h8bd715d4c7ec74dbE.exit, label %45 + %42 = getelementptr inbounds nuw i8, ptr %9, i64 16 + %43 = load i64, ptr %42, align 8, !noalias !1577, !noundef !12 + store i64 %43, ptr %8, align 8, !noalias !1577 + %.not.i = icmp eq i64 %43, %.0.i.i.i.i + br i1 %.not.i, label %_ZN5rayon4iter7collect21collect_with_consumer17h8bd715d4c7ec74dbE.exit, label %44 -45: ; preds = %"_ZN5rayon4iter7collect14special_extend28_$u7b$$u7b$closure$u7d$$u7d$17hc8a3a0c98ee3b84bE.exit.i" +44: ; preds = %"_ZN5rayon4iter7collect14special_extend28_$u7b$$u7b$closure$u7d$$u7d$17hc8a3a0c98ee3b84bE.exit.i" call void @llvm.lifetime.start.p0(ptr nonnull %7), !noalias !1577 call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !1577 store ptr %10, ptr %6, align 8, !noalias !1577 - %46 = getelementptr inbounds nuw i8, ptr %6, i64 8 - store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h0516a742b2dd93cdE", ptr %46, align 8, !noalias !1577 - %47 = getelementptr inbounds nuw i8, ptr %6, i64 16 - store ptr %8, ptr %47, align 8, !noalias !1577 - %48 = getelementptr inbounds nuw i8, ptr %6, i64 24 - store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h0516a742b2dd93cdE", ptr %48, align 8, !noalias !1577 + %45 = getelementptr inbounds nuw i8, ptr %6, i64 8 + store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h0516a742b2dd93cdE", ptr %45, align 8, !noalias !1577 + %46 = getelementptr inbounds nuw i8, ptr %6, i64 16 + store ptr %8, ptr %46, align 8, !noalias !1577 + %47 = getelementptr inbounds nuw i8, ptr %6, i64 24 + store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h0516a742b2dd93cdE", ptr %47, align 8, !noalias !1577 store ptr @anon.613dbf0bc33d550c317acf1fc6a04ca9.88, ptr %7, align 8, !alias.scope !1630, !noalias !1633 - %49 = getelementptr inbounds nuw i8, ptr %7, i64 8 - store i64 2, ptr %49, align 8, !alias.scope !1630, !noalias !1633 - %50 = getelementptr inbounds nuw i8, ptr %7, i64 32 - store ptr null, ptr %50, align 8, !alias.scope !1630, !noalias !1633 - %51 = getelementptr inbounds nuw i8, ptr %7, i64 16 - store ptr %6, ptr %51, align 8, !alias.scope !1630, !noalias !1633 - %52 = getelementptr inbounds nuw i8, ptr %7, i64 24 - store i64 2, ptr %52, align 8, !alias.scope !1630, !noalias !1633 + %48 = getelementptr inbounds nuw i8, ptr %7, i64 8 + store i64 2, ptr %48, align 8, !alias.scope !1630, !noalias !1633 + %49 = getelementptr inbounds nuw i8, ptr %7, i64 32 + store ptr null, ptr %49, align 8, !alias.scope !1630, !noalias !1633 + %50 = getelementptr inbounds nuw i8, ptr %7, i64 16 + store ptr %6, ptr %50, align 8, !alias.scope !1630, !noalias !1633 + %51 = getelementptr inbounds nuw i8, ptr %7, i64 24 + store i64 2, ptr %51, align 8, !alias.scope !1630, !noalias !1633 call void @_ZN4core9panicking9panic_fmt17ha6effc2775a0749cE(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %7, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.613dbf0bc33d550c317acf1fc6a04ca9.90) #33, !noalias !1582 unreachable _ZN5rayon4iter7collect21collect_with_consumer17h8bd715d4c7ec74dbE.exit: ; preds = %"_ZN5rayon4iter7collect14special_extend28_$u7b$$u7b$closure$u7d$$u7d$17hc8a3a0c98ee3b84bE.exit.i" - %53 = load i64, ptr %19, align 8, !alias.scope !1574, !noalias !1582, !noundef !12 - %54 = add i64 %53, %.0.i.i.i.i - store i64 %54, ptr %19, align 8, !alias.scope !1574, !noalias !1582 + %52 = load i64, ptr %19, align 8, !alias.scope !1574, !noalias !1582, !noundef !12 + %53 = add i64 %52, %.0.i.i.i.i + store i64 %53, ptr %19, align 8, !alias.scope !1574, !noalias !1582 call void @llvm.lifetime.end.p0(ptr nonnull %8), !noalias !1577 call void @llvm.lifetime.end.p0(ptr nonnull %9), !noalias !1577 call void @llvm.lifetime.end.p0(ptr nonnull %10) diff --git a/bench/cpp-httplib/optimized/httplib.ll b/bench/cpp-httplib/optimized/httplib.ll index 7f79b161576..1ce43b66ce8 100644 --- a/bench/cpp-httplib/optimized/httplib.ll +++ b/bench/cpp-httplib/optimized/httplib.ll @@ -23896,7 +23896,7 @@ _ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_strin br label %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit40 _ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20._ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.thread.i39_crit_edge: ; preds = %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit.thread55 - %.in.in68 = getelementptr i8, ptr %3, i64 8 + %.in.in67 = getelementptr i8, ptr %3, i64 8 br label %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit40 _ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit40: ; preds = %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit34.thread53, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20._ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.thread.i39_crit_edge, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20 @@ -115314,7 +115314,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8, !tbaa !78, !range !47, !noundef !48 %16 = trunc nuw i8 %15 to i1 - br i1 %16, label %17, label %51 + br i1 %16, label %17, label %50 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -115362,7 +115362,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato store ptr %33, ptr %36, align 8, !tbaa !1249 %37 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) call void @llvm.lifetime.end.p0(ptr nonnull %4) - br i1 %37, label %41, label %51 + br i1 %37, label %41, label %50 38: ; preds = %27 %39 = getelementptr inbounds nuw i8, ptr %.sroa.017.023, i64 1 @@ -115373,7 +115373,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato 41: ; preds = %.critedge %42 = load ptr, ptr %18, align 8 %.not21 = icmp eq ptr %.sroa.017.0.lcssa, %42 - br i1 %.not21, label %48, label %43 + br i1 %.not21, label %47, label %43 43: ; preds = %41 %44 = ptrtoint ptr %42 to i64 @@ -115385,13 +115385,13 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato store i64 %44, ptr %18, align 8, !tbaa !82 br label %51 -48: ; preds = %41 - %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %50 = load i64, ptr %49, align 8, !tbaa !1260 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %50) - br label %51 +47: ; preds = %41 + %48 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %49 = load i64, ptr %48, align 8, !tbaa !1260 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %49) + br label %50 -51: ; preds = %.critedge, %48, %43, %3 +50: ; preds = %.critedge, %47, %43, %3 ret void } @@ -116577,7 +116577,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8, !tbaa !78, !range !47, !noundef !48 %16 = trunc nuw i8 %15 to i1 - br i1 %16, label %17, label %51 + br i1 %16, label %17, label %50 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -116625,7 +116625,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato store ptr %33, ptr %36, align 8, !tbaa !1249 %37 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) call void @llvm.lifetime.end.p0(ptr nonnull %4) - br i1 %37, label %41, label %51 + br i1 %37, label %41, label %50 38: ; preds = %27 %39 = getelementptr inbounds nuw i8, ptr %.sroa.017.023, i64 1 @@ -116636,7 +116636,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato 41: ; preds = %.critedge %42 = load ptr, ptr %18, align 8 %.not21 = icmp eq ptr %.sroa.017.0.lcssa, %42 - br i1 %.not21, label %48, label %43 + br i1 %.not21, label %47, label %43 43: ; preds = %41 %44 = ptrtoint ptr %42 to i64 @@ -116648,13 +116648,13 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato store i64 %44, ptr %18, align 8, !tbaa !82 br label %51 -48: ; preds = %41 - %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %50 = load i64, ptr %49, align 8, !tbaa !1260 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %50) - br label %51 +47: ; preds = %41 + %48 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %49 = load i64, ptr %48, align 8, !tbaa !1260 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %49) + br label %50 -51: ; preds = %.critedge, %48, %43, %3 +50: ; preds = %.critedge, %47, %43, %3 ret void } diff --git a/bench/cvc5/optimized/options_handler.ll b/bench/cvc5/optimized/options_handler.ll index 905fc85bd4b..a76e2bc2e14 100644 --- a/bench/cvc5/optimized/options_handler.ll +++ b/bench/cvc5/optimized/options_handler.ll @@ -33152,7 +33152,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8, !tbaa !905, !range !235, !noundef !236 %16 = trunc nuw i8 %15 to i1 - br i1 %16, label %17, label %51 + br i1 %16, label %17, label %50 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -33200,7 +33200,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato store ptr %33, ptr %36, align 8, !tbaa !356 %37 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) call void @llvm.lifetime.end.p0(ptr nonnull %4) - br i1 %37, label %41, label %51 + br i1 %37, label %41, label %50 38: ; preds = %27 %39 = getelementptr inbounds nuw i8, ptr %.sroa.017.023, i64 1 @@ -33211,7 +33211,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato 41: ; preds = %.critedge %42 = load ptr, ptr %18, align 8 %.not21 = icmp eq ptr %.sroa.017.0.lcssa, %42 - br i1 %.not21, label %48, label %43 + br i1 %.not21, label %47, label %43 43: ; preds = %41 %44 = ptrtoint ptr %42 to i64 @@ -33223,13 +33223,13 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato store i64 %44, ptr %18, align 8, !tbaa !676 br label %51 -48: ; preds = %41 - %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %50 = load i64, ptr %49, align 8, !tbaa !368 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %50) - br label %51 +47: ; preds = %41 + %48 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %49 = load i64, ptr %48, align 8, !tbaa !368 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %49) + br label %50 -51: ; preds = %.critedge, %48, %43, %3 +50: ; preds = %.critedge, %47, %43, %3 ret void } @@ -34571,7 +34571,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8, !tbaa !905, !range !235, !noundef !236 %16 = trunc nuw i8 %15 to i1 - br i1 %16, label %17, label %51 + br i1 %16, label %17, label %50 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -34619,7 +34619,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato store ptr %33, ptr %36, align 8, !tbaa !356 %37 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) call void @llvm.lifetime.end.p0(ptr nonnull %4) - br i1 %37, label %41, label %51 + br i1 %37, label %41, label %50 38: ; preds = %27 %39 = getelementptr inbounds nuw i8, ptr %.sroa.017.023, i64 1 @@ -34630,7 +34630,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato 41: ; preds = %.critedge %42 = load ptr, ptr %18, align 8 %.not21 = icmp eq ptr %.sroa.017.0.lcssa, %42 - br i1 %.not21, label %48, label %43 + br i1 %.not21, label %47, label %43 43: ; preds = %41 %44 = ptrtoint ptr %42 to i64 @@ -34642,13 +34642,13 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato store i64 %44, ptr %18, align 8, !tbaa !676 br label %51 -48: ; preds = %41 - %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %50 = load i64, ptr %49, align 8, !tbaa !368 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %50) - br label %51 +47: ; preds = %41 + %48 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %49 = load i64, ptr %48, align 8, !tbaa !368 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %49) + br label %50 -51: ; preds = %.critedge, %48, %43, %3 +50: ; preds = %.critedge, %47, %43, %3 ret void } diff --git a/bench/delta-rs/optimized/31i6j0ayu6bevt9n.ll b/bench/delta-rs/optimized/31i6j0ayu6bevt9n.ll index ca998783929..8c8eea34074 100644 --- a/bench/delta-rs/optimized/31i6j0ayu6bevt9n.ll +++ b/bench/delta-rs/optimized/31i6j0ayu6bevt9n.ll @@ -834,8 +834,8 @@ _ZN5alloc5alloc15exchange_malloc17he27dc27497df8aaaE.exit: ; preds = %"_ZN6chron store i64 1, ptr %17, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 8 store i64 1, ptr %.sroa.4.0..sroa_idx, align 8 - %.sroa.5.0..sroa_idx11 = getelementptr inbounds nuw i8, ptr %17, i64 16 - store i64 0, ptr %.sroa.5.0..sroa_idx11, align 8 + %.sroa.5.0..sroa_idx10 = getelementptr inbounds nuw i8, ptr %17, i64 16 + store i64 0, ptr %.sroa.5.0..sroa_idx10, align 8 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 24 store i64 %37, ptr %.sroa.6.0..sroa_idx, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %1) diff --git a/bench/delta-rs/optimized/s2xrj2sh770tx8d.ll b/bench/delta-rs/optimized/s2xrj2sh770tx8d.ll index 807c8386ca9..6fbadbd6659 100644 --- a/bench/delta-rs/optimized/s2xrj2sh770tx8d.ll +++ b/bench/delta-rs/optimized/s2xrj2sh770tx8d.ll @@ -45780,72 +45780,72 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h7a0280ef360f84c5E.llvm.18123 store ptr %6, ptr %5, align 8, !noalias !14275 call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !14275 store ptr %15, ptr %4, align 8, !noalias !14279 - %17 = getelementptr inbounds nuw i8, ptr %4, i64 8 - store ptr %5, ptr %17, align 8, !noalias !14279 + %15 = getelementptr inbounds nuw i8, ptr %4, i64 8 + store ptr %5, ptr %15, align 8, !noalias !14279 br label %.outer.i.i.i.i.i.i.i.i .outer.i.i.i.i.i.i.i.i: ; preds = %.noexc, %"_ZN73_$LT$std..hash..random..RandomState$u20$as$u20$core..default..Default$GT$7default17h6420f6cd5f39a78aE.llvm.18123795597341512700.exit" - %18 = phi i16 [ %26, %.noexc ], [ %.sroa.54.0.copyload, %"_ZN73_$LT$std..hash..random..RandomState$u20$as$u20$core..default..Default$GT$7default17h6420f6cd5f39a78aE.llvm.18123795597341512700.exit" ] + %16 = phi i16 [ %24, %.noexc ], [ %.sroa.54.0.copyload, %"_ZN73_$LT$std..hash..random..RandomState$u20$as$u20$core..default..Default$GT$7default17h6420f6cd5f39a78aE.llvm.18123795597341512700.exit" ] %.lcssa1722.i.i.i.i.i.i.i.i = phi ptr [ %.lcssa1721.i.i.i.i.i.i.i.i, %.noexc ], [ %.sroa.4.0.copyload, %"_ZN73_$LT$std..hash..random..RandomState$u20$as$u20$core..default..Default$GT$7default17h6420f6cd5f39a78aE.llvm.18123795597341512700.exit" ] %.lcssa1620.i.i.i.i.i.i.i.i = phi ptr [ %.lcssa1619.i.i.i.i.i.i.i.i, %.noexc ], [ %.sroa.0.0.copyload, %"_ZN73_$LT$std..hash..random..RandomState$u20$as$u20$core..default..Default$GT$7default17h6420f6cd5f39a78aE.llvm.18123795597341512700.exit" ] - %.0.ph.i.i.i.i.i.i.i.i = phi i64 [ %27, %.noexc ], [ %.sroa.65.0.copyload, %"_ZN73_$LT$std..hash..random..RandomState$u20$as$u20$core..default..Default$GT$7default17h6420f6cd5f39a78aE.llvm.18123795597341512700.exit" ] - %.not.i13.i.i.i.i.i.i.i.i = icmp eq i16 %18, 0 + %.0.ph.i.i.i.i.i.i.i.i = phi i64 [ %25, %.noexc ], [ %.sroa.65.0.copyload, %"_ZN73_$LT$std..hash..random..RandomState$u20$as$u20$core..default..Default$GT$7default17h6420f6cd5f39a78aE.llvm.18123795597341512700.exit" ] + %.not.i13.i.i.i.i.i.i.i.i = icmp eq i16 %16, 0 br i1 %.not.i13.i.i.i.i.i.i.i.i, label %.lr.ph.i.i.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i.i.i: ; preds = %.outer.i.i.i.i.i.i.i.i - %19 = icmp eq i64 %.0.ph.i.i.i.i.i.i.i.i, 0 - br i1 %19, label %36, label %.lr.ph.split.i.i.i.i.i.i.i.i + %17 = icmp eq i64 %.0.ph.i.i.i.i.i.i.i.i, 0 + br i1 %17, label %34, label %.lr.ph.split.i.i.i.i.i.i.i.i ._crit_edge.i.i.i.i.i.i.i.i: ; preds = %.lr.ph.split.i.i.i.i.i.i.i.i, %.outer.i.i.i.i.i.i.i.i - %.lcssa1721.i.i.i.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i.i.i.i, %.outer.i.i.i.i.i.i.i.i ], [ %33, %.lr.ph.split.i.i.i.i.i.i.i.i ] - %.lcssa1619.i.i.i.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i.i.i.i, %.outer.i.i.i.i.i.i.i.i ], [ %32, %.lr.ph.split.i.i.i.i.i.i.i.i ] - %.lcssa.i.i.i.i.i.i.i.i = phi i16 [ %18, %.outer.i.i.i.i.i.i.i.i ], [ %.cast.i.i.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i.i.i ] - %20 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i.i.i.i, i1 true) - %21 = zext nneg i16 %20 to i64 - %22 = sub nsw i64 0, %21 - %23 = getelementptr inbounds { { { { i64, ptr, {} }, i64 } }, {} }, ptr %.lcssa1619.i.i.i.i.i.i.i.i, i64 %22 - %24 = getelementptr inbounds i8, ptr %23, i64 -24 - invoke void @"_ZN113_$LT$std..collections..hash..set..Intersection$LT$T$C$S$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold28_$u7b$$u7b$closure$u7d$$u7d$17hb56d1e28b3217dd8E.llvm.240573438051967091"(ptr noalias noundef nonnull align 8 dereferenceable(16) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %24) - to label %.noexc unwind label %34 + %.lcssa1721.i.i.i.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i.i.i.i, %.outer.i.i.i.i.i.i.i.i ], [ %31, %.lr.ph.split.i.i.i.i.i.i.i.i ] + %.lcssa1619.i.i.i.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i.i.i.i, %.outer.i.i.i.i.i.i.i.i ], [ %30, %.lr.ph.split.i.i.i.i.i.i.i.i ] + %.lcssa.i.i.i.i.i.i.i.i = phi i16 [ %16, %.outer.i.i.i.i.i.i.i.i ], [ %.cast.i.i.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i.i.i ] + %18 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i.i.i.i, i1 true) + %19 = zext nneg i16 %18 to i64 + %20 = sub nsw i64 0, %19 + %21 = getelementptr inbounds { { { { i64, ptr, {} }, i64 } }, {} }, ptr %.lcssa1619.i.i.i.i.i.i.i.i, i64 %20 + %22 = getelementptr inbounds i8, ptr %21, i64 -24 + invoke void @"_ZN113_$LT$std..collections..hash..set..Intersection$LT$T$C$S$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold28_$u7b$$u7b$closure$u7d$$u7d$17hb56d1e28b3217dd8E.llvm.240573438051967091"(ptr noalias noundef nonnull align 8 dereferenceable(16) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %22) + to label %.noexc unwind label %32 .noexc: ; preds = %._crit_edge.i.i.i.i.i.i.i.i - %25 = add i16 %.lcssa.i.i.i.i.i.i.i.i, -1 - %26 = and i16 %25, %.lcssa.i.i.i.i.i.i.i.i - %27 = add i64 %.0.ph.i.i.i.i.i.i.i.i, -1 + %23 = add i16 %.lcssa.i.i.i.i.i.i.i.i, -1 + %24 = and i16 %23, %.lcssa.i.i.i.i.i.i.i.i + %25 = add i64 %.0.ph.i.i.i.i.i.i.i.i, -1 br label %.outer.i.i.i.i.i.i.i.i .lr.ph.split.i.i.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i.i.i - %28 = phi ptr [ %33, %.lr.ph.split.i.i.i.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i.i.i ] - %29 = phi ptr [ %32, %.lr.ph.split.i.i.i.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i.i.i ] - %30 = load <16 x i8>, ptr %28, align 16, !noalias !14284 - %31 = icmp sgt <16 x i8> %30, splat (i8 -1) - %32 = getelementptr inbounds i8, ptr %29, i64 -384 - %33 = getelementptr inbounds nuw i8, ptr %28, i64 16 - %.cast.i.i.i.i.i.i.i.i = bitcast <16 x i1> %31 to i16 + %26 = phi ptr [ %31, %.lr.ph.split.i.i.i.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i.i.i ] + %27 = phi ptr [ %30, %.lr.ph.split.i.i.i.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i.i.i ] + %28 = load <16 x i8>, ptr %26, align 16, !noalias !14284 + %29 = icmp sgt <16 x i8> %28, splat (i8 -1) + %30 = getelementptr inbounds i8, ptr %27, i64 -384 + %31 = getelementptr inbounds nuw i8, ptr %26, i64 16 + %.cast.i.i.i.i.i.i.i.i = bitcast <16 x i1> %29 to i16 %.not.i.i.i.i.i.i.i.i.i = icmp eq i16 %.cast.i.i.i.i.i.i.i.i, 0 br i1 %.not.i.i.i.i.i.i.i.i.i, label %.lr.ph.split.i.i.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i.i.i -34: ; preds = %._crit_edge.i.i.i.i.i.i.i.i - %35 = landingpad { ptr, i32 } +32: ; preds = %._crit_edge.i.i.i.i.i.i.i.i + %33 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr90drop_in_place$LT$std..collections..hash..set..HashSet$LT$$RF$alloc..string..String$GT$$GT$17h6f0e443c9e5c3c53E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %6) #54 - to label %39 unwind label %37 + to label %39 unwind label %35 -36: ; preds = %.lr.ph.i.i.i.i.i.i.i.i +34: ; preds = %.lr.ph.i.i.i.i.i.i.i.i call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !14275 call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !14262 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(48) %6, i64 48, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %6) ret void -37: ; preds = %34 - %38 = landingpad { ptr, i32 } +35: ; preds = %32 + %36 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #55 unreachable -39: ; preds = %34 - resume { ptr, i32 } %35 +37: ; preds = %32 + resume { ptr, i32 } %33 } ; Function Attrs: nonlazybind uwtable @@ -46017,45 +46017,45 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 store ptr %0, ptr %3, align 8, !noalias !14345 call void @llvm.lifetime.start.p0(ptr nonnull %2), !noalias !14345 store ptr %4, ptr %2, align 8, !noalias !14349 - %6 = getelementptr inbounds nuw i8, ptr %2, i64 8 - store ptr %3, ptr %6, align 8, !noalias !14349 + %4 = getelementptr inbounds nuw i8, ptr %2, i64 8 + store ptr %3, ptr %4, align 8, !noalias !14349 br label %.outer.i.i.i.i.i.i .outer.i.i.i.i.i.i: ; preds = %._crit_edge.i.i.i.i.i.i, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17ha4c55d0e4fb4b196E.exit" - %7 = phi i16 [ %12, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.0.sroa.6.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17ha4c55d0e4fb4b196E.exit" ] + %5 = phi i16 [ %10, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.0.sroa.6.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17ha4c55d0e4fb4b196E.exit" ] %.lcssa1722.i.i.i.i.i.i = phi ptr [ %.lcssa1721.i.i.i.i.i.i, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.0.sroa.4.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17ha4c55d0e4fb4b196E.exit" ] %.lcssa1620.i.i.i.i.i.i = phi ptr [ %.lcssa1619.i.i.i.i.i.i, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.0.sroa.0.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17ha4c55d0e4fb4b196E.exit" ] - %.0.ph.i.i.i.i.i.i = phi i64 [ %16, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.4.0.copyload3, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17ha4c55d0e4fb4b196E.exit" ] - %.not.i13.i.i.i.i.i.i = icmp eq i16 %7, 0 + %.0.ph.i.i.i.i.i.i = phi i64 [ %14, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.4.0.copyload3, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17ha4c55d0e4fb4b196E.exit" ] + %.not.i13.i.i.i.i.i.i = icmp eq i16 %5, 0 br i1 %.not.i13.i.i.i.i.i.i, label %.lr.ph.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i: ; preds = %.outer.i.i.i.i.i.i - %8 = icmp eq i64 %.0.ph.i.i.i.i.i.i, 0 - br i1 %8, label %_ZN4core4iter6traits8iterator8Iterator8for_each17h04ba27f7c591798bE.llvm.18123795597341512700.exit, label %.lr.ph.split.i.i.i.i.i.i + %6 = icmp eq i64 %.0.ph.i.i.i.i.i.i, 0 + br i1 %6, label %_ZN4core4iter6traits8iterator8Iterator8for_each17h04ba27f7c591798bE.llvm.18123795597341512700.exit, label %.lr.ph.split.i.i.i.i.i.i ._crit_edge.i.i.i.i.i.i: ; preds = %.lr.ph.split.i.i.i.i.i.i, %.outer.i.i.i.i.i.i - %.lcssa1721.i.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %22, %.lr.ph.split.i.i.i.i.i.i ] - %.lcssa1619.i.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %21, %.lr.ph.split.i.i.i.i.i.i ] - %.lcssa.i.i.i.i.i.i = phi i16 [ %7, %.outer.i.i.i.i.i.i ], [ %.cast.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i ] - %9 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i.i, i1 true) - %10 = zext nneg i16 %9 to i64 - %11 = add i16 %.lcssa.i.i.i.i.i.i, -1 - %12 = and i16 %11, %.lcssa.i.i.i.i.i.i - %13 = sub nsw i64 0, %10 - %14 = getelementptr inbounds { { { { i64, ptr, {} }, i64 } }, {} }, ptr %.lcssa1619.i.i.i.i.i.i, i64 %13 - %15 = getelementptr inbounds i8, ptr %14, i64 -24 - call void @"_ZN113_$LT$std..collections..hash..set..Intersection$LT$T$C$S$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold28_$u7b$$u7b$closure$u7d$$u7d$17hb56d1e28b3217dd8E.llvm.240573438051967091"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %15), !noalias !14354 - %16 = add i64 %.0.ph.i.i.i.i.i.i, -1 + %.lcssa1721.i.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %20, %.lr.ph.split.i.i.i.i.i.i ] + %.lcssa1619.i.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %19, %.lr.ph.split.i.i.i.i.i.i ] + %.lcssa.i.i.i.i.i.i = phi i16 [ %5, %.outer.i.i.i.i.i.i ], [ %.cast.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i ] + %7 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i.i, i1 true) + %8 = zext nneg i16 %7 to i64 + %9 = add i16 %.lcssa.i.i.i.i.i.i, -1 + %10 = and i16 %9, %.lcssa.i.i.i.i.i.i + %11 = sub nsw i64 0, %8 + %12 = getelementptr inbounds { { { { i64, ptr, {} }, i64 } }, {} }, ptr %.lcssa1619.i.i.i.i.i.i, i64 %11 + %13 = getelementptr inbounds i8, ptr %12, i64 -24 + call void @"_ZN113_$LT$std..collections..hash..set..Intersection$LT$T$C$S$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold28_$u7b$$u7b$closure$u7d$$u7d$17hb56d1e28b3217dd8E.llvm.240573438051967091"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %13), !noalias !14354 + %14 = add i64 %.0.ph.i.i.i.i.i.i, -1 br label %.outer.i.i.i.i.i.i .lr.ph.split.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i - %17 = phi ptr [ %22, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] - %18 = phi ptr [ %21, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] - %19 = load <16 x i8>, ptr %17, align 16, !noalias !14364 - %20 = icmp sgt <16 x i8> %19, splat (i8 -1) - %21 = getelementptr inbounds i8, ptr %18, i64 -384 - %22 = getelementptr inbounds nuw i8, ptr %17, i64 16 - %.cast.i.i.i.i.i.i = bitcast <16 x i1> %20 to i16 + %15 = phi ptr [ %20, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] + %16 = phi ptr [ %19, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] + %17 = load <16 x i8>, ptr %15, align 16, !noalias !14364 + %18 = icmp sgt <16 x i8> %17, splat (i8 -1) + %19 = getelementptr inbounds i8, ptr %16, i64 -384 + %20 = getelementptr inbounds nuw i8, ptr %15, i64 16 + %.cast.i.i.i.i.i.i = bitcast <16 x i1> %18 to i16 %.not.i.i.i.i.i.i.i = icmp eq i16 %.cast.i.i.i.i.i.i, 0 br i1 %.not.i.i.i.i.i.i.i, label %.lr.ph.split.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i @@ -47202,45 +47202,45 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 tail call void @llvm.assume(i1 %16) call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !14761 store ptr %0, ptr %3, align 8, !noalias !14772 - %17 = getelementptr inbounds nuw i8, ptr %3, i64 8 - store ptr %15, ptr %17, align 8, !noalias !14772 + %16 = getelementptr inbounds nuw i8, ptr %3, i64 8 + store ptr %15, ptr %16, align 8, !noalias !14772 br label %.outer.i.i.i.i.i.i .outer.i.i.i.i.i.i: ; preds = %._crit_edge.i.i.i.i.i.i, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h27e43a3c5ea5f906E.exit" - %18 = phi i16 [ %23, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.0.sroa.6.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h27e43a3c5ea5f906E.exit" ] + %17 = phi i16 [ %22, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.0.sroa.6.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h27e43a3c5ea5f906E.exit" ] %.lcssa1722.i.i.i.i.i.i = phi ptr [ %.lcssa1721.i.i.i.i.i.i, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.0.sroa.4.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h27e43a3c5ea5f906E.exit" ] %.lcssa1620.i.i.i.i.i.i = phi ptr [ %.lcssa1619.i.i.i.i.i.i, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.0.sroa.0.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h27e43a3c5ea5f906E.exit" ] - %.0.ph.i.i.i.i.i.i = phi i64 [ %27, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.4.0.copyload3, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h27e43a3c5ea5f906E.exit" ] - %.not.i13.i.i.i.i.i.i = icmp eq i16 %18, 0 + %.0.ph.i.i.i.i.i.i = phi i64 [ %26, %._crit_edge.i.i.i.i.i.i ], [ %.sroa.4.0.copyload3, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h27e43a3c5ea5f906E.exit" ] + %.not.i13.i.i.i.i.i.i = icmp eq i16 %17, 0 br i1 %.not.i13.i.i.i.i.i.i, label %.lr.ph.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i: ; preds = %.outer.i.i.i.i.i.i - %19 = icmp eq i64 %.0.ph.i.i.i.i.i.i, 0 - br i1 %19, label %_ZN4core4iter6traits8iterator8Iterator8for_each17h6b1524a242e13ca5E.llvm.18123795597341512700.exit, label %.lr.ph.split.i.i.i.i.i.i + %18 = icmp eq i64 %.0.ph.i.i.i.i.i.i, 0 + br i1 %18, label %_ZN4core4iter6traits8iterator8Iterator8for_each17h6b1524a242e13ca5E.llvm.18123795597341512700.exit, label %.lr.ph.split.i.i.i.i.i.i ._crit_edge.i.i.i.i.i.i: ; preds = %.lr.ph.split.i.i.i.i.i.i, %.outer.i.i.i.i.i.i - %.lcssa1721.i.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %33, %.lr.ph.split.i.i.i.i.i.i ] - %.lcssa1619.i.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %32, %.lr.ph.split.i.i.i.i.i.i ] - %.lcssa.i.i.i.i.i.i = phi i16 [ %18, %.outer.i.i.i.i.i.i ], [ %.cast.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i ] - %20 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i.i, i1 true) - %21 = zext nneg i16 %20 to i64 - %22 = add i16 %.lcssa.i.i.i.i.i.i, -1 - %23 = and i16 %22, %.lcssa.i.i.i.i.i.i - %24 = sub nsw i64 0, %21 - %25 = getelementptr inbounds { { ptr, i64 }, {} }, ptr %.lcssa1619.i.i.i.i.i.i, i64 %24 - %26 = getelementptr inbounds i8, ptr %25, i64 -16 - call void @"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hdbb14f6b88e6b40fE.llvm.240573438051967091"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %26), !noalias !14777 - %27 = add i64 %.0.ph.i.i.i.i.i.i, -1 + %.lcssa1721.i.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %32, %.lr.ph.split.i.i.i.i.i.i ] + %.lcssa1619.i.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %31, %.lr.ph.split.i.i.i.i.i.i ] + %.lcssa.i.i.i.i.i.i = phi i16 [ %17, %.outer.i.i.i.i.i.i ], [ %.cast.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i ] + %19 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i.i, i1 true) + %20 = zext nneg i16 %19 to i64 + %21 = add i16 %.lcssa.i.i.i.i.i.i, -1 + %22 = and i16 %21, %.lcssa.i.i.i.i.i.i + %23 = sub nsw i64 0, %20 + %24 = getelementptr inbounds { { ptr, i64 }, {} }, ptr %.lcssa1619.i.i.i.i.i.i, i64 %23 + %25 = getelementptr inbounds i8, ptr %24, i64 -16 + call void @"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hdbb14f6b88e6b40fE.llvm.240573438051967091"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %25), !noalias !14777 + %26 = add i64 %.0.ph.i.i.i.i.i.i, -1 br label %.outer.i.i.i.i.i.i .lr.ph.split.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i - %28 = phi ptr [ %33, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] - %29 = phi ptr [ %32, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] - %30 = load <16 x i8>, ptr %28, align 16, !noalias !14787 - %31 = icmp sgt <16 x i8> %30, splat (i8 -1) - %32 = getelementptr inbounds i8, ptr %29, i64 -256 - %33 = getelementptr inbounds nuw i8, ptr %28, i64 16 - %.cast.i.i.i.i.i.i = bitcast <16 x i1> %31 to i16 + %27 = phi ptr [ %32, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] + %28 = phi ptr [ %31, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] + %29 = load <16 x i8>, ptr %27, align 16, !noalias !14787 + %30 = icmp sgt <16 x i8> %29, splat (i8 -1) + %31 = getelementptr inbounds i8, ptr %28, i64 -256 + %32 = getelementptr inbounds nuw i8, ptr %27, i64 16 + %.cast.i.i.i.i.i.i = bitcast <16 x i1> %30 to i16 %.not.i.i.i.i.i.i.i = icmp eq i16 %.cast.i.i.i.i.i.i, 0 br i1 %.not.i.i.i.i.i.i.i, label %.lr.ph.split.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i diff --git a/bench/diesel-rs/optimized/3nhirlswgfgsoryk.ll b/bench/diesel-rs/optimized/3nhirlswgfgsoryk.ll index 6bad6ed603a..67135e52766 100644 --- a/bench/diesel-rs/optimized/3nhirlswgfgsoryk.ll +++ b/bench/diesel-rs/optimized/3nhirlswgfgsoryk.ll @@ -364,14 +364,14 @@ define hidden void @"_ZN52_$LT$T$u20$as$u20$alloc..slice..hack..ConvertVec$GT$6t br i1 %11, label %.thread, label %.lr.ph .lr.ph: ; preds = %3, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" - %.sroa.013.044 = phi ptr [ %15, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ %1, %3 ] - %.sroa.7.042 = phi i64 [ %16, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ 0, %3 ] - %.sroa.10.041 = phi i64 [ %12, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ %6, %3 ] - %.sroa.1017.sroa.6.sroa.0.040 = phi i24 [ %.sroa.1017.sroa.6.sroa.0.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] - %.sroa.13.sroa.0.039 = phi i8 [ %.sroa.13.sroa.0.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] - %.sroa.13.sroa.5.038 = phi i8 [ %.sroa.13.sroa.5.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] - %.sroa.13.sroa.6.037 = phi i16 [ %.sroa.13.sroa.6.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] - %.sroa.1017.sroa.0.036 = phi i8 [ %.sroa.1017.sroa.0.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] + %.sroa.715.sroa.8.053 = phi ptr [ %15, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ %1, %3 ] + %.sroa.013.052 = phi i64 [ %16, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ 0, %3 ] + %.sroa.7.050 = phi i64 [ %12, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ %6, %3 ] + %.sroa.10.049 = phi i24 [ %.sroa.15.sroa.0.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] + %.sroa.15.sroa.0.048 = phi i8 [ %.sroa.13.sroa.0.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] + %.sroa.15.sroa.5.047 = phi i8 [ %.sroa.13.sroa.5.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] + %.sroa.15.sroa.6.046 = phi i16 [ %.sroa.13.sroa.6.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] + %.sroa.12.sroa.0.045 = phi i8 [ %.sroa.1017.sroa.0.1, %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" ], [ undef, %3 ] %12 = add i64 %.sroa.10.041, -1 %13 = icmp eq ptr %.sroa.013.044, %10 br i1 %13, label %.thread, label %14 @@ -395,7 +395,7 @@ define hidden void @"_ZN52_$LT$T$u20$as$u20$alloc..slice..hack..ConvertVec$GT$6t i64 0, label %24 i64 1, label %32 i64 2, label %36 - i64 3, label %39 + i64 3, label %41 ] 23: ; preds = %14 @@ -417,14 +417,14 @@ define hidden void @"_ZN52_$LT$T$u20$as$u20$alloc..slice..hack..ConvertVec$GT$6t %.val.i.i.i = load i32, ptr %30, align 4, !range !27, !alias.scope !80, !noalias !83, !noundef !7 %31 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 8 %.val2.i.i.i = load i32, ptr %31, align 4, !range !27, !alias.scope !80, !noalias !83, !noundef !7 - %.sroa.1017.sroa.0.0.extract.trunc18 = trunc i32 %.val2.i.i.i to i8 - %.sroa.1017.sroa.6.0.extract.shift19 = lshr i32 %.val2.i.i.i, 8 - %.sroa.1017.sroa.6.0.extract.trunc20 = trunc nuw i32 %.sroa.1017.sroa.6.0.extract.shift19 to i24 + %.sroa.715.sroa.0.0.extract.trunc20 = trunc i32 %.val2.i.i.i to i8 + %.sroa.715.sroa.7.0.extract.shift23 = lshr i32 %.val2.i.i.i, 8 + %.sroa.715.sroa.7.0.extract.trunc24 = trunc nuw i32 %.sroa.715.sroa.7.0.extract.shift23 to i24 %.sroa.13.sroa.0.0.extract.trunc = trunc i32 %storemerge.i.i to i8 %.sroa.13.sroa.5.0.extract.shift = lshr i32 %storemerge.i.i, 8 - %.sroa.13.sroa.5.0.extract.trunc = trunc i32 %.sroa.13.sroa.5.0.extract.shift to i8 - %.sroa.13.sroa.6.0.extract.shift = lshr i32 %storemerge.i.i, 16 - %.sroa.13.sroa.6.0.extract.trunc = trunc nuw i32 %.sroa.13.sroa.6.0.extract.shift to i16 + %.sroa.12.sroa.0.0.extract.trunc16 = trunc i32 %.sroa.13.sroa.5.0.extract.shift to i8 + %.sroa.12.sroa.6.0.extract.shift17 = lshr i32 %storemerge.i.i, 16 + %.sroa.12.sroa.6.0.extract.trunc18 = trunc nuw i32 %.sroa.12.sroa.6.0.extract.shift17 to i16 br label %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" 32: ; preds = %14 @@ -440,45 +440,45 @@ define hidden void @"_ZN52_$LT$T$u20$as$u20$alloc..slice..hack..ConvertVec$GT$6t %.sroa.014.sroa.7.0.extract.trunc = zext i16 %38 to i32 br label %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" -39: ; preds = %14 - %40 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 12 - %41 = load i8, ptr %40, align 4, !range !61, !alias.scope !90, !noalias !93, !noundef !7 - %42 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 13 - %43 = load i8, ptr %42, align 1, !alias.scope !90, !noalias !93 - %44 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 8 - %45 = load i32, ptr %44, align 4, !alias.scope !90, !noalias !93, !noundef !7 - %46 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 4 - %.val.i6.i = load i32, ptr %46, align 4, !range !27, !alias.scope !90, !noalias !93, !noundef !7 - %.sroa.1017.sroa.0.0.extract.trunc = trunc i32 %45 to i8 - %.sroa.1017.sroa.6.0.extract.shift = lshr i32 %45, 8 - %.sroa.1017.sroa.6.0.extract.trunc = trunc nuw i32 %.sroa.1017.sroa.6.0.extract.shift to i24 +41: ; preds = %14 + %42 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 12 + %43 = load i8, ptr %42, align 4, !range !61, !alias.scope !90, !noalias !93, !noundef !7 + %44 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 13 + %45 = load i8, ptr %44, align 1, !alias.scope !90, !noalias !93 + %46 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 8 + %47 = load i32, ptr %46, align 4, !alias.scope !90, !noalias !93, !noundef !7 + %48 = getelementptr inbounds nuw i8, ptr %.sroa.013.044, i64 4 + %.val.i5.i = load i32, ptr %48, align 4, !range !27, !alias.scope !90, !noalias !93, !noundef !7 + %.sroa.715.sroa.0.0.extract.trunc = trunc i32 %45 to i8 + %.sroa.715.sroa.7.0.extract.shift = lshr i32 %45, 8 + %.sroa.715.sroa.7.0.extract.trunc = trunc nuw i32 %.sroa.715.sroa.7.0.extract.shift to i24 br label %"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit" -"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit": ; preds = %39, %36, %32, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" - %.sroa.1017.sroa.0.1 = phi i8 [ %.sroa.1017.sroa.0.0.extract.trunc18, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %34, %32 ], [ %.sroa.1017.sroa.0.036, %36 ], [ %.sroa.1017.sroa.0.0.extract.trunc, %39 ] - %.sroa.13.sroa.6.1 = phi i16 [ %.sroa.13.sroa.6.0.extract.trunc, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.13.sroa.6.037, %32 ], [ %.sroa.13.sroa.6.037, %36 ], [ %.sroa.13.sroa.6.037, %39 ] - %.sroa.13.sroa.5.1 = phi i8 [ %.sroa.13.sroa.5.0.extract.trunc, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.13.sroa.5.038, %32 ], [ %.sroa.13.sroa.5.038, %36 ], [ %43, %39 ] - %.sroa.13.sroa.0.1 = phi i8 [ %.sroa.13.sroa.0.0.extract.trunc, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.13.sroa.0.039, %32 ], [ %.sroa.13.sroa.0.039, %36 ], [ %41, %39 ] - %.sroa.1017.sroa.6.sroa.0.1 = phi i24 [ %.sroa.1017.sroa.6.0.extract.trunc20, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.1017.sroa.6.sroa.0.040, %32 ], [ %.sroa.1017.sroa.6.sroa.0.040, %36 ], [ %.sroa.1017.sroa.6.0.extract.trunc, %39 ] - %.sroa.014.sroa.7.0 = phi i32 [ %.val.i.i.i, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.val.i.i, %32 ], [ %.sroa.014.sroa.7.0.extract.trunc, %36 ], [ %.val.i6.i, %39 ] - %.sink.i = phi i8 [ %18, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ 4, %32 ], [ 5, %36 ], [ 6, %39 ] +"_ZN60_$LT$proc_macro..TokenTree$u20$as$u20$core..clone..Clone$GT$5clone17h954b147999328612E.exit": ; preds = %41, %36, %32, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" + %.sroa.12.sroa.6.sroa.0.1 = phi i8 [ %.sroa.1017.sroa.0.0.extract.trunc18, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %34, %32 ], [ %.sroa.12.sroa.0.045, %36 ], [ %.sroa.1017.sroa.0.0.extract.trunc, %39 ] + %.sroa.12.sroa.0.1 = phi i16 [ %.sroa.12.sroa.6.0.extract.trunc18, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.15.sroa.6.046, %32 ], [ %.sroa.13.sroa.6.037, %36 ], [ %.sroa.13.sroa.6.037, %39 ] + %.sroa.15.sroa.6.1 = phi i8 [ %.sroa.13.sroa.5.0.extract.trunc, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.15.sroa.5.047, %32 ], [ %.sroa.13.sroa.5.038, %36 ], [ %43, %39 ] + %.sroa.15.sroa.5.1 = phi i8 [ %.sroa.13.sroa.0.0.extract.trunc, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.15.sroa.0.048, %32 ], [ %.sroa.13.sroa.0.039, %36 ], [ %41, %39 ] + %.sroa.15.sroa.0.1 = phi i24 [ %.sroa.715.sroa.7.0.extract.trunc24, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.sroa.10.049, %32 ], [ %.sroa.10.049, %36 ], [ %.sroa.715.sroa.7.0.extract.trunc, %39 ] + %.sroa.715.sroa.0.0 = phi i32 [ %.val.i.i.i, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ %.val.i.i, %32 ], [ %.sroa.014.sroa.7.0.extract.trunc, %36 ], [ %.val.i6.i, %39 ] + %.sroa.715.sroa.7.0 = phi i8 [ %18, %"_ZN90_$LT$proc_macro..bridge..Group$LT$TokenStream$C$Span$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he413b13bdb63a6b2E.exit.i" ], [ 4, %32 ], [ 5, %36 ], [ 6, %39 ] %.sroa.014.sroa.0.0 = load i32, ptr %.sroa.013.044, align 4, !range !27, !alias.scope !70, !noalias !73, !noundef !7 %47 = getelementptr inbounds nuw { [5 x i32] }, ptr %7, i64 %.sroa.7.042 %.sroa.014.sroa.7.0.insert.ext = zext i32 %.sroa.014.sroa.7.0 to i64 %.sroa.014.sroa.7.0.insert.shift = shl nuw i64 %.sroa.014.sroa.7.0.insert.ext, 32 - %.sroa.014.sroa.0.0.insert.ext = zext i32 %.sroa.014.sroa.0.0 to i64 - %.sroa.014.sroa.0.0.insert.insert = or disjoint i64 %.sroa.014.sroa.7.0.insert.shift, %.sroa.014.sroa.0.0.insert.ext - %.sroa.1017.sroa.6.0.insert.ext = zext i24 %.sroa.1017.sroa.6.sroa.0.1 to i32 - %.sroa.1017.sroa.6.0.insert.shift = shl nuw i32 %.sroa.1017.sroa.6.0.insert.ext, 8 - %.sroa.1017.sroa.0.0.insert.ext = zext i8 %.sroa.1017.sroa.0.1 to i32 - %.sroa.1017.sroa.0.0.insert.insert = or disjoint i32 %.sroa.1017.sroa.6.0.insert.shift, %.sroa.1017.sroa.0.0.insert.ext + %.sroa.715.sroa.8.0.insert.ext = zext i32 %.sroa.014.sroa.0.0 to i64 + %.sroa.014.sroa.0.0.insert.insert = or disjoint i64 %.sroa.014.sroa.7.0.insert.shift, %.sroa.715.sroa.8.0.insert.ext + %.sroa.715.sroa.7.0.insert.ext = zext i24 %.sroa.15.sroa.0.1 to i32 + %.sroa.715.sroa.7.0.insert.shift = shl nuw i32 %.sroa.715.sroa.7.0.insert.ext, 8 + %.sroa.1017.sroa.0.0.insert.ext = zext i8 %.sroa.12.sroa.6.sroa.0.1 to i32 + %.sroa.1017.sroa.0.0.insert.insert = or disjoint i32 %.sroa.715.sroa.7.0.insert.shift, %.sroa.1017.sroa.0.0.insert.ext %.sroa.13.sroa.6.0.insert.ext = zext i16 %.sroa.13.sroa.6.1 to i32 %.sroa.13.sroa.6.0.insert.shift = shl nuw i32 %.sroa.13.sroa.6.0.insert.ext, 16 %.sroa.13.sroa.5.0.insert.ext = zext i8 %.sroa.13.sroa.5.1 to i32 %.sroa.13.sroa.5.0.insert.shift = shl nuw nsw i32 %.sroa.13.sroa.5.0.insert.ext, 8 - %.sroa.13.sroa.5.0.insert.insert = or disjoint i32 %.sroa.13.sroa.5.0.insert.shift, %.sroa.13.sroa.6.0.insert.shift - %.sroa.13.sroa.0.0.insert.ext = zext i8 %.sroa.13.sroa.0.1 to i32 - %.sroa.13.sroa.0.0.insert.insert = or disjoint i32 %.sroa.13.sroa.5.0.insert.insert, %.sroa.13.sroa.0.0.insert.ext + %.sroa.12.sroa.0.0.insert.insert = or disjoint i32 %.sroa.13.sroa.5.0.insert.shift, %.sroa.13.sroa.6.0.insert.shift + %.sroa.15.sroa.6.0.insert.ext = zext i8 %.sroa.15.sroa.5.1 to i32 + %.sroa.13.sroa.0.0.insert.insert = or disjoint i32 %.sroa.13.sroa.5.0.insert.insert, %.sroa.15.sroa.6.0.insert.ext store i64 %.sroa.014.sroa.0.0.insert.insert, ptr %47, align 4 %.sroa.07.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %47, i64 8 store i32 %.sroa.1017.sroa.0.0.insert.insert, ptr %.sroa.07.sroa.4.0..sroa_idx, align 4 @@ -489,20 +489,20 @@ define hidden void @"_ZN52_$LT$T$u20$as$u20$alloc..slice..hack..ConvertVec$GT$6t %48 = icmp eq i64 %12, 0 br i1 %48, label %.thread, label %.lr.ph -49: ; preds = %28 +49: ; preds = %28 %lpad.loopexit = landingpad { ptr, i32 } cleanup store i64 %.sroa.7.042, ptr %9, align 8 invoke void @"_ZN4core3ptr65drop_in_place$LT$alloc..vec..Vec$LT$proc_macro..TokenTree$GT$$GT$17h1b41c94877c50d95E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %4) #13 - to label %52 unwind label %50 + to label %52 unwind label %52 -50: ; preds = %49 - %51 = landingpad { ptr, i32 } +52: ; preds = %49 + %53 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #14 unreachable -52: ; preds = %49 +54: ; preds = %49 resume { ptr, i32 } %lpad.loopexit } diff --git a/bench/duckdb/optimized/fastcover.ll b/bench/duckdb/optimized/fastcover.ll index fb4f4e30a50..4b3474d9f75 100644 --- a/bench/duckdb/optimized/fastcover.ll +++ b/bench/duckdb/optimized/fastcover.ll @@ -61,37 +61,37 @@ define noundef i64 @_ZN11duckdb_zstd31ZDICT_trainFromBuffer_fastCoverEPvmPKvPKmj %16 = getelementptr inbounds nuw i8, ptr %5, i64 32 %17 = load i32, ptr %16, align 8, !tbaa !12 %18 = tail call i32 @llvm.umax.i32(i32 %17, i32 1) - %.sroa.056.0.copyload = load i32, ptr %5, align 8, !tbaa !10 - %.sroa.257.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 4 - %.sroa.257.0.copyload = load i32, ptr %.sroa.257.0..sroa_idx, align 4, !tbaa !10 - %.sroa.459.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 12 - %.sroa.459.0.copyload = load i64, ptr %.sroa.459.0..sroa_idx, align 4 - %.sroa.964.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 36 - %.sroa.964.0.copyload = load i32, ptr %.sroa.964.0..sroa_idx, align 4, !tbaa !10 + %.sroa.048.0.copyload = load i32, ptr %5, align 8, !tbaa !10 + %.sroa.249.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 4 + %.sroa.249.0.copyload = load i32, ptr %.sroa.249.0..sroa_idx, align 4, !tbaa !10 + %.sroa.450.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 12 + %.sroa.450.0.copyload = load i64, ptr %.sroa.450.0..sroa_idx, align 4 + %.sroa.551.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 36 + %.sroa.551.0.copyload = load i32, ptr %.sroa.551.0..sroa_idx, align 4, !tbaa !10 %19 = getelementptr inbounds nuw i8, ptr %5, i64 44 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.16.sroa.4, ptr noundef nonnull align 4 dereferenceable(12) %19, i64 12, i1 false) - %20 = icmp eq i32 %.sroa.257.0.copyload, 0 - %21 = icmp eq i32 %.sroa.056.0.copyload, 0 + %20 = icmp eq i32 %.sroa.249.0.copyload, 0 + %21 = icmp eq i32 %.sroa.048.0.copyload, 0 %or.cond.i = select i1 %20, i1 true, i1 %21 br i1 %or.cond.i, label %_ZN11duckdb_zstdL25FASTCOVER_checkParametersENS_20ZDICT_cover_params_tEmjj.exit.thread, label %22 22: ; preds = %6 - switch i32 %.sroa.257.0.copyload, label %_ZN11duckdb_zstdL25FASTCOVER_checkParametersENS_20ZDICT_cover_params_tEmjj.exit.thread [ + switch i32 %.sroa.249.0.copyload, label %_ZN11duckdb_zstdL25FASTCOVER_checkParametersENS_20ZDICT_cover_params_tEmjj.exit.thread [ i32 8, label %23 i32 6, label %23 ] 23: ; preds = %22, %22 - %24 = zext i32 %.sroa.056.0.copyload to i64 + %24 = zext i32 %.sroa.048.0.copyload to i64 %25 = icmp ult i64 %1, %24 - %26 = icmp ugt i32 %.sroa.257.0.copyload, %.sroa.056.0.copyload + %26 = icmp ugt i32 %.sroa.249.0.copyload, %.sroa.048.0.copyload %or.cond20.i = or i1 %26, %25 %27 = add i32 %15, -32 %or.cond7.i = icmp ult i32 %27, -31 %or.cond21.i = or i1 %or.cond7.i, %or.cond20.i %or.cond12.i = icmp ugt i32 %17, 10 - %or.cond67 = select i1 %or.cond21.i, i1 true, i1 %or.cond12.i - br i1 %or.cond67, label %_ZN11duckdb_zstdL25FASTCOVER_checkParametersENS_20ZDICT_cover_params_tEmjj.exit.thread, label %34 + %or.cond58 = select i1 %or.cond21.i, i1 true, i1 %or.cond12.i + br i1 %or.cond58, label %_ZN11duckdb_zstdL25FASTCOVER_checkParametersENS_20ZDICT_cover_params_tEmjj.exit.thread, label %34 _ZN11duckdb_zstdL25FASTCOVER_checkParametersENS_20ZDICT_cover_params_tEmjj.exit.thread: ; preds = %23, %22, %6 %28 = icmp sgt i32 %11, 0 @@ -138,7 +138,7 @@ _ZN11duckdb_zstdL25FASTCOVER_checkParametersENS_20ZDICT_cover_params_tEmjj.exit. %53 = zext nneg i32 %18 to i64 %54 = getelementptr inbounds nuw %"struct.duckdb_zstd::FASTCOVER_accel_t", ptr @_ZN11duckdb_zstdL32FASTCOVER_defaultAccelParametersE, i64 %53 %.sroa.011.0.copyload = load i64, ptr %54, align 8 - %55 = call fastcc noundef i64 @_ZN11duckdb_zstdL18FASTCOVER_ctx_initEPNS_15FASTCOVER_ctx_tEPKvPKmjjdjNS_17FASTCOVER_accel_tE(ptr noundef %7, ptr noundef %2, ptr noundef %3, i32 noundef %4, i32 noundef %.sroa.257.0.copyload, double noundef 1.000000e+00, i32 noundef %15, i64 %.sroa.011.0.copyload) + %55 = call fastcc noundef i64 @_ZN11duckdb_zstdL18FASTCOVER_ctx_initEPNS_15FASTCOVER_ctx_tEPKvPKmjjdjNS_17FASTCOVER_accel_tE(ptr noundef %7, ptr noundef %2, ptr noundef %3, i32 noundef %4, i32 noundef %.sroa.249.0.copyload, double noundef 1.000000e+00, i32 noundef %15, i64 %.sroa.011.0.copyload) %56 = icmp ult i64 %55, -119 br i1 %56, label %.critedge, label %57 @@ -176,15 +176,15 @@ _ZN11duckdb_zstdL25FASTCOVER_checkParametersENS_20ZDICT_cover_params_tEmjj.exit. %78 = tail call noalias ptr @calloc(i64 noundef %77, i64 noundef 2) #14 %79 = getelementptr inbounds nuw i8, ptr %7, i64 56 %80 = load ptr, ptr %79, align 8, !tbaa !23 - store i32 %.sroa.056.0.copyload, ptr %8, align 8, !tbaa !10 + store i32 %.sroa.048.0.copyload, ptr %8, align 8, !tbaa !10 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 4 - store i32 %.sroa.257.0.copyload, ptr %.sroa.6.0..sroa_idx, align 4, !tbaa !10 + store i32 %.sroa.249.0.copyload, ptr %.sroa.6.0..sroa_idx, align 4, !tbaa !10 %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 8 - store i64 %.sroa.459.0.copyload, ptr %.sroa.9.0..sroa_idx, align 8 + store i64 %.sroa.450.0.copyload, ptr %.sroa.9.0..sroa_idx, align 8 %.sroa.12.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 16 store double 1.000000e+00, ptr %.sroa.12.0..sroa_idx, align 8, !tbaa !24 %.sroa.14.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 24 - store i32 %.sroa.964.0.copyload, ptr %.sroa.14.0..sroa_idx, align 8, !tbaa !10 + store i32 %.sroa.551.0.copyload, ptr %.sroa.14.0..sroa_idx, align 8, !tbaa !10 %.sroa.16.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 28 store i32 0, ptr %.sroa.16.0..sroa_idx, align 4, !tbaa !10 %.sroa.16.sroa.4.0..sroa.16.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 32 diff --git a/bench/elfshaker-rs/optimized/538k7v4jnxs1qgfredr4viqv4.ll b/bench/elfshaker-rs/optimized/538k7v4jnxs1qgfredr4viqv4.ll index af85aab71a6..4c281975507 100644 --- a/bench/elfshaker-rs/optimized/538k7v4jnxs1qgfredr4viqv4.ll +++ b/bench/elfshaker-rs/optimized/538k7v4jnxs1qgfredr4viqv4.ll @@ -7574,15 +7574,15 @@ define hidden void @_ZN9elfshaker4repo6remote26update_remote_pack_indexes17h6073 br label %126 126: ; preds = %.lr.ph, %348 - %.sroa.0.0179 = phi i64 [ 0, %.lr.ph ], [ %313, %348 ] - %.sroa.02.0178 = phi i64 [ %47, %.lr.ph ], [ %314, %348 ] - %.sroa.027.0177 = phi ptr [ %50, %.lr.ph ], [ %127, %348 ] - %127 = getelementptr inbounds nuw i8, ptr %.sroa.027.0177, i64 64 + %.sroa.0.0177 = phi i64 [ 0, %.lr.ph ], [ %313, %348 ] + %.sroa.02.0176 = phi i64 [ %47, %.lr.ph ], [ %314, %348 ] + %.sroa.027.0175 = phi ptr [ %50, %.lr.ph ], [ %127, %348 ] + %127 = getelementptr inbounds nuw i8, ptr %.sroa.027.0175, i64 64 call void @llvm.lifetime.start.p0(ptr nonnull %45) call void @llvm.lifetime.start.p0(ptr nonnull %44) call void @llvm.lifetime.start.p0(ptr nonnull %43) call void @llvm.lifetime.start.p0(ptr nonnull %42) - call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h264d14c2948c37e0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %42, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.027.0177) + call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h264d14c2948c37e0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %42, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.027.0175) call void @llvm.experimental.noalias.scope.decl(metadata !539) invoke void @"_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17h8b7d0c71538f587eE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %42, ptr noundef nonnull @anon.914b41a498dd01229c97f10d279cfb3c.247, ptr noundef nonnull readonly getelementptr inbounds nuw (i8, ptr @anon.914b41a498dd01229c97f10d279cfb3c.247, i64 4), ptr noalias noundef readonly align 8 dereferenceable(24) @anon.914b41a498dd01229c97f10d279cfb3c.177) to label %"_ZN78_$LT$alloc..string..String$u20$as$u20$core..ops..arith..Add$LT$$RF$str$GT$$GT$3add17hfe8b60848f4e89dbE.exit" unwind label %128, !noalias !539 @@ -7600,7 +7600,7 @@ define hidden void @_ZN9elfshaker4repo6remote26update_remote_pack_indexes17h6073 unreachable common.resume: ; preds = %134, %.loopexit.split-lp, %128 - %common.resume.op = phi { ptr, i32 } [ %129, %128 ], [ %.pn, %.loopexit.split-lp ], [ %lpad.phi113, %134 ] + %common.resume.op = phi { ptr, i32 } [ %129, %128 ], [ %.pn, %.loopexit.split-lp ], [ %lpad.phi111, %134 ] resume { ptr, i32 } %common.resume.op "_ZN78_$LT$alloc..string..String$u20$as$u20$core..ops..arith..Add$LT$$RF$str$GT$$GT$3add17hfe8b60848f4e89dbE.exit": ; preds = %126 @@ -7613,24 +7613,24 @@ common.resume: ; preds = %134, %.loopexit.spl store ptr null, ptr %33, align 8 store ptr null, ptr %56, align 8 invoke void @_ZN3url12ParseOptions5parse17h6921ca33602c4904E(ptr noalias noundef nonnull sret([88 x i8]) align 8 captures(none) dereferenceable(88) %44, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(40) %33, ptr noalias noundef nonnull readonly align 1 %132, i64 noundef %133) - to label %135 unwind label %.loopexit109 + to label %135 unwind label %.loopexit107 ._crit_edge: ; preds = %348, %6 store i64 -9223372036854775791, ptr %0, align 8 br label %353 -.loopexit109: ; preds = %"_ZN78_$LT$alloc..string..String$u20$as$u20$core..ops..arith..Add$LT$$RF$str$GT$$GT$3add17hfe8b60848f4e89dbE.exit" - %lpad.loopexit111 = landingpad { ptr, i32 } +.loopexit107: ; preds = %"_ZN78_$LT$alloc..string..String$u20$as$u20$core..ops..arith..Add$LT$$RF$str$GT$$GT$3add17hfe8b60848f4e89dbE.exit" + %lpad.loopexit109 = landingpad { ptr, i32 } cleanup br label %134 -.loopexit.split-lp110: ; preds = %138 - %lpad.loopexit.split-lp112 = landingpad { ptr, i32 } +.loopexit.split-lp108: ; preds = %138 + %lpad.loopexit.split-lp110 = landingpad { ptr, i32 } cleanup br label %134 -134: ; preds = %.loopexit.split-lp110, %.loopexit109 - %lpad.phi113 = phi { ptr, i32 } [ %lpad.loopexit111, %.loopexit109 ], [ %lpad.loopexit.split-lp112, %.loopexit.split-lp110 ] +134: ; preds = %.loopexit.split-lp108, %.loopexit107 + %lpad.phi111 = phi { ptr, i32 } [ %lpad.loopexit109, %.loopexit109 ], [ %lpad.loopexit.split-lp110, %.loopexit.split-lp110 ] invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hf784466cc816aa33E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %43) #27 to label %common.resume unwind label %354 @@ -7648,7 +7648,7 @@ common.resume: ; preds = %134, %.loopexit.spl %140 = load i8, ptr %139, align 8, !range !213, !alias.scope !549, !noalias !551, !noundef !3 store i8 %140, ptr %32, align 1, !noalias !553 invoke void @_ZN4core6result13unwrap_failed17h563d6df1cad9fe9bE(ptr noalias noundef nonnull readonly align 1 @anon.914b41a498dd01229c97f10d279cfb3c.84, i64 noundef 43, ptr noundef nonnull align 1 %32, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.914b41a498dd01229c97f10d279cfb3c.83, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.914b41a498dd01229c97f10d279cfb3c.248) #25 - to label %.noexc unwind label %.loopexit.split-lp110 + to label %.noexc unwind label %.loopexit.split-lp108 .noexc: ; preds = %138 unreachable @@ -7660,7 +7660,7 @@ common.resume: ; preds = %134, %.loopexit.spl to label %142 unwind label %.loopexit.split-lp.loopexit .loopexit.split-lp: ; preds = %.loopexit, %.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit, %.body - %.pn = phi { ptr, i32 } [ %eh.lpad-body, %.body ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit114, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp115, %.loopexit.split-lp.loopexit.split-lp ] + %.pn = phi { ptr, i32 } [ %eh.lpad-body, %.body ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit112, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp113, %.loopexit.split-lp.loopexit.split-lp ] invoke void @"_ZN4core3ptr29drop_in_place$LT$url..Url$GT$17hc74cab4d2420e597E"(ptr noalias noundef nonnull align 8 dereferenceable(88) %45) #27 to label %common.resume unwind label %354 @@ -7670,12 +7670,12 @@ common.resume: ; preds = %134, %.loopexit.spl br label %.loopexit.split-lp .loopexit.split-lp.loopexit: ; preds = %_ZN9elfshaker8progress16ProgressReporter22checkpoint_with_detail17h698cef853b715bdeE.exit, %201, %142, %141 - %lpad.loopexit114 = landingpad { ptr, i32 } + %lpad.loopexit112 = landingpad { ptr, i32 } cleanup br label %.loopexit.split-lp -.loopexit.split-lp.loopexit.split-lp: ; preds = %.loopexit117.invoke, %184, %318 - %lpad.loopexit.split-lp115 = landingpad { ptr, i32 } +.loopexit.split-lp.loopexit.split-lp: ; preds = %.loopexit115.invoke, %184, %318 + %lpad.loopexit.split-lp113 = landingpad { ptr, i32 } cleanup br label %.loopexit.split-lp @@ -7689,7 +7689,7 @@ common.resume: ; preds = %134, %.loopexit.spl 143: ; preds = %142 %144 = load i32, ptr %57, align 4, !range !556, !noundef !3 %.not = icmp eq i32 %144, 1114112 - br i1 %.not, label %.loopexit117.invoke, label %145, !prof !33 + br i1 %.not, label %.loopexit115.invoke, label %145, !prof !33 145: ; preds = %143 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %41, ptr noundef nonnull align 8 dereferenceable(72) %40, i64 72, i1 false) @@ -7700,7 +7700,7 @@ common.resume: ; preds = %134, %.loopexit.spl .thread79: ; preds = %145 call void @llvm.lifetime.end.p0(ptr nonnull %41) - br label %.loopexit117.invoke + br label %.loopexit115.invoke .lr.ph.i: ; preds = %145 %.pre.i = load i64, ptr %61, align 8, !alias.scope !564, !noalias !567 @@ -7855,7 +7855,7 @@ _ZN4core5slice6memchr6memchr17h2d5411a4e6c78ad8E.exit.thread16.i.i.i.i: ; preds 200: ; preds = %190, %.loopexit.i.i.i call void @llvm.lifetime.end.p0(ptr nonnull %41) %.not30 = icmp eq ptr %.sroa.0.018.i, null - br i1 %.not30, label %.loopexit117.invoke, label %201, !prof !575 + br i1 %.not30, label %.loopexit115.invoke, label %201, !prof !575 201: ; preds = %.thread, %200 %.sroa.0.0.lcssa.i78 = phi ptr [ %.sroa.0.0.lcssa.i.ph, %.thread ], [ %.sroa.0.018.i, %200 ] @@ -7864,23 +7864,23 @@ _ZN4core5slice6memchr6memchr17h2d5411a4e6c78ad8E.exit.thread16.i.i.i.i: ; preds invoke void @_ZN3std4path4Path4join17hca25727a4119dca0E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %39, ptr noalias noundef nonnull readonly align 1 %3, i64 noundef %4, ptr noalias noundef nonnull readonly align 1 %.sroa.0.0.lcssa.i78, i64 noundef %.sroa.6.0.lcssa.i77) to label %203 unwind label %.loopexit.split-lp.loopexit -.loopexit117.invoke: ; preds = %200, %143, %.thread79 +.loopexit115.invoke: ; preds = %200, %143, %.thread79 %202 = phi ptr [ @anon.914b41a498dd01229c97f10d279cfb3c.250, %.thread79 ], [ @anon.914b41a498dd01229c97f10d279cfb3c.249, %143 ], [ @anon.914b41a498dd01229c97f10d279cfb3c.250, %200 ] invoke void @_ZN4core6option13unwrap_failed17h1fc5fce77a97a273E(ptr noalias noundef readonly align 8 dereferenceable(24) %202) #25 to label %.loopexit117.cont unwind label %.loopexit.split-lp.loopexit.split-lp -.loopexit117.cont: ; preds = %.loopexit117.invoke +.loopexit115.cont: ; preds = %.loopexit115.invoke unreachable 203: ; preds = %201 %204 = load ptr, ptr %66, align 8, !nonnull !3, !noundef !3 %205 = load i64, ptr %67, align 8, !noundef !3 - %206 = getelementptr inbounds nuw i8, ptr %.sroa.027.0177, i64 24 + %206 = getelementptr inbounds nuw i8, ptr %.sroa.027.0175, i64 24 call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.11.i) call void @llvm.lifetime.start.p0(ptr nonnull %29), !noalias !576 call void @llvm.lifetime.start.p0(ptr nonnull %28), !noalias !576 invoke void @_ZN3std2fs4File4open17h3e0944f99039b6b7E(ptr noalias noundef nonnull sret([16 x i8]) align 8 captures(none) dereferenceable(16) %28, ptr noalias noundef nonnull readonly align 1 %204, i64 noundef %205) - to label %.noexc39 unwind label %.loopexit118 + to label %.noexc39 unwind label %.loopexit116 .noexc39: ; preds = %203 %207 = load i32, ptr %28, align 8, !range !293, !noalias !576, !noundef !3 @@ -7896,7 +7896,7 @@ _ZN4core5slice6memchr6memchr17h2d5411a4e6c78ad8E.exit.thread16.i.i.i.i: ; preds %212 = load i32, ptr %68, align 4, !range !294, !noalias !576, !noundef !3 call void @llvm.lifetime.end.p0(ptr nonnull %28), !noalias !576 invoke void @"_ZN3std2io8buffered9bufreader18BufReader$LT$R$GT$13with_capacity17hb3db984d791ae9dcE"(ptr noalias noundef nonnull sret([48 x i8]) align 8 captures(none) dereferenceable(48) %29, i64 noundef 8192, i32 noundef %212) - to label %.noexc40 unwind label %.loopexit118 + to label %.noexc40 unwind label %.loopexit116 .noexc40: ; preds = %211 call void @llvm.lifetime.start.p0(ptr nonnull %27), !noalias !576 @@ -7972,7 +7972,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. %.sroa.6.012.i.i = phi ptr [ %228, %.loopexit13.loopexit.i.i ], [ %219, %.noexc.i.i ] call void @llvm.lifetime.end.p0(ptr nonnull %27), !noalias !576 invoke void @"_ZN4core3ptr81drop_in_place$LT$std..io..buffered..bufreader..BufReader$LT$std..fs..File$GT$$GT$17habea23a93376a385E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %29) - to label %.noexc41 unwind label %.loopexit118 + to label %.noexc41 unwind label %.loopexit116 229: ; preds = %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i.i %230 = icmp eq i64 %223, %224 @@ -8017,31 +8017,31 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. call void @llvm.lifetime.end.p0(ptr nonnull %26), !noalias !576 call void @llvm.lifetime.end.p0(ptr nonnull %27), !noalias !576 invoke void @"_ZN4core3ptr81drop_in_place$LT$std..io..buffered..bufreader..BufReader$LT$std..fs..File$GT$$GT$17habea23a93376a385E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %29) - to label %243 unwind label %.loopexit118 + to label %243 unwind label %.loopexit116 242: ; preds = %.noexc41 call void @llvm.lifetime.start.p0(ptr nonnull %30), !noalias !584 store ptr %.sroa.8.0.ph.i, ptr %30, align 8, !noalias !584 invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hb27365d107ee18afE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %30) - to label %.thread90 unwind label %.loopexit118 + to label %.thread90 unwind label %.loopexit116 -.thread90: ; preds = %242 +.thread88: ; preds = %242 call void @llvm.lifetime.end.p0(ptr nonnull %30), !noalias !584 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.11.i) br label %245 -.loopexit118: ; preds = %254, %323, %327, %312, %203, %211, %.loopexit13.i.i, %241, %242, %245, %.thread85.i, %250, %"_ZN4core3ptr94drop_in_place$LT$core..result..Result$LT$std..time..SystemTime$C$std..io..error..Error$GT$$GT$17hedb5dc17306c8e97E.exit.i", %.thread88.i, %329, %344, %347 - %lpad.loopexit120 = landingpad { ptr, i32 } +.loopexit116: ; preds = %254, %323, %327, %312, %203, %211, %.loopexit13.i.i, %241, %242, %245, %.thread85.i, %250, %"_ZN4core3ptr94drop_in_place$LT$core..result..Result$LT$std..time..SystemTime$C$std..io..error..Error$GT$$GT$17hedb5dc17306c8e97E.exit.i", %.thread88.i, %329, %344, %347 + %lpad.loopexit118 = landingpad { ptr, i32 } cleanup br label %.body -.loopexit.split-lp119: ; preds = %"_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$elfshaker..packidx..PackIndex$C$elfshaker..packidx..PackError$GT$$GT$17hdbe8a5488354a47bE.exit.i", %335 +.loopexit.split-lp117: ; preds = %"_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$elfshaker..packidx..PackIndex$C$elfshaker..packidx..PackError$GT$$GT$17hdbe8a5488354a47bE.exit.i", %335 %lpad.loopexit.split-lp = landingpad { ptr, i32 } cleanup br label %.body -.body: ; preds = %.loopexit118, %.loopexit.split-lp119, %342, %.thread98.i, %222 - %eh.lpad-body = phi { ptr, i32 } [ %lpad.phi.i.i, %222 ], [ %.pn73.i, %.thread98.i ], [ %343, %342 ], [ %lpad.loopexit120, %.loopexit118 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp119 ] +.body: ; preds = %.loopexit116, %.loopexit.split-lp117, %342, %.thread98.i, %222 + %eh.lpad-body = phi { ptr, i32 } [ %lpad.phi.i.i, %222 ], [ %.pn73.i, %.thread98.i ], [ %343, %342 ], [ %lpad.loopexit118, %.loopexit118 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp119 ] invoke void @"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17h61402040d85a06a8E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %39) #27 to label %.loopexit.split-lp unwind label %354 @@ -8055,14 +8055,14 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.11.i) br i1 %244, label %319, label %245 -245: ; preds = %.thread90, %243 +245: ; preds = %.thread88, %243 %246 = load ptr, ptr %66, align 8, !nonnull !3, !noundef !3 %247 = load i64, ptr %67, align 8, !noundef !3 call void @llvm.lifetime.start.p0(ptr nonnull %24) store ptr %45, ptr %24, align 8, !noalias !596 call void @llvm.lifetime.start.p0(ptr nonnull %23), !noalias !596 invoke void @_ZN3std2fs8metadata17h2aea8a706ede19deE(ptr noalias noundef nonnull sret([176 x i8]) align 8 captures(none) dereferenceable(176) %23, ptr noalias noundef nonnull readonly align 1 %246, i64 noundef %247) - to label %.noexc44 unwind label %.loopexit118 + to label %.noexc44 unwind label %.loopexit116 .noexc44: ; preds = %245 %248 = load i64, ptr %23, align 8, !range !283, !noalias !596, !noundef !3 @@ -8071,7 +8071,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. .thread85.i: ; preds = %.noexc44 invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hb27365d107ee18afE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %93) - to label %.noexc45 unwind label %.loopexit118 + to label %.noexc45 unwind label %.loopexit116 .noexc45: ; preds = %.thread85.i call void @llvm.lifetime.end.p0(ptr nonnull %23), !noalias !596 @@ -8084,7 +8084,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. store i64 %248, ptr %10, align 8, !noalias !596 call void @llvm.lifetime.start.p0(ptr nonnull %9), !noalias !596 invoke void @_ZN3std2fs8Metadata8modified17h4d0e35359e628f25E(ptr noalias noundef nonnull sret([16 x i8]) align 8 captures(none) dereferenceable(16) %9, ptr noalias noundef nonnull readonly align 8 dereferenceable(176) %10) - to label %.noexc46 unwind label %.loopexit118 + to label %.noexc46 unwind label %.loopexit116 .noexc46: ; preds = %250 %251 = load i32, ptr %94, align 8, !range !528, !noalias !596, !noundef !3 @@ -8100,7 +8100,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.66.i.sroa.7) call void @llvm.lifetime.start.p0(ptr nonnull %22), !noalias !596 invoke fastcc void @_ZN9elfshaker4repo6remote20read_remote_resource17h41f0e74eb770f79cE(ptr noalias noundef align 8 captures(none) dereferenceable(56) %22, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %1, ptr noalias noundef nonnull readonly align 8 dereferenceable(88) %45, i64 %.sroa.09.0.i, i32 noundef %.sroa.4.0.i) - to label %.noexc47 unwind label %.loopexit118 + to label %.noexc47 unwind label %.loopexit116 .noexc47: ; preds = %254 %255 = load i64, ptr %22, align 8, !range !511, !noalias !596, !noundef !3 @@ -8111,7 +8111,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. "_ZN4core3ptr94drop_in_place$LT$core..result..Result$LT$std..time..SystemTime$C$std..io..error..Error$GT$$GT$17hedb5dc17306c8e97E.exit.i": ; preds = %.noexc46 invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hb27365d107ee18afE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %9) - to label %.noexc48 unwind label %.loopexit118 + to label %.noexc48 unwind label %.loopexit116 .noexc48: ; preds = %"_ZN4core3ptr94drop_in_place$LT$core..result..Result$LT$std..time..SystemTime$C$std..io..error..Error$GT$$GT$17hedb5dc17306c8e97E.exit.i", %.noexc46 call void @llvm.lifetime.end.p0(ptr nonnull %9), !noalias !596 @@ -8143,20 +8143,20 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. %260 = load ptr, ptr %.sroa.570.0..sroa_idx, align 8, !noalias !596, !nonnull !3, !noundef !3 %261 = load i64, ptr %96, align 8, !noalias !596, !noundef !3 invoke void @_ZN9elfshaker7packidx9PackIndex5parse17hbee7e566b47d8a82E(ptr noalias noundef nonnull sret([264 x i8]) align 8 captures(none) dereferenceable(264) %20, ptr noalias noundef nonnull readonly align 1 %260, i64 noundef %261) - to label %262 unwind label %.loopexit122, !noalias !602 + to label %262 unwind label %.loopexit120, !noalias !602 -.thread98.i: ; preds = %.loopexit122, %.loopexit.split-lp123, %309, %308, %307, %.thread92.i - %.pn73.i = phi { ptr, i32 } [ %275, %309 ], [ %275, %307 ], [ %.pn97.i, %308 ], [ %265, %.thread92.i ], [ %lpad.loopexit124, %.loopexit122 ], [ %lpad.loopexit.split-lp125, %.loopexit.split-lp123 ] +.thread98.i: ; preds = %.loopexit120, %.loopexit.split-lp121, %309, %308, %307, %.thread92.i + %.pn73.i = phi { ptr, i32 } [ %275, %309 ], [ %275, %307 ], [ %.pn97.i, %308 ], [ %265, %.thread92.i ], [ %lpad.loopexit122, %.loopexit122 ], [ %lpad.loopexit.split-lp123, %.loopexit.split-lp123 ] invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h7c6be5b3411e794dE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %21) #27 to label %.body unwind label %283, !noalias !602 -.loopexit122: ; preds = %259, %305, %306 - %lpad.loopexit124 = landingpad { ptr, i32 } +.loopexit120: ; preds = %259, %305, %306 + %lpad.loopexit122 = landingpad { ptr, i32 } cleanup br label %.thread98.i -.loopexit.split-lp123: ; preds = %303, %304 - %lpad.loopexit.split-lp125 = landingpad { ptr, i32 } +.loopexit.split-lp121: ; preds = %303, %304 + %lpad.loopexit.split-lp123 = landingpad { ptr, i32 } cleanup br label %.thread98.i @@ -8307,20 +8307,20 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. 303: ; preds = %302 invoke void @"_ZN4core3ptr50drop_in_place$LT$elfshaker..packidx..PackIndex$GT$17hc9d685b47fab0509E"(ptr noalias noundef nonnull align 8 dereferenceable(264) %20) - to label %"_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$elfshaker..packidx..PackIndex$C$elfshaker..packidx..PackError$GT$$GT$17hdbe8a5488354a47bE.exit.i" unwind label %.loopexit.split-lp123, !noalias !602 + to label %"_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$elfshaker..packidx..PackIndex$C$elfshaker..packidx..PackError$GT$$GT$17hdbe8a5488354a47bE.exit.i" unwind label %.loopexit.split-lp121, !noalias !602 304: ; preds = %302 invoke fastcc void @"_ZN4core3ptr50drop_in_place$LT$elfshaker..packidx..PackError$GT$17he66c2344018b2808E"(ptr noalias noundef align 8 dereferenceable(48) %107) - to label %"_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$elfshaker..packidx..PackIndex$C$elfshaker..packidx..PackError$GT$$GT$17hdbe8a5488354a47bE.exit.i" unwind label %.loopexit.split-lp123, !noalias !602 + to label %"_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$elfshaker..packidx..PackIndex$C$elfshaker..packidx..PackError$GT$$GT$17hdbe8a5488354a47bE.exit.i" unwind label %.loopexit.split-lp121, !noalias !602 305: ; preds = %.thread90.i, %280 invoke void @"_ZN4core3ptr50drop_in_place$LT$elfshaker..packidx..PackIndex$GT$17hc9d685b47fab0509E"(ptr noalias noundef nonnull align 8 dereferenceable(264) %20) - to label %.thread88.i unwind label %.loopexit122, !noalias !602 + to label %.thread88.i unwind label %.loopexit120, !noalias !602 .thread88.i: ; preds = %306, %305, %.thread90.i call void @llvm.lifetime.end.p0(ptr nonnull %20), !noalias !596 invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h7c6be5b3411e794dE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %21) - to label %.noexc49 unwind label %.loopexit118 + to label %.noexc49 unwind label %.loopexit116 .noexc49: ; preds = %.thread88.i call void @llvm.lifetime.end.p0(ptr nonnull %21), !noalias !596 @@ -8328,12 +8328,12 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. 306: ; preds = %280 invoke fastcc void @"_ZN4core3ptr50drop_in_place$LT$elfshaker..packidx..PackError$GT$17he66c2344018b2808E"(ptr noalias noundef align 8 dereferenceable(48) %107) - to label %.thread88.i unwind label %.loopexit122, !noalias !602 + to label %.thread88.i unwind label %.loopexit120, !noalias !602 "_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$elfshaker..packidx..PackIndex$C$elfshaker..packidx..PackError$GT$$GT$17hdbe8a5488354a47bE.exit.i": ; preds = %304, %303 call void @llvm.lifetime.end.p0(ptr nonnull %20), !noalias !596 invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h7c6be5b3411e794dE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %21) - to label %.noexc50 unwind label %.loopexit.split-lp119 + to label %.noexc50 unwind label %.loopexit.split-lp117 .noexc50: ; preds = %"_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$elfshaker..packidx..PackIndex$C$elfshaker..packidx..PackError$GT$$GT$17hdbe8a5488354a47bE.exit.i" call void @llvm.lifetime.end.p0(ptr nonnull %21), !noalias !596 @@ -8369,15 +8369,15 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. br label %312 312: ; preds = %319, %328, %311 - %313 = add nuw nsw i64 %.sroa.0.0179, 1 - %314 = add nsw i64 %.sroa.02.0178, -1 + %313 = add nuw nsw i64 %.sroa.0.0177, 1 + %314 = add nsw i64 %.sroa.02.0176, -1 call void @llvm.lifetime.start.p0(ptr nonnull %34) - %315 = getelementptr i8, ptr %.sroa.027.0177, i64 8 + %315 = getelementptr i8, ptr %.sroa.027.0175, i64 8 %.sroa.027.0.val = load ptr, ptr %315, align 8, !nonnull !3, !noundef !3 - %316 = getelementptr i8, ptr %.sroa.027.0177, i64 16 + %316 = getelementptr i8, ptr %.sroa.027.0175, i64 16 %.sroa.027.0.val35 = load i64, ptr %316, align 8, !noundef !3 %317 = invoke fastcc { ptr, i64 } @_ZN9elfshaker4repo6remote10RemotePack9file_name17haefcb7870cdad725E(ptr nonnull %.sroa.027.0.val, i64 %.sroa.027.0.val35) - to label %329 unwind label %.loopexit118 + to label %329 unwind label %.loopexit116 318: ; preds = %350, %310 invoke void @"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17h61402040d85a06a8E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %39) @@ -8407,7 +8407,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. store i64 1, ptr %87, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %35) %326 = invoke noundef align 8 dereferenceable(24) ptr @_ZN3log13__private_api3loc17h3ab63cf1e40497eeE(ptr noalias noundef readonly align 8 dereferenceable(24) @anon.914b41a498dd01229c97f10d279cfb3c.253) - to label %327 unwind label %.loopexit118 + to label %327 unwind label %.loopexit116 327: ; preds = %323 store ptr @anon.914b41a498dd01229c97f10d279cfb3c.234, ptr %35, align 8 @@ -8416,7 +8416,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. store i64 23, ptr %90, align 8 store ptr %326, ptr %91, align 8 invoke void @_ZN3log13__private_api8log_impl17hb1db218cb75835bdE(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %38, i64 noundef 3, ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %35, ptr noalias noundef readonly align 8 null, i64 undef) - to label %328 unwind label %.loopexit118 + to label %328 unwind label %.loopexit116 328: ; preds = %327 call void @llvm.lifetime.end.p0(ptr nonnull %38) @@ -8430,7 +8430,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. %331 = extractvalue { ptr, i64 } %317, 1 call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !603 invoke void @"_ZN5alloc7raw_vec20RawVecInner$LT$A$GT$15try_allocate_in17h5063d03c34177e2eE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %8, i64 noundef %331, i1 noundef zeroext false, i64 noundef 1, i64 noundef 1) - to label %.noexc53 unwind label %.loopexit118 + to label %.noexc53 unwind label %.loopexit116 .noexc53: ; preds = %329 %332 = load i64, ptr %8, align 8, !range !18, !noalias !603, !noundef !3 @@ -8441,7 +8441,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. 335: ; preds = %.noexc53 %336 = load i64, ptr %118, align 8, !noalias !603 invoke void @_ZN5alloc7raw_vec12handle_error17h84144ef81c430b40E(i64 noundef %334, i64 %336, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.914b41a498dd01229c97f10d279cfb3c.180) #25 - to label %.noexc54 unwind label %.loopexit.split-lp119 + to label %.noexc54 unwind label %.loopexit.split-lp117 .noexc54: ; preds = %335 unreachable @@ -8475,7 +8475,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. 344: ; preds = %340 invoke void @"_ZN4core3ptr52drop_in_place$LT$elfshaker..progress..Checkpoint$GT$17h994c20b710bbabadE"(ptr noalias noundef nonnull align 8 dereferenceable(48) %7) - to label %.noexc56 unwind label %.loopexit118 + to label %.noexc56 unwind label %.loopexit116 .noexc56: ; preds = %344 call void @llvm.lifetime.end.p0(ptr nonnull %7), !noalias !610 @@ -8489,7 +8489,7 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17hebcd1768b7e26d75E.exit.i. 347: ; preds = %337 invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hf784466cc816aa33E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %34) - to label %_ZN9elfshaker8progress16ProgressReporter22checkpoint_with_detail17h698cef853b715bdeE.exit unwind label %.loopexit118 + to label %_ZN9elfshaker8progress16ProgressReporter22checkpoint_with_detail17h698cef853b715bdeE.exit unwind label %.loopexit116 _ZN9elfshaker8progress16ProgressReporter22checkpoint_with_detail17h698cef853b715bdeE.exit: ; preds = %.noexc56, %347 call void @llvm.lifetime.end.p0(ptr nonnull %34) diff --git a/bench/ffmpeg/optimized/avformat.ll b/bench/ffmpeg/optimized/avformat.ll index a94c7cb92ec..c7a2e41d823 100644 --- a/bench/ffmpeg/optimized/avformat.ll +++ b/bench/ffmpeg/optimized/avformat.ll @@ -1959,12 +1959,12 @@ define i64 @av_guess_sample_aspect_ratio(ptr noundef readnone captures(none) %0, %5 = alloca %struct.AVRational, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %4) %.not = icmp eq ptr %1, null - br i1 %.not, label %.critedge, label %6 + br i1 %.not, label %.critedge, label %7 -6: ; preds = %3 - %7 = getelementptr inbounds nuw i8, ptr %1, i64 72 - %8 = load i64, ptr %7, align 8 - store i64 %8, ptr %4, align 8 +7: ; preds = %3 + %8 = getelementptr inbounds nuw i8, ptr %1, i64 72 + %9 = load i64, ptr %8, align 8 + store i64 %9, ptr %4, align 8 %9 = getelementptr inbounds nuw i8, ptr %1, i64 16 %10 = load ptr, ptr %9, align 8, !tbaa !87 %.not22 = icmp eq ptr %10, null @@ -1988,12 +1988,12 @@ define i64 @av_guess_sample_aspect_ratio(ptr noundef readnone captures(none) %0, %.not23 = icmp eq ptr %2, null br i1 %.not23, label %20, label %17 -17: ; preds = %14 +16: ; preds = %14 %18 = getelementptr inbounds nuw i8, ptr %2, i64 124 %19 = load i64, ptr %18, align 4 br label %20 -20: ; preds = %14, %17 +20:; preds = %14, %16 %storemerge24 = phi i64 [ %19, %17 ], [ %.sroa.0.0, %14 ] store i64 %storemerge24, ptr %5, align 8 %21 = getelementptr inbounds nuw i8, ptr %4, i64 4 @@ -2009,30 +2009,30 @@ define i64 @av_guess_sample_aspect_ratio(ptr noundef readnone captures(none) %0, %or.cond = select i1 %26, i1 true, i1 %28 br i1 %or.cond, label %29, label %30 -29: ; preds = %20 +29:; preds = %20 store i64 4294967296, ptr %4, align 8 - br label %30 - -30: ; preds = %20, %29 - %31 = getelementptr inbounds nuw i8, ptr %5, i64 4 - %sext31 = shl i64 %storemerge24, 32 - %32 = ashr exact i64 %sext31, 32 - %33 = ashr i64 %storemerge24, 32 - %34 = call i32 @av_reduce(ptr noundef nonnull %5, ptr noundef nonnull %31, i64 noundef %32, i64 noundef %33, i64 noundef 2147483647) #13 - %35 = load i32, ptr %5, align 8, !tbaa !135 - %36 = icmp slt i32 %35, 1 - %37 = load i32, ptr %31, align 4 - %38 = icmp slt i32 %37, 1 - %or.cond5 = select i1 %36, i1 true, i1 %38 + br label %29 + +29: ; preds = %20, %29 + %30 = getelementptr inbounds nuw i8, ptr %5, i64 4 + %sext24 = shl i64 %storemerge24, 32 + %31 = ashr exact i64 %sext24, 32 + %32 = ashr i64 %storemerge24, 32 + %33 = call i32 @av_reduce(ptr noundef nonnull %5, ptr noundef nonnull %30, i64 noundef %31, i64 noundef %32, i64 noundef 2147483647) #13 + %34 = load i32, ptr %5, align 8, !tbaa !135 + %35 = icmp slt i32 %34, 1 + %36 = load i32, ptr %30, align 4 + %37 = icmp slt i32 %36, 1 + %or.cond5 = select i1 %35, i1 true, i1 %37 %.val.pre = load i64, ptr %5, align 8 %.val = select i1 %or.cond5, i64 4294967296, i64 %.val.pre - %39 = load i32, ptr %4, align 8, !tbaa !135 - %.not25 = icmp eq i32 %39, 0 - %.val26 = load i64, ptr %4, align 8 - %.sroa.018.0 = select i1 %.not25, i64 %.val, i64 %.val26 + %38 = load i32, ptr %4, align 8, !tbaa !135 + %.not19 = icmp eq i32 %38, 0 + %.val20 = load i64, ptr %4, align 8 + %.sroa.0.0 = select i1 %.not19, i64 %.val, i64 %.val20 call void @llvm.lifetime.end.p0(ptr nonnull %5) call void @llvm.lifetime.end.p0(ptr nonnull %4) - ret i64 %.sroa.018.0 + ret i64 %.sroa.0.0 } declare i32 @av_reduce(ptr noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef) local_unnamed_addr #1 diff --git a/bench/grpc/optimized/channel_args.ll b/bench/grpc/optimized/channel_args.ll index 397d1306917..ca295281bfd 100644 --- a/bench/grpc/optimized/channel_args.ll +++ b/bench/grpc/optimized/channel_args.ll @@ -3061,26 +3061,26 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit5: ; preds = %13, define noundef ptr @_Z41grpc_channel_args_copy_and_add_and_removePK17grpc_channel_argsPPKcmPK8grpc_argm(ptr noundef readonly captures(address_is_null) %0, ptr noundef readonly captures(none) %1, i64 noundef %2, ptr noundef readonly captures(none) %3, i64 noundef %4) local_unnamed_addr #9 personality ptr @__gxx_personality_v0 { %6 = alloca %"class.absl::lts_20240722::log_internal::LogMessageFatal", align 8 %.not = icmp eq ptr %0, null - br i1 %.not, label %.loopexit75, label %.preheader74 + br i1 %.not, label %.loopexit74, label %.preheader73 -.preheader74: ; preds = %5 +.preheader73: ; preds = %5 %7 = load i64, ptr %0, align 8, !tbaa !51 - %.not91 = icmp eq i64 %7, 0 - br i1 %.not91, label %.loopexit75, label %.lr.ph + %.not90 = icmp eq i64 %7, 0 + br i1 %.not90, label %.loopexit74, label %.lr.ph -.lr.ph: ; preds = %.preheader74 +.lr.ph: ; preds = %.preheader73 %.not.i = icmp eq i64 %2, 0 - br i1 %.not.i, label %.loopexit75, label %.lr.ph.split + br i1 %.not.i, label %.loopexit74, label %.lr.ph.split .lr.ph.split: ; preds = %.lr.ph %8 = getelementptr inbounds nuw i8, ptr %0, i64 8 %9 = load ptr, ptr %8, align 8, !tbaa !53 br label %.lr.ph.i -.lr.ph.i: ; preds = %.lr.ph.split, %.loopexit73 - %.04677 = phi i64 [ 0, %.lr.ph.split ], [ %22, %.loopexit73 ] - %.14876 = phi i64 [ 0, %.lr.ph.split ], [ %21, %.loopexit73 ] - %10 = getelementptr inbounds nuw %struct.grpc_arg, ptr %9, i64 %.04677 +.lr.ph.i: ; preds = %.lr.ph.split, %.loopexit72 + %.04676 = phi i64 [ 0, %.lr.ph.split ], [ %22, %.loopexit73 ] + %.14875 = phi i64 [ 0, %.lr.ph.split ], [ %21, %.loopexit73 ] + %10 = getelementptr inbounds nuw %struct.grpc_arg, ptr %9, i64 %.04676 %11 = getelementptr inbounds nuw i8, ptr %10, i64 8 %12 = load ptr, ptr %11, align 8, !tbaa !40 br label %15 @@ -3096,19 +3096,19 @@ define noundef ptr @_Z41grpc_channel_args_copy_and_add_and_removePK17grpc_channe %17 = load ptr, ptr %16, align 8, !tbaa !30 %18 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %12, ptr noundef nonnull dereferenceable(1) %17) #45 %19 = icmp eq i32 %18, 0 - br i1 %19, label %.loopexit73, label %13 + br i1 %19, label %.loopexit72, label %13 _ZL17should_remove_argPK8grpc_argPPKcm.exit.thread.loopexit: ; preds = %13 - %20 = add i64 %.14876, 1 - br label %.loopexit73 + %20 = add i64 %.14875, 1 + br label %.loopexit72 -.loopexit73: ; preds = %15, %_ZL17should_remove_argPK8grpc_argPPKcm.exit.thread.loopexit - %21 = phi i64 [ %20, %_ZL17should_remove_argPK8grpc_argPPKcm.exit.thread.loopexit ], [ %.14876, %15 ] - %22 = add nuw i64 %.04677, 1 +.loopexit72: ; preds = %15, %_ZL17should_remove_argPK8grpc_argPPKcm.exit.thread.loopexit + %21 = phi i64 [ %20, %_ZL17should_remove_argPK8grpc_argPPKcm.exit.thread.loopexit ], [ %.14875, %15 ] + %22 = add nuw i64 %.04676, 1 %exitcond.not = icmp eq i64 %22, %7 - br i1 %exitcond.not, label %.loopexit75, label %.lr.ph.i, !llvm.loop !165 + br i1 %exitcond.not, label %.loopexit74, label %.lr.ph.i, !llvm.loop !165 -.loopexit75: ; preds = %.loopexit73, %.lr.ph, %.preheader74, %5 +.loopexit74: ; preds = %.loopexit72, %.lr.ph, %.preheader73, %5 %.047 = phi i64 [ 0, %5 ], [ 0, %.preheader74 ], [ %7, %.lr.ph ], [ %21, %.loopexit73 ] %23 = tail call ptr @gpr_malloc(i64 noundef 16) %24 = add i64 %.047, %4 @@ -3116,36 +3116,36 @@ _ZL17should_remove_argPK8grpc_argPPKcm.exit.thread.loopexit: ; preds = %13 %25 = icmp eq i64 %24, 0 br i1 %25, label %26, label %28 -26: ; preds = %.loopexit75 +26: ; preds = %.loopexit74 %27 = getelementptr inbounds nuw i8, ptr %23, i64 8 store ptr null, ptr %27, align 8, !tbaa !53 br label %.critedge -28: ; preds = %.loopexit75 +28: ; preds = %.loopexit74 %29 = shl i64 %24, 5 %30 = tail call ptr @gpr_malloc(i64 noundef %29) %31 = getelementptr inbounds nuw i8, ptr %23, i64 8 store ptr %30, ptr %31, align 8, !tbaa !53 - br i1 %.not, label %.loopexit72, label %.preheader + br i1 %.not, label %.loopexit71, label %.preheader .preheader: ; preds = %28 %32 = load i64, ptr %0, align 8, !tbaa !51 - %.not92 = icmp eq i64 %32, 0 - br i1 %.not92, label %.loopexit72, label %.lr.ph83 + %.not91 = icmp eq i64 %32, 0 + br i1 %.not91, label %.loopexit71, label %.lr.ph82 -.lr.ph83: ; preds = %.preheader +.lr.ph82: ; preds = %.preheader %33 = getelementptr inbounds nuw i8, ptr %0, i64 8 %.not.i54 = icmp eq i64 %2, 0 br label %34 -34: ; preds = %.lr.ph83, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 +34: ; preds = %.lr.ph82, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 %35 = phi i64 [ %32, %.lr.ph83 ], [ %63, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] - %.04382 = phi i64 [ 0, %.lr.ph83 ], [ %64, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] - %.181 = phi i64 [ 0, %.lr.ph83 ], [ %.2, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] - %.sroa.567.080 = phi ptr [ undef, %.lr.ph83 ], [ %.sroa.567.1, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] - %.sroa.968.079 = phi i64 [ undef, %.lr.ph83 ], [ %.sroa.968.1, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] + %.04381 = phi i64 [ 0, %.lr.ph83 ], [ %64, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] + %.180 = phi i64 [ 0, %.lr.ph83 ], [ %.2, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] + %.sroa.567.079 = phi ptr [ undef, %.lr.ph83 ], [ %.sroa.567.1, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] + %.sroa.968.078 = phi i64 [ undef, %.lr.ph83 ], [ %.sroa.968.1, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] %36 = load ptr, ptr %33, align 8, !tbaa !53 - %37 = getelementptr inbounds nuw %struct.grpc_arg, ptr %36, i64 %.04382 + %37 = getelementptr inbounds nuw %struct.grpc_arg, ptr %36, i64 %.04381 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %37, i64 8 %.pre = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !40 br i1 %.not.i54, label %.loopexit, label %.lr.ph.i55 @@ -3181,7 +3181,7 @@ _ZL17should_remove_argPK8grpc_argPPKcm.exit.thread.loopexit: ; preds = %13 50: ; preds = %.loopexit %51 = getelementptr inbounds nuw i8, ptr %37, i64 16 %52 = load i32, ptr %51, align 8, !tbaa !41, !noalias !166 - %53 = ptrtoint ptr %.sroa.567.080 to i64 + %53 = ptrtoint ptr %.sroa.567.079 to i64 %.sroa.567.0.insert.ext = zext i32 %52 to i64 %.sroa.567.0.insert.mask = and i64 %53, -4294967296 %.sroa.567.0.insert.insert = or disjoint i64 %.sroa.567.0.insert.mask, %.sroa.567.0.insert.ext @@ -3199,11 +3199,11 @@ _ZL17should_remove_argPK8grpc_argPPKcm.exit.thread.loopexit: ; preds = %13 br label %_ZL8copy_argPK8grpc_arg.exit _ZL8copy_argPK8grpc_arg.exit: ; preds = %.loopexit, %46, %50, %55 - %.sroa.968.2 = phi i64 [ %.sroa.968.079, %.loopexit ], [ %.sroa.968.079, %46 ], [ %.sroa.968.079, %50 ], [ %.sroa.968.16.copyload, %55 ] - %.sroa.567.2 = phi ptr [ %.sroa.567.080, %.loopexit ], [ %49, %46 ], [ %54, %50 ], [ %59, %55 ] + %.sroa.968.2 = phi i64 [ %.sroa.968.078, %.loopexit ], [ %.sroa.968.078, %46 ], [ %.sroa.968.078, %50 ], [ %.sroa.968.16.copyload, %55 ] + %.sroa.567.2 = phi ptr [ %.sroa.567.079, %.loopexit ], [ %49, %46 ], [ %54, %50 ], [ %59, %55 ] %60 = load ptr, ptr %31, align 8, !tbaa !53 - %61 = add i64 %.181, 1 - %62 = getelementptr inbounds nuw %struct.grpc_arg, ptr %60, i64 %.181 + %61 = add i64 %.180, 1 + %62 = getelementptr inbounds nuw %struct.grpc_arg, ptr %60, i64 %.180 store i32 %44, ptr %62, align 8, !tbaa !170 %.sroa.466.0..sroa_idx = getelementptr inbounds nuw i8, ptr %62, i64 8 store ptr %45, ptr %.sroa.466.0..sroa_idx, align 8, !tbaa !30 @@ -3211,35 +3211,35 @@ _ZL8copy_argPK8grpc_arg.exit: ; preds = %.loopexit, %46, %50 store ptr %.sroa.567.2, ptr %.sroa.567.0..sroa_idx, align 8 %.sroa.968.0..sroa_idx = getelementptr inbounds nuw i8, ptr %62, i64 24 store i64 %.sroa.968.2, ptr %.sroa.968.0..sroa_idx, align 8, !tbaa !41 - %.pre98 = load i64, ptr %0, align 8, !tbaa !51 + %.pre97 = load i64, ptr %0, align 8, !tbaa !51 br label %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 _ZL17should_remove_argPK8grpc_argPPKcm.exit59: ; preds = %.lr.ph.i55, %_ZL8copy_argPK8grpc_arg.exit - %63 = phi i64 [ %.pre98, %_ZL8copy_argPK8grpc_arg.exit ], [ %35, %.lr.ph.i55 ] - %.sroa.968.1 = phi i64 [ %.sroa.968.2, %_ZL8copy_argPK8grpc_arg.exit ], [ %.sroa.968.079, %.lr.ph.i55 ] - %.sroa.567.1 = phi ptr [ %.sroa.567.2, %_ZL8copy_argPK8grpc_arg.exit ], [ %.sroa.567.080, %.lr.ph.i55 ] - %.2 = phi i64 [ %61, %_ZL8copy_argPK8grpc_arg.exit ], [ %.181, %.lr.ph.i55 ] - %64 = add nuw i64 %.04382, 1 + %63 = phi i64 [ %.pre97, %_ZL8copy_argPK8grpc_arg.exit ], [ %35, %.lr.ph.i55 ] + %.sroa.968.1 = phi i64 [ %.sroa.968.2, %_ZL8copy_argPK8grpc_arg.exit ], [ %.sroa.968.078, %.lr.ph.i55 ] + %.sroa.567.1 = phi ptr [ %.sroa.567.2, %_ZL8copy_argPK8grpc_arg.exit ], [ %.sroa.567.079, %.lr.ph.i55 ] + %.2 = phi i64 [ %61, %_ZL8copy_argPK8grpc_arg.exit ], [ %.180, %.lr.ph.i55 ] + %64 = add nuw i64 %.04381, 1 %65 = icmp ult i64 %64, %63 - br i1 %65, label %34, label %.loopexit72, !llvm.loop !171 + br i1 %65, label %34, label %.loopexit71, !llvm.loop !171 -.loopexit72: ; preds = %_ZL17should_remove_argPK8grpc_argPPKcm.exit59, %.preheader, %28 +.loopexit71: ; preds = %_ZL17should_remove_argPK8grpc_argPPKcm.exit59, %.preheader, %28 %.044 = phi i64 [ 0, %28 ], [ 0, %.preheader ], [ %.2, %_ZL17should_remove_argPK8grpc_argPPKcm.exit59 ] - %.not93 = icmp eq i64 %4, 0 - br i1 %.not93, label %._crit_edge, label %.lr.ph89 + %.not92 = icmp eq i64 %4, 0 + br i1 %.not92, label %._crit_edge, label %.lr.ph88 -._crit_edge: ; preds = %_ZL8copy_argPK8grpc_arg.exit60, %.loopexit72 +._crit_edge: ; preds = %_ZL8copy_argPK8grpc_arg.exit60, %.loopexit71 %.3.lcssa = phi i64 [ %.044, %.loopexit72 ], [ %87, %_ZL8copy_argPK8grpc_arg.exit60 ] %66 = load i64, ptr %23, align 8, !tbaa !51 %.not53.not = icmp eq i64 %.3.lcssa, %66 br i1 %.not53.not, label %.critedge, label %90, !prof !172 -.lr.ph89: ; preds = %.loopexit72, %_ZL8copy_argPK8grpc_arg.exit60 - %.04288 = phi i64 [ %89, %_ZL8copy_argPK8grpc_arg.exit60 ], [ 0, %.loopexit72 ] - %.387 = phi i64 [ %87, %_ZL8copy_argPK8grpc_arg.exit60 ], [ %.044, %.loopexit72 ] - %.sroa.5.086 = phi ptr [ %.sroa.5.1, %_ZL8copy_argPK8grpc_arg.exit60 ], [ undef, %.loopexit72 ] - %.sroa.9.085 = phi i64 [ %.sroa.9.1, %_ZL8copy_argPK8grpc_arg.exit60 ], [ undef, %.loopexit72 ] - %67 = getelementptr inbounds nuw %struct.grpc_arg, ptr %3, i64 %.04288 +.lr.ph88: ; preds = %.loopexit71, %_ZL8copy_argPK8grpc_arg.exit60 + %.04287 = phi i64 [ %89, %_ZL8copy_argPK8grpc_arg.exit60 ], [ 0, %.loopexit72 ] + %.386 = phi i64 [ %87, %_ZL8copy_argPK8grpc_arg.exit60 ], [ %.044, %.loopexit72 ] + %.sroa.5.085 = phi ptr [ %.sroa.5.1, %_ZL8copy_argPK8grpc_arg.exit60 ], [ undef, %.loopexit72 ] + %.sroa.9.084 = phi i64 [ %.sroa.9.1, %_ZL8copy_argPK8grpc_arg.exit60 ], [ undef, %.loopexit72 ] + %67 = getelementptr inbounds nuw %struct.grpc_arg, ptr %3, i64 %.04287 %68 = load i32, ptr %67, align 8, !tbaa !37, !noalias !173 %69 = getelementptr inbounds nuw i8, ptr %67, i64 8 %70 = load ptr, ptr %69, align 8, !tbaa !40, !noalias !173 @@ -3250,23 +3250,23 @@ _ZL17should_remove_argPK8grpc_argPPKcm.exit59: ; preds = %.lr.ph.i55, %_ZL8co i32 2, label %81 ] -72: ; preds = %.lr.ph89 +72: ; preds = %.lr.ph88 %73 = getelementptr inbounds nuw i8, ptr %67, i64 16 %74 = load ptr, ptr %73, align 8, !tbaa !41, !noalias !173 %75 = tail call ptr @gpr_strdup(ptr noundef %74), !noalias !173 br label %_ZL8copy_argPK8grpc_arg.exit60 -76: ; preds = %.lr.ph89 +76: ; preds = %.lr.ph88 %77 = getelementptr inbounds nuw i8, ptr %67, i64 16 %78 = load i32, ptr %77, align 8, !tbaa !41, !noalias !173 - %79 = ptrtoint ptr %.sroa.5.086 to i64 + %79 = ptrtoint ptr %.sroa.5.085 to i64 %.sroa.5.0.insert.ext = zext i32 %78 to i64 %.sroa.5.0.insert.mask = and i64 %79, -4294967296 %.sroa.5.0.insert.insert = or disjoint i64 %.sroa.5.0.insert.mask, %.sroa.5.0.insert.ext %80 = inttoptr i64 %.sroa.5.0.insert.insert to ptr br label %_ZL8copy_argPK8grpc_arg.exit60 -81: ; preds = %.lr.ph89 +81: ; preds = %.lr.ph88 %82 = getelementptr inbounds nuw i8, ptr %67, i64 16 %.sroa.9.16..sroa_idx = getelementptr inbounds nuw i8, ptr %67, i64 24 %.sroa.9.16.copyload = load i64, ptr %.sroa.9.16..sroa_idx, align 8, !tbaa !169 @@ -3276,12 +3276,12 @@ _ZL17should_remove_argPK8grpc_argPPKcm.exit59: ; preds = %.lr.ph.i55, %_ZL8co %85 = tail call noundef ptr %83(ptr noundef %84), !noalias !173 br label %_ZL8copy_argPK8grpc_arg.exit60 -_ZL8copy_argPK8grpc_arg.exit60: ; preds = %.lr.ph89, %72, %76, %81 - %.sroa.9.1 = phi i64 [ %.sroa.9.085, %.lr.ph89 ], [ %.sroa.9.085, %72 ], [ %.sroa.9.085, %76 ], [ %.sroa.9.16.copyload, %81 ] - %.sroa.5.1 = phi ptr [ %.sroa.5.086, %.lr.ph89 ], [ %75, %72 ], [ %80, %76 ], [ %85, %81 ] +_ZL8copy_argPK8grpc_arg.exit60: ; preds = %.lr.ph88, %72, %76, %81 + %.sroa.9.1 = phi i64 [ %.sroa.9.084, %.lr.ph89 ], [ %.sroa.9.084, %72 ], [ %.sroa.9.084, %76 ], [ %.sroa.9.16.copyload, %81 ] + %.sroa.5.1 = phi ptr [ %.sroa.5.085, %.lr.ph89 ], [ %75, %72 ], [ %80, %76 ], [ %85, %81 ] %86 = load ptr, ptr %31, align 8, !tbaa !53 - %87 = add i64 %.387, 1 - %88 = getelementptr inbounds nuw %struct.grpc_arg, ptr %86, i64 %.387 + %87 = add i64 %.386, 1 + %88 = getelementptr inbounds nuw %struct.grpc_arg, ptr %86, i64 %.386 store i32 %68, ptr %88, align 8, !tbaa !170 %.sroa.463.0..sroa_idx = getelementptr inbounds nuw i8, ptr %88, i64 8 store ptr %71, ptr %.sroa.463.0..sroa_idx, align 8, !tbaa !30 @@ -3289,9 +3289,9 @@ _ZL8copy_argPK8grpc_arg.exit60: ; preds = %.lr.ph89, %72, %76, store ptr %.sroa.5.1, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %88, i64 24 store i64 %.sroa.9.1, ptr %.sroa.9.0..sroa_idx, align 8, !tbaa !41 - %89 = add nuw i64 %.04288, 1 - %exitcond97.not = icmp eq i64 %89, %4 - br i1 %exitcond97.not, label %._crit_edge, label %.lr.ph89, !llvm.loop !176 + %89 = add nuw i64 %.04287, 1 + %exitcond96.not = icmp eq i64 %89, %4 + br i1 %exitcond96.not, label %._crit_edge, label %.lr.ph88, !llvm.loop !176 90: ; preds = %._crit_edge call void @llvm.lifetime.start.p0(ptr nonnull %6) diff --git a/bench/influxdb-rs/optimized/54bldmpi534adbqh.ll b/bench/influxdb-rs/optimized/54bldmpi534adbqh.ll index 633d886160b..a8b7341a4a8 100644 --- a/bench/influxdb-rs/optimized/54bldmpi534adbqh.ll +++ b/bench/influxdb-rs/optimized/54bldmpi534adbqh.ll @@ -16207,15 +16207,15 @@ define internal void @"_ZN88_$LT$influxdb3_write..persister..PersisterImpl$u20$a i8 4, label %12 ] -default.unreachable108: ; preds = %3 +default.unreachable107: ; preds = %3 unreachable 11: ; preds = %3 call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.066) %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %1, i64 64 %.pre = load ptr, ptr %.phi.trans.insert, align 8, !alias.scope !2775, !noalias !2780 - %.phi.trans.insert102 = getelementptr inbounds nuw i8, ptr %1, i64 72 - %.pre103 = load ptr, ptr %.phi.trans.insert102, align 8, !alias.scope !2775, !noalias !2780 + %.phi.trans.insert101 = getelementptr inbounds nuw i8, ptr %1, i64 72 + %.pre102 = load ptr, ptr %.phi.trans.insert101, align 8, !alias.scope !2775, !noalias !2780 br label %35 12: ; preds = %3 @@ -16227,7 +16227,7 @@ default.unreachable108: ; preds = %3 %13 = getelementptr inbounds nuw i8, ptr %1, i64 56 %14 = load i8, ptr %13, align 8, !range !214, !noundef !23 %15 = trunc nuw i8 %14 to i1 - br i1 %15, label %96, label %95 + br i1 %15, label %99, label %98 16: ; preds = %3 %17 = getelementptr inbounds nuw i8, ptr %1, i64 56 @@ -16260,12 +16260,12 @@ default.unreachable108: ; preds = %3 invoke void @"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1) #38 to label %29 unwind label %70 -29: ; preds = %.body, %93 - %.pn40 = phi { ptr, i32 } [ %94, %93 ], [ %.pn38, %.body ] +29: ; preds = %.body, %96 + %.pn40 = phi { ptr, i32 } [ %97, %93 ], [ %.pn38, %.body ] %30 = getelementptr inbounds nuw i8, ptr %1, i64 56 %31 = load i8, ptr %30, align 8, !range !214, !noundef !23 %32 = trunc nuw i8 %31 to i1 - br i1 %32, label %108, label %105 + br i1 %32, label %111, label %108 33: ; preds = %3 tail call void @_ZN4core9panicking5panic17h195fc2a96298d4c3E(ptr noalias noundef nonnull readonly align 1 @str.0, i64 noundef 35, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.45ca28eacd16980a982db8040ceab1d4.378) #37 @@ -16276,7 +16276,7 @@ default.unreachable108: ; preds = %3 unreachable 35: ; preds = %11, %24 - %36 = phi ptr [ %.pre103, %11 ], [ %26, %24 ] + %36 = phi ptr [ %.pre102, %11 ], [ %26, %24 ] %37 = phi ptr [ %.pre, %11 ], [ %25, %24 ] call void @llvm.lifetime.start.p0(ptr nonnull %8) %38 = getelementptr inbounds nuw i8, ptr %1, i64 64 @@ -16329,7 +16329,7 @@ default.unreachable108: ; preds = %3 invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h31b4e28eaae81b72E.llvm.12494526139044184965"(ptr noalias noundef nonnull align 8 dereferenceable(16) %38) to label %"_ZN4core3ptr226drop_in_place$LT$core..pin..Pin$LT$alloc..boxed..Box$LT$dyn$u20$core..future..future..Future$u2b$Output$u20$$u3d$$u20$core..result..Result$LT$object_store..GetResult$C$object_store..Error$GT$$u2b$core..marker..Send$GT$$GT$$GT$17h2e58eb7601e03523E.exit" unwind label %55 -common.ret: ; preds = %95, %80, %54 +common.ret: ; preds = %98, %80, %54 %.sink = phi i8 [ 1, %95 ], [ 4, %80 ], [ 3, %54 ] store i8 %.sink, ptr %9, align 1 ret void @@ -16379,17 +16379,17 @@ common.ret: ; preds = %95, %80, %54 br label %62 62: ; preds = %83, %60 - %.sroa.5.sink = phi ptr [ %61, %60 ], [ %.sroa.5, %83 ] - %.sroa.7.sroa.0.1 = phi i64 [ %.sroa.072.sroa.2.0.copyload, %60 ], [ %.sroa.374.sroa.0.0.copyload, %83 ] - %.sroa.478.1 = phi i64 [ %.sroa.072.sroa.0.0.copyload, %60 ], [ %77, %83 ] - %.sroa.7.sroa.4.sroa.0.1 = phi i64 [ %.sroa.072.sroa.3.0.copyload, %60 ], [ %.sroa.374.sroa.3.0.copyload, %83 ] - %.sroa.7.sroa.4.sroa.4.sroa.0.1 = phi i64 [ %.sroa.072.sroa.4.0.copyload, %60 ], [ %.sroa.374.sroa.5.0.copyload, %83 ] + %.sroa.7.sroa.0.1 = phi ptr [ %61, %60 ], [ %.sroa.5, %83 ] + %.sroa.478.1 = phi i64 [ %.sroa.072.sroa.2.0.copyload, %60 ], [ %.sroa.374.sroa.0.0.copyload, %83 ] + %.sroa.7.sroa.4.sroa.0.1 = phi i64 [ %.sroa.072.sroa.0.0.copyload, %60 ], [ %77, %83 ] + %.sroa.7.sroa.4.sroa.4.sroa.0.1 = phi i64 [ %.sroa.072.sroa.3.0.copyload, %60 ], [ %.sroa.374.sroa.3.0.copyload, %83 ] + %.sroa.7.sroa.4.sroa.4.sroa.4.1 = phi i64 [ %.sroa.072.sroa.4.0.copyload, %60 ], [ %.sroa.374.sroa.5.0.copyload, %83 ] %.sroa.7.sroa.4.sroa.4.sroa.4.1 = phi i64 [ %.sroa.072.sroa.5.0.copyload, %60 ], [ %.sroa.374.sroa.7.0.copyload, %83 ] call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.sroa.880, ptr noundef nonnull align 4 dereferenceable(40) %.sroa.5.sink, i64 40, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.066) call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !2783 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h6692686a2b5e9f59E.llvm.12494526139044184965"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %1) - to label %.noexc50 unwind label %93 + to label %.noexc50 unwind label %96 .noexc50: ; preds = %62 %63 = getelementptr inbounds nuw i8, ptr %6, i64 8 @@ -16403,9 +16403,9 @@ common.ret: ; preds = %95, %80, %54 %68 = load i64, ptr %67, align 8, !noalias !2783, !noundef !23 %69 = getelementptr inbounds nuw i8, ptr %1, i64 16 invoke void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h2e41f254f515f243E.llvm.12494526139044184965"(ptr noalias noundef nonnull readonly align 1 %69, ptr noundef nonnull %66, i64 noundef %64, i64 noundef %68) - to label %.noexc51 unwind label %93 + to label %.noexc51 unwind label %96 -70: ; preds = %108, %74, %42, %.body +70: ; preds = %111, %74, %42, %.body %71 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer tail call void @_ZN4core9panicking16panic_in_cleanup17hd44bb2114362504eE() #39 @@ -16462,32 +16462,32 @@ common.ret: ; preds = %95, %80, %54 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.066) call void @llvm.lifetime.start.p0(ptr nonnull %5), !noalias !2811 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h6692686a2b5e9f59E.llvm.12494526139044184965"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %1) - to label %.noexc53 unwind label %93 + to label %.noexc53 unwind label %96 .noexc53: ; preds = %85 - %86 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %87 = load i64, ptr %86, align 8, !range !95, !noalias !2811, !noundef !23 - %.not.i.i.i.i.i.i52 = icmp eq i64 %87, 0 - br i1 %.not.i.i.i.i.i.i52, label %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55", label %88 - -88: ; preds = %.noexc53 - %89 = load ptr, ptr %5, align 8, !noalias !2811, !nonnull !23, !noundef !23 - %90 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %91 = load i64, ptr %90, align 8, !noalias !2811, !noundef !23 - %92 = getelementptr inbounds nuw i8, ptr %1, i64 16 - invoke void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h2e41f254f515f243E.llvm.12494526139044184965"(ptr noalias noundef nonnull readonly align 1 %92, ptr noundef nonnull %89, i64 noundef %87, i64 noundef %91) - to label %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55" unwind label %93 - -"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55": ; preds = %88, %.noexc53 + %87 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %88 = load i64, ptr %87, align 8, !range !95, !noalias !2811, !noundef !23 + %.not.i.i.i.i.i.i52 = icmp eq i64 %88, 0 + br i1 %.not.i.i.i.i.i.i52, label %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55", label %89 + +89: ; preds = %.noexc53 + %90 = load ptr, ptr %5, align 8, !noalias !2811, !nonnull !23, !noundef !23 + %91 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %92 = load i64, ptr %91, align 8, !noalias !2811, !noundef !23 + %93 = getelementptr inbounds nuw i8, ptr %1, i64 16 + invoke void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h2e41f254f515f243E.llvm.12494526139044184965"(ptr noalias noundef nonnull readonly align 1 %93, ptr noundef nonnull %90, i64 noundef %88, i64 noundef %92) + to label %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55" unwind label %96 + +"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55": ; preds = %89, %.noexc53 call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !2811 - br label %95 + br label %98 -93: ; preds = %88, %85, %65, %62 - %94 = landingpad { ptr, i32 } +96: ; preds = %89, %85, %65, %62 + %97 = landingpad { ptr, i32 } cleanup br label %29 -95: ; preds = %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60", %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55", %.noexc51 +98: ; preds = %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60", %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55", %.noexc51 %.sroa.7.sroa.0.0 = phi i64 [ %.sroa.7.sroa.0.1, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60" ], [ %.sroa.7.sroa.0.1, %.noexc51 ], [ %.sroa.374.sroa.3.0.copyload, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55" ] %.sroa.478.0 = phi i64 [ %.sroa.478.1, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60" ], [ %.sroa.478.1, %.noexc51 ], [ %.sroa.374.sroa.0.0.copyload, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55" ] %.sroa.077.0 = phi i64 [ 23, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60" ], [ 23, %.noexc51 ], [ 27, %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit55" ] @@ -16509,43 +16509,43 @@ common.ret: ; preds = %95, %80, %54 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.sroa.880.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(40) %.sroa.880, i64 40, i1 false) br label %common.ret -96: ; preds = %.noexc51 - %97 = getelementptr inbounds nuw i8, ptr %1, i64 24 +99: ; preds = %.noexc51 + %100 = getelementptr inbounds nuw i8, ptr %1, i64 24 call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !2824 - invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h6692686a2b5e9f59E.llvm.12494526139044184965"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %97) - to label %.noexc58 unwind label %106 - -.noexc58: ; preds = %96 - %98 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %99 = load i64, ptr %98, align 8, !range !95, !noalias !2824, !noundef !23 - %.not.i.i.i.i.i.i57 = icmp eq i64 %99, 0 - br i1 %.not.i.i.i.i.i.i57, label %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60", label %100 - -100: ; preds = %.noexc58 - %101 = load ptr, ptr %4, align 8, !noalias !2824, !nonnull !23, !noundef !23 - %102 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %103 = load i64, ptr %102, align 8, !noalias !2824, !noundef !23 - %104 = getelementptr inbounds nuw i8, ptr %1, i64 40 - invoke void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h2e41f254f515f243E.llvm.12494526139044184965"(ptr noalias noundef nonnull readonly align 1 %104, ptr noundef nonnull %101, i64 noundef %99, i64 noundef %103) - to label %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60" unwind label %106 - -"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60": ; preds = %100, %.noexc58 + invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h6692686a2b5e9f59E.llvm.12494526139044184965"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %100) + to label %.noexc58 unwind label %109 + +.noexc58: ; preds = %99 + %101 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %102 = load i64, ptr %101, align 8, !range !95, !noalias !2824, !noundef !23 + %.not.i.i.i.i.i.i57 = icmp eq i64 %102, 0 + br i1 %.not.i.i.i.i.i.i57, label %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60", label %103 + +103: ; preds = %.noexc58 + %104 = load ptr, ptr %4, align 8, !noalias !2824, !nonnull !23, !noundef !23 + %105 = getelementptr inbounds nuw i8, ptr %4, i64 16 + %106 = load i64, ptr %105, align 8, !noalias !2824, !noundef !23 + %107 = getelementptr inbounds nuw i8, ptr %1, i64 40 + invoke void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h2e41f254f515f243E.llvm.12494526139044184965"(ptr noalias noundef nonnull readonly align 1 %107, ptr noundef nonnull %104, i64 noundef %102, i64 noundef %106) + to label %"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60" unwind label %109 + +"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E.exit60": ; preds = %103, %.noexc58 call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !2824 - br label %95 + br label %98 -105: ; preds = %108, %106, %29 - %.pn42 = phi { ptr, i32 } [ %107, %106 ], [ %.pn40, %108 ], [ %.pn40, %29 ] +108: ; preds = %111, %109, %29 + %.pn42 = phi { ptr, i32 } [ %110, %106 ], [ %.pn40, %108 ], [ %.pn40, %29 ] store i8 2, ptr %9, align 1 resume { ptr, i32 } %.pn42 -106: ; preds = %100, %96 - %107 = landingpad { ptr, i32 } +109: ; preds = %103, %99 + %110 = landingpad { ptr, i32 } cleanup - br label %105 + br label %108 -108: ; preds = %29 - %109 = getelementptr inbounds nuw i8, ptr %1, i64 24 - invoke void @"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %109) #38 +111: ; preds = %29 + %112 = getelementptr inbounds nuw i8, ptr %1, i64 24 + invoke void @"_ZN4core3ptr60drop_in_place$LT$influxdb3_write..paths..ParquetFilePath$GT$17h49f51891d3b7b679E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %112) #38 to label %105 unwind label %70 } diff --git a/bench/just-rs/optimized/xt6bvrk4jdo7mpy.ll b/bench/just-rs/optimized/xt6bvrk4jdo7mpy.ll index bbece6bfc0a..7c59d9d15d7 100644 --- a/bench/just-rs/optimized/xt6bvrk4jdo7mpy.ll +++ b/bench/just-rs/optimized/xt6bvrk4jdo7mpy.ll @@ -25442,8 +25442,8 @@ define noundef zeroext i1 @"_ZN72_$LT$just..error..Error$u20$as$u20$just..color_ %9 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, [1 x i64] } }, align 8 %10 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, [1 x i64] } }, align 8 %11 = alloca { { ptr, i64 }, { ptr, i64 }, i64, i64, i64, i64, i8, [7 x i8] }, align 8 - %.sroa.0711 = alloca [64 x i8], align 8 - %.sroa.11721 = alloca [7 x i8], align 1 + %.sroa.0715 = alloca [64 x i8], align 8 + %.sroa.11726 = alloca [7 x i8], align 1 %12 = alloca { { ptr, ptr }, { i8, { i8, i8, i8, i8, i8, i8, i8, i8, { i8, [3 x i8] }, { i8, [3 x i8] } }, i8 }, [6 x i8] }, align 8 %13 = alloca [1 x { ptr, ptr }], align 8 %14 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, [1 x i64] } }, align 8 @@ -25677,7 +25677,7 @@ define noundef zeroext i1 @"_ZN72_$LT$just..error..Error$u20$as$u20$just..color_ i8 2, label %232 ] -default.unreachable746: ; preds = %245, %3 +default.unreachable751: ; preds = %245, %3 unreachable _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i: ; preds = %3 @@ -25736,9 +25736,9 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7.i) call void @llvm.lifetime.end.p0(ptr nonnull %224) call void @llvm.lifetime.start.p0(ptr nonnull %223) - %.sroa.4728.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 17 - %.sroa.4728.0.copyload = load i8, ptr %.sroa.4728.0..sroa_idx, align 1 - switch i8 %.sroa.4728.0.copyload, label %default.unreachable.i655 [ + %.sroa.4733.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 17 + %.sroa.4733.0.copyload = load i8, ptr %.sroa.4733.0..sroa_idx, align 1 + switch i8 %.sroa.4733.0.copyload, label %default.unreachable.i655 [ i8 0, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i654 i8 1, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i651 i8 2, label %235 @@ -25748,8 +25748,8 @@ default.unreachable.i655: ; preds = %232 unreachable _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i654: ; preds = %232 - %.sroa.0726.0.copyload = load i8, ptr %2, align 1 - %234 = trunc nuw i8 %.sroa.0726.0.copyload to i1 + %.sroa.0731.0.copyload = load i8, ptr %2, align 1 + %234 = trunc nuw i8 %.sroa.0731.0.copyload to i1 br i1 %234, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i651, label %235 _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i651: ; preds = %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i654, %232 @@ -26201,7 +26201,7 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t call void @llvm.lifetime.end.p0(ptr nonnull %220) br i1 %399, label %401, label %1126 -401: ; preds = %1135, %1125, %1109, %1068, %1028, %962, %953, %941, %931, %883, %874, %860, %851, %779, %770, %761, %613, %523, %514, %480, %400, %244, %944, %943, %942, %932, %861, %834, %515, %963, %672, %671, %506, %1203, %.loopexit750, %1100, %1041, %1006, %979, %915, %833, %811, %795, %686, %670, %654, %628, %593, %577, %561, %543, %463 +401: ; preds = %1135, %1125, %1109, %1068, %1028, %962, %953, %941, %931, %883, %874, %860, %851, %779, %770, %761, %613, %523, %514, %480, %400, %244, %944, %943, %942, %932, %861, %834, %515, %963, %672, %671, %506, %1203, %.loopexit755, %1100, %1041, %1006, %979, %915, %833, %811, %795, %686, %670, %654, %628, %593, %577, %561, %543, %463 call void @llvm.lifetime.end.p0(ptr nonnull %223) call void @llvm.experimental.noalias.scope.decl(metadata !3574) call void @llvm.experimental.noalias.scope.decl(metadata !3577) @@ -26242,10 +26242,10 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t call void @llvm.lifetime.start.p0(ptr nonnull %210) %416 = icmp ult i64 %255, %252 %spec.select = select i1 %416, ptr @anon.1a7e3f89fdd1c4a5d945b914e4a08314.42, ptr @anon.1a7e3f89fdd1c4a5d945b914e4a08314.8 - %spec.select747 = select i1 %416, i64 5, i64 0 + %spec.select752 = select i1 %416, i64 5, i64 0 store ptr %spec.select, ptr %210, align 8 %417 = getelementptr inbounds nuw i8, ptr %210, i64 8 - store i64 %spec.select747, ptr %417, align 8 + store i64 %spec.select752, ptr %417, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %209) call void @llvm.lifetime.start.p0(ptr nonnull %208) store ptr %216, ptr %208, align 8 @@ -28316,9 +28316,9 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t call void @llvm.lifetime.start.p0(ptr nonnull %22) call void @llvm.lifetime.start.p0(ptr nonnull %21) call void @llvm.lifetime.start.p0(ptr nonnull %20) - %.sroa.0729.0.copyload = load i8, ptr %2, align 1 - %.sroa.4731.0.copyload = load i8, ptr %.sroa.4728.0..sroa_idx, align 1 - switch i8 %.sroa.4731.0.copyload, label %default.unreachable.i677 [ + %.sroa.0734.0.copyload = load i8, ptr %2, align 1 + %.sroa.4736.0.copyload = load i8, ptr %.sroa.4733.0..sroa_idx, align 1 + switch i8 %.sroa.4736.0.copyload, label %default.unreachable.i677 [ i8 0, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i676 i8 1, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i668 i8 2, label %1128 @@ -28328,7 +28328,7 @@ default.unreachable.i677: ; preds = %1126 unreachable _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i676: ; preds = %1126 - %1127 = trunc nuw i8 %.sroa.0729.0.copyload to i1 + %1127 = trunc nuw i8 %.sroa.0734.0.copyload to i1 br i1 %1127, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i668, label %1128 _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i668: ; preds = %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i676, %1126 @@ -28388,8 +28388,8 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t to label %1147 unwind label %.loopexit.split-lp 1145: ; preds = %._crit_edge, %1136 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.0711) - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.11721) + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.0715) + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.11726) switch i8 %246, label %_ZN4just5error5Error7context17hbad5eb4341891789E.exit.thread [ i8 0, label %1146 i8 2, label %1146 @@ -28404,13 +28404,13 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t 1147: ; preds = %1138 call void @llvm.lifetime.end.p0(ptr nonnull %18) - br i1 %1144, label %.loopexit750, label %1148 + br i1 %1144, label %.loopexit755, label %1148 1148: ; preds = %1147 call void @llvm.lifetime.start.p0(ptr nonnull %17) call void @llvm.lifetime.start.p0(ptr nonnull %16) call void @llvm.lifetime.start.p0(ptr nonnull %15) - switch i8 %.sroa.4731.0.copyload, label %default.unreachable.i701 [ + switch i8 %.sroa.4736.0.copyload, label %default.unreachable.i701 [ i8 0, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i700 i8 1, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i692 i8 2, label %1152 @@ -28420,7 +28420,7 @@ default.unreachable.i701: ; preds = %1148 unreachable _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i700: ; preds = %1148 - %1149 = trunc nuw i8 %.sroa.0729.0.copyload to i1 + %1149 = trunc nuw i8 %.sroa.0734.0.copyload to i1 br i1 %1149, label %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i692, label %1152 _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.thread.i.i692: ; preds = %_ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.i.i700, %1148 @@ -28507,12 +28507,12 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t br label %1145 1177: ; preds = %.lr.ph, %1181 - %.sroa.0710.0739 = phi ptr [ %.val641, %.lr.ph ], [ %1178, %1181 ] - %1178 = getelementptr inbounds nuw i8, ptr %.sroa.0710.0739, i64 208 + %.sroa.0714.0744 = phi ptr [ %.val641, %.lr.ph ], [ %1178, %1181 ] + %1178 = getelementptr inbounds nuw i8, ptr %.sroa.0714.0744, i64 208 call void @llvm.lifetime.start.p0(ptr nonnull %14) call void @llvm.lifetime.start.p0(ptr nonnull %13) call void @llvm.lifetime.start.p0(ptr nonnull %12) - store ptr %.sroa.0710.0739, ptr %12, align 8 + store ptr %.sroa.0714.0744, ptr %12, align 8 store ptr @anon.1a7e3f89fdd1c4a5d945b914e4a08314.180, ptr %1170, align 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(18) %1171, ptr noundef nonnull align 1 dereferenceable(18) %2, i64 18, i1 false) store ptr %12, ptr %13, align 8 @@ -28529,41 +28529,41 @@ _ZN4just5color5Color6active17hcd18acd676d3d894E.llvm.11107275065492906757.exit.t call void @llvm.lifetime.end.p0(ptr nonnull %14) call void @llvm.lifetime.end.p0(ptr nonnull %12) call void @llvm.lifetime.end.p0(ptr nonnull %13) - br i1 %1179, label %.loopexit750, label %1181 + br i1 %1179, label %.loopexit755, label %1181 1181: ; preds = %1180 %1182 = icmp eq ptr %1178, %1168 br i1 %1182, label %._crit_edge, label %1177 -.loopexit750: ; preds = %1180, %1147, %1183 +.loopexit755: ; preds = %1180, %1147, %1183 call void @llvm.lifetime.end.p0(ptr nonnull %19) br label %401 1183: ; preds = %1164 call void @llvm.lifetime.end.p0(ptr nonnull %15) call void @llvm.lifetime.end.p0(ptr nonnull %16) - br label %.loopexit750 + br label %.loopexit755 _ZN4just5error5Error7context17hbad5eb4341891789E.exit: ; preds = %1145, %1146 - %.sink749 = phi i64 [ 8, %1146 ], [ 16, %1145 ] - %.sink748 = phi i64 [ 72, %1146 ], [ 80, %1145 ] + %.sink754 = phi i64 [ 8, %1146 ], [ 16, %1145 ] + %.sink753 = phi i64 [ 72, %1146 ], [ 80, %1145 ] %.sink = phi i64 [ 73, %1146 ], [ 81, %1145 ] - %.0.i = getelementptr inbounds nuw i8, ptr %0, i64 %.sink749 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %.sroa.0711, ptr noundef nonnull align 8 dereferenceable(64) %.0.i, i64 64, i1 false), !alias.scope !3949 - %.sroa.9.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 %.sink748 - %.sroa.9.0.copyload712 = load i8, ptr %.sroa.9.0..0.i.sroa_idx, align 8, !alias.scope !3949 - %.sroa.11721.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 %.sink - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.11721, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.11721.0..0.i.sroa_idx, i64 7, i1 false), !alias.scope !3949 - %.not495 = icmp eq i8 %.sroa.9.0.copyload712, 34 + %.0.i = getelementptr inbounds nuw i8, ptr %0, i64 %.sink754 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %.sroa.0715, ptr noundef nonnull align 8 dereferenceable(64) %.0.i, i64 64, i1 false), !alias.scope !3949 + %.sroa.9716.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 %.sink753 + %.sroa.9716.0.copyload717 = load i8, ptr %.sroa.9716.0..0.i.sroa_idx, align 8, !alias.scope !3949 + %.sroa.11726.0..0.i.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 %.sink + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.11726, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.11726.0..0.i.sroa_idx, i64 7, i1 false), !alias.scope !3949 + %.not495 = icmp eq i8 %.sroa.9716.0.copyload717, 34 br i1 %.not495, label %_ZN4just5error5Error7context17hbad5eb4341891789E.exit.thread, label %1184 1184: ; preds = %_ZN4just5error5Error7context17hbad5eb4341891789E.exit call void @llvm.lifetime.start.p0(ptr nonnull %11) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %11, ptr noundef nonnull align 8 dereferenceable(64) %.sroa.0711, i64 64, i1 false) - %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %11, i64 64 - store i8 %.sroa.9.0.copyload712, ptr %.sroa.9.0..sroa_idx, align 8 - %.sroa.11721.0..sroa_idx = getelementptr inbounds nuw i8, ptr %11, i64 65 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.11721.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.11721, i64 7, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %11, ptr noundef nonnull align 8 dereferenceable(64) %.sroa.0715, i64 64, i1 false) + %.sroa.9716.0..sroa_idx = getelementptr inbounds nuw i8, ptr %11, i64 64 + store i8 %.sroa.9716.0.copyload717, ptr %.sroa.9716.0..sroa_idx, align 8 + %.sroa.11726.0..sroa_idx = getelementptr inbounds nuw i8, ptr %11, i64 65 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.11726.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.11726, i64 7, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %10) store ptr @anon.1a7e3f89fdd1c4a5d945b914e4a08314.115, ptr %10, align 8 %1185 = getelementptr inbounds nuw i8, ptr %10, i64 8 @@ -28578,8 +28578,8 @@ _ZN4just5error5Error7context17hbad5eb4341891789E.exit: ; preds = %1145, %1146 to label %1190 unwind label %.loopexit.split-lp _ZN4just5error5Error7context17hbad5eb4341891789E.exit.thread: ; preds = %1145, %1202, %_ZN4just5error5Error7context17hbad5eb4341891789E.exit - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0711) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.11721) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0715) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.11726) call void @llvm.lifetime.end.p0(ptr nonnull %223) call void @"_ZN4core3ptr69drop_in_place$LT$ansi_term..display..ANSIGenericString$LT$str$GT$$GT$17h0a82c94ea620b5dbE"(ptr noalias noundef nonnull align 8 dereferenceable(40) %225) br label %"_ZN4core3ptr69drop_in_place$LT$ansi_term..display..ANSIGenericString$LT$str$GT$$GT$17h0a82c94ea620b5dbE.exit" @@ -28630,8 +28630,8 @@ _ZN4just5error5Error7context17hbad5eb4341891789E.exit.thread: ; preds = %1145, % 1203: ; preds = %1201, %1190 call void @llvm.lifetime.end.p0(ptr nonnull %11) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0711) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.11721) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0715) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.11726) br label %401 "_ZN4core3ptr69drop_in_place$LT$ansi_term..display..ANSIGenericString$LT$str$GT$$GT$17h0a82c94ea620b5dbE.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2f4461582ec6620eE.exit.i.i", %401, %_ZN4just5error5Error7context17hbad5eb4341891789E.exit.thread diff --git a/bench/libigl/optimized/polar_svd3x3.ll b/bench/libigl/optimized/polar_svd3x3.ll index e1ab9084dca..f70b255dfaa 100644 --- a/bench/libigl/optimized/polar_svd3x3.ll +++ b/bench/libigl/optimized/polar_svd3x3.ll @@ -534,7 +534,7 @@ define linkonce_odr dso_local void @_ZN5Eigen8internal20generic_product_implINS_ %17 = icmp slt i64 %16, 20 %18 = icmp sgt i64 %10, 0 %or.cond = and i1 %18, %17 - br i1 %or.cond, label %19, label %31 + br i1 %or.cond, label %19, label %30 19: ; preds = %3 call void @llvm.lifetime.start.p0(ptr nonnull %7) @@ -572,51 +572,51 @@ define linkonce_odr dso_local void @_ZN5Eigen8internal20generic_product_implINS_ %.not.i.i.i.i = icmp eq i64 %12, %.sroa.4.0.copyload.i.i %.not8.i.i.i.i = icmp eq i64 %15, %.sroa.4.0.copyload.i %or.cond.i.i.i.i = select i1 %.not.i.i.i.i, i1 %.not8.i.i.i.i, i1 false - br i1 %or.cond.i.i.i.i, label %_ZN5Eigen8internal20generic_product_implINS_5BlockINS_6MatrixIfLi12ELi3ELi0ELi12ELi3EEELin1ELin1ELb0EEENS_9TransposeIS5_EENS_10DenseShapeES8_Li3EE12eval_dynamicINS3_IfLin1ELin1ELi0ELi12ELi12EEENS0_9assign_opIffEEEEvRT_RKS5_RKS7_RKT0_.exit, label %26 + br i1 %or.cond.i.i.i.i, label %_ZN5Eigen8internal20generic_product_implINS_5BlockINS_6MatrixIfLi12ELi3ELi0ELi12ELi3EEELin1ELin1ELb0EEENS_9TransposeIS5_EENS_10DenseShapeES8_Li3EE12eval_dynamicINS3_IfLin1ELin1ELi0ELi12ELi12EEENS0_9assign_opIffEEEEvRT_RKS5_RKS7_RKT0_.exit, label %25 -26: ; preds = %19 +25: ; preds = %19 store i64 %.sroa.4.0.copyload.i.i, ptr %11, align 16, !tbaa !45 store i64 %.sroa.4.0.copyload.i, ptr %14, align 8, !tbaa !48 br label %_ZN5Eigen8internal20generic_product_implINS_5BlockINS_6MatrixIfLi12ELi3ELi0ELi12ELi3EEELin1ELin1ELb0EEENS_9TransposeIS5_EENS_10DenseShapeES8_Li3EE12eval_dynamicINS3_IfLin1ELin1ELi0ELi12ELi12EEENS0_9assign_opIffEEEEvRT_RKS5_RKS7_RKT0_.exit -_ZN5Eigen8internal20generic_product_implINS_5BlockINS_6MatrixIfLi12ELi3ELi0ELi12ELi3EEELin1ELin1ELb0EEENS_9TransposeIS5_EENS_10DenseShapeES8_Li3EE12eval_dynamicINS3_IfLin1ELin1ELi0ELi12ELi12EEENS0_9assign_opIffEEEEvRT_RKS5_RKS7_RKT0_.exit: ; preds = %19, %26 +_ZN5Eigen8internal20generic_product_implINS_5BlockINS_6MatrixIfLi12ELi3ELi0ELi12ELi3EEELin1ELin1ELb0EEENS_9TransposeIS5_EENS_10DenseShapeES8_Li3EE12eval_dynamicINS3_IfLin1ELin1ELi0ELi12ELi12EEENS0_9assign_opIffEEEEvRT_RKS5_RKS7_RKT0_.exit: ; preds = %19, %25 call void @llvm.lifetime.start.p0(ptr nonnull %5) store ptr %0, ptr %5, align 8, !tbaa !49 - %27 = getelementptr inbounds nuw i8, ptr %5, i64 8 - store i64 %.sroa.4.0.copyload.i.i, ptr %27, align 8, !tbaa !51 + %26 = getelementptr inbounds nuw i8, ptr %5, i64 8 + store i64 %.sroa.4.0.copyload.i.i, ptr %26, align 8, !tbaa !51 call void @llvm.lifetime.start.p0(ptr nonnull %6) store ptr %5, ptr %6, align 8, !tbaa !58 - %28 = getelementptr inbounds nuw i8, ptr %6, i64 8 - store ptr %4, ptr %28, align 8, !tbaa !82 - %29 = getelementptr inbounds nuw i8, ptr %6, i64 16 - store ptr %7, ptr %29, align 8, !tbaa !29 - %30 = getelementptr inbounds nuw i8, ptr %6, i64 24 - store ptr %0, ptr %30, align 8, !tbaa !84 + %27 = getelementptr inbounds nuw i8, ptr %6, i64 8 + store ptr %4, ptr %27, align 8, !tbaa !82 + %28 = getelementptr inbounds nuw i8, ptr %6, i64 16 + store ptr %7, ptr %28, align 8, !tbaa !29 + %29 = getelementptr inbounds nuw i8, ptr %6, i64 24 + store ptr %0, ptr %29, align 8, !tbaa !84 call void @_ZN5Eigen8internal21dense_assignment_loopINS0_41restricted_packet_dense_assignment_kernelINS0_9evaluatorINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEEENS3_INS_7ProductINS_5BlockINS4_IfLi12ELi3ELi0ELi12ELi3EEELin1ELin1ELb0EEENS_9TransposeIKSA_EELi1EEEEENS0_9assign_opIffEEEELi4ELi0EE3runERSI_(ptr noundef nonnull align 8 dereferenceable(32) %6) call void @llvm.lifetime.end.p0(ptr nonnull %6) call void @llvm.lifetime.end.p0(ptr nonnull %5) call void @llvm.lifetime.end.p0(ptr nonnull %4) call void @llvm.lifetime.end.p0(ptr nonnull %7) - br label %34 + br label %33 -31: ; preds = %3 - %32 = mul nsw i64 %15, %12 - %33 = icmp slt i64 %32, 1 - br i1 %33, label %_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE7setZeroEv.exit, label %_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE11setConstantERKf.exit.loopexit.i +30: ; preds = %3 + %31 = mul nsw i64 %15, %12 + %32 = icmp slt i64 %31, 1 + br i1 %32, label %_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE7setZeroEv.exit, label %_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE11setConstantERKf.exit.loopexit.i -_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE11setConstantERKf.exit.loopexit.i: ; preds = %31 - %.idx.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %32, 2 +_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE11setConstantERKf.exit.loopexit.i: ; preds = %30 + %.idx.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %31, 2 tail call void @llvm.memset.p0.i64(ptr nonnull align 16 dereferenceable(1) %0, i8 0, i64 %.idx.i.i.i.i.i.i.i.i.i.i.i, i1 false), !tbaa !31 br label %_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE7setZeroEv.exit -_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE7setZeroEv.exit: ; preds = %31, %_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE11setConstantERKf.exit.loopexit.i +_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE7setZeroEv.exit: ; preds = %30, %_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE11setConstantERKf.exit.loopexit.i call void @llvm.lifetime.start.p0(ptr nonnull %8) store float 1.000000e+00, ptr %8, align 4, !tbaa !31 call void @_ZN5Eigen8internal20generic_product_implINS_5BlockINS_6MatrixIfLi12ELi3ELi0ELi12ELi3EEELin1ELin1ELb0EEENS_9TransposeIS5_EENS_10DenseShapeES8_Li8EE13scaleAndAddToINS3_IfLin1ELin1ELi0ELi12ELi12EEEEEvRT_RKS5_RKS7_RKf(ptr noundef nonnull align 16 dereferenceable(592) %0, ptr noundef nonnull align 8 dereferenceable(56) %1, ptr noundef nonnull align 8 dereferenceable(56) %2, ptr noundef nonnull align 4 dereferenceable(4) %8) call void @llvm.lifetime.end.p0(ptr nonnull %8) - br label %34 + br label %33 -34: ; preds = %_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE7setZeroEv.exit, %_ZN5Eigen8internal20generic_product_implINS_5BlockINS_6MatrixIfLi12ELi3ELi0ELi12ELi3EEELin1ELin1ELb0EEENS_9TransposeIS5_EENS_10DenseShapeES8_Li3EE12eval_dynamicINS3_IfLin1ELin1ELi0ELi12ELi12EEENS0_9assign_opIffEEEEvRT_RKS5_RKS7_RKT0_.exit +33: ; preds = %_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELi12ELi12EEEE7setZeroEv.exit, %_ZN5Eigen8internal20generic_product_implINS_5BlockINS_6MatrixIfLi12ELi3ELi0ELi12ELi3EEELin1ELin1ELb0EEENS_9TransposeIS5_EENS_10DenseShapeES8_Li3EE12eval_dynamicINS3_IfLin1ELin1ELi0ELi12ELi12EEENS0_9assign_opIffEEEEvRT_RKS5_RKS7_RKT0_.exit ret void } diff --git a/bench/libigl/optimized/principal_curvature.ll b/bench/libigl/optimized/principal_curvature.ll index c3019cfa8cc..7526d283b68 100644 --- a/bench/libigl/optimized/principal_curvature.ll +++ b/bench/libigl/optimized/principal_curvature.ll @@ -16590,38 +16590,38 @@ _ZN5Eigen8internal28aligned_stack_memory_handlerIdED2Ev.exit25: ; preds = %32, % define linkonce_odr dso_local void @_ZN5Eigen8internal32triangular_matrix_vector_productIlLi6EdLb0EdLb0ELi1ELi0EE3runEllPKdlS4_lPdlRS3_(i64 noundef %0, i64 noundef %1, ptr noundef %2, i64 noundef %3, ptr noundef %4, i64 noundef %5, ptr noundef %6, i64 noundef %7, ptr noundef nonnull align 8 dereferenceable(8) %8) local_unnamed_addr #20 comdat align 2 personality ptr @__gxx_personality_v0 { %10 = alloca %"class.Eigen::internal::const_blas_data_mapper", align 8 %11 = alloca %"class.Eigen::internal::const_blas_data_mapper", align 8 - %.sroa.speculated132 = tail call i64 @llvm.smin.i64(i64 %1, i64 %0) - %12 = icmp sgt i64 %.sroa.speculated132, 0 - br i1 %12, label %.lr.ph143, label %._crit_edge144 + %.sroa.speculated133 = tail call i64 @llvm.smin.i64(i64 %1, i64 %0) + %12 = icmp sgt i64 %.sroa.speculated133, 0 + br i1 %12, label %.lr.ph146, label %._crit_edge147 -.lr.ph143: ; preds = %9 +.lr.ph146: ; preds = %9 %13 = getelementptr inbounds nuw i8, ptr %10, i64 8 %14 = getelementptr inbounds nuw i8, ptr %11, i64 8 br label %15 -._crit_edge144: ; preds = %104, %9 +._crit_edge147: ; preds = %104, %9 ret void -15: ; preds = %.lr.ph143, %104 - %indvars.iv = phi i64 [ %.sroa.speculated132, %.lr.ph143 ], [ %indvars.iv.next, %104 ] - %.0141 = phi i64 [ 0, %.lr.ph143 ], [ %105, %104 ] +15: ; preds = %.lr.ph146, %104 + %indvars.iv = phi i64 [ %.sroa.speculated133, %.lr.ph143 ], [ %indvars.iv.next, %104 ] + %.0144 = phi i64 [ 0, %.lr.ph143 ], [ %105, %104 ] %16 = call i64 @llvm.smax.i64(i64 %indvars.iv, i64 1) %17 = call i64 @llvm.umin.i64(i64 %16, i64 8) - %18 = sub nsw i64 %.sroa.speculated132, %.0141 + %18 = sub nsw i64 %.sroa.speculated133, %.0144 %.sroa.speculated = call i64 @llvm.smin.i64(i64 %18, i64 8) %19 = icmp sgt i64 %18, 0 br i1 %19, label %.lr.ph, label %._crit_edge ._crit_edge: ; preds = %88, %15 - %20 = add i64 %.sroa.speculated, %.0141 + %20 = add i64 %.sroa.speculated, %.0144 %21 = sub i64 %1, %20 %22 = icmp sgt i64 %21, 0 br i1 %22, label %96, label %104 .lr.ph: ; preds = %15, %88 - %.052140 = phi i64 [ %95, %88 ], [ 0, %15 ] - %23 = add nuw nsw i64 %.052140, %.0141 - %24 = xor i64 %.052140, -1 + %.052142 = phi i64 [ %95, %88 ], [ 0, %15 ] + %23 = add nuw nsw i64 %.052142, %.0144 + %24 = xor i64 %.052142, -1 %25 = add nsw i64 %.sroa.speculated, %24 %26 = icmp sgt i64 %25, 0 br i1 %26, label %27, label %.lr.ph._crit_edge @@ -16639,7 +16639,7 @@ define linkonce_odr dso_local void @_ZN5Eigen8internal32triangular_matrix_vector %33 = getelementptr inbounds nuw double, ptr %4, i64 %28 %34 = and i64 %25, 9223372036854775804 %35 = and i64 %25, 9223372036854775806 - %.off.i.i.i = sub nsw i64 %.sroa.speculated, %.052140 + %.off.i.i.i = sub nsw i64 %.sroa.speculated, %.052142 %.not.i.i.i = icmp ult i64 %.off.i.i.i, 3 br i1 %.not.i.i.i, label %80, label %36 @@ -16742,13 +16742,13 @@ _ZNK5Eigen9DenseBaseINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_ %93 = load double, ptr %92, align 8, !tbaa !58 %94 = call double @llvm.fmuladd.f64(double %89, double %91, double %93) store double %94, ptr %92, align 8, !tbaa !58 - %95 = add nuw nsw i64 %.052140, 1 + %95 = add nuw nsw i64 %.052142, 1 %exitcond.not = icmp eq i64 %95, %17 br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !814 96: ; preds = %._crit_edge call void @llvm.lifetime.start.p0(ptr nonnull %10) - %97 = mul nsw i64 %.0141, %3 + %97 = mul nsw i64 %.0144, %3 %98 = getelementptr double, ptr %2, i64 %20 %99 = getelementptr double, ptr %98, i64 %97 store ptr %99, ptr %10, align 8, !tbaa !676 @@ -16757,7 +16757,7 @@ _ZNK5Eigen9DenseBaseINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_ %100 = getelementptr inbounds double, ptr %4, i64 %20 store ptr %100, ptr %11, align 8, !tbaa !676 store i64 %5, ptr %14, align 8, !tbaa !678 - %101 = mul nsw i64 %.0141, %7 + %101 = mul nsw i64 %.0144, %7 %102 = getelementptr inbounds double, ptr %6, i64 %101 %103 = load double, ptr %8, align 8, !tbaa !58 call void @_ZN5Eigen8internal29general_matrix_vector_productIldNS0_22const_blas_data_mapperIdlLi1EEELi1ELb0EdS3_Lb0ELi1EE3runEllRKS3_S6_Pdld(i64 noundef %.sroa.speculated, i64 noundef %21, ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef nonnull %102, i64 noundef %7, double noundef %103) @@ -16766,10 +16766,10 @@ _ZNK5Eigen9DenseBaseINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_ br label %104 104: ; preds = %96, %._crit_edge - %105 = add nuw nsw i64 %.0141, 8 - %106 = icmp slt i64 %105, %.sroa.speculated132 + %105 = add nuw nsw i64 %.0144, 8 + %106 = icmp slt i64 %105, %.sroa.speculated133 %indvars.iv.next = add i64 %indvars.iv, -8 - br i1 %106, label %15, label %._crit_edge144, !llvm.loop !815 + br i1 %106, label %15, label %._crit_edge147, !llvm.loop !815 } ; Function Attrs: mustprogress noinline uwtable @@ -26539,46 +26539,46 @@ define linkonce_odr dso_local void @_ZN5Eigen8internal20generic_product_implINS_ %27 = load i64, ptr %26, align 8 %.not8.i.i = icmp eq i64 %27, %23 %or.cond.i.i = select i1 %.not.i.i, i1 %.not8.i.i, i1 false - br i1 %or.cond.i.i, label %_ZN5Eigen8internal42call_restricted_packet_assignment_no_aliasINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_7ProductINS_5BlockIKS3_Lin1ELin1ELb1EEES3_Li1EEENS0_9assign_opIddEEEEvRT_RKT0_RKT1_.exit, label %28 + br i1 %or.cond.i.i, label %_ZN5Eigen8internal42call_restricted_packet_assignment_no_aliasINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_7ProductINS_5BlockIKS3_Lin1ELin1ELb1EEES3_Li1EEENS0_9assign_opIddEEEEvRT_RKT0_RKT1_.exit, label %27 -28: ; preds = %5 - %29 = icmp eq i64 %.sroa.4.0.copyload, 0 - %30 = icmp eq i64 %23, 0 - %or.cond.i.i.i.i = or i1 %29, %30 - br i1 %or.cond.i.i.i.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i, label %31 +27: ; preds = %5 + %28 = icmp eq i64 %.sroa.4.0.copyload, 0 + %29 = icmp eq i64 %23, 0 + %or.cond.i.i.i.i = or i1 %28, %29 + br i1 %or.cond.i.i.i.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i, label %30 -31: ; preds = %28 - %32 = sdiv i64 9223372036854775807, %23 - %33 = icmp sgt i64 %.sroa.4.0.copyload, %32 - br i1 %33, label %.noexc.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i +30: ; preds = %27 + %31 = sdiv i64 9223372036854775807, %23 + %32 = icmp sgt i64 %.sroa.4.0.copyload, %31 + br i1 %32, label %.noexc.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i -.noexc.i: ; preds = %31 - %34 = tail call ptr @__cxa_allocate_exception(i64 8) #31 - store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %34, align 8, !tbaa !56 - tail call void @__cxa_throw(ptr nonnull %34, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #32 +.noexc.i: ; preds = %30 + %33 = tail call ptr @__cxa_allocate_exception(i64 8) #31 + store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %33, align 8, !tbaa !56 + tail call void @__cxa_throw(ptr nonnull %33, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #32 unreachable -_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i: ; preds = %31, %28 - %35 = mul nsw i64 %23, %.sroa.4.0.copyload - tail call void @_ZN5Eigen12DenseStorageIdLin1ELin1ELin1ELi0EE6resizeElll(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %35, i64 noundef %.sroa.4.0.copyload, i64 noundef %23) +_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i: ; preds = %30, %27 + %34 = mul nsw i64 %23, %.sroa.4.0.copyload + tail call void @_ZN5Eigen12DenseStorageIdLin1ELin1ELin1ELi0EE6resizeElll(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %34, i64 noundef %.sroa.4.0.copyload, i64 noundef %23) %.pre.i = load i64, ptr %24, align 8, !tbaa !54 br label %_ZN5Eigen8internal42call_restricted_packet_assignment_no_aliasINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_7ProductINS_5BlockIKS3_Lin1ELin1ELb1EEES3_Li1EEENS0_9assign_opIddEEEEvRT_RKT0_RKT1_.exit _ZN5Eigen8internal42call_restricted_packet_assignment_no_aliasINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_7ProductINS_5BlockIKS3_Lin1ELin1ELb1EEES3_Li1EEENS0_9assign_opIddEEEEvRT_RKT0_RKT1_.exit: ; preds = %5, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i - %36 = phi i64 [ %.pre.i, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i ], [ %.sroa.4.0.copyload, %5 ] + %35 = phi i64 [ %.pre.i, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i ], [ %.sroa.4.0.copyload, %5 ] call void @llvm.lifetime.start.p0(ptr nonnull %7) - %37 = load ptr, ptr %0, align 8, !tbaa !53 - store ptr %37, ptr %7, align 8, !tbaa !1192 - %38 = getelementptr inbounds nuw i8, ptr %7, i64 8 - store i64 %36, ptr %38, align 8, !tbaa !1194 + %36 = load ptr, ptr %0, align 8, !tbaa !53 + store ptr %36, ptr %7, align 8, !tbaa !1192 + %37 = getelementptr inbounds nuw i8, ptr %7, i64 8 + store i64 %35, ptr %37, align 8, !tbaa !1194 call void @llvm.lifetime.start.p0(ptr nonnull %8) store ptr %7, ptr %8, align 8, !tbaa !1201 - %39 = getelementptr inbounds nuw i8, ptr %8, i64 8 - store ptr %6, ptr %39, align 8, !tbaa !1203 - %40 = getelementptr inbounds nuw i8, ptr %8, i64 16 - store ptr %3, ptr %40, align 8, !tbaa !1205 - %41 = getelementptr inbounds nuw i8, ptr %8, i64 24 - store ptr %0, ptr %41, align 8, !tbaa !195 + %38 = getelementptr inbounds nuw i8, ptr %8, i64 8 + store ptr %6, ptr %38, align 8, !tbaa !1203 + %39 = getelementptr inbounds nuw i8, ptr %8, i64 16 + store ptr %3, ptr %39, align 8, !tbaa !1205 + %40 = getelementptr inbounds nuw i8, ptr %8, i64 24 + store ptr %0, ptr %40, align 8, !tbaa !195 call void @_ZN5Eigen8internal21dense_assignment_loopINS0_41restricted_packet_dense_assignment_kernelINS0_9evaluatorINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEENS3_INS_7ProductINS_5BlockIKS5_Lin1ELin1ELb1EEES5_Li1EEEEENS0_9assign_opIddEEEELi4ELi0EE3runERSF_(ptr noundef nonnull align 8 dereferenceable(32) %8) call void @llvm.lifetime.end.p0(ptr nonnull %8) call void @llvm.lifetime.end.p0(ptr nonnull %7) diff --git a/bench/lightgbm/optimized/linear_tree_learner.ll b/bench/lightgbm/optimized/linear_tree_learner.ll index dff34639adb..81e527a789c 100644 --- a/bench/lightgbm/optimized/linear_tree_learner.ll +++ b/bench/lightgbm/optimized/linear_tree_learner.ll @@ -15241,15 +15241,15 @@ define linkonce_odr void @_ZN5Eigen8internal20generic_product_implINS_5BlockIKNS %26 = load i64, ptr %25, align 8 %.not8.i.i = icmp eq i64 %26, %.sroa.8.56.copyload %or.cond.i.i = select i1 %.not.i.i, i1 %.not8.i.i, i1 false - br i1 %or.cond.i.i, label %_ZN5Eigen8internal42call_restricted_packet_assignment_no_aliasINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_7ProductINS_5BlockIKS3_Lin1ELin1ELb0EEENS5_IS3_Lin1ELin1ELb0EEELi1EEENS0_9assign_opIddEEEEvRT_RKT0_RKT1_.exit, label %27 + br i1 %or.cond.i.i, label %_ZN5Eigen8internal42call_restricted_packet_assignment_no_aliasINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_7ProductINS_5BlockIKS3_Lin1ELin1ELb0EEENS5_IS3_Lin1ELin1ELb0EEELi1EEENS0_9assign_opIddEEEEvRT_RKT0_RKT1_.exit, label %26 -27: ; preds = %5 - %28 = icmp eq i64 %.sroa.4.0.copyload, 0 - %29 = icmp eq i64 %.sroa.8.56.copyload, 0 - %or.cond.i.i.i.i = or i1 %28, %29 +26: ; preds = %5 + %27 = icmp eq i64 %.sroa.4.0.copyload, 0 + %28 = icmp eq i64 %.sroa.8.56.copyload, 0 + %or.cond.i.i.i.i = or i1 %27, %28 br i1 %or.cond.i.i.i.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i, label %30 -30: ; preds = %27 +.noexc.i: ; preds = %27 %31 = sdiv i64 9223372036854775807, %.sroa.8.56.copyload %32 = icmp sgt i64 %.sroa.4.0.copyload, %31 br i1 %32, label %.noexc.i, label %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i @@ -15260,27 +15260,27 @@ define linkonce_odr void @_ZN5Eigen8internal20generic_product_implINS_5BlockIKNS tail call void @__cxa_throw(ptr nonnull %33, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #37 unreachable -_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i: ; preds = %30, %27 - %34 = mul nsw i64 %.sroa.8.56.copyload, %.sroa.4.0.copyload - tail call void @_ZN5Eigen12DenseStorageIdLin1ELin1ELin1ELi0EE6resizeElll(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %34, i64 noundef %.sroa.4.0.copyload, i64 noundef %.sroa.8.56.copyload) +_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i: ; preds = %30, %26 + %33 = mul nsw i64 %.sroa.8.56.copyload, %.sroa.4.0.copyload + tail call void @_ZN5Eigen12DenseStorageIdLin1ELin1ELin1ELi0EE6resizeElll(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %33, i64 noundef %.sroa.4.0.copyload, i64 noundef %.sroa.8.56.copyload) %.pre.i = load i64, ptr %23, align 8, !tbaa !376 br label %_ZN5Eigen8internal42call_restricted_packet_assignment_no_aliasINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_7ProductINS_5BlockIKS3_Lin1ELin1ELb0EEENS5_IS3_Lin1ELin1ELb0EEELi1EEENS0_9assign_opIddEEEEvRT_RKT0_RKT1_.exit _ZN5Eigen8internal42call_restricted_packet_assignment_no_aliasINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_7ProductINS_5BlockIKS3_Lin1ELin1ELb0EEENS5_IS3_Lin1ELin1ELb0EEELi1EEENS0_9assign_opIddEEEEvRT_RKT0_RKT1_.exit: ; preds = %5, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i - %35 = phi i64 [ %.pre.i, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i ], [ %.sroa.4.0.copyload, %5 ] + %34 = phi i64 [ %.pre.i, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE6resizeEll.exit.i.i ], [ %.sroa.4.0.copyload, %5 ] call void @llvm.lifetime.start.p0(ptr nonnull %7) - %36 = load ptr, ptr %0, align 8, !tbaa !379 - store ptr %36, ptr %7, align 8, !tbaa !549 - %37 = getelementptr inbounds nuw i8, ptr %7, i64 8 - store i64 %35, ptr %37, align 8, !tbaa !551 + %35 = load ptr, ptr %0, align 8, !tbaa !379 + store ptr %35, ptr %7, align 8, !tbaa !549 + %36 = getelementptr inbounds nuw i8, ptr %7, i64 8 + store i64 %34, ptr %36, align 8, !tbaa !551 call void @llvm.lifetime.start.p0(ptr nonnull %8) store ptr %7, ptr %8, align 8, !tbaa !552 - %38 = getelementptr inbounds nuw i8, ptr %8, i64 8 - store ptr %6, ptr %38, align 8, !tbaa !824 - %39 = getelementptr inbounds nuw i8, ptr %8, i64 16 - store ptr %3, ptr %39, align 8, !tbaa !556 - %40 = getelementptr inbounds nuw i8, ptr %8, i64 24 - store ptr %0, ptr %40, align 8, !tbaa !383 + %37 = getelementptr inbounds nuw i8, ptr %8, i64 8 + store ptr %6, ptr %37, align 8, !tbaa !824 + %38 = getelementptr inbounds nuw i8, ptr %8, i64 16 + store ptr %3, ptr %38, align 8, !tbaa !556 + %39 = getelementptr inbounds nuw i8, ptr %8, i64 24 + store ptr %0, ptr %39, align 8, !tbaa !383 call void @_ZN5Eigen8internal21dense_assignment_loopINS0_41restricted_packet_dense_assignment_kernelINS0_9evaluatorINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEENS3_INS_7ProductINS_5BlockIKS5_Lin1ELin1ELb0EEENS8_IS5_Lin1ELin1ELb0EEELi1EEEEENS0_9assign_opIddEEEELi4ELi0EE3runERSG_(ptr noundef nonnull align 8 dereferenceable(32) %8) call void @llvm.lifetime.end.p0(ptr nonnull %8) call void @llvm.lifetime.end.p0(ptr nonnull %7) diff --git a/bench/llama.cpp/optimized/json-schema-to-grammar.ll b/bench/llama.cpp/optimized/json-schema-to-grammar.ll index 2433081ac87..bbdc0350f31 100644 --- a/bench/llama.cpp/optimized/json-schema-to-grammar.ll +++ b/bench/llama.cpp/optimized/json-schema-to-grammar.ll @@ -37413,7 +37413,7 @@ _ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_strin br label %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit40 _ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20._ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.thread.i39_crit_edge: ; preds = %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit.thread55 - %.in.in68 = getelementptr i8, ptr %3, i64 8 + %.in.in67 = getelementptr i8, ptr %3, i64 8 br label %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit40 _ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit40: ; preds = %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit34.thread53, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20._ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.thread.i39_crit_edge, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEE4sizeEv.exit.i20 @@ -39408,7 +39408,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8, !tbaa !837, !range !81, !noundef !82 %16 = trunc nuw i8 %15 to i1 - br i1 %16, label %17, label %51 + br i1 %16, label %17, label %50 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -39456,7 +39456,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato store ptr %33, ptr %36, align 8, !tbaa !257 %37 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) call void @llvm.lifetime.end.p0(ptr nonnull %4) - br i1 %37, label %41, label %51 + br i1 %37, label %41, label %50 38: ; preds = %27 %39 = getelementptr inbounds nuw i8, ptr %.sroa.017.023, i64 1 @@ -39467,7 +39467,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato 41: ; preds = %.critedge %42 = load ptr, ptr %18, align 8 %.not21 = icmp eq ptr %.sroa.017.0.lcssa, %42 - br i1 %.not21, label %48, label %43 + br i1 %.not21, label %47, label %43 43: ; preds = %41 %44 = ptrtoint ptr %42 to i64 @@ -39479,13 +39479,13 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato store i64 %44, ptr %18, align 8, !tbaa !574 br label %51 -48: ; preds = %41 - %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %50 = load i64, ptr %49, align 8, !tbaa !269 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %50) - br label %51 +47: ; preds = %41 + %48 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %49 = load i64, ptr %48, align 8, !tbaa !269 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %49) + br label %50 -51: ; preds = %.critedge, %48, %43, %3 +50: ; preds = %.critedge, %47, %43, %3 ret void } @@ -40824,7 +40824,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8, !tbaa !837, !range !81, !noundef !82 %16 = trunc nuw i8 %15 to i1 - br i1 %16, label %17, label %51 + br i1 %16, label %17, label %50 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -40872,7 +40872,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato store ptr %33, ptr %36, align 8, !tbaa !257 %37 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) call void @llvm.lifetime.end.p0(ptr nonnull %4) - br i1 %37, label %41, label %51 + br i1 %37, label %41, label %50 38: ; preds = %27 %39 = getelementptr inbounds nuw i8, ptr %.sroa.017.023, i64 1 @@ -40883,7 +40883,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato 41: ; preds = %.critedge %42 = load ptr, ptr %18, align 8 %.not21 = icmp eq ptr %.sroa.017.0.lcssa, %42 - br i1 %.not21, label %48, label %43 + br i1 %.not21, label %47, label %43 43: ; preds = %41 %44 = ptrtoint ptr %42 to i64 @@ -40895,13 +40895,13 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato store i64 %44, ptr %18, align 8, !tbaa !574 br label %51 -48: ; preds = %41 - %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %50 = load i64, ptr %49, align 8, !tbaa !269 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %50) - br label %51 +47: ; preds = %41 + %48 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %49 = load i64, ptr %48, align 8, !tbaa !269 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %49) + br label %50 -51: ; preds = %.critedge, %48, %43, %3 +50: ; preds = %.critedge, %47, %43, %3 ret void } diff --git a/bench/llvm/optimized/AttributorAttributes.ll b/bench/llvm/optimized/AttributorAttributes.ll index a2b0dc24c92..3ac4c3f5d30 100644 --- a/bench/llvm/optimized/AttributorAttributes.ll +++ b/bench/llvm/optimized/AttributorAttributes.ll @@ -176648,8 +176648,8 @@ _ZNK4llvm10IRPosition14getAnchorScopeEv.exit: ; preds = %_ZNK4llvm10IRPositi %.sroa.0.0 = select i1 %or.cond, i16 %19, i16 %20 %.sroa.0.0.insert.ext = zext i16 %19 to i32 %.sroa.6.0.insert.shift = shl nuw i16 %.sroa.6.0.v, 8 - %.sroa.0.0.insert.ext6 = and i16 %.sroa.0.0, 255 - %.sroa.0.0.insert.insert = or disjoint i16 %.sroa.6.0.insert.shift, %.sroa.0.0.insert.ext6 + %.sroa.0.0.insert.ext = and i16 %.sroa.0.0, 255 + %.sroa.0.0.insert.insert = or disjoint i16 %.sroa.6.0.insert.shift, %.sroa.0.0.insert.ext %.sroa.0.2.insert.ext = zext i16 %.sroa.0.0.insert.insert to i32 %.sroa.0.2.insert.shift = shl nuw i32 %.sroa.0.2.insert.ext, 16 %.sroa.0.2.insert.insert = or disjoint i32 %.sroa.0.2.insert.shift, %.sroa.0.0.insert.ext diff --git a/bench/llvm/optimized/CVSymbolVisitor.ll b/bench/llvm/optimized/CVSymbolVisitor.ll index b32f7227096..87306293b5a 100644 --- a/bench/llvm/optimized/CVSymbolVisitor.ll +++ b/bench/llvm/optimized/CVSymbolVisitor.ll @@ -4473,73 +4473,73 @@ _ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i: ; preds = %49, %46, %_ZNK4llvm _ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE10drop_frontEm.exit: ; preds = %52, %28, %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i %.sroa.016.1 = phi ptr [ null, %28 ], [ %41, %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i ], [ %41, %52 ] %.sroa.6.1 = phi ptr [ null, %28 ], [ %42, %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i ], [ %42, %52 ] - %.sroa.9.1 = phi i64 [ 0, %28 ], [ %.sroa.9.16.copyload, %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i ], [ %.sroa.9.16.copyload, %52 ] + %56 = phi i64 [ 0, %28 ], [ %.sroa.9.16.copyload, %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i ], [ %.sroa.9.16.copyload, %52 ] %.sroa.11.1 = phi i64 [ 0, %28 ], [ %.sroa.11.16.copyload, %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i ], [ %53, %52 ] - %56 = phi i64 [ 0, %28 ], [ %.sroa.13.16.copyload, %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i ], [ %spec.select, %52 ] + %57 = phi i64 [ 0, %28 ], [ %.sroa.13.16.copyload, %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i ], [ %spec.select, %52 ] %.sroa.15.1 = phi i8 [ 0, %28 ], [ %.sroa.15.16.copyload, %_ZN4llvm15BinaryStreamRefC2ERKS0_.exit.i ], [ %spec.select32, %52 ] store ptr %.sroa.016.1, ptr %10, align 8, !tbaa !407 - %57 = load ptr, ptr %15, align 8, !tbaa !173 + %58 = load ptr, ptr %15, align 8, !tbaa !173 store ptr %.sroa.6.1, ptr %15, align 8, !tbaa !173 - %.not.i.i.i.i.i.i3 = icmp eq ptr %57, null - br i1 %.not.i.i.i.i.i.i3, label %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit, label %58 - -58: ; preds = %_ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE10drop_frontEm.exit - %59 = getelementptr inbounds nuw i8, ptr %57, i64 8 - %60 = load atomic i64, ptr %59 acquire, align 8 - %61 = icmp eq i64 %60, 4294967297 - %62 = trunc i64 %60 to i32 - br i1 %61, label %63, label %71 - -63: ; preds = %58 - store i32 0, ptr %59, align 8, !tbaa !174 - %64 = getelementptr inbounds nuw i8, ptr %57, i64 12 - store i32 0, ptr %64, align 4, !tbaa !176 - %65 = load ptr, ptr %57, align 8, !tbaa !10 - %66 = getelementptr inbounds nuw i8, ptr %65, i64 16 - %67 = load ptr, ptr %66, align 8 - call void %67(ptr noundef nonnull align 8 dereferenceable(16) %57) #15 - %68 = load ptr, ptr %57, align 8, !tbaa !10 - %69 = getelementptr inbounds nuw i8, ptr %68, i64 24 - %70 = load ptr, ptr %69, align 8 - call void %70(ptr noundef nonnull align 8 dereferenceable(16) %57) #15 + %.not.i.i.i.i.i.i3 = icmp eq ptr %58, null + br i1 %.not.i.i.i.i.i.i3, label %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit, label %59 + +59: ; preds = %_ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE10drop_frontEm.exit + %60 = getelementptr inbounds nuw i8, ptr %58, i64 8 + %61 = load atomic i64, ptr %60 acquire, align 8 + %62 = icmp eq i64 %61, 4294967297 + %63 = trunc i64 %61 to i32 + br i1 %62, label %64, label %72 + +64: ; preds = %59 + store i32 0, ptr %60, align 8, !tbaa !174 + %65 = getelementptr inbounds nuw i8, ptr %58, i64 12 + store i32 0, ptr %65, align 4, !tbaa !176 + %66 = load ptr, ptr %58, align 8, !tbaa !10 + %67 = getelementptr inbounds nuw i8, ptr %66, i64 16 + %68 = load ptr, ptr %67, align 8 + call void %67(ptr noundef nonnull align 8 dereferenceable(16) %58) #15 + %69 = load ptr, ptr %58, align 8, !tbaa !10 + %70 = getelementptr inbounds nuw i8, ptr %69, i64 24 + %71 = load ptr, ptr %70, align 8 + call void %70(ptr noundef nonnull align 8 dereferenceable(16) %58) #15 br label %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit -71: ; preds = %58 - %72 = load i8, ptr @__libc_single_threaded, align 1, !tbaa !177 - %.not.i.i.i.i.i.i.i4 = icmp eq i8 %72, 0 - br i1 %.not.i.i.i.i.i.i.i4, label %75, label %73 +72: ; preds = %59 + %73 = load i8, ptr @__libc_single_threaded, align 1, !tbaa !177 + %.not.i.i.i.i.i.i.i4 = icmp eq i8 %73, 0 + br i1 %.not.i.i.i.i.i.i.i4, label %76, label %74 -73: ; preds = %71 - %74 = add nsw i32 %62, -1 - store i32 %74, ptr %59, align 4, !tbaa !178 +74: ; preds = %72 + %75 = add nsw i32 %63, -1 + store i32 %75, ptr %60, align 4, !tbaa !178 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i -75: ; preds = %71 - %76 = atomicrmw volatile add ptr %59, i32 -1 acq_rel, align 4 +76: ; preds = %72 + %77 = atomicrmw volatile add ptr %60, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i -_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i: ; preds = %75, %73 - %.0.i.i.i.i.i.i.i.i = phi i32 [ %62, %73 ], [ %76, %75 ] - %77 = icmp eq i32 %.0.i.i.i.i.i.i.i.i, 1 - br i1 %77, label %78, label %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit, !prof !179 +_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i: ; preds = %76, %74 + %.0.i.i.i.i.i.i.i.i = phi i32 [ %63, %73 ], [ %77, %75 ] + %78 = icmp eq i32 %.0.i.i.i.i.i.i.i.i, 1 + br i1 %78, label %79, label %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit, !prof !179 -78: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.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) %57) #15 +79: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.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) %58) #15 br label %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit -_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit: ; preds = %78, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i, %63, %_ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE10drop_frontEm.exit - store i64 %.sroa.9.1, ptr %11, align 8 +_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit: ; preds = %79, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i, %64, %_ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE10drop_frontEm.exit + store i64 %56, ptr %11, align 8 store i64 %.sroa.11.1, ptr %13, align 8 - store i64 %56, ptr %14, align 8 + store i64 %57, ptr %14, align 8 store i8 %.sroa.15.1, ptr %12, align 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.16.16..sroa_idx, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.16, i64 7, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.16) - %79 = trunc nuw i8 %.sroa.15.1 to i1 + %80 = trunc nuw i8 %.sroa.15.1 to i1 %80 = inttoptr i64 %.sroa.9.1 to ptr br i1 %79, label %_ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE9getLengthEv.exit, label %81 81: ; preds = %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit - %.not.i5 = icmp eq i64 %.sroa.9.1, 0 + %.not.i5 = icmp eq i64 %56, 0 br i1 %.not.i5, label %_ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE9getLengthEv.exit.thread, label %82 82: ; preds = %81 @@ -4552,7 +4552,7 @@ _ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit: br label %_ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE9getLengthEv.exit _ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE9getLengthEv.exit: ; preds = %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit, %82 - %.0.i = phi i64 [ %88, %82 ], [ %56, %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit ] + %.0.i = phi i64 [ %88, %82 ], [ %57, %_ZN4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEED2Ev.exit ] %89 = icmp eq i64 %.0.i, 0 br i1 %89, label %_ZNK4llvm19BinaryStreamRefBaseINS_15BinaryStreamRefENS_12BinaryStreamEE9getLengthEv.exit.thread, label %90 diff --git a/bench/llvm/optimized/LivePhysRegs.ll b/bench/llvm/optimized/LivePhysRegs.ll index f4ebc24a884..4c477502b89 100644 --- a/bench/llvm/optimized/LivePhysRegs.ll +++ b/bench/llvm/optimized/LivePhysRegs.ll @@ -887,8 +887,8 @@ _ZN4llvm17make_filter_rangeINS_14iterator_rangeINS_21ConstMIBundleOperandsEEEPFb store ptr %48, ptr %.sroa.10.0..sroa_idx.i, align 8, !alias.scope !73 %.sroa.11.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 64 store ptr @_ZZN4llvm19phys_regs_and_masksERKNS_12MachineInstrEENUlRKNS_14MachineOperandEE_8__invokeES5_, ptr %.sroa.11.0..sroa_idx.i, align 8, !alias.scope !73 - %120 = getelementptr inbounds nuw i8, ptr %0, i64 72 - store ptr %.sroa.026.0.i, ptr %120, align 8, !alias.scope !73 + %119 = getelementptr inbounds nuw i8, ptr %0, i64 72 + store ptr %.sroa.026.0.i, ptr %119, align 8, !alias.scope !73 %.sroa.472.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 80 store ptr %13, ptr %.sroa.472.0..sroa_idx.i, align 8, !alias.scope !73 %.sroa.573.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 88 diff --git a/bench/lvgl/optimized/lv_area.ll b/bench/lvgl/optimized/lv_area.ll index 611f80ca6a3..d8a5e20720c 100644 --- a/bench/lvgl/optimized/lv_area.ll +++ b/bench/lvgl/optimized/lv_area.ll @@ -1382,19 +1382,19 @@ define void @lv_point_precise_set(ptr noundef writeonly captures(none) initializ ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable define void @lv_point_swap(ptr noundef captures(none) %0, ptr noundef captures(none) %1) local_unnamed_addr #1 { - %.sroa.0.0.copyload = load i64, ptr %0, align 4 - %3 = load i64, ptr %1, align 4 - store i64 %3, ptr %0, align 4 - store i64 %.sroa.0.0.copyload, ptr %1, align 4 + %3 = load i64, ptr %0, align 4 + %4 = load i64, ptr %1, align 4 + store i64 %4, ptr %0, align 4 + store i64 %3, ptr %1, align 4 ret void } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable define void @lv_point_precise_swap(ptr noundef captures(none) %0, ptr noundef captures(none) %1) local_unnamed_addr #1 { - %.sroa.0.0.copyload = load i64, ptr %0, align 4 - %3 = load i64, ptr %1, align 4 - store i64 %3, ptr %0, align 4 - store i64 %.sroa.0.0.copyload, ptr %1, align 4 + %3 = load i64, ptr %0, align 4 + %4 = load i64, ptr %1, align 4 + store i64 %4, ptr %0, align 4 + store i64 %3, ptr %1, align 4 ret void } diff --git a/bench/miniaudio/optimized/unity.ll b/bench/miniaudio/optimized/unity.ll index 63eaeb4e9da..0ffdb81af32 100644 --- a/bench/miniaudio/optimized/unity.ll +++ b/bench/miniaudio/optimized/unity.ll @@ -24074,13 +24074,13 @@ cdce.end.i.i: ; preds = %cdce.call, %19 %28 = fsub double 0x3FF921FB54442D18, %24 %29 = tail call double @llvm.fabs.f64(double %28) %30 = fcmp oeq double %29, 0x7FF0000000000000 - br i1 %30, label %cdce.call12, label %cdce.end10.i.i, !prof !481 + br i1 %30, label %cdce.call13, label %cdce.end10.i.i, !prof !481 -cdce.call12: ; preds = %cdce.end.i.i +cdce.call13: ; preds = %cdce.end.i.i %31 = tail call double @sin(double noundef %28) #66, !tbaa !3, !noalias !591 br label %cdce.end10.i.i -cdce.end10.i.i: ; preds = %cdce.call12, %cdce.end.i.i +cdce.end10.i.i: ; preds = %cdce.call13, %cdce.end.i.i %32 = icmp eq i32 %21, 0 br i1 %32, label %ma_bpf_get_heap_layout.exit.thread, label %33 diff --git a/bench/mold/optimized/cmdline.cc.X86_64.ll b/bench/mold/optimized/cmdline.cc.X86_64.ll index d2579ec4049..f53633387ac 100644 --- a/bench/mold/optimized/cmdline.cc.X86_64.ll +++ b/bench/mold/optimized/cmdline.cc.X86_64.ll @@ -27854,28 +27854,28 @@ _ZN3tbb6detail2d113segment_tableISt10unique_ptrIN4mold10MappedFileESt14default_d br i1 %48, label %.lr.ph.preheader, label %_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EEZNS1_18spin_wait_while_eqIS9_S9_EET_RKSt6atomicISB_ET0_St12memory_orderEUlS9_E_EESB_SF_SG_SH_.exit .lr.ph.preheader: ; preds = %46, %44, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EENS1_23cache_aligned_allocatorIS8_EENS1_17concurrent_vectorIS8_SA_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS8_Emm.exit - %.0110 = phi ptr [ %1, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EENS1_23cache_aligned_allocatorIS8_EENS1_17concurrent_vectorIS8_SA_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS8_Emm.exit ], [ %.0.i.i.i.i.i, %46 ], [ %38, %44 ] + %.0111 = phi ptr [ %1, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EENS1_23cache_aligned_allocatorIS8_EENS1_17concurrent_vectorIS8_SA_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS8_Emm.exit ], [ %.0.i.i.i.i.i, %46 ], [ %38, %44 ] br label %.lr.ph .preheader: ; preds = %.lr.ph %invariant.umin = tail call i64 @llvm.umin.i64(i64 %6, i64 3) - br label %.lr.ph98 + br label %.lr.ph99 .lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph - %.01196 = phi i64 [ %50, %.lr.ph ], [ 1, %.lr.ph.preheader ] - %49 = getelementptr inbounds nuw %"struct.std::atomic.154", ptr %.0110, i64 %.01196 + %.01197 = phi i64 [ %50, %.lr.ph ], [ 1, %.lr.ph.preheader ] + %49 = getelementptr inbounds nuw %"struct.std::atomic.154", ptr %.0111, i64 %.01197 store atomic i64 %27, ptr %49 release, align 8 - %50 = add nuw i64 %.01196, 1 + %50 = add nuw i64 %.01197, 1 %exitcond.not = icmp eq i64 %50, %6 br i1 %exitcond.not, label %.preheader, label %.lr.ph, !llvm.loop !907 -.lr.ph98: ; preds = %.preheader, %.lr.ph98 - %.01097 = phi i64 [ %52, %.lr.ph98 ], [ 1, %.preheader ] - %51 = getelementptr inbounds nuw %"struct.std::atomic.154", ptr %31, i64 %.01097 +.lr.ph99: ; preds = %.preheader, %.lr.ph99 + %.01098 = phi i64 [ %52, %.lr.ph98 ], [ 1, %.preheader ] + %51 = getelementptr inbounds nuw %"struct.std::atomic.154", ptr %31, i64 %.01098 store atomic i64 %27, ptr %51 release, align 8 - %52 = add nuw nsw i64 %.01097, 1 - %exitcond102.not = icmp eq i64 %52, %invariant.umin - br i1 %exitcond102.not, label %_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EEZNS1_18spin_wait_while_eqIS9_S9_EET_RKSt6atomicISB_ET0_St12memory_orderEUlS9_E_EESB_SF_SG_SH_.exit, label %.lr.ph98, !llvm.loop !908 + %52 = add nuw nsw i64 %.01098, 1 + %exitcond103.not = icmp eq i64 %52, %invariant.umin + br i1 %exitcond103.not, label %_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EEZNS1_18spin_wait_while_eqIS9_S9_EET_RKSt6atomicISB_ET0_St12memory_orderEUlS9_E_EESB_SF_SG_SH_.exit, label %.lr.ph99, !llvm.loop !908 53: ; preds = %24 %54 = load ptr, ptr %0, align 8, !tbaa !899 @@ -27973,7 +27973,7 @@ _ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i29: ; preds = %_ZN3tbb6detail %95 = icmp eq i64 %94, 0 br i1 %95, label %.lr.ph.i27, label %_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EEZNS1_18spin_wait_while_eqIS9_S9_EET_RKSt6atomicISB_ET0_St12memory_orderEUlS9_E_EESB_SF_SG_SH_.exit, !llvm.loop !901 -_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EEZNS1_18spin_wait_while_eqIS9_S9_EET_RKSt6atomicISB_ET0_St12memory_orderEUlS9_E_EESB_SF_SG_SH_.exit: ; preds = %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i29, %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i, %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i18, %.lr.ph98, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EENS1_23cache_aligned_allocatorIS8_EENS1_17concurrent_vectorIS8_SA_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS8_Emm.exit, %82, %53, %55, %10, %73 +_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EEZNS1_18spin_wait_while_eqIS9_S9_EET_RKSt6atomicISB_ET0_St12memory_orderEUlS9_E_EESB_SF_SG_SH_.exit: ; preds = %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i29, %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i, %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i18, %.lr.ph99, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIN4mold10MappedFileESt14default_deleteIS5_EENS1_23cache_aligned_allocatorIS8_EENS1_17concurrent_vectorIS8_SA_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS8_Emm.exit, %82, %53, %55, %10, %73 ret ptr null } @@ -52184,7 +52184,7 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8, !tbaa !507, !range !370, !noundef !371 %16 = trunc nuw i8 %15 to i1 - br i1 %16, label %17, label %55 + br i1 %16, label %17, label %54 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -52232,7 +52232,7 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm store ptr %35, ptr %38, align 8, !tbaa !955 %39 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) call void @llvm.lifetime.end.p0(ptr nonnull %4) - br i1 %39, label %44, label %55 + br i1 %39, label %44, label %54 40: ; preds = %28 %41 = getelementptr inbounds nuw i8, ptr %.sroa.017.020, i64 1 @@ -52243,7 +52243,7 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm 44: ; preds = %.critedge %45 = load ptr, ptr %18, align 8 %46 = icmp eq ptr %.sroa.017.0.lcssa, %45 - br i1 %46, label %52, label %47 + br i1 %46, label %51, label %47 47: ; preds = %44 %48 = ptrtoint ptr %45 to i64 @@ -52253,15 +52253,15 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm %51 = load i64, ptr %50, align 8, !tbaa !967 call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %51) store i64 %48, ptr %18, align 8, !tbaa !11 - br label %55 + br label %54 -52: ; preds = %44 - %53 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %54 = load i64, ptr %53, align 8, !tbaa !967 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %54) - br label %55 +51: ; preds = %44 + %52 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %53 = load i64, ptr %52, align 8, !tbaa !967 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %53) + br label %54 -55: ; preds = %.critedge, %52, %47, %3 +54: ; preds = %.critedge, %51, %47, %3 ret void } @@ -53593,7 +53593,7 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8, !tbaa !507, !range !370, !noundef !371 %16 = trunc nuw i8 %15 to i1 - br i1 %16, label %17, label %55 + br i1 %16, label %17, label %54 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -53641,7 +53641,7 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm store ptr %35, ptr %38, align 8, !tbaa !955 %39 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) call void @llvm.lifetime.end.p0(ptr nonnull %4) - br i1 %39, label %44, label %55 + br i1 %39, label %44, label %54 40: ; preds = %28 %41 = getelementptr inbounds nuw i8, ptr %.sroa.017.020, i64 1 @@ -53652,7 +53652,7 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm 44: ; preds = %.critedge %45 = load ptr, ptr %18, align 8 %46 = icmp eq ptr %.sroa.017.0.lcssa, %45 - br i1 %46, label %52, label %47 + br i1 %46, label %51, label %47 47: ; preds = %44 %48 = ptrtoint ptr %45 to i64 @@ -53662,15 +53662,15 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm %51 = load i64, ptr %50, align 8, !tbaa !967 call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %51) store i64 %48, ptr %18, align 8, !tbaa !11 - br label %55 + br label %54 -52: ; preds = %44 - %53 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %54 = load i64, ptr %53, align 8, !tbaa !967 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %54) - br label %55 +51: ; preds = %44 + %52 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %53 = load i64, ptr %52, align 8, !tbaa !967 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %53) + br label %54 -55: ; preds = %.critedge, %52, %47, %3 +54: ; preds = %.critedge, %51, %47, %3 ret void } @@ -54717,28 +54717,28 @@ _ZN3tbb6detail2d113segment_tableISt10unique_ptrIA_hSt14default_deleteIS4_EENS1_2 br i1 %48, label %.lr.ph.preheader, label %_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIA_hSt14default_deleteIS4_EEZNS1_18spin_wait_while_eqIS8_S8_EET_RKSt6atomicISA_ET0_St12memory_orderEUlS8_E_EESA_SE_SF_SG_.exit .lr.ph.preheader: ; preds = %46, %44, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIA_hSt14default_deleteIS4_EENS1_23cache_aligned_allocatorIS7_EENS1_17concurrent_vectorIS7_S9_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS7_Emm.exit - %.0110 = phi ptr [ %1, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIA_hSt14default_deleteIS4_EENS1_23cache_aligned_allocatorIS7_EENS1_17concurrent_vectorIS7_S9_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS7_Emm.exit ], [ %.0.i.i.i.i.i, %46 ], [ %38, %44 ] + %.0111 = phi ptr [ %1, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIA_hSt14default_deleteIS4_EENS1_23cache_aligned_allocatorIS7_EENS1_17concurrent_vectorIS7_S9_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS7_Emm.exit ], [ %.0.i.i.i.i.i, %46 ], [ %38, %44 ] br label %.lr.ph .preheader: ; preds = %.lr.ph %invariant.umin = tail call i64 @llvm.umin.i64(i64 %6, i64 3) - br label %.lr.ph98 + br label %.lr.ph99 .lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph - %.01196 = phi i64 [ %50, %.lr.ph ], [ 1, %.lr.ph.preheader ] - %49 = getelementptr inbounds nuw %"struct.std::atomic.146", ptr %.0110, i64 %.01196 + %.01197 = phi i64 [ %50, %.lr.ph ], [ 1, %.lr.ph.preheader ] + %49 = getelementptr inbounds nuw %"struct.std::atomic.146", ptr %.0111, i64 %.01197 store atomic i64 %27, ptr %49 release, align 8 - %50 = add nuw i64 %.01196, 1 + %50 = add nuw i64 %.01197, 1 %exitcond.not = icmp eq i64 %50, %6 br i1 %exitcond.not, label %.preheader, label %.lr.ph, !llvm.loop !1578 -.lr.ph98: ; preds = %.preheader, %.lr.ph98 - %.01097 = phi i64 [ %52, %.lr.ph98 ], [ 1, %.preheader ] - %51 = getelementptr inbounds nuw %"struct.std::atomic.146", ptr %31, i64 %.01097 +.lr.ph99: ; preds = %.preheader, %.lr.ph99 + %.01098 = phi i64 [ %52, %.lr.ph98 ], [ 1, %.preheader ] + %51 = getelementptr inbounds nuw %"struct.std::atomic.146", ptr %31, i64 %.01098 store atomic i64 %27, ptr %51 release, align 8 - %52 = add nuw nsw i64 %.01097, 1 - %exitcond102.not = icmp eq i64 %52, %invariant.umin - br i1 %exitcond102.not, label %_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIA_hSt14default_deleteIS4_EEZNS1_18spin_wait_while_eqIS8_S8_EET_RKSt6atomicISA_ET0_St12memory_orderEUlS8_E_EESA_SE_SF_SG_.exit, label %.lr.ph98, !llvm.loop !1579 + %52 = add nuw nsw i64 %.01098, 1 + %exitcond103.not = icmp eq i64 %52, %invariant.umin + br i1 %exitcond103.not, label %_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIA_hSt14default_deleteIS4_EEZNS1_18spin_wait_while_eqIS8_S8_EET_RKSt6atomicISA_ET0_St12memory_orderEUlS8_E_EESA_SE_SF_SG_.exit, label %.lr.ph99, !llvm.loop !1579 53: ; preds = %24 %54 = load ptr, ptr %0, align 8, !tbaa !1571 @@ -54836,7 +54836,7 @@ _ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i29: ; preds = %_ZN3tbb6detail %95 = icmp eq i64 %94, 0 br i1 %95, label %.lr.ph.i27, label %_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIA_hSt14default_deleteIS4_EEZNS1_18spin_wait_while_eqIS8_S8_EET_RKSt6atomicISA_ET0_St12memory_orderEUlS8_E_EESA_SE_SF_SG_.exit, !llvm.loop !1572 -_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIA_hSt14default_deleteIS4_EEZNS1_18spin_wait_while_eqIS8_S8_EET_RKSt6atomicISA_ET0_St12memory_orderEUlS8_E_EESA_SE_SF_SG_.exit: ; preds = %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i29, %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i, %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i18, %.lr.ph98, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIA_hSt14default_deleteIS4_EENS1_23cache_aligned_allocatorIS7_EENS1_17concurrent_vectorIS7_S9_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS7_Emm.exit, %82, %53, %55, %10, %73 +_ZN3tbb6detail2d015spin_wait_whileIPSt10unique_ptrIA_hSt14default_deleteIS4_EEZNS1_18spin_wait_while_eqIS8_S8_EET_RKSt6atomicISA_ET0_St12memory_orderEUlS8_E_EESA_SE_SF_SG_.exit: ; preds = %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i29, %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i, %_ZN3tbb6detail2d014atomic_backoff5pauseEv.exit.us.i18, %.lr.ph99, %_ZN3tbb6detail2d113segment_tableISt10unique_ptrIA_hSt14default_deleteIS4_EENS1_23cache_aligned_allocatorIS7_EENS1_17concurrent_vectorIS7_S9_EELm3EE25extend_table_if_necessaryERPSt6atomicIPS7_Emm.exit, %82, %53, %55, %10, %73 ret ptr null } diff --git a/bench/nix/optimized/cgroup.ll b/bench/nix/optimized/cgroup.ll index e31b92e5960..cf21426c665 100644 --- a/bench/nix/optimized/cgroup.ll +++ b/bench/nix/optimized/cgroup.ll @@ -43270,7 +43270,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8 %16 = trunc i8 %15 to i1 - br i1 %16, label %17, label %55 + br i1 %16, label %17, label %54 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -43322,12 +43322,12 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %42 = getelementptr inbounds nuw i8, ptr %4, i64 8 store ptr %39, ptr %42, align 8 %43 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) - br i1 %43, label %44, label %55 + br i1 %43, label %44, label %54 44: ; preds = %.critedge %45 = load ptr, ptr %18, align 8 %46 = icmp eq ptr %.sroa.017.0.lcssa, %45 - br i1 %46, label %52, label %47 + br i1 %46, label %51, label %47 47: ; preds = %44 %48 = ptrtoint ptr %45 to i64 @@ -43337,15 +43337,15 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %51 = load i64, ptr %50, align 8 call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %51) store i64 %48, ptr %18, align 8 - br label %55 + br label %54 -52: ; preds = %44 - %53 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %54 = load i64, ptr %53, align 8 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %54) - br label %55 +51: ; preds = %44 + %52 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %53 = load i64, ptr %52, align 8 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %53) + br label %54 -55: ; preds = %47, %52, %3, %.critedge +54: ; preds = %47, %51, %3, %.critedge ret void } @@ -44693,7 +44693,7 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8 %16 = trunc i8 %15 to i1 - br i1 %16, label %17, label %55 + br i1 %16, label %17, label %54 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -44745,12 +44745,12 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %42 = getelementptr inbounds nuw i8, ptr %4, i64 8 store ptr %39, ptr %42, align 8 %43 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) - br i1 %43, label %44, label %55 + br i1 %43, label %44, label %54 44: ; preds = %.critedge %45 = load ptr, ptr %18, align 8 %46 = icmp eq ptr %.sroa.017.0.lcssa, %45 - br i1 %46, label %52, label %47 + br i1 %46, label %51, label %47 47: ; preds = %44 %48 = ptrtoint ptr %45 to i64 @@ -44760,15 +44760,15 @@ define linkonce_odr void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iterato %51 = load i64, ptr %50, align 8 call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %51) store i64 %48, ptr %18, align 8 - br label %55 + br label %54 -52: ; preds = %44 - %53 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %54 = load i64, ptr %53, align 8 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %54) - br label %55 +51: ; preds = %44 + %52 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %53 = load i64, ptr %52, align 8 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %53) + br label %54 -55: ; preds = %47, %52, %3, %.critedge +54: ; preds = %47, %51, %3, %.critedge ret void } diff --git a/bench/ockam-rs/optimized/111eznecj9pn2lkp.ll b/bench/ockam-rs/optimized/111eznecj9pn2lkp.ll index 050d9cef13f..69fa5060c83 100644 --- a/bench/ockam-rs/optimized/111eznecj9pn2lkp.ll +++ b/bench/ockam-rs/optimized/111eznecj9pn2lkp.ll @@ -5576,10 +5576,10 @@ define hidden { ptr, ptr } @_ZN5tokio2io5split5split17h141141f189a94ef7E(ptr nou store i64 0, ptr %5, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 24 store ptr %0, ptr %.sroa.4.0..sroa_idx, align 8 - %.sroa.5.0..sroa_idx12 = getelementptr inbounds nuw i8, ptr %3, i64 32 - store ptr %1, ptr %.sroa.5.0..sroa_idx12, align 8 - %.sroa.6.0..sroa_idx13 = getelementptr inbounds nuw i8, ptr %3, i64 40 - store i8 0, ptr %.sroa.6.0..sroa_idx13, align 8 + %.sroa.513.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 32 + store ptr %1, ptr %.sroa.513.0..sroa_idx, align 8 + %.sroa.6.0..sroa_idx14 = getelementptr inbounds nuw i8, ptr %3, i64 40 + store i8 0, ptr %.sroa.6.0..sroa_idx14, align 8 %6 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !719 %7 = tail call noundef align 8 dereferenceable_or_null(48) ptr @__rust_alloc(i64 noundef 48, i64 noundef 8) #40, !noalias !719 %8 = icmp eq ptr %7, null diff --git a/bench/ockam-rs/optimized/31s7w40jb5ho09e2.ll b/bench/ockam-rs/optimized/31s7w40jb5ho09e2.ll index ef5baccd4b6..4346e7b378b 100644 --- a/bench/ockam-rs/optimized/31s7w40jb5ho09e2.ll +++ b/bench/ockam-rs/optimized/31s7w40jb5ho09e2.ll @@ -722,7 +722,7 @@ define hidden void @"_ZN12sharded_slab4pool17Pool$LT$T$C$C$GT$6create28_$u7b$$u7 %6 = tail call noundef i64 @_ZN4core4sync6atomic11atomic_load17h884bb096e39ee00aE.llvm.1091148472540163290(ptr noundef nonnull %5, i8 noundef 2), !noalias !111 %7 = and i64 %6, 2251799813685244 %8 = icmp eq i64 %7, 0 - br i1 %8, label %9, label %14 + br i1 %8, label %9, label %13 9: ; preds = %4 %10 = ptrtoint ptr %3 to i64 @@ -734,12 +734,12 @@ define hidden void @"_ZN12sharded_slab4pool17Pool$LT$T$C$C$GT$6create28_$u7b$$u7 store i64 %10, ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.4.sroa.4.0..sroa.4.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store i64 %6, ptr %.sroa.4.sroa.4.0..sroa.4.0..sroa_idx.sroa_idx, align 8 - br label %14 + br label %13 -14: ; preds = %4, %9 +13: ; preds = %4, %9 %.sink = phi i8 [ 0, %9 ], [ 2, %4 ] - %15 = getelementptr inbounds nuw i8, ptr %0, i64 24 - store i8 %.sink, ptr %15, align 8 + %14 = getelementptr inbounds nuw i8, ptr %0, i64 24 + store i8 %.sink, ptr %14, align 8 ret void } @@ -3825,8 +3825,8 @@ define hidden void @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..funct "_ZN12sharded_slab4pool17Pool$LT$T$C$C$GT$6create28_$u7b$$u7b$closure$u7d$$u7d$17h7c698bf91af177ffE.llvm.16910215836284360165.exit": ; preds = %4, %9 %.sink.i = phi i8 [ 0, %9 ], [ 2, %4 ] - %14 = getelementptr inbounds nuw i8, ptr %0, i64 24 - store i8 %.sink.i, ptr %14, align 8, !alias.scope !662 + %13 = getelementptr inbounds nuw i8, ptr %0, i64 24 + store i8 %.sink.i, ptr %13, align 8, !alias.scope !662 ret void } diff --git a/bench/ockam-rs/optimized/3spcfx0kj7tua4em.ll b/bench/ockam-rs/optimized/3spcfx0kj7tua4em.ll index ca6c95ee7da..3f8babdb486 100644 --- a/bench/ockam-rs/optimized/3spcfx0kj7tua4em.ll +++ b/bench/ockam-rs/optimized/3spcfx0kj7tua4em.ll @@ -132830,8 +132830,8 @@ define void @"_ZN9ockam_api2ui8terminal4term136_$LT$impl$u20$ockam_api..ui..term store i64 0, ptr %5, align 8 %.sroa.410.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 112 store i8 0, ptr %.sroa.410.0..sroa_idx, align 8 - %.sroa.511.sroa.3.0..sroa.511.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 120 - store ptr inttoptr (i64 1 to ptr), ptr %.sroa.511.sroa.3.0..sroa.511.0..sroa_idx.sroa_idx, align 8 + %.sroa.59.sroa.4.0..sroa.59.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 120 + store ptr inttoptr (i64 1 to ptr), ptr %.sroa.59.sroa.4.0..sroa.59.0..sroa_idx.sroa_idx, align 8 %.sroa.511.sroa.4.0..sroa.511.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 128 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.511.sroa.4.0..sroa.511.0..sroa_idx.sroa_idx, i8 0, i64 24, i1 false) call void @_ZN7console4term4Term10with_inner17hff86de39b4044ed6E(ptr noalias noundef nonnull sret({ ptr, i8, i8, [6 x i8] }) align 8 captures(none) dereferenceable(16) %4, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(152) %3) @@ -132884,8 +132884,8 @@ define void @"_ZN9ockam_api2ui8terminal4term136_$LT$impl$u20$ockam_api..ui..term store i64 0, ptr %5, align 8 %.sroa.410.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 112 store i8 0, ptr %.sroa.410.0..sroa_idx, align 8 - %.sroa.511.sroa.3.0..sroa.511.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 120 - store ptr inttoptr (i64 1 to ptr), ptr %.sroa.511.sroa.3.0..sroa.511.0..sroa_idx.sroa_idx, align 8 + %.sroa.59.sroa.4.0..sroa.59.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 120 + store ptr inttoptr (i64 1 to ptr), ptr %.sroa.59.sroa.4.0..sroa.59.0..sroa_idx.sroa_idx, align 8 %.sroa.511.sroa.4.0..sroa.511.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 128 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.511.sroa.4.0..sroa.511.0..sroa_idx.sroa_idx, i8 0, i64 24, i1 false) call void @_ZN7console4term4Term10with_inner17hff86de39b4044ed6E(ptr noalias noundef nonnull sret({ ptr, i8, i8, [6 x i8] }) align 8 captures(none) dereferenceable(16) %4, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(152) %3) diff --git a/bench/ockam-rs/optimized/4t3y03rrak2rtjym.ll b/bench/ockam-rs/optimized/4t3y03rrak2rtjym.ll index 7cb4323792a..e4d0c9017b0 100644 --- a/bench/ockam-rs/optimized/4t3y03rrak2rtjym.ll +++ b/bench/ockam-rs/optimized/4t3y03rrak2rtjym.ll @@ -1141,7 +1141,7 @@ define hidden void @"_ZN12sharded_slab5shard18Shard$LT$T$C$C$GT$9init_with17hc5c %11 = load ptr, ptr %1, align 8, !nonnull !10, !align !149 br label %12 -12: ; preds = %.lr.ph, %48 +12: ; preds = %.lr.ph, %47 %.sroa.0.043 = phi ptr [ %4, %.lr.ph ], [ %13, %48 ] %.sroa.8.042 = phi i64 [ 0, %.lr.ph ], [ %14, %48 ] %13 = getelementptr inbounds nuw i8, ptr %.sroa.0.043, i64 40 @@ -1149,7 +1149,7 @@ define hidden void @"_ZN12sharded_slab5shard18Shard$LT$T$C$C$GT$9init_with17hc5c %exitcond.not = icmp eq i64 %.sroa.8.042, %10 br i1 %exitcond.not, label %38, label %15, !prof !235 -._crit_edge: ; preds = %48, %2, %39 +._crit_edge: ; preds = %47, %2, %39 %.sink = phi i8 [ 0, %39 ], [ 2, %2 ], [ 2, %48 ] %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 store i8 %.sink, ptr %.sroa.4.0..sroa_idx, align 8 @@ -1167,11 +1167,11 @@ define hidden void @"_ZN12sharded_slab5shard18Shard$LT$T$C$C$GT$9init_with17hc5c %21 = getelementptr inbounds nuw i8, ptr %.sroa.0.043, i64 16 %22 = atomicrmw xchg ptr %21, i64 274877906944 acquire, align 8, !noalias !236 %.not.i.i = icmp eq i64 %22, 274877906944 - br i1 %.not.i.i, label %48, label %"_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.thread31.i" + br i1 %.not.i.i, label %47, label %"_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.thread31.i" "_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.i": ; preds = %15 - %.not42.not.i = icmp eq i64 %.val.i, 274877906944 - br i1 %.not42.not.i, label %48, label %"_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.thread31.i" + %.not39.not.i = icmp eq i64 %.val.i, 274877906944 + br i1 %.not39.not.i, label %47, label %"_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.thread31.i" "_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.thread31.i": ; preds = %"_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.i", %20 %.0.i34.i = phi i64 [ %.val.i, %"_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.i" ], [ %22, %20 ] @@ -1204,7 +1204,7 @@ define hidden void @"_ZN12sharded_slab5shard18Shard$LT$T$C$C$GT$9init_with17hc5c %34 = tail call noundef i64 @_ZN4core4sync6atomic11atomic_load17h884bb096e39ee00aE.llvm.1091148472540163290(ptr noundef nonnull %33, i8 noundef 2), !noalias !243 %35 = and i64 %34, 2251799813685244 %36 = icmp eq i64 %35, 0 - br i1 %36, label %39, label %48 + br i1 %36, label %39, label %47 37: ; preds = %.thread.i tail call void @_ZN4core9panicking18panic_bounds_check17hb0ff58c889dba9eeE(i64 noundef %.0.i34.i, i64 noundef %29, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.bd112a14df90db5fef21b728579ed996.3) #44, !noalias !239 @@ -1218,7 +1218,7 @@ define hidden void @"_ZN12sharded_slab5shard18Shard$LT$T$C$C$GT$9init_with17hc5c %40 = getelementptr inbounds nuw i64, ptr %11, i64 %.sroa.8.042 %41 = add i64 %.pn.i, %.0.i34.i %42 = ptrtoint ptr %32 to i64 - %43 = and i64 %34, -2251799813685248 + %43 = and i64 %34, -2251799813685247 %44 = and i64 %41, 2251799813685247 %45 = or disjoint i64 %43, %44 %46 = getelementptr inbounds nuw i8, ptr %32, i64 88 @@ -1231,9 +1231,9 @@ define hidden void @"_ZN12sharded_slab5shard18Shard$LT$T$C$C$GT$9init_with17hc5c store i64 %34, ptr %.sroa.3.0..sroa_idx, align 8 br label %._crit_edge -48: ; preds = %20, %"_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.i", %31 - %49 = icmp eq ptr %13, %7 - br i1 %49, label %._crit_edge, label %12 +47: ; preds = %20, %"_ZN12sharded_slab4page19Shared$LT$T$C$C$GT$3pop17h78f4d061c5fecd30E.exit.i", %31 + %48 = icmp eq ptr %13, %7 + br i1 %48, label %._crit_edge, label %12 } ; Function Attrs: inlinehint nonlazybind uwtable diff --git a/bench/ockam-rs/optimized/7hitgxreqt236i.ll b/bench/ockam-rs/optimized/7hitgxreqt236i.ll index d8a7b142893..34520347945 100644 --- a/bench/ockam-rs/optimized/7hitgxreqt236i.ll +++ b/bench/ockam-rs/optimized/7hitgxreqt236i.ll @@ -24679,12 +24679,12 @@ define noalias noundef nonnull ptr @_ZN14ockam_identity15secure_channels15secure store ptr %0, ptr %4, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !3454 store i64 1, ptr %3, align 8, !noalias !3454 - %5 = getelementptr inbounds nuw i8, ptr %3, i64 8 - store i64 1, ptr %5, align 8, !noalias !3454 - %6 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store i64 0, ptr %6, align 8 - %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 24 - store i8 0, ptr %.sroa.4.0..sroa_idx, align 8 + %6 = getelementptr inbounds nuw i8, ptr %3, i64 8 + store i64 1, ptr %6, align 8, !noalias !3454 + %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 16 + store i64 0, ptr %.sroa.4.0..sroa_idx, align 8 + %.sroa.52.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 24 + store i8 0, ptr %.sroa.52.0..sroa_idx, align 8 %.sroa.52.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 32 store ptr null, ptr %.sroa.52.0..sroa_idx, align 8 %.sroa.63.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 48 diff --git a/bench/open3d/optimized/TriangleMeshSimplification.ll b/bench/open3d/optimized/TriangleMeshSimplification.ll index 1e2a9106092..0c889c06023 100644 --- a/bench/open3d/optimized/TriangleMeshSimplification.ll +++ b/bench/open3d/optimized/TriangleMeshSimplification.ll @@ -4885,55 +4885,55 @@ _ZN5Eigen8internal31unaligned_dense_assignment_loopILb0EE3runINS0_31generic_dens %.not23.i157 = icmp sgt i64 %.sroa.4.0.copyload, 0 br i1 %.not23.i157, label %.preheader.us.us.i159, label %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit -172: ; preds = %.preheader.us.us.i159 - %173 = add nuw nsw i64 %.01324.us.us.i160, 1 - %exitcond.not.i161 = icmp eq i64 %173, %.sroa.4.0.copyload +171: ; preds = %.preheader.us.us.i159 + %172 = add nuw nsw i64 %.01324.us.us.i160, 1 + %exitcond.not.i161 = icmp eq i64 %172, %.sroa.4.0.copyload br i1 %exitcond.not.i161, label %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit, label %.preheader.us.us.i159, !llvm.loop !267 -.preheader.us.us.i159: ; preds = %170, %172 - %.01324.us.us.i160 = phi i64 [ %173, %172 ], [ 0, %170 ] - %174 = getelementptr double, ptr %171, i64 %.01324.us.us.i160 - %175 = load double, ptr %174, align 8, !tbaa !40 - %176 = fcmp oeq double %175, 0.000000e+00 - br i1 %176, label %172, label %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit +.preheader.us.us.i159: ; preds = %170, %171 + %.01324.us.us.i160 = phi i64 [ %172, %172 ], [ 0, %170 ] + %173 = getelementptr double, ptr %171, i64 %.01324.us.us.i160 + %174 = load double, ptr %173, align 8, !tbaa !40 + %175 = fcmp oeq double %174, 0.000000e+00 + br i1 %175, label %171, label %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit -_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit: ; preds = %172, %.preheader.us.us.i159, %.lr.ph.i17.i.i.i.i.i.i149, %.thread438, %168, %170, %._crit_edge.i.i.i.i.i.i148 - %177 = phi double [ %115, %._crit_edge.i.i.i.i.i.i148 ], [ %115, %168 ], [ %115, %170 ], [ %107, %.thread438 ], [ %115, %.lr.ph.i17.i.i.i.i.i.i149 ], [ %115, %.preheader.us.us.i159 ], [ %115, %172 ] - %178 = phi i1 [ true, %._crit_edge.i.i.i.i.i.i148 ], [ false, %168 ], [ false, %170 ], [ %108, %.thread438 ], [ true, %.lr.ph.i17.i.i.i.i.i.i149 ], [ false, %.preheader.us.us.i159 ], [ false, %172 ] +_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit: ; preds = %171, %.preheader.us.us.i159, %.lr.ph.i17.i.i.i.i.i.i149, %.thread438, %168, %170, %._crit_edge.i.i.i.i.i.i148 + %176 = phi double [ %115, %._crit_edge.i.i.i.i.i.i148 ], [ %115, %168 ], [ %115, %170 ], [ %107, %.thread438 ], [ %115, %.lr.ph.i17.i.i.i.i.i.i149 ], [ %115, %.preheader.us.us.i159 ], [ %115, %172 ] + %177 = phi i1 [ true, %._crit_edge.i.i.i.i.i.i148 ], [ false, %168 ], [ false, %170 ], [ %108, %.thread438 ], [ true, %.lr.ph.i17.i.i.i.i.i.i149 ], [ false, %.preheader.us.us.i159 ], [ false, %172 ] %.4 = phi i8 [ %.0120.ph, %._crit_edge.i.i.i.i.i.i148 ], [ 0, %168 ], [ 1, %170 ], [ %.0120.ph, %.thread438 ], [ %.0120.ph, %.lr.ph.i17.i.i.i.i.i.i149 ], [ 1, %172 ], [ 0, %.preheader.us.us.i159 ] - %179 = select i1 %178, i1 %.0116.ph, i1 false - %.5 = select i1 %179, i8 0, i8 %.4 - %not. = xor i1 %178, true + %178 = select i1 %177, i1 %.0116.ph, i1 false + %.5 = select i1 %178, i8 0, i8 %.4 + %not. = xor i1 %177, true %.2118 = select i1 %not., i1 true, i1 %.0116.ph - %180 = load i32, ptr %3, align 4, !tbaa !261 - switch i32 %180, label %.outer.backedge [ - i32 0, label %181 - i32 1, label %183 - i32 2, label %185 + %179 = load i32, ptr %3, align 4, !tbaa !261 + switch i32 %179, label %.outer.backedge [ + i32 0, label %180 + i32 1, label %182 + i32 2, label %184 ] -181: ; preds = %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit - %182 = fcmp olt double %177, 0.000000e+00 - br i1 %182, label %.outer.backedge.sink.split, label %.outer.backedge +180: ; preds = %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit + %181 = fcmp olt double %176, 0.000000e+00 + br i1 %181, label %.outer.backedge.sink.split, label %.outer.backedge -183: ; preds = %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit - %184 = fcmp ogt double %177, 0.000000e+00 - br i1 %184, label %.outer.backedge.sink.split, label %.outer.backedge +182: ; preds = %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit + %183 = fcmp ogt double %176, 0.000000e+00 + br i1 %183, label %.outer.backedge.sink.split, label %.outer.backedge -185: ; preds = %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit - %186 = fcmp ogt double %177, 0.000000e+00 - br i1 %186, label %.outer.backedge.sink.split, label %187 +184: ; preds = %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit + %185 = fcmp ogt double %176, 0.000000e+00 + br i1 %185, label %.outer.backedge.sink.split, label %186 -187: ; preds = %185 - %188 = fcmp olt double %177, 0.000000e+00 - br i1 %188, label %.outer.backedge.sink.split, label %.outer.backedge +186: ; preds = %184 + %187 = fcmp olt double %176, 0.000000e+00 + br i1 %187, label %.outer.backedge.sink.split, label %.outer.backedge -.outer.backedge.sink.split: ; preds = %187, %185, %183, %181 +.outer.backedge.sink.split: ; preds = %186, %184, %182, %180 %.sink = phi i32 [ 3, %181 ], [ 3, %183 ], [ 0, %185 ], [ 1, %187 ] store i32 %.sink, ptr %3, align 4, !tbaa !261 br label %.outer.backedge -.outer.backedge: ; preds = %.outer.backedge.sink.split, %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit, %183, %187, %181 +.outer.backedge: ; preds = %.outer.backedge.sink.split, %_ZN5Eigen9DenseBaseINS_5BlockINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEELin1ELi1ELb0EEEEdVERKd.exit, %182, %186, %180 call void @llvm.lifetime.end.p0(ptr nonnull %9) br label %.outer, !llvm.loop !262 diff --git a/bench/opencv/optimized/function.pb.ll b/bench/opencv/optimized/function.pb.ll index debe10f3e83..731f070f108 100644 --- a/bench/opencv/optimized/function.pb.ll +++ b/bench/opencv/optimized/function.pb.ll @@ -12736,7 +12736,7 @@ define linkonce_odr hidden void @_ZN6google8protobuf3MapINSt7__cxx1112basic_stri %6 = getelementptr inbounds nuw i8, ptr %1, i64 40 %7 = load ptr, ptr %6, align 8 %8 = icmp eq ptr %5, %7 - br i1 %8, label %9, label %30 + br i1 %8, label %9, label %29 9: ; preds = %2 %10 = ptrtoint ptr %7 to i64 @@ -12771,62 +12771,62 @@ define linkonce_odr hidden void @_ZN6google8protobuf3MapINSt7__cxx1112basic_stri store ptr %28, ptr %27, align 8, !tbaa !194 store i64 %10, ptr %4, align 8, !tbaa !62 store i64 %11, ptr %6, align 8, !tbaa !62 - br label %52 + br label %51 -30: ; preds = %2 +29: ; preds = %2 call void @llvm.lifetime.start.p0(ptr nonnull %3) call void @_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEEC2ERKSA_(ptr noundef nonnull align 8 dereferenceable(48) %3, ptr noundef nonnull align 8 dereferenceable(48) %0) - %31 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEEaSERKSA_(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(48) %1) - to label %32 unwind label %50 - -32: ; preds = %30 - %33 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEEaSERKSA_(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef nonnull align 8 dereferenceable(48) %3) - to label %34 unwind label %50 - -34: ; preds = %32 - %35 = getelementptr inbounds nuw i8, ptr %3, i64 40 - %36 = load ptr, ptr %35, align 8, !tbaa !97 - %37 = icmp ne ptr %36, null - %38 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %39 = load i64, ptr %38, align 8 - %.not.i.i = icmp eq i64 %39, 1 - %or.cond.i.i = select i1 %37, i1 true, i1 %.not.i.i - br i1 %or.cond.i.i, label %_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev.exit, label %40 - -40: ; preds = %34 + %30 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEEaSERKSA_(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(48) %1) + to label %32 unwind label %49 + +31: ; preds = %29 + %32 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEEaSERKSA_(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef nonnull align 8 dereferenceable(48) %3) + to label %34 unwind label %49 + +33: ; preds = %31 + %34 = getelementptr inbounds nuw i8, ptr %3, i64 40 + %35 = load ptr, ptr %34, align 8, !tbaa !97 + %36 = icmp ne ptr %35, null + %37 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %38 = load i64, ptr %37, align 8 + %.not.i.i = icmp eq i64 %38, 1 + %or.cond.i.i = select i1 %36, i1 true, i1 %.not.i.i + br i1 %or.cond.i.i, label %_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev.exit, label %39 + +39: ; preds = %33 invoke void @_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEE8InnerMap5clearEv(ptr noundef nonnull align 8 dereferenceable(48) %3) - to label %41 unwind label %47 + to label %41 unwind label %46 -41: ; preds = %40 - %42 = load i64, ptr %35, align 8, !tbaa !62 - %43 = icmp eq i64 %42, 0 - br i1 %43, label %44, label %_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev.exit +40: ; preds = %39 + %41 = load i64, ptr %34, align 8, !tbaa !62 + %42 = icmp eq i64 %41, 0 + br i1 %42, label %43, label %_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev.exit -44: ; preds = %41 - %45 = getelementptr inbounds nuw i8, ptr %3, i64 32 - %46 = load ptr, ptr %45, align 8, !tbaa !96 - call void @_ZdlPv(ptr noundef %46) #30 +43: ; preds = %40 + %44 = getelementptr inbounds nuw i8, ptr %3, i64 32 + %45 = load ptr, ptr %44, align 8, !tbaa !96 + call void @_ZdlPv(ptr noundef %45) #30 br label %_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev.exit -47: ; preds = %40 - %48 = landingpad { ptr, i32 } +46: ; preds = %39 + %47 = landingpad { ptr, i32 } catch ptr null - %49 = extractvalue { ptr, i32 } %48, 0 - call void @__clang_call_terminate(ptr %49) #29 + %48 = extractvalue { ptr, i32 } %47, 0 + call void @__clang_call_terminate(ptr %48) #29 unreachable -_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev.exit: ; preds = %34, %41, %44 +_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev.exit: ; preds = %33, %40, %43 call void @llvm.lifetime.end.p0(ptr nonnull %3) - br label %52 + br label %51 -50: ; preds = %32, %30 - %51 = landingpad { ptr, i32 } +49: ; preds = %31, %29 + %50 = landingpad { ptr, i32 } cleanup call void @_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %3) #30 call void @llvm.lifetime.end.p0(ptr nonnull %3) - resume { ptr, i32 } %51 + resume { ptr, i32 } %50 -52: ; preds = %_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev.exit, %9 +51: ; preds = %_ZN6google8protobuf3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN17opencv_tensorflow9AttrValueEED2Ev.exit, %9 ret void } diff --git a/bench/opencv/optimized/map_field.ll b/bench/opencv/optimized/map_field.ll index 2cc6e3a4cd2..1cfb9c75dee 100644 --- a/bench/opencv/optimized/map_field.ll +++ b/bench/opencv/optimized/map_field.ll @@ -4173,7 +4173,7 @@ define linkonce_odr hidden void @_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapVa %6 = getelementptr inbounds nuw i8, ptr %1, i64 40 %7 = load ptr, ptr %6, align 8 %8 = icmp eq ptr %5, %7 - br i1 %8, label %9, label %30 + br i1 %8, label %9, label %29 9: ; preds = %2 %10 = ptrtoint ptr %7 to i64 @@ -4208,62 +4208,62 @@ define linkonce_odr hidden void @_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapVa store ptr %28, ptr %27, align 8, !tbaa !121 store i64 %10, ptr %4, align 8, !tbaa !47 store i64 %11, ptr %6, align 8, !tbaa !47 - br label %52 + br label %51 -30: ; preds = %2 +29: ; preds = %2 call void @llvm.lifetime.start.p0(ptr nonnull %3) call void @_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(48) %3, ptr noundef nonnull align 8 dereferenceable(48) %0) - %31 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(48) %1) - to label %32 unwind label %50 - -32: ; preds = %30 - %33 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef nonnull align 8 dereferenceable(48) %3) - to label %34 unwind label %50 - -34: ; preds = %32 - %35 = getelementptr inbounds nuw i8, ptr %3, i64 40 - %36 = load ptr, ptr %35, align 8, !tbaa !59 - %37 = icmp ne ptr %36, null - %38 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %39 = load i64, ptr %38, align 8 - %.not.i.i = icmp eq i64 %39, 1 - %or.cond.i.i = select i1 %37, i1 true, i1 %.not.i.i - br i1 %or.cond.i.i, label %_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev.exit, label %40 - -40: ; preds = %34 - invoke void @_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEE8InnerMap5clearEv(ptr noundef nonnull align 8 dereferenceable(48) %3) - to label %41 unwind label %47 + %30 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(48) %1) + to label %32 unwind label %49 + +31: ; preds = %29 + %32 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef nonnull align 8 dereferenceable(48) %3) + to label %34 unwind label %49 + +33: ; preds = %31 + %34 = getelementptr inbounds nuw i8, ptr %3, i64 40 + %35 = load ptr, ptr %34, align 8, !tbaa !59 + %36 = icmp ne ptr %35, null + %37 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %38 = load i64, ptr %37, align 8 + %.not.i.i = icmp eq i64 %38, 1 + %or.cond.i.i = select i1 %36, i1 true, i1 %.not.i.i + br i1 %or.cond.i.i, label %_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev.exit, label %39 -41: ; preds = %40 - %42 = load i64, ptr %35, align 8, !tbaa !47 - %43 = icmp eq i64 %42, 0 - br i1 %43, label %44, label %_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev.exit +39: ; preds = %33 + invoke void @_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEE8InnerMap5clearEv(ptr noundef nonnull align 8 dereferenceable(48) %3) + to label %41 unwind label %46 -44: ; preds = %41 - %45 = getelementptr inbounds nuw i8, ptr %3, i64 32 - %46 = load ptr, ptr %45, align 8, !tbaa !58 - call void @_ZdlPv(ptr noundef %46) #29 +40: ; preds = %39 + %41 = load i64, ptr %34, align 8, !tbaa !47 + %42 = icmp eq i64 %41, 0 + br i1 %42, label %43, label %_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev.exit + +43: ; preds = %40 + %44 = getelementptr inbounds nuw i8, ptr %3, i64 32 + %45 = load ptr, ptr %44, align 8, !tbaa !58 + call void @_ZdlPv(ptr noundef %45) #29 br label %_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev.exit -47: ; preds = %40 - %48 = landingpad { ptr, i32 } +46: ; preds = %39 + %47 = landingpad { ptr, i32 } catch ptr null - %49 = extractvalue { ptr, i32 } %48, 0 - call void @__clang_call_terminate(ptr %49) #28 + %48 = extractvalue { ptr, i32 } %47, 0 + call void @__clang_call_terminate(ptr %48) #28 unreachable -_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev.exit: ; preds = %34, %41, %44 +_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev.exit: ; preds = %33, %40, %43 call void @llvm.lifetime.end.p0(ptr nonnull %3) - br label %52 + br label %51 -50: ; preds = %32, %30 - %51 = landingpad { ptr, i32 } +49: ; preds = %31, %29 + %50 = landingpad { ptr, i32 } cleanup call void @_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %3) #29 call void @llvm.lifetime.end.p0(ptr nonnull %3) - resume { ptr, i32 } %51 + resume { ptr, i32 } %50 -52: ; preds = %_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev.exit, %9 +51: ; preds = %_ZN6google8protobuf3MapINS0_6MapKeyENS0_11MapValueRefEED2Ev.exit, %9 ret void } diff --git a/bench/openusd/optimized/layer.ll b/bench/openusd/optimized/layer.ll index a0e079c01cc..37c430fd682 100644 --- a/bench/openusd/optimized/layer.ll +++ b/bench/openusd/optimized/layer.ll @@ -55035,84 +55035,84 @@ define linkonce_odr void @_ZN32pxrInternal_v0_24__pxrReserved__7VtValue15Uncheck %6 = ptrtoint ptr %5 to i64 %7 = and i64 %6, 4 %.not.i.i = icmp eq i64 %7, 0 - br i1 %.not.i.i, label %26, label %.noexc + br i1 %.not.i.i, label %27, label %8 -.noexc: ; preds = %2 - %8 = and i64 %6, -8 - %9 = inttoptr i64 %8 to ptr - %10 = getelementptr inbounds nuw i8, ptr %9, i64 176 - %11 = load ptr, ptr %10, align 8, !noalias !709 - call void %11(ptr dead_on_unwind nonnull writable sret(%"class.pxrInternal_v0_24__pxrReserved__::VtValue") align 8 %3, ptr noundef nonnull align 8 dereferenceable(16) %1) +8: ; preds = %2 + %9 = and i64 %6, -8 + %10 = inttoptr i64 %9 to ptr + %11 = getelementptr inbounds nuw i8, ptr %10, i64 176 + %12 = load ptr, ptr %11, align 8, !noalias !709 + invoke void %12(ptr dead_on_unwind nonnull writable sret(%"class.pxrInternal_v0_24__pxrReserved__::VtValue") align 8 %3, ptr noundef nonnull align 8 dereferenceable(16) %1) %.not.i.i.i = icmp eq ptr %1, %3 - br i1 %.not.i.i.i, label %_ZN32pxrInternal_v0_24__pxrReserved__7VtValueaSEOS0_.exit.i.i, label %12 + br i1 %.not.i.i.i, label %_ZN32pxrInternal_v0_24__pxrReserved__7VtValueaSEOS0_.exit.i.i, label %13 -12: ; preds = %.noexc +13: ; preds = %.noexc call void @_ZN32pxrInternal_v0_24__pxrReserved__7VtValue5_MoveERS0_S1_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(16) %1) #33 br label %_ZN32pxrInternal_v0_24__pxrReserved__7VtValueaSEOS0_.exit.i.i -_ZN32pxrInternal_v0_24__pxrReserved__7VtValueaSEOS0_.exit.i.i: ; preds = %12, %.noexc - %13 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %14 = load ptr, ptr %13, align 8 - %15 = ptrtoint ptr %14 to i64 - %.not.i.i.i.i = icmp eq ptr %14, null - %16 = and i64 %15, 3 - %17 = icmp eq i64 %16, 3 - %or.cond.i.i.i.i = or i1 %.not.i.i.i.i, %17 - br i1 %or.cond.i.i.i.i, label %26, label %18 +_ZN32pxrInternal_v0_24__pxrReserved__7VtValueaSEOS0_.exit.i.i: ; preds = %13, %.noexc + %14 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %15 = load ptr, ptr %14, align 8 + %16 = ptrtoint ptr %15 to i64 + %.not.i.i.i.i = icmp eq ptr %15, null + %17 = and i64 %16, 3 + %18 = icmp eq i64 %17, 3 + %or.cond.i.i.i.i = or i1 %.not.i.i.i.i, %18 + br i1 %or.cond.i.i.i.i, label %27, label %19 -18: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__7VtValueaSEOS0_.exit.i.i - %19 = and i64 %15, -8 - %20 = inttoptr i64 %19 to ptr - %21 = getelementptr inbounds nuw i8, ptr %20, i64 32 - %22 = load ptr, ptr %21, align 8 +19: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__7VtValueaSEOS0_.exit.i.i + %20 = and i64 %16, -8 + %21 = inttoptr i64 %20 to ptr + %22 = getelementptr inbounds nuw i8, ptr %21, i64 32 + %23 = load ptr, ptr %22, align 8 invoke void %22(ptr noundef nonnull align 8 dereferenceable(16) %3) - to label %26 unwind label %23 + to label %26 unwind label %24 -23: ; preds = %18 - %24 = landingpad { ptr, i32 } +24: ; preds = %19 + %25 = landingpad { ptr, i32 } catch ptr null - %25 = extractvalue { ptr, i32 } %24, 0 - call void @__clang_call_terminate(ptr %25) #32 + %26 = extractvalue { ptr, i32 } %25, 0 + call void @__clang_call_terminate(ptr %26) #32 unreachable -26: ; preds = %18, %_ZN32pxrInternal_v0_24__pxrReserved__7VtValueaSEOS0_.exit.i.i, %2 +27: ; preds = %19, %_ZN32pxrInternal_v0_24__pxrReserved__7VtValueaSEOS0_.exit.i.i, %2 call void @llvm.lifetime.end.p0(ptr nonnull %3) %.sroa.0.0.copyload.i.i.i.i = load i64, ptr %1, align 8 store i64 0, ptr %1, align 8 store i64 %.sroa.0.0.copyload.i.i.i.i, ptr %0, align 8 - %27 = load ptr, ptr %4, align 8 - %28 = ptrtoint ptr %27 to i64 - %.not.i = icmp eq ptr %27, null - %29 = and i64 %28, 3 - %30 = icmp eq i64 %29, 3 - %or.cond.i = or i1 %.not.i, %30 - br i1 %or.cond.i, label %43, label %31 + %28 = load ptr, ptr %4, align 8 + %29 = ptrtoint ptr %28 to i64 + %.not.i = icmp eq ptr %28, null + %30 = and i64 %29, 3 + %31 = icmp eq i64 %30, 3 + %or.cond.i = or i1 %.not.i, %31 + br i1 %or.cond.i, label %46, label %32 -31: ; preds = %26 - %32 = and i64 %28, -8 - %33 = inttoptr i64 %32 to ptr - %34 = getelementptr inbounds nuw i8, ptr %33, i64 32 - %35 = load ptr, ptr %34, align 8 +32: ; preds = %27 + %33 = and i64 %29, -8 + %34 = inttoptr i64 %33 to ptr + %35 = getelementptr inbounds nuw i8, ptr %34, i64 32 + %36 = load ptr, ptr %35, align 8 invoke void %35(ptr noundef nonnull align 8 dereferenceable(16) %1) - to label %43 unwind label %36 + to label %43 unwind label %37 -36: ; preds = %31 +37: ; preds = %32 %37 = landingpad { ptr, i32 } cleanup %38 = and i64 %.sroa.0.0.copyload.i.i.i.i, 7 %.not.i.i4 = icmp eq i64 %38, 0 - br i1 %.not.i.i4, label %_ZN32pxrInternal_v0_24__pxrReserved__7TfTokenD2Ev.exit, label %39 + br i1 %.not.i.i4, label %_ZN32pxrInternal_v0_24__pxrReserved__7TfTokenD2Ev.exit, label %42 -39: ; preds = %36 - %40 = and i64 %.sroa.0.0.copyload.i.i.i.i, -8 - %41 = inttoptr i64 %40 to ptr - %42 = atomicrmw sub ptr %41, i32 2 release, align 4 +42: ; preds = %37 + %43 = and i64 %.sroa.0.0.copyload.i.i.i.i, -8 + %44 = inttoptr i64 %43 to ptr + %45 = atomicrmw sub ptr %44, i32 2 release, align 4 br label %_ZN32pxrInternal_v0_24__pxrReserved__7TfTokenD2Ev.exit -_ZN32pxrInternal_v0_24__pxrReserved__7TfTokenD2Ev.exit: ; preds = %36, %39 +_ZN32pxrInternal_v0_24__pxrReserved__7TfTokenD2Ev.exit: ; preds = %37, %42 resume { ptr, i32 } %37 -43: ; preds = %26, %31 +46: ; preds = %27, %32 store ptr null, ptr %4, align 8 ret void } diff --git a/bench/proj/optimized/param.ll b/bench/proj/optimized/param.ll index cbe7a914b7e..e1e55de2458 100644 --- a/bench/proj/optimized/param.ll +++ b/bench/proj/optimized/param.ll @@ -214,7 +214,7 @@ define i64 @_Z8pj_paramP6pj_ctxP8ARG_listPKc(ptr noundef %0, ptr noundef %1, ptr br label %7 7: ; preds = %5, %3 - %.048 = phi ptr [ %6, %5 ], [ %0, %3 ] + %.028 = phi ptr [ %6, %5 ], [ %0, %3 ] %8 = getelementptr inbounds nuw i8, ptr %2, i64 1 %9 = load i8, ptr %2, align 1, !tbaa !3 %10 = sext i8 %9 to i32 @@ -272,18 +272,18 @@ define i64 @_Z8pj_paramP6pj_ctxP8ARG_listPKc(ptr noundef %0, ptr noundef %1, ptr _Z15pj_param_existsP8ARG_listPKc.exit: ; preds = %30, %33, %15, %28 %.020.i = phi ptr [ %.02127.i, %28 ], [ null, %15 ], [ null, %33 ], [ null, %30 ] %35 = icmp eq i8 %9, 116 - br i1 %35, label %36, label %38 + br i1 %35, label %36, label %39 36: ; preds = %_Z15pj_param_existsP8ARG_listPKc.exit %37 = icmp ne ptr %.020.i, null - %.sroa.0.0.insert.ext = zext i1 %37 to i64 + %38 = zext i1 %37 to i64 br label %.loopexit -38: ; preds = %_Z15pj_param_existsP8ARG_listPKc.exit - %39 = icmp eq ptr %.020.i, null - br i1 %39, label %.loopexit, label %40 +39: ; preds = %_Z15pj_param_existsP8ARG_listPKc.exit + %40 = icmp eq ptr %.020.i, null + br i1 %40, label %.loopexit, label %40 -40: ; preds = %38 +41: ; preds = %39 %41 = getelementptr inbounds nuw i8, ptr %.020.i, i64 8 %42 = load i8, ptr %41, align 8, !tbaa !3 %43 = or i8 %42, 1 @@ -297,71 +297,71 @@ _Z15pj_param_existsP8ARG_listPKc.exit: ; preds = %30, %33, %15, %28 %spec.select.idx = zext i1 %49 to i64 %spec.select = getelementptr inbounds nuw i8, ptr %47, i64 %spec.select.idx switch i8 %9, label %.loopexit [ - i8 105, label %50 - i8 100, label %59 - i8 114, label %62 - i8 115, label %65 - i8 98, label %67 + i8 105, label %55 + i8 100, label %65 + i8 114, label %67 + i8 115, label %69 + i8 98, label %70 ] -50: ; preds = %40 - %51 = tail call i64 @strtol(ptr noundef nonnull captures(none) %spec.select, ptr noundef null, i32 noundef 10) #17 - %.sroa.0.0.insert.ext32 = and i64 %51, 4294967295 +55: ; preds = %40 + %56 = tail call i64 @strtol(ptr noundef nonnull captures(none) %spec.select, ptr noundef null, i32 noundef 10) #17 + %.sroa.0.0.insert.ext32 = and i64 %56, 4294967295 %52 = load i8, ptr %spec.select, align 1, !tbaa !3 %.not55 = icmp eq i8 %52, 0 br i1 %.not55, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %50, %56 %53 = phi i8 [ %58, %56 ], [ %52, %50 ] - %.057 = phi ptr [ %57, %56 ], [ %spec.select, %50 ] - %.sroa.0.356 = phi i64 [ %.sroa.0.4, %56 ], [ %.sroa.0.0.insert.ext32, %50 ] - %54 = add i8 %53, -48 - %or.cond = icmp ult i8 %54, 10 - br i1 %or.cond, label %56, label %55 - -55: ; preds = %.lr.ph - tail call void @_Z22proj_context_errno_setP6pj_ctxi(ptr noundef %.048, i32 noundef 1027) + %59 = phi ptr [ %63, %56 ], [ %spec.select, %50 ] + %.038 = phi i64 [ %.sroa.0.4, %56 ], [ %.sroa.0.0.insert.ext32, %50 ] + %60 = add i8 %53, -48 + %or.cond = icmp ult i8 %60, 10 + br i1 %or.cond, label %56, label %61 + +61: ; preds = %.lr.ph + tail call void @_Z22proj_context_errno_setP6pj_ctxi(ptr noundef %.028, i32 noundef 1027) br label %56 56: ; preds = %.lr.ph, %55 - %.sroa.0.4 = phi i64 [ 0, %55 ], [ %.sroa.0.356, %.lr.ph ] - %57 = getelementptr inbounds nuw i8, ptr %.057, i64 1 - %58 = load i8, ptr %57, align 1, !tbaa !3 - %.not = icmp eq i8 %58, 0 + %.sroa.0.4 = phi i64 [ 0, %55 ], [ %.038, %.lr.ph ] + %63 = getelementptr inbounds nuw i8, ptr %.057, i64 1 + %64 = load i8, ptr %63, align 1, !tbaa !3 + %.not = icmp eq i8 %64, 0 br i1 %.not, label %.loopexit, label %.lr.ph, !llvm.loop !21 -59: ; preds = %40 - %60 = tail call noundef double @_Z7pj_atofPKc(ptr noundef nonnull %spec.select) - %61 = bitcast double %60 to i64 +65: ; preds = %40 + %66 = tail call noundef double @_Z7pj_atofPKc(ptr noundef nonnull %spec.select) + %61 = bitcast double %66 to i64 br label %.loopexit -62: ; preds = %40 - %63 = tail call noundef double @_Z10dmstor_ctxP6pj_ctxPKcPPc(ptr noundef %.048, ptr noundef nonnull %spec.select, ptr noundef null) - %64 = bitcast double %63 to i64 +67: ; preds = %40 + %68 = tail call noundef double @_Z10dmstor_ctxP6pj_ctxPKcPPc(ptr noundef %.028, ptr noundef nonnull %spec.select, ptr noundef null) + %64 = bitcast double %68 to i64 br label %.loopexit -65: ; preds = %40 +69: ; preds = %40 %66 = ptrtoint ptr %spec.select to i64 br label %.loopexit -67: ; preds = %40 - %68 = load i8, ptr %spec.select, align 1, !tbaa !3 - switch i8 %68, label %70 [ +70: ; preds = %40 + %71 = load i8, ptr %spec.select, align 1, !tbaa !3 + switch i8 %71, label %70 [ i8 70, label %.loopexit i8 102, label %.loopexit - i8 0, label %69 - i8 84, label %69 - i8 116, label %69 + i8 0, label %72 + i8 84, label %72 + i8 116, label %72 ] -69: ; preds = %67, %67, %67 +72: ; preds = %70, %70, %67 br label %.loopexit -70: ; preds = %67 - tail call void @_Z22proj_context_errno_setP6pj_ctxi(ptr noundef %.048, i32 noundef 1027) +74: ; preds = %70 + tail call void @_Z22proj_context_errno_setP6pj_ctxi(ptr noundef %.028, i32 noundef 1027) br label %.loopexit -.loopexit: ; preds = %56, %50, %38, %40, %59, %62, %65, %70, %69, %67, %67, %36 +.loopexit: ; preds = %56, %55, %38, %40, %65, %67, %69, %74, %72, %67, %67, %36 %.sroa.0.0 = phi i64 [ %.sroa.0.0.insert.ext, %36 ], [ 0, %40 ], [ %61, %59 ], [ %64, %62 ], [ %66, %65 ], [ 0, %70 ], [ 1, %69 ], [ 0, %67 ], [ 0, %67 ], [ 0, %38 ], [ %.sroa.0.0.insert.ext32, %50 ], [ %.sroa.0.4, %56 ] ret i64 %.sroa.0.0 } diff --git a/bench/raylib/optimized/rcore.ll b/bench/raylib/optimized/rcore.ll index 8a6d63c1ed6..4422f159921 100644 --- a/bench/raylib/optimized/rcore.ll +++ b/bench/raylib/optimized/rcore.ll @@ -45372,14 +45372,14 @@ define <2 x float> @GetWorldToScreenEx(<2 x float> %0, float %1, ptr noundef rea br label %58 58: ; preds = %5, %35, %8 - %.sroa.071.0 = phi float [ 1.000000e+00, %5 ], [ %27, %8 ], [ %48, %35 ] - %.sroa.46.0 = phi float [ 0.000000e+00, %5 ], [ -1.000000e+00, %8 ], [ 0.000000e+00, %35 ] - %.sroa.49.0 = phi float [ 1.000000e+00, %5 ], [ 0.000000e+00, %8 ], [ 1.000000e+00, %35 ] - %.sroa.2676.0 = phi float [ 0.000000e+00, %5 ], [ 0.000000e+00, %8 ], [ %57, %35 ] - %.sroa.23.0 = phi float [ 0.000000e+00, %5 ], [ %34, %8 ], [ 0.000000e+00, %35 ] - %.sroa.19.0 = phi float [ 1.000000e+00, %5 ], [ %28, %8 ], [ %49, %35 ] - %.sroa.1374.0 = phi float [ 0.000000e+00, %5 ], [ 0.000000e+00, %8 ], [ %53, %35 ] - %.sroa.1073.0 = phi float [ 0.000000e+00, %5 ], [ %31, %8 ], [ 0.000000e+00, %35 ] + %.sroa.067.0 = phi float [ 1.000000e+00, %5 ], [ %27, %8 ], [ %48, %35 ] + %.sroa.44.0 = phi float [ 0.000000e+00, %5 ], [ -1.000000e+00, %8 ], [ 0.000000e+00, %35 ] + %.sroa.47.0 = phi float [ 1.000000e+00, %5 ], [ 0.000000e+00, %8 ], [ 1.000000e+00, %35 ] + %.sroa.25.0 = phi float [ 0.000000e+00, %5 ], [ 0.000000e+00, %8 ], [ %57, %35 ] + %.sroa.2273.0 = phi float [ 0.000000e+00, %5 ], [ %34, %8 ], [ 0.000000e+00, %35 ] + %.sroa.1872.0 = phi float [ 1.000000e+00, %5 ], [ %28, %8 ], [ %49, %35 ] + %.sroa.1370.0 = phi float [ 0.000000e+00, %5 ], [ 0.000000e+00, %8 ], [ %53, %35 ] + %.sroa.1069.0 = phi float [ 0.000000e+00, %5 ], [ %31, %8 ], [ 0.000000e+00, %35 ] %59 = getelementptr inbounds nuw i8, ptr %2, i64 12 %60 = getelementptr inbounds nuw i8, ptr %2, i64 24 %.sroa.021.0.copyload = load <2 x float>, ptr %2, align 8 @@ -45466,16 +45466,16 @@ define <2 x float> @GetWorldToScreenEx(<2 x float> %0, float %1, ptr noundef rea %123 = tail call float @llvm.fmuladd.f32(float %1, float 0.000000e+00, float %122) %124 = fadd float %123, 1.000000e+00 %125 = fmul float %116, 0.000000e+00 - %126 = tail call float @llvm.fmuladd.f32(float %.sroa.071.0, float %112, float %125) - %127 = tail call float @llvm.fmuladd.f32(float %.sroa.1073.0, float %120, float %126) - %128 = tail call float @llvm.fmuladd.f32(float %.sroa.1374.0, float %124, float %127) - %129 = fmul float %.sroa.19.0, %116 + %126 = tail call float @llvm.fmuladd.f32(float %.sroa.067.0, float %112, float %125) + %127 = tail call float @llvm.fmuladd.f32(float %.sroa.1069.0, float %120, float %126) + %128 = tail call float @llvm.fmuladd.f32(float %.sroa.1370.0, float %124, float %127) + %129 = fmul float %.sroa.1872.0, %116 %130 = tail call float @llvm.fmuladd.f32(float %112, float 0.000000e+00, float %129) - %131 = tail call float @llvm.fmuladd.f32(float %.sroa.23.0, float %120, float %130) - %132 = tail call float @llvm.fmuladd.f32(float %.sroa.2676.0, float %124, float %131) + %131 = tail call float @llvm.fmuladd.f32(float %.sroa.2273.0, float %120, float %130) + %132 = tail call float @llvm.fmuladd.f32(float %.sroa.25.0, float %124, float %131) %133 = tail call float @llvm.fmuladd.f32(float %112, float 0.000000e+00, float %125) - %134 = tail call float @llvm.fmuladd.f32(float %.sroa.46.0, float %120, float %133) - %135 = tail call float @llvm.fmuladd.f32(float %.sroa.49.0, float %124, float %134) + %134 = tail call float @llvm.fmuladd.f32(float %.sroa.44.0, float %120, float %133) + %135 = tail call float @llvm.fmuladd.f32(float %.sroa.47.0, float %124, float %134) %136 = fdiv float %128, %135 %137 = fadd float %136, 1.000000e+00 %138 = fmul float %137, 5.000000e-01 diff --git a/bench/rayon-rs/optimized/42isjd4q974i3ftt.ll b/bench/rayon-rs/optimized/42isjd4q974i3ftt.ll index d9cda44bf9c..730b90c33ef 100644 --- a/bench/rayon-rs/optimized/42isjd4q974i3ftt.ll +++ b/bench/rayon-rs/optimized/42isjd4q974i3ftt.ll @@ -16,7 +16,7 @@ define hidden void @"_ZN102_$LT$$LP$ExtendA$C$ExtendB$RP$$u20$as$u20$core..iter. %.sroa.5.0.copyload7 = load i64, ptr %.sroa.5.0..sroa_idx6, align 8, !alias.scope !4 %spec.select.i.i = tail call i64 @llvm.usub.sat.i64(i64 %.sroa.5.0.copyload7, i64 %.sroa.4.0.copyload5) %.not.not = icmp ugt i64 %.sroa.5.0.copyload7, %.sroa.4.0.copyload5 - br i1 %.not.not, label %12, label %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hfa422387680307ceE.llvm.15553549611834190124.exit" + br i1 %.not.not, label %11, label %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hfa422387680307ceE.llvm.15553549611834190124.exit" "_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hfa422387680307ceE.llvm.15553549611834190124.exit": ; preds = %2 call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !8 @@ -24,56 +24,56 @@ define hidden void @"_ZN102_$LT$$LP$ExtendA$C$ExtendB$RP$$u20$as$u20$core..iter. tail call void @llvm.assume(i1 %5) br label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hd90597a57c0481d5E.exit" -.lr.ph.i.i.preheader: ; preds = %25, %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hf973d6c824bce392E.llvm.15553549611834190124.exit" +.lr.ph.i.i.preheader: ; preds = %24, %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hf973d6c824bce392E.llvm.15553549611834190124.exit" %6 = inttoptr i64 %.sroa.0.0.copyload3 to ptr %7 = getelementptr inbounds nuw i8, ptr %0, i64 24 call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !8 - %8 = icmp ne i64 %.sroa.0.0.copyload3, 0 - tail call void @llvm.assume(i1 %8) + %7 = icmp ne i64 %.sroa.0.0.copyload3, 0 + tail call void @llvm.assume(i1 %7) store ptr %0, ptr %4, align 8, !noalias !8 - %9 = getelementptr inbounds nuw i8, ptr %4, i64 8 - store ptr %7, ptr %9, align 8, !noalias !8 - %10 = getelementptr inbounds nuw i8, ptr %4, i64 16 - store ptr %6, ptr %10, align 8, !noalias !8 + %8 = getelementptr inbounds nuw i8, ptr %4, i64 8 + store ptr %7, ptr %8, align 8, !noalias !8 + %9 = getelementptr inbounds nuw i8, ptr %4, i64 16 + store ptr %6, ptr %9, align 8, !noalias !8 br label %.lr.ph.i.i .lr.ph.i.i: ; preds = %.lr.ph.i.i.preheader, %.lr.ph.i.i - %.sroa.0.06.i.i = phi i64 [ %11, %.lr.ph.i.i ], [ %.sroa.4.0.copyload5, %.lr.ph.i.i.preheader ] - %11 = add i64 %.sroa.0.06.i.i, 1 + %.sroa.0.06.i.i = phi i64 [ %10, %.lr.ph.i.i ], [ %.sroa.4.0.copyload5, %.lr.ph.i.i.preheader ] + %10 = add i64 %.sroa.0.06.i.i, 1 call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !13 - call void @"_ZN10rayon_core8registry8Registry3new28_$u7b$$u7b$closure$u7d$$u7d$17he3a7c9136cbd966bE.llvm.17633404800605446996"(ptr noalias noundef nonnull sret({ { ptr, { ptr, i64 }, i8, {}, [7 x i8] }, { ptr, i8 } }) align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef nonnull align 8 dereferenceable(8) %10, i64 noundef %.sroa.0.06.i.i), !noalias !18 + call void @"_ZN10rayon_core8registry8Registry3new28_$u7b$$u7b$closure$u7d$$u7d$17he3a7c9136cbd966bE.llvm.17633404800605446996"(ptr noalias noundef nonnull sret({ { ptr, { ptr, i64 }, i8, {}, [7 x i8] }, { ptr, i8 } }) align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef nonnull align 8 dereferenceable(8) %9, i64 noundef %.sroa.0.06.i.i), !noalias !18 call void @"_ZN102_$LT$$LP$ExtendA$C$ExtendB$RP$$u20$as$u20$core..iter..traits..collect..Extend$LT$$LP$A$C$B$RP$$GT$$GT$6extend6extend28_$u7b$$u7b$closure$u7d$$u7d$17h6cd47cdaf291092dE.llvm.17633404800605446996"(ptr noalias noundef nonnull align 8 dereferenceable(24) %4, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %3), !noalias !18 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !13 - %exitcond.not.i.i = icmp eq i64 %11, %.sroa.5.0.copyload7 + %exitcond.not.i.i = icmp eq i64 %10, %.sroa.5.0.copyload7 br i1 %exitcond.not.i.i, label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hd90597a57c0481d5E.exit", label %.lr.ph.i.i "_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hd90597a57c0481d5E.exit": ; preds = %.lr.ph.i.i, %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hfa422387680307ceE.llvm.15553549611834190124.exit" call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !8 ret void -12: ; preds = %2 - %13 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %14 = load i64, ptr %13, align 8, !alias.scope !19, !noundef !24 - %15 = load i64, ptr %0, align 8, !alias.scope !19, !noundef !24 - %16 = sub i64 %15, %14 - %17 = icmp ugt i64 %spec.select.i.i, %16 - br i1 %17, label %18, label %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hf973d6c824bce392E.llvm.15553549611834190124.exit" +11: ; preds = %2 + %12 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %13 = load i64, ptr %12, align 8, !alias.scope !19, !noundef !24 + %14 = load i64, ptr %0, align 8, !alias.scope !19, !noundef !24 + %15 = sub i64 %14, %13 + %16 = icmp ugt i64 %spec.select.i.i, %15 + br i1 %16, label %17, label %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hf973d6c824bce392E.llvm.15553549611834190124.exit" -18: ; preds = %12 - tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h930d6ac7651515baE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %14, i64 noundef %spec.select.i.i) +17: ; preds = %11 + tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h930d6ac7651515baE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %13, i64 noundef %spec.select.i.i) br label %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hf973d6c824bce392E.llvm.15553549611834190124.exit" -"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hf973d6c824bce392E.llvm.15553549611834190124.exit": ; preds = %12, %18 - %19 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %20 = getelementptr inbounds nuw i8, ptr %0, i64 40 - %21 = load i64, ptr %20, align 8, !alias.scope !25, !noundef !24 - %22 = load i64, ptr %19, align 8, !alias.scope !25, !noundef !24 - %23 = sub i64 %22, %21 - %24 = icmp ugt i64 %spec.select.i.i, %23 - br i1 %24, label %25, label %.lr.ph.i.i.preheader - -25: ; preds = %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hf973d6c824bce392E.llvm.15553549611834190124.exit" - tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h8c11bcf57aeb03b5E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %21, i64 noundef %spec.select.i.i) +"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hf973d6c824bce392E.llvm.15553549611834190124.exit": ; preds = %11, %17 + %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %19 = getelementptr inbounds nuw i8, ptr %0, i64 40 + %20 = load i64, ptr %19, align 8, !alias.scope !25, !noundef !24 + %21 = load i64, ptr %18, align 8, !alias.scope !25, !noundef !24 + %22 = sub i64 %21, %20 + %23 = icmp ugt i64 %spec.select.i.i, %22 + br i1 %23, label %24, label %.lr.ph.i.i.preheader + +24: ; preds = %"_ZN93_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$14extend_reserve17hf973d6c824bce392E.llvm.15553549611834190124.exit" + tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h8c11bcf57aeb03b5E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %18, i64 noundef %20, i64 noundef %spec.select.i.i) br label %.lr.ph.i.i.preheader } diff --git a/bench/recastnavigation/optimized/catch_amalgamated.ll b/bench/recastnavigation/optimized/catch_amalgamated.ll index 3ab818546c7..b359a2e7b9b 100644 --- a/bench/recastnavigation/optimized/catch_amalgamated.ll +++ b/bench/recastnavigation/optimized/catch_amalgamated.ll @@ -130525,7 +130525,7 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8 %16 = trunc i8 %15 to i1 - br i1 %16, label %17, label %51 + br i1 %16, label %17, label %50 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -130577,12 +130577,12 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm %39 = getelementptr inbounds nuw i8, ptr %4, i64 8 store ptr %36, ptr %39, align 8 %40 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) - br i1 %40, label %41, label %51 + br i1 %40, label %41, label %50 41: ; preds = %.critedge %42 = load ptr, ptr %18, align 8 %.not21 = icmp eq ptr %.sroa.017.0.lcssa, %42 - br i1 %.not21, label %48, label %43 + br i1 %.not21, label %47, label %43 43: ; preds = %41 %44 = ptrtoint ptr %42 to i64 @@ -130594,13 +130594,13 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm store i64 %44, ptr %18, align 8 br label %51 -48: ; preds = %41 - %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %50 = load i64, ptr %49, align 8 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %50) - br label %51 +47: ; preds = %41 + %48 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %49 = load i64, ptr %48, align 8 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb0EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(141) %0, i8 noundef zeroext %1, i64 noundef %49) + br label %50 -51: ; preds = %43, %48, %3, %.critedge +50: ; preds = %43, %47, %3, %.critedge ret void } @@ -131948,7 +131948,7 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm %14 = getelementptr inbounds nuw i8, ptr %13, i64 16 %15 = load i8, ptr %14, align 8 %16 = trunc i8 %15 to i1 - br i1 %16, label %17, label %51 + br i1 %16, label %17, label %50 17: ; preds = %3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -132000,12 +132000,12 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm %39 = getelementptr inbounds nuw i8, ptr %4, i64 8 store ptr %36, ptr %39, align 8 %40 = call noundef zeroext i1 @_ZNSt8__detail16_Backref_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS5_12regex_traitsIcEEE8_M_applyESB_SB_SB_SB_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr %.sroa.05.0.copyload, ptr %.sroa.04.0.copyload, ptr %20, ptr %.sroa.017.0.lcssa) - br i1 %40, label %41, label %51 + br i1 %40, label %41, label %50 41: ; preds = %.critedge %42 = load ptr, ptr %18, align 8 %.not21 = icmp eq ptr %.sroa.017.0.lcssa, %42 - br i1 %.not21, label %48, label %43 + br i1 %.not21, label %47, label %43 43: ; preds = %41 %44 = ptrtoint ptr %42 to i64 @@ -132017,13 +132017,13 @@ define linkonce_odr dso_local void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__norm store i64 %44, ptr %18, align 8 br label %51 -48: ; preds = %41 - %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %50 = load i64, ptr %49, align 8 - call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %50) - br label %51 +47: ; preds = %41 + %48 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %49 = load i64, ptr %48, align 8 + call void @_ZNSt8__detail9_ExecutorIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS5_9sub_matchISB_EEENS5_12regex_traitsIcEELb1EE6_M_dfsENSH_11_Match_modeEl(ptr noundef nonnull align 8 dereferenceable(117) %0, i8 noundef zeroext %1, i64 noundef %49) + br label %50 -51: ; preds = %43, %48, %3, %.critedge +50: ; preds = %43, %47, %3, %.critedge ret void } diff --git a/bench/regex-rs/optimized/3ixfkxlmcuecmmus.ll b/bench/regex-rs/optimized/3ixfkxlmcuecmmus.ll index 17e8d1421eb..0eeacef6842 100644 --- a/bench/regex-rs/optimized/3ixfkxlmcuecmmus.ll +++ b/bench/regex-rs/optimized/3ixfkxlmcuecmmus.ll @@ -1504,8 +1504,8 @@ define void @_ZN14regex_automata4meta8strategy3new17h42779e947a72af4fE(ptr noali %30 = alloca { i64, [16 x i64] }, align 8 %31 = alloca { i64, [16 x i64] }, align 8 %32 = alloca { { i64, i64 }, { i8, i8 }, i8, i8, i8, i8, [2 x i8] }, align 8 - %.sroa.5229.i.sroa.4 = alloca [10 x i64], align 8 - %.sroa.5229.i.sroa.5 = alloca [160 x i64], align 8 + %.sroa.5227.i.sroa.4 = alloca [10 x i64], align 8 + %.sroa.5227.i.sroa.5 = alloca [160 x i64], align 8 %33 = alloca { [16 x i8], i8, [7 x i8] }, align 8 %34 = alloca { { i64, i64 }, { i8, i8 }, i8, i8, i8, i8, [2 x i8] }, align 8 %35 = alloca { { { i64, i64 }, { i8, i8 }, i8, i8, i8, i8, [2 x i8] }, { { i8, { i8, i8, i8, i8, i8, i8 }, i8 }, { i32, i8, i8, [2 x i8] } }, { i64, { { { i64, i64 }, { { i64, ptr }, i64 }, { { i64, ptr }, i64 }, { { i64, ptr }, i64 }, { i32, i32 }, i64, i8, i8, i8, [5 x i8] } } }, { i64, { { { { { i64, ptr }, i64 }, i64, i16, [3 x i16] }, { { i64, ptr }, i64 } } } }, { i64, { { { { i64, ptr }, i64 }, { { i64, ptr }, i64 }, { { i64, ptr }, i64 }, { { i64, ptr }, i64 }, { i64, { { { i64, ptr }, i64 } } }, { i64, { { { i64, ptr }, i64 } } } } } }, { i64, { { { { i64, ptr }, i64 }, i64, i16, [3 x i16] } } } }, align 8 @@ -2033,8 +2033,8 @@ common.resume: ; preds = %.body, %213, %.body store i8 %.sink736, ptr %.sroa.551.0..sroa_idx, align 8 call void @llvm.experimental.noalias.scope.decl(metadata !329) call void @llvm.experimental.noalias.scope.decl(metadata !332) - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.5229.i.sroa.4) - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.5229.i.sroa.5) + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.5227.i.sroa.4) + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.5227.i.sroa.5) call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.718.i.sroa.6) call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.78.i.sroa.6) call void @llvm.lifetime.start.p0(ptr nonnull %47) @@ -2451,14 +2451,14 @@ common.resume: ; preds = %.body, %213, %.body %338 = load ptr, ptr %47, align 8, !alias.scope !465, !noalias !334, !nonnull !4, !noundef !4 %339 = getelementptr inbounds nuw i8, ptr %338, i64 125 %340 = load i8, ptr %339, align 1, !range !91, !alias.scope !468, !noalias !364, !noundef !4 - %.not261.i = icmp eq i8 %340, 0 - br i1 %.not261.i, label %341, label %343 + %.not259.i = icmp eq i8 %340, 0 + br i1 %.not259.i, label %341, label %343 341: ; preds = %352, %337 - %.sroa.5229.i.sroa.0.0 = phi i64 [ undef, %337 ], [ %.sroa.5229.i.sroa.0.0.copyload, %352 ] - %.pre256.i = phi ptr [ %338, %337 ], [ %.pre256.pre.i, %352 ] + %.sroa.5227.i.sroa.0.0 = phi i64 [ undef, %337 ], [ %.sroa.5227.i.sroa.0.0.copyload, %352 ] + %.pre254.i = phi ptr [ %338, %337 ], [ %.pre254.pre.i, %352 ] %342 = phi ptr [ %328, %337 ], [ %.pre.i, %352 ] - %.sroa.0226.1.i = phi i64 [ 2, %337 ], [ %.sroa.0226.0.copyload228.i, %352 ] + %.sroa.0224.1.i = phi i64 [ 2, %337 ], [ %.sroa.0224.0.copyload226.i, %352 ] call void @llvm.lifetime.end.p0(ptr nonnull %37), !noalias !334 br label %433 @@ -2494,17 +2494,17 @@ common.resume: ; preds = %.body, %213, %.body br label %349 352: ; preds = %349 - %.sroa.0226.0.copyload228.i = load i64, ptr %27, align 8, !noalias !478 - %.sroa.5229.0..sroa_idx230.i = getelementptr inbounds nuw i8, ptr %27, i64 8 - %.sroa.5229.i.sroa.0.0.copyload = load i64, ptr %.sroa.5229.0..sroa_idx230.i, align 8, !noalias !334 - %.sroa.5229.i.sroa.4.0..sroa.5229.0..sroa_idx230.i.sroa_idx = getelementptr inbounds nuw i8, ptr %27, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %.sroa.5229.i.sroa.4, ptr noundef nonnull align 8 dereferenceable(80) %.sroa.5229.i.sroa.4.0..sroa.5229.0..sroa_idx230.i.sroa_idx, i64 80, i1 false), !noalias !334 - %.sroa.5229.i.sroa.5.0..sroa.5229.0..sroa_idx230.i.sroa_idx = getelementptr inbounds nuw i8, ptr %27, i64 96 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1280) %.sroa.5229.i.sroa.5, ptr noundef nonnull align 8 dereferenceable(1280) %.sroa.5229.i.sroa.5.0..sroa.5229.0..sroa_idx230.i.sroa_idx, i64 1280, i1 false), !noalias !334 + %.sroa.0224.0.copyload226.i = load i64, ptr %27, align 8, !noalias !478 + %.sroa.5227.0..sroa_idx228.i = getelementptr inbounds nuw i8, ptr %27, i64 8 + %.sroa.5227.i.sroa.0.0.copyload = load i64, ptr %.sroa.5227.0..sroa_idx228.i, align 8, !noalias !334 + %.sroa.5227.i.sroa.4.0..sroa.5227.0..sroa_idx228.i.sroa_idx = getelementptr inbounds nuw i8, ptr %27, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %.sroa.5227.i.sroa.4, ptr noundef nonnull align 8 dereferenceable(80) %.sroa.5227.i.sroa.4.0..sroa.5227.0..sroa_idx228.i.sroa_idx, i64 80, i1 false), !noalias !334 + %.sroa.5227.i.sroa.5.0..sroa.5227.0..sroa_idx228.i.sroa_idx = getelementptr inbounds nuw i8, ptr %27, i64 96 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1280) %.sroa.5227.i.sroa.5, ptr noundef nonnull align 8 dereferenceable(1280) %.sroa.5227.i.sroa.5.0..sroa.5227.0..sroa_idx228.i.sroa_idx, i64 1280, i1 false), !noalias !334 call void @llvm.lifetime.end.p0(ptr nonnull %27), !noalias !471 call void @llvm.lifetime.end.p0(ptr nonnull %33), !noalias !334 %.pre.i = load ptr, ptr %37, align 8, !noalias !334 - %.pre256.pre.i = load ptr, ptr %47, align 8, !noalias !334 + %.pre254.pre.i = load ptr, ptr %47, align 8, !noalias !334 br label %341 353: ; preds = %329 @@ -2761,8 +2761,8 @@ common.resume: ; preds = %.body, %213, %.body br label %224 .thread619: ; preds = %"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$regex_automata..util..prefilter..Prefilter$GT$$GT$17h27d74ec3f545d326E.exit143.i", %427 - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5229.i.sroa.4) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5229.i.sroa.5) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5227.i.sroa.4) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5227.i.sroa.5) call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.718.i.sroa.6) call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.78.i.sroa.6) call void @llvm.lifetime.end.p0(ptr nonnull %47) @@ -2770,9 +2770,9 @@ common.resume: ; preds = %.body, %213, %.body br label %450 433: ; preds = %312, %341 - %.sroa.23.sroa.15.sroa.0.0.copyload573 = phi i64 [ undef, %312 ], [ %.sroa.5229.i.sroa.0.0, %341 ] - %.sroa.24.sroa.14.0.copyload255 = phi ptr [ %313, %312 ], [ %.pre256.i, %341 ] - %.sroa.23.sroa.14.0.copyload273 = phi i64 [ 2, %312 ], [ %.sroa.0226.1.i, %341 ] + %.sroa.23.sroa.15.sroa.0.0.copyload573 = phi i64 [ undef, %312 ], [ %.sroa.5227.i.sroa.0.0, %341 ] + %.sroa.24.sroa.14.0.copyload255 = phi ptr [ %313, %312 ], [ %.pre254.i, %341 ] + %.sroa.23.sroa.14.0.copyload273 = phi i64 [ 2, %312 ], [ %.sroa.0224.1.i, %341 ] %.sroa.24.sroa.15.sroa.14.0.copyload429 = phi ptr [ null, %312 ], [ %342, %341 ] %434 = load ptr, ptr %46, align 8, !noalias !334, !nonnull !4, !noundef !4 %.sroa.0.0.copyload = load i64, ptr %40, align 8, !noalias !381 @@ -2781,8 +2781,8 @@ common.resume: ; preds = %.body, %213, %.body %.sroa.14.0.copyload = load ptr, ptr %.sroa.14.0..sroa_idx, align 8, !noalias !381 %.sroa.18.0..sroa_idx = getelementptr inbounds nuw i8, ptr %40, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.18, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.18.0..sroa_idx, i64 24, i1 false), !noalias !381 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %.sroa.21.sroa.9, ptr noundef nonnull align 8 dereferenceable(80) %.sroa.5229.i.sroa.4, i64 80, i1 false), !noalias !381 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1280) %.sroa.21.sroa.10, ptr noundef nonnull align 8 dereferenceable(1280) %.sroa.5229.i.sroa.5, i64 1280, i1 false), !noalias !381 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %.sroa.21.sroa.9, ptr noundef nonnull align 8 dereferenceable(80) %.sroa.5227.i.sroa.4, i64 80, i1 false), !noalias !381 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1280) %.sroa.21.sroa.10, ptr noundef nonnull align 8 dereferenceable(1280) %.sroa.5227.i.sroa.5, i64 1280, i1 false), !noalias !381 %.sroa.21.sroa.10.1368..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.21.sroa.10, i64 1280 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(376) %.sroa.21.sroa.10.1368..sroa_idx, ptr noundef nonnull align 8 dereferenceable(376) %38, i64 376, i1 false), !noalias !381 %.sroa.21.sroa.10.1744..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.21.sroa.10, i64 1656 @@ -2793,8 +2793,8 @@ common.resume: ; preds = %.body, %213, %.body call void @llvm.lifetime.end.p0(ptr nonnull %40), !noalias !334 call void @llvm.lifetime.end.p0(ptr nonnull %42), !noalias !334 call void @llvm.lifetime.end.p0(ptr nonnull %46), !noalias !334 - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5229.i.sroa.4) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5229.i.sroa.5) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5227.i.sroa.4) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5227.i.sroa.5) call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.718.i.sroa.6) call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.78.i.sroa.6) call void @llvm.lifetime.end.p0(ptr nonnull %47) diff --git a/bench/rocksdb/optimized/db_impl.ll b/bench/rocksdb/optimized/db_impl.ll index bc835255fa7..0f1d76bedc0 100644 --- a/bench/rocksdb/optimized/db_impl.ll +++ b/bench/rocksdb/optimized/db_impl.ll @@ -39063,14 +39063,14 @@ define void @_ZN7rocksdb6DBImpl19PrepareMultiGetKeysEmbPNS_10autovectorIPNS_10Ke %9 = alloca %"class.rocksdb::autovector::iterator_impl", align 8 %10 = alloca %"class.rocksdb::autovector::iterator_impl", align 8 %11 = alloca %"class.rocksdb::autovector::iterator_impl", align 8 - br i1 %2, label %22, label %12 + br i1 %2, label %21, label %12 12: ; preds = %4 %13 = ptrtoint ptr %3 to i64 call void @llvm.lifetime.start.p0(ptr nonnull %10) call void @llvm.lifetime.start.p0(ptr nonnull %11) %.not.i.i = icmp eq i64 %1, 0 - br i1 %.not.i.i, label %21, label %.noexc.i + br i1 %.not.i.i, label %20, label %.noexc.i .noexc.i: ; preds = %12 store ptr %3, ptr %10, align 8, !tbaa !2002 @@ -39079,43 +39079,43 @@ define void @_ZN7rocksdb6DBImpl19PrepareMultiGetKeysEmbPNS_10autovectorIPNS_10Ke store i64 %13, ptr %11, align 8, !tbaa !2002 %.sroa.3.0..sroa_idx5.i = getelementptr inbounds nuw i8, ptr %11, i64 8 store i64 %1, ptr %.sroa.3.0..sroa_idx5.i, align 8, !tbaa !99 - %14 = tail call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %1, i1 true) - %15 = shl nuw nsw i64 %14, 1 - %16 = xor i64 %15, 126 - call fastcc void @_ZSt16__introsort_loopIN7rocksdb10autovectorIPNS0_10KeyContextELm32EE13iterator_implIS4_S3_EElN9__gnu_cxx5__ops15_Iter_comp_iterINS0_12_GLOBAL__N_117CompareKeyContextEEEEvT_SD_T0_T1_(ptr noundef %10, ptr noundef %11, i64 noundef %16) + %13 = tail call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %1, i1 true) + %14 = shl nuw nsw i64 %13, 1 + %15 = xor i64 %14, 126 + call fastcc void @_ZSt16__introsort_loopIN7rocksdb10autovectorIPNS0_10KeyContextELm32EE13iterator_implIS4_S3_EElN9__gnu_cxx5__ops15_Iter_comp_iterINS0_12_GLOBAL__N_117CompareKeyContextEEEEvT_SD_T0_T1_(ptr noundef %10, ptr noundef %11, i64 noundef %15) call void @llvm.lifetime.start.p0(ptr nonnull %6) call void @llvm.lifetime.start.p0(ptr nonnull %7) call void @llvm.lifetime.start.p0(ptr nonnull %8) call void @llvm.lifetime.start.p0(ptr nonnull %9) - %17 = icmp sgt i64 %1, 16 - br i1 %17, label %.noexc.i.i, label %20 + %16 = icmp sgt i64 %1, 16 + br i1 %16, label %.noexc.i.i, label %19 .noexc.i.i: ; preds = %.noexc.i store ptr %3, ptr %6, align 8, !tbaa !2002 %.sroa.5.0..sroa_idx18.i.i = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 0, ptr %.sroa.5.0..sroa_idx18.i.i, align 8, !tbaa !99 store ptr %3, ptr %7, align 8, !tbaa !2004, !alias.scope !2006 - %18 = getelementptr inbounds nuw i8, ptr %7, i64 8 - store i64 16, ptr %18, align 8, !tbaa !2009, !alias.scope !2006 + %17 = getelementptr inbounds nuw i8, ptr %7, i64 8 + store i64 16, ptr %17, align 8, !tbaa !2009, !alias.scope !2006 call fastcc void @_ZSt16__insertion_sortIN7rocksdb10autovectorIPNS0_10KeyContextELm32EE13iterator_implIS4_S3_EEN9__gnu_cxx5__ops15_Iter_comp_iterINS0_12_GLOBAL__N_117CompareKeyContextEEEEvT_SD_T0_(ptr noundef %6, ptr noundef %7) call void @llvm.lifetime.start.p0(ptr nonnull %5) %.sroa.5.0..sroa_idx5.i.i.i.i = getelementptr inbounds nuw i8, ptr %5, i64 8 br label %.noexc.i.i.i .noexc.i.i.i: ; preds = %.noexc.i.i.i, %.noexc.i.i - %.sroa.5.09.i.i.i.i = phi i64 [ 16, %.noexc.i.i ], [ %19, %.noexc.i.i.i ] + %.sroa.5.09.i.i.i.i = phi i64 [ 16, %.noexc.i.i ], [ %18, %.noexc.i.i.i ] store i64 %13, ptr %5, align 8, !tbaa !2002 store i64 %.sroa.5.09.i.i.i.i, ptr %.sroa.5.0..sroa_idx5.i.i.i.i, align 8, !tbaa !99 call fastcc void @_ZSt25__unguarded_linear_insertIN7rocksdb10autovectorIPNS0_10KeyContextELm32EE13iterator_implIS4_S3_EEN9__gnu_cxx5__ops14_Val_comp_iterINS0_12_GLOBAL__N_117CompareKeyContextEEEEvT_T0_(ptr noundef %5) - %19 = add nuw nsw i64 %.sroa.5.09.i.i.i.i, 1 - %.not.i.i.i.i = icmp eq i64 %19, %1 + %18 = add nuw nsw i64 %.sroa.5.09.i.i.i.i, 1 + %.not.i.i.i.i = icmp eq i64 %18, %1 br i1 %.not.i.i.i.i, label %.loopexit.i.i.i, label %.noexc.i.i.i, !llvm.loop !2010 .loopexit.i.i.i: ; preds = %.noexc.i.i.i call void @llvm.lifetime.end.p0(ptr nonnull %5) br label %.noexc3.i -20: ; preds = %.noexc.i +19: ; preds = %.noexc.i store ptr %3, ptr %8, align 8, !tbaa !2002 %.sroa.5.0..sroa_idx16.i.i = getelementptr inbounds nuw i8, ptr %8, i64 8 store i64 0, ptr %.sroa.5.0..sroa_idx16.i.i, align 8, !tbaa !99 @@ -39125,19 +39125,19 @@ define void @_ZN7rocksdb6DBImpl19PrepareMultiGetKeysEmbPNS_10autovectorIPNS_10Ke call fastcc void @_ZSt16__insertion_sortIN7rocksdb10autovectorIPNS0_10KeyContextELm32EE13iterator_implIS4_S3_EEN9__gnu_cxx5__ops15_Iter_comp_iterINS0_12_GLOBAL__N_117CompareKeyContextEEEEvT_SD_T0_(ptr noundef %8, ptr noundef %9) br label %.noexc3.i -.noexc3.i: ; preds = %20, %.loopexit.i.i.i +.noexc3.i: ; preds = %19, %.loopexit.i.i.i call void @llvm.lifetime.end.p0(ptr nonnull %6) call void @llvm.lifetime.end.p0(ptr nonnull %7) call void @llvm.lifetime.end.p0(ptr nonnull %8) call void @llvm.lifetime.end.p0(ptr nonnull %9) - br label %21 + br label %20 -21: ; preds = %.noexc3.i, %12 +20: ; preds = %.noexc3.i, %12 call void @llvm.lifetime.end.p0(ptr nonnull %10) call void @llvm.lifetime.end.p0(ptr nonnull %11) - br label %22 + br label %21 -22: ; preds = %4, %21 +21: ; preds = %4, %20 ret void } diff --git a/bench/rust-analyzer-rs/optimized/2j2fovrmererjnve.ll b/bench/rust-analyzer-rs/optimized/2j2fovrmererjnve.ll index bf875634969..891abadcc77 100644 --- a/bench/rust-analyzer-rs/optimized/2j2fovrmererjnve.ll +++ b/bench/rust-analyzer-rs/optimized/2j2fovrmererjnve.ll @@ -4789,8 +4789,8 @@ _ZN11parking_lot10raw_rwlock9RawRwLock20try_lock_shared_fast17h19997ede6c8db329E .noexc14: ; preds = %40 unreachable -"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit": ; preds = %.body, %83, %92, %45 - %.pn = phi { ptr, i32 } [ %93, %92 ], [ %46, %45 ], [ %eh.lpad-body, %83 ], [ %eh.lpad-body, %.body ] +"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit": ; preds = %.body, %84, %93, %45 + %.pn = phi { ptr, i32 } [ %94, %92 ], [ %46, %45 ], [ %eh.lpad-body, %83 ], [ %eh.lpad-body, %.body ] %41 = atomicrmw sub ptr %1, i64 16 release, align 8, !noalias !455 %42 = and i64 %41, -14 %43 = icmp eq i64 %42, 18 @@ -4798,7 +4798,7 @@ _ZN11parking_lot10raw_rwlock9RawRwLock20try_lock_shared_fast17h19997ede6c8db329E 44: ; preds = %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit" invoke void @_ZN11parking_lot10raw_rwlock9RawRwLock18unlock_shared_slow17h48c5de16cc1f8475E(ptr noundef nonnull align 8 %1) - to label %"_ZN4core3ptr309drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$indexmap..map..IndexMap$LT$la_arena..Idx$LT$base_db..input..CrateData$GT$$C$salsa..input..Slot$LT$core..option..Option$LT$semver..Version$GT$$GT$$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$$GT$17h571fc03f536f21c3E.llvm.16417257138847559323.exit" unwind label %107 + to label %"_ZN4core3ptr309drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$indexmap..map..IndexMap$LT$la_arena..Idx$LT$base_db..input..CrateData$GT$$C$salsa..input..Slot$LT$core..option..Option$LT$semver..Version$GT$$GT$$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$$GT$17h571fc03f536f21c3E.llvm.16417257138847559323.exit" unwind label %108 45: ; preds = %"_ZN8indexmap3map25IndexMap$LT$K$C$V$C$S$GT$3get17h3455fa9e825515a6E.exit.thread", %40, %"_ZN8indexmap3map25IndexMap$LT$K$C$V$C$S$GT$12get_index_of17haff2ca80ca4a6dcaE.llvm.6986466436814177072.exit.i", %_ZN11parking_lot10raw_rwlock9RawRwLock20try_lock_shared_fast17h19997ede6c8db329E.llvm.16417257138847559323.exit.thread %46 = landingpad { ptr, i32 } @@ -4858,7 +4858,7 @@ _ZN11parking_lot10raw_rwlock9RawRwLock20try_lock_shared_fast17h19997ede6c8db329E %69 = load i64, ptr %68, align 8, !alias.scope !468, !noalias !469, !noundef !5 call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !471 %70 = invoke i64 @"_ZN69_$LT$semver..identifier..Identifier$u20$as$u20$core..clone..Clone$GT$5clone17h28ca814320aa363bE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %60) - to label %.noexc21 unwind label %78 + to label %.noexc21 unwind label %79 .noexc21: ; preds = %63 store i64 %70, ptr %6, align 8, !noalias !471 @@ -4870,10 +4870,10 @@ _ZN11parking_lot10raw_rwlock9RawRwLock20try_lock_shared_fast17h19997ede6c8db329E %74 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$semver..identifier..Identifier$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2be2ae9091aa993eE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %6) - to label %.body unwind label %75, !noalias !469 + to label %.body unwind label %76, !noalias !469 -75: ; preds = %73 - %76 = landingpad { ptr, i32 } +76: ; preds = %73 + %77 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #14, !noalias !469 unreachable @@ -4883,21 +4883,21 @@ _ZN11parking_lot10raw_rwlock9RawRwLock20try_lock_shared_fast17h19997ede6c8db329E %77 = inttoptr i64 %70 to ptr br label %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4bd8d8c60b7a419aE.exit" -78: ; preds = %63 - %79 = landingpad { ptr, i32 } +79: ; preds = %63 + %80 = landingpad { ptr, i32 } cleanup br label %.body -.body: ; preds = %73, %78 - %eh.lpad-body = phi { ptr, i32 } [ %79, %78 ], [ %74, %73 ] - %80 = atomicrmw sub ptr %49, i64 16 release, align 8 - %81 = and i64 %80, -14 - %82 = icmp eq i64 %81, 18 - br i1 %82, label %83, label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit" +.body: ; preds = %73, %79 + %eh.lpad-body = phi { ptr, i32 } [ %80, %78 ], [ %74, %73 ] + %81 = atomicrmw sub ptr %49, i64 16 release, align 8 + %82 = and i64 %81, -14 + %83 = icmp eq i64 %82, 18 + br i1 %83, label %84, label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit" -83: ; preds = %.body +84: ; preds = %.body invoke void @_ZN11parking_lot10raw_rwlock9RawRwLock18unlock_shared_slow17h48c5de16cc1f8475E(ptr noundef nonnull align 8 %49) - to label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit" unwind label %107 + to label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit" unwind label %108 "_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4bd8d8c60b7a419aE.exit": ; preds = %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i", %59 %.sroa.4.0 = phi i64 [ %65, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i" ], [ undef, %59 ] @@ -4905,10 +4905,10 @@ _ZN11parking_lot10raw_rwlock9RawRwLock20try_lock_shared_fast17h19997ede6c8db329E %.sroa.0.0 = phi ptr [ %77, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i" ], [ null, %59 ] %.sroa.5.0 = phi i64 [ %67, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i" ], [ undef, %59 ] %.sroa.6.0 = phi i64 [ %69, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i" ], [ undef, %59 ] - %84 = getelementptr inbounds nuw i8, ptr %49, i64 52 - %85 = load i8, ptr %84, align 4, !noundef !5 - %86 = getelementptr inbounds nuw i8, ptr %49, i64 48 - %87 = load i32, ptr %86, align 8, !range !14, !noundef !5 + %85 = getelementptr inbounds nuw i8, ptr %49, i64 52 + %86 = load i8, ptr %85, align 4, !noundef !5 + %87 = getelementptr inbounds nuw i8, ptr %49, i64 48 + %88 = load i32, ptr %87, align 8, !range !14, !noundef !5 call void @llvm.lifetime.start.p0(ptr nonnull %7) store ptr %.sroa.0.0, ptr %7, align 8 %.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 8 @@ -4919,57 +4919,57 @@ _ZN11parking_lot10raw_rwlock9RawRwLock20try_lock_shared_fast17h19997ede6c8db329E store i64 %.sroa.5.0, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 32 store i64 %.sroa.6.0, ptr %.sroa.6.0..sroa_idx, align 8 - %88 = atomicrmw sub ptr %49, i64 16 release, align 8 - %89 = and i64 %88, -14 - %90 = icmp eq i64 %89, 18 - br i1 %90, label %91, label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24" + %89 = atomicrmw sub ptr %49, i64 16 release, align 8 + %90 = and i64 %89, -14 + %91 = icmp eq i64 %90, 18 + br i1 %91, label %92, label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24" -91: ; preds = %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4bd8d8c60b7a419aE.exit" +92: ; preds = %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4bd8d8c60b7a419aE.exit" invoke void @_ZN11parking_lot10raw_rwlock9RawRwLock18unlock_shared_slow17h48c5de16cc1f8475E(ptr noundef nonnull align 8 %49) - to label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24" unwind label %92 + to label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24" unwind label %93 -92: ; preds = %91, %97, %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24" - %93 = landingpad { ptr, i32 } +93: ; preds = %92, %98, %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24" + %94 = landingpad { ptr, i32 } cleanup invoke fastcc void @"_ZN4core3ptr64drop_in_place$LT$core..option..Option$LT$semver..Version$GT$$GT$17h8414938af7aaf726E"(ptr noalias noundef align 8 dereferenceable(40) %7) #15 - to label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit" unwind label %107 - -"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24": ; preds = %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4bd8d8c60b7a419aE.exit", %91 - %94 = getelementptr inbounds nuw i8, ptr %3, i64 96 - %95 = load ptr, ptr %94, align 8, !invariant.load !5, !nonnull !5 - %96 = invoke noundef nonnull align 8 ptr %95(ptr noundef nonnull align 1 %2) - to label %97 unwind label %92 - -97: ; preds = %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24" - %98 = getelementptr inbounds nuw i8, ptr %1, i64 64 - %99 = load i16, ptr %98, align 8, !noundef !5 - %100 = getelementptr inbounds nuw i8, ptr %49, i64 56 - %101 = load i32, ptr %100, align 8, !noundef !5 - %.sroa.4.0.insert.ext = zext i16 %99 to i64 + to label %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit" unwind label %108 + +"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24": ; preds = %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4bd8d8c60b7a419aE.exit", %92 + %95 = getelementptr inbounds nuw i8, ptr %3, i64 96 + %96 = load ptr, ptr %95, align 8, !invariant.load !5, !nonnull !5 + %97 = invoke noundef nonnull align 8 ptr %95(ptr noundef nonnull align 1 %2) + to label %97 unwind label %93 + +98: ; preds = %"_ZN4core3ptr178drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$salsa..runtime..StampedValue$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h4a646b0e5456c4afE.exit24" + %99 = getelementptr inbounds nuw i8, ptr %1, i64 64 + %100 = load i16, ptr %99, align 8, !noundef !5 + %101 = getelementptr inbounds nuw i8, ptr %49, i64 56 + %102 = load i32, ptr %101, align 8, !noundef !5 + %.sroa.4.0.insert.ext = zext i16 %100 to i64 %.sroa.4.0.insert.shift = shl nuw nsw i64 %.sroa.4.0.insert.ext, 32 - %.sroa.0.0.insert.ext = zext i32 %101 to i64 + %.sroa.0.0.insert.ext = zext i32 %102 to i64 %.sroa.4.0.insert.insert = or disjoint i64 %.sroa.4.0.insert.shift, %.sroa.0.0.insert.ext %.sroa.0.0.insert.insert = or disjoint i64 %.sroa.4.0.insert.insert, 844424930131968 - invoke void @_ZN5salsa7runtime7Runtime46report_query_read_and_unwind_if_cycle_resulted17heb92bd3f14a6330bE(ptr noundef nonnull align 8 %96, i64 %.sroa.0.0.insert.insert, i8 noundef %85, i32 noundef %87) - to label %102 unwind label %92 + invoke void @_ZN5salsa7runtime7Runtime46report_query_read_and_unwind_if_cycle_resulted17heb92bd3f14a6330bE(ptr noundef nonnull align 8 %97, i64 %.sroa.0.0.insert.insert, i8 noundef %86, i32 noundef %88) + to label %102 unwind label %93 -102: ; preds = %97 +103: ; preds = %98 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %0, ptr noundef nonnull align 8 dereferenceable(40) %7, i64 40, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %7) - %103 = atomicrmw sub ptr %1, i64 16 release, align 8, !noalias !472 - %104 = and i64 %103, -14 - %105 = icmp eq i64 %104, 18 - br i1 %105, label %106, label %"_ZN4core3ptr309drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$indexmap..map..IndexMap$LT$la_arena..Idx$LT$base_db..input..CrateData$GT$$C$salsa..input..Slot$LT$core..option..Option$LT$semver..Version$GT$$GT$$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$$GT$17h571fc03f536f21c3E.llvm.16417257138847559323.exit25" + %104 = atomicrmw sub ptr %1, i64 16 release, align 8, !noalias !472 + %105 = and i64 %104, -14 + %106 = icmp eq i64 %105, 18 + br i1 %106, label %107, label %"_ZN4core3ptr309drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$indexmap..map..IndexMap$LT$la_arena..Idx$LT$base_db..input..CrateData$GT$$C$salsa..input..Slot$LT$core..option..Option$LT$semver..Version$GT$$GT$$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$$GT$17h571fc03f536f21c3E.llvm.16417257138847559323.exit25" -106: ; preds = %102 +107: ; preds = %103 tail call void @_ZN11parking_lot10raw_rwlock9RawRwLock18unlock_shared_slow17h48c5de16cc1f8475E(ptr noundef nonnull align 8 %1), !noalias !472 br label %"_ZN4core3ptr309drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$indexmap..map..IndexMap$LT$la_arena..Idx$LT$base_db..input..CrateData$GT$$C$salsa..input..Slot$LT$core..option..Option$LT$semver..Version$GT$$GT$$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$$GT$17h571fc03f536f21c3E.llvm.16417257138847559323.exit25" -"_ZN4core3ptr309drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$indexmap..map..IndexMap$LT$la_arena..Idx$LT$base_db..input..CrateData$GT$$C$salsa..input..Slot$LT$core..option..Option$LT$semver..Version$GT$$GT$$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$$GT$17h571fc03f536f21c3E.llvm.16417257138847559323.exit25": ; preds = %102, %106 +"_ZN4core3ptr309drop_in_place$LT$lock_api..rwlock..RwLockReadGuard$LT$parking_lot..raw_rwlock..RawRwLock$C$indexmap..map..IndexMap$LT$la_arena..Idx$LT$base_db..input..CrateData$GT$$C$salsa..input..Slot$LT$core..option..Option$LT$semver..Version$GT$$GT$$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$$GT$17h571fc03f536f21c3E.llvm.16417257138847559323.exit25": ; preds = %103, %107 ret void -107: ; preds = %83, %44, %92 - %108 = landingpad { ptr, i32 } +108: ; preds = %84, %44, %93 + %109 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #14 unreachable diff --git a/bench/rust-analyzer-rs/optimized/2ztqi8ib9ngj9iz.ll b/bench/rust-analyzer-rs/optimized/2ztqi8ib9ngj9iz.ll index 4cfae88960c..f38e0e2c2f5 100644 --- a/bench/rust-analyzer-rs/optimized/2ztqi8ib9ngj9iz.ll +++ b/bench/rust-analyzer-rs/optimized/2ztqi8ib9ngj9iz.ll @@ -527,46 +527,46 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 tail call void @llvm.assume(i1 %4) call void @llvm.lifetime.start.p0(ptr nonnull %2), !noalias !145 store ptr %3, ptr %2, align 8, !noalias !156 - %5 = getelementptr inbounds nuw i8, ptr %2, i64 8 - store ptr %0, ptr %5, align 8, !noalias !156 + %3 = getelementptr inbounds nuw i8, ptr %2, i64 8 + store ptr %0, ptr %3, align 8, !noalias !156 br label %.outer.i.i.i.i.i .outer.i.i.i.i.i: ; preds = %._crit_edge.i.i.i.i.i, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h7283569612df02e4E.exit" - %6 = phi i16 [ %11, %._crit_edge.i.i.i.i.i ], [ %.sroa.0.sroa.6.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h7283569612df02e4E.exit" ] + %4 = phi i16 [ %9, %._crit_edge.i.i.i.i.i ], [ %.sroa.0.sroa.6.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h7283569612df02e4E.exit" ] %.lcssa1722.i.i.i.i.i = phi ptr [ %.lcssa1721.i.i.i.i.i, %._crit_edge.i.i.i.i.i ], [ %.sroa.0.sroa.4.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h7283569612df02e4E.exit" ] %.lcssa1620.i.i.i.i.i = phi ptr [ %.lcssa1619.i.i.i.i.i, %._crit_edge.i.i.i.i.i ], [ %.sroa.0.sroa.0.0.copyload, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h7283569612df02e4E.exit" ] - %.0.ph.i.i.i.i.i = phi i64 [ %16, %._crit_edge.i.i.i.i.i ], [ %.sroa.4.0.copyload3, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h7283569612df02e4E.exit" ] - %.not.i13.i.i.i.i.i = icmp eq i16 %6, 0 + %.0.ph.i.i.i.i.i = phi i64 [ %14, %._crit_edge.i.i.i.i.i ], [ %.sroa.4.0.copyload3, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h7283569612df02e4E.exit" ] + %.not.i13.i.i.i.i.i = icmp eq i16 %4, 0 br i1 %.not.i13.i.i.i.i.i, label %.lr.ph.i.i.i.i.i, label %._crit_edge.i.i.i.i.i .lr.ph.i.i.i.i.i: ; preds = %.outer.i.i.i.i.i - %7 = icmp eq i64 %.0.ph.i.i.i.i.i, 0 - br i1 %7, label %_ZN4core4iter6traits8iterator8Iterator8for_each17h03a3e39f9039d85eE.llvm.4309087787269155690.exit, label %.lr.ph.split.i.i.i.i.i + %5 = icmp eq i64 %.0.ph.i.i.i.i.i, 0 + br i1 %5, label %_ZN4core4iter6traits8iterator8Iterator8for_each17h03a3e39f9039d85eE.llvm.4309087787269155690.exit, label %.lr.ph.split.i.i.i.i.i ._crit_edge.i.i.i.i.i: ; preds = %.lr.ph.split.i.i.i.i.i, %.outer.i.i.i.i.i - %.lcssa1721.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i, %.outer.i.i.i.i.i ], [ %22, %.lr.ph.split.i.i.i.i.i ] - %.lcssa1619.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i, %.outer.i.i.i.i.i ], [ %21, %.lr.ph.split.i.i.i.i.i ] - %.lcssa.i.i.i.i.i = phi i16 [ %6, %.outer.i.i.i.i.i ], [ %.cast.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i ] - %8 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i, i1 true) - %9 = zext nneg i16 %8 to i64 - %10 = add i16 %.lcssa.i.i.i.i.i, -1 - %11 = and i16 %10, %.lcssa.i.i.i.i.i - %12 = sub nsw i64 0, %9 - %13 = getelementptr inbounds { ptr, { { i8, [15 x i8] }, i32 }, [1 x i32] }, ptr %.lcssa1619.i.i.i.i.i, i64 %12 - %14 = getelementptr inbounds i8, ptr %13, i64 -32 - %15 = getelementptr inbounds i8, ptr %13, i64 -24 - call void @"_ZN4core4iter8adapters10filter_map15filter_map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hd5f87d3e872df881E.llvm.13035063388551028202"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %14, ptr noalias noundef nonnull readonly align 4 dereferenceable(20) %15), !noalias !161 - %16 = add i64 %.0.ph.i.i.i.i.i, -1 + %.lcssa1721.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i, %.outer.i.i.i.i.i ], [ %20, %.lr.ph.split.i.i.i.i.i ] + %.lcssa1619.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i, %.outer.i.i.i.i.i ], [ %19, %.lr.ph.split.i.i.i.i.i ] + %.lcssa.i.i.i.i.i = phi i16 [ %4, %.outer.i.i.i.i.i ], [ %.cast.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i ] + %6 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i, i1 true) + %7 = zext nneg i16 %6 to i64 + %8 = add i16 %.lcssa.i.i.i.i.i, -1 + %9 = and i16 %8, %.lcssa.i.i.i.i.i + %10 = sub nsw i64 0, %7 + %11 = getelementptr inbounds { ptr, { { i8, [15 x i8] }, i32 }, [1 x i32] }, ptr %.lcssa1619.i.i.i.i.i, i64 %10 + %12 = getelementptr inbounds i8, ptr %11, i64 -32 + %13 = getelementptr inbounds i8, ptr %11, i64 -24 + call void @"_ZN4core4iter8adapters10filter_map15filter_map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hd5f87d3e872df881E.llvm.13035063388551028202"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %12, ptr noalias noundef nonnull readonly align 4 dereferenceable(20) %13), !noalias !161 + %14 = add i64 %.0.ph.i.i.i.i.i, -1 br label %.outer.i.i.i.i.i .lr.ph.split.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i - %17 = phi ptr [ %22, %.lr.ph.split.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i, %.lr.ph.i.i.i.i.i ] - %18 = phi ptr [ %21, %.lr.ph.split.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i, %.lr.ph.i.i.i.i.i ] - %19 = load <16 x i8>, ptr %17, align 16, !noalias !166 - %20 = icmp sgt <16 x i8> %19, splat (i8 -1) - %21 = getelementptr inbounds i8, ptr %18, i64 -512 - %22 = getelementptr inbounds nuw i8, ptr %17, i64 16 - %.cast.i.i.i.i.i = bitcast <16 x i1> %20 to i16 + %15 = phi ptr [ %20, %.lr.ph.split.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i, %.lr.ph.i.i.i.i.i ] + %16 = phi ptr [ %19, %.lr.ph.split.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i, %.lr.ph.i.i.i.i.i ] + %17 = load <16 x i8>, ptr %15, align 16, !noalias !166 + %18 = icmp sgt <16 x i8> %17, splat (i8 -1) + %19 = getelementptr inbounds i8, ptr %16, i64 -512 + %20 = getelementptr inbounds nuw i8, ptr %15, i64 16 + %.cast.i.i.i.i.i = bitcast <16 x i1> %18 to i16 %.not.i.i.i.i.i.i = icmp eq i16 %.cast.i.i.i.i.i, 0 br i1 %.not.i.i.i.i.i.i, label %.lr.ph.split.i.i.i.i.i, label %._crit_edge.i.i.i.i.i @@ -719,72 +719,72 @@ define hidden void @"_ZN136_$LT$std..collections..hash..map..HashMap$LT$K$C$V$C$ tail call void @llvm.assume(i1 %6) call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !224 store ptr %5, ptr %3, align 8, !noalias !238 - %7 = getelementptr inbounds nuw i8, ptr %3, i64 8 - store ptr %4, ptr %7, align 8, !noalias !238 + %5 = getelementptr inbounds nuw i8, ptr %3, i64 8 + store ptr %4, ptr %5, align 8, !noalias !238 br label %.outer.i.i.i.i.i.i .outer.i.i.i.i.i.i: ; preds = %.noexc, %2 - %8 = phi i16 [ %17, %.noexc ], [ %.sroa.54.0.copyload, %2 ] + %6 = phi i16 [ %15, %.noexc ], [ %.sroa.54.0.copyload, %2 ] %.lcssa1722.i.i.i.i.i.i = phi ptr [ %.lcssa1721.i.i.i.i.i.i, %.noexc ], [ %.sroa.4.0.copyload, %2 ] %.lcssa1620.i.i.i.i.i.i = phi ptr [ %.lcssa1619.i.i.i.i.i.i, %.noexc ], [ %.sroa.0.0.copyload, %2 ] - %.0.ph.i.i.i.i.i.i = phi i64 [ %18, %.noexc ], [ %.sroa.65.0.copyload, %2 ] - %.not.i13.i.i.i.i.i.i = icmp eq i16 %8, 0 + %.0.ph.i.i.i.i.i.i = phi i64 [ %16, %.noexc ], [ %.sroa.65.0.copyload, %2 ] + %.not.i13.i.i.i.i.i.i = icmp eq i16 %6, 0 br i1 %.not.i13.i.i.i.i.i.i, label %.lr.ph.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i: ; preds = %.outer.i.i.i.i.i.i - %9 = icmp eq i64 %.0.ph.i.i.i.i.i.i, 0 - br i1 %9, label %27, label %.lr.ph.split.i.i.i.i.i.i + %7 = icmp eq i64 %.0.ph.i.i.i.i.i.i, 0 + br i1 %7, label %25, label %.lr.ph.split.i.i.i.i.i.i ._crit_edge.i.i.i.i.i.i: ; preds = %.lr.ph.split.i.i.i.i.i.i, %.outer.i.i.i.i.i.i - %.lcssa1721.i.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %24, %.lr.ph.split.i.i.i.i.i.i ] - %.lcssa1619.i.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %23, %.lr.ph.split.i.i.i.i.i.i ] - %.lcssa.i.i.i.i.i.i = phi i16 [ %8, %.outer.i.i.i.i.i.i ], [ %.cast.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i ] - %10 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i.i, i1 true) - %11 = zext nneg i16 %10 to i64 - %12 = sub nsw i64 0, %11 - %13 = getelementptr inbounds { ptr, { { i8, [15 x i8] }, i32 }, [1 x i32] }, ptr %.lcssa1619.i.i.i.i.i.i, i64 %12 - %14 = getelementptr inbounds i8, ptr %13, i64 -32 - %15 = getelementptr inbounds i8, ptr %13, i64 -24 - invoke void @"_ZN4core4iter8adapters10filter_map15filter_map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hd5f87d3e872df881E.llvm.13035063388551028202"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %14, ptr noalias noundef nonnull readonly align 4 dereferenceable(20) %15) - to label %.noexc unwind label %25 + %.lcssa1721.i.i.i.i.i.i = phi ptr [ %.lcssa1722.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %22, %.lr.ph.split.i.i.i.i.i.i ] + %.lcssa1619.i.i.i.i.i.i = phi ptr [ %.lcssa1620.i.i.i.i.i.i, %.outer.i.i.i.i.i.i ], [ %21, %.lr.ph.split.i.i.i.i.i.i ] + %.lcssa.i.i.i.i.i.i = phi i16 [ %6, %.outer.i.i.i.i.i.i ], [ %.cast.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i ] + %8 = call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i.i.i.i.i, i1 true) + %9 = zext nneg i16 %8 to i64 + %10 = sub nsw i64 0, %9 + %11 = getelementptr inbounds { ptr, { { i8, [15 x i8] }, i32 }, [1 x i32] }, ptr %.lcssa1619.i.i.i.i.i.i, i64 %10 + %12 = getelementptr inbounds i8, ptr %11, i64 -32 + %13 = getelementptr inbounds i8, ptr %11, i64 -24 + invoke void @"_ZN4core4iter8adapters10filter_map15filter_map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hd5f87d3e872df881E.llvm.13035063388551028202"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %12, ptr noalias noundef nonnull readonly align 4 dereferenceable(20) %13) + to label %.noexc unwind label %23 .noexc: ; preds = %._crit_edge.i.i.i.i.i.i - %16 = add i16 %.lcssa.i.i.i.i.i.i, -1 - %17 = and i16 %16, %.lcssa.i.i.i.i.i.i - %18 = add i64 %.0.ph.i.i.i.i.i.i, -1 + %14 = add i16 %.lcssa.i.i.i.i.i.i, -1 + %15 = and i16 %14, %.lcssa.i.i.i.i.i.i + %16 = add i64 %.0.ph.i.i.i.i.i.i, -1 br label %.outer.i.i.i.i.i.i .lr.ph.split.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i, %.lr.ph.split.i.i.i.i.i.i - %19 = phi ptr [ %24, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] - %20 = phi ptr [ %23, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] - %21 = load <16 x i8>, ptr %19, align 16, !noalias !243 - %22 = icmp sgt <16 x i8> %21, splat (i8 -1) - %23 = getelementptr inbounds i8, ptr %20, i64 -512 - %24 = getelementptr inbounds nuw i8, ptr %19, i64 16 - %.cast.i.i.i.i.i.i = bitcast <16 x i1> %22 to i16 + %17 = phi ptr [ %22, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1722.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] + %18 = phi ptr [ %21, %.lr.ph.split.i.i.i.i.i.i ], [ %.lcssa1620.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i ] + %19 = load <16 x i8>, ptr %17, align 16, !noalias !243 + %20 = icmp sgt <16 x i8> %19, splat (i8 -1) + %21 = getelementptr inbounds i8, ptr %18, i64 -512 + %22 = getelementptr inbounds nuw i8, ptr %17, i64 16 + %.cast.i.i.i.i.i.i = bitcast <16 x i1> %20 to i16 %.not.i.i.i.i.i.i.i = icmp eq i16 %.cast.i.i.i.i.i.i, 0 br i1 %.not.i.i.i.i.i.i.i, label %.lr.ph.split.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i -25: ; preds = %._crit_edge.i.i.i.i.i.i - %26 = landingpad { ptr, i32 } +23: ; preds = %._crit_edge.i.i.i.i.i.i + %24 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr224drop_in_place$LT$std..collections..hash..map..HashMap$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$C$ide_ssr..resolving..UfcsCallInfo$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$17h0f191b63b9e453afE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %4) #46 - to label %30 unwind label %28 + to label %30 unwind label %26 -27: ; preds = %.lr.ph.i.i.i.i.i.i +25: ; preds = %.lr.ph.i.i.i.i.i.i call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !224 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %4, i64 32, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %4) ret void -28: ; preds = %25 - %29 = landingpad { ptr, i32 } +26: ; preds = %23 + %27 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #47 unreachable -30: ; preds = %25 - resume { ptr, i32 } %26 +28: ; preds = %23 + resume { ptr, i32 } %24 } ; Function Attrs: nonlazybind uwtable @@ -4363,10 +4363,10 @@ define hidden void @"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$12remove_ent %48 = ashr exact i64 %47, 4 call void @_ZN9hashbrown3raw13RawTableInner5erase17h86e2a65e36278b42E.llvm.13035063388551028202(ptr noalias noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %48), !noalias !1188 %49 = getelementptr inbounds i8, ptr %43, i64 -16 - %.sroa.0.0.copyload.i.i = load i64, ptr %49, align 8, !noalias !1189 + %50 = load i64, ptr %49, align 8, !noalias !1189 %.sroa.4.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %43, i64 -8 %.sroa.4.0.copyload.i.i = load ptr, ptr %.sroa.4.0..sroa_idx.i.i, align 8, !noalias !1189 - store i64 %.sroa.0.0.copyload.i.i, ptr %0, align 8, !alias.scope !1157, !noalias !1190 + store i64 %50, ptr %0, align 8, !alias.scope !1157, !noalias !1190 br label %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$12remove_entry17h324d7b3a3a016d64E.exit" "_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$12remove_entry17h324d7b3a3a016d64E.exit": ; preds = %40, %41 diff --git a/bench/rust-analyzer-rs/optimized/4qhzdiok6f4mymhy.ll b/bench/rust-analyzer-rs/optimized/4qhzdiok6f4mymhy.ll index a6bad7bdecc..3a740c1e94d 100644 --- a/bench/rust-analyzer-rs/optimized/4qhzdiok6f4mymhy.ll +++ b/bench/rust-analyzer-rs/optimized/4qhzdiok6f4mymhy.ll @@ -87,7 +87,7 @@ define hidden void @"_ZN111_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec.. %7 = getelementptr inbounds nuw i8, ptr %1, i64 40 %.val = load i64, ptr %7, align 8, !noundef !16 %8 = invoke { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17had3fac05421dde1eE"(i64 noundef %.val, i1 noundef zeroext false) - to label %9 unwind label %65 + to label %9 unwind label %66 9: ; preds = %2 %10 = extractvalue { i64, ptr } %8, 0 @@ -110,7 +110,7 @@ define hidden void @"_ZN111_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec.. 16: ; preds = %9 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h43cc428b81e9ea79E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %6, i64 noundef 0, i64 noundef %.val.i.i) - to label %"._ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17hf2abc9be2f12c1f1E.exit_crit_edge.i.i" unwind label %56, !noalias !27 + to label %"._ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17hf2abc9be2f12c1f1E.exit_crit_edge.i.i" unwind label %57, !noalias !27 "._ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17hf2abc9be2f12c1f1E.exit_crit_edge.i.i": ; preds = %16 %.pre.i.i = load i64, ptr %13, align 8, !alias.scope !28, !noalias !27 @@ -137,15 +137,15 @@ define hidden void @"_ZN111_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec.. %25 = getelementptr inbounds nuw i8, ptr %4, i64 8 br label %26 -26: ; preds = %42, %21 - %.val4.i.i.i.i.i = phi i64 [ %18, %21 ], [ %44, %42 ] +26: ; preds = %43, %21 + %.val4.i.i.i.i.i = phi i64 [ %18, %21 ], [ %45, %42 ] %.0.i.in.i.i.i.i = phi i64 [ %20, %21 ], [ %.0.i.i.i.i.i, %42 ] %.0.i.i.i.i.i = add i64 %.0.i.in.i.i.i.i, -1 call void @llvm.experimental.noalias.scope.decl(metadata !43) call void @llvm.experimental.noalias.scope.decl(metadata !46) %27 = load ptr, ptr %4, align 8, !alias.scope !49, !noalias !50, !noundef !16 %28 = icmp eq ptr %27, null - br i1 %28, label %42, label %29 + br i1 %28, label %43, label %29 29: ; preds = %26 call void @llvm.experimental.noalias.scope.decl(metadata !54) @@ -154,21 +154,21 @@ define hidden void @"_ZN111_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec.. %32 = load i64, ptr %24, align 8, !alias.scope !57, !noalias !58, !noundef !16 call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !60 %33 = invoke i64 @"_ZN69_$LT$semver..identifier..Identifier$u20$as$u20$core..clone..Clone$GT$5clone17h28ca814320aa363bE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %4) - to label %.noexc.i.i.i.i.i unwind label %40, !noalias !61 + to label %.noexc.i.i.i.i.i unwind label %41, !noalias !61 .noexc.i.i.i.i.i: ; preds = %29 store i64 %33, ptr %3, align 8, !noalias !60 %34 = invoke i64 @"_ZN69_$LT$semver..identifier..Identifier$u20$as$u20$core..clone..Clone$GT$5clone17h28ca814320aa363bE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %25) to label %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i" unwind label %35, !noalias !62 -35: ; preds = %.noexc.i.i.i.i.i - %36 = landingpad { ptr, i32 } +36: ; preds = %.noexc.i.i.i.i.i + %37 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$semver..identifier..Identifier$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2be2ae9091aa993eE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3) - to label %.body.i.i.i.i unwind label %37, !noalias !62 + to label %.body.i.i.i.i unwind label %38, !noalias !62 -37: ; preds = %35 - %38 = landingpad { ptr, i32 } +38: ; preds = %36 + %39 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #16, !noalias !62 unreachable @@ -178,116 +178,116 @@ define hidden void @"_ZN111_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec.. %39 = inttoptr i64 %33 to ptr br label %42 -40: ; preds = %29 - %41 = landingpad { ptr, i32 } +41: ; preds = %29 + %42 = landingpad { ptr, i32 } cleanup br label %.body.i.i.i.i -42: ; preds = %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i", %26 +43: ; preds = %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i", %26 %.sroa.8.0.i.i.i.i.i.i = phi i64 [ %32, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i" ], [ undef, %26 ] %.sroa.7.0.i.i.i.i.i.i = phi i64 [ %31, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i" ], [ undef, %26 ] %.sroa.6.0.i.i.i.i.i.i = phi i64 [ %30, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i" ], [ undef, %26 ] %.sroa.5.0.i.i.i.i.i.i = phi i64 [ %34, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i" ], [ undef, %26 ] %.sroa.0.0.i.i.i.i.i.i = phi ptr [ %39, %"_ZN54_$LT$semver..Version$u20$as$u20$core..clone..Clone$GT$5clone17hf2ffac766fdbbb54E.exit.i.i.i.i.i.i.i" ], [ null, %26 ] - %43 = getelementptr inbounds { ptr, [4 x i64] }, ptr %17, i64 %.val4.i.i.i.i.i - store ptr %.sroa.0.0.i.i.i.i.i.i, ptr %43, align 8, !noalias !63 - %.sroa.3.sroa.4.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %43, i64 8 + %44 = getelementptr inbounds { ptr, [4 x i64] }, ptr %17, i64 %.val4.i.i.i.i.i + store ptr %.sroa.0.0.i.i.i.i.i.i, ptr %44, align 8, !noalias !63 + %.sroa.3.sroa.4.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %44, i64 8 store i64 %.sroa.5.0.i.i.i.i.i.i, ptr %.sroa.3.sroa.4.0..sroa_idx.i.i.i.i.i, align 8, !noalias !63 - %.sroa.3.sroa.5.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %43, i64 16 + %.sroa.3.sroa.5.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %44, i64 16 store i64 %.sroa.6.0.i.i.i.i.i.i, ptr %.sroa.3.sroa.5.0..sroa_idx.i.i.i.i.i, align 8, !noalias !63 - %.sroa.3.sroa.6.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %43, i64 24 + %.sroa.3.sroa.6.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %44, i64 24 store i64 %.sroa.7.0.i.i.i.i.i.i, ptr %.sroa.3.sroa.6.0..sroa_idx.i.i.i.i.i, align 8, !noalias !63 - %.sroa.3.sroa.7.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %43, i64 32 + %.sroa.3.sroa.7.0..sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %44, i64 32 store i64 %.sroa.8.0.i.i.i.i.i.i, ptr %.sroa.3.sroa.7.0..sroa_idx.i.i.i.i.i, align 8, !noalias !63 - %44 = add i64 %.val4.i.i.i.i.i, 1 + %45 = add i64 %.val4.i.i.i.i.i, 1 %.not.i.i.i.i.i = icmp eq i64 %.0.i.i.i.i.i, 0 br i1 %.not.i.i.i.i.i, label %.critedge.i.i.i.i, label %26 -.body.i.i.i.i: ; preds = %40, %35 - %eh.lpad-body.i.i.i.i.i = phi { ptr, i32 } [ %36, %35 ], [ %41, %40 ] +.body.i.i.i.i: ; preds = %41, %36 + %eh.lpad-body.i.i.i.i.i = phi { ptr, i32 } [ %37, %35 ], [ %42, %40 ] store i64 %.val4.i.i.i.i.i, ptr %13, align 8, !alias.scope !28, !noalias !61 invoke void @"_ZN4core3ptr147drop_in_place$LT$core..iter..adapters..take..Take$LT$core..iter..sources..repeat..Repeat$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h568a9c471cb94093E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %4) #15 - to label %.body unwind label %54, !noalias !68 + to label %.body unwind label %55, !noalias !68 -.critedge.i.i.i.i: ; preds = %42, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17hf2abc9be2f12c1f1E.exit.i.i" - %.lcssa.sink.i.i.i.i = phi i64 [ %18, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17hf2abc9be2f12c1f1E.exit.i.i" ], [ %44, %42 ] +.critedge.i.i.i.i: ; preds = %43, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17hf2abc9be2f12c1f1E.exit.i.i" + %.lcssa.sink.i.i.i.i = phi i64 [ %18, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17hf2abc9be2f12c1f1E.exit.i.i" ], [ %45, %42 ] store i64 %.lcssa.sink.i.i.i.i, ptr %13, align 8, !alias.scope !28, !noalias !68 - %45 = load ptr, ptr %4, align 8, !alias.scope !69, !noalias !37, !noundef !16 - %46 = icmp eq ptr %45, null - br i1 %46, label %61, label %47 + %46 = load ptr, ptr %4, align 8, !alias.scope !69, !noalias !37, !noundef !16 + %47 = icmp eq ptr %46, null + br i1 %47, label %62, label %48 -47: ; preds = %.critedge.i.i.i.i +48: ; preds = %.critedge.i.i.i.i invoke void @"_ZN72_$LT$semver..identifier..Identifier$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2be2ae9091aa993eE"(ptr noalias noundef nonnull align 8 dereferenceable(48) %4) - to label %"_ZN4core3ptr36drop_in_place$LT$semver..Version$GT$17hb1520cc40c9629f1E.exit.i.i.i.i.i.i.i" unwind label %48, !noalias !68 + to label %"_ZN4core3ptr36drop_in_place$LT$semver..Version$GT$17hb1520cc40c9629f1E.exit.i.i.i.i.i.i.i" unwind label %49, !noalias !68 -48: ; preds = %47 - %49 = landingpad { ptr, i32 } +49: ; preds = %48 + %50 = landingpad { ptr, i32 } cleanup - %50 = getelementptr inbounds nuw i8, ptr %4, i64 8 - invoke void @"_ZN72_$LT$semver..identifier..Identifier$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2be2ae9091aa993eE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %50) - to label %.body unwind label %51, !noalias !68 + %51 = getelementptr inbounds nuw i8, ptr %4, i64 8 + invoke void @"_ZN72_$LT$semver..identifier..Identifier$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2be2ae9091aa993eE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %51) + to label %.body unwind label %52, !noalias !68 -51: ; preds = %48 - %52 = landingpad { ptr, i32 } +52: ; preds = %49 + %53 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #16, !noalias !68 unreachable -"_ZN4core3ptr36drop_in_place$LT$semver..Version$GT$17hb1520cc40c9629f1E.exit.i.i.i.i.i.i.i": ; preds = %47 - %53 = getelementptr inbounds nuw i8, ptr %4, i64 8 - invoke void @"_ZN72_$LT$semver..identifier..Identifier$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2be2ae9091aa993eE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %53) - to label %61 unwind label %59 +"_ZN4core3ptr36drop_in_place$LT$semver..Version$GT$17hb1520cc40c9629f1E.exit.i.i.i.i.i.i.i": ; preds = %48 + %54 = getelementptr inbounds nuw i8, ptr %4, i64 8 + invoke void @"_ZN72_$LT$semver..identifier..Identifier$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2be2ae9091aa993eE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %54) + to label %61 unwind label %60 -54: ; preds = %.body.i.i.i.i - %55 = landingpad { ptr, i32 } +55: ; preds = %.body.i.i.i.i + %56 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #16, !noalias !68 unreachable -56: ; preds = %16 +57: ; preds = %16 %lpad.thr_comm.i.i = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr147drop_in_place$LT$core..iter..adapters..take..Take$LT$core..iter..sources..repeat..Repeat$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h568a9c471cb94093E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %5) #15 - to label %.body unwind label %57 + to label %.body unwind label %58 -57: ; preds = %56 - %58 = landingpad { ptr, i32 } +58: ; preds = %57 + %59 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #16 unreachable -59: ; preds = %"_ZN4core3ptr36drop_in_place$LT$semver..Version$GT$17hb1520cc40c9629f1E.exit.i.i.i.i.i.i.i" - %60 = landingpad { ptr, i32 } +60: ; preds = %"_ZN4core3ptr36drop_in_place$LT$semver..Version$GT$17hb1520cc40c9629f1E.exit.i.i.i.i.i.i.i" + %61 = landingpad { ptr, i32 } cleanup br label %.body -.body: ; preds = %.body.i.i.i.i, %48, %56, %59 - %eh.lpad-body = phi { ptr, i32 } [ %60, %59 ], [ %lpad.thr_comm.i.i, %56 ], [ %49, %48 ], [ %eh.lpad-body.i.i.i.i.i, %.body.i.i.i.i ] +.body: ; preds = %.body.i.i.i.i, %49, %57, %60 + %eh.lpad-body = phi { ptr, i32 } [ %61, %59 ], [ %lpad.thr_comm.i.i, %56 ], [ %50, %48 ], [ %eh.lpad-body.i.i.i.i.i, %.body.i.i.i.i ] invoke void @"_ZN4core3ptr87drop_in_place$LT$alloc..vec..Vec$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$17hf65937c39159cb2eE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %6) #15 - to label %64 unwind label %62 + to label %64 unwind label %63 -61: ; preds = %.critedge.i.i.i.i, %"_ZN4core3ptr36drop_in_place$LT$semver..Version$GT$17hb1520cc40c9629f1E.exit.i.i.i.i.i.i.i" +62: ; preds = %.critedge.i.i.i.i, %"_ZN4core3ptr36drop_in_place$LT$semver..Version$GT$17hb1520cc40c9629f1E.exit.i.i.i.i.i.i.i" call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !29 call void @llvm.lifetime.end.p0(ptr nonnull %5) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %6, i64 24, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %6) ret void -62: ; preds = %65, %.body - %63 = landingpad { ptr, i32 } +63: ; preds = %66, %.body + %64 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #16 unreachable -64: ; preds = %.body, %65 - %.pn4 = phi { ptr, i32 } [ %66, %65 ], [ %eh.lpad-body, %.body ] +65: ; preds = %.body, %66 + %.pn4 = phi { ptr, i32 } [ %67, %65 ], [ %eh.lpad-body, %.body ] resume { ptr, i32 } %.pn4 -65: ; preds = %2 - %66 = landingpad { ptr, i32 } +66: ; preds = %2 + %67 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr147drop_in_place$LT$core..iter..adapters..take..Take$LT$core..iter..sources..repeat..Repeat$LT$core..option..Option$LT$semver..Version$GT$$GT$$GT$$GT$17h568a9c471cb94093E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %1) #15 - to label %64 unwind label %62 + to label %64 unwind label %63 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/syn/optimized/3e28wvtnspuupgei.ll b/bench/syn/optimized/3e28wvtnspuupgei.ll index e26eac8afaf..7934d05885e 100644 --- a/bench/syn/optimized/3e28wvtnspuupgei.ll +++ b/bench/syn/optimized/3e28wvtnspuupgei.ll @@ -10387,7 +10387,7 @@ define void @"_ZN3syn3gen5clone69_$LT$impl$u20$core..clone..Clone$u20$for$u20$sy invoke void @_ZN5alloc5alloc18handle_alloc_error17h81706c48453a6249E(i64 noundef 8, i64 noundef 176) #26 to label %.noexc3 unwind label %12 -.noexc3: ; preds = %15 +.noexc2: ; preds = %15 unreachable "_ZN5alloc5boxed16Box$LT$T$C$A$GT$13new_uninit_in17hc76c3682fc5a0307E.exit.i": ; preds = %.noexc diff --git a/bench/syn/optimized/3r5osr990qsnm7hf.ll b/bench/syn/optimized/3r5osr990qsnm7hf.ll index ca60c329b77..0b911068993 100644 --- a/bench/syn/optimized/3r5osr990qsnm7hf.ll +++ b/bench/syn/optimized/3r5osr990qsnm7hf.ll @@ -13683,14 +13683,14 @@ common.resume: ; preds = %55, %.body, %29 call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !2360 %33 = getelementptr inbounds nuw i8, ptr %1, i64 88 %.sroa.0.0.copyload.i6.i = load i32, ptr %33, align 8, !alias.scope !2370, !noalias !2352 - %.sroa.09.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 24 - store ptr %.0.i.i, ptr %.sroa.09.sroa.4.0..sroa_idx, align 8 - %.sroa.410.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 32 - store i32 %18, ptr %.sroa.410.0..sroa_idx, align 8 - %.sroa.511.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 36 - store i32 %.sroa.0.0.copyload.i.i, ptr %.sroa.511.0..sroa_idx, align 4 - %.sroa.612.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 40 - store i32 %.sroa.0.0.copyload.i6.i, ptr %.sroa.612.0..sroa_idx, align 8 + %.sroa.08.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 24 + store ptr %.0.i.i, ptr %.sroa.08.sroa.4.0..sroa_idx, align 8 + %.sroa.49.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 32 + store i32 %18, ptr %.sroa.49.0..sroa_idx, align 8 + %.sroa.510.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 36 + store i32 %.sroa.0.0.copyload.i.i, ptr %.sroa.510.0..sroa_idx, align 4 + %.sroa.611.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 40 + store i32 %.sroa.0.0.copyload.i6.i, ptr %.sroa.611.0..sroa_idx, align 8 br label %34 34: ; preds = %"_ZN3syn3gen5clone78_$LT$impl$u20$core..clone..Clone$u20$for$u20$syn..generics..BoundLifetimes$GT$5clone17he8934f752e7ecdd4E.exit", %15 @@ -13699,7 +13699,7 @@ common.resume: ; preds = %55, %.body, %29 %35 = getelementptr inbounds nuw i8, ptr %1, i64 32 %36 = load i32, ptr %35, align 8, !range !163, !alias.scope !2373, !noalias !2376, !noundef !5 %37 = getelementptr inbounds nuw i8, ptr %1, i64 36 - %.sroa.0.0.copyload.i.i4 = load i64, ptr %37, align 4, !alias.scope !2373, !noalias !2376 + %.sroa.0.0.copyload.i.i3 = load i64, ptr %37, align 4, !alias.scope !2373, !noalias !2376 tail call void @llvm.experimental.noalias.scope.decl(metadata !2378) call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !2381 %38 = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -13747,9 +13747,9 @@ common.resume: ; preds = %55, %.body, %29 to label %common.resume unwind label %60 56: ; preds = %45, %.noexc - %.0.i.i5 = phi ptr [ null, %.noexc ], [ %46, %45 ] + %.0.i.i4 = phi ptr [ null, %.noexc ], [ %46, %45 ] %trunc.i = trunc nuw i32 %36 to i1 - %.sroa.5.0.i = select i1 %trunc.i, i64 %.sroa.0.0.copyload.i.i4, i64 undef + %.sroa.5.0.i = select i1 %trunc.i, i64 %.sroa.0.0.copyload.i.i3, i64 undef call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0, ptr noundef nonnull align 8 dereferenceable(24) %3, i64 24, i1 false), !noalias !2373 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !2381 %57 = getelementptr inbounds nuw i8, ptr %0, i64 96 @@ -13762,9 +13762,9 @@ common.resume: ; preds = %55, %.body, %29 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %59, ptr noundef nonnull align 8 dereferenceable(48) %5, i64 48, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0, i64 24, i1 false) %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 - store ptr %.0.i.i5, ptr %.sroa.4.0..sroa_idx, align 8 - %.sroa.57.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 - store i32 %36, ptr %.sroa.57.0..sroa_idx, align 8 + store ptr %.0.i.i4, ptr %.sroa.4.0..sroa_idx, align 8 + %.sroa.56.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 + store i32 %36, ptr %.sroa.56.0..sroa_idx, align 8 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 36 store i64 %.sroa.5.0.i, ptr %.sroa.6.0..sroa_idx, align 4 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0) diff --git a/bench/tev/optimized/Channel.ll b/bench/tev/optimized/Channel.ll index 95f758bc141..c94201f4281 100644 --- a/bench/tev/optimized/Channel.ll +++ b/bench/tev/optimized/Channel.ll @@ -7628,16 +7628,16 @@ _ZN4tlog6Logger12hideSeverityENS_9ESeverityE.exit: ; preds = %19, %_ZNSt3__110un ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_ZNSt3__13setINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE6insertB8ne190000INS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEEEvT_SH_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr %1, ptr %2) local_unnamed_addr #3 comdat align 2 personality ptr @__gxx_personality_v0 { %4 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %.not26 = icmp eq ptr %1, %2 - br i1 %.not26, label %._crit_edge, label %.lr.ph + %.not25 = icmp eq ptr %1, %2 + br i1 %.not25, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %3 %5 = getelementptr inbounds nuw i8, ptr %0, i64 16 br label %6 6: ; preds = %.lr.ph, %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEppB8ne190000Ev.exit - %.sroa.011.027 = phi ptr [ %1, %.lr.ph ], [ %.06.i.i, %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEppB8ne190000Ev.exit ] - %7 = getelementptr inbounds nuw i8, ptr %.sroa.011.027, i64 32 + %.sroa.011.026 = phi ptr [ %1, %.lr.ph ], [ %.06.i.i, %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEppB8ne190000Ev.exit ] + %7 = getelementptr inbounds nuw i8, ptr %.sroa.011.026, i64 32 %8 = load ptr, ptr %0, align 8 %9 = icmp eq ptr %4, %8 %.pre.i = load ptr, ptr %4, align 8 @@ -7696,7 +7696,7 @@ _ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_n %33 = getelementptr inbounds nuw i8, ptr %.024.i.i, i64 8 %34 = load ptr, ptr %33, align 8 %.not30.i.i = icmp eq ptr %34, null - br i1 %.not30.i.i, label %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit55, label %.preheader.i.i8.backedge + br i1 %.not30.i.i, label %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit54, label %.preheader.i.i8.backedge .preheader.i.i8.backedge: ; preds = %32, %28 %.024.i.i.be = phi ptr [ %29, %28 ], [ %34, %32 ] @@ -7707,24 +7707,24 @@ _ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4 %35 = icmp eq ptr %.pre.i, null %36 = getelementptr inbounds nuw i8, ptr %.sroa.041.0.i, i64 8 %spec.select = select i1 %35, ptr %4, ptr %.sroa.041.0.i - %spec.select20 = select i1 %35, ptr %4, ptr %36 - %.pr.pre = load ptr, ptr %spec.select20, align 8 + %spec.select19 = select i1 %35, ptr %4, ptr %36 + %.pr.pre = load ptr, ptr %spec.select19, align 8 %37 = icmp eq ptr %.pr.pre, null br i1 %37, label %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread, label %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE15__insert_uniqueB8ne190000ENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKS4_.exit -_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit55: ; preds = %32 +_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit54: ; preds = %32 %38 = getelementptr inbounds nuw i8, ptr %.024.i.i, i64 8 br label %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread -_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread: ; preds = %28, %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEmmB8ne190000Ev.exit.i, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit55, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit - %.0.i19 = phi ptr [ %spec.select20, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit ], [ %38, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit55 ], [ %4, %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEmmB8ne190000Ev.exit.i ], [ %.024.i.i, %28 ] - %.018 = phi ptr [ %spec.select, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit ], [ %.024.i.i, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit55 ], [ %4, %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEmmB8ne190000Ev.exit.i ], [ %.024.i.i, %28 ] +_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread: ; preds = %28, %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEmmB8ne190000Ev.exit.i, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit54, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit + %.0.i18 = phi ptr [ %spec.select19, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit ], [ %38, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit55 ], [ %4, %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEmmB8ne190000Ev.exit.i ], [ %.024.i.i, %28 ] + %.017 = phi ptr [ %spec.select, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit ], [ %.024.i.i, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread.loopexit.split.loop.exit55 ], [ %4, %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEmmB8ne190000Ev.exit.i ], [ %.024.i.i, %28 ] %39 = tail call noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #27, !noalias !324 %40 = getelementptr inbounds nuw i8, ptr %39, i64 32 %41 = load ptr, ptr %7, align 8, !noalias !324 store ptr %41, ptr %40, align 8, !noalias !324 %42 = getelementptr inbounds nuw i8, ptr %39, i64 40 - %43 = getelementptr inbounds nuw i8, ptr %.sroa.011.027, i64 40 + %43 = getelementptr inbounds nuw i8, ptr %.sroa.011.026, i64 40 %44 = load ptr, ptr %43, align 8, !noalias !324 store ptr %44, ptr %42, align 8, !noalias !324 %.not.i.i.i.i.i.i.i = icmp eq ptr %44, null @@ -7738,8 +7738,8 @@ _ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4 _ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE16__construct_nodeIJRKS4_EEENS_10unique_ptrINS_11__tree_nodeIS4_PvEENS_22__tree_node_destructorINS7_ISG_EEEEEEDpOT_.exit.i.i: ; preds = %45, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit.thread %48 = getelementptr inbounds nuw i8, ptr %39, i64 16 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %39, i8 0, i64 16, i1 false) - store ptr %.018, ptr %48, align 8 - store ptr %39, ptr %.0.i19, align 8 + store ptr %.017, ptr %48, align 8 + store ptr %39, ptr %.0.i18, align 8 %49 = load ptr, ptr %0, align 8 %50 = load ptr, ptr %49, align 8 %.not.i.i.i = icmp eq ptr %50, null @@ -7747,7 +7747,7 @@ _ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4 51: ; preds = %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE16__construct_nodeIJRKS4_EEENS_10unique_ptrINS_11__tree_nodeIS4_PvEENS_22__tree_node_destructorINS7_ISG_EEEEEEDpOT_.exit.i.i store ptr %50, ptr %0, align 8 - %.pre.i.i.i = load ptr, ptr %.0.i19, align 8 + %.pre.i.i.i = load ptr, ptr %.0.i18, align 8 br label %_ZNSt3__110unique_ptrINS_11__tree_nodeINS_10shared_ptrIN4tlog7IOutputEEEPvEENS_22__tree_node_destructorINS_9allocatorIS7_EEEEED2B8ne190000Ev.exit.i.i _ZNSt3__110unique_ptrINS_11__tree_nodeINS_10shared_ptrIN4tlog7IOutputEEEPvEENS_22__tree_node_destructorINS_9allocatorIS7_EEEEED2B8ne190000Ev.exit.i.i: ; preds = %51, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE16__construct_nodeIJRKS4_EEENS_10unique_ptrINS_11__tree_nodeIS4_PvEENS_22__tree_node_destructorINS7_ISG_EEEEEEDpOT_.exit.i.i @@ -7760,7 +7760,7 @@ _ZNSt3__110unique_ptrINS_11__tree_nodeINS_10shared_ptrIN4tlog7IOutputEEEPvEENS_2 br label %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE15__insert_uniqueB8ne190000ENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKS4_.exit _ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE15__insert_uniqueB8ne190000ENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKS4_.exit: ; preds = %30, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE12__find_equalIS4_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SC_EElEERPNS_15__tree_end_nodeISE_EESF_RKT_.exit, %_ZNSt3__110unique_ptrINS_11__tree_nodeINS_10shared_ptrIN4tlog7IOutputEEEPvEENS_22__tree_node_destructorINS_9allocatorIS7_EEEEED2B8ne190000Ev.exit.i.i - %56 = getelementptr inbounds nuw i8, ptr %.sroa.011.027, i64 8 + %56 = getelementptr inbounds nuw i8, ptr %.sroa.011.026, i64 8 %57 = load ptr, ptr %56, align 8 %.not.i.i = icmp eq ptr %57, null br i1 %.not.i.i, label %.preheader.i.i, label %.preheader8.i.i @@ -7772,7 +7772,7 @@ _ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4 br i1 %.not.i.i.i3, label %_ZNSt3__121__tree_const_iteratorINS_10shared_ptrIN4tlog7IOutputEEEPNS_11__tree_nodeIS4_PvEElEppB8ne190000Ev.exit, label %.preheader8.i.i, !llvm.loop !117 .preheader.i.i: ; preds = %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE15__insert_uniqueB8ne190000ENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKS4_.exit, %.preheader.i.i - %.0.i.i4 = phi ptr [ %60, %.preheader.i.i ], [ %.sroa.011.027, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE15__insert_uniqueB8ne190000ENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKS4_.exit ] + %.0.i.i4 = phi ptr [ %60, %.preheader.i.i ], [ %.sroa.011.026, %_ZNSt3__16__treeINS_10shared_ptrIN4tlog7IOutputEEENS_4lessIS4_EENS_9allocatorIS4_EEE15__insert_uniqueB8ne190000ENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKS4_.exit ] %59 = getelementptr inbounds nuw i8, ptr %.0.i.i4, i64 16 %60 = load ptr, ptr %59, align 8 %61 = load ptr, ptr %60, align 8 diff --git a/bench/tokenizers-rs/optimized/2mot01sr7ebui81b.ll b/bench/tokenizers-rs/optimized/2mot01sr7ebui81b.ll index 88080794fb5..a106b90b5ef 100644 --- a/bench/tokenizers-rs/optimized/2mot01sr7ebui81b.ll +++ b/bench/tokenizers-rs/optimized/2mot01sr7ebui81b.ll @@ -2311,7 +2311,7 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 "_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h82175b81c8bed1ebE.exit": ; preds = %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h82175b81c8bed1ebE.exit.sink.split", %10, %11, %14, %15 %18 = inttoptr i64 %.sroa.0.0.copyload7 to ptr - %19 = icmp ne i64 %.sroa.0.0.copyload7, 0 + %18 = icmp ne i64 %.sroa.0.0.copyload7, 0 tail call void @llvm.assume(i1 %19) call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !629 store ptr %.sroa.4.0.copyload9, ptr %3, align 8, !noalias !639 @@ -2321,7 +2321,7 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 store ptr %.sroa.8.0.copyload14, ptr %.sroa.7.8..sroa_idx, align 8, !noalias !639 %.sroa.826.8..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 24 store ptr %.sroa.10.0.copyload17, ptr %.sroa.826.8..sroa_idx, align 8, !noalias !639 - call void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4ddf78ceeca05974E"(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %18, ptr noalias noundef nonnull align 8 dereferenceable(48) %0), !noalias !640 + call void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4ddf78ceeca05974E"(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %17, ptr noalias noundef nonnull align 8 dereferenceable(48) %0), !noalias !640 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !629 ret void } @@ -2957,7 +2957,7 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 12: ; preds = %2 %13 = getelementptr inbounds nuw i8, ptr %0, i64 32 %14 = invoke { i64, i64 } @"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$14reserve_rehash17h90dff973660db6b3E.llvm.11083375685992158394"(ptr noalias noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.0, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %13, i1 noundef zeroext true) - to label %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17hab2bc2a8bf91c6c0E.exit" unwind label %17 + to label %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17hab2bc2a8bf91c6c0E.exit" unwind label %16 "_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17hab2bc2a8bf91c6c0E.exit": ; preds = %12, %2 %.sroa.7.0..sroa_idx10 = getelementptr inbounds nuw i8, ptr %1, i64 24 @@ -2972,26 +2972,26 @@ define hidden void @"_ZN121_$LT$hashbrown..map..HashMap$LT$K$C$V$C$S$C$A$GT$$u20 store ptr %.sroa.6.0.copyload9, ptr %.sroa.524.0..sroa_idx, align 8, !noalias !968 %.sroa.726.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 56 store i64 %.sroa.711.0.copyload13, ptr %.sroa.726.0..sroa_idx, align 8, !noalias !968 - %16 = icmp ne i64 %.sroa.9.0.copyload16, 0 - tail call void @llvm.assume(i1 %16) + %15 = icmp ne i64 %.sroa.9.0.copyload16, 0 + tail call void @llvm.assume(i1 %15) call void @_ZN4core4iter6traits8iterator8Iterator4fold17h4e0a4a58cad948cdE.llvm.12993343960315125427(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %3, ptr noalias noundef nonnull align 8 dereferenceable(48) %0, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %15) call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !957 ret void -"_ZN4core3ptr233drop_in_place$LT$core..iter..adapters..map..Map$LT$std..collections..hash..map..IntoIter$LT$usize$C$core..ops..range..Range$LT$usize$GT$$GT$$C$tokenizers..tokenizer..encoding..Encoding..merge_with..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h1aaba2803c648044E.exit": ; preds = %21, %17 - resume { ptr, i32 } %18 +"_ZN4core3ptr233drop_in_place$LT$core..iter..adapters..map..Map$LT$std..collections..hash..map..IntoIter$LT$usize$C$core..ops..range..Range$LT$usize$GT$$GT$$C$tokenizers..tokenizer..encoding..Encoding..merge_with..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h1aaba2803c648044E.exit": ; preds = %20, %16 + resume { ptr, i32 } %17 -17: ; preds = %12 - %18 = landingpad { ptr, i32 } +16: ; preds = %12 + %17 = landingpad { ptr, i32 } cleanup - %19 = icmp eq i64 %.sroa.0.0.copyload5, 0 - %20 = icmp eq i64 %.sroa.5.0.copyload7, 0 - %or.cond = select i1 %19, i1 true, i1 %20 - br i1 %or.cond, label %"_ZN4core3ptr233drop_in_place$LT$core..iter..adapters..map..Map$LT$std..collections..hash..map..IntoIter$LT$usize$C$core..ops..range..Range$LT$usize$GT$$GT$$C$tokenizers..tokenizer..encoding..Encoding..merge_with..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h1aaba2803c648044E.exit", label %21 + %18 = icmp eq i64 %.sroa.0.0.copyload5, 0 + %19 = icmp eq i64 %.sroa.5.0.copyload7, 0 + %or.cond = select i1 %18, i1 true, i1 %19 + br i1 %or.cond, label %"_ZN4core3ptr233drop_in_place$LT$core..iter..adapters..map..Map$LT$std..collections..hash..map..IntoIter$LT$usize$C$core..ops..range..Range$LT$usize$GT$$GT$$C$tokenizers..tokenizer..encoding..Encoding..merge_with..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h1aaba2803c648044E.exit", label %20 -21: ; preds = %17 - %22 = icmp ne ptr %.sroa.6.0.copyload9, null - tail call void @llvm.assume(i1 %22) +20: ; preds = %16 + %21 = icmp ne ptr %.sroa.6.0.copyload9, null + tail call void @llvm.assume(i1 %21) tail call void @__rust_dealloc(ptr noundef nonnull %.sroa.6.0.copyload9, i64 noundef %.sroa.5.0.copyload7, i64 noundef %.sroa.0.0.copyload5) #48, !noalias !969 br label %"_ZN4core3ptr233drop_in_place$LT$core..iter..adapters..map..Map$LT$std..collections..hash..map..IntoIter$LT$usize$C$core..ops..range..Range$LT$usize$GT$$GT$$C$tokenizers..tokenizer..encoding..Encoding..merge_with..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h1aaba2803c648044E.exit" } @@ -30958,7 +30958,7 @@ define hidden noundef i64 @_ZN10tokenizers9tokenizer16added_vocabulary15AddedVoc %70 = getelementptr inbounds nuw i8, ptr %0, i64 32 br label %108 -.lr.ph274.lr.ph: ; preds = %610 +.lr.ph266.lr.ph: ; preds = %610 %71 = getelementptr inbounds nuw i8, ptr %0, i64 192 %72 = getelementptr inbounds nuw i8, ptr %0, i64 200 %73 = getelementptr inbounds nuw i8, ptr %0, i64 216 @@ -31023,18 +31023,18 @@ define hidden noundef i64 @_ZN10tokenizers9tokenizer16added_vocabulary15AddedVoc %105 = getelementptr inbounds nuw i8, ptr %54, i64 28 %106 = getelementptr inbounds nuw i8, ptr %0, i64 16 %107 = getelementptr inbounds nuw i8, ptr %0, i64 8 - br label %.lr.ph274.outer + br label %.lr.ph266.outer 108: ; preds = %.lr.ph, %610 - %.sroa.0.0271 = phi ptr [ %1, %.lr.ph ], [ %109, %610 ] - %109 = getelementptr inbounds nuw i8, ptr %.sroa.0.0271, i64 32 - %110 = getelementptr inbounds nuw i8, ptr %.sroa.0.0271, i64 28 + %.sroa.0.0263 = phi ptr [ %1, %.lr.ph ], [ %109, %610 ] + %109 = getelementptr inbounds nuw i8, ptr %.sroa.0.0263, i64 32 + %110 = getelementptr inbounds nuw i8, ptr %.sroa.0.0263, i64 28 %111 = load i8, ptr %110, align 4, !range !1950, !noundef !4 %112 = trunc nuw i8 %111 to i1 br i1 %112, label %612, label %610 -.outer._crit_edge: ; preds = %.outer, %.loopexit439, %5 - %.0.lcssa = phi i64 [ 0, %5 ], [ %.0273.ph, %.outer ], [ %336, %.loopexit439 ] +.outer._crit_edge: ; preds = %.outer, %.loopexit431, %5 + %.0.lcssa = phi i64 [ 0, %5 ], [ %.0265.ph, %.outer ], [ %336, %.loopexit439 ] call void @llvm.experimental.noalias.scope.decl(metadata !9312) call void @llvm.lifetime.start.p0(ptr nonnull %37) call void @llvm.lifetime.start.p0(ptr nonnull %38) @@ -31639,15 +31639,15 @@ _ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary20refresh_added_toke %270 = sub i64 %2, %.0.lcssa ret i64 %270 -.lr.ph274: ; preds = %.lr.ph274.outer, %.outer - %.sroa.094.0272 = phi ptr [ %271, %.outer ], [ %.sroa.094.0272.ph, %.lr.ph274.outer ] - %271 = getelementptr inbounds nuw i8, ptr %.sroa.094.0272, i64 32 - %272 = getelementptr inbounds nuw i8, ptr %.sroa.094.0272, i64 16 +.lr.ph266: ; preds = %.lr.ph266.outer, %.outer + %.sroa.094.0264 = phi ptr [ %271, %.outer ], [ %.sroa.094.0264.ph, %.lr.ph274.outer ] + %271 = getelementptr inbounds nuw i8, ptr %.sroa.094.0264, i64 32 + %272 = getelementptr inbounds nuw i8, ptr %.sroa.094.0264, i64 16 %273 = load i64, ptr %272, align 8, !noundef !4 %274 = icmp eq i64 %273, 0 - br i1 %274, label %.loopexit439, label %275 + br i1 %274, label %.loopexit431, label %275 -275: ; preds = %.lr.ph274 +275: ; preds = %.lr.ph266 call void @llvm.lifetime.start.p0(ptr nonnull %57) call void @llvm.experimental.noalias.scope.decl(metadata !9432) %276 = load ptr, ptr %71, align 8, !alias.scope !9432, !noalias !9435, !nonnull !4, !noundef !4 @@ -31663,12 +31663,12 @@ _ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary20refresh_added_toke store ptr %279, ptr %.sroa.021.sroa.5.0..sroa_idx, align 8 store <16 x i1> %281, ptr %.sroa.021.sroa.6.0..sroa_idx, align 8 store i64 %283, ptr %.sroa.021.sroa.8.0..sroa_idx, align 8 - %284 = getelementptr inbounds nuw i8, ptr %.sroa.094.0272, i64 8 - %285 = getelementptr inbounds nuw i8, ptr %.sroa.094.0272, i64 24 - %286 = getelementptr inbounds nuw i8, ptr %.sroa.094.0272, i64 25 - %287 = getelementptr inbounds nuw i8, ptr %.sroa.094.0272, i64 26 - %288 = getelementptr inbounds nuw i8, ptr %.sroa.094.0272, i64 27 - %289 = getelementptr inbounds nuw i8, ptr %.sroa.094.0272, i64 28 + %284 = getelementptr inbounds nuw i8, ptr %.sroa.094.0264, i64 8 + %285 = getelementptr inbounds nuw i8, ptr %.sroa.094.0264, i64 24 + %286 = getelementptr inbounds nuw i8, ptr %.sroa.094.0264, i64 25 + %287 = getelementptr inbounds nuw i8, ptr %.sroa.094.0264, i64 26 + %288 = getelementptr inbounds nuw i8, ptr %.sroa.094.0264, i64 27 + %289 = getelementptr inbounds nuw i8, ptr %.sroa.094.0264, i64 28 %290 = icmp eq i64 %283, 0 br i1 %290, label %.loopexit, label %.split.i.preheader @@ -31758,15 +31758,15 @@ _ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary20refresh_added_toke %335 = icmp eq i64 %308, 0 br i1 %335, label %.loopexit, label %.split.i.preheader, !llvm.loop !9488 -.loopexit439: ; preds = %.lr.ph274, %342 - %336 = add i64 %.0273.ph, 1 +.loopexit431: ; preds = %.lr.ph266, %342 + %336 = add i64 %.0265.ph, 1 %337 = icmp eq ptr %271, %60 - br i1 %337, label %.outer._crit_edge, label %.lr.ph274.outer + br i1 %337, label %.outer._crit_edge, label %.lr.ph266.outer -.lr.ph274.outer: ; preds = %.lr.ph274.lr.ph, %.loopexit439 - %.0273.ph = phi i64 [ 0, %.lr.ph274.lr.ph ], [ %336, %.loopexit439 ] - %.sroa.094.0272.ph = phi ptr [ %1, %.lr.ph274.lr.ph ], [ %271, %.loopexit439 ] - br label %.lr.ph274 +.lr.ph266.outer: ; preds = %.lr.ph266.lr.ph, %.loopexit431 + %.0265.ph = phi i64 [ 0, %.lr.ph274.lr.ph ], [ %336, %.loopexit439 ] + %.sroa.094.0264.ph = phi ptr [ %1, %.lr.ph274.lr.ph ], [ %271, %.loopexit439 ] + br label %.lr.ph266 .loopexit: ; preds = %.backedge.i, %275 call void @llvm.lifetime.end.p0(ptr nonnull %57) @@ -31778,7 +31778,7 @@ _ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary20refresh_added_toke 342: ; preds = %"_ZN4core4iter6traits8iterator8Iterator3any5check28_$u7b$$u7b$closure$u7d$$u7d$17h23ed0fad1ca9e848E.exit.i" call void @llvm.lifetime.end.p0(ptr nonnull %57) - br label %.loopexit439 + br label %.loopexit431 343: ; preds = %.loopexit %344 = extractvalue { i32, i32 } %339, 1 @@ -31858,40 +31858,40 @@ _ZN4core4iter6traits8iterator8Iterator6reduce17hb46ff2c95a7f629bE.exit: ; preds br i1 %.not, label %"_ZN4core6option15Option$LT$T$GT$6map_or17h924039e4693ba90bE.exit", label %switch.lookup switch.lookup: ; preds = %_ZN4core4iter6traits8iterator8Iterator6reduce17hb46ff2c95a7f629bE.exit - %switch.gep431 = getelementptr inbounds nuw i64, ptr @switch.table._ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary10add_tokens17h95860d8d7ca79737E.164, i64 %377 - %switch.load432 = load i64, ptr %switch.gep431, align 8 - %380 = getelementptr inbounds nuw i8, ptr %3, i64 %switch.load432 + %switch.gep423 = getelementptr inbounds nuw i64, ptr @switch.table._ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary10add_tokens17h95860d8d7ca79737E.164, i64 %377 + %switch.load424 = load i64, ptr %switch.gep423, align 8 + %380 = getelementptr inbounds nuw i8, ptr %3, i64 %switch.load424 %.0.i.i.i = load i64, ptr %380, align 8, !noundef !4 %381 = trunc i64 %.0.i.i.i to i32 %.not.i.i = icmp ult i32 %.sroa.3.0.i, %381 - br i1 %.not.i.i, label %switch.lookup433, label %386 + br i1 %.not.i.i, label %switch.lookup425, label %386 -switch.lookup433: ; preds = %switch.lookup - %switch.gep434 = getelementptr inbounds nuw i64, ptr @switch.table._ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary10add_tokens17h95860d8d7ca79737E.164, i64 %377 - %switch.load435 = load i64, ptr %switch.gep434, align 8 - %382 = getelementptr inbounds nuw i8, ptr %3, i64 %switch.load435 +switch.lookup425: ; preds = %switch.lookup + %switch.gep426 = getelementptr inbounds nuw i64, ptr @switch.table._ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary10add_tokens17h95860d8d7ca79737E.164, i64 %377 + %switch.load427 = load i64, ptr %switch.gep426, align 8 + %382 = getelementptr inbounds nuw i8, ptr %3, i64 %switch.load427 %.0.i2.i.i = load i64, ptr %382, align 8, !noundef !4 %383 = icmp eq i64 %.0.i2.i.i, 0 - br i1 %383, label %386, label %switch.lookup436 + br i1 %383, label %386, label %switch.lookup428 -switch.lookup436: ; preds = %switch.lookup433 - %switch.gep437 = getelementptr inbounds nuw i64, ptr @switch.table._ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary10add_tokens17h95860d8d7ca79737E.164, i64 %377 - %switch.load438 = load i64, ptr %switch.gep437, align 8 - %384 = getelementptr inbounds nuw i8, ptr %3, i64 %switch.load438 +switch.lookup428: ; preds = %switch.lookup425 + %switch.gep429 = getelementptr inbounds nuw i64, ptr @switch.table._ZN10tokenizers9tokenizer16added_vocabulary15AddedVocabulary10add_tokens17h95860d8d7ca79737E.164, i64 %377 + %switch.load430 = load i64, ptr %switch.gep429, align 8 + %384 = getelementptr inbounds nuw i8, ptr %3, i64 %switch.load430 %.0.i5.i.i = load i64, ptr %384, align 8, !noundef !4 %385 = trunc i64 %.0.i5.i.i to i32 br label %"_ZN4core6option15Option$LT$T$GT$6map_or17h924039e4693ba90bE.exit" -386: ; preds = %switch.lookup433, %switch.lookup +386: ; preds = %switch.lookup425, %switch.lookup %387 = add i32 %.sroa.3.0.i, 1 br label %"_ZN4core6option15Option$LT$T$GT$6map_or17h924039e4693ba90bE.exit" -"_ZN4core6option15Option$LT$T$GT$6map_or17h924039e4693ba90bE.exit": ; preds = %386, %switch.lookup436, %_ZN4core4iter6traits8iterator8Iterator6reduce17hb46ff2c95a7f629bE.exit, %343 +"_ZN4core6option15Option$LT$T$GT$6map_or17h924039e4693ba90bE.exit": ; preds = %386, %switch.lookup428, %_ZN4core4iter6traits8iterator8Iterator6reduce17hb46ff2c95a7f629bE.exit, %343 %storemerge = phi i32 [ %344, %343 ], [ %379, %_ZN4core4iter6traits8iterator8Iterator6reduce17hb46ff2c95a7f629bE.exit ], [ %387, %386 ], [ %385, %switch.lookup436 ] call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.4) call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.5109) call void @llvm.lifetime.start.p0(ptr nonnull %55) - call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %55, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0272) + call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %55, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0264) call void @llvm.experimental.noalias.scope.decl(metadata !9542) call void @llvm.experimental.noalias.scope.decl(metadata !9545) call void @llvm.experimental.noalias.scope.decl(metadata !9547) @@ -32250,7 +32250,7 @@ switch.lookup436: ; preds = %switch.lookup433 %543 = getelementptr inbounds i8, ptr %531, i64 -32 call void @llvm.experimental.noalias.scope.decl(metadata !9718) call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.0.i.i), !noalias !9721 - call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %.sroa.0.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0272), !noalias !9721 + call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %.sroa.0.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0264), !noalias !9721 %544 = load i8, ptr %285, align 8, !range !1950, !noalias !9721, !noundef !4 %545 = load i8, ptr %286, align 1, !range !1950, !noalias !9721, !noundef !4 %546 = load i8, ptr %287, align 2, !range !1950, !noalias !9721, !noundef !4 @@ -32309,7 +32309,7 @@ switch.lookup436: ; preds = %switch.lookup433 559: ; preds = %540, %537 call void @llvm.lifetime.start.p0(ptr nonnull %7), !noalias !9737 - call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %99, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0272), !noalias !9743 + call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %99, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0264), !noalias !9743 %560 = load i8, ptr %285, align 8, !range !1950, !noalias !9744, !noundef !4 %561 = load i8, ptr %286, align 1, !range !1950, !noalias !9744, !noundef !4 %562 = load i8, ptr %287, align 2, !range !1950, !noalias !9744, !noundef !4 @@ -32370,12 +32370,12 @@ switch.lookup436: ; preds = %switch.lookup433 %591 = phi i8 [ %546, %558 ], [ %562, %"_ZN9hashbrown11rustc_entry33RustcVacantEntry$LT$K$C$V$C$A$GT$6insert17hea9b0e09d95e3c09E.exit.i" ] %592 = phi i8 [ %545, %558 ], [ %561, %"_ZN9hashbrown11rustc_entry33RustcVacantEntry$LT$K$C$V$C$A$GT$6insert17hea9b0e09d95e3c09E.exit.i" ] %593 = phi i8 [ %544, %558 ], [ %560, %"_ZN9hashbrown11rustc_entry33RustcVacantEntry$LT$K$C$V$C$A$GT$6insert17hea9b0e09d95e3c09E.exit.i" ] - %594 = call noundef zeroext i1 @"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$12contains_key17h43f4a3c62f5f5284E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %100, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0272) + %594 = call noundef zeroext i1 @"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$12contains_key17h43f4a3c62f5f5284E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %100, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0264) br i1 %594, label %.outer, label %595 595: ; preds = %"_ZN3std11collections4hash3map18Entry$LT$K$C$V$GT$14or_insert_with17h98de08265c896ec8E.exit" call void @llvm.lifetime.start.p0(ptr nonnull %54) - call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %54, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0272) + call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %54, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.094.0264) store i8 %593, ptr %101, align 8 store i8 %592, ptr %102, align 1 store i8 %591, ptr %103, align 2 @@ -32419,32 +32419,32 @@ switch.lookup436: ; preds = %switch.lookup433 .outer: ; preds = %"_ZN3std11collections4hash3map18Entry$LT$K$C$V$GT$14or_insert_with17h98de08265c896ec8E.exit", %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h1c5d237efad571bdE.exit" %609 = icmp eq ptr %271, %60 - br i1 %609, label %.outer._crit_edge, label %.lr.ph274 + br i1 %609, label %.outer._crit_edge, label %.lr.ph266 610: ; preds = %616, %612, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h1c5d237efad571bdE.exit91", %108 %611 = icmp eq ptr %109, %60 - br i1 %611, label %.lr.ph274.lr.ph, label %108 + br i1 %611, label %.lr.ph266.lr.ph, label %108 612: ; preds = %108 - %613 = getelementptr inbounds nuw i8, ptr %.sroa.0.0271, i64 16 + %613 = getelementptr inbounds nuw i8, ptr %.sroa.0.0263, i64 16 %614 = load i64, ptr %613, align 8, !noundef !4 %615 = icmp eq i64 %614, 0 br i1 %615, label %610, label %616 616: ; preds = %612 - %617 = tail call noundef zeroext i1 @"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$12contains_key17h43f4a3c62f5f5284E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %62, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.0.0271) + %617 = tail call noundef zeroext i1 @"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$12contains_key17h43f4a3c62f5f5284E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %62, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.0.0263) br i1 %617, label %610, label %618 618: ; preds = %616 call void @llvm.lifetime.start.p0(ptr nonnull %59) - call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %59, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.0.0271) - %619 = getelementptr inbounds nuw i8, ptr %.sroa.0.0271, i64 24 + call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %59, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.0.0263) + %619 = getelementptr inbounds nuw i8, ptr %.sroa.0.0263, i64 24 %620 = load i8, ptr %619, align 8, !range !1950, !noundef !4 - %621 = getelementptr inbounds nuw i8, ptr %.sroa.0.0271, i64 25 + %621 = getelementptr inbounds nuw i8, ptr %.sroa.0.0263, i64 25 %622 = load i8, ptr %621, align 1, !range !1950, !noundef !4 - %623 = getelementptr inbounds nuw i8, ptr %.sroa.0.0271, i64 26 + %623 = getelementptr inbounds nuw i8, ptr %.sroa.0.0263, i64 26 %624 = load i8, ptr %623, align 2, !range !1950, !noundef !4 - %625 = getelementptr inbounds nuw i8, ptr %.sroa.0.0271, i64 27 + %625 = getelementptr inbounds nuw i8, ptr %.sroa.0.0263, i64 27 %626 = load i8, ptr %625, align 1, !range !1950, !noundef !4 store i8 %620, ptr %64, align 8 store i8 %622, ptr %65, align 1 @@ -32486,7 +32486,7 @@ switch.lookup436: ; preds = %switch.lookup433 store i64 %639, ptr %69, align 8, !alias.scope !9764, !noalias !9767 call void @llvm.lifetime.end.p0(ptr nonnull %59) call void @llvm.lifetime.start.p0(ptr nonnull %58) - call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %58, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.0.0271) + call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h5ea99bc4fcba1a0fE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %58, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.0.0263) %640 = call noundef zeroext i1 @"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$6insert17h8400a61bde0bcc8cE"(ptr noalias noundef nonnull align 8 dereferenceable(48) %62, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %58) call void @llvm.lifetime.end.p0(ptr nonnull %58) br label %610 diff --git a/bench/tokio-rs/optimized/1rl1r5ea6bzd5c9z.ll b/bench/tokio-rs/optimized/1rl1r5ea6bzd5c9z.ll index 41211d3ec05..e8cbf446637 100644 --- a/bench/tokio-rs/optimized/1rl1r5ea6bzd5c9z.ll +++ b/bench/tokio-rs/optimized/1rl1r5ea6bzd5c9z.ll @@ -4307,11 +4307,11 @@ define hidden void @_ZN5tokio7runtime9scheduler14current_thread13CurrentThread3n call void @llvm.lifetime.start.p0(ptr nonnull %10) call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.5) call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.432) - %.sroa.432.7..sroa_idx69 = getelementptr inbounds nuw i8, ptr %.sroa.432, i64 7 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(17) %.sroa.432.7..sroa_idx69, i8 0, i64 17, i1 false), !alias.scope !383 + %.sroa.432.7..sroa_idx73 = getelementptr inbounds nuw i8, ptr %.sroa.432, i64 7 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(17) %.sroa.432.7..sroa_idx73, i8 0, i64 17, i1 false), !alias.scope !383 call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !386 invoke void @"_ZN5tokio4util12sharded_list24ShardedList$LT$L$C$T$GT$3new17h96768b3880282718E"(ptr noalias noundef nonnull sret({ { ptr, i64 }, { i64 }, i64 }) align 8 captures(none) dereferenceable(32) %8, i64 noundef 4) - to label %.noexc unwind label %54 + to label %.noexc unwind label %53 .noexc: ; preds = %6, %.noexc %15 = atomicrmw add ptr @_ZN5tokio7runtime4task4list19NEXT_OWNED_TASKS_ID17h52476638efe660d5E.llvm.18090272232049510573, i64 1 monotonic, align 8, !noalias !386 @@ -4393,7 +4393,7 @@ define hidden void @_ZN5tokio7runtime9scheduler14current_thread13CurrentThread3n 32: ; preds = %.body fence acquire invoke void @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h6e220c583711995aE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %10) - to label %.critedge unwind label %52 + to label %.critedge unwind label %51 33: ; preds = %28 %34 = landingpad { ptr, i32 } @@ -4406,10 +4406,10 @@ define hidden void @_ZN5tokio7runtime9scheduler14current_thread13CurrentThread3n call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %9, ptr noundef nonnull align 8 dereferenceable(64) %1, i64 64, i1 false) %38 = getelementptr inbounds nuw i8, ptr %9, i64 64 store i64 %36, ptr %38, align 8 - %.sroa.463.0..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 72 - store ptr %37, ptr %.sroa.463.0..sroa_idx, align 8 - %.sroa.564.0..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 80 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.564.0..sroa_idx, i8 0, i64 20, i1 false) + %.sroa.467.0..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 72 + store ptr %37, ptr %.sroa.467.0..sroa_idx, align 8 + %.sroa.568.0..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 80 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.568.0..sroa_idx, i8 0, i64 20, i1 false) %39 = getelementptr inbounds nuw i8, ptr %9, i64 100 store i32 %.0, ptr %39, align 4 %40 = getelementptr inbounds nuw i8, ptr %9, i64 104 @@ -4445,48 +4445,48 @@ define hidden void @_ZN5tokio7runtime9scheduler14current_thread13CurrentThread3n tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %0, i8 0, i64 32, i1 false) %.sroa.2.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 store i64 %50, ptr %.sroa.2.0..sroa_idx, align 8 - %51 = getelementptr inbounds nuw i8, ptr %0, i64 40 - store ptr %21, ptr %51, align 8 + %50 = getelementptr inbounds nuw i8, ptr %0, i64 40 + store ptr %21, ptr %50, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %10) ret void -52: ; preds = %.critedge.thread, %58, %32, %.noexc28, %54 - %53 = landingpad { ptr, i32 } +51: ; preds = %.critedge.thread, %57, %32, %.noexc28, %53 + %52 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #40 unreachable -54: ; preds = %6 - %55 = landingpad { ptr, i32 } +53: ; preds = %6 + %54 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr51drop_in_place$LT$tokio..runtime..config..Config$GT$17h7521fe96e75aa238E"(ptr noalias noundef nonnull align 8 dereferenceable(72) %5) #39 - to label %.thread unwind label %52 + to label %.thread unwind label %51 -.thread: ; preds = %54 - %56 = atomicrmw sub ptr %3, i64 1 release, align 8, !noalias !403 - %57 = icmp eq i64 %56, 1 - br i1 %57, label %58, label %.noexc28 +.thread: ; preds = %53 + %55 = atomicrmw sub ptr %3, i64 1 release, align 8, !noalias !403 + %56 = icmp eq i64 %55, 1 + br i1 %56, label %57, label %.noexc28 -58: ; preds = %.thread +57: ; preds = %.thread fence acquire invoke void @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hbe1f6e056c8cdec0E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %11) - to label %.noexc28 unwind label %52 + to label %.noexc28 unwind label %51 .critedge: ; preds = %32, %.body br i1 %.2, label %.critedge.thread, label %"_ZN4core3ptr51drop_in_place$LT$tokio..runtime..driver..Driver$GT$17h658a2a4ffb4cf16fE.exit" -.noexc28: ; preds = %58, %.thread +.noexc28: ; preds = %57, %.thread invoke void @"_ZN4core3ptr51drop_in_place$LT$tokio..runtime..driver..Handle$GT$17h558090c734fe91abE"(ptr noalias noundef nonnull align 8 dereferenceable(224) %2) #39 - to label %.critedge.thread unwind label %52 + to label %.critedge.thread unwind label %51 "_ZN4core3ptr51drop_in_place$LT$tokio..runtime..driver..Driver$GT$17h658a2a4ffb4cf16fE.exit": ; preds = %.critedge.thread, %.critedge - %.pn.pn425155 = phi { ptr, i32 } [ %.pn, %.critedge ], [ %.pn.pn425156, %.critedge.thread ] - resume { ptr, i32 } %.pn.pn425155 + %.pn.pn475660 = phi { ptr, i32 } [ %.pn, %.critedge ], [ %.pn.pn475661, %.critedge.thread ] + resume { ptr, i32 } %.pn.pn475660 .critedge.thread: ; preds = %24, %.noexc28, %.critedge - %.pn.pn425156 = phi { ptr, i32 } [ %.pn, %.critedge ], [ %55, %.noexc28 ], [ %25, %24 ] + %.pn.pn475661 = phi { ptr, i32 } [ %.pn, %.critedge ], [ %54, %.noexc28 ], [ %25, %24 ] invoke void @"_ZN4core3ptr55drop_in_place$LT$tokio..runtime..driver..TimeDriver$GT$17hca22e64e71c86c3dE.llvm.700930863383756518"(ptr noalias noundef nonnull align 8 dereferenceable(64) %1) - to label %"_ZN4core3ptr51drop_in_place$LT$tokio..runtime..driver..Driver$GT$17h658a2a4ffb4cf16fE.exit" unwind label %52 + to label %"_ZN4core3ptr51drop_in_place$LT$tokio..runtime..driver..Driver$GT$17h658a2a4ffb4cf16fE.exit" unwind label %51 } ; Function Attrs: nounwind nonlazybind memory(readwrite, target_mem0: none, target_mem1: none) uwtable @@ -8734,9 +8734,9 @@ define hidden void @_ZN5tokio7runtime7metrics4mock12MetricsBatch19incr_overflow_ ; Function Attrs: nonlazybind uwtable define void @_ZN5tokio4sync7barrier7Barrier3new17h2164f7da09107193E(ptr noalias noundef writeonly sret({ { ptr, i64 }, { {}, { { { i8 } }, [7 x i8], { { ptr, i64, i64 } } } }, i64 }) align 8 captures(none) dereferenceable(56) %0, i64 noundef %1, ptr noalias noundef readonly align 8 captures(none) dereferenceable(24) %2) unnamed_addr #1 personality ptr @rust_eh_personality { - %.sroa.0.i = alloca { { [8 x { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }] }, { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } } }, align 8 + %.sroa.514.i = alloca { { [8 x { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }] }, { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } } }, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.0.i), !noalias !755 - call void @"_ZN4core5array75_$LT$impl$u20$core..default..Default$u20$for$u20$$u5b$T$u3b$$u20$_$u5d$$GT$7default17h2df7d786969fa7d4E"(ptr noalias noundef nonnull sret([8 x { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }]) align 8 captures(none) dereferenceable(256) %.sroa.0.i), !noalias !755 + call void @"_ZN4core5array75_$LT$impl$u20$core..default..Default$u20$for$u20$$u5b$T$u3b$$u20$_$u5d$$GT$7default17h2df7d786969fa7d4E"(ptr noalias noundef nonnull sret([8 x { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }]) align 8 captures(none) dereferenceable(256) %.sroa.514.i), !noalias !755 %.sroa.0.256..sroa_idx.i = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 256 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0.256..sroa_idx.i, i8 0, i64 32, i1 false), !noalias !755 %4 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !758 @@ -8839,7 +8839,7 @@ define hidden noundef zeroext i1 @"_ZN72_$LT$tokio..sync..watch..Shared$LT$T$GT$ ; Function Attrs: nonlazybind uwtable define hidden void @_ZN5tokio4sync5watch7channel17h33fc22043f4b2082E(ptr noalias noundef writeonly sret({ ptr, { ptr, i64 } }) align 8 captures(none) dereferenceable(24) %0) unnamed_addr #1 personality ptr @rust_eh_personality { - %.sroa.0 = alloca { { [8 x { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }] }, { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } } }, align 8 + %.sroa.514 = alloca { { [8 x { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }] }, { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } } }, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.0) call void @"_ZN4core5array75_$LT$impl$u20$core..default..Default$u20$for$u20$$u5b$T$u3b$$u20$_$u5d$$GT$7default17h2df7d786969fa7d4E"(ptr noalias noundef nonnull sret([8 x { { { { i64 } } }, { {}, { { { i8 } }, [7 x i8], { ptr, ptr } } } }]) align 8 captures(none) dereferenceable(256) %.sroa.0) %.sroa.0.256..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0, i64 256 diff --git a/bench/tokio-rs/optimized/4zaq7yghb5wawieu.ll b/bench/tokio-rs/optimized/4zaq7yghb5wawieu.ll index cfa9a424a65..a0228ad48fc 100644 --- a/bench/tokio-rs/optimized/4zaq7yghb5wawieu.ll +++ b/bench/tokio-rs/optimized/4zaq7yghb5wawieu.ll @@ -67,8 +67,8 @@ define noalias noundef nonnull ptr @_ZN10tokio_test4task8MockTask3new17h34185b8b store i64 1, ptr %2, align 8, !noalias !9 %.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %2, i64 8 store i64 1, ptr %.sroa.4.0..sroa_idx.i, align 8, !noalias !9 - %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %2, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.5.0..sroa_idx.i, i8 0, i64 20, i1 false) + %.sroa.5.0..sroa_idx.i1 = getelementptr inbounds nuw i8, ptr %2, i64 16 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.5.0..sroa_idx.i1, i8 0, i64 20, i1 false) ret ptr %2 } @@ -109,13 +109,13 @@ _ZN3std3sys4unix5locks11futex_mutex5Mutex4lock17h2824c483f8557e8fE.exit.i: ; pre store ptr %4, ptr %2, align 8, !noalias !14 %18 = getelementptr inbounds nuw i8, ptr %2, i64 8 store i8 %.0.i.i.i.i, ptr %18, align 8, !noalias !14 - invoke void @_ZN4core6result13unwrap_failed17h03d8a5018196e1cdE(ptr noalias noundef nonnull readonly align 1 @anon.7327f57b40318b5a6f61d49f8bdf2f55.24, i64 noundef 43, ptr noundef nonnull align 1 %2, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.28) #14 + invoke void @_ZN4core6result13unwrap_failed17h03d8a5018196e1cdE(ptr noalias noundef nonnull readonly align 1 @anon.7327f57b40318b5a6f61d49f8bdf2f55.24, i64 noundef 43, ptr noundef nonnull align 1 %2, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.28) #13 to label %21 unwind label %19, !noalias !18 19: ; preds = %17 %20 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr100drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$$GT$17he533db34d4b94251E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) #15 + invoke void @"_ZN4core3ptr100drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$$GT$17he533db34d4b94251E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) #14 to label %common.resume.i unwind label %22, !noalias !18 21: ; preds = %17 @@ -140,7 +140,7 @@ common.resume.i: ; preds = %39, %19 ] 26: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17he5b3009b7675717dE.exit.i" - invoke void @_ZN4core9panicking5panic17hb837a5ebbbe5b188E(ptr noalias noundef nonnull readonly align 1 @anon.7327f57b40318b5a6f61d49f8bdf2f55.29, i64 noundef 40, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.30) #14 + invoke void @_ZN4core9panicking5panic17hb837a5ebbbe5b188E(ptr noalias noundef nonnull readonly align 1 @anon.7327f57b40318b5a6f61d49f8bdf2f55.29, i64 noundef 40, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.30) #13 to label %41 unwind label %39 27: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17he5b3009b7675717dE.exit.i" @@ -177,7 +177,7 @@ _ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.exit.i.i.i: ; preds = %35, %_Z 39: ; preds = %26 %40 = landingpad { ptr, i32 } cleanup - invoke fastcc void @"_ZN4core3ptr62drop_in_place$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$17hf0e5300e01df7278E"(ptr nonnull align 8 %4, i8 %.0.i.i.i.i) #15 + invoke fastcc void @"_ZN4core3ptr62drop_in_place$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$17hf0e5300e01df7278E"(ptr nonnull align 8 %4, i8 %.0.i.i.i.i) #14 to label %common.resume.i unwind label %42 41: ; preds = %26 @@ -186,7 +186,7 @@ _ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.exit.i.i.i: ; preds = %35, %_Z 42: ; preds = %39 %43 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - tail call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #16 + tail call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #15 unreachable _ZN10tokio_test4task11ThreadWaker8is_woken17h6ac0e4f758829393E.exit: ; preds = %_ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.exit.i.i.i, %38 @@ -232,8 +232,8 @@ _ZN10tokio_test4task8MockTask3new17h34185b8b665a38b1E.exit: ; preds = %0 store i64 1, ptr %2, align 8, !noalias !24 %.sroa.4.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %2, i64 8 store i64 1, ptr %.sroa.4.0..sroa_idx.i.i, align 8, !noalias !24 - %.sroa.5.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %2, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.5.0..sroa_idx.i.i, i8 0, i64 20, i1 false) + %.sroa.5.0..sroa_idx.i1.i = getelementptr inbounds nuw i8, ptr %2, i64 16 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.5.0..sroa_idx.i1.i, i8 0, i64 20, i1 false) ret ptr %2 } @@ -272,13 +272,13 @@ _ZN3std3sys4unix5locks11futex_mutex5Mutex4lock17h2824c483f8557e8fE.exit: ; preds store ptr %0, ptr %2, align 8, !noalias !28 %16 = getelementptr inbounds nuw i8, ptr %2, i64 8 store i8 %.0.i.i.i, ptr %16, align 8, !noalias !28 - invoke void @_ZN4core6result13unwrap_failed17h03d8a5018196e1cdE(ptr noalias noundef nonnull readonly align 1 @anon.7327f57b40318b5a6f61d49f8bdf2f55.24, i64 noundef 43, ptr noundef nonnull align 1 %2, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.27) #14 + invoke void @_ZN4core6result13unwrap_failed17h03d8a5018196e1cdE(ptr noalias noundef nonnull readonly align 1 @anon.7327f57b40318b5a6f61d49f8bdf2f55.24, i64 noundef 43, ptr noundef nonnull align 1 %2, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.27) #13 to label %19 unwind label %17, !noalias !32 17: ; preds = %15 %18 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr100drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$$GT$17he533db34d4b94251E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) #15 + invoke void @"_ZN4core3ptr100drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$$GT$17he533db34d4b94251E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) #14 to label %22 unwind label %20, !noalias !32 19: ; preds = %15 @@ -363,13 +363,13 @@ _ZN3std3sys4unix5locks11futex_mutex5Mutex4lock17h2824c483f8557e8fE.exit: ; preds store ptr %0, ptr %2, align 8, !noalias !36 %18 = getelementptr inbounds nuw i8, ptr %2, i64 8 store i8 %.0.i.i.i, ptr %18, align 8, !noalias !36 - invoke void @_ZN4core6result13unwrap_failed17h03d8a5018196e1cdE(ptr noalias noundef nonnull readonly align 1 @anon.7327f57b40318b5a6f61d49f8bdf2f55.24, i64 noundef 43, ptr noundef nonnull align 1 %2, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.31) #14 + invoke void @_ZN4core6result13unwrap_failed17h03d8a5018196e1cdE(ptr noalias noundef nonnull readonly align 1 @anon.7327f57b40318b5a6f61d49f8bdf2f55.24, i64 noundef 43, ptr noundef nonnull align 1 %2, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.31) #13 to label %21 unwind label %19, !noalias !40 19: ; preds = %17 %20 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr100drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$$GT$17he533db34d4b94251E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) #15 + invoke void @"_ZN4core3ptr100drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$$GT$17he533db34d4b94251E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) #14 to label %common.resume unwind label %22, !noalias !40 21: ; preds = %17 @@ -408,13 +408,13 @@ common.resume: ; preds = %31, %19 30: ; preds = %27 call void @llvm.lifetime.start.p0(ptr nonnull %3) store ptr null, ptr %3, align 8 - invoke void @_ZN4core9panicking13assert_failed17h342b42205c6ae7b1E(i8 noundef 0, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %4, ptr noalias noundef readonly align 8 dereferenceable(8) @anon.7327f57b40318b5a6f61d49f8bdf2f55.32, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.33) #14 + invoke void @_ZN4core9panicking13assert_failed17h342b42205c6ae7b1E(i8 noundef 0, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %4, ptr noalias noundef readonly align 8 dereferenceable(8) @anon.7327f57b40318b5a6f61d49f8bdf2f55.32, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7327f57b40318b5a6f61d49f8bdf2f55.33) #13 to label %43 unwind label %31 31: ; preds = %30, %28 %32 = landingpad { ptr, i32 } cleanup - invoke fastcc void @"_ZN4core3ptr62drop_in_place$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$17hf0e5300e01df7278E"(ptr nonnull %0, i8 %.0.i.i.i) #15 + invoke fastcc void @"_ZN4core3ptr62drop_in_place$LT$std..sync..mutex..MutexGuard$LT$usize$GT$$GT$17hf0e5300e01df7278E"(ptr nonnull %0, i8 %.0.i.i.i) #14 to label %common.resume unwind label %44 33: ; preds = %28 @@ -454,7 +454,7 @@ _ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.exit.i.i: ; preds = %40, %_ZN3 44: ; preds = %31 %45 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #16 + call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #15 unreachable 46: ; preds = %27, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17he5b3009b7675717dE.exit" @@ -538,7 +538,7 @@ define internal void @_ZN10tokio_test4task4wake17h63efacc5ff6bdcfaE(ptr noundef 13: ; preds = %8 %14 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #16 + call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #15 unreachable "_ZN4core3ptr74drop_in_place$LT$alloc..sync..Arc$LT$tokio_test..task..ThreadWaker$GT$$GT$17hb6fbe7cb8a3ab976E.exit": ; preds = %4, %8 @@ -573,7 +573,7 @@ define internal void @_ZN10tokio_test4task11wake_by_ref17h66428f1ebc504812E(ptr 10: ; preds = %8 %11 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #16 + call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #15 unreachable "_ZN4core3ptr74drop_in_place$LT$alloc..sync..Arc$LT$tokio_test..task..ThreadWaker$GT$$GT$17hb6fbe7cb8a3ab976E.exit": ; preds = %4, %8 diff --git a/bench/typst-rs/optimized/4sdr2z2pqpqxs72u.ll b/bench/typst-rs/optimized/4sdr2z2pqpqxs72u.ll index 85f2122cbdd..425001e3015 100644 --- a/bench/typst-rs/optimized/4sdr2z2pqpqxs72u.ll +++ b/bench/typst-rs/optimized/4sdr2z2pqpqxs72u.ll @@ -1714,7 +1714,7 @@ _ZN10pdf_writer6object4Dict6insert17hbdd766f8807bb414E.llvm.9476733087058070434. store i64 %1, ptr %.sroa.5.0..sroa_idx.i, align 8, !noalias !283 br label %52 -52: ; preds = %.noexc7, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" +52: ; preds = %.noexc6, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" %53 = phi i64 [ 0, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ 1, %.noexc7 ] %54 = phi i1 [ true, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ false, %.noexc7 ] %exitcond = phi i1 [ false, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ true, %.noexc7 ] @@ -1751,7 +1751,7 @@ _ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.947673308705807043 invoke void @"_ZN53_$LT$f32$u20$as$u20$pdf_writer..object..Primitive$GT$5write17h9f0f42301bbc2773E.llvm.9476733087058070434"(float noundef %57, ptr noalias noundef nonnull align 8 dereferenceable(24) %8) to label %.noexc7 unwind label %67 -.noexc7: ; preds = %_ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.9476733087058070434.exit.i.i +.noexc6: ; preds = %_ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.9476733087058070434.exit.i.i br i1 %exitcond, label %70, label %52 67: ; preds = %_ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.9476733087058070434.exit.i.i, %.noexc.i @@ -1762,7 +1762,7 @@ _ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.947673308705807043 invoke void @"_ZN4core3ptr46drop_in_place$LT$pdf_writer..object..Array$GT$17h5fab74e1742e36b0E.llvm.9476733087058070434"(ptr noalias noundef nonnull align 8 dereferenceable(16) %4) #28 to label %82 unwind label %80 -70: ; preds = %.noexc7 +70: ; preds = %.noexc6 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !283 %71 = load i64, ptr %9, align 8, !alias.scope !295, !noalias !298, !noundef !4 %72 = load i64, ptr %8, align 8, !alias.scope !295, !noalias !298, !noundef !4 @@ -1771,11 +1771,11 @@ _ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.947673308705807043 74: ; preds = %70 tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hac19cc53fa7490beE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %71), !noalias !298 - %.pre.i.i.i9 = load i64, ptr %9, align 8, !alias.scope !295, !noalias !298 + %.pre.i.i.i8 = load i64, ptr %9, align 8, !alias.scope !295, !noalias !298 br label %"_ZN4core3ptr46drop_in_place$LT$pdf_writer..object..Array$GT$17h5fab74e1742e36b0E.llvm.9476733087058070434.exit" "_ZN4core3ptr46drop_in_place$LT$pdf_writer..object..Array$GT$17h5fab74e1742e36b0E.llvm.9476733087058070434.exit": ; preds = %70, %74 - %75 = phi i64 [ %.pre.i.i.i9, %74 ], [ %71, %70 ] + %75 = phi i64 [ %.pre.i.i.i8, %74 ], [ %71, %70 ] %76 = load ptr, ptr %15, align 8, !alias.scope !295, !noalias !298, !nonnull !4, !noundef !4 %77 = getelementptr inbounds i8, ptr %76, i64 %75 store i8 93, ptr %77, align 1, !noalias !298 @@ -3297,7 +3297,7 @@ _ZN10pdf_writer6object4Dict6insert17hbdd766f8807bb414E.llvm.9476733087058070434. store i64 %1, ptr %.sroa.5.0..sroa_idx.i, align 8, !noalias !605 br label %52 -52: ; preds = %.noexc7, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" +52: ; preds = %.noexc6, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" %53 = phi i64 [ 0, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ 1, %.noexc7 ] %54 = phi i1 [ true, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ false, %.noexc7 ] %exitcond = phi i1 [ false, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h6046dd61bc06f1d8E.llvm.9476733087058070434.exit" ], [ true, %.noexc7 ] @@ -3334,7 +3334,7 @@ _ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.947673308705807043 invoke void @"_ZN53_$LT$f32$u20$as$u20$pdf_writer..object..Primitive$GT$5write17h9f0f42301bbc2773E.llvm.9476733087058070434"(float noundef %57, ptr noalias noundef nonnull align 8 dereferenceable(24) %8) to label %.noexc7 unwind label %67 -.noexc7: ; preds = %_ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.9476733087058070434.exit.i.i +.noexc6: ; preds = %_ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.9476733087058070434.exit.i.i br i1 %exitcond, label %70, label %52 67: ; preds = %_ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.9476733087058070434.exit.i.i, %.noexc.i @@ -3345,7 +3345,7 @@ _ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.947673308705807043 invoke void @"_ZN4core3ptr46drop_in_place$LT$pdf_writer..object..Array$GT$17h5fab74e1742e36b0E.llvm.9476733087058070434"(ptr noalias noundef nonnull align 8 dereferenceable(16) %4) #28 to label %82 unwind label %80 -70: ; preds = %.noexc7 +70: ; preds = %.noexc6 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !605 %71 = load i64, ptr %9, align 8, !alias.scope !617, !noalias !620, !noundef !4 %72 = load i64, ptr %8, align 8, !alias.scope !617, !noalias !620, !noundef !4 @@ -3354,11 +3354,11 @@ _ZN10pdf_writer6object3Obj9primitive17h3e38424c45ca74c1E.llvm.947673308705807043 74: ; preds = %70 tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hac19cc53fa7490beE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %71), !noalias !620 - %.pre.i.i.i9 = load i64, ptr %9, align 8, !alias.scope !617, !noalias !620 + %.pre.i.i.i8 = load i64, ptr %9, align 8, !alias.scope !617, !noalias !620 br label %"_ZN4core3ptr46drop_in_place$LT$pdf_writer..object..Array$GT$17h5fab74e1742e36b0E.llvm.9476733087058070434.exit" "_ZN4core3ptr46drop_in_place$LT$pdf_writer..object..Array$GT$17h5fab74e1742e36b0E.llvm.9476733087058070434.exit": ; preds = %70, %74 - %75 = phi i64 [ %.pre.i.i.i9, %74 ], [ %71, %70 ] + %75 = phi i64 [ %.pre.i.i.i8, %74 ], [ %71, %70 ] %76 = load ptr, ptr %15, align 8, !alias.scope !617, !noalias !620, !nonnull !4, !noundef !4 %77 = getelementptr inbounds i8, ptr %76, i64 %75 store i8 93, ptr %77, align 1, !noalias !620 @@ -5758,25 +5758,25 @@ switch.lookup: ; preds = %7 %switch.downshift = lshr i64 432912912328295424, %switch.shiftamt %switch.masked = trunc i64 %switch.downshift to i8 %20 = shl nuw nsw i8 %6, 3 - %switch.shiftamt120 = zext nneg i8 %20 to i64 - %switch.downshift121 = lshr i64 1157442765274482696, %switch.shiftamt120 - %switch.masked122 = trunc i64 %switch.downshift121 to i8 + %switch.shiftamt121 = zext nneg i8 %20 to i64 + %switch.downshift122 = lshr i64 1157442765274482696, %switch.shiftamt121 + %switch.masked123 = trunc i64 %switch.downshift122 to i8 %21 = getelementptr inbounds nuw i8, ptr %1, i64 9 %22 = load i8, ptr %21, align 1, !range !741, !noundef !4 %switch.selectcmp = icmp eq i8 %22, 2 %switch.select = select i1 %switch.selectcmp, i8 2, i8 1 - %switch.selectcmp75 = icmp eq i8 %22, 0 - %switch.select76 = select i1 %switch.selectcmp75, i8 0, i8 %switch.select + %switch.selectcmp76 = icmp eq i8 %22, 0 + %switch.select77 = select i1 %switch.selectcmp76, i8 0, i8 %switch.select %23 = getelementptr inbounds nuw i8, ptr %1, i64 8 %24 = load i8, ptr %23, align 8, !range !1053, !noundef !4 %25 = shl nuw nsw i8 %24, 3 - %switch.shiftamt125 = zext nneg i8 %25 to i48 - %switch.downshift126 = lshr i48 1116741959936, %switch.shiftamt125 - %switch.masked127 = trunc i48 %switch.downshift126 to i8 + %switch.shiftamt126 = zext nneg i8 %25 to i48 + %switch.downshift127 = lshr i48 1116741959936, %switch.shiftamt126 + %switch.masked128 = trunc i48 %switch.downshift127 to i8 %26 = shl nuw nsw i8 %24, 3 - %switch.shiftamt129 = zext nneg i8 %26 to i48 - %switch.downshift130 = lshr i48 4311810305, %switch.shiftamt129 - %switch.masked131 = trunc i48 %switch.downshift130 to i8 + %switch.shiftamt130 = zext nneg i8 %26 to i48 + %switch.downshift131 = lshr i48 4311810305, %switch.shiftamt130 + %switch.masked132 = trunc i48 %switch.downshift131 to i8 %27 = load ptr, ptr %1, align 8, !nonnull !4, !align !6, !noundef !4 call void @llvm.lifetime.start.p0(ptr nonnull %15) call void @llvm.lifetime.start.p0(ptr nonnull %14) @@ -5821,21 +5821,21 @@ switch.lookup: ; preds = %7 %.sroa.011.sroa.16.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 292 store i8 0, ptr %.sroa.011.sroa.16.0..sroa_idx, align 4 %.sroa.512.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 293 - store i8 %switch.select76, ptr %.sroa.512.0..sroa_idx, align 1 + store i8 %switch.select77, ptr %.sroa.512.0..sroa_idx, align 1 %.sroa.615.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 294 store i8 4, ptr %.sroa.615.0..sroa_idx, align 2 %.sroa.618.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 295 store i8 %switch.masked, ptr %.sroa.618.0..sroa_idx, align 1 %.sroa.721.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 296 - store i8 %switch.masked122, ptr %.sroa.721.0..sroa_idx, align 8 + store i8 %switch.masked123, ptr %.sroa.721.0..sroa_idx, align 8 %.sroa.825.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 304 store ptr %27, ptr %.sroa.825.0..sroa_idx, align 8 %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 312 - store i8 %switch.masked131, ptr %.sroa.9.0..sroa_idx, align 8 + store i8 %switch.masked132, ptr %.sroa.9.0..sroa_idx, align 8 %.sroa.11.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 313 store i16 0, ptr %.sroa.11.0..sroa_idx, align 1 %.sroa.1126.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 315 - store i8 %switch.masked127, ptr %.sroa.1126.0..sroa_idx, align 1 + store i8 %switch.masked128, ptr %.sroa.1126.0..sroa_idx, align 1 call void @"_ZN3png7encoder16Encoder$LT$W$GT$12write_header17hb102e0c8f7f16fabE"(ptr noalias noundef nonnull sret({ [4 x i32], i32, [15 x i32] }) align 8 captures(none) dereferenceable(80) %14, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(320) %13) call void @llvm.lifetime.end.p0(ptr nonnull %13) tail call void @llvm.experimental.noalias.scope.decl(metadata !1054) @@ -5846,18 +5846,18 @@ switch.lookup: ; preds = %7 br i1 %30, label %32, label %31 31: ; preds = %switch.lookup - %.sroa.4.8.copyload79 = load i8, ptr %14, align 8, !alias.scope !1060 - %.sroa.8.8..sroa_idx81 = getelementptr inbounds nuw i8, ptr %14, i64 1 - %.sroa.497.0..sroa_idx = getelementptr inbounds nuw i8, ptr %15, i64 1 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.497.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.8.8..sroa_idx81, i64 7, i1 false) - %.sroa.883.8..sroa_idx84 = getelementptr inbounds nuw i8, ptr %14, i64 8 - %.sroa.883.8.copyload85 = load ptr, ptr %.sroa.883.8..sroa_idx84, align 8, !alias.scope !1060 - %.sroa.699.0..sroa_idx = getelementptr inbounds nuw i8, ptr %15, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %.sroa.699.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(64) %28, i64 64, i1 false) + %.sroa.4.8.copyload80 = load i8, ptr %14, align 8, !alias.scope !1060 + %.sroa.8.8..sroa_idx82 = getelementptr inbounds nuw i8, ptr %14, i64 1 + %.sroa.498.0..sroa_idx = getelementptr inbounds nuw i8, ptr %15, i64 1 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.498.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.8.8..sroa_idx82, i64 7, i1 false) + %.sroa.884.8..sroa_idx85 = getelementptr inbounds nuw i8, ptr %14, i64 8 + %.sroa.884.8.copyload86 = load ptr, ptr %.sroa.884.8..sroa_idx85, align 8, !alias.scope !1060 + %.sroa.6100.0..sroa_idx = getelementptr inbounds nuw i8, ptr %15, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %.sroa.6100.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(64) %28, i64 64, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %14) - store i8 %.sroa.4.8.copyload79, ptr %15, align 8 - %.sroa.598.0..sroa_idx = getelementptr inbounds nuw i8, ptr %15, i64 8 - store ptr %.sroa.883.8.copyload85, ptr %.sroa.598.0..sroa_idx, align 8 + store i8 %.sroa.4.8.copyload80, ptr %15, align 8 + %.sroa.599.0..sroa_idx = getelementptr inbounds nuw i8, ptr %15, i64 8 + store ptr %.sroa.884.8.copyload86, ptr %.sroa.599.0..sroa_idx, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %12) invoke void @"_ZN3png7encoder15Writer$LT$W$GT$16write_image_data17h0b1b35cab97cc162E"(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %12, ptr noalias noundef nonnull align 8 dereferenceable(80) %15, ptr noalias noundef nonnull readonly align 1 %2, i64 noundef %3) to label %37 unwind label %35 @@ -5896,8 +5896,8 @@ switch.lookup: ; preds = %7 .noexc: ; preds = %40 call void @llvm.lifetime.end.p0(ptr nonnull %10), !noalias !1070 - %.sroa.41.0..sroa_idx.i78 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %41, ptr %.sroa.41.0..sroa_idx.i78, align 8, !alias.scope !1064, !noalias !1067 + %.sroa.41.0..sroa_idx.i79 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store ptr %41, ptr %.sroa.41.0..sroa_idx.i79, align 8, !alias.scope !1064, !noalias !1067 br label %42 42: ; preds = %.noexc, %37 diff --git a/bench/unicode-normalization-rs/optimized/2dhzw0mhmvlvodqn.ll b/bench/unicode-normalization-rs/optimized/2dhzw0mhmvlvodqn.ll index fec77ee2574..ec5995d22da 100644 --- a/bench/unicode-normalization-rs/optimized/2dhzw0mhmvlvodqn.ll +++ b/bench/unicode-normalization-rs/optimized/2dhzw0mhmvlvodqn.ll @@ -221,20 +221,20 @@ define { ptr, i64 } @_ZN21unicode_normalization7lookups26canonical_fully_decompo %15 = mul nuw nsw i64 %14, 2061 %16 = lshr i64 %15, 32 %17 = getelementptr inbounds nuw { i32, { i16, i16 } }, ptr @anon.1bf8cbd9db60c063894021140588f89d.5.llvm.3355593342274400970, i64 %16 - %.sroa.02.0.copyload.i = load i64, ptr %17, align 4, !alias.scope !19, !noalias !16 - %.sroa.01.0.extract.trunc.i.i.i = trunc i64 %.sroa.02.0.copyload.i to i32 + %.sroa.03.0.copyload.i = load i64, ptr %17, align 4, !alias.scope !19, !noalias !16 + %.sroa.01.0.extract.trunc.i.i.i = trunc i64 %.sroa.03.0.copyload.i to i32 %18 = icmp eq i32 %0, %.sroa.01.0.extract.trunc.i.i.i br i1 %18, label %_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit, label %_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit.thread _ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit: ; preds = %1 - %19 = lshr i64 %.sroa.02.0.copyload.i, 32 + %19 = lshr i64 %.sroa.03.0.copyload.i, 32 %.2.extract.trunc = trunc i64 %19 to i16 %20 = and i64 %19, 65535 %21 = icmp ugt i16 %.2.extract.trunc, 3406 br i1 %21, label %26, label %22 22: ; preds = %_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit - %.4.extract.shift8 = lshr i64 %.sroa.02.0.copyload.i, 48 + %.4.extract.shift8 = lshr i64 %.sroa.03.0.copyload.i, 48 %23 = sub nuw nsw i64 3406, %20 %24 = icmp samesign ult i64 %23, %.4.extract.shift8 br i1 %24, label %25, label %"_ZN21unicode_normalization7lookups26canonical_fully_decomposed28_$u7b$$u7b$closure$u7d$$u7d$17h8e2d0b0857b7106bE.llvm.3355593342274400970.exit" @@ -306,20 +306,20 @@ define { ptr, i64 } @_ZN21unicode_normalization7lookups30compatibility_fully_dec %15 = mul nuw nsw i64 %14, 3812 %16 = lshr i64 %15, 32 %17 = getelementptr inbounds nuw { i32, { i16, i16 } }, ptr @anon.1bf8cbd9db60c063894021140588f89d.11.llvm.3355593342274400970, i64 %16 - %.sroa.02.0.copyload.i = load i64, ptr %17, align 4, !alias.scope !30, !noalias !27 - %.sroa.01.0.extract.trunc.i.i.i = trunc i64 %.sroa.02.0.copyload.i to i32 + %.sroa.03.0.copyload.i = load i64, ptr %17, align 4, !alias.scope !30, !noalias !27 + %.sroa.01.0.extract.trunc.i.i.i = trunc i64 %.sroa.03.0.copyload.i to i32 %18 = icmp eq i32 %0, %.sroa.01.0.extract.trunc.i.i.i br i1 %18, label %_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit, label %_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit.thread _ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit: ; preds = %1 - %19 = lshr i64 %.sroa.02.0.copyload.i, 32 + %19 = lshr i64 %.sroa.03.0.copyload.i, 32 %.2.extract.trunc = trunc i64 %19 to i16 %20 = and i64 %19, 65535 %21 = icmp ugt i16 %.2.extract.trunc, 5735 br i1 %21, label %26, label %22 22: ; preds = %_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit - %.4.extract.shift8 = lshr i64 %.sroa.02.0.copyload.i, 48 + %.4.extract.shift8 = lshr i64 %.sroa.03.0.copyload.i, 48 %23 = sub nuw nsw i64 5735, %20 %24 = icmp samesign ult i64 %23, %.4.extract.shift8 br i1 %24, label %25, label %"_ZN21unicode_normalization7lookups30compatibility_fully_decomposed28_$u7b$$u7b$closure$u7d$$u7d$17h1cb84bb88a75d1a0E.llvm.3355593342274400970.exit" @@ -391,20 +391,20 @@ define { ptr, i64 } @_ZN21unicode_normalization7lookups36cjk_compat_variants_ful %15 = mul nuw nsw i64 %14, 1002 %16 = lshr i64 %15, 32 %17 = getelementptr inbounds nuw { i32, { i16, i16 } }, ptr @anon.1bf8cbd9db60c063894021140588f89d.16, i64 %16 - %.sroa.02.0.copyload.i = load i64, ptr %17, align 4, !alias.scope !41, !noalias !38 - %.sroa.01.0.extract.trunc.i.i.i = trunc i64 %.sroa.02.0.copyload.i to i32 + %.sroa.03.0.copyload.i = load i64, ptr %17, align 4, !alias.scope !41, !noalias !38 + %.sroa.01.0.extract.trunc.i.i.i = trunc i64 %.sroa.03.0.copyload.i to i32 %18 = icmp eq i32 %0, %.sroa.01.0.extract.trunc.i.i.i br i1 %18, label %_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit, label %_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit.thread _ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit: ; preds = %1 - %19 = lshr i64 %.sroa.02.0.copyload.i, 32 + %19 = lshr i64 %.sroa.03.0.copyload.i, 32 %.2.extract.trunc = trunc i64 %19 to i16 %20 = and i64 %19, 65535 %21 = icmp ugt i16 %.2.extract.trunc, 2004 br i1 %21, label %26, label %22 22: ; preds = %_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5b766c31ba8E.llvm.3355593342274400970.exit - %.4.extract.shift8 = lshr i64 %.sroa.02.0.copyload.i, 48 + %.4.extract.shift8 = lshr i64 %.sroa.03.0.copyload.i, 48 %23 = sub nuw nsw i64 2004, %20 %24 = icmp samesign ult i64 %23, %.4.extract.shift8 br i1 %24, label %25, label %"_ZN21unicode_normalization7lookups36cjk_compat_variants_fully_decomposed28_$u7b$$u7b$closure$u7d$$u7d$17h11e9bd9139359a17E.exit" @@ -554,8 +554,8 @@ define hidden i48 @_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5 26: ; preds = %14 %27 = getelementptr inbounds nuw { i32, { i16, i16 } }, ptr %3, i64 %23 - %.sroa.02.0.copyload = load i64, ptr %27, align 4 - %.sroa.01.0.extract.trunc.i.i = trunc i64 %.sroa.02.0.copyload to i32 + %.sroa.03.0.copyload = load i64, ptr %27, align 4 + %.sroa.01.0.extract.trunc.i.i = trunc i64 %.sroa.03.0.copyload to i32 %28 = icmp eq i32 %0, %.sroa.01.0.extract.trunc.i.i br i1 %28, label %30, label %33 @@ -564,10 +564,10 @@ define hidden i48 @_ZN21unicode_normalization12perfect_hash10mph_lookup17h9605c5 unreachable 30: ; preds = %26 - %sh.diff.i.i = lshr i64 %.sroa.02.0.copyload, 16 + %sh.diff.i.i = lshr i64 %.sroa.03.0.copyload, 16 %tr.sh.diff.i.i = trunc nuw i64 %sh.diff.i.i to i48 %.sroa.3.0.insert.shift.i.i = and i48 %tr.sh.diff.i.i, -4294967296 - %31 = trunc i64 %.sroa.02.0.copyload to i48 + %31 = trunc i64 %.sroa.03.0.copyload to i48 %32 = lshr i48 %31, 16 %.sroa.23.0.insert.shift.i.i = and i48 %32, 4294901760 %.sroa.23.0.insert.insert.i.i = or disjoint i48 %.sroa.23.0.insert.shift.i.i, %.sroa.3.0.insert.shift.i.i diff --git a/bench/wasmi-rs/optimized/1z05d6joihj04oihu2i4irshf.ll b/bench/wasmi-rs/optimized/1z05d6joihj04oihu2i4irshf.ll index 8dfe3fd802e..229f999d321 100644 --- a/bench/wasmi-rs/optimized/1z05d6joihj04oihu2i4irshf.ll +++ b/bench/wasmi-rs/optimized/1z05d6joihj04oihu2i4irshf.ll @@ -5704,8 +5704,8 @@ define internal fastcc noundef ptr @_ZN10wasmi_wast10WastRunner6invoke17h0d7c95d 63: ; preds = %54 %64 = getelementptr inbounds nuw i8, ptr %.sroa.05.013.i, i64 8 %65 = load i64, ptr %64, align 8, !alias.scope !377, !noalias !378, !noundef !9 - %.sroa.18.sroa.0.0.extract.trunc2.i.i = trunc i64 %65 to i32 - %.sroa.18.sroa.10.0.extract.shift4.i.i = and i64 %65, -4294967296 + %.sroa.18.sroa.0.0.extract.trunc1.i.i = trunc i64 %65 to i32 + %.sroa.18.sroa.10.0.extract.shift3.i.i = and i64 %65, -4294967296 br label %94 66: ; preds = %54 @@ -5716,8 +5716,8 @@ define internal fastcc noundef ptr @_ZN10wasmi_wast10WastRunner6invoke17h0d7c95d 69: ; preds = %54 %70 = getelementptr inbounds nuw i8, ptr %.sroa.05.013.i, i64 8 %71 = load i64, ptr %70, align 8, !alias.scope !377, !noalias !378, !noundef !9 - %.sroa.18.sroa.0.0.extract.trunc3.i.i = trunc i64 %71 to i32 - %.sroa.18.sroa.10.0.extract.shift6.i.i = and i64 %71, -4294967296 + %.sroa.18.sroa.0.0.extract.trunc2.i.i = trunc i64 %71 to i32 + %.sroa.18.sroa.10.0.extract.shift5.i.i = and i64 %71, -4294967296 br label %94 72: ; preds = %54 @@ -5738,8 +5738,8 @@ define internal fastcc noundef ptr @_ZN10wasmi_wast10WastRunner6invoke17h0d7c95d %.sroa.18.1.copyload.i.i = load i64, ptr %.sroa.18.1..sroa_idx.i.i, align 1, !noalias !381 %.sroa.18.sroa.0.0.extract.trunc.i.i = trunc i64 %.sroa.18.1.copyload.i.i to i32 %.sroa.18.sroa.10.0.extract.shift.i.i = and i64 %.sroa.18.1.copyload.i.i, -4294967296 - %.sroa.23.0.copyload1.i.i = load i8, ptr %.sroa.23.1..sroa_idx.i.i, align 1, !noalias !381 - %.sroa.23.0.insert.ext.i.i = zext i8 %.sroa.23.0.copyload1.i.i to i64 + %.sroa.23.1.copyload.i.i = load i8, ptr %.sroa.23.1..sroa_idx.i.i, align 1, !noalias !381 + %.sroa.23.1.insert.ext.i.i = zext i8 %.sroa.23.1.copyload.i.i to i64 br label %94 75: ; preds = %54 @@ -5784,9 +5784,9 @@ define internal fastcc noundef ptr @_ZN10wasmi_wast10WastRunner6invoke17h0d7c95d br label %94 94: ; preds = %.noexc36, %.noexc35, %.noexc34, %.noexc33, %69, %66, %63, %60 - %.sroa.18.sroa.10.0.i.i = phi i64 [ 0, %60 ], [ %.sroa.18.sroa.10.0.extract.shift4.i.i, %63 ], [ 0, %66 ], [ %.sroa.18.sroa.10.0.extract.shift6.i.i, %69 ], [ %.sroa.18.sroa.10.0.extract.shift.i.i, %.noexc33 ], [ 0, %.noexc35 ], [ 0, %.noexc36 ], [ 0, %.noexc34 ] - %.sroa.18.sroa.0.0.i.i = phi i32 [ undef, %60 ], [ %.sroa.18.sroa.0.0.extract.trunc2.i.i, %63 ], [ undef, %66 ], [ %.sroa.18.sroa.0.0.extract.trunc3.i.i, %69 ], [ %.sroa.18.sroa.0.0.extract.trunc.i.i, %.noexc33 ], [ %89, %.noexc35 ], [ %93, %.noexc36 ], [ %82, %.noexc34 ] - %.sroa.23.0.i.i = phi i64 [ undef, %60 ], [ undef, %63 ], [ undef, %66 ], [ undef, %69 ], [ %.sroa.23.0.insert.ext.i.i, %.noexc33 ], [ undef, %.noexc35 ], [ undef, %.noexc36 ], [ undef, %.noexc34 ] + %.sroa.18.sroa.10.0.i.i = phi i64 [ 0, %60 ], [ %.sroa.18.sroa.10.0.extract.shift3.i.i, %63 ], [ 0, %66 ], [ %.sroa.18.sroa.10.0.extract.shift5.i.i, %69 ], [ %.sroa.18.sroa.10.0.extract.shift.i.i, %.noexc33 ], [ 0, %.noexc35 ], [ 0, %.noexc36 ], [ 0, %.noexc34 ] + %.sroa.18.sroa.0.0.i.i = phi i32 [ undef, %60 ], [ %.sroa.18.sroa.0.0.extract.trunc1.i.i, %63 ], [ undef, %66 ], [ %.sroa.18.sroa.0.0.extract.trunc2.i.i, %69 ], [ %.sroa.18.sroa.0.0.extract.trunc.i.i, %.noexc33 ], [ %89, %.noexc35 ], [ %93, %.noexc36 ], [ %82, %.noexc34 ] + %.sroa.23.0.i.i = phi i64 [ undef, %60 ], [ undef, %63 ], [ undef, %66 ], [ undef, %69 ], [ %.sroa.23.1.insert.ext.i.i, %.noexc33 ], [ undef, %.noexc35 ], [ undef, %.noexc36 ], [ undef, %.noexc34 ] %.sroa.13.0.i.i = phi i32 [ %62, %60 ], [ undef, %63 ], [ %68, %66 ], [ undef, %69 ], [ %.sroa.13.1.copyload.i.i, %.noexc33 ], [ %88, %.noexc35 ], [ %92, %.noexc36 ], [ %81, %.noexc34 ] %.sroa.0.0.i.i = phi i8 [ 0, %60 ], [ 1, %63 ], [ 2, %66 ], [ 3, %69 ], [ 4, %.noexc33 ], [ 5, %.noexc35 ], [ 6, %.noexc36 ], [ 6, %.noexc34 ] call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.2.i, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.12.i.i, i64 3, i1 false), !noalias !372 diff --git a/bench/wasmtime-rs/optimized/1zz7jsxv168dc7km.ll b/bench/wasmtime-rs/optimized/1zz7jsxv168dc7km.ll index ced9b986cd3..33d8a3293a1 100644 --- a/bench/wasmtime-rs/optimized/1zz7jsxv168dc7km.ll +++ b/bench/wasmtime-rs/optimized/1zz7jsxv168dc7km.ll @@ -3587,7 +3587,7 @@ define { i64, ptr } @_ZN16wasmtime_runtime7threads13shared_memory12SharedMemory4 %18 = getelementptr inbounds nuw i8, ptr %10, i64 24 store i64 0, ptr %18, align 8 %19 = invoke fastcc noundef nonnull ptr @_ZN6anyhow9__private10format_err17hf904e1bf1fa96dd8E(ptr noalias noundef align 8 captures(none) dereferenceable(48) %10) - to label %24 unwind label %.thread49 + to label %24 unwind label %.thread48 20: ; preds = %4 %21 = getelementptr inbounds nuw i8, ptr %0, i64 32 @@ -3595,7 +3595,7 @@ define { i64, ptr } @_ZN16wasmtime_runtime7threads13shared_memory12SharedMemory4 %.not = icmp eq i64 %22, 0 br i1 %.not, label %48, label %44 -.thread49: ; preds = %14, %44, %48, %54, %61 +.thread48: ; preds = %14, %44, %48, %54, %61 %23 = landingpad { ptr, i32 } cleanup br label %.thread @@ -3641,14 +3641,14 @@ define { i64, ptr } @_ZN16wasmtime_runtime7threads13shared_memory12SharedMemory4 br label %"_ZN4core3ptr99drop_in_place$LT$alloc..boxed..Box$LT$dyn$u20$wasmtime_runtime..memory..RuntimeLinearMemory$GT$$GT$17hd6041e714ae6a6cdE.exit" common.resume: ; preds = %.thread, %79, %27, %35 - %common.resume.op = phi { ptr, i32 } [ %28, %35 ], [ %28, %27 ], [ %.pn48, %.thread ], [ %80, %79 ] + %common.resume.op = phi { ptr, i32 } [ %28, %35 ], [ %28, %27 ], [ %.pn47, %.thread ], [ %80, %79 ] resume { ptr, i32 } %common.resume.op 44: ; preds = %20 %45 = getelementptr inbounds nuw i8, ptr %2, i64 72 %46 = load ptr, ptr %45, align 8, !invariant.load !4, !nonnull !4 %47 = invoke { ptr, ptr } %46(ptr noundef nonnull align 1 %1) - to label %54 unwind label %.thread49 + to label %54 unwind label %.thread48 48: ; preds = %20 call void @llvm.lifetime.start.p0(ptr nonnull %9) @@ -3662,7 +3662,7 @@ common.resume: ; preds = %.thread, %79, %27, %52 = getelementptr inbounds nuw i8, ptr %9, i64 24 store i64 0, ptr %52, align 8 %53 = invoke fastcc noundef nonnull ptr @_ZN6anyhow9__private10format_err17hf904e1bf1fa96dd8E(ptr noalias noundef align 8 captures(none) dereferenceable(48) %9) - to label %88 unwind label %.thread49 + to label %88 unwind label %.thread48 54: ; preds = %44 %55 = extractvalue { ptr, ptr } %47, 0 @@ -3670,11 +3670,11 @@ common.resume: ; preds = %.thread, %79, %27, %57 = getelementptr inbounds nuw i8, ptr %56, i64 24 %58 = load ptr, ptr %57, align 8, !invariant.load !4, !nonnull !4 %59 = invoke noundef i128 %58(ptr noundef align 1 %55) - to label %60 unwind label %.thread49 + to label %60 unwind label %.thread48 60: ; preds = %54 - %.not37 = icmp eq i128 %59, -101084004025800487874573260070676418087 - br i1 %.not37, label %61, label %66 + %.not36 = icmp eq i128 %59, -101084004025800487874573260070676418087 + br i1 %.not36, label %61, label %66 61: ; preds = %60 call void @llvm.lifetime.start.p0(ptr nonnull %8) @@ -3688,7 +3688,7 @@ common.resume: ; preds = %.thread, %79, %27, %65 = getelementptr inbounds nuw i8, ptr %8, i64 24 store i64 0, ptr %65, align 8 invoke void @_ZN4core9panicking9panic_fmt17ha6effc2775a0749cE(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %8, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.f3b90557b61ab883507bc0abd2bbf363.148) #30 - to label %69 unwind label %.thread49 + to label %69 unwind label %.thread48 66: ; preds = %60 call void @llvm.lifetime.start.p0(ptr nonnull %7) @@ -3727,7 +3727,7 @@ common.resume: ; preds = %.thread, %79, %27, store i64 1, ptr %73, align 8 %74 = getelementptr inbounds nuw i8, ptr %5, i64 16 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %3, i64 32, i1 false) - %.sroa.05.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 48 + %.sroa.05.sroa.0.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 48 store i64 0, ptr %.sroa.05.sroa.4.0..sroa_idx, align 8 %.sroa.05.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 56 store i8 0, ptr %.sroa.05.sroa.5.0..sroa_idx, align 8 @@ -3781,8 +3781,8 @@ common.resume: ; preds = %.thread, %79, %27, call void @llvm.lifetime.end.p0(ptr nonnull %9) br label %25 -.thread: ; preds = %70, %.thread49 - %.pn48 = phi { ptr, i32 } [ %23, %.thread49 ], [ %71, %70 ] +.thread: ; preds = %70, %.thread48 + %.pn47 = phi { ptr, i32 } [ %23, %.thread49 ], [ %71, %70 ] invoke fastcc void @"_ZN4core3ptr99drop_in_place$LT$alloc..boxed..Box$LT$dyn$u20$wasmtime_runtime..memory..RuntimeLinearMemory$GT$$GT$17hd6041e714ae6a6cdE"(ptr nonnull %1, ptr nonnull %2) #33 to label %common.resume unwind label %86 } diff --git a/bench/wasmtime-rs/optimized/3hwarn3zl2ncla2z.ll b/bench/wasmtime-rs/optimized/3hwarn3zl2ncla2z.ll index 91783433340..c9d8092e5aa 100644 --- a/bench/wasmtime-rs/optimized/3hwarn3zl2ncla2z.ll +++ b/bench/wasmtime-rs/optimized/3hwarn3zl2ncla2z.ll @@ -9540,7 +9540,7 @@ define void @_ZN11wasi_common5table5Table3new17he834642e3350e2ffE(ptr noalias no "._ZN4core6result19Result$LT$T$C$E$GT$6expect17hffc5c0b5642fd961E.llvm.17575819821291883266.exit_crit_edge": ; preds = %1 %.pre = load i64, ptr getelementptr inbounds nuw (i8, ptr @_ZN3std4hash6random11RandomState3new4KEYS7__getit5__KEY17hc99e64f5c8d1830fE, i64 8), align 8, !noalias !3074 - %.pre17 = load i64, ptr getelementptr inbounds nuw (i8, ptr @_ZN3std4hash6random11RandomState3new4KEYS7__getit5__KEY17hc99e64f5c8d1830fE, i64 16), align 8, !noalias !3074 + %.pre18 = load i64, ptr getelementptr inbounds nuw (i8, ptr @_ZN3std4hash6random11RandomState3new4KEYS7__getit5__KEY17hc99e64f5c8d1830fE, i64 16), align 8, !noalias !3074 br label %"_ZN4core6result19Result$LT$T$C$E$GT$6expect17hffc5c0b5642fd961E.llvm.17575819821291883266.exit" 3: ; preds = %1 @@ -9552,7 +9552,7 @@ define void @_ZN11wasi_common5table5Table3new17he834642e3350e2ffE(ptr noalias no br label %"_ZN4core6result19Result$LT$T$C$E$GT$6expect17hffc5c0b5642fd961E.llvm.17575819821291883266.exit" "_ZN4core6result19Result$LT$T$C$E$GT$6expect17hffc5c0b5642fd961E.llvm.17575819821291883266.exit": ; preds = %"._ZN4core6result19Result$LT$T$C$E$GT$6expect17hffc5c0b5642fd961E.llvm.17575819821291883266.exit_crit_edge", %3 - %7 = phi i64 [ %.pre17, %"._ZN4core6result19Result$LT$T$C$E$GT$6expect17hffc5c0b5642fd961E.llvm.17575819821291883266.exit_crit_edge" ], [ %6, %3 ] + %7 = phi i64 [ %.pre18, %"._ZN4core6result19Result$LT$T$C$E$GT$6expect17hffc5c0b5642fd961E.llvm.17575819821291883266.exit_crit_edge" ], [ %6, %3 ] %8 = phi i64 [ %.pre, %"._ZN4core6result19Result$LT$T$C$E$GT$6expect17hffc5c0b5642fd961E.llvm.17575819821291883266.exit_crit_edge" ], [ %5, %3 ] %9 = add i64 %8, 1 store i64 %9, ptr getelementptr inbounds nuw (i8, ptr @_ZN3std4hash6random11RandomState3new4KEYS7__getit5__KEY17hc99e64f5c8d1830fE, i64 8), align 8, !noalias !3074 diff --git a/bench/wasmtime-rs/optimized/47jrn73ttlkllmrg.ll b/bench/wasmtime-rs/optimized/47jrn73ttlkllmrg.ll index 04565139457..df8d7cd56a1 100644 --- a/bench/wasmtime-rs/optimized/47jrn73ttlkllmrg.ll +++ b/bench/wasmtime-rs/optimized/47jrn73ttlkllmrg.ll @@ -6937,7 +6937,7 @@ _ZN11wasi_common5sched12subscription14RwSubscription5error17he1b92eb4753cb17aE.e ._crit_edge.i.i: ; preds = %434 %.pre.i.i = load ptr, ptr %57, align 8, !alias.scope !1080 - %.pre5.i.i = add i64 %435, 1 + %.pre3.i.i = add i64 %435, 1 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h59e7b7c493b16d9eE.exit.i" 438: ; preds = %434 @@ -7003,7 +7003,7 @@ _ZN5alloc7raw_vec11finish_grow17h5dc0bd592416ad76E.exit.i.i.i.i: ; preds = %452, br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h59e7b7c493b16d9eE.exit.i" "_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h59e7b7c493b16d9eE.exit.i": ; preds = %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hc4baa36907a33654E.exit.i.i", %._crit_edge.i.i - %.pre-phi.i.i = phi i64 [ %.pre5.i.i, %._crit_edge.i.i ], [ %442, %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hc4baa36907a33654E.exit.i.i" ] + %.pre-phi.i.i = phi i64 [ %.pre3.i.i, %._crit_edge.i.i ], [ %442, %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hc4baa36907a33654E.exit.i.i" ] %455 = phi ptr [ %.pre.i.i, %._crit_edge.i.i ], [ %.sroa.012.1.i.i.pn.i.i.i.i.i, %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hc4baa36907a33654E.exit.i.i" ] %456 = getelementptr inbounds { i32, i16, i16 }, ptr %455, i64 %435 store i64 %.sroa.0.0.insert.insert.i.i, ptr %456, align 4, !noalias !1080 @@ -7106,7 +7106,7 @@ _ZN5alloc7raw_vec11finish_grow17h5dc0bd592416ad76E.exit.i.i.i.i: ; preds = %452, ._crit_edge.i257.i: ; preds = %480 %.pre.i259.i = load ptr, ptr %57, align 8, !alias.scope !1111 - %.pre5.i260.i = add i64 %481, 1 + %.pre3.i260.i = add i64 %481, 1 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h59e7b7c493b16d9eE.exit275.i" 484: ; preds = %480 @@ -7172,7 +7172,7 @@ _ZN5alloc7raw_vec11finish_grow17h5dc0bd592416ad76E.exit.i.i.i266.i: ; preds = %4 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h59e7b7c493b16d9eE.exit275.i" "_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h59e7b7c493b16d9eE.exit275.i": ; preds = %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hc4baa36907a33654E.exit.i269.i", %._crit_edge.i257.i - %.pre-phi.i261.i = phi i64 [ %.pre5.i260.i, %._crit_edge.i257.i ], [ %488, %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hc4baa36907a33654E.exit.i269.i" ] + %.pre-phi.i261.i = phi i64 [ %.pre3.i260.i, %._crit_edge.i257.i ], [ %488, %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hc4baa36907a33654E.exit.i269.i" ] %501 = phi ptr [ %.pre.i259.i, %._crit_edge.i257.i ], [ %.sroa.012.1.i.i.pn.i.i.i.i267.i, %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hc4baa36907a33654E.exit.i269.i" ] %502 = getelementptr inbounds { i32, i16, i16 }, ptr %501, i64 %481 store i64 %.sroa.0.0.insert.insert.i256.i, ptr %502, align 4, !noalias !1111 diff --git a/bench/wasmtime-rs/optimized/cxg2cx8gn6v5trt.ll b/bench/wasmtime-rs/optimized/cxg2cx8gn6v5trt.ll index d5fc120ea77..5ed2da7c114 100644 --- a/bench/wasmtime-rs/optimized/cxg2cx8gn6v5trt.ll +++ b/bench/wasmtime-rs/optimized/cxg2cx8gn6v5trt.ll @@ -2705,8 +2705,8 @@ define hidden noalias noundef nonnull ptr @"_ZN11wasi_common4pipe17ReadPipe$LT$R _ZN5alloc5alloc15exchange_malloc17he27dc27497df8aaaE.llvm.7437452962731462277.exit: ; preds = %0 store i64 1, ptr %2, align 8 - %.sroa.4.0..sroa_idx12 = getelementptr inbounds nuw i8, ptr %2, i64 8 - store i64 1, ptr %.sroa.4.0..sroa_idx12, align 8 + %.sroa.4.0..sroa_idx13 = getelementptr inbounds nuw i8, ptr %2, i64 8 + store i64 1, ptr %.sroa.4.0..sroa_idx13, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 16 store i64 0, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 24 @@ -2779,8 +2779,8 @@ define hidden noalias noundef nonnull ptr @"_ZN11wasi_common4pipe18WritePipe$LT$ _ZN5alloc5alloc15exchange_malloc17he27dc27497df8aaaE.llvm.7437452962731462277.exit: ; preds = %0 store i64 1, ptr %2, align 8 - %.sroa.4.0..sroa_idx12 = getelementptr inbounds nuw i8, ptr %2, i64 8 - store i64 1, ptr %.sroa.4.0..sroa_idx12, align 8 + %.sroa.4.0..sroa_idx13 = getelementptr inbounds nuw i8, ptr %2, i64 8 + store i64 1, ptr %.sroa.4.0..sroa_idx13, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 16 store i64 0, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 24 diff --git a/bench/yalantinglibs/optimized/channel.ll b/bench/yalantinglibs/optimized/channel.ll index 5db7b734b38..67383c5d5a8 100644 --- a/bench/yalantinglibs/optimized/channel.ll +++ b/bench/yalantinglibs/optimized/channel.ll @@ -64102,14 +64102,14 @@ _ZN4asio16buffers_iteratorINS_15const_buffers_1EcE7advanceEl.exit: ; preds = %if for.cond2.preheader.lr.ph.i: ; preds = %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcE7advanceEl.exit %cmp.i74.i = icmp eq i64 %14, 0 - br i1 %cmp.i74.i, label %_ZN4asio6detail14partial_searchINS_16buffers_iteratorINS_15const_buffers_1EcEEN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairIT_bESG_SG_T0_SI_.exit, label %for.cond2.preheader.i.preheader + br i1 %cmp.i74.i, label %_ZN4asio6detail14partial_searchINS_16buffers_iteratorINS_15const_buffers_1EcEEN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairIT_bESG_SG_T0_SI_.exit, label %for.cond2.preheader.i -for.cond2.preheader.i.preheader: ; preds = %for.cond2.preheader.lr.ph.i +for.cond2.preheader.i: ; preds = %for.cond2.preheader.lr.ph.i %15 = inttoptr i64 %start_pos.sroa.0.5 to ptr br label %for.cond2.preheader.i -for.cond2.preheader.i: ; preds = %for.cond2.preheader.i.preheader, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i - %iter1.sroa.19.095.i = phi i64 [ %inc.i.i10.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i ], [ %start_pos.sroa.21.0, %for.cond2.preheader.i.preheader ] +for.cond2.preheader.i:; preds = %for.cond2.preheader.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i + %iter1.sroa.0.091.i = phi i64 [ %inc.i.i10.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i ], [ %start_pos.sroa.21.0, %for.cond2.preheader.i.preheader ] %iter1.sroa.13.094.i = phi ptr [ %iter1.sroa.13.2.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i ], [ %start_pos.sroa.16.4, %for.cond2.preheader.i.preheader ] %iter1.sroa.8.093.i = phi i64 [ %iter1.sroa.8.1.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i ], [ %start_pos.sroa.8.1, %for.cond2.preheader.i.preheader ] %iter1.sroa.5.092.i = phi i64 [ %iter1.sroa.5.1.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i ], [ %start_pos.sroa.5.5, %for.cond2.preheader.i.preheader ] @@ -64132,9 +64132,9 @@ if.then5.i: ; preds = %if.end.i13 if.end9.i: ; preds = %if.end.i13 %arrayidx.i.i.i = getelementptr inbounds i8, ptr %test_iter1.sroa.0.079.i, i64 %test_iter1.sroa.5.077.i - %16 = load i8, ptr %arrayidx.i.i.i, align 1, !noalias !671 - %17 = load i8, ptr %test_iter2.sroa.0.080.i, align 1, !noalias !671 - %cmp.not.i = icmp eq i8 %16, %17 + %15 = load i8, ptr %arrayidx.i.i.i, align 1, !noalias !671 + %16 = load i8, ptr %test_iter2.sroa.0.080.i, align 1, !noalias !671 + %cmp.not.i = icmp eq i8 %15, %16 br i1 %cmp.not.i, label %for.inc.i, label %for.inc17.i for.inc.i: ; preds = %if.end9.i @@ -64222,29 +64222,29 @@ if.then: ; preds = %_ZN4asio6detail14pa if.else: ; preds = %if.then5.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcE7advanceEl.exit, %_ZN4asio6detail14partial_searchINS_16buffers_iteratorINS_15const_buffers_1EcEEN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairIT_bESG_SG_T0_SI_.exit %cmp.i.i14111 = phi i64 [ %sub.ptr.sub.i.i, %_ZN4asio6detail14partial_searchINS_16buffers_iteratorINS_15const_buffers_1EcEEN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairIT_bESG_SG_T0_SI_.exit ], [ %sub.ptr.sub.i.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcE7advanceEl.exit ], [ %iter1.sroa.19.095.i, %if.then5.i ], [ %sub.ptr.sub.i.i, %_ZN4asio16buffers_iteratorINS_15const_buffers_1EcEppEv.exit25.i ] - %18 = load ptr, ptr %buffers_, align 8 - %call.i.i17 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %18) + %17 = load ptr, ptr %buffers_, align 8 + %call.i.i17 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %17) to label %invoke.cont.i.i19 unwind label %terminate.lpad.i.i18 invoke.cont.i.i19: ; preds = %if.else - %call3.i.i20 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv(ptr noundef nonnull align 8 dereferenceable(96) %18) + %call3.i.i20 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv(ptr noundef nonnull align 8 dereferenceable(96) %17) to label %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit unwind label %terminate.lpad.i.i18 terminate.lpad.i.i18: ; preds = %invoke.cont.i.i19, %if.else - %19 = landingpad { ptr, i32 } + %18 = landingpad { ptr, i32 } catch ptr null - %20 = extractvalue { ptr, i32 } %19, 0 - call void @__clang_call_terminate(ptr %20) #45 + %19 = extractvalue { ptr, i32 } %18, 0 + call void @__clang_call_terminate(ptr %19) #45 unreachable _ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit: ; preds = %invoke.cont.i.i19 %sub.ptr.lhs.cast.i.i21 = ptrtoint ptr %call.i.i17 to i64 %sub.ptr.rhs.cast.i.i22 = ptrtoint ptr %call3.i.i20 to i64 %sub.ptr.sub.i.i23 = sub i64 %sub.ptr.lhs.cast.i.i21, %sub.ptr.rhs.cast.i.i22 - %21 = load ptr, ptr %buffers_, align 8 - %max_size_.i.i = getelementptr inbounds nuw i8, ptr %21, i64 64 - %22 = load i64, ptr %max_size_.i.i, align 8 - %cmp = icmp eq i64 %sub.ptr.sub.i.i23, %22 + %20 = load ptr, ptr %buffers_, align 8 + %max_size_.i.i = getelementptr inbounds nuw i8, ptr %20, i64 64 + %21 = load i64, ptr %max_size_.i.i, align 8 + %cmp = icmp eq i64 %sub.ptr.sub.i.i23, %21 br i1 %cmp, label %if.then22, label %if.else24 if.then22: ; preds = %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit @@ -64253,25 +64253,25 @@ if.then22: ; preds = %_ZNK4asio19basic_st if.else24: ; preds = %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit store i64 %cmp.i.i14111, ptr %search_position_, align 8 - %buffer_.i.i = getelementptr inbounds nuw i8, ptr %21, i64 72 - %_M_end_of_storage.i.i.i = getelementptr inbounds nuw i8, ptr %21, i64 88 - %23 = load ptr, ptr %_M_end_of_storage.i.i.i, align 8 - %24 = load ptr, ptr %buffer_.i.i, align 8 - %sub.ptr.lhs.cast.i.i.i = ptrtoint ptr %23 to i64 - %sub.ptr.rhs.cast.i.i.i = ptrtoint ptr %24 to i64 + %buffer_.i.i = getelementptr inbounds nuw i8, ptr %20, i64 72 + %_M_end_of_storage.i.i.i = getelementptr inbounds nuw i8, ptr %20, i64 88 + %22 = load ptr, ptr %_M_end_of_storage.i.i.i, align 8 + %23 = load ptr, ptr %buffer_.i.i, align 8 + %sub.ptr.lhs.cast.i.i.i = ptrtoint ptr %22 to i64 + %sub.ptr.rhs.cast.i.i.i = ptrtoint ptr %23 to i64 %sub.ptr.sub.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i, %sub.ptr.rhs.cast.i.i.i - %call.i.i33 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %21) + %call.i.i33 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %20) to label %invoke.cont.i.i35 unwind label %terminate.lpad.i.i34 invoke.cont.i.i35: ; preds = %if.else24 - %call3.i.i36 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv(ptr noundef nonnull align 8 dereferenceable(96) %21) + %call3.i.i36 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv(ptr noundef nonnull align 8 dereferenceable(96) %20) to label %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit40 unwind label %terminate.lpad.i.i34 terminate.lpad.i.i34: ; preds = %invoke.cont.i.i35, %if.else24 - %25 = landingpad { ptr, i32 } + %24 = landingpad { ptr, i32 } catch ptr null - %26 = extractvalue { ptr, i32 } %25, 0 - call void @__clang_call_terminate(ptr %26) #45 + %25 = extractvalue { ptr, i32 } %24, 0 + call void @__clang_call_terminate(ptr %25) #45 unreachable _ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit40: ; preds = %invoke.cont.i.i35 @@ -64279,70 +64279,70 @@ _ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit40: ; preds = %invoke.cont.i.i3 %sub.ptr.rhs.cast.i.i38 = ptrtoint ptr %call3.i.i36 to i64 %sub.ptr.sub.i.i39.neg = sub i64 %sub.ptr.rhs.cast.i.i38, %sub.ptr.lhs.cast.i.i37 %sub = add i64 %sub.ptr.sub.i.i39.neg, %sub.ptr.sub.i.i.i - %27 = load ptr, ptr %buffers_, align 8 - %max_size_.i.i41 = getelementptr inbounds nuw i8, ptr %27, i64 64 - %28 = load i64, ptr %max_size_.i.i41, align 8 - %call.i.i42 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %27) + %26 = load ptr, ptr %buffers_, align 8 + %max_size_.i.i41 = getelementptr inbounds nuw i8, ptr %26, i64 64 + %27 = load i64, ptr %max_size_.i.i41, align 8 + %call.i.i42 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %26) to label %invoke.cont.i.i44 unwind label %terminate.lpad.i.i43 invoke.cont.i.i44: ; preds = %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit40 - %call3.i.i45 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv(ptr noundef nonnull align 8 dereferenceable(96) %27) + %call3.i.i45 = invoke noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv(ptr noundef nonnull align 8 dereferenceable(96) %26) to label %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit49 unwind label %terminate.lpad.i.i43 terminate.lpad.i.i43: ; preds = %invoke.cont.i.i44, %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit40 - %29 = landingpad { ptr, i32 } + %28 = landingpad { ptr, i32 } catch ptr null - %30 = extractvalue { ptr, i32 } %29, 0 - call void @__clang_call_terminate(ptr %30) #45 + %29 = extractvalue { ptr, i32 } %28, 0 + call void @__clang_call_terminate(ptr %29) #45 unreachable _ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit49: ; preds = %invoke.cont.i.i44 %sub.ptr.lhs.cast.i.i46 = ptrtoint ptr %call.i.i42 to i64 %sub.ptr.rhs.cast.i.i47 = ptrtoint ptr %call3.i.i45 to i64 %sub.ptr.sub.i.i48.neg = sub i64 %sub.ptr.rhs.cast.i.i47, %sub.ptr.lhs.cast.i.i46 - %sub46 = add i64 %sub.ptr.sub.i.i48.neg, %28 - %31 = call i64 @llvm.umax.i64(i64 %sub, i64 512) - %32 = call i64 @llvm.umin.i64(i64 %sub46, i64 %31) - %33 = call i64 @llvm.umin.i64(i64 %32, i64 65536) + %sub46 = add i64 %sub.ptr.sub.i.i48.neg, %27 + %30 = call i64 @llvm.umax.i64(i64 %sub, i64 512) + %31 = call i64 @llvm.umin.i64(i64 %sub46, i64 %30) + %32 = call i64 @llvm.umin.i64(i64 %31, i64 65536) br label %if.end50 if.end50: ; preds = %if.then22, %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit49, %if.then - %bytes_to_read.0 = phi i64 [ 0, %if.then ], [ 0, %if.then22 ], [ %33, %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit49 ] + %bytes_to_read.0 = phi i64 [ 0, %if.then ], [ 0, %if.then22 ], [ %32, %_ZNK4asio19basic_streambuf_refISaIcEE4sizeEv.exit49 ] %tobool51 = icmp eq i32 %start, 0 %cmp53 = icmp eq i64 %bytes_to_read.0, 0 %or.cond2 = select i1 %tobool51, i1 %cmp53, i1 false br i1 %or.cond2, label %for.end, label %if.end55 if.end55: ; preds = %if.end50 - %34 = load ptr, ptr %this, align 8 - %35 = load ptr, ptr %buffers_, align 8 - call void @_ZN4asio15basic_streambufISaIcEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(96) %35, i64 noundef %bytes_to_read.0) - %call.i.i54 = call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %35) + %33 = load ptr, ptr %this, align 8 + %34 = load ptr, ptr %buffers_, align 8 + call void @_ZN4asio15basic_streambufISaIcEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(96) %34, i64 noundef %bytes_to_read.0) + %call.i.i54 = call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %34) store ptr %call.i.i54, ptr %ref.tmp56, align 8 - %36 = getelementptr inbounds nuw i8, ptr %ref.tmp56, i64 8 - store i64 %bytes_to_read.0, ptr %36, align 8 - %37 = load ptr, ptr %34, align 8 - %add.ptr.i.i.i.i = getelementptr inbounds nuw i8, ptr %37, i64 40 - %implementation_.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %34, i64 8 - %executor_.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %34, i64 32 + %35 = getelementptr inbounds nuw i8, ptr %ref.tmp56, i64 8 + store i64 %bytes_to_read.0, ptr %35, align 8 + %36 = load ptr, ptr %33, align 8 + %add.ptr.i.i.i.i = getelementptr inbounds nuw i8, ptr %36, i64 40 + %implementation_.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %33, i64 8 + %executor_.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %33, i64 32 call void @_ZN4asio6detail28reactive_socket_service_base13async_receiveINS_17mutable_buffers_1ENS0_29read_until_delim_string_op_v1INS_19basic_stream_socketINS_2ip3tcpENS_15any_io_executorEEENS_19basic_streambuf_refISaIcEEEZZN7coro_io16async_read_untilIS9_NS_15basic_streambufISB_EEEEN12async_simple4coro4LazyISt4pairISt10error_codemEEERT_RT0_St17basic_string_viewIcSt11char_traitsIcEEENKUlSO_E_clINSD_21callback_awaitor_baseISM_NSD_16callback_awaitorISM_EEE15awaitor_handlerEEEDaSO_EUlRKSO_SQ_E_EES8_EEvRNS1_24base_implementation_typeES14_iSR_RKT1_(ptr noundef nonnull align 8 dereferenceable(24) %add.ptr.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %implementation_.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp56, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(72) %this, ptr noundef nonnull align 8 dereferenceable(56) %executor_.i.i.i.i.i) br label %sw.epilog sw.default: ; preds = %entry %buffers_60 = getelementptr inbounds nuw i8, ptr %this, i64 8 - %38 = load ptr, ptr %buffers_60, align 8 - %call.i.i57 = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv(ptr noundef nonnull align 8 dereferenceable(96) %38) - %call2.i.i = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %38) + %37 = load ptr, ptr %buffers_60, align 8 + %call.i.i57 = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv(ptr noundef nonnull align 8 dereferenceable(96) %37) + %call2.i.i = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %37) %sub.ptr.lhs.cast.i.i58 = ptrtoint ptr %call.i.i57 to i64 %sub.ptr.rhs.cast.i.i59 = ptrtoint ptr %call2.i.i to i64 %sub.ptr.sub.i.i60 = sub i64 %sub.ptr.lhs.cast.i.i58, %sub.ptr.rhs.cast.i.i59 %.sroa.speculated.i.i = tail call i64 @llvm.umin.i64(i64 %sub.ptr.sub.i.i60, i64 %bytes_transferred) %conv.i.i = trunc i64 %.sroa.speculated.i.i to i32 - tail call void @_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi(ptr noundef nonnull align 8 dereferenceable(96) %38, i32 noundef %conv.i.i) - %call4.i.i = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv(ptr noundef nonnull align 8 dereferenceable(96) %38) - %call5.i.i61 = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv(ptr noundef nonnull align 8 dereferenceable(96) %38) - %call6.i.i = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %38) - tail call void @_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %38, ptr noundef %call4.i.i, ptr noundef %call5.i.i61, ptr noundef %call6.i.i) + tail call void @_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi(ptr noundef nonnull align 8 dereferenceable(96) %37, i32 noundef %conv.i.i) + %call4.i.i = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv(ptr noundef nonnull align 8 dereferenceable(96) %37) + %call5.i.i61 = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv(ptr noundef nonnull align 8 dereferenceable(96) %37) + %call6.i.i = tail call noundef ptr @_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv(ptr noundef nonnull align 8 dereferenceable(96) %37) + tail call void @_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %37, ptr noundef %call4.i.i, ptr noundef %call5.i.i61, ptr noundef %call6.i.i) %cmp.i62 = icmp ne i32 %ec.coerce0, 0 %cmp62 = icmp eq i64 %bytes_transferred, 0 %or.cond3 = or i1 %cmp.i62, %cmp62 @@ -64350,22 +64350,22 @@ sw.default: ; preds = %entry for.end: ; preds = %sw.default, %if.end50 %search_position_70 = getelementptr inbounds nuw i8, ptr %this, i64 56 - %39 = load i64, ptr %search_position_70, align 8 - %cmp71 = icmp eq i64 %39, -1 + %38 = load i64, ptr %search_position_70, align 8 + %cmp71 = icmp eq i64 %38, -1 br i1 %cmp71, label %cond.true, label %cond.end cond.true: ; preds = %for.end - %40 = load atomic i8, ptr @_ZGVZN4asio5error17get_misc_categoryEvE8instance acquire, align 8 - %guard.uninitialized.i.i.i = icmp eq i8 %40, 0 + %39 = load atomic i8, ptr @_ZGVZN4asio5error17get_misc_categoryEvE8instance acquire, align 8 + %guard.uninitialized.i.i.i = icmp eq i8 %39, 0 br i1 %guard.uninitialized.i.i.i, label %init.check.i.i.i, label %cond.end, !prof !5 init.check.i.i.i: ; preds = %cond.true - %41 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN4asio5error17get_misc_categoryEvE8instance) #35 - %tobool.not.i.i.i = icmp eq i32 %41, 0 + %40 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN4asio5error17get_misc_categoryEvE8instance) #35 + %tobool.not.i.i.i = icmp eq i32 %40, 0 br i1 %tobool.not.i.i.i, label %cond.end, label %init.i.i.i init.i.i.i: ; preds = %init.check.i.i.i - %42 = call i32 @__cxa_atexit(ptr nonnull @_ZN4asio5error6detail13misc_categoryD2Ev, ptr nonnull @_ZZN4asio5error17get_misc_categoryEvE8instance, ptr nonnull @__dso_handle) #35 + %41 = call i32 @__cxa_atexit(ptr nonnull @_ZN4asio5error6detail13misc_categoryD2Ev, ptr nonnull @_ZZN4asio5error17get_misc_categoryEvE8instance, ptr nonnull @__dso_handle) #35 call void @__cxa_guard_release(ptr nonnull @_ZGVZN4asio5error17get_misc_categoryEvE8instance) #35 br label %cond.end @@ -64373,19 +64373,19 @@ cond.end: ; preds = %for.end, %init.i.i. %result_ec.sroa.374.0 = phi ptr [ @_ZZN4asio5error17get_misc_categoryEvE8instance, %cond.true ], [ @_ZZN4asio5error17get_misc_categoryEvE8instance, %init.check.i.i.i ], [ @_ZZN4asio5error17get_misc_categoryEvE8instance, %init.i.i.i ], [ %ec.coerce1, %for.end ] %result_ec.sroa.0.0 = phi i32 [ 3, %cond.true ], [ 3, %init.check.i.i.i ], [ 3, %init.i.i.i ], [ %ec.coerce0, %for.end ] %cmp.i64.not = icmp eq i32 %ec.coerce0, 0 - %43 = load i64, ptr %search_position_70, align 8 - %cmp75 = icmp eq i64 %43, -1 - %spec.select = select i1 %cmp75, i64 0, i64 %43 + %42 = load i64, ptr %search_position_70, align 8 + %cmp75 = icmp eq i64 %42, -1 + %spec.select = select i1 %cmp75, i64 0, i64 %42 %cond = select i1 %cmp.i64.not, i64 %spec.select, i64 0 %handler_ = getelementptr inbounds nuw i8, ptr %this, i64 64 - %44 = load ptr, ptr %handler_, align 8 - %arg_.i.i.i = getelementptr inbounds nuw i8, ptr %44, i64 8 + %43 = load ptr, ptr %handler_, align 8 + %arg_.i.i.i = getelementptr inbounds nuw i8, ptr %43, i64 8 store i32 %result_ec.sroa.0.0, ptr %arg_.i.i.i, align 8 - %result_ec.sroa.374.0.arg_.i.i.i.sroa_idx = getelementptr inbounds nuw i8, ptr %44, i64 16 + %result_ec.sroa.374.0.arg_.i.i.i.sroa_idx = getelementptr inbounds nuw i8, ptr %43, i64 16 store ptr %result_ec.sroa.374.0, ptr %result_ec.sroa.374.0.arg_.i.i.i.sroa_idx, align 8 - %second3.i.i.i.i = getelementptr inbounds nuw i8, ptr %44, i64 24 + %second3.i.i.i.i = getelementptr inbounds nuw i8, ptr %43, i64 24 store i64 %cond, ptr %second3.i.i.i.i, align 8 - %45 = load ptr, ptr %handler_, align 8 + %44 = load ptr, ptr %handler_, align 8 %46 = load ptr, ptr %45, align 8 %47 = load ptr, ptr %46, align 8 call fastcc void %47(ptr nonnull %46) diff --git a/bench/zed-rs/optimized/bwf7odsfkes1o9vw37iz67e4b.ll b/bench/zed-rs/optimized/bwf7odsfkes1o9vw37iz67e4b.ll index 4d4620af34f..083364a2986 100644 --- a/bench/zed-rs/optimized/bwf7odsfkes1o9vw37iz67e4b.ll +++ b/bench/zed-rs/optimized/bwf7odsfkes1o9vw37iz67e4b.ll @@ -1705,8 +1705,8 @@ default.unreachable: ; preds = %.noexc131.i %.sroa.5244.0..sroa_idx245 = getelementptr inbounds nuw i8, ptr %51, i64 8 br label %340 -.body.i: ; preds = %.loopexit542.i.loopexit, %.loopexit542.i.loopexit.split-lp, %696, %687, %541, %459, %.loopexit.split-lp543.i - %.pn.i = phi { ptr, i32 } [ %697, %696 ], [ %lpad.phi.i92, %541 ], [ %lpad.thr_comm.split-lp.i95, %459 ], [ %688, %687 ], [ %lpad.loopexit.split-lp545.i, %.loopexit.split-lp543.i ], [ %lpad.loopexit393, %.loopexit542.i.loopexit ], [ %lpad.loopexit.split-lp394, %.loopexit542.i.loopexit.split-lp ] +.body.i: ; preds = %.loopexit547.i.loopexit, %.loopexit547.i.loopexit.split-lp, %696, %687, %541, %459, %.loopexit.split-lp548.i + %.pn.i = phi { ptr, i32 } [ %697, %696 ], [ %lpad.phi.i92, %541 ], [ %lpad.thr_comm.split-lp.i95, %459 ], [ %688, %687 ], [ %lpad.loopexit.split-lp550.i, %.loopexit.split-lp543.i ], [ %lpad.loopexit393, %.loopexit542.i.loopexit ], [ %lpad.loopexit.split-lp394, %.loopexit542.i.loopexit.split-lp ] %337 = load i64, ptr %58, align 8, !range !147, !alias.scope !242, !noalias !238, !noundef !4 %338 = icmp eq i64 %337, 2 br i1 %338, label %"_ZN4core3ptr71drop_in_place$LT$core..option..Option$LT$git..blame..BlameEntry$GT$$GT$17h8156f4e530ffc9beE.exit.i", label %339 @@ -1715,18 +1715,18 @@ default.unreachable: ; preds = %.noexc131.i invoke void @"_ZN4core3ptr43drop_in_place$LT$git..blame..BlameEntry$GT$17hf9b82a9ebaaab84dE"(ptr noalias noundef nonnull align 8 dereferenceable(280) %58) to label %"_ZN4core3ptr71drop_in_place$LT$core..option..Option$LT$git..blame..BlameEntry$GT$$GT$17h8156f4e530ffc9beE.exit.i" unwind label %542, !noalias !245 -.loopexit542.i.loopexit: ; preds = %340, %359, %376, %388, %401, %415, %424, %548, %558, %566, %590, %596, %607, %614, %648, %655, %662, %691, %598, %583 +.loopexit547.i.loopexit: ; preds = %340, %359, %376, %388, %401, %415, %424, %548, %558, %566, %590, %596, %607, %614, %648, %655, %662, %691, %598, %583 %lpad.loopexit393 = landingpad { ptr, i32 } cleanup br label %.body.i -.loopexit542.i.loopexit.split-lp: ; preds = %.invoke +.loopexit547.i.loopexit.split-lp: ; preds = %.invoke %lpad.loopexit.split-lp394 = landingpad { ptr, i32 } cleanup br label %.body.i -.loopexit.split-lp543.i: ; preds = %.invoke512, %.invoke.i, %418, %409, %395, %.thread.i.i, %.thread169.i.i - %lpad.loopexit.split-lp545.i = landingpad { ptr, i32 } +.loopexit.split-lp548.i: ; preds = %.invoke512, %.invoke.i, %418, %409, %395, %.thread.i.i, %.thread170.i.i + %lpad.loopexit.split-lp550.i = landingpad { ptr, i32 } cleanup br label %.body.i @@ -1735,7 +1735,7 @@ default.unreachable: ; preds = %.noexc131.i %.val.i.i = load ptr, ptr %.sroa.3.0..sroa_idx.i80, align 8, !alias.scope !246, !noalias !238, !nonnull !4, !align !5, !noundef !4 call void @llvm.lifetime.start.p0(ptr nonnull %47), !noalias !249 invoke fastcc void @"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h9816e5a8d5bad087E"(ptr noalias noundef align 8 captures(none) dereferenceable(24) %47, ptr noalias noundef align 8 dereferenceable(48) %.sroa.3.0..sroa_idx.i80) - to label %.noexc94.i unwind label %.loopexit542.i.loopexit, !noalias !245 + to label %.noexc94.i unwind label %.loopexit547.i.loopexit, !noalias !245 .noexc94.i: ; preds = %340 %341 = load i64, ptr %47, align 8, !range !45, !noalias !249, !noundef !4 @@ -1793,7 +1793,7 @@ default.unreachable: ; preds = %.noexc131.i %.sroa.0.1.i.ph.i = phi ptr [ %349, %._crit_edge.i.i.i ], [ %354, %350 ] call void @llvm.lifetime.end.p0(ptr nonnull %47), !noalias !249 %360 = invoke { ptr, i64 } @"_ZN89_$LT$core..str..LinesMap$u20$as$u20$core..ops..function..Fn$LT$$LP$$RF$str$C$$RP$$GT$$GT$4call17h04106af659525decE.llvm.11431389067375718170"(ptr noalias noundef nonnull readonly align 1 %274, ptr noalias noundef nonnull readonly align 1 %.sroa.0.1.i.ph.i, i64 noundef %.sroa.4.1.i.ph.i) - to label %"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17h37ef0c7dd9e1195cE.exit.i" unwind label %.loopexit542.i.loopexit, !noalias !245 + to label %"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17h37ef0c7dd9e1195cE.exit.i" unwind label %.loopexit547.i.loopexit, !noalias !245 "_ZN4core3ptr71drop_in_place$LT$core..option..Option$LT$git..blame..BlameEntry$GT$$GT$17h8156f4e530ffc9beE.exit.i": ; preds = %362, %339, %.body.i %.sroa.031.0.i = phi i1 [ %363, %362 ], [ true, %339 ], [ true, %.body.i ] @@ -1852,18 +1852,18 @@ default.unreachable: ; preds = %.noexc131.i %377 = extractvalue { ptr, i64 } %373, 1 call void @llvm.lifetime.start.p0(ptr nonnull %45), !noalias !257 invoke void @"_ZN55_$LT$git..Oid$u20$as$u20$core..str..traits..FromStr$GT$8from_str17h90864d37b363e480E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %45, ptr noalias noundef nonnull readonly align 1 %374, i64 noundef %377) - to label %.noexc102.i unwind label %.loopexit542.i.loopexit, !noalias !245 + to label %.noexc102.i unwind label %.loopexit547.i.loopexit, !noalias !245 .noexc102.i: ; preds = %376 %378 = load i8, ptr %45, align 8, !range !16, !noalias !257, !noundef !4 %trunc.i101.i = trunc nuw i8 %378 to i1 - br i1 %trunc.i101.i, label %.thread169.i.i, label %379 + br i1 %trunc.i101.i, label %.thread170.i.i, label %379 -.thread169.i.i: ; preds = %.noexc102.i +.thread170.i.i: ; preds = %.noexc102.i invoke void @"_ZN6anyhow5error65_$LT$impl$u20$core..ops..drop..Drop$u20$for$u20$anyhow..Error$GT$4drop17ha085256a7583661aE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %.sroa.483.0..sroa_idx.i.i) - to label %.noexc103.i unwind label %.loopexit.split-lp543.i, !noalias !245 + to label %.noexc103.i unwind label %.loopexit.split-lp548.i, !noalias !245 -.noexc103.i: ; preds = %.thread169.i.i +.noexc103.i: ; preds = %.thread170.i.i call void @llvm.lifetime.end.p0(ptr nonnull %45), !noalias !257 br label %.thread.i.i @@ -1893,7 +1893,7 @@ default.unreachable: ; preds = %.noexc131.i %386 = getelementptr inbounds nuw i8, ptr %44, i64 24 store i64 0, ptr %386, align 8, !noalias !257 %387 = invoke fastcc noundef nonnull ptr @_ZN6anyhow9__private10format_err17h72a43e378e179026E(ptr noalias noundef align 8 captures(none) dereferenceable(48) %44) - to label %.noexc104.i unwind label %.loopexit.split-lp543.i, !noalias !245 + to label %.noexc104.i unwind label %.loopexit.split-lp548.i, !noalias !245 .noexc104.i: ; preds = %.thread.i.i call void @llvm.lifetime.end.p0(ptr nonnull %44), !noalias !257 @@ -1904,7 +1904,7 @@ default.unreachable: ; preds = %.noexc131.i 388: ; preds = %379 %389 = extractvalue { ptr, i64 } %380, 1 %390 = invoke i64 @"_ZN4core3num60_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$u32$GT$8from_str17hcb16b30e8490ab70E"(ptr noalias noundef nonnull readonly align 1 %381, i64 noundef %389) - to label %.noexc105.i unwind label %.loopexit542.i.loopexit, !noalias !245 + to label %.noexc105.i unwind label %.loopexit547.i.loopexit, !noalias !245 .noexc105.i: ; preds = %388 %trunc137.i.i = trunc i64 %390 to i1 @@ -1930,7 +1930,7 @@ default.unreachable: ; preds = %.noexc131.i %399 = getelementptr inbounds nuw i8, ptr %43, i64 24 store i64 0, ptr %399, align 8, !noalias !257 %400 = invoke fastcc noundef nonnull ptr @_ZN6anyhow9__private10format_err17h72a43e378e179026E(ptr noalias noundef align 8 captures(none) dereferenceable(48) %43) - to label %.noexc106.i unwind label %.loopexit.split-lp543.i, !noalias !245 + to label %.noexc106.i unwind label %.loopexit.split-lp548.i, !noalias !245 .noexc106.i: ; preds = %395 call void @llvm.lifetime.end.p0(ptr nonnull %43), !noalias !257 @@ -1939,7 +1939,7 @@ default.unreachable: ; preds = %.noexc131.i 401: ; preds = %391 %402 = extractvalue { ptr, i64 } %392, 1 %403 = invoke i64 @"_ZN4core3num60_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$u32$GT$8from_str17hcb16b30e8490ab70E"(ptr noalias noundef nonnull readonly align 1 %393, i64 noundef %402) - to label %.noexc107.i unwind label %.loopexit542.i.loopexit, !noalias !245 + to label %.noexc107.i unwind label %.loopexit547.i.loopexit, !noalias !245 .noexc107.i: ; preds = %401 %trunc139.i.i = trunc i64 %403 to i1 @@ -1966,7 +1966,7 @@ default.unreachable: ; preds = %.noexc131.i %413 = getelementptr inbounds nuw i8, ptr %42, i64 24 store i64 0, ptr %413, align 8, !noalias !257 %414 = invoke fastcc noundef nonnull ptr @_ZN6anyhow9__private10format_err17h72a43e378e179026E(ptr noalias noundef align 8 captures(none) dereferenceable(48) %42) - to label %.noexc108.i unwind label %.loopexit.split-lp543.i, !noalias !245 + to label %.noexc108.i unwind label %.loopexit.split-lp548.i, !noalias !245 .noexc108.i: ; preds = %409 call void @llvm.lifetime.end.p0(ptr nonnull %42), !noalias !257 @@ -1975,7 +1975,7 @@ default.unreachable: ; preds = %.noexc131.i 415: ; preds = %404 %416 = extractvalue { ptr, i64 } %406, 1 %417 = invoke i64 @"_ZN4core3num60_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$u32$GT$8from_str17hcb16b30e8490ab70E"(ptr noalias noundef nonnull readonly align 1 %407, i64 noundef %416) - to label %.noexc109.i unwind label %.loopexit542.i.loopexit, !noalias !245 + to label %.noexc109.i unwind label %.loopexit547.i.loopexit, !noalias !245 .noexc109.i: ; preds = %415 %trunc142.i.i = trunc i64 %417 to i1 @@ -1993,7 +1993,7 @@ default.unreachable: ; preds = %.noexc131.i %422 = getelementptr inbounds nuw i8, ptr %41, i64 24 store i64 0, ptr %422, align 8, !noalias !257 %423 = invoke fastcc noundef nonnull ptr @_ZN6anyhow9__private10format_err17h72a43e378e179026E(ptr noalias noundef align 8 captures(none) dereferenceable(48) %41) - to label %.noexc110.i unwind label %.loopexit.split-lp543.i, !noalias !245 + to label %.noexc110.i unwind label %.loopexit.split-lp548.i, !noalias !245 .noexc110.i: ; preds = %418 call void @llvm.lifetime.end.p0(ptr nonnull %41), !noalias !257 @@ -2010,7 +2010,7 @@ default.unreachable: ; preds = %.noexc131.i store i8 1, ptr %279, align 8, !alias.scope !265, !noalias !268 store i32 32, ptr %280, align 8, !alias.scope !265, !noalias !268 invoke fastcc void @"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h9816e5a8d5bad087E"(ptr noalias noundef align 8 captures(none) dereferenceable(24) %40, ptr noalias noundef align 8 dereferenceable(48) %39) - to label %.noexc112.i unwind label %.loopexit542.i.loopexit, !noalias !245 + to label %.noexc112.i unwind label %.loopexit547.i.loopexit, !noalias !245 .noexc112.i: ; preds = %424 %425 = load i64, ptr %40, align 8, !range !45, !noalias !261, !noundef !4 @@ -2522,14 +2522,14 @@ default.unreachable: ; preds = %.noexc131.i %551 = sub nuw i64 %367, %550 %552 = getelementptr inbounds i8, ptr %366, i64 %550 %553 = invoke noundef zeroext i1 @_ZN4git23oid3Oid7is_zero17h2a10fc8cf911800aE(ptr noalias noundef nonnull readonly align 1 dereferenceable(20) %283) - to label %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i unwind label %.loopexit542.i.loopexit, !noalias !245 + to label %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i unwind label %.loopexit547.i.loopexit, !noalias !245 554: ; preds = %.noexc112.i call void @llvm.lifetime.end.p0(ptr nonnull %40), !noalias !261 call void @llvm.lifetime.end.p0(ptr nonnull %39), !noalias !261 br label %.backedge.i -.backedge.i: ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h4bcc0dc585979a82E.exit.i", %.thread520.i, %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit288.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit286.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit278.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit270.i", %619, %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit260.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit252.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit250.i", %595, %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit.i", %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit248.i", %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit244.i", %580, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit236.i", %577, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit228.i", %574, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit220.i", %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit210.i", %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit202.i", %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i, %554, %"_ZN4core3ptr71drop_in_place$LT$core..option..Option$LT$git..blame..BlameEntry$GT$$GT$17h8156f4e530ffc9beE.exit122.i" +.backedge.i: ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h4bcc0dc585979a82E.exit.i", %.thread525.i, %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit288.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit286.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit278.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit270.i", %619, %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit260.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit252.i", %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit250.i", %595, %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit.i", %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit248.i", %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit244.i", %580, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit236.i", %577, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit228.i", %574, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit220.i", %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit210.i", %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit202.i", %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i, %554, %"_ZN4core3ptr71drop_in_place$LT$core..option..Option$LT$git..blame..BlameEntry$GT$$GT$17h8156f4e530ffc9beE.exit122.i" %555 = load i8, ptr %.sroa.552.0..sroa_idx.i, align 1, !range !16, !alias.scope !433, !noalias !238, !noundef !4 %556 = trunc nuw i8 %555 to i1 br i1 %556, label %.thread.i, label %340 @@ -2553,7 +2553,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 558: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit.i86" call void @llvm.lifetime.start.p0(ptr nonnull %30), !noalias !439 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h7c0e6e9ccb6a7ce0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %30, i64 noundef %551, i1 noundef zeroext false) - to label %.noexc205.i unwind label %.loopexit542.i.loopexit, !noalias !245 + to label %.noexc205.i unwind label %.loopexit547.i.loopexit, !noalias !245 .noexc205.i: ; preds = %558 %559 = load i64, ptr %30, align 8, !range !45, !noalias !439, !noundef !4 @@ -2569,7 +2569,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 %563 = phi i64 [ %560, %561 ], [ %568, %569 ], [ %609, %610 ], [ %650, %651 ], [ %657, %658 ], [ %664, %665 ] %564 = phi i64 [ %562, %561 ], [ %570, %569 ], [ %611, %610 ], [ %652, %651 ], [ %659, %658 ], [ %666, %665 ] invoke void @_ZN5alloc7raw_vec12handle_error17hc0e4a0ae60df49a1E(i64 noundef %563, i64 %564) #17 - to label %.cont.i unwind label %.loopexit.split-lp543.i, !noalias !245 + to label %.cont.i unwind label %.loopexit.split-lp548.i, !noalias !245 .cont.i: ; preds = %.invoke.i unreachable @@ -2582,7 +2582,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 566: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit202.i" call void @llvm.lifetime.start.p0(ptr nonnull %29), !noalias !447 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h7c0e6e9ccb6a7ce0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %29, i64 noundef %551, i1 noundef zeroext false) - to label %.noexc214.i unwind label %.loopexit542.i.loopexit, !noalias !245 + to label %.noexc214.i unwind label %.loopexit547.i.loopexit, !noalias !245 .noexc214.i: ; preds = %566 %567 = load i64, ptr %29, align 8, !range !45, !noalias !447, !noundef !4 @@ -2597,14 +2597,14 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit210.i": ; preds = %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i %bcmp.i209.i = call i32 @bcmp(ptr noundef nonnull readonly align 1 dereferenceable(7) %366, ptr noundef nonnull dereferenceable(7) @anon.5e2d673e6eae030aad46836fb47fafd9.81, i64 7), !alias.scope !451, !noalias !245 %571 = icmp ne i32 %bcmp.i209.i, 0 - %brmerge535.i = or i1 %553, %571 - br i1 %brmerge535.i, label %.backedge.i, label %662 + %brmerge540.i = or i1 %553, %571 + br i1 %brmerge540.i, label %.backedge.i, label %662 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit220.i": ; preds = %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i %bcmp.i219.i = call i32 @bcmp(ptr noundef nonnull readonly align 1 dereferenceable(6) %366, ptr noundef nonnull dereferenceable(6) @anon.5e2d673e6eae030aad46836fb47fafd9.82, i64 6), !alias.scope !455, !noalias !245 %572 = icmp ne i32 %bcmp.i219.i, 0 - %brmerge537.i = or i1 %553, %572 - br i1 %brmerge537.i, label %.backedge.i, label %655 + %brmerge542.i = or i1 %553, %572 + br i1 %brmerge542.i, label %.backedge.i, label %655 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit224.i": ; preds = %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i %bcmp.i223.i = call i32 @bcmp(ptr noundef nonnull readonly align 1 dereferenceable(11) %366, ptr noundef nonnull dereferenceable(11) @anon.5e2d673e6eae030aad46836fb47fafd9.83, i64 11), !alias.scope !459, !noalias !245 @@ -2617,8 +2617,8 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit228.i": ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit224.i" %bcmp.i227.i = call i32 @bcmp(ptr noundef nonnull readonly align 1 dereferenceable(11) %366, ptr noundef nonnull dereferenceable(11) @anon.5e2d673e6eae030aad46836fb47fafd9.84, i64 11), !alias.scope !463, !noalias !245 %575 = icmp ne i32 %bcmp.i227.i, 0 - %brmerge539.i = or i1 %553, %575 - br i1 %brmerge539.i, label %.backedge.i, label %614 + %brmerge544.i = or i1 %553, %575 + br i1 %brmerge544.i, label %.backedge.i, label %614 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit232.i": ; preds = %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i %bcmp.i231.i = call i32 @bcmp(ptr noundef nonnull readonly align 1 dereferenceable(9) %366, ptr noundef nonnull dereferenceable(9) @anon.5e2d673e6eae030aad46836fb47fafd9.85, i64 9), !alias.scope !467, !noalias !245 @@ -2631,8 +2631,8 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit236.i": ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit232.i" %bcmp.i235.i = call i32 @bcmp(ptr noundef nonnull readonly align 1 dereferenceable(9) %366, ptr noundef nonnull dereferenceable(9) @anon.5e2d673e6eae030aad46836fb47fafd9.86, i64 9), !alias.scope !471, !noalias !245 %578 = icmp ne i32 %bcmp.i235.i, 0 - %brmerge541.i = or i1 %553, %578 - br i1 %brmerge541.i, label %.backedge.i, label %598 + %brmerge546.i = or i1 %553, %578 + br i1 %brmerge546.i, label %.backedge.i, label %598 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit240.i": ; preds = %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i %bcmp.i239.i = call i32 @bcmp(ptr noundef nonnull readonly align 1 dereferenceable(14) %366, ptr noundef nonnull dereferenceable(14) @anon.5e2d673e6eae030aad46836fb47fafd9.87, i64 14), !alias.scope !475, !noalias !245 @@ -2645,8 +2645,8 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit244.i": ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit240.i" %bcmp.i243.i = call i32 @bcmp(ptr noundef nonnull readonly align 1 dereferenceable(14) %366, ptr noundef nonnull dereferenceable(14) @anon.5e2d673e6eae030aad46836fb47fafd9.88, i64 14), !alias.scope !479, !noalias !245 %581 = icmp ne i32 %bcmp.i243.i, 0 - %brmerge533.i = or i1 %553, %581 - br i1 %brmerge533.i, label %.backedge.i, label %590 + %brmerge538.i = or i1 %553, %581 + br i1 %brmerge538.i, label %.backedge.i, label %590 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit248.i": ; preds = %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i %bcmp.i247.i = call i32 @bcmp(ptr noundef nonnull readonly align 1 dereferenceable(12) %366, ptr noundef nonnull dereferenceable(12) @anon.5e2d673e6eae030aad46836fb47fafd9.89, i64 12), !alias.scope !483, !noalias !245 @@ -2657,7 +2657,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 583: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit248.i" call void @llvm.lifetime.start.p0(ptr nonnull %12), !noalias !487 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h7c0e6e9ccb6a7ce0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %12, i64 noundef %551, i1 noundef zeroext false) - to label %.noexc172 unwind label %.loopexit542.i.loopexit + to label %.noexc172 unwind label %.loopexit547.i.loopexit .noexc172: ; preds = %583 %584 = load i64, ptr %12, align 8, !range !45, !noalias !487, !noundef !4 @@ -2691,7 +2691,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 590: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit244.i" call void @llvm.lifetime.start.p0(ptr nonnull %52), !noalias !238 invoke void @"_ZN4core3num60_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$i64$GT$8from_str17ha05329e681512aa8E"(ptr noalias noundef nonnull sret([16 x i8]) align 8 captures(none) dereferenceable(16) %52, ptr noalias noundef nonnull readonly align 1 %552, i64 noundef %551) - to label %591 unwind label %.loopexit542.i.loopexit, !noalias !245 + to label %591 unwind label %.loopexit547.i.loopexit, !noalias !245 591: ; preds = %590 %592 = load i8, ptr %52, align 8, !range !16, !noalias !238, !noundef !4 @@ -2710,14 +2710,14 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 call void @llvm.lifetime.start.p0(ptr nonnull %53) call void @llvm.lifetime.start.p0(ptr nonnull %48), !noalias !238 invoke fastcc void @"_ZN52_$LT$T$u20$as$u20$alloc..slice..hack..ConvertVec$GT$6to_vec17heef7bb8321cc7506E"(ptr noalias noundef align 8 captures(none) dereferenceable(24) %48, ptr noalias noundef nonnull readonly align 1 %552, i64 noundef %551) - to label %597 unwind label %.loopexit542.i.loopexit, !noalias !245 + to label %597 unwind label %.loopexit547.i.loopexit, !noalias !245 597: ; preds = %596 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %53, ptr noundef nonnull align 8 dereferenceable(24) %48, i64 24, i1 false), !noalias !238 call void @llvm.lifetime.end.p0(ptr nonnull %48), !noalias !238 %.val90.i = load i64, ptr %290, align 8, !range !46, !noalias !238, !noundef !4 - %switch525.i = icmp sgt i64 %.val90.i, 0 - br i1 %switch525.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i249.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit250.i" + %switch530.i = icmp sgt i64 %.val90.i, 0 + br i1 %switch530.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i249.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit250.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i249.i": ; preds = %597 %.val91.i = load ptr, ptr %291, align 8, !noalias !238, !nonnull !4, !noundef !4 @@ -2732,7 +2732,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 598: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit236.i" call void @llvm.lifetime.start.p0(ptr nonnull %13), !noalias !511 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h7c0e6e9ccb6a7ce0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %13, i64 noundef %551, i1 noundef zeroext false) - to label %.noexc167 unwind label %.loopexit542.i.loopexit + to label %.noexc167 unwind label %.loopexit547.i.loopexit .noexc167: ; preds = %598 %599 = load i64, ptr %13, align 8, !range !45, !noalias !511, !noundef !4 @@ -2748,7 +2748,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 %603 = phi i64 [ %600, %601 ], [ %585, %586 ] %604 = phi i64 [ %602, %601 ], [ %587, %586 ] invoke void @_ZN5alloc7raw_vec12handle_error17hc0e4a0ae60df49a1E(i64 noundef %603, i64 %604) #17 - to label %.cont unwind label %.loopexit542.i.loopexit.split-lp + to label %.cont unwind label %.loopexit547.i.loopexit.split-lp .cont: ; preds = %.invoke unreachable @@ -2758,8 +2758,8 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 call void @llvm.lifetime.end.p0(ptr nonnull %13), !noalias !511 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %606, ptr nonnull readonly align 1 %552, i64 %551, i1 false), !noalias !515 %.val88.i = load i64, ptr %292, align 8, !range !46, !noalias !238, !noundef !4 - %switch526.i = icmp sgt i64 %.val88.i, 0 - br i1 %switch526.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i251.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit252.i" + %switch531.i = icmp sgt i64 %.val88.i, 0 + br i1 %switch531.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i251.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit252.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i251.i": ; preds = %605 %.val89.i = load ptr, ptr %293, align 8, !noalias !238, !nonnull !4, !noundef !4 @@ -2775,7 +2775,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 607: ; preds = %577 call void @llvm.lifetime.start.p0(ptr nonnull %28), !noalias !525 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h7c0e6e9ccb6a7ce0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %28, i64 noundef %551, i1 noundef zeroext false) - to label %.noexc256.i unwind label %.loopexit542.i.loopexit, !noalias !245 + to label %.noexc256.i unwind label %.loopexit547.i.loopexit, !noalias !245 .noexc256.i: ; preds = %607 %608 = load i64, ptr %28, align 8, !range !45, !noalias !525, !noundef !4 @@ -2792,8 +2792,8 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 call void @llvm.lifetime.end.p0(ptr nonnull %28), !noalias !525 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %613, ptr nonnull readonly align 1 %552, i64 %551, i1 false), !noalias !529 %.val86.i = load i64, ptr %296, align 8, !range !46, !noalias !238, !noundef !4 - %switch527.i = icmp sgt i64 %.val86.i, 0 - br i1 %switch527.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i259.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit260.i" + %switch532.i = icmp sgt i64 %.val86.i, 0 + br i1 %switch532.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i259.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit260.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i259.i": ; preds = %612 %.val87.i = load ptr, ptr %297, align 8, !noalias !238, !nonnull !4, !noundef !4 @@ -2809,7 +2809,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 614: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit228.i" call void @llvm.lifetime.start.p0(ptr nonnull %54), !noalias !238 invoke void @"_ZN4core3num60_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$i64$GT$8from_str17ha05329e681512aa8E"(ptr noalias noundef nonnull sret([16 x i8]) align 8 captures(none) dereferenceable(16) %54, ptr noalias noundef nonnull readonly align 1 %552, i64 noundef %551) - to label %615 unwind label %.loopexit542.i.loopexit, !noalias !245 + to label %615 unwind label %.loopexit547.i.loopexit, !noalias !245 615: ; preds = %614 %616 = load i8, ptr %54, align 8, !range !16, !noalias !238, !noundef !4 @@ -2827,7 +2827,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 .invoke512: ; preds = %615, %591 %620 = phi i8 [ %594, %591 ], [ %618, %615 ] %621 = invoke noundef nonnull ptr @"_ZN6anyhow5error72_$LT$impl$u20$core..convert..From$LT$E$GT$$u20$for$u20$anyhow..Error$GT$4from17h1a717e12d60357e3E"(i8 noundef %620) - to label %544 unwind label %.loopexit.split-lp543.i, !noalias !245 + to label %544 unwind label %.loopexit.split-lp548.i, !noalias !245 "_ZN4core3ptr71drop_in_place$LT$core..option..Option$LT$git..blame..BlameEntry$GT$$GT$17h8156f4e530ffc9beE.exit196.i": ; preds = %547, %544 call void @llvm.lifetime.end.p0(ptr nonnull %58), !noalias !238 @@ -2908,7 +2908,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 648: ; preds = %574 call void @llvm.lifetime.start.p0(ptr nonnull %27), !noalias !571 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h7c0e6e9ccb6a7ce0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %27, i64 noundef %551, i1 noundef zeroext false) - to label %.noexc266.i unwind label %.loopexit542.i.loopexit, !noalias !245 + to label %.noexc266.i unwind label %.loopexit547.i.loopexit, !noalias !245 .noexc266.i: ; preds = %648 %649 = load i64, ptr %27, align 8, !range !45, !noalias !571, !noundef !4 @@ -2925,8 +2925,8 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 call void @llvm.lifetime.end.p0(ptr nonnull %27), !noalias !571 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %654, ptr nonnull readonly align 1 %552, i64 %551, i1 false), !noalias !575 %.val84.i = load i64, ptr %303, align 8, !range !46, !noalias !238, !noundef !4 - %switch528.i = icmp sgt i64 %.val84.i, 0 - br i1 %switch528.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i269.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit270.i" + %switch533.i = icmp sgt i64 %.val84.i, 0 + br i1 %switch533.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i269.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit270.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i269.i": ; preds = %653 %.val85.i = load ptr, ptr %304, align 8, !noalias !238, !nonnull !4, !noundef !4 @@ -2942,7 +2942,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 655: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit220.i" call void @llvm.lifetime.start.p0(ptr nonnull %26), !noalias !585 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h7c0e6e9ccb6a7ce0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %26, i64 noundef %551, i1 noundef zeroext false) - to label %.noexc274.i unwind label %.loopexit542.i.loopexit, !noalias !245 + to label %.noexc274.i unwind label %.loopexit547.i.loopexit, !noalias !245 .noexc274.i: ; preds = %655 %656 = load i64, ptr %26, align 8, !range !45, !noalias !585, !noundef !4 @@ -2959,8 +2959,8 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 call void @llvm.lifetime.end.p0(ptr nonnull %26), !noalias !585 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %661, ptr nonnull readonly align 1 %552, i64 %551, i1 false), !noalias !589 %.val82.i = load i64, ptr %307, align 8, !range !46, !noalias !238, !noundef !4 - %switch529.i = icmp sgt i64 %.val82.i, 0 - br i1 %switch529.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i277.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit278.i" + %switch534.i = icmp sgt i64 %.val82.i, 0 + br i1 %switch534.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i277.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit278.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i277.i": ; preds = %660 %.val83.i = load ptr, ptr %308, align 8, !noalias !238, !nonnull !4, !noundef !4 @@ -2976,7 +2976,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 662: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h1736d6434c247b7fE.exit210.i" call void @llvm.lifetime.start.p0(ptr nonnull %25), !noalias !599 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h7c0e6e9ccb6a7ce0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %25, i64 noundef %551, i1 noundef zeroext false) - to label %.noexc282.i unwind label %.loopexit542.i.loopexit, !noalias !245 + to label %.noexc282.i unwind label %.loopexit547.i.loopexit, !noalias !245 .noexc282.i: ; preds = %662 %663 = load i64, ptr %25, align 8, !range !45, !noalias !599, !noundef !4 @@ -2993,8 +2993,8 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 call void @llvm.lifetime.end.p0(ptr nonnull %25), !noalias !599 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %668, ptr nonnull readonly align 1 %552, i64 %551, i1 false), !noalias !603 %.val80.i = load i64, ptr %311, align 8, !range !46, !noalias !238, !noundef !4 - %switch530.i = icmp sgt i64 %.val80.i, 0 - br i1 %switch530.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i285.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit286.i" + %switch535.i = icmp sgt i64 %.val80.i, 0 + br i1 %switch535.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i285.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit286.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i285.i": ; preds = %667 %.val81.i = load ptr, ptr %312, align 8, !noalias !238, !nonnull !4, !noundef !4 @@ -3012,8 +3012,8 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit.i: ; preds = %548 call void @llvm.lifetime.end.p0(ptr nonnull %29), !noalias !447 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %670, ptr nonnull readonly align 1 %552, i64 %551, i1 false), !noalias !613 %.val.i88 = load i64, ptr %315, align 8, !range !46, !noalias !238, !noundef !4 - %switch531.i = icmp sgt i64 %.val.i88, 0 - br i1 %switch531.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i287.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit288.i" + %switch536.i = icmp sgt i64 %.val.i88, 0 + br i1 %switch536.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i287.i", label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hfd1a3921334c30a4E.exit288.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8787335230632349188.exit.i.i1.i.i.i287.i": ; preds = %669 %.val79.i = load ptr, ptr %316, align 8, !noalias !238, !nonnull !4, !noundef !4 @@ -3096,7 +3096,7 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit290.i: ; preds = %680 691: ; preds = %_ZN3git3Oid7is_zero17h79c18cd17d592234E.exit290.i invoke void @"_ZN4core3ptr43drop_in_place$LT$git..blame..BlameEntry$GT$17hf9b82a9ebaaab84dE"(ptr noalias noundef nonnull align 8 dereferenceable(280) %51) - to label %.thread520.i unwind label %.loopexit542.i.loopexit, !noalias !245 + to label %.thread520.i unwind label %.loopexit547.i.loopexit, !noalias !245 692: ; preds = %686, %682 %693 = load ptr, ptr %271, align 8, !alias.scope !642, !noalias !645, !nonnull !4, !noundef !4 @@ -3105,9 +3105,9 @@ _ZN3git3Oid7is_zero17h79c18cd17d592234E.exit290.i: ; preds = %680 %695 = add i64 %683, 1 store i64 %695, ptr %272, align 8, !alias.scope !642, !noalias !645 call void @llvm.lifetime.end.p0(ptr nonnull %49), !noalias !238 - br label %.thread520.i + br label %.thread525.i -.thread520.i: ; preds = %692, %691 +.thread525.i: ; preds = %692, %691 call void @llvm.lifetime.end.p0(ptr nonnull %51), !noalias !238 br label %.backedge.i diff --git a/bench/zed-rs/optimized/f4wwu90a2y9t62jcyj6nqzu8v.ll b/bench/zed-rs/optimized/f4wwu90a2y9t62jcyj6nqzu8v.ll index 2da4d72fe1b..cc3825a13bc 100644 --- a/bench/zed-rs/optimized/f4wwu90a2y9t62jcyj6nqzu8v.ll +++ b/bench/zed-rs/optimized/f4wwu90a2y9t62jcyj6nqzu8v.ll @@ -2097,8 +2097,8 @@ define void @"_ZN55_$LT$git..Oid$u20$as$u20$core..str..traits..FromStr$GT$8from_ %.sroa.65.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 16 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.sroa.8, ptr noundef nonnull align 8 dereferenceable(5) %.sroa.65.0..sroa_idx, i64 5, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %8) - %.sroa.513.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.sroa.513.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(5) %.sroa.8, i64 5, i1 false) + %.sroa.413.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.sroa.413.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(5) %.sroa.8, i64 5, i1 false) br label %28 13: ; preds = %3 @@ -2167,10 +2167,10 @@ define void @"_ZN55_$LT$git..Oid$u20$as$u20$core..str..traits..FromStr$GT$8from_ call void @llvm.lifetime.end.p0(ptr nonnull %6) call void @llvm.lifetime.end.p0(ptr nonnull %7) call void @llvm.lifetime.end.p0(ptr nonnull %8) - br label %28 + br label %29 -28: ; preds = %"_ZN55_$LT$git..Oid$u20$as$u20$core..str..traits..FromStr$GT$8from_str28_$u7b$$u7b$closure$u7d$$u7d$17h98f489dd27269378E.llvm.5252317761193634178.exit", %10 - %.sink = phi ptr [ %22, %"_ZN55_$LT$git..Oid$u20$as$u20$core..str..traits..FromStr$GT$8from_str28_$u7b$$u7b$closure$u7d$$u7d$17h98f489dd27269378E.llvm.5252317761193634178.exit" ], [ %.sroa.5.0.copyload, %10 ] +29: ; preds = %"_ZN55_$LT$git..Oid$u20$as$u20$core..str..traits..FromStr$GT$8from_str28_$u7b$$u7b$closure$u7d$$u7d$17h98f489dd27269378E.llvm.5252317761193634178.exit", %10 + %storemerge = phi ptr [ %22, %"_ZN55_$LT$git..Oid$u20$as$u20$core..str..traits..FromStr$GT$8from_str28_$u7b$$u7b$closure$u7d$$u7d$17h98f489dd27269378E.llvm.5252317761193634178.exit" ], [ %.sroa.5.0.copyload, %10 ] %storemerge = phi i8 [ 1, %"_ZN55_$LT$git..Oid$u20$as$u20$core..str..traits..FromStr$GT$8from_str28_$u7b$$u7b$closure$u7d$$u7d$17h98f489dd27269378E.llvm.5252317761193634178.exit" ], [ 0, %10 ] %29 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.sink, ptr %29, align 8