From 5d3c7752bb17482764eeba11d186fcec851b5adb Mon Sep 17 00:00:00 2001 From: michaelmaitland <6876996+michaelmaitland@users.noreply.github.com> Date: Wed, 6 Nov 2024 12:13:21 +0800 Subject: [PATCH 1/2] pre-commit: PRllvm/llvm-project/compare/main...michaelmaitland:llvm-project:94ff86ef997cf2cce9c58c02c88d27056b68859e --- 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 820278fb20a..da36e744596 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/compare/main...michaelmaitland:llvm-project:94ff86ef997cf2cce9c58c02c88d27056b68859e # Please rebase manually # git fetch origin From 460960363644033823031b26fed47ec1db5de582 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 6 Nov 2024 04:34:44 +0000 Subject: [PATCH 2/2] pre-commit: Update --- bench/abc/optimized/abcSop.c.ll | 13 +- bench/abc/optimized/ifDsd.c.ll | 12 +- bench/actix-rs/optimized/1ghd7r3h0kcgux6d.ll | 147 ++++++------ bench/actix-rs/optimized/2pgtlhl4qd060m9c.ll | 27 +-- bench/actix-rs/optimized/4mbibhikoaniv1dm.ll | 44 ++-- bench/anki-rs/optimized/22lei7qbgq6q4wqu.ll | 16 +- bench/arrow/optimized/compression.cc.ll | 24 +- bench/assimp/optimized/3DSConverter.cpp.ll | 11 +- bench/assimp/optimized/Value.cpp.ll | 40 +--- bench/boost/optimized/algorithm.ll | 59 +++-- bench/boost/optimized/benchmark_fstream.ll | 25 +- bench/brotli/optimized/encode.c.ll | 22 +- bench/c3c/optimized/c_abi_x64.c.ll | 218 +++++++++--------- bench/c3c/optimized/lexer.c.ll | 57 ++--- bench/casadi/optimized/cvodes_spbcgs.c.ll | 42 ++-- bench/casadi/optimized/cvodes_spgmr.c.ll | 59 ++--- bench/casadi/optimized/idas_spbcgs.c.ll | 41 ++-- bench/casadi/optimized/idas_spgmr.c.ll | 58 ++--- bench/clamav/optimized/js-norm.c.ll | 46 ++-- bench/clap-rs/optimized/4bajo035z6e1d4qz.ll | 9 +- bench/cmake/optimized/zstd_compress.c.ll | 183 +++++---------- bench/cmake/optimized/zstd_decompress.c.ll | 36 +-- .../optimized/2wc2yx8ferzqfnf3.ll | 93 ++++---- .../optimized/3t7rjcjao5l6ltsf.ll | 38 ++- .../optimized/49fwg0b0m19bdvio.ll | 34 ++- .../coreutils-rs/optimized/yiho3rob7ld9k5q.ll | 131 +++++------ bench/cpython/optimized/ast.ll | 20 +- bench/cpython/optimized/cfield.ll | 46 ++-- bench/csmith/optimized/DepthSpec.cpp.ll | 153 ++++-------- bench/cvc5/optimized/cvc5.cpp.ll | 36 +-- bench/cvc5/optimized/solver_engine.cpp.ll | 16 +- .../optimized/introspection_vignette.c.ll | 46 ++-- bench/delta-rs/optimized/2tf2q4cmcrkztukf.ll | 19 +- bench/diesel-rs/optimized/462o5qgxgzqa9ugn.ll | 4 +- .../duckdb/optimized/ub_duckdb_common.cpp.ll | 63 ++--- bench/eastl/optimized/EAScanfCore.cpp.ll | 66 ++---- bench/flatbuffers/optimized/idl_gen_go.cpp.ll | 124 +++------- .../flatbuffers/optimized/idl_gen_rust.cpp.ll | 57 ++--- bench/git/optimized/blame.ll | 18 +- .../glslang/optimized/hlslParseHelper.cpp.ll | 190 ++++++++------- bench/graphviz/optimized/actions.c.ll | 10 +- bench/gromacs/optimized/nbnxm_setup.cpp.ll | 74 +++--- bench/grpc/optimized/status_conversion.cc.ll | 21 +- bench/harfbuzz/optimized/harfbuzz.cc.ll | 106 +++------ bench/hdf5/optimized/h5import.c.ll | 2 +- .../BlockScopingTransformations.cpp.ll | 17 +- bench/hwloc/optimized/topology-cuda.ll | 87 ++++--- bench/image-rs/optimized/1clnprdgqfw2q9lq.ll | 114 +++++---- bench/image-rs/optimized/2s4mh02dvph60euq.ll | 72 +++--- bench/image-rs/optimized/4srzh4wujeew249y.ll | 35 +-- .../influxdb-rs/optimized/168qliixz1k1vi84.ll | 74 +++--- .../influxdb-rs/optimized/380gcqze52ow6205.ll | 78 +++---- bench/just-rs/optimized/2sblcsgax6v4zfcc.ll | 8 +- bench/lief/optimized/psa_crypto_cipher.c.ll | 113 +++++---- bench/lief/optimized/psa_crypto_mac.c.ll | 115 ++++----- bench/linux/optimized/hooks.ll | 64 +++-- bench/linux/optimized/intel_cdclk.ll | 41 ++-- bench/linux/optimized/irq.ll | 51 ++-- bench/linux/optimized/nfs4proc.ll | 48 ++-- bench/linux/optimized/transport.ll | 29 ++- bench/linux/optimized/zstd_decompress.ll | 39 ++-- bench/llama.cpp/optimized/llama.cpp.ll | 15 +- bench/llvm/optimized/CGOpenMPRuntime.cpp.ll | 9 +- bench/lua/optimized/lgc.ll | 55 ++--- bench/luau/optimized/StringUtils.cpp.ll | 36 ++- .../optimized/2fpcolt33ttb4v7z.ll | 183 +++++++-------- .../optimized/filter_mesh_alpha_wrap.cpp.ll | 36 ++- .../mini-lsm-rs/optimized/45avienzelzw747t.ll | 32 +-- bench/nghttp2/optimized/llhttp.c.ll | 90 +++----- .../optimized/unit-iterators2.cpp.ll | 6 +- bench/nori/optimized/nanovg.c.ll | 101 ++++---- bench/ockam-rs/optimized/1sna1kukcpmrcv4c.ll | 96 ++++---- bench/ockam-rs/optimized/2bg7joofo9nayga5.ll | 112 +++++---- bench/ockam-rs/optimized/2qsd987rmmdpxbp7.ll | 32 ++- bench/oiio/optimized/DPXHeader.cpp.ll | 35 +-- bench/opencc/optimized/louds-trie.cc.ll | 131 +++++------ bench/opencv/optimized/system.cpp.ll | 61 +++-- bench/openjdk/optimized/gif_err.ll | 82 +++---- .../openjdk/optimized/hb-ot-shape-fallback.ll | 45 ++-- bench/openjdk/optimized/methodMatcher.ll | 21 +- .../optimized/templateInterpreterGenerator.ll | 81 ++++--- bench/openmpi/optimized/bfrop_base_copy.ll | 100 ++++---- bench/openmpi/optimized/bfrop_v12.ll | 84 ++++--- bench/openmpi/optimized/pmix_base_fns.ll | 134 +++++------ .../optimized/libcrypto-lib-rsa_sign.ll | 49 ++-- bench/openusd/optimized/avif.c.ll | 211 +++++++++-------- bench/openusd/optimized/stbImage.cpp.ll | 79 +++---- bench/ozz-animation/optimized/gltf2ozz.cc.ll | 38 ++- bench/pocketpy/optimized/vm.cpp.ll | 127 +++++----- bench/postgres/optimized/json.ll | 45 ++-- bench/postgres/optimized/pl_handler.ll | 68 ++---- bench/postgres/optimized/psqlscan.ll | 49 ++-- bench/postgres/optimized/typename.ll | 51 ++-- bench/protobuf/optimized/wire_format.cc.ll | 27 +-- bench/qemu/optimized/hw_scsi_lsi53c895a.c.ll | 30 +-- bench/qemu/optimized/hw_usb_hcd-xhci.c.ll | 23 +- bench/qemu/optimized/nbd_server.c.ll | 54 ++--- bench/regex-rs/optimized/32jw1oy2yofrhudk.ll | 141 ++++++----- .../ripgrep-rs/optimized/1zzjpab9m5homdm3.ll | 150 ++++++------ bench/ruby/optimized/dir.ll | 33 ++- bench/ruby/optimized/signal.ll | 37 ++- .../optimized/3j0nbdwupb3iwt86.ll | 39 ++-- .../optimized/68ytxs4wk5ncclk.ll | 28 +-- .../rustfmt-rs/optimized/2vbyym84o66crvo9.ll | 31 ++- bench/sentencepiece/optimized/strutil.cc.ll | 157 ++++++------- bench/slurm/optimized/serializer_yaml.ll | 213 ++++++++--------- bench/tev/optimized/ExrImageLoader.cpp.ll | 123 +++++----- bench/tinygltf/optimized/tiny_gltf.cc.ll | 99 ++++---- bench/tls-rs/optimized/1pt3w3786vo2dyk0.ll | 97 ++++---- bench/tls-rs/optimized/4klah4jfox7oqufu.ll | 85 ++++--- bench/typst-rs/optimized/3rk2ctuzbghb17s4.ll | 56 ++--- bench/typst-rs/optimized/40w6rezair915kkd.ll | 61 +++-- bench/velox/optimized/PrestoSerializer.cpp.ll | 32 +-- .../optimized/UnsafeRowSerializer.cpp.ll | 50 ++-- bench/wasmedge/optimized/controlInstr.cpp.ll | 35 ++- .../wasmtime-rs/optimized/18flldcd4wnig7ks.ll | 106 ++++----- .../wasmtime-rs/optimized/526qiozl2mm0d4p0.ll | 33 +-- .../wasmtime-rs/optimized/yijsgxkf5yj6ls1.ll | 108 ++++----- bench/wireshark/optimized/packet-drda.c.ll | 70 +++--- bench/wireshark/optimized/packet-fmp.c.ll | 77 +++---- .../optimized/packet-fmp_notify.c.ll | 91 +++----- bench/wireshark/optimized/packet-llrp.c.ll | 67 +++--- bench/wolfssl/optimized/hmac.c.ll | 102 +++++--- .../xgboost/optimized/in_memory_handler.cc.ll | 68 ++---- bench/yoga/optimized/Node.cpp.ll | 48 ++-- bench/yosys/optimized/fstapi.ll | 165 +++++++------ .../optimized/25fxlhz3kxu1eqndtge46j52s.ll | 10 +- .../optimized/9wd9ok5kgn8j922db1jwm4yni.ll | 40 ++-- .../optimized/bktyyhuk5fekatq647qx0ox8v.ll | 25 +- .../optimized/cnvyqwq6kbzihugegghzc0tdw.ll | 14 +- bench/zfp/optimized/zfp.c.ll | 18 +- bench/zstd/optimized/zstd_compress.c.ll | 97 ++------ bench/zstd/optimized/zstd_decompress.c.ll | 28 +-- 133 files changed, 3734 insertions(+), 4869 deletions(-) diff --git a/bench/abc/optimized/abcSop.c.ll b/bench/abc/optimized/abcSop.c.ll index 5b2483c68e5..de4b0d8be27 100644 --- a/bench/abc/optimized/abcSop.c.ll +++ b/bench/abc/optimized/abcSop.c.ll @@ -1738,7 +1738,7 @@ define range(i32 0, 2) i32 @Abc_SopCheck(ptr noundef %0, i32 noundef %1) local_u i8 48, label %25 i8 49, label %20 i8 120, label %.fold.split - i8 110, label %.fold.split35 + i8 110, label %.fold.split ] 20: ; preds = %17 @@ -1750,15 +1750,12 @@ define range(i32 0, 2) i32 @Abc_SopCheck(ptr noundef %0, i32 noundef %1) local_u %24 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23, ptr noundef nonnull @.str.8, i32 noundef %22) #19 br label %._crit_edge52.thread -.fold.split: ; preds = %17 +.fold.split: ; preds = %17, %17 br label %25 -.fold.split35: ; preds = %17 - br label %25 - -25: ; preds = %17, %.fold.split35, %.fold.split, %20 - %.124 = phi i32 [ %.02350, %20 ], [ 1, %17 ], [ %.02350, %.fold.split ], [ %.02350, %.fold.split35 ] - %.1 = phi i32 [ 1, %20 ], [ %.051, %17 ], [ %.051, %.fold.split ], [ %.051, %.fold.split35 ] +25: ; preds = %17, %.fold.split, %20 + %.124 = phi i32 [ %.02350, %20 ], [ 1, %17 ], [ %.02350, %.fold.split ] + %.1 = phi i32 [ 1, %20 ], [ %.051, %17 ], [ %.051, %.fold.split ] %26 = getelementptr inbounds i8, ptr %.127.lcssa, i64 2 %27 = load i8, ptr %26, align 1 %.not34 = icmp eq i8 %27, 10 diff --git a/bench/abc/optimized/ifDsd.c.ll b/bench/abc/optimized/ifDsd.c.ll index db3f639780a..576ae31ba9e 100644 --- a/bench/abc/optimized/ifDsd.c.ll +++ b/bench/abc/optimized/ifDsd.c.ll @@ -8671,15 +8671,15 @@ tailrecurse: ; preds = %21, %2 %.val26 = load i32, ptr %8, align 4 %9 = and i32 %.val26, 7 switch i32 %9, label %.critedge [ - i32 2, label %.critedge.loopexit63 + i32 2, label %.critedge.loopexit61 i32 5, label %17 i32 4, label %.preheader ] .preheader: ; preds = %tailrecurse %10 = getelementptr inbounds i8, ptr %7, i64 8 - %.not46 = icmp ult i32 %.val26, 134217728 - br i1 %.not46, label %.critedge, label %.lr.ph.preheader + %.not44 = icmp ult i32 %.val26, 134217728 + br i1 %.not44, label %.critedge, label %.lr.ph.preheader .lr.ph.preheader: ; preds = %.preheader %11 = lshr i32 %.val26, 27 @@ -8715,11 +8715,11 @@ tailrecurse: ; preds = %21, %2 %23 = load i32, ptr %22, align 4 br label %tailrecurse -.critedge.loopexit63: ; preds = %tailrecurse +.critedge.loopexit61: ; preds = %tailrecurse br label %.critedge -.critedge: ; preds = %15, %12, %.lr.ph, %17, %tailrecurse, %.critedge.loopexit63, %.preheader - %.0 = phi i32 [ 0, %.preheader ], [ 1, %.critedge.loopexit63 ], [ 0, %tailrecurse ], [ 0, %17 ], [ 1, %15 ], [ 0, %12 ], [ 0, %.lr.ph ] +.critedge: ; preds = %15, %12, %.lr.ph, %17, %tailrecurse, %.critedge.loopexit61, %.preheader + %.0 = phi i32 [ 0, %.preheader ], [ 1, %.critedge.loopexit61 ], [ 0, %tailrecurse ], [ 0, %17 ], [ 1, %15 ], [ 0, %12 ], [ 0, %.lr.ph ] ret i32 %.0 } diff --git a/bench/actix-rs/optimized/1ghd7r3h0kcgux6d.ll b/bench/actix-rs/optimized/1ghd7r3h0kcgux6d.ll index 14fa9e29e7f..ac0083ecf57 100644 --- a/bench/actix-rs/optimized/1ghd7r3h0kcgux6d.ll +++ b/bench/actix-rs/optimized/1ghd7r3h0kcgux6d.ll @@ -9791,11 +9791,11 @@ _ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit: ; preds = %24, i64 3, label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" i64 4, label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" i64 5, label %147 - i64 6, label %148 - i64 7, label %149 - i64 8, label %150 - i64 9, label %151 - i64 10, label %152 + i64 6, label %147 + i64 7, label %147 + i64 8, label %147 + i64 9, label %147 + i64 10, label %148 ] 142: ; preds = %8 @@ -9804,120 +9804,105 @@ _ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit: ; preds = %24, %.0 = select i1 %143, i1 %144, i1 false %145 = tail call noundef zeroext i1 @"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$7Prepare17hb1eb6b1a2c480d60E"(ptr noalias noundef nonnull align 8 dereferenceable(120) %1, i1 noundef zeroext %.0, i64 noundef %6, ptr noalias noundef nonnull readonly align 1 %3, i64 noundef %4) %brmerge.demorgan = and i1 %143, %145 - br i1 %brmerge.demorgan, label %160, label %159 + br i1 %brmerge.demorgan, label %159, label %158 -default.unreachable: ; preds = %160, %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit", %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit +default.unreachable: ; preds = %159, %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit", %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit unreachable 146: ; preds = %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit tail call void @_ZN3std9panicking11begin_panic17hb8ecbc11ddbb084cE(ptr noalias noundef nonnull readonly align 1 @anon.51838d820bef2e7c66f7646d11d2f552.59.llvm.6642645476840219850, i64 noundef 12, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.51838d820bef2e7c66f7646d11d2f552.60.llvm.6642645476840219850) #21, !noalias !893 unreachable -147: ; preds = %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit +147: ; preds = %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit, %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit, %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit, %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit, %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit br label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" 148: ; preds = %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit br label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" -149: ; preds = %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit - br label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" - -150: ; preds = %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit - br label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" - -151: ; preds = %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit - br label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" - -152: ; preds = %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit - br label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" - -"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit": ; preds = %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit, %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit, %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit, %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit, %147, %148, %149, %150, %151, %152 - %.sink.i = phi i64 [ 48, %152 ], [ 40, %151 ], [ 40, %150 ], [ 40, %149 ], [ 40, %148 ], [ 40, %147 ], [ 24, %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit ], [ 24, %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit ], [ 24, %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit ], [ 24, %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit ] - %153 = getelementptr inbounds i8, ptr %1, i64 %.sink.i - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %153, ptr noundef nonnull align 8 dereferenceable(24) %22, i64 24, i1 false) - %154 = load i64, ptr %1, align 8, !range !61, !noundef !12 - switch i64 %154, label %default.unreachable [ +"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit": ; preds = %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit, %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit, %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit, %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit, %147, %148 + %.sink.i = phi i64 [ 48, %148 ], [ 40, %147 ], [ 24, %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit ], [ 24, %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit ], [ 24, %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit ], [ 24, %_ZN6brotli3enc6encode16BrotliMakeHasher17h00ac0e3493ddb79eE.exit ] + %149 = getelementptr inbounds i8, ptr %1, i64 %.sink.i + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %149, ptr noundef nonnull align 8 dereferenceable(24) %22, i64 24, i1 false) + %150 = load i64, ptr %1, align 8, !range !61, !noundef !12 + switch i64 %150, label %default.unreachable [ i64 0, label %.thread - i64 10, label %.thread21 - i64 1, label %155 - i64 2, label %155 - i64 3, label %155 - i64 4, label %155 - i64 5, label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit4" - i64 6, label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit4" - i64 7, label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit4" - i64 8, label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit4" - i64 9, label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit4" + i64 10, label %.thread11 + i64 1, label %151 + i64 2, label %151 + i64 3, label %151 + i64 4, label %151 + i64 5, label %156 + i64 6, label %156 + i64 7, label %156 + i64 8, label %156 + i64 9, label %156 ] .thread: ; preds = %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" tail call void @_ZN3std9panicking11begin_panic17hb8ecbc11ddbb084cE(ptr noalias noundef nonnull readonly align 1 @anon.51838d820bef2e7c66f7646d11d2f552.59.llvm.6642645476840219850, i64 noundef 12, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.51838d820bef2e7c66f7646d11d2f552.60.llvm.6642645476840219850) #21, !noalias !896 unreachable -155: ; preds = %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit", %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit", %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit", %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" +151: ; preds = %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit", %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit", %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit", %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit", %156 + %.sink.i5 = phi i64 [ 40, %156 ], [ 24, %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" ], [ 24, %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" ], [ 24, %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" ], [ 24, %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" ] + %152 = getelementptr inbounds i8, ptr %1, i64 %.sink.i5 + %153 = getelementptr inbounds i8, ptr %152, i64 40 + store i32 0, ptr %153, align 8 + %.off = add nsw i64 %150, -5 + %switch13 = icmp ult i64 %.off, 5 + %spec.select = select i1 %switch13, i64 40, i64 24 br label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit4" -"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit4": ; preds = %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit", %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit", %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit", %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit", %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit", %155, %.thread21 - %.sink23 = phi i64 [ 64, %155 ], [ 88, %.thread21 ], [ 80, %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" ], [ 80, %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" ], [ 80, %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" ], [ 80, %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" ], [ 80, %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" ] - %.sink.i2 = phi i64 [ 24, %155 ], [ 48, %.thread21 ], [ 40, %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" ], [ 40, %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" ], [ 40, %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" ], [ 40, %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" ], [ 40, %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" ] - %156 = getelementptr inbounds i8, ptr %1, i64 %.sink23 - store i32 0, ptr %156, align 8 - %157 = getelementptr inbounds i8, ptr %1, i64 %.sink.i2 - %158 = getelementptr inbounds i8, ptr %157, i64 40 - store i32 1, ptr %158, align 8 - br label %159 +"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit4": ; preds = %151, %.thread11 + %.sink.i2 = phi i64 [ 48, %.thread11 ], [ %spec.select, %151 ] + %154 = getelementptr inbounds i8, ptr %1, i64 %.sink.i2 + %155 = getelementptr inbounds i8, ptr %154, i64 40 + store i32 1, ptr %155, align 8 + br label %158 + +156: ; preds = %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit", %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit", %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit", %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit", %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" + br label %151 -.thread21: ; preds = %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" +.thread11: ; preds = %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit" + %157 = getelementptr inbounds i8, ptr %1, i64 88 + store i32 0, ptr %157, align 8 br label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit4" -159: ; preds = %142, %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit10", %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit4" +158: ; preds = %142, %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit10", %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit4" ret void -160: ; preds = %142 +159: ; preds = %142 tail call void @llvm.experimental.noalias.scope.decl(metadata !899) - %161 = load i64, ptr %1, align 8, !range !61, !alias.scope !899, !noundef !12 - switch i64 %161, label %default.unreachable [ - i64 0, label %162 + %160 = load i64, ptr %1, align 8, !range !61, !alias.scope !899, !noundef !12 + switch i64 %160, label %default.unreachable [ + i64 0, label %161 i64 1, label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit10" i64 2, label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit10" i64 3, label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit10" i64 4, label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit10" - i64 5, label %163 - i64 6, label %164 - i64 7, label %165 - i64 8, label %166 - i64 9, label %167 - i64 10, label %168 + i64 5, label %162 + i64 6, label %162 + i64 7, label %162 + i64 8, label %162 + i64 9, label %162 + i64 10, label %163 ] -162: ; preds = %160 +161: ; preds = %159 tail call void @_ZN3std9panicking11begin_panic17hb8ecbc11ddbb084cE(ptr noalias noundef nonnull readonly align 1 @anon.51838d820bef2e7c66f7646d11d2f552.59.llvm.6642645476840219850, i64 noundef 12, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.51838d820bef2e7c66f7646d11d2f552.60.llvm.6642645476840219850) #21, !noalias !899 unreachable -163: ; preds = %160 - br label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit10" - -164: ; preds = %160 - br label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit10" - -165: ; preds = %160 +162: ; preds = %159, %159, %159, %159, %159 br label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit10" -166: ; preds = %160 +163: ; preds = %159 br label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit10" -167: ; preds = %160 - br label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit10" - -168: ; preds = %160 - br label %"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit10" - -"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit10": ; preds = %160, %160, %160, %160, %163, %164, %165, %166, %167, %168 - %.sink.i8 = phi i64 [ 48, %168 ], [ 40, %167 ], [ 40, %166 ], [ 40, %165 ], [ 40, %164 ], [ 40, %163 ], [ 24, %160 ], [ 24, %160 ], [ 24, %160 ], [ 24, %160 ] - %169 = getelementptr inbounds i8, ptr %1, i64 %.sink.i8 - %170 = getelementptr inbounds i8, ptr %169, i64 24 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %170, i8 0, i64 16, i1 false) - br label %159 +"_ZN122_$LT$brotli..enc..backward_references..UnionHasher$LT$Alloc$GT$$u20$as$u20$brotli..enc..backward_references..AnyHasher$GT$15GetHasherCommon17h38dfdc60585abe5fE.exit10": ; preds = %159, %159, %159, %159, %162, %163 + %.sink.i8 = phi i64 [ 48, %163 ], [ 40, %162 ], [ 24, %159 ], [ 24, %159 ], [ 24, %159 ], [ 24, %159 ] + %164 = getelementptr inbounds i8, ptr %1, i64 %.sink.i8 + %165 = getelementptr inbounds i8, ptr %164, i64 24 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %165, i8 0, i64 16, i1 false) + br label %158 } ; Function Attrs: nonlazybind uwtable @@ -11390,8 +11375,8 @@ define internal fastcc noundef range(i32 0, 2) i32 @_ZN6brotli3enc6encode23Injec %26 = or i32 %25, %22 %27 = getelementptr inbounds i8, ptr %0, i64 120 %28 = load i32, ptr %27, align 8, !range !1071, !alias.scope !1068, !noundef !12 - %switch.i = icmp samesign ult i32 %28, 2 - br i1 %switch.i, label %29, label %.thread28.i + %switch.i = icmp samesign ugt i32 %28, 1 + br i1 %switch.i, label %.thread28.i, label %29 29: ; preds = %19 %30 = getelementptr inbounds i8, ptr %0, i64 304 diff --git a/bench/actix-rs/optimized/2pgtlhl4qd060m9c.ll b/bench/actix-rs/optimized/2pgtlhl4qd060m9c.ll index 5e46b497727..f90bd65f753 100644 --- a/bench/actix-rs/optimized/2pgtlhl4qd060m9c.ll +++ b/bench/actix-rs/optimized/2pgtlhl4qd060m9c.ll @@ -4546,29 +4546,26 @@ define noundef range(i16 400, 501) i16 @"_ZN102_$LT$actix_web..error..JsonPayloa %2 = load i8, ptr %0, align 8, !range !538, !noundef !4 %3 = add nsw i8 %2, -11 %narrow = tail call i8 @llvm.umin.i8(i8 %3, i8 5) - switch i8 %narrow, label %9 [ + switch i8 %narrow, label %8 [ i8 0, label %4 - i8 1, label %5 - i8 4, label %6 - i8 5, label %7 + i8 1, label %4 + i8 4, label %5 + i8 5, label %6 ] -4: ; preds = %1 - br label %9 +4: ; preds = %1, %1 + br label %8 5: ; preds = %1 - br label %9 + br label %8 6: ; preds = %1 - br label %9 - -7: ; preds = %1 - %8 = icmp eq i8 %2, 7 - %..i = select i1 %8, i16 413, i16 400 - br label %9 + %7 = icmp eq i8 %2, 7 + %..i = select i1 %7, i16 413, i16 400 + br label %8 -9: ; preds = %1, %7, %6, %5, %4 - %.0 = phi i16 [ %..i, %7 ], [ 500, %6 ], [ 413, %5 ], [ 413, %4 ], [ 400, %1 ] +8: ; preds = %1, %6, %5, %4 + %.0 = phi i16 [ %..i, %6 ], [ 500, %5 ], [ 413, %4 ], [ 400, %1 ] ret i16 %.0 } diff --git a/bench/actix-rs/optimized/4mbibhikoaniv1dm.ll b/bench/actix-rs/optimized/4mbibhikoaniv1dm.ll index 7a00825d594..87d8401115c 100644 --- a/bench/actix-rs/optimized/4mbibhikoaniv1dm.ll +++ b/bench/actix-rs/optimized/4mbibhikoaniv1dm.ll @@ -2697,16 +2697,16 @@ define hidden noundef nonnull align 8 dereferenceable(48) ptr @"_ZN122_$LT$brotl %2 = load i64, ptr %0, align 8, !range !393, !noundef !4 switch i64 %2, label %default.unreachable1 [ i64 0, label %3 - i64 1, label %10 - i64 2, label %10 - i64 3, label %10 - i64 4, label %10 + i64 1, label %6 + i64 2, label %6 + i64 3, label %6 + i64 4, label %6 i64 5, label %4 - i64 6, label %5 - i64 7, label %6 - i64 8, label %7 - i64 9, label %8 - i64 10, label %9 + i64 6, label %4 + i64 7, label %4 + i64 8, label %4 + i64 9, label %4 + i64 10, label %5 ] default.unreachable1: ; preds = %1 @@ -2716,28 +2716,16 @@ default.unreachable1: ; preds = %1 tail call void @_ZN3std9panicking11begin_panic17hb8ecbc11ddbb084cE(ptr noalias noundef nonnull readonly align 1 @anon.51838d820bef2e7c66f7646d11d2f552.59.llvm.6642645476840219850, i64 noundef 12, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.51838d820bef2e7c66f7646d11d2f552.60.llvm.6642645476840219850) #16 unreachable -4: ; preds = %1 - br label %10 +4: ; preds = %1, %1, %1, %1, %1 + br label %6 5: ; preds = %1 - br label %10 - -6: ; preds = %1 - br label %10 - -7: ; preds = %1 - br label %10 - -8: ; preds = %1 - br label %10 - -9: ; preds = %1 - br label %10 + br label %6 -10: ; preds = %1, %1, %1, %1, %9, %8, %7, %6, %5, %4 - %.sink = phi i64 [ 48, %9 ], [ 40, %8 ], [ 40, %7 ], [ 40, %6 ], [ 40, %5 ], [ 40, %4 ], [ 24, %1 ], [ 24, %1 ], [ 24, %1 ], [ 24, %1 ] - %11 = getelementptr inbounds i8, ptr %0, i64 %.sink - ret ptr %11 +6: ; preds = %1, %1, %1, %1, %5, %4 + %.sink = phi i64 [ 48, %5 ], [ 40, %4 ], [ 24, %1 ], [ 24, %1 ], [ 24, %1 ], [ 24, %1 ] + %7 = getelementptr inbounds i8, ptr %0, i64 %.sink + ret ptr %7 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/anki-rs/optimized/22lei7qbgq6q4wqu.ll b/bench/anki-rs/optimized/22lei7qbgq6q4wqu.ll index ea992235b0f..661d166b574 100644 --- a/bench/anki-rs/optimized/22lei7qbgq6q4wqu.ll +++ b/bench/anki-rs/optimized/22lei7qbgq6q4wqu.ll @@ -23,7 +23,6 @@ target triple = "x86_64-unknown-linux-gnu" @anon.7e169519e0ee15bcf2cc7834854a4ab3.27 = private unnamed_addr constant <{ ptr, [16 x i8], ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }> <{ ptr @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hee5980806d1ba524E", [16 x i8] c"\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00", ptr @"_ZN58_$LT$std..io..error..Error$u20$as$u20$core..fmt..Debug$GT$3fmt17hcda221c82c761944E", ptr @"_ZN60_$LT$std..io..error..Error$u20$as$u20$core..fmt..Display$GT$3fmt17h903d2f90598a70cbE", ptr @anon.7e169519e0ee15bcf2cc7834854a4ab3.26, ptr @"_ZN60_$LT$std..io..error..Error$u20$as$u20$core..error..Error$GT$6source17h1b1b102d4fff9711E", ptr @_ZN4core5error5Error7type_id17h2520d75cab0dfbdaE, ptr @"_ZN60_$LT$std..io..error..Error$u20$as$u20$core..error..Error$GT$11description17h4c037dba41cae825E", ptr @"_ZN60_$LT$std..io..error..Error$u20$as$u20$core..error..Error$GT$5cause17h4fb8903785172ff7E", ptr @_ZN4core5error5Error7provide17hba14b53d21d6b79aE }>, align 8 @anon.7e169519e0ee15bcf2cc7834854a4ab3.28 = private unnamed_addr constant <{ [1 x i8] }> <{ [1 x i8] c" " }>, align 1 @anon.7e169519e0ee15bcf2cc7834854a4ab3.29 = private unnamed_addr constant <{ ptr, [8 x i8], ptr, [8 x i8] }> <{ ptr @anon.7e169519e0ee15bcf2cc7834854a4ab3.5, [8 x i8] zeroinitializer, ptr @anon.7e169519e0ee15bcf2cc7834854a4ab3.28, [8 x i8] c"\01\00\00\00\00\00\00\00" }>, align 8 -@switch.table._ZN7anki_io5error11FileIoError12is_not_found17h637f7feac20ba008E = private unnamed_addr constant [41 x i8] c"\00\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D\0D", align 1 ; Function Attrs: nonlazybind uwtable define internal fastcc void @"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h08853c6336a81a70E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %0) unnamed_addr #0 personality ptr @rust_eh_personality { @@ -672,7 +671,7 @@ define noundef zeroext i1 @_ZN7anki_io5error11FileIoError12is_not_found17h637f7f %4 = and i64 %3, 3 switch i64 %4, label %default.unreachable [ i64 2, label %6 - i64 3, label %switch.lookup + i64 3, label %5 i64 0, label %7 i64 1, label %10 ] @@ -680,16 +679,15 @@ define noundef zeroext i1 @_ZN7anki_io5error11FileIoError12is_not_found17h637f7f default.unreachable: ; preds = %1 unreachable -switch.lookup: ; preds = %1 - %5 = ashr i64 %3, 32 - %switch.gep = getelementptr inbounds [41 x i8], ptr @switch.table._ZN7anki_io5error11FileIoError12is_not_found17h637f7feac20ba008E, i64 0, i64 %5 - %switch.load = load i8, ptr %switch.gep, align 1 +5: ; preds = %1 + %switch = icmp ult ptr %.val, inttoptr (i64 4294967296 to ptr) + %spec.select = select i1 %switch, i8 0, i8 13 br label %_ZN3std2io5error5Error4kind17h2040909452a97b57E.exit 6: ; preds = %1 %.mask = and i64 %3, -4294967296 %cond = icmp eq i64 %.mask, 8589934592 - %spec.select = select i1 %cond, i8 0, i8 13 + %spec.select1 = select i1 %cond, i8 0, i8 13 br label %_ZN3std2io5error5Error4kind17h2040909452a97b57E.exit 7: ; preds = %1 @@ -705,8 +703,8 @@ switch.lookup: ; preds = %1 %14 = load i8, ptr %13, align 8, !range !174, !noundef !4 br label %_ZN3std2io5error5Error4kind17h2040909452a97b57E.exit -_ZN3std2io5error5Error4kind17h2040909452a97b57E.exit: ; preds = %switch.lookup, %6, %7, %10 - %.0.i = phi i8 [ %14, %10 ], [ %9, %7 ], [ %spec.select, %6 ], [ %switch.load, %switch.lookup ] +_ZN3std2io5error5Error4kind17h2040909452a97b57E.exit: ; preds = %6, %5, %7, %10 + %.0.i = phi i8 [ %14, %10 ], [ %9, %7 ], [ %spec.select, %5 ], [ %spec.select1, %6 ] %15 = icmp eq i8 %.0.i, 0 ret i1 %15 } diff --git a/bench/arrow/optimized/compression.cc.ll b/bench/arrow/optimized/compression.cc.ll index b4b506240eb..7e646cc0677 100644 --- a/bench/arrow/optimized/compression.cc.ll +++ b/bench/arrow/optimized/compression.cc.ll @@ -1434,33 +1434,33 @@ _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i68: ; preds br i1 %cmp.i.i.i.i.i.i.i.i.i70, label %cleanup.sink.split.sink.split, label %cleanup.sink.split cleanup.sink.split.sink.split.sink.split: ; preds = %if.then.i.i.i.i.i.i.i40, %if.then.i.i.i.i.i.i.i76 - %.sink245 = phi ptr [ %23, %if.then.i.i.i.i.i.i.i76 ], [ %13, %if.then.i.i.i.i.i.i.i40 ] - %.sink240.ph.ph = phi ptr [ %22, %if.then.i.i.i.i.i.i.i76 ], [ %12, %if.then.i.i.i.i.i.i.i40 ] + %.sink242 = phi ptr [ %23, %if.then.i.i.i.i.i.i.i76 ], [ %13, %if.then.i.i.i.i.i.i.i40 ] + %.sink237.ph.ph = phi ptr [ %22, %if.then.i.i.i.i.i.i.i76 ], [ %12, %if.then.i.i.i.i.i.i.i40 ] %ref.tmp8.sink.ph.ph = phi ptr [ %ref.tmp8, %if.then.i.i.i.i.i.i.i76 ], [ %ref.tmp5, %if.then.i.i.i.i.i.i.i40 ] - %_M_weak_count.i.i.i.i.i.i.i77 = getelementptr inbounds i8, ptr %.sink245, i64 12 + %_M_weak_count.i.i.i.i.i.i.i77 = getelementptr inbounds i8, ptr %.sink242, i64 12 store i32 0, ptr %_M_weak_count.i.i.i.i.i.i.i77, align 4 - %vtable.i.i.i.i.i.i.i78 = load ptr, ptr %.sink245, align 8 + %vtable.i.i.i.i.i.i.i78 = load ptr, ptr %.sink242, align 8 %vfn.i.i.i.i.i.i.i79 = getelementptr inbounds i8, ptr %vtable.i.i.i.i.i.i.i78, i64 16 %32 = load ptr, ptr %vfn.i.i.i.i.i.i.i79, align 8 - call void %32(ptr noundef nonnull align 8 dereferenceable(16) %.sink245) #17 + call void %32(ptr noundef nonnull align 8 dereferenceable(16) %.sink242) #17 br label %cleanup.sink.split.sink.split cleanup.sink.split.sink.split: ; preds = %cleanup.sink.split.sink.split.sink.split, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i68, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i32 - %.sink242 = phi ptr [ %13, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i32 ], [ %23, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i68 ], [ %.sink245, %cleanup.sink.split.sink.split.sink.split ] - %.sink240.ph = phi ptr [ %12, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i32 ], [ %22, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i68 ], [ %.sink240.ph.ph, %cleanup.sink.split.sink.split.sink.split ] + %.sink239 = phi ptr [ %13, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i32 ], [ %23, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i68 ], [ %.sink242, %cleanup.sink.split.sink.split.sink.split ] + %.sink237.ph = phi ptr [ %12, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i32 ], [ %22, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i68 ], [ %.sink237.ph.ph, %cleanup.sink.split.sink.split.sink.split ] %ref.tmp8.sink.ph = phi ptr [ %ref.tmp5, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i32 ], [ %ref.tmp8, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i68 ], [ %ref.tmp8.sink.ph.ph, %cleanup.sink.split.sink.split.sink.split ] - %vtable2.i.i.i.i.i.i.i.i.i72 = load ptr, ptr %.sink242, align 8 + %vtable2.i.i.i.i.i.i.i.i.i72 = load ptr, ptr %.sink239, align 8 %vfn3.i.i.i.i.i.i.i.i.i73 = getelementptr inbounds i8, ptr %vtable2.i.i.i.i.i.i.i.i.i72, i64 24 %33 = load ptr, ptr %vfn3.i.i.i.i.i.i.i.i.i73, align 8 - call void %33(ptr noundef nonnull align 8 dereferenceable(16) %.sink242) #17 + call void %33(ptr noundef nonnull align 8 dereferenceable(16) %.sink239) #17 br label %cleanup.sink.split cleanup.sink.split: ; preds = %cleanup.sink.split.sink.split, %delete.notnull.i.i46, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i56, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i68, %delete.notnull.i.i10, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i20, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i32 - %.sink240 = phi ptr [ %12, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i32 ], [ %12, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i20 ], [ %12, %delete.notnull.i.i10 ], [ %22, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i68 ], [ %22, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i56 ], [ %22, %delete.notnull.i.i46 ], [ %.sink240.ph, %cleanup.sink.split.sink.split ] + %.sink237 = phi ptr [ %12, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i32 ], [ %12, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i20 ], [ %12, %delete.notnull.i.i10 ], [ %22, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i68 ], [ %22, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i56 ], [ %22, %delete.notnull.i.i46 ], [ %.sink237.ph, %cleanup.sink.split.sink.split ] %ref.tmp8.sink = phi ptr [ %ref.tmp5, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i32 ], [ %ref.tmp5, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i20 ], [ %ref.tmp5, %delete.notnull.i.i10 ], [ %ref.tmp8, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i68 ], [ %ref.tmp8, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i56 ], [ %ref.tmp8, %delete.notnull.i.i46 ], [ %ref.tmp8.sink.ph, %cleanup.sink.split.sink.split ] - %msg.i.i.i60 = getelementptr inbounds i8, ptr %.sink240, i64 8 + %msg.i.i.i60 = getelementptr inbounds i8, ptr %.sink237, i64 8 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %msg.i.i.i60) #17 - call void @_ZdlPv(ptr noundef nonnull %.sink240) #20 + call void @_ZdlPv(ptr noundef nonnull %.sink237) #20 store ptr null, ptr %ref.tmp8.sink, align 8 br label %cleanup diff --git a/bench/assimp/optimized/3DSConverter.cpp.ll b/bench/assimp/optimized/3DSConverter.cpp.ll index c7d26a8469b..8a9e53510a3 100644 --- a/bench/assimp/optimized/3DSConverter.cpp.ll +++ b/bench/assimp/optimized/3DSConverter.cpp.ll @@ -1320,12 +1320,12 @@ if.end41: ; preds = %if.then39, %if.end3 i32 1, label %sw.bb i32 0, label %sw.bb43 i32 2, label %sw.bb45 - i32 3, label %sw.bb46 + i32 3, label %sw.bb i32 4, label %sw.bb47 i32 5, label %sw.bb48 ] -sw.bb: ; preds = %if.end41 +sw.bb: ; preds = %if.end41, %if.end41 br label %sw.epilog sw.bb43: ; preds = %if.end41 @@ -1336,17 +1336,14 @@ sw.bb43: ; preds = %if.end41 sw.bb45: ; preds = %sw.bb43, %if.end41 br label %sw.epilog -sw.bb46: ; preds = %if.end41 - br label %sw.epilog - sw.bb47: ; preds = %if.end41 br label %sw.epilog sw.bb48: ; preds = %if.end41 br label %sw.epilog -sw.epilog: ; preds = %sw.bb48, %sw.bb47, %sw.bb46, %sw.bb45, %sw.bb, %if.end41 - %eShading.0 = phi i32 [ 9, %if.end41 ], [ 4, %sw.bb48 ], [ 8, %sw.bb47 ], [ %12, %sw.bb46 ], [ 2, %sw.bb45 ], [ %12, %sw.bb ] +sw.epilog: ; preds = %sw.bb48, %sw.bb47, %sw.bb45, %sw.bb, %if.end41 + %eShading.0 = phi i32 [ 9, %if.end41 ], [ 4, %sw.bb48 ], [ 8, %sw.bb47 ], [ 2, %sw.bb45 ], [ %12, %sw.bb ] store i32 %eShading.0, ptr %eShading_, align 4 %call.i77 = call noundef i32 @_ZN10aiMaterial17AddBinaryPropertyEPKvjPKcjj18aiPropertyTypeInfo(ptr noundef nonnull align 8 dereferenceable(16) %mat, ptr noundef nonnull %eShading_, i32 noundef 4, ptr noundef nonnull @.str.23, i32 noundef 0, i32 noundef 0, i32 noundef 4) %mMapName = getelementptr inbounds i8, ptr %oldMat, i64 104 diff --git a/bench/assimp/optimized/Value.cpp.ll b/bench/assimp/optimized/Value.cpp.ll index 17639d87cd8..d0ebc2fe0ea 100644 --- a/bench/assimp/optimized/Value.cpp.ll +++ b/bench/assimp/optimized/Value.cpp.ll @@ -1755,40 +1755,22 @@ if.end: ; preds = %entry i32 3, label %sw.bb6 i32 4, label %sw.bb8 i32 5, label %if.then30.sink.split - i32 6, label %sw.bb12 - i32 7, label %sw.bb14 - i32 8, label %sw.bb16 - i32 9, label %sw.bb18 - i32 10, label %sw.bb20 - i32 11, label %sw.bb22 + i32 6, label %sw.bb4 + i32 7, label %sw.bb6 + i32 8, label %sw.bb8 + i32 9, label %sw.bb4 + i32 10, label %sw.bb6 + i32 11, label %sw.bb8 i32 12, label %sw.epilog ] -sw.bb4: ; preds = %if.end +sw.bb4: ; preds = %if.end, %if.end, %if.end br label %if.then30.sink.split -sw.bb6: ; preds = %if.end +sw.bb6: ; preds = %if.end, %if.end, %if.end br label %if.then30.sink.split -sw.bb8: ; preds = %if.end - br label %if.then30.sink.split - -sw.bb12: ; preds = %if.end - br label %if.then30.sink.split - -sw.bb14: ; preds = %if.end - br label %if.then30.sink.split - -sw.bb16: ; preds = %if.end - br label %if.then30.sink.split - -sw.bb18: ; preds = %if.end - br label %if.then30.sink.split - -sw.bb20: ; preds = %if.end - br label %if.then30.sink.split - -sw.bb22: ; preds = %if.end +sw.bb8: ; preds = %if.end, %if.end, %if.end br label %if.then30.sink.split sw.epilog: ; preds = %if.end @@ -1797,8 +1779,8 @@ sw.epilog: ; preds = %if.end %tobool.not = icmp eq i64 %add, 0 br i1 %tobool.not, label %return, label %if.then30 -if.then30.sink.split: ; preds = %if.end, %if.end, %if.end, %sw.bb22, %sw.bb20, %sw.bb18, %sw.bb16, %sw.bb14, %sw.bb12, %sw.bb8, %sw.bb6, %sw.bb4 - %.sink = phi i64 [ 2, %sw.bb4 ], [ 4, %sw.bb6 ], [ 8, %sw.bb8 ], [ 2, %sw.bb12 ], [ 4, %sw.bb14 ], [ 8, %sw.bb16 ], [ 2, %sw.bb18 ], [ 4, %sw.bb20 ], [ 8, %sw.bb22 ], [ 1, %if.end ], [ 1, %if.end ], [ 1, %if.end ] +if.then30.sink.split: ; preds = %if.end, %if.end, %if.end, %sw.bb8, %sw.bb6, %sw.bb4 + %.sink = phi i64 [ 2, %sw.bb4 ], [ 4, %sw.bb6 ], [ 8, %sw.bb8 ], [ 1, %if.end ], [ 1, %if.end ], [ 1, %if.end ] store i64 %.sink, ptr %m_size.i, align 8 br label %if.then30 diff --git a/bench/boost/optimized/algorithm.ll b/bench/boost/optimized/algorithm.ll index 44620c07062..9d62670c117 100644 --- a/bench/boost/optimized/algorithm.ll +++ b/bench/boost/optimized/algorithm.ll @@ -33139,7 +33139,7 @@ define dso_local noundef range(i32 -5, 1) i32 @_ZN5boost9unit_test19unit_test_mo _ZN5boost17execution_monitor8vexecuteERKNS_8functionIFvvEEE.exit: ; preds = %46, %50, %52 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #55 - br label %80 + br label %79 58: ; preds = %30, %22, %14, %3 %59 = landingpad { ptr, i32 } @@ -33151,7 +33151,7 @@ _ZN5boost17execution_monitor8vexecuteERKNS_8functionIFvvEEE.exit: ; preds = %46, %60 = extractvalue { ptr, i32 } %eh.lpad-body, 1 %61 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN5boost19execution_exceptionE) #55 %62 = icmp eq i32 %60, %61 - br i1 %62, label %63, label %81 + br i1 %62, label %63, label %80 63: ; preds = %.body %64 = extractvalue { ptr, i32 } %eh.lpad-body, 0 @@ -33169,58 +33169,55 @@ _ZN5boost17execution_monitor8vexecuteERKNS_8functionIFvvEEE.exit: ; preds = %46, 69: ; preds = %68 %70 = load i32, ptr %65, align 8, !tbaa !201 - switch i32 %70, label %78 [ - i32 0, label %79 + switch i32 %70, label %77 [ + i32 0, label %78 i32 200, label %73 - i32 205, label %74 - i32 210, label %75 - i32 215, label %76 - i32 220, label %77 - i32 225, label %77 + i32 205, label %73 + i32 210, label %74 + i32 215, label %75 + i32 220, label %76 + i32 225, label %76 ] 71: ; preds = %68, %66, %63 %72 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() - to label %81 unwind label %82 + to label %80 unwind label %81 -73: ; preds = %69 - br label %79 +73: ; preds = %69, %69 + br label %78 74: ; preds = %69 - br label %79 + br label %78 75: ; preds = %69 - br label %79 - -76: ; preds = %69 - br label %79 + br label %78 -77: ; preds = %69, %69 - br label %79 +76: ; preds = %69, %69 + br label %78 -78: ; preds = %69 - br label %79 +77: ; preds = %69 + br label %78 -79: ; preds = %69, %78, %77, %76, %75, %74, %73 - %.0 = phi i32 [ -2, %78 ], [ -5, %77 ], [ -4, %76 ], [ -3, %75 ], [ -2, %74 ], [ -2, %73 ], [ %70, %69 ] +78: ; preds = %69, %77, %76, %75, %74, %73 + %.0 = phi i32 [ -2, %77 ], [ -5, %76 ], [ -4, %75 ], [ -3, %74 ], [ -2, %73 ], [ %70, %69 ] call void @__cxa_end_catch() - br label %80 + br label %79 -80: ; preds = %_ZN5boost17execution_monitor8vexecuteERKNS_8functionIFvvEEE.exit, %79 - %.1 = phi i32 [ %.0, %79 ], [ 0, %_ZN5boost17execution_monitor8vexecuteERKNS_8functionIFvvEEE.exit ] +79: ; preds = %_ZN5boost17execution_monitor8vexecuteERKNS_8functionIFvvEEE.exit, %78 + %.1 = phi i32 [ %.0, %78 ], [ 0, %_ZN5boost17execution_monitor8vexecuteERKNS_8functionIFvvEEE.exit ] ret i32 %.1 -81: ; preds = %71, %.body +80: ; preds = %71, %.body %.merged = phi { ptr, i32 } [ %eh.lpad-body, %.body ], [ %72, %71 ] resume { ptr, i32 } %.merged -82: ; preds = %71 - %83 = landingpad { ptr, i32 } +81: ; preds = %71 + %82 = landingpad { ptr, i32 } catch ptr null - %84 = extractvalue { ptr, i32 } %83, 0 - call void @__clang_call_terminate(ptr %84) #56 + %83 = extractvalue { ptr, i32 } %82, 0 + call void @__clang_call_terminate(ptr %83) #56 unreachable } diff --git a/bench/boost/optimized/benchmark_fstream.ll b/bench/boost/optimized/benchmark_fstream.ll index cb1fa6b73a4..57d5b26b562 100644 --- a/bench/boost/optimized/benchmark_fstream.ll +++ b/bench/boost/optimized/benchmark_fstream.ll @@ -8505,11 +8505,11 @@ define linkonce_odr hidden noundef ptr @_ZN5boost6nowide13basic_filebufIcSt11cha i32 24, label %.fold.split20 i32 56, label %.fold.split21 i32 25, label %.fold.split22 - i32 9, label %.fold.split23 + i32 9, label %.fold.split22 i32 20, label %.fold.split24 i32 21, label %.fold.split25 - i32 5, label %.fold.split26 - i32 52, label %.fold.split27 + i32 5, label %.fold.split25 + i32 52, label %.fold.split24 i32 12, label %.fold.split28 i32 28, label %.fold.split29 i32 60, label %.fold.split30 @@ -8530,22 +8530,13 @@ define linkonce_odr hidden noundef ptr @_ZN5boost6nowide13basic_filebufIcSt11cha .fold.split21: ; preds = %1 br label %.fold.split -.fold.split22: ; preds = %1 +.fold.split22: ; preds = %1, %1 br label %.fold.split -.fold.split23: ; preds = %1 +.fold.split24: ; preds = %1, %1 br label %.fold.split -.fold.split24: ; preds = %1 - br label %.fold.split - -.fold.split25: ; preds = %1 - br label %.fold.split - -.fold.split26: ; preds = %1 - br label %.fold.split - -.fold.split27: ; preds = %1 +.fold.split25: ; preds = %1, %1 br label %.fold.split .fold.split28: ; preds = %1 @@ -8563,8 +8554,8 @@ define linkonce_odr hidden noundef ptr @_ZN5boost6nowide13basic_filebufIcSt11cha .fold.split32: ; preds = %1, %1 br label %.fold.split -.fold.split: ; preds = %1, %1, %.fold.split32, %.fold.split31, %.fold.split30, %.fold.split29, %.fold.split28, %.fold.split27, %.fold.split26, %.fold.split25, %.fold.split24, %.fold.split23, %.fold.split22, %.fold.split21, %.fold.split20, %.fold.split19, %2 - %.0 = phi ptr [ @.str.42, %1 ], [ %.str.53., %2 ], [ @.str.44, %.fold.split19 ], [ @.str.45, %.fold.split20 ], [ @.str.46, %.fold.split21 ], [ @.str.47, %.fold.split22 ], [ @.str.47, %.fold.split23 ], [ @.str.48, %.fold.split24 ], [ @.str.49, %.fold.split25 ], [ @.str.49, %.fold.split26 ], [ @.str.48, %.fold.split27 ], [ @.str.50, %.fold.split28 ], [ @.str.51, %.fold.split29 ], [ @.str.52, %.fold.split30 ], [ @.str.53, %.fold.split31 ], [ @.str.43, %.fold.split32 ], [ @.str.42, %1 ] +.fold.split: ; preds = %1, %1, %.fold.split32, %.fold.split31, %.fold.split30, %.fold.split29, %.fold.split28, %.fold.split25, %.fold.split24, %.fold.split22, %.fold.split21, %.fold.split20, %.fold.split19, %2 + %.0 = phi ptr [ @.str.42, %1 ], [ %.str.53., %2 ], [ @.str.44, %.fold.split19 ], [ @.str.45, %.fold.split20 ], [ @.str.46, %.fold.split21 ], [ @.str.47, %.fold.split22 ], [ @.str.48, %.fold.split24 ], [ @.str.49, %.fold.split25 ], [ @.str.50, %.fold.split28 ], [ @.str.51, %.fold.split29 ], [ @.str.52, %.fold.split30 ], [ @.str.53, %.fold.split31 ], [ @.str.43, %.fold.split32 ], [ @.str.42, %1 ] ret ptr %.0 } diff --git a/bench/brotli/optimized/encode.c.ll b/bench/brotli/optimized/encode.c.ll index 2f3895cc802..94127abfca3 100644 --- a/bench/brotli/optimized/encode.c.ll +++ b/bench/brotli/optimized/encode.c.ll @@ -5404,12 +5404,12 @@ if.else33: ; preds = %ChooseHasher.exit.t %add57 = add nuw nsw i64 %mul55, %mul56 switch i32 %6, label %HasherSize.exit [ i32 2, label %sw.bb.i - i32 3, label %sw.bb1.i + i32 3, label %sw.bb.i i32 4, label %sw.bb2.i i32 5, label %sw.bb3.i i32 6, label %sw.bb4.i i32 40, label %sw.bb5.i - i32 41, label %sw.bb6.i + i32 41, label %sw.bb5.i i32 42, label %sw.bb7.i i32 54, label %sw.bb8.i i32 35, label %HashMemAllocInBytesH35.exit @@ -5418,10 +5418,7 @@ if.else33: ; preds = %ChooseHasher.exit.t i32 10, label %land.lhs.true.i366 ] -sw.bb.i: ; preds = %if.else33 - br label %HasherSize.exit - -sw.bb1.i: ; preds = %if.else33 +sw.bb.i: ; preds = %if.else33, %if.else33 br label %HasherSize.exit sw.bb2.i: ; preds = %if.else33 @@ -5451,10 +5448,7 @@ sw.bb4.i: ; preds = %if.else33 %mul5.i266204 = shl i64 %mul4.i265, %sh_prom2.i262 br label %HasherSize.exit -sw.bb5.i: ; preds = %if.else33 - br label %HasherSize.exit - -sw.bb6.i: ; preds = %if.else33 +sw.bb5.i: ; preds = %if.else33, %if.else33 br label %HasherSize.exit sw.bb7.i: ; preds = %if.else33 @@ -5488,10 +5482,10 @@ land.lhs.true.i366: ; preds = %if.else33 %mul.i364 = shl nuw nsw i64 %spec.select, 3 br label %HasherSize.exit -HasherSize.exit: ; preds = %if.else33, %land.lhs.true.i366, %sw.bb11.i, %HashMemAllocInBytesH55.exit, %HashMemAllocInBytesH35.exit, %sw.bb8.i, %sw.bb7.i, %sw.bb6.i, %sw.bb5.i, %sw.bb4.i, %sw.bb3.i, %sw.bb2.i, %sw.bb1.i, %sw.bb.i - %hash_size47.sroa.25.0 = phi i64 [ 0, %if.else33 ], [ 0, %land.lhs.true.i366 ], [ 67108864, %sw.bb11.i ], [ 67108864, %HashMemAllocInBytesH55.exit ], [ 67108864, %HashMemAllocInBytesH35.exit ], [ 0, %sw.bb8.i ], [ 0, %sw.bb7.i ], [ 0, %sw.bb6.i ], [ 0, %sw.bb5.i ], [ 0, %sw.bb4.i ], [ 0, %sw.bb3.i ], [ 0, %sw.bb2.i ], [ 0, %sw.bb1.i ], [ 0, %sw.bb.i ] - %hash_size47.sroa.15.0 = phi i64 [ 0, %if.else33 ], [ %mul.i364, %land.lhs.true.i366 ], [ %mul5.i.i203, %sw.bb11.i ], [ 0, %HashMemAllocInBytesH55.exit ], [ 0, %HashMemAllocInBytesH35.exit ], [ 0, %sw.bb8.i ], [ 1048576, %sw.bb7.i ], [ 262144, %sw.bb6.i ], [ 262144, %sw.bb5.i ], [ %mul5.i266204, %sw.bb4.i ], [ %mul5.i205, %sw.bb3.i ], [ 0, %sw.bb2.i ], [ 0, %sw.bb1.i ], [ 0, %sw.bb.i ] - %hash_size47.sroa.0.0 = phi i64 [ 0, %if.else33 ], [ 524288, %land.lhs.true.i366 ], [ %mul.i.i, %sw.bb11.i ], [ 4194304, %HashMemAllocInBytesH55.exit ], [ 262144, %HashMemAllocInBytesH35.exit ], [ 4194304, %sw.bb8.i ], [ 262144, %sw.bb7.i ], [ 262144, %sw.bb6.i ], [ 262144, %sw.bb5.i ], [ %mul.i264, %sw.bb4.i ], [ %mul.i, %sw.bb3.i ], [ 524288, %sw.bb2.i ], [ 262144, %sw.bb1.i ], [ 262144, %sw.bb.i ] +HasherSize.exit: ; preds = %if.else33, %land.lhs.true.i366, %sw.bb11.i, %HashMemAllocInBytesH55.exit, %HashMemAllocInBytesH35.exit, %sw.bb8.i, %sw.bb7.i, %sw.bb5.i, %sw.bb4.i, %sw.bb3.i, %sw.bb2.i, %sw.bb.i + %hash_size47.sroa.25.0 = phi i64 [ 0, %if.else33 ], [ 0, %land.lhs.true.i366 ], [ 67108864, %sw.bb11.i ], [ 67108864, %HashMemAllocInBytesH55.exit ], [ 67108864, %HashMemAllocInBytesH35.exit ], [ 0, %sw.bb8.i ], [ 0, %sw.bb7.i ], [ 0, %sw.bb5.i ], [ 0, %sw.bb4.i ], [ 0, %sw.bb3.i ], [ 0, %sw.bb2.i ], [ 0, %sw.bb.i ] + %hash_size47.sroa.15.0 = phi i64 [ 0, %if.else33 ], [ %mul.i364, %land.lhs.true.i366 ], [ %mul5.i.i203, %sw.bb11.i ], [ 0, %HashMemAllocInBytesH55.exit ], [ 0, %HashMemAllocInBytesH35.exit ], [ 0, %sw.bb8.i ], [ 1048576, %sw.bb7.i ], [ 262144, %sw.bb5.i ], [ %mul5.i266204, %sw.bb4.i ], [ %mul5.i205, %sw.bb3.i ], [ 0, %sw.bb2.i ], [ 0, %sw.bb.i ] + %hash_size47.sroa.0.0 = phi i64 [ 0, %if.else33 ], [ 524288, %land.lhs.true.i366 ], [ %mul.i.i, %sw.bb11.i ], [ 4194304, %HashMemAllocInBytesH55.exit ], [ 262144, %HashMemAllocInBytesH35.exit ], [ 4194304, %sw.bb8.i ], [ 262144, %sw.bb7.i ], [ 262144, %sw.bb5.i ], [ %mul.i264, %sw.bb4.i ], [ %mul.i, %sw.bb3.i ], [ 524288, %sw.bb2.i ], [ 262144, %sw.bb.i ] %cmp61 = icmp ult i32 %quality, 4 br i1 %cmp61, label %if.then63, label %if.end67 diff --git a/bench/c3c/optimized/c_abi_x64.c.ll b/bench/c3c/optimized/c_abi_x64.c.ll index 91c40a9e9ee..cda0e3479cb 100644 --- a/bench/c3c/optimized/c_abi_x64.c.ll +++ b/bench/c3c/optimized/c_abi_x64.c.ll @@ -900,105 +900,102 @@ define dso_local void @x64_classify_struct_union(ptr noundef %0, i64 noundef %1, 60: ; preds = %55 %spec.select.i = tail call i32 @llvm.umin.i32(i32 %57, i32 %58) %spec.select15.i = tail call i32 @llvm.umax.i32(i32 %57, i32 %58) - switch i32 %spec.select.i, label %64 [ + switch i32 %spec.select.i, label %63 [ i32 0, label %x64_merge.exit i32 1, label %61 - i32 2, label %62 - i32 4, label %63 - i32 3, label %63 + i32 2, label %61 + i32 4, label %62 + i32 3, label %62 ] -61: ; preds = %60 +61: ; preds = %60, %60 br label %x64_merge.exit -62: ; preds = %60 +62: ; preds = %60, %60 br label %x64_merge.exit -63: ; preds = %60, %60 - br label %x64_merge.exit - -64: ; preds = %60 +63: ; preds = %60 tail call void (ptr, ...) @error_exit(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.x64_merge, ptr noundef nonnull @.str.2, i32 noundef 203) #8 unreachable -x64_merge.exit: ; preds = %55, %60, %61, %62, %63 - %.0.i = phi i32 [ 3, %63 ], [ %spec.select.i, %62 ], [ %spec.select.i, %61 ], [ %57, %55 ], [ %spec.select15.i, %60 ] +x64_merge.exit: ; preds = %55, %60, %61, %62 + %.0.i = phi i32 [ 3, %62 ], [ %spec.select.i, %61 ], [ %57, %55 ], [ %spec.select15.i, %60 ] store i32 %.0.i, ptr %3, align 4 - %65 = load i32, ptr %4, align 4 - %66 = load i32, ptr %8, align 4 - %67 = icmp eq i32 %65, %66 - br i1 %67, label %x64_merge.exit63, label %68 - -68: ; preds = %x64_merge.exit - %spec.select.i60 = tail call i32 @llvm.umin.i32(i32 %65, i32 %66) - %spec.select15.i61 = tail call i32 @llvm.umax.i32(i32 %65, i32 %66) - switch i32 %spec.select.i60, label %71 [ + %64 = load i32, ptr %4, align 4 + %65 = load i32, ptr %8, align 4 + %66 = icmp eq i32 %64, %65 + br i1 %66, label %x64_merge.exit63, label %67 + +67: ; preds = %x64_merge.exit + %spec.select.i60 = tail call i32 @llvm.umin.i32(i32 %64, i32 %65) + %spec.select15.i61 = tail call i32 @llvm.umax.i32(i32 %64, i32 %65) + switch i32 %spec.select.i60, label %70 [ i32 0, label %x64_merge.exit63 i32 1, label %.thread - i32 2, label %69 - i32 4, label %70 - i32 3, label %70 + i32 2, label %68 + i32 4, label %69 + i32 3, label %69 ] -.thread: ; preds = %68 +.thread: ; preds = %67 store i32 1, ptr %4, align 4 - br label %86 + br label %85 -69: ; preds = %68 +68: ; preds = %67 br label %x64_merge.exit63 -70: ; preds = %68, %68 +69: ; preds = %67, %67 br label %x64_merge.exit63 -71: ; preds = %68 +70: ; preds = %67 tail call void (ptr, ...) @error_exit(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.x64_merge, ptr noundef nonnull @.str.2, i32 noundef 203) #8 unreachable -x64_merge.exit63: ; preds = %x64_merge.exit, %68, %69, %70 - %.0.i62 = phi i32 [ 3, %70 ], [ 2, %69 ], [ %65, %x64_merge.exit ], [ %spec.select15.i61, %68 ] +x64_merge.exit63: ; preds = %x64_merge.exit, %67, %68, %69 + %.0.i62 = phi i32 [ 3, %69 ], [ 2, %68 ], [ %64, %x64_merge.exit ], [ %spec.select15.i61, %67 ] store i32 %.0.i62, ptr %4, align 4 - %72 = load i32, ptr %3, align 4 - %73 = icmp eq i32 %72, 1 - %74 = icmp eq i32 %.0.i62, 1 - %or.cond53 = or i1 %74, %73 + %71 = load i32, ptr %3, align 4 + %72 = icmp eq i32 %71, 1 + %73 = icmp eq i32 %.0.i62, 1 + %or.cond53 = or i1 %73, %72 br i1 %or.cond53, label %.loopexit, label %28 .loopexit: ; preds = %x64_merge.exit63, %.thread-pre-split_crit_edge - %75 = phi i32 [ %.pr.pre, %.thread-pre-split_crit_edge ], [ %.0.i62, %x64_merge.exit63 ] - %76 = icmp eq i32 %75, 1 - br i1 %76, label %86, label %.loopexit.thread + %74 = phi i32 [ %.pr.pre, %.thread-pre-split_crit_edge ], [ %.0.i62, %x64_merge.exit63 ] + %75 = icmp eq i32 %74, 1 + br i1 %75, label %85, label %.loopexit.thread .loopexit.thread: ; preds = %28, %.loopexit - %77 = phi i32 [ %75, %.loopexit ], [ %.0.i62, %28 ] - %78 = icmp ugt i32 %9, 16 - br i1 %78, label %79, label %81 - -79: ; preds = %.loopexit.thread - %80 = load i32, ptr %3, align 4 - %.not.i66 = icmp eq i32 %80, 3 - %.not9.i67 = icmp eq i32 %77, 4 + %76 = phi i32 [ %74, %.loopexit ], [ %.0.i62, %28 ] + %77 = icmp ugt i32 %9, 16 + br i1 %77, label %78, label %80 + +78: ; preds = %.loopexit.thread + %79 = load i32, ptr %3, align 4 + %.not.i66 = icmp eq i32 %79, 3 + %.not9.i67 = icmp eq i32 %76, 4 %or.cond.i68 = and i1 %.not9.i67, %.not.i66 - br i1 %or.cond.i68, label %x64_classify_post_merge.exit, label %86 + br i1 %or.cond.i68, label %x64_classify_post_merge.exit, label %85 -81: ; preds = %.loopexit.thread - %82 = icmp eq i32 %77, 4 - br i1 %82, label %.thread.i64, label %x64_classify_post_merge.exit +80: ; preds = %.loopexit.thread + %81 = icmp eq i32 %76, 4 + br i1 %81, label %.thread.i64, label %x64_classify_post_merge.exit -.thread.i64: ; preds = %81 +.thread.i64: ; preds = %80 %.pre.i65 = load i32, ptr %3, align 4 - %83 = add i32 %.pre.i65, -3 - %84 = icmp ult i32 %83, 2 - br i1 %84, label %x64_classify_post_merge.exit, label %85 + %82 = add i32 %.pre.i65, -3 + %83 = icmp ult i32 %82, 2 + br i1 %83, label %x64_classify_post_merge.exit, label %84 -85: ; preds = %.thread.i64 +84: ; preds = %.thread.i64 store i32 3, ptr %4, align 4 br label %x64_classify_post_merge.exit -86: ; preds = %.thread, %79, %.loopexit +85: ; preds = %.thread, %78, %.loopexit store i32 1, ptr %3, align 4 br label %x64_classify_post_merge.exit -x64_classify_post_merge.exit: ; preds = %52, %86, %85, %.thread.i64, %81, %79, %.thread.i54, %45, %12, %6 +x64_classify_post_merge.exit: ; preds = %52, %85, %84, %.thread.i64, %80, %78, %.thread.i54, %45, %12, %6 ret void } @@ -1241,104 +1238,101 @@ define dso_local void @x64_classify_array(ptr noundef %0, i64 noundef %1, ptr no 43: ; preds = %.lr.ph %spec.select.i = tail call i32 @llvm.umin.i32(i32 %40, i32 %41) %spec.select15.i = tail call i32 @llvm.umax.i32(i32 %40, i32 %41) - switch i32 %spec.select.i, label %47 [ + switch i32 %spec.select.i, label %46 [ i32 0, label %x64_merge.exit i32 1, label %44 - i32 2, label %45 - i32 4, label %46 - i32 3, label %46 + i32 2, label %44 + i32 4, label %45 + i32 3, label %45 ] -44: ; preds = %43 - br label %x64_merge.exit - -45: ; preds = %43 +44: ; preds = %43, %43 br label %x64_merge.exit -46: ; preds = %43, %43 +45: ; preds = %43, %43 br label %x64_merge.exit -47: ; preds = %43 +46: ; preds = %43 tail call void (ptr, ...) @error_exit(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.x64_merge, ptr noundef nonnull @.str.2, i32 noundef 203) #8 unreachable -x64_merge.exit: ; preds = %.lr.ph, %43, %44, %45, %46 - %.0.i = phi i32 [ 3, %46 ], [ %spec.select.i, %45 ], [ %spec.select.i, %44 ], [ %40, %.lr.ph ], [ %spec.select15.i, %43 ] +x64_merge.exit: ; preds = %.lr.ph, %43, %44, %45 + %.0.i = phi i32 [ 3, %45 ], [ %spec.select.i, %44 ], [ %40, %.lr.ph ], [ %spec.select15.i, %43 ] store i32 %.0.i, ptr %3, align 4 - %48 = load i32, ptr %4, align 4 - %49 = load i32, ptr %8, align 4 - %50 = icmp eq i32 %48, %49 - br i1 %50, label %x64_merge.exit42, label %51 - -51: ; preds = %x64_merge.exit - %spec.select.i39 = tail call i32 @llvm.umin.i32(i32 %48, i32 %49) - %spec.select15.i40 = tail call i32 @llvm.umax.i32(i32 %48, i32 %49) - switch i32 %spec.select.i39, label %54 [ + %47 = load i32, ptr %4, align 4 + %48 = load i32, ptr %8, align 4 + %49 = icmp eq i32 %47, %48 + br i1 %49, label %x64_merge.exit42, label %50 + +50: ; preds = %x64_merge.exit + %spec.select.i39 = tail call i32 @llvm.umin.i32(i32 %47, i32 %48) + %spec.select15.i40 = tail call i32 @llvm.umax.i32(i32 %47, i32 %48) + switch i32 %spec.select.i39, label %53 [ i32 0, label %x64_merge.exit42 i32 1, label %.thread - i32 2, label %52 - i32 4, label %53 - i32 3, label %53 + i32 2, label %51 + i32 4, label %52 + i32 3, label %52 ] -.thread: ; preds = %51 +.thread: ; preds = %50 store i32 1, ptr %4, align 4 - br label %68 + br label %67 -52: ; preds = %51 +51: ; preds = %50 br label %x64_merge.exit42 -53: ; preds = %51, %51 +52: ; preds = %50, %50 br label %x64_merge.exit42 -54: ; preds = %51 +53: ; preds = %50 tail call void (ptr, ...) @error_exit(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.x64_merge, ptr noundef nonnull @.str.2, i32 noundef 203) #8 unreachable -x64_merge.exit42: ; preds = %x64_merge.exit, %51, %52, %53 - %.0.i41 = phi i32 [ 3, %53 ], [ 2, %52 ], [ %48, %x64_merge.exit ], [ %spec.select15.i40, %51 ] +x64_merge.exit42: ; preds = %x64_merge.exit, %50, %51, %52 + %.0.i41 = phi i32 [ 3, %52 ], [ 2, %51 ], [ %47, %x64_merge.exit ], [ %spec.select15.i40, %50 ] store i32 %.0.i41, ptr %4, align 4 - %55 = load i32, ptr %3, align 4 - %56 = icmp eq i32 %55, 1 - %57 = icmp eq i32 %.0.i41, 1 - %or.cond38 = or i1 %57, %56 + %54 = load i32, ptr %3, align 4 + %55 = icmp eq i32 %54, 1 + %56 = icmp eq i32 %.0.i41, 1 + %or.cond38 = or i1 %56, %55 br i1 %or.cond38, label %.loopexit, label %35 .loopexit: ; preds = %x64_merge.exit42, %.thread-pre-split_crit_edge - %58 = phi i32 [ %.pr.pre, %.thread-pre-split_crit_edge ], [ %.0.i41, %x64_merge.exit42 ] - %59 = icmp eq i32 %58, 1 - br i1 %59, label %68, label %.loopexit.thread + %57 = phi i32 [ %.pr.pre, %.thread-pre-split_crit_edge ], [ %.0.i41, %x64_merge.exit42 ] + %58 = icmp eq i32 %57, 1 + br i1 %58, label %67, label %.loopexit.thread .loopexit.thread: ; preds = %35, %.loopexit - %60 = phi i32 [ %58, %.loopexit ], [ %.0.i41, %35 ] - br i1 %25, label %61, label %63 + %59 = phi i32 [ %57, %.loopexit ], [ %.0.i41, %35 ] + br i1 %25, label %60, label %62 -61: ; preds = %.loopexit.thread - %62 = load i32, ptr %3, align 4 - %.not.i45 = icmp eq i32 %62, 3 - %.not9.i46 = icmp eq i32 %60, 4 +60: ; preds = %.loopexit.thread + %61 = load i32, ptr %3, align 4 + %.not.i45 = icmp eq i32 %61, 3 + %.not9.i46 = icmp eq i32 %59, 4 %or.cond.i47 = and i1 %.not9.i46, %.not.i45 - br i1 %or.cond.i47, label %x64_classify_post_merge.exit, label %68 + br i1 %or.cond.i47, label %x64_classify_post_merge.exit, label %67 -63: ; preds = %.loopexit.thread - %64 = icmp eq i32 %60, 4 - br i1 %64, label %.thread.i43, label %x64_classify_post_merge.exit +62: ; preds = %.loopexit.thread + %63 = icmp eq i32 %59, 4 + br i1 %63, label %.thread.i43, label %x64_classify_post_merge.exit -.thread.i43: ; preds = %63 +.thread.i43: ; preds = %62 %.pre.i44 = load i32, ptr %3, align 4 - %65 = add i32 %.pre.i44, -3 - %66 = icmp ult i32 %65, 2 - br i1 %66, label %x64_classify_post_merge.exit, label %67 + %64 = add i32 %.pre.i44, -3 + %65 = icmp ult i32 %64, 2 + br i1 %65, label %x64_classify_post_merge.exit, label %66 -67: ; preds = %.thread.i43 +66: ; preds = %.thread.i43 store i32 3, ptr %4, align 4 br label %x64_classify_post_merge.exit -68: ; preds = %.thread, %61, %.loopexit +67: ; preds = %.thread, %60, %.loopexit store i32 1, ptr %3, align 4 br label %x64_classify_post_merge.exit -x64_classify_post_merge.exit: ; preds = %20, %68, %67, %.thread.i43, %63, %61, %.thread.i, %6, %31 +x64_classify_post_merge.exit: ; preds = %20, %67, %66, %.thread.i43, %62, %60, %.thread.i, %6, %31 ret void } diff --git a/bench/c3c/optimized/lexer.c.ll b/bench/c3c/optimized/lexer.c.ll index 7308ac29623..8e2aff6ecf4 100644 --- a/bench/c3c/optimized/lexer.c.ll +++ b/bench/c3c/optimized/lexer.c.ll @@ -4770,8 +4770,8 @@ declare ptr @symtab_add(ptr noundef, i32 noundef, i32 noundef, ptr noundef) loca ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable define internal fastcc signext range(i8 -1, 121) i8 @char_is_valid_escape(i8 noundef signext %0) unnamed_addr #6 { - switch i8 %0, label %16 [ - i8 97, label %17 + switch i8 %0, label %11 [ + i8 97, label %12 i8 98, label %2 i8 101, label %3 i8 102, label %4 @@ -4780,61 +4780,46 @@ define internal fastcc signext range(i8 -1, 121) i8 @char_is_valid_escape(i8 nou i8 116, label %7 i8 118, label %8 i8 120, label %9 - i8 117, label %10 - i8 85, label %11 - i8 39, label %12 - i8 34, label %13 - i8 92, label %14 - i8 48, label %15 + i8 117, label %9 + i8 85, label %9 + i8 39, label %9 + i8 34, label %9 + i8 92, label %9 + i8 48, label %10 ] 2: ; preds = %1 - br label %17 + br label %12 3: ; preds = %1 - br label %17 + br label %12 4: ; preds = %1 - br label %17 + br label %12 5: ; preds = %1 - br label %17 + br label %12 6: ; preds = %1 - br label %17 + br label %12 7: ; preds = %1 - br label %17 + br label %12 8: ; preds = %1 - br label %17 + br label %12 -9: ; preds = %1 - br label %17 +9: ; preds = %1, %1, %1, %1, %1, %1 + br label %12 10: ; preds = %1 - br label %17 + br label %12 11: ; preds = %1 - br label %17 - -12: ; preds = %1 - br label %17 - -13: ; preds = %1 - br label %17 - -14: ; preds = %1 - br label %17 - -15: ; preds = %1 - br label %17 - -16: ; preds = %1 - br label %17 + br label %12 -17: ; preds = %1, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3, %2 - %.0 = phi i8 [ -1, %16 ], [ 0, %15 ], [ %0, %14 ], [ %0, %13 ], [ %0, %12 ], [ %0, %11 ], [ %0, %10 ], [ %0, %9 ], [ 11, %8 ], [ 9, %7 ], [ 13, %6 ], [ 10, %5 ], [ 12, %4 ], [ 27, %3 ], [ 8, %2 ], [ 7, %1 ] +12: ; preds = %1, %11, %10, %9, %8, %7, %6, %5, %4, %3, %2 + %.0 = phi i8 [ -1, %11 ], [ 0, %10 ], [ %0, %9 ], [ 11, %8 ], [ 9, %7 ], [ 13, %6 ], [ 10, %5 ], [ 12, %4 ], [ 27, %3 ], [ 8, %2 ], [ 7, %1 ] ret i8 %.0 } diff --git a/bench/casadi/optimized/cvodes_spbcgs.c.ll b/bench/casadi/optimized/cvodes_spbcgs.c.ll index bccd03bfc30..d68286a54e3 100644 --- a/bench/casadi/optimized/cvodes_spbcgs.c.ll +++ b/bench/casadi/optimized/cvodes_spbcgs.c.ll @@ -341,11 +341,11 @@ define internal range(i32 -1, 2) i32 @CVSpbcgSolve(ptr noundef %0, ptr noundef % %23 = getelementptr inbounds i8, ptr %0, i64 1352 %24 = load i32, ptr %23, align 8 %25 = icmp sgt i32 %24, 0 - br i1 %25, label %26, label %69 + br i1 %25, label %26, label %67 26: ; preds = %22 tail call void @N_VConst(double noundef 0.000000e+00, ptr noundef %1) #6 - br label %69 + br label %67 27: ; preds = %5 %28 = getelementptr inbounds i8, ptr %10, i64 128 @@ -385,7 +385,7 @@ define internal range(i32 -1, 2) i32 @CVSpbcgSolve(ptr noundef %0, ptr noundef % .thread: ; preds = %27 %52 = getelementptr inbounds i8, ptr %10, i64 208 store i64 0, ptr %52, align 8 - br label %69 + br label %67 53: ; preds = %27 %54 = getelementptr inbounds i8, ptr %10, i64 88 @@ -395,14 +395,14 @@ define internal range(i32 -1, 2) i32 @CVSpbcgSolve(ptr noundef %0, ptr noundef % %57 = sext i32 %40 to i64 %58 = getelementptr inbounds i8, ptr %10, i64 208 store i64 %57, ptr %58, align 8 - switch i32 %40, label %69 [ - i32 -3, label %68 + switch i32 %40, label %67 [ + i32 -3, label %66 i32 1, label %59 i32 2, label %63 - i32 3, label %64 - i32 4, label %65 - i32 -1, label %66 - i32 -2, label %67 + i32 3, label %63 + i32 4, label %63 + i32 -1, label %64 + i32 -2, label %65 ] 59: ; preds = %53 @@ -410,30 +410,24 @@ define internal range(i32 -1, 2) i32 @CVSpbcgSolve(ptr noundef %0, ptr noundef % %61 = load i32, ptr %60, align 8 %62 = icmp ne i32 %61, 0 %. = zext i1 %62 to i32 - br label %69 + br label %67 -63: ; preds = %53 - br label %69 +63: ; preds = %53, %53, %53 + br label %67 64: ; preds = %53 - br label %69 + br label %67 65: ; preds = %53 - br label %69 - -66: ; preds = %53 - br label %69 - -67: ; preds = %53 call void (ptr, i32, ptr, ptr, ptr, ...) @cvProcessError(ptr noundef nonnull %0, i32 noundef -2, ptr noundef nonnull @.str, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.14) #6 - br label %69 + br label %67 -68: ; preds = %53 +66: ; preds = %53 call void (ptr, i32, ptr, ptr, ptr, ...) @cvProcessError(ptr noundef nonnull %0, i32 noundef -3, ptr noundef nonnull @.str, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.15) #6 - br label %69 + br label %67 -69: ; preds = %.thread, %53, %59, %22, %26, %68, %67, %66, %65, %64, %63 - %.0 = phi i32 [ -1, %68 ], [ -1, %67 ], [ -1, %66 ], [ 1, %65 ], [ 1, %64 ], [ 1, %63 ], [ 0, %26 ], [ 0, %22 ], [ %., %59 ], [ 0, %53 ], [ 0, %.thread ] +67: ; preds = %.thread, %53, %59, %22, %26, %66, %65, %64, %63 + %.0 = phi i32 [ -1, %66 ], [ -1, %65 ], [ -1, %64 ], [ 1, %63 ], [ 0, %26 ], [ 0, %22 ], [ %., %59 ], [ 0, %53 ], [ 0, %.thread ] ret i32 %.0 } diff --git a/bench/casadi/optimized/cvodes_spgmr.c.ll b/bench/casadi/optimized/cvodes_spgmr.c.ll index 3c970ee3208..17e69b97a81 100644 --- a/bench/casadi/optimized/cvodes_spgmr.c.ll +++ b/bench/casadi/optimized/cvodes_spgmr.c.ll @@ -338,11 +338,11 @@ define internal range(i32 -1, 2) i32 @CVSpgmrSolve(ptr noundef %0, ptr noundef % %23 = getelementptr inbounds i8, ptr %0, i64 1352 %24 = load i32, ptr %23, align 8 %25 = icmp sgt i32 %24, 0 - br i1 %25, label %26, label %74 + br i1 %25, label %26, label %69 26: ; preds = %22 tail call void @N_VConst(double noundef 0.000000e+00, ptr noundef %1) #6 - br label %74 + br label %69 27: ; preds = %5 %28 = getelementptr inbounds i8, ptr %10, i64 128 @@ -384,7 +384,7 @@ define internal range(i32 -1, 2) i32 @CVSpgmrSolve(ptr noundef %0, ptr noundef % .thread: ; preds = %27 %54 = getelementptr inbounds i8, ptr %10, i64 208 store i64 0, ptr %54, align 8 - br label %74 + br label %69 55: ; preds = %27 %56 = getelementptr inbounds i8, ptr %10, i64 88 @@ -394,17 +394,17 @@ define internal range(i32 -1, 2) i32 @CVSpgmrSolve(ptr noundef %0, ptr noundef % %59 = sext i32 %42 to i64 %60 = getelementptr inbounds i8, ptr %10, i64 208 store i64 %59, ptr %60, align 8 - switch i32 %42, label %74 [ - i32 -5, label %73 + switch i32 %42, label %69 [ + i32 -5, label %66 i32 1, label %61 i32 2, label %65 - i32 3, label %66 - i32 4, label %67 - i32 5, label %68 - i32 -1, label %69 - i32 -2, label %70 - i32 -3, label %71 - i32 -4, label %72 + i32 3, label %65 + i32 4, label %65 + i32 5, label %65 + i32 -1, label %66 + i32 -2, label %67 + i32 -3, label %68 + i32 -4, label %66 ] 61: ; preds = %55 @@ -412,39 +412,24 @@ define internal range(i32 -1, 2) i32 @CVSpgmrSolve(ptr noundef %0, ptr noundef % %63 = load i32, ptr %62, align 8 %64 = icmp ne i32 %63, 0 %. = zext i1 %64 to i32 - br label %74 + br label %69 -65: ; preds = %55 - br label %74 +65: ; preds = %55, %55, %55, %55 + br label %69 -66: ; preds = %55 - br label %74 +66: ; preds = %55, %55, %55 + br label %69 67: ; preds = %55 - br label %74 - -68: ; preds = %55 - br label %74 - -69: ; preds = %55 - br label %74 - -70: ; preds = %55 call void (ptr, i32, ptr, ptr, ptr, ...) @cvProcessError(ptr noundef nonnull %0, i32 noundef -2, ptr noundef nonnull @.str, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.14) #6 - br label %74 + br label %69 -71: ; preds = %55 +68: ; preds = %55 call void (ptr, i32, ptr, ptr, ptr, ...) @cvProcessError(ptr noundef nonnull %0, i32 noundef -3, ptr noundef nonnull @.str, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.15) #6 - br label %74 - -72: ; preds = %55 - br label %74 - -73: ; preds = %55 - br label %74 + br label %69 -74: ; preds = %.thread, %55, %61, %22, %26, %73, %72, %71, %70, %69, %68, %67, %66, %65 - %.0 = phi i32 [ -1, %73 ], [ -1, %72 ], [ -1, %71 ], [ -1, %70 ], [ -1, %69 ], [ 1, %68 ], [ 1, %67 ], [ 1, %66 ], [ 1, %65 ], [ 0, %26 ], [ 0, %22 ], [ %., %61 ], [ 0, %55 ], [ 0, %.thread ] +69: ; preds = %.thread, %55, %61, %22, %26, %68, %67, %66, %65 + %.0 = phi i32 [ -1, %68 ], [ -1, %67 ], [ -1, %66 ], [ 1, %65 ], [ 0, %26 ], [ 0, %22 ], [ %., %61 ], [ 0, %55 ], [ 0, %.thread ] ret i32 %.0 } diff --git a/bench/casadi/optimized/idas_spbcgs.c.ll b/bench/casadi/optimized/idas_spbcgs.c.ll index 3c0827da12e..aac31c58fe5 100644 --- a/bench/casadi/optimized/idas_spbcgs.c.ll +++ b/bench/casadi/optimized/idas_spbcgs.c.ll @@ -321,7 +321,7 @@ define internal range(i32 -1, 2) i32 @IDASpbcgSolve(ptr noundef %0, ptr noundef .thread: ; preds = %6 store i64 %35, ptr %36, align 8 - br label %61 + br label %58 50: ; preds = %6 %51 = getelementptr inbounds i8, ptr %11, i64 72 @@ -329,41 +329,32 @@ define internal range(i32 -1, 2) i32 @IDASpbcgSolve(ptr noundef %0, ptr noundef %53 = add nsw i64 %52, 1 store i64 %53, ptr %51, align 8 store i64 %35, ptr %36, align 8 - switch i32 %34, label %61 [ - i32 -3, label %60 + switch i32 %34, label %58 [ + i32 -3, label %57 i32 1, label %54 - i32 2, label %55 - i32 3, label %56 - i32 4, label %57 - i32 -1, label %58 - i32 -2, label %59 + i32 2, label %54 + i32 3, label %54 + i32 4, label %54 + i32 -1, label %55 + i32 -2, label %56 ] -54: ; preds = %50 - br label %61 +54: ; preds = %50, %50, %50, %50 + br label %58 55: ; preds = %50 - br label %61 + br label %58 56: ; preds = %50 - br label %61 - -57: ; preds = %50 - br label %61 - -58: ; preds = %50 - br label %61 - -59: ; preds = %50 call void (ptr, i32, ptr, ptr, ptr, ...) @IDAProcessError(ptr noundef nonnull %0, i32 noundef -2, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.12) #7 - br label %61 + br label %58 -60: ; preds = %50 +57: ; preds = %50 call void (ptr, i32, ptr, ptr, ptr, ...) @IDAProcessError(ptr noundef nonnull %0, i32 noundef -3, ptr noundef nonnull @.str, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.13) #7 - br label %61 + br label %58 -61: ; preds = %.thread, %50, %60, %59, %58, %57, %56, %55, %54 - %.0 = phi i32 [ -1, %60 ], [ -1, %59 ], [ %34, %58 ], [ 1, %57 ], [ 1, %56 ], [ 1, %55 ], [ %34, %54 ], [ 0, %50 ], [ 0, %.thread ] +58: ; preds = %.thread, %50, %57, %56, %55, %54 + %.0 = phi i32 [ -1, %57 ], [ -1, %56 ], [ -1, %55 ], [ 1, %54 ], [ 0, %50 ], [ 0, %.thread ] ret i32 %.0 } diff --git a/bench/casadi/optimized/idas_spgmr.c.ll b/bench/casadi/optimized/idas_spgmr.c.ll index 0e57b116377..d8bb5886686 100644 --- a/bench/casadi/optimized/idas_spgmr.c.ll +++ b/bench/casadi/optimized/idas_spgmr.c.ll @@ -322,7 +322,7 @@ define internal range(i32 -1, 2) i32 @IDASpgmrSolve(ptr noundef %0, ptr noundef .thread: ; preds = %6 %52 = getelementptr inbounds i8, ptr %11, i64 200 store i64 0, ptr %52, align 8 - br label %69 + br label %63 53: ; preds = %6 %54 = getelementptr inbounds i8, ptr %11, i64 72 @@ -332,53 +332,35 @@ define internal range(i32 -1, 2) i32 @IDASpgmrSolve(ptr noundef %0, ptr noundef %57 = sext i32 %38 to i64 %58 = getelementptr inbounds i8, ptr %11, i64 200 store i64 %57, ptr %58, align 8 - switch i32 %38, label %69 [ - i32 -5, label %68 + switch i32 %38, label %63 [ + i32 -5, label %60 i32 1, label %59 - i32 2, label %60 - i32 3, label %61 - i32 4, label %62 - i32 5, label %63 - i32 -1, label %64 - i32 -2, label %65 - i32 -3, label %66 - i32 -4, label %67 + i32 2, label %59 + i32 3, label %59 + i32 4, label %59 + i32 5, label %59 + i32 -1, label %60 + i32 -2, label %61 + i32 -3, label %62 + i32 -4, label %60 ] -59: ; preds = %53 - br label %69 +59: ; preds = %53, %53, %53, %53, %53 + br label %63 -60: ; preds = %53 - br label %69 +60: ; preds = %53, %53, %53 + br label %63 61: ; preds = %53 - br label %69 - -62: ; preds = %53 - br label %69 - -63: ; preds = %53 - br label %69 - -64: ; preds = %53 - br label %69 - -65: ; preds = %53 call void (ptr, i32, ptr, ptr, ptr, ...) @IDAProcessError(ptr noundef nonnull %0, i32 noundef -2, ptr noundef nonnull @.str, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.12) #7 - br label %69 + br label %63 -66: ; preds = %53 +62: ; preds = %53 call void (ptr, i32, ptr, ptr, ptr, ...) @IDAProcessError(ptr noundef nonnull %0, i32 noundef -3, ptr noundef nonnull @.str, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.13) #7 - br label %69 - -67: ; preds = %53 - br label %69 - -68: ; preds = %53 - br label %69 + br label %63 -69: ; preds = %.thread, %53, %68, %67, %66, %65, %64, %63, %62, %61, %60, %59 - %.0 = phi i32 [ -1, %68 ], [ -1, %67 ], [ -1, %66 ], [ -1, %65 ], [ %38, %64 ], [ 1, %63 ], [ 1, %62 ], [ 1, %61 ], [ 1, %60 ], [ %38, %59 ], [ 0, %53 ], [ 0, %.thread ] +63: ; preds = %.thread, %53, %62, %61, %60, %59 + %.0 = phi i32 [ -1, %62 ], [ -1, %61 ], [ -1, %60 ], [ 1, %59 ], [ 0, %53 ], [ 0, %.thread ] ret i32 %.0 } diff --git a/bench/clamav/optimized/js-norm.c.ll b/bench/clamav/optimized/js-norm.c.ll index b8dab57c22c..faf490bfa7e 100644 --- a/bench/clamav/optimized/js-norm.c.ll +++ b/bench/clamav/optimized/js-norm.c.ll @@ -1406,8 +1406,8 @@ define void @cli_js_process_buffer(ptr nocapture noundef %0, ptr noundef %1, i64 br label %55 55: ; preds = %.backedge.i, %.lr.ph144.i - %56 = phi i64 [ %48, %.lr.ph144.i ], [ %84, %.backedge.i ] - %57 = phi i64 [ %47, %.lr.ph144.i ], [ %85, %.backedge.i ] + %56 = phi i64 [ %48, %.lr.ph144.i ], [ %77, %.backedge.i ] + %57 = phi i64 [ %47, %.lr.ph144.i ], [ %78, %.backedge.i ] %58 = load i32, ptr %49, align 8 switch i32 %58, label %207 [ i32 0, label %62 @@ -1460,7 +1460,7 @@ textbuf_clean.exit.i: ; preds = %69, %62 %76 = load i32, ptr %75, align 4 switch i32 %76, label %.backedge.i [ i32 15, label %yylex.exit.thread.thread165 - i32 1, label %77 + i32 1, label %80 i32 2, label %131 i32 3, label %173 i32 4, label %175 @@ -1476,37 +1476,37 @@ textbuf_clean.exit.i: ; preds = %69, %62 i32 14, label %.thread169 ] -77: ; preds = %textbuf_clean.exit.i - %78 = icmp ult i64 %71, %28 - br i1 %78, label %79, label %89 - -79: ; preds = %77 - %80 = getelementptr inbounds i8, ptr %30, i64 %71 - %81 = load i8, ptr %80, align 1 - switch i8 %81, label %89 [ - i8 42, label %82 +.backedge.i: ; preds = %._crit_edge.i, %.loopexit.i, %87, %85, %textbuf_clean.exit.i + %77 = phi i64 [ %.pre-phi.i, %.loopexit.i ], [ %206, %._crit_edge.i ], [ %71, %textbuf_clean.exit.i ], [ %86, %85 ], [ %88, %87 ] + %78 = load i64, ptr %27, align 8 + %79 = icmp ult i64 %77, %78 + br i1 %79, label %55, label %yylex.exit.thread134 + +80: ; preds = %textbuf_clean.exit.i + %81 = icmp ult i64 %71, %28 + br i1 %81, label %82, label %89 + +82: ; preds = %80 + %83 = getelementptr inbounds i8, ptr %30, i64 %71 + %84 = load i8, ptr %83, align 1 + switch i8 %84, label %89 [ + i8 42, label %85 i8 47, label %87 ] -82: ; preds = %79 +85: ; preds = %82 store i32 1, ptr %49, align 8 - %83 = add i64 %70, 2 - store i64 %83, ptr %32, align 8 + %86 = add i64 %70, 2 + store i64 %86, ptr %32, align 8 br label %.backedge.i -.backedge.i: ; preds = %._crit_edge.i, %.loopexit.i, %87, %82, %textbuf_clean.exit.i - %84 = phi i64 [ %.pre-phi.i, %.loopexit.i ], [ %206, %._crit_edge.i ], [ %71, %textbuf_clean.exit.i ], [ %83, %82 ], [ %88, %87 ] - %85 = load i64, ptr %27, align 8 - %86 = icmp ult i64 %84, %85 - br i1 %86, label %55, label %yylex.exit.thread134 - -87: ; preds = %79 +87: ; preds = %82 store i32 2, ptr %49, align 8 %88 = add i64 %70, 2 store i64 %88, ptr %32, align 8 br label %.backedge.i -89: ; preds = %79, %77 +89: ; preds = %82, %80 store i64 %70, ptr %32, align 8 %90 = load i64, ptr %27, align 8 %.not21.i.i = icmp eq i64 %90, %70 diff --git a/bench/clap-rs/optimized/4bajo035z6e1d4qz.ll b/bench/clap-rs/optimized/4bajo035z6e1d4qz.ll index 2f709433b10..9b937c94a98 100644 --- a/bench/clap-rs/optimized/4bajo035z6e1d4qz.ll +++ b/bench/clap-rs/optimized/4bajo035z6e1d4qz.ll @@ -3318,12 +3318,9 @@ define hidden noundef align 8 dereferenceable_or_null(8) ptr @"_ZN91_$LT$core..s ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable define noundef zeroext i1 @_ZN12clap_builder7builder6action9ArgAction12takes_values17h8517f3e6786dc479E(ptr noalias nocapture noundef readonly align 1 dereferenceable(1) %0) unnamed_addr #1 { -switch.lookup: - %1 = load i8, ptr %0, align 1, !range !178, !noundef !5 - %switch.cast = zext nneg i8 %1 to i9 - %switch.downshift = lshr i9 3, %switch.cast - %switch.masked = trunc i9 %switch.downshift to i1 - ret i1 %switch.masked + %2 = load i8, ptr %0, align 1, !range !178, !noundef !5 + %switch = icmp samesign ult i8 %2, 2 + ret i1 %switch } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable diff --git a/bench/cmake/optimized/zstd_compress.c.ll b/bench/cmake/optimized/zstd_compress.c.ll index 6362bc58d8f..5797c742fc7 100644 --- a/bench/cmake/optimized/zstd_compress.c.ll +++ b/bench/cmake/optimized/zstd_compress.c.ll @@ -749,161 +749,104 @@ define dso_local range(i64 -42, 1) i64 @ZSTD_checkCParams(ptr nocapture noundef ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable define dso_local { i64, i64 } @ZSTD_cParam_getBounds(i32 noundef %0) local_unnamed_addr #0 { - switch i32 %0, label %38 [ + switch i32 %0, label %19 [ i32 100, label %2 - i32 101, label %39 + i32 101, label %20 i32 102, label %3 - i32 103, label %4 - i32 104, label %5 - i32 105, label %6 - i32 106, label %7 - i32 107, label %8 - i32 200, label %9 - i32 201, label %10 - i32 202, label %11 - i32 400, label %12 - i32 401, label %13 - i32 402, label %14 - i32 1005, label %15 - i32 160, label %16 - i32 161, label %17 - i32 162, label %18 - i32 163, label %19 - i32 164, label %20 - i32 500, label %21 - i32 1000, label %22 - i32 10, label %23 - i32 1001, label %24 - i32 1002, label %25 - i32 1003, label %26 - i32 1004, label %27 - i32 1006, label %28 - i32 1007, label %28 - i32 1008, label %29 - i32 1009, label %30 - i32 1010, label %31 - i32 1011, label %32 - i32 1012, label %33 - i32 1013, label %34 - i32 1014, label %35 - i32 1015, label %36 - i32 1016, label %37 + i32 103, label %3 + i32 104, label %4 + i32 105, label %5 + i32 106, label %6 + i32 107, label %7 + i32 200, label %8 + i32 201, label %8 + i32 202, label %8 + i32 400, label %9 + i32 401, label %9 + i32 402, label %9 + i32 1005, label %8 + i32 160, label %10 + i32 161, label %3 + i32 162, label %11 + i32 163, label %12 + i32 164, label %13 + i32 500, label %8 + i32 1000, label %8 + i32 10, label %8 + i32 1001, label %14 + i32 1002, label %10 + i32 1003, label %15 + i32 1004, label %16 + i32 1006, label %17 + i32 1007, label %17 + i32 1008, label %8 + i32 1009, label %8 + i32 1010, label %10 + i32 1011, label %10 + i32 1012, label %8 + i32 1013, label %10 + i32 1014, label %8 + i32 1015, label %18 + i32 1016, label %10 ] 2: ; preds = %1 - br label %39 + br label %20 -3: ; preds = %1 - br label %39 +3: ; preds = %1, %1, %1 + br label %20 4: ; preds = %1 - br label %39 + br label %20 5: ; preds = %1 - br label %39 + br label %20 6: ; preds = %1 - br label %39 + br label %20 7: ; preds = %1 - br label %39 + br label %20 -8: ; preds = %1 - br label %39 +8: ; preds = %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1 + br label %20 -9: ; preds = %1 - br label %39 +9: ; preds = %1, %1, %1 + br label %20 -10: ; preds = %1 - br label %39 +10: ; preds = %1, %1, %1, %1, %1, %1 + br label %20 11: ; preds = %1 - br label %39 + br label %20 12: ; preds = %1 - br label %39 + br label %20 13: ; preds = %1 - br label %39 + br label %20 14: ; preds = %1 - br label %39 + br label %20 15: ; preds = %1 - br label %39 + br label %20 16: ; preds = %1 - br label %39 + br label %20 -17: ; preds = %1 - br label %39 +17: ; preds = %1, %1 + br label %20 18: ; preds = %1 - br label %39 + br label %20 19: ; preds = %1 - br label %39 - -20: ; preds = %1 - br label %39 - -21: ; preds = %1 - br label %39 - -22: ; preds = %1 - br label %39 - -23: ; preds = %1 - br label %39 - -24: ; preds = %1 - br label %39 - -25: ; preds = %1 - br label %39 - -26: ; preds = %1 - br label %39 - -27: ; preds = %1 - br label %39 - -28: ; preds = %1, %1 - br label %39 - -29: ; preds = %1 - br label %39 - -30: ; preds = %1 - br label %39 - -31: ; preds = %1 - br label %39 - -32: ; preds = %1 - br label %39 - -33: ; preds = %1 - br label %39 - -34: ; preds = %1 - br label %39 - -35: ; preds = %1 - br label %39 - -36: ; preds = %1 - br label %39 - -37: ; preds = %1 - br label %39 - -38: ; preds = %1 - br label %39 + br label %20 -39: ; preds = %1, %38, %37, %36, %35, %34, %33, %32, %31, %30, %29, %28, %27, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3, %2 - %.sroa.3.0 = phi i64 [ 0, %38 ], [ 8589934592, %37 ], [ 562949953422336, %36 ], [ 4294967296, %35 ], [ 8589934592, %34 ], [ 4294967296, %33 ], [ 8589934592, %32 ], [ 8589934592, %31 ], [ 4294967296, %30 ], [ 4294967296, %29 ], [ 4294967296, %28 ], [ 9223372032559808512, %27 ], [ 562949953421376, %26 ], [ 8589934592, %25 ], [ 12884901888, %24 ], [ 4294967296, %23 ], [ 4294967296, %22 ], [ 4294967296, %21 ], [ 107374182400, %20 ], [ 34359738369, %19 ], [ 17592186044420, %18 ], [ 128849018886, %17 ], [ 8589934592, %16 ], [ 4294967296, %15 ], [ 0, %14 ], [ 0, %13 ], [ 0, %12 ], [ 4294967296, %11 ], [ 4294967296, %10 ], [ 4294967296, %9 ], [ 38654705665, %8 ], [ 562949953421312, %7 ], [ 30064771075, %6 ], [ 128849018881, %5 ], [ 128849018886, %4 ], [ 128849018886, %3 ], [ 98784116736, %2 ], [ 133143986186, %1 ] - %.sroa.0.0 = phi i64 [ -40, %38 ], [ 0, %37 ], [ 0, %36 ], [ 0, %35 ], [ 0, %34 ], [ 0, %33 ], [ 0, %32 ], [ 0, %31 ], [ 0, %30 ], [ 0, %29 ], [ 0, %28 ], [ 0, %27 ], [ 0, %26 ], [ 0, %25 ], [ 0, %24 ], [ 0, %23 ], [ 0, %22 ], [ 0, %21 ], [ 0, %20 ], [ 0, %19 ], [ 0, %18 ], [ 0, %17 ], [ 0, %16 ], [ 0, %15 ], [ 0, %14 ], [ 0, %13 ], [ 0, %12 ], [ 0, %11 ], [ 0, %10 ], [ 0, %9 ], [ 0, %8 ], [ 0, %7 ], [ 0, %6 ], [ 0, %5 ], [ 0, %4 ], [ 0, %3 ], [ 0, %2 ], [ 0, %1 ] +20: ; preds = %1, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3, %2 + %.sroa.3.0 = phi i64 [ 0, %19 ], [ 562949953422336, %18 ], [ 4294967296, %17 ], [ 9223372032559808512, %16 ], [ 562949953421376, %15 ], [ 12884901888, %14 ], [ 107374182400, %13 ], [ 34359738369, %12 ], [ 17592186044420, %11 ], [ 8589934592, %10 ], [ 0, %9 ], [ 4294967296, %8 ], [ 38654705665, %7 ], [ 562949953421312, %6 ], [ 30064771075, %5 ], [ 128849018881, %4 ], [ 128849018886, %3 ], [ 98784116736, %2 ], [ 133143986186, %1 ] + %.sroa.0.0 = phi i64 [ -40, %19 ], [ 0, %18 ], [ 0, %17 ], [ 0, %16 ], [ 0, %15 ], [ 0, %14 ], [ 0, %13 ], [ 0, %12 ], [ 0, %11 ], [ 0, %10 ], [ 0, %9 ], [ 0, %8 ], [ 0, %7 ], [ 0, %6 ], [ 0, %5 ], [ 0, %4 ], [ 0, %3 ], [ 0, %2 ], [ 0, %1 ] %.fca.0.insert = insertvalue { i64, i64 } poison, i64 %.sroa.0.0, 0 %.fca.1.insert = insertvalue { i64, i64 } %.fca.0.insert, i64 %.sroa.3.0, 1 ret { i64, i64 } %.fca.1.insert diff --git a/bench/cmake/optimized/zstd_decompress.c.ll b/bench/cmake/optimized/zstd_decompress.c.ll index 8c3a673e7a1..cc54d0988fb 100644 --- a/bench/cmake/optimized/zstd_decompress.c.ll +++ b/bench/cmake/optimized/zstd_decompress.c.ll @@ -3501,36 +3501,24 @@ define dso_local range(i64 -60, 1) i64 @ZSTD_DCtx_setMaxWindowSize(ptr nocapture ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable define dso_local { i64, i64 } @ZSTD_dParam_getBounds(i32 noundef %0) local_unnamed_addr #2 { - switch i32 %0, label %7 [ - i32 100, label %8 + switch i32 %0, label %3 [ + i32 100, label %4 i32 1000, label %2 - i32 1001, label %3 - i32 1002, label %4 - i32 1003, label %5 - i32 1004, label %6 + i32 1001, label %2 + i32 1002, label %2 + i32 1003, label %2 + i32 1004, label %2 ] -2: ; preds = %1 - br label %8 +2: ; preds = %1, %1, %1, %1, %1 + br label %4 3: ; preds = %1 - br label %8 - -4: ; preds = %1 - br label %8 - -5: ; preds = %1 - br label %8 - -6: ; preds = %1 - br label %8 - -7: ; preds = %1 - br label %8 + br label %4 -8: ; preds = %1, %7, %6, %5, %4, %3, %2 - %.sroa.3.0 = phi i64 [ 0, %7 ], [ 4294967296, %6 ], [ 4294967296, %5 ], [ 4294967296, %4 ], [ 4294967296, %3 ], [ 4294967296, %2 ], [ 133143986186, %1 ] - %.sroa.0.0 = phi i64 [ -40, %7 ], [ 0, %6 ], [ 0, %5 ], [ 0, %4 ], [ 0, %3 ], [ 0, %2 ], [ 0, %1 ] +4: ; preds = %1, %3, %2 + %.sroa.3.0 = phi i64 [ 0, %3 ], [ 4294967296, %2 ], [ 133143986186, %1 ] + %.sroa.0.0 = phi i64 [ -40, %3 ], [ 0, %2 ], [ 0, %1 ] %.fca.0.insert = insertvalue { i64, i64 } poison, i64 %.sroa.0.0, 0 %.fca.1.insert = insertvalue { i64, i64 } %.fca.0.insert, i64 %.sroa.3.0, 1 ret { i64, i64 } %.fca.1.insert diff --git a/bench/coreutils-rs/optimized/2wc2yx8ferzqfnf3.ll b/bench/coreutils-rs/optimized/2wc2yx8ferzqfnf3.ll index 18f0438608c..c543264a61b 100644 --- a/bench/coreutils-rs/optimized/2wc2yx8ferzqfnf3.ll +++ b/bench/coreutils-rs/optimized/2wc2yx8ferzqfnf3.ll @@ -1879,8 +1879,8 @@ _ZN3std2fs16symlink_metadata17h072e9ab961dd7b55E.exit.i.i.i: ; preds = %33, %24 br i1 %40, label %_ZN3std2fs8metadata17h43bbb9498c956a9cE.exit.i.i.i, label %43 43: ; preds = %34 - %.sroa.12.0..sroa_idx40.i.i = getelementptr inbounds i8, ptr %7, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(160) %.sroa.12.i.i, ptr noundef nonnull align 8 dereferenceable(160) %.sroa.12.0..sroa_idx40.i.i, i64 160, i1 false), !alias.scope !339, !noalias !310 + %.sroa.12.0..sroa_idx39.i.i = getelementptr inbounds i8, ptr %7, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(160) %.sroa.12.i.i, ptr noundef nonnull align 8 dereferenceable(160) %.sroa.12.0..sroa_idx39.i.i, i64 160, i1 false), !alias.scope !339, !noalias !310 br label %_ZN3std2fs8metadata17h43bbb9498c956a9cE.exit.i.i.i _ZN3std2fs8metadata17h43bbb9498c956a9cE.exit.i.i.i: ; preds = %43, %34 @@ -1898,7 +1898,7 @@ _ZN5uu_ls27get_metadata_with_deref_opt17h40b024bdbe73ea8cE.exit.i.i: ; preds = % %47 = load i64, ptr %17, align 8, !range !322, !noalias !341, !noundef !9 %48 = icmp eq i64 %47, 2 %49 = getelementptr inbounds i8, ptr %17, i64 8 - %.val25.i.i = load ptr, ptr %49, align 8, !noalias !341 + %.val24.i.i = load ptr, ptr %49, align 8, !noalias !341 br i1 %48, label %51, label %50 50: ; preds = %46 @@ -1908,7 +1908,7 @@ _ZN5uu_ls27get_metadata_with_deref_opt17h40b024bdbe73ea8cE.exit.i.i: ; preds = % 51: ; preds = %46 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6), !noalias !342 - call void @_ZN3std2io5error14repr_bitpacked11decode_repr17h105a8f23b94099e8E.llvm.8271848126233039021(ptr noalias nocapture noundef nonnull sret({ i8, [15 x i8] }) align 8 dereferenceable(16) %6, ptr noundef nonnull %.val25.i.i), !noalias !349 + call void @_ZN3std2io5error14repr_bitpacked11decode_repr17h105a8f23b94099e8E.llvm.8271848126233039021(ptr noalias nocapture noundef nonnull sret({ i8, [15 x i8] }) align 8 dereferenceable(16) %6, ptr noundef nonnull %.val24.i.i), !noalias !349 %52 = load i8, ptr %6, align 8, !range !231, !alias.scope !350, !noalias !342, !noundef !9 %switch.not.i.i.i.i.i.i.i = icmp eq i8 %52, 3 br i1 %switch.not.i.i.i.i.i.i.i, label %53, label %"_ZN4core3ptr90drop_in_place$LT$core..result..Result$LT$std..fs..Metadata$C$std..io..error..Error$GT$$GT$17h3cc98f1e81ecda07E.exit.i.i" @@ -1932,7 +1932,7 @@ _ZN5uu_ls27get_metadata_with_deref_opt17h40b024bdbe73ea8cE.exit.i.i: ; preds = % tail call void @llvm.assume(i1 %57) store ptr %44, ptr %16, align 8, !noalias !310 %58 = invoke noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$9flush_buf17hc48c0dcf3aa92605E"(ptr noalias noundef nonnull align 8 dereferenceable(40) %2) - to label %.noexc.i.i unwind label %.thread57.i.i, !noalias !340 + to label %.noexc.i.i unwind label %.thread55.i.i, !noalias !340 .noexc.i.i: ; preds = %56 %59 = icmp eq ptr %58, null @@ -1941,21 +1941,21 @@ _ZN5uu_ls27get_metadata_with_deref_opt17h40b024bdbe73ea8cE.exit.i.i: ; preds = % 60: ; preds = %.noexc.i.i %61 = getelementptr inbounds i8, ptr %2, i64 32 %62 = invoke noundef ptr @"_ZN57_$LT$std..io..stdio..Stdout$u20$as$u20$std..io..Write$GT$5flush17h022befde9a8e1023E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %61) - to label %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$5flush17ha584988c8577d0ebE.exit.i.i" unwind label %.thread57.i.i, !noalias !340 + to label %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$5flush17ha584988c8577d0ebE.exit.i.i" unwind label %.thread55.i.i, !noalias !340 -.thread57.i.i: ; preds = %94, %92, %82, %60, %56 +.thread55.i.i: ; preds = %94, %92, %82, %60, %56 %lpad.thr_comm.i.i = landingpad { ptr, i32 } cleanup - br label %.thread52.i.i + br label %.thread50.i.i "_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$5flush17ha584988c8577d0ebE.exit.i.i": ; preds = %60 %63 = icmp eq ptr %62, null br i1 %63, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17hb0ec3cbe5e655a80E.exit.i.i", label %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$5flush17ha584988c8577d0ebE.exit.thread.i.i" "_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$5flush17ha584988c8577d0ebE.exit.thread.i.i": ; preds = %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$5flush17ha584988c8577d0ebE.exit.i.i", %.noexc.i.i - %.0.i61.i.i = phi ptr [ %62, %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$5flush17ha584988c8577d0ebE.exit.i.i" ], [ %58, %.noexc.i.i ] + %.0.i59.i.i = phi ptr [ %62, %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$5flush17ha584988c8577d0ebE.exit.i.i" ], [ %58, %.noexc.i.i ] call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9), !noalias !310 - store ptr %.0.i61.i.i, ptr %9, align 8, !noalias !310 + store ptr %.0.i59.i.i, ptr %9, align 8, !noalias !310 invoke void @_ZN4core6result13unwrap_failed17ha188096f98826595E(ptr noalias noundef nonnull readonly align 1 @anon.67c9182ab0593a9bbc61cc9d4c184f97.36, i64 noundef 43, ptr noundef nonnull align 1 %9, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.67c9182ab0593a9bbc61cc9d4c184f97.37, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.67c9182ab0593a9bbc61cc9d4c184f97.47) #23 to label %66 unwind label %64, !noalias !340 @@ -1963,7 +1963,7 @@ _ZN5uu_ls27get_metadata_with_deref_opt17h40b024bdbe73ea8cE.exit.i.i: ; preds = % %65 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h4df81ec4bf019efbE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %9) #20 - to label %.thread52.i.i unwind label %67, !noalias !340 + to label %.thread50.i.i unwind label %67, !noalias !340 66: ; preds = %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$5flush17ha584988c8577d0ebE.exit.thread.i.i" unreachable @@ -1976,14 +1976,19 @@ _ZN5uu_ls27get_metadata_with_deref_opt17h40b024bdbe73ea8cE.exit.i.i: ; preds = % "_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17hb0ec3cbe5e655a80E.exit.i.i": ; preds = %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$5flush17ha584988c8577d0ebE.exit.i.i" %69 = ptrtoint ptr %44 to i64 - %70 = and i64 %69, -4294967293 - %..sroa.7.0.i.i = icmp eq i64 %70, 38654705666 - %71 = load i8, ptr %18, align 8, !range !309, !noalias !310, !noundef !9 - %72 = trunc nuw i8 %71 to i1 - %or.cond.i.i = and i1 %..sroa.7.0.i.i, %72 - br i1 %or.cond.i.i, label %79, label %73 - -73: ; preds = %79, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17hb0ec3cbe5e655a80E.exit.i.i" + %70 = and i64 %69, 3 + %switch.i.i = icmp eq i64 %70, 2 + br i1 %switch.i.i, label %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.i.i, label %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread.i.i + +_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.i.i: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17hb0ec3cbe5e655a80E.exit.i.i" + %.mask.i.i = and i64 %69, -4294967296 + %71 = icmp eq i64 %.mask.i.i, 38654705664 + %72 = load i8, ptr %18, align 8, !range !309, !noalias !310, !noundef !9 + %73 = trunc nuw i8 %72 to i1 + %or.cond.i.i = and i1 %71, %73 + br i1 %or.cond.i.i, label %79, label %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread.i.i + +_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread.i.i: ; preds = %79, %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.i.i, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17hb0ec3cbe5e655a80E.exit.i.i" call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %14), !noalias !310 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13), !noalias !310 store ptr %44, ptr %13, align 8, !noalias !310 @@ -1994,21 +1999,21 @@ _ZN5uu_ls27get_metadata_with_deref_opt17h40b024bdbe73ea8cE.exit.i.i: ; preds = % %78 = invoke { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h4f56f1cd31108130E"(i64 noundef %77, i1 noundef zeroext false) to label %100 unwind label %96, !noalias !340 -79: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17hb0ec3cbe5e655a80E.exit.i.i" +79: ; preds = %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.i.i %80 = getelementptr inbounds i8, ptr %1, i64 256 %81 = load ptr, ptr %80, align 8, !noalias !310, !noundef !9 %.not19.i.i = icmp eq ptr %81, null - br i1 %.not19.i.i, label %73, label %82 + br i1 %.not19.i.i, label %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread.i.i, label %82 82: ; preds = %79 invoke void @_ZN3std2fs8DirEntry8metadata17h20a8540ee8061b33E(ptr noalias nocapture noundef nonnull sret({ i64, [21 x i64] }) align 8 dereferenceable(176) %15, ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %80) - to label %83 unwind label %.thread57.i.i, !noalias !340 + to label %83 unwind label %.thread55.i.i, !noalias !340 83: ; preds = %82 %84 = load i64, ptr %15, align 8, !range !322, !noalias !341, !noundef !9 %85 = icmp eq i64 %84, 2 %86 = getelementptr inbounds i8, ptr %15, i64 8 - %.val23.i.i = load ptr, ptr %86, align 8, !noalias !341 + %.val22.i.i = load ptr, ptr %86, align 8, !noalias !341 br i1 %85, label %92, label %87 87: ; preds = %83 @@ -2016,7 +2021,7 @@ _ZN5uu_ls27get_metadata_with_deref_opt17h40b024bdbe73ea8cE.exit.i.i: ; preds = % call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(160) %.sroa.10.i, ptr noundef nonnull align 8 dereferenceable(160) %.sroa.10.0..sroa_idx8.i, i64 160, i1 false), !noalias !341 br label %88 -88: ; preds = %"_ZN4core3ptr90drop_in_place$LT$core..result..Result$LT$std..fs..Metadata$C$std..io..error..Error$GT$$GT$17h3cc98f1e81ecda07E.exit33.i.i", %87 +88: ; preds = %"_ZN4core3ptr90drop_in_place$LT$core..result..Result$LT$std..fs..Metadata$C$std..io..error..Error$GT$$GT$17h3cc98f1e81ecda07E.exit32.i.i", %87 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5), !noalias !358 call void @_ZN3std2io5error14repr_bitpacked11decode_repr17h105a8f23b94099e8E.llvm.8271848126233039021(ptr noalias nocapture noundef nonnull sret({ i8, [15 x i8] }) align 8 dereferenceable(16) %5, ptr noundef nonnull %44), !noalias !365 %89 = load i8, ptr %5, align 8, !range !231, !alias.scope !366, !noalias !358, !noundef !9 @@ -2035,36 +2040,36 @@ _ZN5uu_ls27get_metadata_with_deref_opt17h40b024bdbe73ea8cE.exit.i.i: ; preds = % 92: ; preds = %83 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4), !noalias !369 - invoke void @_ZN3std2io5error14repr_bitpacked11decode_repr17h105a8f23b94099e8E.llvm.8271848126233039021(ptr noalias nocapture noundef nonnull sret({ i8, [15 x i8] }) align 8 dereferenceable(16) %4, ptr noundef nonnull %.val23.i.i) - to label %.noexc31.i.i unwind label %.thread57.i.i, !noalias !340 + invoke void @_ZN3std2io5error14repr_bitpacked11decode_repr17h105a8f23b94099e8E.llvm.8271848126233039021(ptr noalias nocapture noundef nonnull sret({ i8, [15 x i8] }) align 8 dereferenceable(16) %4, ptr noundef nonnull %.val22.i.i) + to label %.noexc30.i.i unwind label %.thread55.i.i, !noalias !340 -.noexc31.i.i: ; preds = %92 +.noexc30.i.i: ; preds = %92 %93 = load i8, ptr %4, align 8, !range !231, !alias.scope !376, !noalias !369, !noundef !9 - %switch.not.i.i.i.i.i29.i.i = icmp eq i8 %93, 3 - br i1 %switch.not.i.i.i.i.i29.i.i, label %94, label %"_ZN4core3ptr90drop_in_place$LT$core..result..Result$LT$std..fs..Metadata$C$std..io..error..Error$GT$$GT$17h3cc98f1e81ecda07E.exit33.i.i" + %switch.not.i.i.i.i.i28.i.i = icmp eq i8 %93, 3 + br i1 %switch.not.i.i.i.i.i28.i.i, label %94, label %"_ZN4core3ptr90drop_in_place$LT$core..result..Result$LT$std..fs..Metadata$C$std..io..error..Error$GT$$GT$17h3cc98f1e81ecda07E.exit32.i.i" -94: ; preds = %.noexc31.i.i +94: ; preds = %.noexc30.i.i %95 = getelementptr inbounds i8, ptr %4, i64 8 invoke void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17ha2a84fc07c98f352E.llvm.8271848126233039021"(ptr noalias noundef nonnull align 8 dereferenceable(8) %95) - to label %"_ZN4core3ptr90drop_in_place$LT$core..result..Result$LT$std..fs..Metadata$C$std..io..error..Error$GT$$GT$17h3cc98f1e81ecda07E.exit33.i.i" unwind label %.thread57.i.i, !noalias !340 + to label %"_ZN4core3ptr90drop_in_place$LT$core..result..Result$LT$std..fs..Metadata$C$std..io..error..Error$GT$$GT$17h3cc98f1e81ecda07E.exit32.i.i" unwind label %.thread55.i.i, !noalias !340 -"_ZN4core3ptr90drop_in_place$LT$core..result..Result$LT$std..fs..Metadata$C$std..io..error..Error$GT$$GT$17h3cc98f1e81ecda07E.exit33.i.i": ; preds = %94, %.noexc31.i.i +"_ZN4core3ptr90drop_in_place$LT$core..result..Result$LT$std..fs..Metadata$C$std..io..error..Error$GT$$GT$17h3cc98f1e81ecda07E.exit32.i.i": ; preds = %94, %.noexc30.i.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4), !noalias !369 br label %88 -96: ; preds = %73 +96: ; preds = %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread.i.i %97 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h4df81ec4bf019efbE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %13) #20 - to label %.thread48.i.i unwind label %124, !noalias !340 + to label %.thread46.i.i unwind label %124, !noalias !340 98: ; preds = %112, %110, %100 %99 = landingpad { ptr, i32 } cleanup invoke fastcc void @"_ZN4core3ptr35drop_in_place$LT$uu_ls..LsError$GT$17h01c35b909639232fE"(ptr noalias noundef align 8 dereferenceable(56) %14) #20 - to label %.thread48.i.i unwind label %124, !noalias !340 + to label %.thread46.i.i unwind label %124, !noalias !340 -100: ; preds = %73 +100: ; preds = %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread.i.i %101 = extractvalue { i64, ptr } %78, 0 %102 = extractvalue { i64, ptr } %78, 1 %103 = icmp ne ptr %102, null @@ -2130,23 +2135,23 @@ _ZN5uu_ls27get_metadata_with_deref_opt17h40b024bdbe73ea8cE.exit.i.i: ; preds = % call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16), !noalias !310 br label %"_ZN4core4cell4once17OnceCell$LT$T$GT$11get_or_init28_$u7b$$u7b$closure$u7d$$u7d$17hd11399237f662c8eE.exit" -124: ; preds = %.thread52.i.i, %98, %96 +124: ; preds = %.thread50.i.i, %98, %96 %125 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #21, !noalias !340 unreachable -.thread48.i.i: ; preds = %.thread52.i.i, %98, %96 - %.pn51.i.i = phi { ptr, i32 } [ %eh.lpad-body55.i.i, %.thread52.i.i ], [ %97, %96 ], [ %99, %98 ] - resume { ptr, i32 } %.pn51.i.i +.thread46.i.i: ; preds = %.thread50.i.i, %98, %96 + %.pn49.i.i = phi { ptr, i32 } [ %eh.lpad-body53.i.i, %.thread50.i.i ], [ %97, %96 ], [ %99, %98 ] + resume { ptr, i32 } %.pn49.i.i -.thread52.i.i: ; preds = %64, %.thread57.i.i - %eh.lpad-body55.i.i = phi { ptr, i32 } [ %lpad.thr_comm.i.i, %.thread57.i.i ], [ %65, %64 ] +.thread50.i.i: ; preds = %64, %.thread55.i.i + %eh.lpad-body53.i.i = phi { ptr, i32 } [ %lpad.thr_comm.i.i, %.thread55.i.i ], [ %65, %64 ] invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h4df81ec4bf019efbE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %16) #20 - to label %.thread48.i.i unwind label %124, !noalias !340 + to label %.thread46.i.i unwind label %124, !noalias !340 "_ZN4core4cell4once17OnceCell$LT$T$GT$11get_or_init28_$u7b$$u7b$closure$u7d$$u7d$17hd11399237f662c8eE.exit": ; preds = %50, %"_ZN4core3ptr90drop_in_place$LT$core..result..Result$LT$std..fs..Metadata$C$std..io..error..Error$GT$$GT$17h3cc98f1e81ecda07E.exit.i.i", %55, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h4df81ec4bf019efbE.exit.i.i", %123 - %.sroa.9.1.i = phi ptr [ undef, %123 ], [ %.val23.i.i, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h4df81ec4bf019efbE.exit.i.i" ], [ %44, %55 ], [ undef, %"_ZN4core3ptr90drop_in_place$LT$core..result..Result$LT$std..fs..Metadata$C$std..io..error..Error$GT$$GT$17h3cc98f1e81ecda07E.exit.i.i" ], [ %.val25.i.i, %50 ] + %.sroa.9.1.i = phi ptr [ undef, %123 ], [ %.val22.i.i, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h4df81ec4bf019efbE.exit.i.i" ], [ %44, %55 ], [ undef, %"_ZN4core3ptr90drop_in_place$LT$core..result..Result$LT$std..fs..Metadata$C$std..io..error..Error$GT$$GT$17h3cc98f1e81ecda07E.exit.i.i" ], [ %.val24.i.i, %50 ] %.sroa.0.1.i = phi i64 [ 2, %123 ], [ %84, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h4df81ec4bf019efbE.exit.i.i" ], [ %.sroa.0.2.i.i, %55 ], [ 2, %"_ZN4core3ptr90drop_in_place$LT$core..result..Result$LT$std..fs..Metadata$C$std..io..error..Error$GT$$GT$17h3cc98f1e81ecda07E.exit.i.i" ], [ %47, %50 ] call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %15), !noalias !307 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %.sroa.12.i.i) diff --git a/bench/coreutils-rs/optimized/3t7rjcjao5l6ltsf.ll b/bench/coreutils-rs/optimized/3t7rjcjao5l6ltsf.ll index 595500cea1f..83cf66e0070 100644 --- a/bench/coreutils-rs/optimized/3t7rjcjao5l6ltsf.ll +++ b/bench/coreutils-rs/optimized/3t7rjcjao5l6ltsf.ll @@ -282,7 +282,7 @@ define internal fastcc void @_ZN10bigdecimal10ten_to_the17h6fca0c83621867e5E(ptr %.sroa.5.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %13, i64 16 %25 = getelementptr inbounds i8, ptr %4, i64 8 %26 = getelementptr inbounds i8, ptr %4, i64 16 - br label %switch.lookup + br label %39 27: ; preds = %2 %28 = trunc nuw nsw i64 %1 to i32 @@ -321,17 +321,15 @@ define internal fastcc void @_ZN10bigdecimal10ten_to_the17h6fca0c83621867e5E(ptr %38 = icmp eq i64 %21, 0 br i1 %38, label %55, label %56 -switch.lookup: ; preds = %19, %131 - %.sroa.0.047 = phi i32 [ 0, %19 ], [ %39, %131 ] - %39 = add nuw nsw i32 %.sroa.0.047, 1 +39: ; preds = %19, %131 + %.sroa.0.047 = phi i32 [ 0, %19 ], [ %40, %131 ] + %40 = add nuw nsw i32 %.sroa.0.047, 1 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) call void @llvm.experimental.noalias.scope.decl(metadata !63) call void @llvm.experimental.noalias.scope.decl(metadata !66) - %40 = load i8, ptr %22, align 8, !range !4, !alias.scope !68, !noalias !69, !noundef !5 - %41 = shl nuw nsw i8 %40, 3 - %switch.shiftamt = zext nneg i8 %41 to i24 - %switch.downshift = lshr i24 131330, %switch.shiftamt - %switch.masked = trunc i24 %switch.downshift to i8 + %41 = load i8, ptr %22, align 8, !range !4, !alias.scope !68, !noalias !69, !noundef !5 + %switch = icmp eq i8 %41, 1 + %spec.select = select i1 %switch, i8 1, i8 2 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13), !noalias !71 %.val.i = load ptr, ptr %23, align 8, !alias.scope !68, !noalias !69, !nonnull !5, !noundef !5 %.val6.i = load i64, ptr %24, align 8, !alias.scope !68, !noalias !69, !noundef !5 @@ -341,16 +339,13 @@ switch.lookup: ; preds = %19, %131 i64 1, label %43 ] -default.unreachable: ; preds = %62 - unreachable - -42: ; preds = %switch.lookup +42: ; preds = %39 store i64 0, ptr %13, align 8, !alias.scope !72, !noalias !71 store ptr inttoptr (i64 8 to ptr), ptr %.sroa.48.0..sroa_idx.i.i, align 8, !alias.scope !72, !noalias !71 store i64 0, ptr %.sroa.5.0..sroa_idx.i.i, align 8, !alias.scope !72, !noalias !71 br label %"_ZN10num_bigint7biguint14multiplication124_$LT$impl$u20$core..ops..arith..Mul$LT$$RF$num_bigint..biguint..BigUint$GT$$u20$for$u20$$RF$num_bigint..biguint..BigUint$GT$3mul17h1c9a408d9cc40af8E.exit.i" -43: ; preds = %switch.lookup +43: ; preds = %39 %44 = load i64, ptr %.val.i, align 8, !noalias !75, !noundef !5 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12), !noalias !75 %45 = invoke { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h56647ea023c6de6cE"(i64 noundef 1, i1 noundef zeroext false) @@ -387,12 +382,12 @@ default.unreachable: ; preds = %62 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12), !noalias !75 br label %"_ZN10num_bigint7biguint14multiplication124_$LT$impl$u20$core..ops..arith..Mul$LT$$RF$num_bigint..biguint..BigUint$GT$$u20$for$u20$$RF$num_bigint..biguint..BigUint$GT$3mul17h1c9a408d9cc40af8E.exit.i" -54: ; preds = %switch.lookup +54: ; preds = %39 invoke void @_ZN10num_bigint7biguint14multiplication4mul317h800ce51d89f6c299E(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr, {} }, i64 } }) align 8 dereferenceable(24) %13, ptr noalias noundef nonnull readonly align 8 %.val.i, i64 noundef %.val6.i, ptr noalias noundef nonnull readonly align 8 %.val.i, i64 noundef %.val6.i) to label %"_ZN10num_bigint7biguint14multiplication124_$LT$impl$u20$core..ops..arith..Mul$LT$$RF$num_bigint..biguint..BigUint$GT$$u20$for$u20$$RF$num_bigint..biguint..BigUint$GT$3mul17h1c9a408d9cc40af8E.exit.i" unwind label %35 "_ZN10num_bigint7biguint14multiplication124_$LT$impl$u20$core..ops..arith..Mul$LT$$RF$num_bigint..biguint..BigUint$GT$$u20$for$u20$$RF$num_bigint..biguint..BigUint$GT$3mul17h1c9a408d9cc40af8E.exit.i": ; preds = %54, %"_ZN10num_bigint7biguint14multiplication91_$LT$impl$u20$core..ops..arith..Mul$LT$u64$GT$$u20$for$u20$num_bigint..biguint..BigUint$GT$3mul17hd6d5f2b84a728581E.exit.i.i", %42 - invoke fastcc void @_ZN10num_bigint6bigint6BigInt12from_biguint17hcc6dbcfeb5ddc4b2E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %16, i8 noundef %switch.masked, ptr noalias nocapture noundef align 8 dereferenceable(24) %13) + invoke fastcc void @_ZN10num_bigint6bigint6BigInt12from_biguint17hcc6dbcfeb5ddc4b2E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %16, i8 noundef %spec.select, ptr noalias nocapture noundef align 8 dereferenceable(24) %13) to label %124 unwind label %35 55: ; preds = %37 @@ -431,6 +426,9 @@ default.unreachable: ; preds = %62 i8 2, label %66 ] +default.unreachable: ; preds = %62 + unreachable + 65: ; preds = %62 %switch.i24 = icmp eq i8 %60, 0 br i1 %switch.i24, label %68, label %67 @@ -658,8 +656,8 @@ default.unreachable: ; preds = %62 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !133 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %16, i64 32, i1 false) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) - %exitcond.not = icmp eq i32 %39, 4 - br i1 %exitcond.not, label %37, label %switch.lookup + %exitcond.not = icmp eq i32 %40, 4 + br i1 %exitcond.not, label %37, label %39 common.resume: ; preds = %135, %132, %121, %.body.i.i, %.body.thread36.i.i %common.resume.op = phi { ptr, i32 } [ %.pn.ph, %132 ], [ %lpad.thr_comm.split-lp, %121 ], [ %.pn40.i.i, %.body.thread36.i.i ], [ %.pn.i.i, %.body.i.i ], [ %136, %135 ] @@ -2942,8 +2940,8 @@ define noundef zeroext i1 @"_ZN87_$LT$uu_seq..extendedbigdecimal..ExtendedBigDec %18 = tail call noundef zeroext i1 @"_ZN63_$LT$bigdecimal..BigDecimal$u20$as$u20$core..cmp..PartialEq$GT$2eq17h8caa5bc484dacf9eE.llvm.15755512314762197099"(ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %0, ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %1) br label %19 -19: ; preds = %15, %13, %11, %8, %2, %17 - %.0 = phi i1 [ %18, %17 ], [ false, %2 ], [ false, %8 ], [ %switch113, %11 ], [ %switch412, %13 ], [ %switch811, %15 ] +19: ; preds = %8, %2, %15, %13, %11, %17 + %.0 = phi i1 [ %18, %17 ], [ %switch113, %11 ], [ %switch412, %13 ], [ %switch811, %15 ], [ false, %2 ], [ false, %8 ] ret i1 %.0 } diff --git a/bench/coreutils-rs/optimized/49fwg0b0m19bdvio.ll b/bench/coreutils-rs/optimized/49fwg0b0m19bdvio.ll index 61a6920cce5..354d33cd598 100644 --- a/bench/coreutils-rs/optimized/49fwg0b0m19bdvio.ll +++ b/bench/coreutils-rs/optimized/49fwg0b0m19bdvio.ll @@ -67,7 +67,7 @@ define internal fastcc void @_ZN10bigdecimal10ten_to_the17h6fca0c83621867e5E(ptr %.sroa.5.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %13, i64 16 %25 = getelementptr inbounds i8, ptr %4, i64 8 %26 = getelementptr inbounds i8, ptr %4, i64 16 - br label %switch.lookup + br label %39 27: ; preds = %2 %28 = trunc nuw nsw i64 %1 to i32 @@ -106,17 +106,15 @@ define internal fastcc void @_ZN10bigdecimal10ten_to_the17h6fca0c83621867e5E(ptr %38 = icmp eq i64 %21, 0 br i1 %38, label %55, label %56 -switch.lookup: ; preds = %19, %131 - %.sroa.0.047 = phi i32 [ 0, %19 ], [ %39, %131 ] - %39 = add nuw nsw i32 %.sroa.0.047, 1 +39: ; preds = %19, %131 + %.sroa.0.047 = phi i32 [ 0, %19 ], [ %40, %131 ] + %40 = add nuw nsw i32 %.sroa.0.047, 1 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) call void @llvm.experimental.noalias.scope.decl(metadata !4) call void @llvm.experimental.noalias.scope.decl(metadata !7) - %40 = load i8, ptr %22, align 8, !range !9, !alias.scope !10, !noalias !11, !noundef !13 - %41 = shl nuw nsw i8 %40, 3 - %switch.shiftamt = zext nneg i8 %41 to i24 - %switch.downshift = lshr i24 131330, %switch.shiftamt - %switch.masked = trunc i24 %switch.downshift to i8 + %41 = load i8, ptr %22, align 8, !range !9, !alias.scope !10, !noalias !11, !noundef !13 + %switch = icmp eq i8 %41, 1 + %spec.select = select i1 %switch, i8 1, i8 2 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13), !noalias !14 %.val.i = load ptr, ptr %23, align 8, !alias.scope !10, !noalias !11, !nonnull !13, !noundef !13 %.val6.i = load i64, ptr %24, align 8, !alias.scope !10, !noalias !11, !noundef !13 @@ -126,16 +124,13 @@ switch.lookup: ; preds = %19, %131 i64 1, label %43 ] -default.unreachable: ; preds = %62 - unreachable - -42: ; preds = %switch.lookup +42: ; preds = %39 store i64 0, ptr %13, align 8, !alias.scope !15, !noalias !14 store ptr inttoptr (i64 8 to ptr), ptr %.sroa.48.0..sroa_idx.i.i, align 8, !alias.scope !15, !noalias !14 store i64 0, ptr %.sroa.5.0..sroa_idx.i.i, align 8, !alias.scope !15, !noalias !14 br label %"_ZN10num_bigint7biguint14multiplication124_$LT$impl$u20$core..ops..arith..Mul$LT$$RF$num_bigint..biguint..BigUint$GT$$u20$for$u20$$RF$num_bigint..biguint..BigUint$GT$3mul17h1c9a408d9cc40af8E.exit.i" -43: ; preds = %switch.lookup +43: ; preds = %39 %44 = load i64, ptr %.val.i, align 8, !noalias !18, !noundef !13 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12), !noalias !18 %45 = invoke { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h56647ea023c6de6cE"(i64 noundef 1, i1 noundef zeroext false) @@ -172,12 +167,12 @@ default.unreachable: ; preds = %62 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12), !noalias !18 br label %"_ZN10num_bigint7biguint14multiplication124_$LT$impl$u20$core..ops..arith..Mul$LT$$RF$num_bigint..biguint..BigUint$GT$$u20$for$u20$$RF$num_bigint..biguint..BigUint$GT$3mul17h1c9a408d9cc40af8E.exit.i" -54: ; preds = %switch.lookup +54: ; preds = %39 invoke void @_ZN10num_bigint7biguint14multiplication4mul317h800ce51d89f6c299E(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr, {} }, i64 } }) align 8 dereferenceable(24) %13, ptr noalias noundef nonnull readonly align 8 %.val.i, i64 noundef %.val6.i, ptr noalias noundef nonnull readonly align 8 %.val.i, i64 noundef %.val6.i) to label %"_ZN10num_bigint7biguint14multiplication124_$LT$impl$u20$core..ops..arith..Mul$LT$$RF$num_bigint..biguint..BigUint$GT$$u20$for$u20$$RF$num_bigint..biguint..BigUint$GT$3mul17h1c9a408d9cc40af8E.exit.i" unwind label %35 "_ZN10num_bigint7biguint14multiplication124_$LT$impl$u20$core..ops..arith..Mul$LT$$RF$num_bigint..biguint..BigUint$GT$$u20$for$u20$$RF$num_bigint..biguint..BigUint$GT$3mul17h1c9a408d9cc40af8E.exit.i": ; preds = %54, %"_ZN10num_bigint7biguint14multiplication91_$LT$impl$u20$core..ops..arith..Mul$LT$u64$GT$$u20$for$u20$num_bigint..biguint..BigUint$GT$3mul17hd6d5f2b84a728581E.exit.i.i", %42 - invoke fastcc void @_ZN10num_bigint6bigint6BigInt12from_biguint17hcc6dbcfeb5ddc4b2E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %16, i8 noundef %switch.masked, ptr noalias nocapture noundef align 8 dereferenceable(24) %13) + invoke fastcc void @_ZN10num_bigint6bigint6BigInt12from_biguint17hcc6dbcfeb5ddc4b2E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %16, i8 noundef %spec.select, ptr noalias nocapture noundef align 8 dereferenceable(24) %13) to label %124 unwind label %35 55: ; preds = %37 @@ -216,6 +211,9 @@ default.unreachable: ; preds = %62 i8 2, label %66 ] +default.unreachable: ; preds = %62 + unreachable + 65: ; preds = %62 %switch.i24 = icmp eq i8 %60, 0 br i1 %switch.i24, label %68, label %67 @@ -443,8 +441,8 @@ default.unreachable: ; preds = %62 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !77 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %16, i64 32, i1 false) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) - %exitcond.not = icmp eq i32 %39, 4 - br i1 %exitcond.not, label %37, label %switch.lookup + %exitcond.not = icmp eq i32 %40, 4 + br i1 %exitcond.not, label %37, label %39 common.resume: ; preds = %135, %132, %121, %.body.i.i, %.body.thread36.i.i %common.resume.op = phi { ptr, i32 } [ %.pn.ph, %132 ], [ %lpad.thr_comm.split-lp, %121 ], [ %.pn40.i.i, %.body.thread36.i.i ], [ %.pn.i.i, %.body.i.i ], [ %136, %135 ] diff --git a/bench/coreutils-rs/optimized/yiho3rob7ld9k5q.ll b/bench/coreutils-rs/optimized/yiho3rob7ld9k5q.ll index ba986896a6e..b60386eeacd 100644 --- a/bench/coreutils-rs/optimized/yiho3rob7ld9k5q.ll +++ b/bench/coreutils-rs/optimized/yiho3rob7ld9k5q.ll @@ -1770,34 +1770,31 @@ define internal fastcc noundef zeroext i1 @"_ZN63_$LT$lscolors..style..Color$u20 define noundef range(i32 1, 3) i32 @"_ZN62_$LT$uu_ls..LsError$u20$as$u20$uucore..mods..error..UError$GT$4code17had7eadc5a09e8169E"(ptr noalias nocapture noundef readonly align 8 dereferenceable(56) %0) unnamed_addr #5 { %2 = load i8, ptr %0, align 8, !range !34, !noundef !4 switch i8 %2, label %default.unreachable1 [ - i8 0, label %9 + i8 0, label %8 i8 1, label %3 i8 2, label %4 - i8 3, label %9 - i8 4, label %8 - i8 5, label %9 - i8 6, label %9 - i8 7, label %9 + i8 3, label %8 + i8 4, label %3 + i8 5, label %8 + i8 6, label %8 + i8 7, label %8 ] default.unreachable1: ; preds = %1 unreachable -3: ; preds = %1 - br label %9 +3: ; preds = %1, %1 + br label %8 4: ; preds = %1 %5 = getelementptr inbounds i8, ptr %0, i64 1 %6 = load i8, ptr %5, align 1, !range !355, !noundef !4 %7 = trunc nuw i8 %6 to i1 %. = select i1 %7, i32 2, i32 1 - br label %9 + br label %8 -8: ; preds = %1 - br label %9 - -9: ; preds = %1, %1, %1, %1, %4, %1, %8, %3 - %.0 = phi i32 [ 1, %8 ], [ 1, %3 ], [ 2, %1 ], [ %., %4 ], [ 2, %1 ], [ 2, %1 ], [ 2, %1 ], [ 2, %1 ] +8: ; preds = %4, %1, %1, %1, %1, %1, %3 + %.0 = phi i32 [ 1, %3 ], [ 2, %1 ], [ 2, %1 ], [ 2, %1 ], [ 2, %1 ], [ 2, %1 ], [ %., %4 ] ret i32 %.0 } @@ -1846,7 +1843,7 @@ define noundef zeroext i1 @"_ZN53_$LT$uu_ls..LsError$u20$as$u20$core..fmt..Displ %43 = alloca [1 x { ptr, ptr }], align 8 %44 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, [1 x i64] } }, align 8 %45 = load i8, ptr %0, align 8, !range !34, !noundef !4 - switch i8 %45, label %default.unreachable109 [ + switch i8 %45, label %default.unreachable108 [ i8 0, label %46 i8 1, label %58 i8 2, label %66 @@ -1857,7 +1854,7 @@ define noundef zeroext i1 @"_ZN53_$LT$uu_ls..LsError$u20$as$u20$core..fmt..Displ i8 7, label %106 ] -default.unreachable109: ; preds = %66, %2 +default.unreachable108: ; preds = %66, %2 unreachable 46: ; preds = %2 @@ -1924,7 +1921,7 @@ default.unreachable109: ; preds = %66, %2 %.val = load ptr, ptr %67, align 8, !nonnull !4, !noundef !4 %68 = ptrtoint ptr %.val to i64 %69 = and i64 %68, 3 - switch i64 %69, label %default.unreachable109 [ + switch i64 %69, label %default.unreachable108 [ i64 2, label %74 i64 3, label %70 i64 0, label %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit @@ -1935,8 +1932,8 @@ default.unreachable109: ; preds = %66, %2 %71 = lshr i64 %68, 32 %72 = trunc nuw i64 %71 to i32 switch i32 %72, label %73 [ - i32 0, label %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread115 - i32 1, label %.thread129 + i32 0, label %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread114 + i32 1, label %.thread128 i32 2, label %.thread i32 3, label %.thread i32 4, label %.thread @@ -1986,9 +1983,9 @@ default.unreachable109: ; preds = %66, %2 %76 = trunc nuw i64 %75 to i32 switch i32 %76, label %.thread [ i32 13, label %150 - i32 1, label %.thread129 + i32 1, label %.thread128 i32 9, label %202 - i32 2, label %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread115 + i32 2, label %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread114 ] 77: ; preds = %66 @@ -1998,12 +1995,12 @@ default.unreachable109: ; preds = %66, %2 br label %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit _ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit: ; preds = %66, %77 - %.sink131 = phi i64 [ 15, %77 ], [ 16, %66 ] - %80 = getelementptr i8, ptr %.val, i64 %.sink131 + %.sink130 = phi i64 [ 15, %77 ], [ 16, %66 ] + %80 = getelementptr i8, ptr %.val, i64 %.sink130 %81 = load i8, ptr %80, align 8, !range !368, !noundef !4 switch i8 %81, label %.thread [ - i8 0, label %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread115 - i8 1, label %.thread129 + i8 0, label %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread114 + i8 1, label %.thread128 ] 82: ; preds = %2 @@ -2110,17 +2107,17 @@ _ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit: ; preds call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) br label %121 -121: ; preds = %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit96", %146, %106, %100, %94, %82, %58, %46 - %.0.in = phi i1 [ %120, %106 ], [ %263, %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit96" ], [ %105, %100 ], [ %99, %94 ], [ %93, %82 ], [ %.1.in, %146 ], [ %65, %58 ], [ %57, %46 ] +121: ; preds = %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit95", %146, %106, %100, %94, %82, %58, %46 + %.0.in = phi i1 [ %120, %106 ], [ %263, %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit95" ], [ %105, %100 ], [ %99, %94 ], [ %93, %82 ], [ %.1.in, %146 ], [ %65, %58 ], [ %57, %46 ] ret i1 %.0.in -122: ; preds = %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread115 +122: ; preds = %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread114 %123 = landingpad { ptr, i32 } cleanup invoke fastcc void @"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E"(ptr noalias noundef align 8 dereferenceable(24) %26) #22 to label %149 unwind label %147 -_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread115: ; preds = %74, %70, %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit +_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread114: ; preds = %74, %70, %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %28) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) @@ -2144,7 +2141,7 @@ _ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread115 %133 = invoke noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17ha383391698d817f8E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %28) to label %134 unwind label %122 -134: ; preds = %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread115 +134: ; preds = %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread114 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %28) call void @llvm.experimental.noalias.scope.decl(metadata !387) %135 = load i64, ptr %26, align 8, !range !44, !alias.scope !387, !noundef !4 @@ -2179,8 +2176,8 @@ _ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread115 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) br label %146 -146: ; preds = %189, %199, %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit93", %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit90", %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit87", %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit" - %.1.in = phi i1 [ %212, %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit90" ], [ %238, %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit93" ], [ %167, %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit87" ], [ %198, %199 ], [ %188, %189 ], [ %133, %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit" ] +146: ; preds = %189, %199, %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit92", %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit89", %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit86", %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit" + %.1.in = phi i1 [ %212, %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit89" ], [ %238, %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit92" ], [ %167, %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit86" ], [ %198, %199 ], [ %188, %189 ], [ %133, %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit" ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) br label %121 @@ -2202,13 +2199,13 @@ _ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread115 %155 = tail call noundef zeroext i1 @_ZN3std4path4Path6is_dir17h8f2800c096ff84c6E(ptr noalias noundef nonnull readonly align 1 %152, i64 noundef %154) br i1 %155, label %192, label %182 -156: ; preds = %.thread129 +156: ; preds = %.thread128 %157 = landingpad { ptr, i32 } cleanup invoke fastcc void @"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E"(ptr noalias noundef align 8 dereferenceable(24) %23) #22 to label %149 unwind label %147 -.thread129: ; preds = %74, %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit, %70 +.thread128: ; preds = %74, %_ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit, %70 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %25) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %23) @@ -2232,37 +2229,37 @@ _ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread115 %167 = invoke noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17ha383391698d817f8E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %25) to label %168 unwind label %156 -168: ; preds = %.thread129 +168: ; preds = %.thread128 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %25) call void @llvm.experimental.noalias.scope.decl(metadata !405) %169 = load i64, ptr %23, align 8, !range !44, !alias.scope !405, !noundef !4 %170 = icmp eq i64 %169, -9223372036854775808 - br i1 %170, label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit87", label %171 + br i1 %170, label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit86", label %171 171: ; preds = %168 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6), !noalias !408 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h49faf435f12094f1E.llvm.8271848126233039021"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %23) %172 = getelementptr inbounds i8, ptr %6, i64 8 %173 = load i64, ptr %172, align 8, !range !44, !noalias !408, !noundef !4 - %.not.i.i.i.i.i85 = icmp eq i64 %173, 0 - br i1 %.not.i.i.i.i.i85, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i86", label %174 + %.not.i.i.i.i.i84 = icmp eq i64 %173, 0 + br i1 %.not.i.i.i.i.i84, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i85", label %174 174: ; preds = %171 %175 = getelementptr inbounds i8, ptr %6, i64 16 %176 = load i64, ptr %175, align 8, !noalias !408, !noundef !4 %177 = icmp eq i64 %176, 0 - br i1 %177, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i86", label %178 + br i1 %177, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i85", label %178 178: ; preds = %174 %179 = load ptr, ptr %6, align 8, !noalias !408, !nonnull !4, !noundef !4 call void @__rust_dealloc(ptr noundef nonnull %179, i64 noundef %176, i64 noundef %173) #21 - br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i86" + br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i85" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i86": ; preds = %178, %174, %171 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i85": ; preds = %178, %174, %171 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6), !noalias !408 - br label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit87" + br label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit86" -"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit87": ; preds = %168, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i86" +"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit86": ; preds = %168, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i85" call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) br label %146 @@ -2368,32 +2365,32 @@ _ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread115 call void @llvm.experimental.noalias.scope.decl(metadata !435) %214 = load i64, ptr %14, align 8, !range !44, !alias.scope !435, !noundef !4 %215 = icmp eq i64 %214, -9223372036854775808 - br i1 %215, label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit90", label %216 + br i1 %215, label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit89", label %216 216: ; preds = %213 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5), !noalias !438 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h49faf435f12094f1E.llvm.8271848126233039021"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %14) %217 = getelementptr inbounds i8, ptr %5, i64 8 %218 = load i64, ptr %217, align 8, !range !44, !noalias !438, !noundef !4 - %.not.i.i.i.i.i88 = icmp eq i64 %218, 0 - br i1 %.not.i.i.i.i.i88, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i89", label %219 + %.not.i.i.i.i.i87 = icmp eq i64 %218, 0 + br i1 %.not.i.i.i.i.i87, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i88", label %219 219: ; preds = %216 %220 = getelementptr inbounds i8, ptr %5, i64 16 %221 = load i64, ptr %220, align 8, !noalias !438, !noundef !4 %222 = icmp eq i64 %221, 0 - br i1 %222, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i89", label %223 + br i1 %222, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i88", label %223 223: ; preds = %219 %224 = load ptr, ptr %5, align 8, !noalias !438, !nonnull !4, !noundef !4 call void @__rust_dealloc(ptr noundef nonnull %224, i64 noundef %221, i64 noundef %218) #21 - br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i89" + br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i88" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i89": ; preds = %223, %219, %216 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i88": ; preds = %223, %219, %216 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !438 - br label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit90" + br label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit89" -"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit90": ; preds = %213, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i89" +"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit89": ; preds = %213, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i88" call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) br label %146 @@ -2437,32 +2434,32 @@ _ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread115 call void @llvm.experimental.noalias.scope.decl(metadata !453) %240 = load i64, ptr %11, align 8, !range !44, !alias.scope !453, !noundef !4 %241 = icmp eq i64 %240, -9223372036854775808 - br i1 %241, label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit93", label %242 + br i1 %241, label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit92", label %242 242: ; preds = %239 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4), !noalias !456 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h49faf435f12094f1E.llvm.8271848126233039021"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %11) %243 = getelementptr inbounds i8, ptr %4, i64 8 %244 = load i64, ptr %243, align 8, !range !44, !noalias !456, !noundef !4 - %.not.i.i.i.i.i91 = icmp eq i64 %244, 0 - br i1 %.not.i.i.i.i.i91, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i92", label %245 + %.not.i.i.i.i.i90 = icmp eq i64 %244, 0 + br i1 %.not.i.i.i.i.i90, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i91", label %245 245: ; preds = %242 %246 = getelementptr inbounds i8, ptr %4, i64 16 %247 = load i64, ptr %246, align 8, !noalias !456, !noundef !4 %248 = icmp eq i64 %247, 0 - br i1 %248, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i92", label %249 + br i1 %248, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i91", label %249 249: ; preds = %245 %250 = load ptr, ptr %4, align 8, !noalias !456, !nonnull !4, !noundef !4 call void @__rust_dealloc(ptr noundef nonnull %250, i64 noundef %247, i64 noundef %244) #21 - br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i92" + br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i91" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i92": ; preds = %249, %245, %242 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i91": ; preds = %249, %245, %242 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !456 - br label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit93" + br label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit92" -"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit93": ; preds = %239, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i92" +"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit92": ; preds = %239, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i91" call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) br label %146 @@ -2502,32 +2499,32 @@ _ZN3std2io5error14repr_bitpacked11decode_repr17h8fa4f9b230ef4fc6E.exit.thread115 call void @llvm.experimental.noalias.scope.decl(metadata !471) %265 = load i64, ptr %8, align 8, !range !44, !alias.scope !471, !noundef !4 %266 = icmp eq i64 %265, -9223372036854775808 - br i1 %266, label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit96", label %267 + br i1 %266, label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit95", label %267 267: ; preds = %264 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3), !noalias !474 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h49faf435f12094f1E.llvm.8271848126233039021"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %8) %268 = getelementptr inbounds i8, ptr %3, i64 8 %269 = load i64, ptr %268, align 8, !range !44, !noalias !474, !noundef !4 - %.not.i.i.i.i.i94 = icmp eq i64 %269, 0 - br i1 %.not.i.i.i.i.i94, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i95", label %270 + %.not.i.i.i.i.i93 = icmp eq i64 %269, 0 + br i1 %.not.i.i.i.i.i93, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i94", label %270 270: ; preds = %267 %271 = getelementptr inbounds i8, ptr %3, i64 16 %272 = load i64, ptr %271, align 8, !noalias !474, !noundef !4 %273 = icmp eq i64 %272, 0 - br i1 %273, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i95", label %274 + br i1 %273, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i94", label %274 274: ; preds = %270 %275 = load ptr, ptr %3, align 8, !noalias !474, !nonnull !4, !noundef !4 call void @__rust_dealloc(ptr noundef nonnull %275, i64 noundef %272, i64 noundef %269) #21 - br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i95" + br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i94" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i95": ; preds = %274, %270, %267 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i94": ; preds = %274, %270, %267 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3), !noalias !474 - br label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit96" + br label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit95" -"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit96": ; preds = %264, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i95" +"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hc711d0a196594e75E.exit95": ; preds = %264, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5c671de288c5ad23E.exit.i94" call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) br label %121 diff --git a/bench/cpython/optimized/ast.ll b/bench/cpython/optimized/ast.ll index e2c8524f895..22badefc769 100644 --- a/bench/cpython/optimized/ast.ll +++ b/bench/cpython/optimized/ast.ll @@ -1736,11 +1736,11 @@ if.end34: ; preds = %if.end31 i32 22, label %sw.epilog i32 23, label %sw.bb39 i32 24, label %sw.bb42 - i32 25, label %sw.bb49 - i32 26, label %sw.bb52 + i32 25, label %sw.bb39 + i32 26, label %sw.bb39 ] -sw.bb39: ; preds = %if.end34 +sw.bb39: ; preds = %if.end34, %if.end34, %if.end34 br label %sw.epilog sw.bb42: ; preds = %if.end34 @@ -1750,12 +1750,6 @@ sw.bb42: ; preds = %if.end34 %tobool.not = icmp eq i32 %call44, 0 br i1 %tobool.not, label %return, label %sw.epilog -sw.bb49: ; preds = %if.end34 - br label %sw.epilog - -sw.bb52: ; preds = %if.end34 - br label %sw.epilog - sw.default: ; preds = %if.end34 %cmp55.not = icmp eq i32 %ctx, 1 br i1 %cmp55.not, label %if.end67, label %if.then56 @@ -1767,8 +1761,8 @@ if.then56: ; preds = %sw.default %call58 = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %14, ptr noundef nonnull @.str.60, ptr noundef nonnull %.str.70..str.69) #5 br label %return -sw.epilog: ; preds = %sw.bb42, %if.end34, %if.end34, %sw.bb52, %sw.bb49, %sw.bb39 - %.sink = phi i64 [ 16, %sw.bb52 ], [ 16, %sw.bb49 ], [ 16, %sw.bb39 ], [ 24, %if.end34 ], [ 24, %if.end34 ], [ 16, %sw.bb42 ] +sw.epilog: ; preds = %sw.bb42, %if.end34, %if.end34, %sw.bb39 + %.sink = phi i64 [ 16, %sw.bb39 ], [ 24, %if.end34 ], [ 24, %if.end34 ], [ 16, %sw.bb42 ] %ctx54 = getelementptr inbounds i8, ptr %exp, i64 %.sink %actual_ctx.0 = load i32, ptr %ctx54, align 8 %cmp62.not = icmp eq i32 %actual_ctx.0, %ctx @@ -3426,8 +3420,8 @@ return.sink.split: ; preds = %ensure_literal_nega tail call void @PyErr_SetString(ptr noundef %21, ptr noundef nonnull %.str.57.sink) #5 br label %return -return: ; preds = %return.sink.split, %if.end6.i, %if.end, %ensure_literal_complex.exit, %ensure_literal_negative.exit, %if.end, %if.end4, %sw.bb, %entry - %retval.0 = phi i32 [ 0, %entry ], [ 0, %sw.bb ], [ 1, %if.end4 ], [ 1, %if.end ], [ 1, %ensure_literal_negative.exit ], [ 1, %ensure_literal_complex.exit ], [ 1, %if.end ], [ 1, %if.end6.i ], [ 0, %return.sink.split ] +return: ; preds = %return.sink.split, %if.end6.i, %ensure_literal_complex.exit, %ensure_literal_negative.exit, %if.end, %if.end, %if.end4, %sw.bb, %entry + %retval.0 = phi i32 [ 0, %entry ], [ 0, %sw.bb ], [ 1, %if.end4 ], [ 1, %if.end ], [ 1, %if.end ], [ 1, %ensure_literal_negative.exit ], [ 1, %ensure_literal_complex.exit ], [ 1, %if.end6.i ], [ 0, %return.sink.split ] ret i32 %retval.0 } diff --git a/bench/cpython/optimized/cfield.ll b/bench/cpython/optimized/cfield.ll index 4fa616dd0b5..f6d675de4cf 100644 --- a/bench/cpython/optimized/cfield.ll +++ b/bench/cpython/optimized/cfield.ll @@ -578,7 +578,7 @@ for.cond: ; preds = %for.inc, %entry i8 115, label %for.inc i8 98, label %sw.bb2 i8 66, label %sw.bb4 - i8 99, label %sw.bb6 + i8 99, label %sw.bb2 i8 100, label %sw.bb8 i8 103, label %sw.bb10 i8 102, label %sw.bb12 @@ -588,25 +588,22 @@ for.cond: ; preds = %for.inc, %entry i8 73, label %sw.bb20 i8 108, label %sw.bb22 i8 76, label %sw.bb24 - i8 113, label %sw.bb26 - i8 81, label %sw.bb28 + i8 113, label %sw.bb22 + i8 81, label %sw.bb24 i8 80, label %for.inc i8 122, label %for.inc - i8 117, label %sw.bb34 + i8 117, label %sw.bb18 i8 85, label %for.inc i8 90, label %for.inc - i8 118, label %sw.bb40 - i8 63, label %sw.bb42 + i8 118, label %sw.bb14 + i8 63, label %sw.bb4 i8 79, label %for.inc ] -sw.bb2: ; preds = %for.cond +sw.bb2: ; preds = %for.cond, %for.cond br label %for.inc -sw.bb4: ; preds = %for.cond - br label %for.inc - -sw.bb6: ; preds = %for.cond +sw.bb4: ; preds = %for.cond, %for.cond br label %for.inc sw.bb8: ; preds = %for.cond @@ -618,44 +615,29 @@ sw.bb10: ; preds = %for.cond sw.bb12: ; preds = %for.cond br label %for.inc -sw.bb14: ; preds = %for.cond +sw.bb14: ; preds = %for.cond, %for.cond br label %for.inc sw.bb16: ; preds = %for.cond br label %for.inc -sw.bb18: ; preds = %for.cond +sw.bb18: ; preds = %for.cond, %for.cond br label %for.inc sw.bb20: ; preds = %for.cond br label %for.inc -sw.bb22: ; preds = %for.cond - br label %for.inc - -sw.bb24: ; preds = %for.cond - br label %for.inc - -sw.bb26: ; preds = %for.cond - br label %for.inc - -sw.bb28: ; preds = %for.cond - br label %for.inc - -sw.bb34: ; preds = %for.cond - br label %for.inc - -sw.bb40: ; preds = %for.cond +sw.bb22: ; preds = %for.cond, %for.cond br label %for.inc -sw.bb42: ; preds = %for.cond +sw.bb24: ; preds = %for.cond, %for.cond br label %for.inc sw.default: ; preds = %for.cond unreachable -for.inc: ; preds = %for.cond, %for.cond, %for.cond, %for.cond, %for.cond, %for.cond, %sw.bb2, %sw.bb4, %sw.bb6, %sw.bb8, %sw.bb10, %sw.bb12, %sw.bb14, %sw.bb16, %sw.bb18, %sw.bb20, %sw.bb22, %sw.bb24, %sw.bb26, %sw.bb28, %sw.bb34, %sw.bb40, %sw.bb42 - %ffi_type_pointer.sink = phi ptr [ @ffi_type_sint8, %sw.bb2 ], [ @ffi_type_uint8, %sw.bb4 ], [ @ffi_type_sint8, %sw.bb6 ], [ @ffi_type_double, %sw.bb8 ], [ @ffi_type_longdouble, %sw.bb10 ], [ @ffi_type_float, %sw.bb12 ], [ @ffi_type_sint16, %sw.bb14 ], [ @ffi_type_uint16, %sw.bb16 ], [ @ffi_type_sint32, %sw.bb18 ], [ @ffi_type_uint32, %sw.bb20 ], [ @ffi_type_sint64, %sw.bb22 ], [ @ffi_type_uint64, %sw.bb24 ], [ @ffi_type_sint64, %sw.bb26 ], [ @ffi_type_uint64, %sw.bb28 ], [ @ffi_type_sint32, %sw.bb34 ], [ @ffi_type_sint16, %sw.bb40 ], [ @ffi_type_uint8, %sw.bb42 ], [ @ffi_type_pointer, %for.cond ], [ @ffi_type_pointer, %for.cond ], [ @ffi_type_pointer, %for.cond ], [ @ffi_type_pointer, %for.cond ], [ @ffi_type_pointer, %for.cond ], [ @ffi_type_pointer, %for.cond ] +for.inc: ; preds = %for.cond, %for.cond, %for.cond, %for.cond, %for.cond, %for.cond, %sw.bb2, %sw.bb4, %sw.bb8, %sw.bb10, %sw.bb12, %sw.bb14, %sw.bb16, %sw.bb18, %sw.bb20, %sw.bb22, %sw.bb24 + %ffi_type_pointer.sink = phi ptr [ @ffi_type_sint8, %sw.bb2 ], [ @ffi_type_uint8, %sw.bb4 ], [ @ffi_type_double, %sw.bb8 ], [ @ffi_type_longdouble, %sw.bb10 ], [ @ffi_type_float, %sw.bb12 ], [ @ffi_type_sint16, %sw.bb14 ], [ @ffi_type_uint16, %sw.bb16 ], [ @ffi_type_sint32, %sw.bb18 ], [ @ffi_type_uint32, %sw.bb20 ], [ @ffi_type_sint64, %sw.bb22 ], [ @ffi_type_uint64, %sw.bb24 ], [ @ffi_type_pointer, %for.cond ], [ @ffi_type_pointer, %for.cond ], [ @ffi_type_pointer, %for.cond ], [ @ffi_type_pointer, %for.cond ], [ @ffi_type_pointer, %for.cond ], [ @ffi_type_pointer, %for.cond ] %pffi_type = getelementptr inbounds i8, ptr %fd.0, i64 24 store ptr %ffi_type_pointer.sink, ptr %pffi_type, align 8 %incdec.ptr = getelementptr i8, ptr %fd.0, i64 48 diff --git a/bench/csmith/optimized/DepthSpec.cpp.ll b/bench/csmith/optimized/DepthSpec.cpp.ll index d2663418c3b..aca52adddca 100644 --- a/bench/csmith/optimized/DepthSpec.cpp.ll +++ b/bench/csmith/optimized/DepthSpec.cpp.ll @@ -438,10 +438,10 @@ declare noundef zeroext i1 @_ZN9CGOptions14dfs_exhaustiveEv() local_unnamed_addr ; Function Attrs: mustprogress uwtable define dso_local noundef range(i32 -1, 1) i32 @_ZN9DepthSpec19depth_guard_by_typeE5dTypei(i32 noundef %0, i32 noundef %1) local_unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 { %3 = tail call noundef zeroext i1 @_ZN9CGOptions14dfs_exhaustiveEv() - br i1 %3, label %4, label %57 + br i1 %3, label %4, label %40 4: ; preds = %2 - switch i32 %0, label %57 [ + switch i32 %0, label %40 [ i32 1, label %.sink.split i32 0, label %5 i32 2, label %6 @@ -451,41 +451,41 @@ define dso_local noundef range(i32 -1, 1) i32 @_ZN9DepthSpec19depth_guard_by_typ i32 6, label %13 i32 7, label %14 i32 8, label %16 - i32 9, label %17 - i32 10, label %18 - i32 11, label %19 + i32 9, label %6 + i32 10, label %6 + i32 11, label %5 i32 14, label %.sink.split - i32 15, label %20 + i32 15, label %17 i32 16, label %.sink.split - i32 17, label %22 - i32 18, label %25 - i32 19, label %28 - i32 21, label %31 - i32 20, label %32 - i32 22, label %34 - i32 23, label %35 - i32 24, label %36 - i32 25, label %37 - i32 26, label %38 - i32 27, label %39 - i32 28, label %40 - i32 29, label %42 - i32 30, label %44 - i32 31, label %45 - i32 32, label %46 - i32 33, label %47 - i32 34, label %48 - i32 35, label %49 - i32 36, label %50 - i32 37, label %51 - i32 38, label %52 - i32 39, label %53 + i32 17, label %19 + i32 18, label %22 + i32 19, label %25 + i32 21, label %16 + i32 20, label %28 + i32 22, label %16 + i32 23, label %16 + i32 24, label %16 + i32 25, label %6 + i32 26, label %30 + i32 27, label %16 + i32 28, label %31 + i32 29, label %33 + i32 30, label %35 + i32 31, label %16 + i32 32, label %16 + i32 33, label %30 + i32 34, label %30 + i32 35, label %30 + i32 36, label %6 + i32 37, label %6 + i32 38, label %6 + i32 39, label %36 ] -5: ; preds = %4 +5: ; preds = %4, %4 br label %.sink.split -6: ; preds = %4 +6: ; preds = %4, %4, %4, %4, %4, %4, %4 br label %.sink.split 7: ; preds = %4 @@ -508,20 +508,16 @@ define dso_local noundef range(i32 -1, 1) i32 @_ZN9DepthSpec19depth_guard_by_typ %15 = tail call noundef i32 @_ZN9DepthSpec40dtFunctionInvocationRandom_minimal_depthEi(i32 poison) br label %.sink.split -16: ; preds = %4 +16: ; preds = %4, %4, %4, %4, %4, %4, %4, %4 br label %.sink.split 17: ; preds = %4 - br label %.sink.split - -18: ; preds = %4 + %18 = tail call noundef i32 @_ZN9DepthSpec40dtFunctionInvocationRandom_minimal_depthEi(i32 poison) br label %.sink.split 19: ; preds = %4 - br label %.sink.split - -20: ; preds = %4 - %21 = tail call noundef i32 @_ZN9DepthSpec40dtFunctionInvocationRandom_minimal_depthEi(i32 poison) + %20 = icmp eq i32 %1, 5 + %21 = zext i1 %20 to i32 br label %.sink.split 22: ; preds = %4 @@ -535,84 +531,37 @@ define dso_local noundef range(i32 -1, 1) i32 @_ZN9DepthSpec19depth_guard_by_typ br label %.sink.split 28: ; preds = %4 - %29 = icmp eq i32 %1, 5 - %30 = zext i1 %29 to i32 + %29 = tail call noundef i32 @_ZN9DepthSpec40dtFunctionInvocationRandom_minimal_depthEi(i32 poison) br label %.sink.split -31: ; preds = %4 +30: ; preds = %4, %4, %4, %4 br label %.sink.split -32: ; preds = %4 - %33 = tail call noundef i32 @_ZN9DepthSpec40dtFunctionInvocationRandom_minimal_depthEi(i32 poison) +31: ; preds = %4 + %32 = icmp eq i32 %1, 4 + %spec.select.i.i = select i1 %32, i32 2, i32 1 br label %.sink.split -34: ; preds = %4 +33: ; preds = %4 + %34 = icmp eq i32 %1, 4 + %spec.select.i78 = select i1 %34, i32 2, i32 1 br label %.sink.split 35: ; preds = %4 br label %.sink.split 36: ; preds = %4 + %37 = icmp eq i32 %1, 1 + %38 = select i1 %37, i32 2, i32 3 br label %.sink.split -37: ; preds = %4 - br label %.sink.split - -38: ; preds = %4 - br label %.sink.split - -39: ; preds = %4 - br label %.sink.split - -40: ; preds = %4 - %41 = icmp eq i32 %1, 4 - %spec.select.i.i = select i1 %41, i32 2, i32 1 - br label %.sink.split - -42: ; preds = %4 - %43 = icmp eq i32 %1, 4 - %spec.select.i78 = select i1 %43, i32 2, i32 1 - br label %.sink.split - -44: ; preds = %4 - br label %.sink.split - -45: ; preds = %4 - br label %.sink.split - -46: ; preds = %4 - br label %.sink.split - -47: ; preds = %4 - br label %.sink.split - -48: ; preds = %4 - br label %.sink.split - -49: ; preds = %4 - br label %.sink.split - -50: ; preds = %4 - br label %.sink.split - -51: ; preds = %4 - br label %.sink.split - -52: ; preds = %4 - br label %.sink.split - -53: ; preds = %4 - %54 = icmp eq i32 %1, 1 - %55 = select i1 %54, i32 2, i32 3 - br label %.sink.split - -.sink.split: ; preds = %4, %4, %4, %5, %6, %7, %9, %12, %13, %14, %16, %17, %18, %19, %20, %22, %25, %28, %31, %32, %34, %35, %36, %37, %38, %39, %40, %42, %44, %45, %46, %47, %48, %49, %50, %51, %52, %53 - %.sink = phi i32 [ %55, %53 ], [ 3, %52 ], [ 3, %51 ], [ 3, %50 ], [ 2, %49 ], [ 2, %48 ], [ 2, %47 ], [ 1, %46 ], [ 1, %45 ], [ 0, %44 ], [ %spec.select.i78, %42 ], [ %spec.select.i.i, %40 ], [ 1, %39 ], [ 2, %38 ], [ 3, %37 ], [ 1, %36 ], [ 1, %35 ], [ 1, %34 ], [ %33, %32 ], [ 1, %31 ], [ %30, %28 ], [ %27, %25 ], [ %24, %22 ], [ %21, %20 ], [ 4, %19 ], [ 3, %18 ], [ 3, %17 ], [ 1, %16 ], [ %15, %14 ], [ 6, %13 ], [ 17, %12 ], [ %11, %9 ], [ %spec.select.i, %7 ], [ 3, %6 ], [ 4, %5 ], [ 5, %4 ], [ 5, %4 ], [ 5, %4 ] - %56 = tail call noundef i32 @_ZN9DepthSpec12backtrackingEi(i32 noundef %.sink) - br label %57 +.sink.split: ; preds = %4, %4, %4, %5, %6, %7, %9, %12, %13, %14, %16, %17, %19, %22, %25, %28, %30, %31, %33, %35, %36 + %.sink = phi i32 [ %38, %36 ], [ 0, %35 ], [ %spec.select.i78, %33 ], [ %spec.select.i.i, %31 ], [ 2, %30 ], [ %29, %28 ], [ %27, %25 ], [ %24, %22 ], [ %21, %19 ], [ %18, %17 ], [ 1, %16 ], [ %15, %14 ], [ 6, %13 ], [ 17, %12 ], [ %11, %9 ], [ %spec.select.i, %7 ], [ 3, %6 ], [ 4, %5 ], [ 5, %4 ], [ 5, %4 ], [ 5, %4 ] + %39 = tail call noundef i32 @_ZN9DepthSpec12backtrackingEi(i32 noundef %.sink) + br label %40 -57: ; preds = %.sink.split, %4, %2 - %.0 = phi i32 [ 0, %2 ], [ 0, %4 ], [ %56, %.sink.split ] +40: ; preds = %.sink.split, %4, %2 + %.0 = phi i32 [ 0, %2 ], [ 0, %4 ], [ %39, %.sink.split ] ret i32 %.0 } diff --git a/bench/cvc5/optimized/cvc5.cpp.ll b/bench/cvc5/optimized/cvc5.cpp.ll index cd6d51f4c62..2c9f42fdd48 100644 --- a/bench/cvc5/optimized/cvc5.cpp.ll +++ b/bench/cvc5/optimized/cvc5.cpp.ll @@ -29508,12 +29508,12 @@ _ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit: ; preds = % i32 144, label %return i32 249, label %return i32 98, label %sw.bb15 - i32 138, label %sw.bb16 - i32 139, label %sw.bb17 - i32 140, label %sw.bb18 - i32 141, label %sw.bb19 - i32 142, label %sw.bb20 - i32 250, label %sw.bb21 + i32 138, label %sw.bb15 + i32 139, label %sw.bb15 + i32 140, label %sw.bb15 + i32 141, label %sw.bb15 + i32 142, label %sw.bb15 + i32 250, label %sw.bb15 i32 157, label %sw.bb22 i32 187, label %sw.bb22 i32 186, label %sw.bb22 @@ -29524,25 +29524,7 @@ _ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit: ; preds = % i32 210, label %sw.bb22 ] -sw.bb15: ; preds = %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit - br label %return - -sw.bb16: ; preds = %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit - br label %return - -sw.bb17: ; preds = %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit - br label %return - -sw.bb18: ; preds = %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit - br label %return - -sw.bb19: ; preds = %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit - br label %return - -sw.bb20: ; preds = %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit - br label %return - -sw.bb21: ; preds = %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit +sw.bb15: ; preds = %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit br label %return sw.bb22: ; preds = %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit @@ -29593,8 +29575,8 @@ ehcleanup: ; preds = %lpad34, %lpad invoke fastcc void @_ZN4cvc512_GLOBAL__N_122CVC5ApiExceptionStreamD2Ev(ptr noundef nonnull align 8 dereferenceable(392) %ref.tmp28) to label %common.resume unwind label %terminate.lpad -return: ; preds = %sw.bb15, %sw.bb16, %sw.bb17, %sw.bb18, %sw.bb19, %sw.bb20, %sw.bb21, %sw.bb22, %invoke.cont35, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZNK4cvc52Op15isIndexedHelperEv.exit - %retval.0 = phi i64 [ 0, %_ZNK4cvc52Op15isIndexedHelperEv.exit ], [ 0, %invoke.cont35 ], [ %sub.ptr.div.i, %sw.bb22 ], [ 2, %sw.bb21 ], [ 2, %sw.bb20 ], [ 2, %sw.bb19 ], [ 2, %sw.bb18 ], [ 2, %sw.bb17 ], [ 2, %sw.bb16 ], [ 2, %sw.bb15 ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ] +return: ; preds = %sw.bb15, %sw.bb22, %invoke.cont35, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit, %_ZNK4cvc52Op15isIndexedHelperEv.exit + %retval.0 = phi i64 [ 0, %_ZNK4cvc52Op15isIndexedHelperEv.exit ], [ 0, %invoke.cont35 ], [ %sub.ptr.div.i, %sw.bb22 ], [ 2, %sw.bb15 ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ], [ 1, %_ZN4cvc512_GLOBAL__N_112intToExtKindENS_8internal4kind6Kind_tE.exit ] ret i64 %retval.0 terminate.lpad: ; preds = %ehcleanup diff --git a/bench/cvc5/optimized/solver_engine.cpp.ll b/bench/cvc5/optimized/solver_engine.cpp.ll index 1c84ee0e1ea..fa5a58eb1e0 100644 --- a/bench/cvc5/optimized/solver_engine.cpp.ll +++ b/bench/cvc5/optimized/solver_engine.cpp.ll @@ -19982,8 +19982,8 @@ entry: switch i32 %proofFormat, label %sw.epilog [ i32 4, label %sw.bb i32 2, label %sw.bb5 - i32 1, label %sw.bb3 - i32 3, label %sw.bb4 + i32 1, label %sw.bb5 + i32 3, label %sw.bb5 ] sw.bb: ; preds = %entry @@ -19996,17 +19996,11 @@ sw.bb: ; preds = %entry %2 = load i32, ptr %proofFormatMode, align 8 br label %sw.epilog -sw.bb3: ; preds = %entry +sw.bb5: ; preds = %entry, %entry, %entry br label %sw.epilog -sw.bb4: ; preds = %entry - br label %sw.epilog - -sw.bb5: ; preds = %entry - br label %sw.epilog - -sw.epilog: ; preds = %sw.bb5, %sw.bb4, %sw.bb3, %sw.bb, %entry - %mode.0 = phi i32 [ %proofFormat, %sw.bb5 ], [ %proofFormat, %sw.bb4 ], [ %proofFormat, %sw.bb3 ], [ %2, %sw.bb ], [ 0, %entry ] +sw.epilog: ; preds = %sw.bb5, %sw.bb, %entry + %mode.0 = phi i32 [ %proofFormat, %sw.bb5 ], [ %2, %sw.bb ], [ 0, %entry ] %d_pfManager = getelementptr inbounds i8, ptr %this, i64 64 %3 = load ptr, ptr %d_pfManager, align 8 %4 = load ptr, ptr %fp, align 8 diff --git a/bench/darktable/optimized/introspection_vignette.c.ll b/bench/darktable/optimized/introspection_vignette.c.ll index 3514e47903c..9611aa0f6ea 100644 --- a/bench/darktable/optimized/introspection_vignette.c.ll +++ b/bench/darktable/optimized/introspection_vignette.c.ll @@ -829,7 +829,7 @@ define noundef range(i32 0, 2) i32 @mouse_moved(ptr nocapture noundef readonly % 154: ; preds = %153 call void @dt_control_change_cursor(i32 noundef 58) #19 - br label %336 + br label %334 155: ; preds = %153 %156 = getelementptr inbounds i8, ptr %10, i64 32 @@ -1052,48 +1052,42 @@ define noundef range(i32 0, 2) i32 @mouse_moved(ptr nocapture noundef readonly % 326: ; preds = %304, %269, %265, %252, %248, %236, %210, %203, %200, %198, %155, %153 call void (...) @dt_control_queue_redraw_center() #19 - br label %336 + br label %334 327: ; preds = %149, %143 - switch i32 %144, label %335 [ - i32 0, label %332 - i32 1, label %333 + switch i32 %144, label %333 [ + i32 0, label %330 + i32 1, label %331 i32 2, label %328 i32 4, label %329 - i32 8, label %330 - i32 16, label %331 + i32 8, label %328 + i32 16, label %329 ] -328: ; preds = %327 - br label %333 +328: ; preds = %327, %327 + br label %331 -329: ; preds = %327 - br label %333 +329: ; preds = %327, %327 + br label %331 330: ; preds = %327 - br label %333 + br i1 %101, label %333, label %331 -331: ; preds = %327 +331: ; preds = %330, %329, %328, %327 + %332 = phi i32 [ 108, %328 ], [ 116, %329 ], [ 52, %327 ], [ 68, %330 ] + call void @dt_control_change_cursor(i32 noundef %332) #19 br label %333 -332: ; preds = %327 - br i1 %101, label %335, label %333 - -333: ; preds = %332, %331, %330, %329, %328, %327 - %334 = phi i32 [ 108, %328 ], [ 108, %330 ], [ 116, %331 ], [ 116, %329 ], [ 52, %327 ], [ 68, %332 ] - call void @dt_control_change_cursor(i32 noundef %334) #19 - br label %335 - -335: ; preds = %333, %332, %327 +333: ; preds = %331, %330, %327 store i32 %144, ptr @mouse_moved.old_grab, align 4, !tbaa !33 call void (...) @dt_control_queue_redraw_center() #19 - br label %336 + br label %334 -336: ; preds = %335, %326, %154 - %337 = phi i32 [ 0, %154 ], [ 1, %326 ], [ 0, %335 ] +334: ; preds = %333, %326, %154 + %335 = phi i32 [ 0, %154 ], [ 1, %326 ], [ 0, %333 ] call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #19 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #19 - ret i32 %337 + ret i32 %335 } declare i32 @dt_dev_get_preview_size(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3 diff --git a/bench/delta-rs/optimized/2tf2q4cmcrkztukf.ll b/bench/delta-rs/optimized/2tf2q4cmcrkztukf.ll index ee062f72483..6169e8705bc 100644 --- a/bench/delta-rs/optimized/2tf2q4cmcrkztukf.ll +++ b/bench/delta-rs/optimized/2tf2q4cmcrkztukf.ll @@ -8011,7 +8011,7 @@ define { ptr, ptr } @"_ZN68_$LT$deltalake_azure..error..Error$u20$as$u20$core..e i64 6, label %31 i64 7, label %36 i64 8, label %41 - i64 9, label %42 + i64 9, label %41 ] 8: ; preds = %4 @@ -8063,18 +8063,15 @@ define { ptr, ptr } @"_ZN68_$LT$deltalake_azure..error..Error$u20$as$u20$core..e %40 = load ptr, ptr %39, align 8, !alias.scope !1338, !nonnull !8, !align !9, !noundef !8 br label %"_ZN58_$LT$object_store..Error$u20$as$u20$core..error..Error$GT$6source17hc743c76994604126E.exit" -41: ; preds = %4 +41: ; preds = %4, %4 br label %"_ZN58_$LT$object_store..Error$u20$as$u20$core..error..Error$GT$6source17hc743c76994604126E.exit" -42: ; preds = %4 - br label %"_ZN58_$LT$object_store..Error$u20$as$u20$core..error..Error$GT$6source17hc743c76994604126E.exit" - -"_ZN58_$LT$object_store..Error$u20$as$u20$core..error..Error$GT$6source17hc743c76994604126E.exit": ; preds = %42, %41, %36, %31, %26, %21, %19, %14, %9, %4, %1 - %.sroa.3.0 = phi ptr [ undef, %1 ], [ undef, %42 ], [ undef, %41 ], [ %40, %36 ], [ %35, %31 ], [ %30, %26 ], [ %25, %21 ], [ @anon.bcb33ca473573c9a2800c6755135ab0f.86, %19 ], [ %18, %14 ], [ %13, %9 ], [ @anon.bcb33ca473573c9a2800c6755135ab0f.84, %4 ] - %.sroa.0.0 = phi ptr [ null, %1 ], [ null, %42 ], [ null, %41 ], [ %38, %36 ], [ %33, %31 ], [ %28, %26 ], [ %23, %21 ], [ %20, %19 ], [ %16, %14 ], [ %11, %9 ], [ %0, %4 ] - %43 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 - %44 = insertvalue { ptr, ptr } %43, ptr %.sroa.3.0, 1 - ret { ptr, ptr } %44 +"_ZN58_$LT$object_store..Error$u20$as$u20$core..error..Error$GT$6source17hc743c76994604126E.exit": ; preds = %41, %36, %31, %26, %21, %19, %14, %9, %4, %1 + %.sroa.3.0 = phi ptr [ undef, %1 ], [ undef, %41 ], [ %40, %36 ], [ %35, %31 ], [ %30, %26 ], [ %25, %21 ], [ @anon.bcb33ca473573c9a2800c6755135ab0f.86, %19 ], [ %18, %14 ], [ %13, %9 ], [ @anon.bcb33ca473573c9a2800c6755135ab0f.84, %4 ] + %.sroa.0.0 = phi ptr [ null, %1 ], [ null, %41 ], [ %38, %36 ], [ %33, %31 ], [ %28, %26 ], [ %23, %21 ], [ %20, %19 ], [ %16, %14 ], [ %11, %9 ], [ %0, %4 ] + %42 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 + %43 = insertvalue { ptr, ptr } %42, ptr %.sroa.3.0, 1 + ret { ptr, ptr } %43 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/diesel-rs/optimized/462o5qgxgzqa9ugn.ll b/bench/diesel-rs/optimized/462o5qgxgzqa9ugn.ll index 8c61ffd4b32..42fc490da2d 100644 --- a/bench/diesel-rs/optimized/462o5qgxgzqa9ugn.ll +++ b/bench/diesel-rs/optimized/462o5qgxgzqa9ugn.ll @@ -3458,8 +3458,8 @@ define void @"_ZN96_$LT$dsl_auto_type..auto_type..DeriveParameters$u20$as$u20$da call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %81) %231 = add nsw i64 %138, -39 %switch = icmp ult i64 %231, 2 - %spec.select = select i1 %switch, i64 8, i64 176 - %232 = getelementptr inbounds i8, ptr %.sroa.0.0577, i64 %spec.select + %. = select i1 %switch, i64 8, i64 176 + %232 = getelementptr inbounds i8, ptr %.sroa.0.0577, i64 %. invoke void @_ZN12darling_core4util14path_to_string14path_to_string17hc1f335a3e67ecd13E(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr }, i64 } }) align 8 dereferenceable(24) %81, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %232) to label %234 unwind label %.thread384 diff --git a/bench/duckdb/optimized/ub_duckdb_common.cpp.ll b/bench/duckdb/optimized/ub_duckdb_common.cpp.ll index 884e5c3173d..6ae302a0584 100644 --- a/bench/duckdb/optimized/ub_duckdb_common.cpp.ll +++ b/bench/duckdb/optimized/ub_duckdb_common.cpp.ll @@ -161221,7 +161221,7 @@ entry: i8 101, label %sw.bb40 i8 102, label %sw.bb40 i8 108, label %sw.bb41 - i8 51, label %sw.bb42 + i8 51, label %sw.bb9 i8 53, label %sw.bb43 i8 104, label %sw.bb44 i8 103, label %sw.bb50 @@ -161254,7 +161254,7 @@ sw.bb7: ; preds = %entry sw.bb8: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry br label %return -sw.bb9: ; preds = %entry +sw.bb9: ; preds = %entry, %entry br label %return sw.bb10: ; preds = %entry, %entry @@ -161351,9 +161351,6 @@ sw.bb40: ; preds = %entry, %entry sw.bb41: ; preds = %entry br label %return -sw.bb42: ; preds = %entry - br label %return - sw.bb43: ; preds = %entry br label %return @@ -161468,8 +161465,8 @@ ehcleanup65: ; preds = %ehcleanup64 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp54) #52 br i1 %cleanup.isactive62.0, label %eh.resume.sink.split, label %eh.resume -return: ; preds = %sw.bb52, %sw.bb51, %sw.bb50, %if.end48, %sw.bb44, %sw.bb43, %sw.bb42, %sw.bb41, %sw.bb40, %sw.bb39, %sw.bb38, %sw.bb37, %if.else23, %if.else19, %if.else, %if.end, %sw.bb13, %sw.bb12, %sw.bb11, %sw.bb10, %sw.bb9, %sw.bb8, %sw.bb7, %sw.bb6, %sw.bb5, %sw.bb4, %sw.bb3, %sw.bb2, %entry - %retval.1 = phi i8 [ -56, %sw.bb52 ], [ -51, %sw.bb51 ], [ -1, %sw.bb50 ], [ %call3.i, %if.end48 ], [ -50, %sw.bb43 ], [ 8, %sw.bb42 ], [ 29, %sw.bb41 ], [ 23, %sw.bb40 ], [ 24, %sw.bb39 ], [ 21, %sw.bb38 ], [ -56, %sw.bb37 ], [ 12, %sw.bb12 ], [ 11, %sw.bb11 ], [ -52, %sw.bb10 ], [ 8, %sw.bb9 ], [ 9, %sw.bb8 ], [ 6, %sw.bb7 ], [ 7, %sw.bb6 ], [ 4, %sw.bb5 ], [ 5, %sw.bb4 ], [ 2, %sw.bb3 ], [ 3, %sw.bb2 ], [ 1, %entry ], [ -1, %sw.bb13 ], [ 5, %if.end ], [ 7, %if.else ], [ 9, %if.else19 ], [ -52, %if.else23 ], [ -1, %sw.bb44 ] +return: ; preds = %sw.bb52, %sw.bb51, %sw.bb50, %if.end48, %sw.bb44, %sw.bb43, %sw.bb41, %sw.bb40, %sw.bb39, %sw.bb38, %sw.bb37, %if.else23, %if.else19, %if.else, %if.end, %sw.bb13, %sw.bb12, %sw.bb11, %sw.bb10, %sw.bb9, %sw.bb8, %sw.bb7, %sw.bb6, %sw.bb5, %sw.bb4, %sw.bb3, %sw.bb2, %entry + %retval.1 = phi i8 [ -56, %sw.bb52 ], [ -51, %sw.bb51 ], [ -1, %sw.bb50 ], [ %call3.i, %if.end48 ], [ -50, %sw.bb43 ], [ 29, %sw.bb41 ], [ 23, %sw.bb40 ], [ 24, %sw.bb39 ], [ 21, %sw.bb38 ], [ -56, %sw.bb37 ], [ 12, %sw.bb12 ], [ 11, %sw.bb11 ], [ -52, %sw.bb10 ], [ 8, %sw.bb9 ], [ 9, %sw.bb8 ], [ 6, %sw.bb7 ], [ 7, %sw.bb6 ], [ 4, %sw.bb5 ], [ 5, %sw.bb4 ], [ 2, %sw.bb3 ], [ 3, %sw.bb2 ], [ 1, %entry ], [ -1, %sw.bb13 ], [ 5, %if.end ], [ 7, %if.else ], [ 9, %if.else19 ], [ -52, %if.else23 ], [ -1, %sw.bb44 ] ret i8 %retval.1 eh.resume.sink.split: ; preds = %ehcleanup65, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i92, %ehcleanup65.thread109, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i92.thread, %ehcleanup65.thread, %ehcleanup, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i, %ehcleanup.thread @@ -162770,59 +162767,35 @@ entry: i8 7, label %sw.bb3 i8 9, label %sw.bb4 i8 2, label %return - i8 4, label %sw.bb6 - i8 6, label %sw.bb7 - i8 8, label %sw.bb8 + i8 4, label %sw.bb2 + i8 6, label %sw.bb3 + i8 8, label %sw.bb4 i8 -52, label %sw.bb9 - i8 11, label %sw.bb10 - i8 12, label %sw.bb11 - i8 -56, label %sw.bb12 - i8 21, label %sw.bb13 + i8 11, label %sw.bb3 + i8 12, label %sw.bb4 + i8 -56, label %sw.bb9 + i8 21, label %sw.bb9 i8 24, label %sw.bb14 i8 -51, label %sw.bb14 i8 29, label %sw.bb14 - i8 23, label %sw.bb15 + i8 23, label %sw.bb9 ] -sw.bb2: ; preds = %entry - br label %return - -sw.bb3: ; preds = %entry +sw.bb2: ; preds = %entry, %entry br label %return -sw.bb4: ; preds = %entry +sw.bb3: ; preds = %entry, %entry, %entry br label %return -sw.bb6: ; preds = %entry +sw.bb4: ; preds = %entry, %entry, %entry br label %return -sw.bb7: ; preds = %entry - br label %return - -sw.bb8: ; preds = %entry - br label %return - -sw.bb9: ; preds = %entry - br label %return - -sw.bb10: ; preds = %entry - br label %return - -sw.bb11: ; preds = %entry - br label %return - -sw.bb12: ; preds = %entry - br label %return - -sw.bb13: ; preds = %entry +sw.bb9: ; preds = %entry, %entry, %entry, %entry br label %return sw.bb14: ; preds = %entry, %entry, %entry br label %return -sw.bb15: ; preds = %entry - br label %return - sw.default: ; preds = %entry %exception = tail call ptr @__cxa_allocate_exception(i64 80) #52 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp) #52 @@ -162874,8 +162847,8 @@ cleanup.action: ; preds = %ehcleanup, %_ZNKSt7 call void @__cxa_free_exception(ptr %exception) #52 br label %eh.resume -return: ; preds = %sw.bb15, %sw.bb14, %sw.bb13, %sw.bb12, %sw.bb11, %sw.bb10, %sw.bb9, %sw.bb8, %sw.bb7, %sw.bb6, %sw.bb4, %sw.bb3, %sw.bb2, %entry, %entry, %entry, %entry - %retval.0 = phi i64 [ 16, %sw.bb15 ], [ 0, %sw.bb14 ], [ 16, %sw.bb13 ], [ 16, %sw.bb12 ], [ 8, %sw.bb11 ], [ 4, %sw.bb10 ], [ 16, %sw.bb9 ], [ 8, %sw.bb8 ], [ 4, %sw.bb7 ], [ 2, %sw.bb6 ], [ 8, %sw.bb4 ], [ 4, %sw.bb3 ], [ 2, %sw.bb2 ], [ 1, %entry ], [ 1, %entry ], [ 1, %entry ], [ 1, %entry ] +return: ; preds = %sw.bb14, %sw.bb9, %sw.bb4, %sw.bb3, %sw.bb2, %entry, %entry, %entry, %entry + %retval.0 = phi i64 [ 0, %sw.bb14 ], [ 16, %sw.bb9 ], [ 8, %sw.bb4 ], [ 4, %sw.bb3 ], [ 2, %sw.bb2 ], [ 1, %entry ], [ 1, %entry ], [ 1, %entry ], [ 1, %entry ] ret i64 %retval.0 eh.resume: ; preds = %cleanup.action, %ehcleanup, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i diff --git a/bench/eastl/optimized/EAScanfCore.cpp.ll b/bench/eastl/optimized/EAScanfCore.cpp.ll index 42e07d8cd85..8b5f8f80ef0 100644 --- a/bench/eastl/optimized/EAScanfCore.cpp.ll +++ b/bench/eastl/optimized/EAScanfCore.cpp.ll @@ -1358,20 +1358,17 @@ if.then216: ; preds = %sw.bb214 i32 1, label %sw.epilog223 i32 13, label %sw.bb219 i32 14, label %sw.bb220 - i32 11, label %sw.bb221 + i32 11, label %sw.bb220 ] sw.bb219: ; preds = %if.then216 br label %sw.epilog223 -sw.bb220: ; preds = %if.then216 +sw.bb220: ; preds = %if.then216, %if.then216 br label %sw.epilog223 -sw.bb221: ; preds = %if.then216 - br label %sw.epilog223 - -sw.epilog223: ; preds = %if.then216, %if.then216, %sw.bb221, %sw.bb220, %sw.bb219 - %stringTypeSize.0 = phi i32 [ 4, %sw.bb221 ], [ 4, %sw.bb220 ], [ 2, %sw.bb219 ], [ 1, %if.then216 ], [ 1, %if.then216 ] +sw.epilog223: ; preds = %if.then216, %if.then216, %sw.bb220, %sw.bb219 + %stringTypeSize.0 = phi i32 [ 4, %sw.bb220 ], [ 2, %sw.bb219 ], [ 1, %if.then216 ], [ 1, %if.then216 ] %call224 = call noundef zeroext i1 %pReadFormatSpanFunction(ptr noundef nonnull align 4 dereferenceable(52) %fd, ptr noundef nonnull align 4 dereferenceable(4) %c, ptr noundef %pReadFunction, ptr noundef %pContext, i32 noundef %stringTypeSize.0, ptr noundef nonnull align 8 dereferenceable(8) %pArgumentCurrent, ptr noundef nonnull align 4 dereferenceable(4) %nReadCount) br i1 %call224, label %if.end226, label %Done @@ -1467,20 +1464,17 @@ if.then256: ; preds = %if.end254 i32 1, label %sw.epilog263 i32 13, label %sw.bb259 i32 14, label %sw.bb260 - i32 11, label %sw.bb261 + i32 11, label %sw.bb260 ] sw.bb259: ; preds = %if.then256 br label %sw.epilog263 -sw.bb260: ; preds = %if.then256 - br label %sw.epilog263 - -sw.bb261: ; preds = %if.then256 +sw.bb260: ; preds = %if.then256, %if.then256 br label %sw.epilog263 -sw.epilog263: ; preds = %if.then256, %if.then256, %sw.bb261, %sw.bb260, %sw.bb259 - %charTypeSize.0 = phi i32 [ 4, %sw.bb261 ], [ 4, %sw.bb260 ], [ 2, %sw.bb259 ], [ 1, %if.then256 ], [ 1, %if.then256 ] +sw.epilog263: ; preds = %if.then256, %if.then256, %sw.bb260, %sw.bb259 + %charTypeSize.0 = phi i32 [ 4, %sw.bb260 ], [ 2, %sw.bb259 ], [ 1, %if.then256 ], [ 1, %if.then256 ] %67 = load i32, ptr %fd, align 4 %dec242 = add nsw i32 %67, -1 store i32 %dec242, ptr %fd, align 4 @@ -2216,20 +2210,17 @@ if.then216: ; preds = %sw.bb214 i32 1, label %sw.epilog223 i32 13, label %sw.bb219 i32 14, label %sw.bb220 - i32 11, label %sw.bb221 + i32 11, label %sw.bb220 ] sw.bb219: ; preds = %if.then216 br label %sw.epilog223 -sw.bb220: ; preds = %if.then216 - br label %sw.epilog223 - -sw.bb221: ; preds = %if.then216 +sw.bb220: ; preds = %if.then216, %if.then216 br label %sw.epilog223 -sw.epilog223: ; preds = %if.then216, %if.then216, %sw.bb221, %sw.bb220, %sw.bb219 - %stringTypeSize.0 = phi i32 [ 4, %sw.bb221 ], [ 4, %sw.bb220 ], [ 2, %sw.bb219 ], [ 1, %if.then216 ], [ 1, %if.then216 ] +sw.epilog223: ; preds = %if.then216, %if.then216, %sw.bb220, %sw.bb219 + %stringTypeSize.0 = phi i32 [ 4, %sw.bb220 ], [ 2, %sw.bb219 ], [ 1, %if.then216 ], [ 1, %if.then216 ] %call224 = call noundef zeroext i1 %pReadFormatSpanFunction(ptr noundef nonnull align 4 dereferenceable(52) %fd, ptr noundef nonnull align 4 dereferenceable(4) %c, ptr noundef %pReadFunction, ptr noundef %pContext, i32 noundef %stringTypeSize.0, ptr noundef nonnull align 8 dereferenceable(8) %pArgumentCurrent, ptr noundef nonnull align 4 dereferenceable(4) %nReadCount) br i1 %call224, label %if.end226, label %Done @@ -2325,20 +2316,17 @@ if.then256: ; preds = %if.end254 i32 1, label %sw.epilog263 i32 13, label %sw.bb259 i32 14, label %sw.bb260 - i32 11, label %sw.bb261 + i32 11, label %sw.bb260 ] sw.bb259: ; preds = %if.then256 br label %sw.epilog263 -sw.bb260: ; preds = %if.then256 +sw.bb260: ; preds = %if.then256, %if.then256 br label %sw.epilog263 -sw.bb261: ; preds = %if.then256 - br label %sw.epilog263 - -sw.epilog263: ; preds = %if.then256, %if.then256, %sw.bb261, %sw.bb260, %sw.bb259 - %charTypeSize.0 = phi i32 [ 4, %sw.bb261 ], [ 4, %sw.bb260 ], [ 2, %sw.bb259 ], [ 1, %if.then256 ], [ 1, %if.then256 ] +sw.epilog263: ; preds = %if.then256, %if.then256, %sw.bb260, %sw.bb259 + %charTypeSize.0 = phi i32 [ 4, %sw.bb260 ], [ 2, %sw.bb259 ], [ 1, %if.then256 ], [ 1, %if.then256 ] %68 = load i32, ptr %fd, align 4 %dec286 = add nsw i32 %68, -1 store i32 %dec286, ptr %fd, align 4 @@ -3064,20 +3052,17 @@ if.then211: ; preds = %sw.bb209 i32 1, label %sw.epilog218 i32 13, label %sw.bb214 i32 14, label %sw.bb215 - i32 11, label %sw.bb216 + i32 11, label %sw.bb215 ] sw.bb214: ; preds = %if.then211 br label %sw.epilog218 -sw.bb215: ; preds = %if.then211 - br label %sw.epilog218 - -sw.bb216: ; preds = %if.then211 +sw.bb215: ; preds = %if.then211, %if.then211 br label %sw.epilog218 -sw.epilog218: ; preds = %if.then211, %if.then211, %sw.bb216, %sw.bb215, %sw.bb214 - %stringTypeSize.0 = phi i32 [ 4, %sw.bb216 ], [ 4, %sw.bb215 ], [ 2, %sw.bb214 ], [ 1, %if.then211 ], [ 1, %if.then211 ] +sw.epilog218: ; preds = %if.then211, %if.then211, %sw.bb215, %sw.bb214 + %stringTypeSize.0 = phi i32 [ 4, %sw.bb215 ], [ 2, %sw.bb214 ], [ 1, %if.then211 ], [ 1, %if.then211 ] %call219 = call noundef zeroext i1 %pReadFormatSpanFunction(ptr noundef nonnull align 4 dereferenceable(52) %fd, ptr noundef nonnull align 4 dereferenceable(4) %c, ptr noundef %pReadFunction, ptr noundef %pContext, i32 noundef %stringTypeSize.0, ptr noundef nonnull align 8 dereferenceable(8) %pArgumentCurrent, ptr noundef nonnull align 4 dereferenceable(4) %nReadCount) br i1 %call219, label %if.end221, label %Done @@ -3173,20 +3158,17 @@ if.then251: ; preds = %if.end249 i32 1, label %sw.epilog258 i32 13, label %sw.bb254 i32 14, label %sw.bb255 - i32 11, label %sw.bb256 + i32 11, label %sw.bb255 ] sw.bb254: ; preds = %if.then251 br label %sw.epilog258 -sw.bb255: ; preds = %if.then251 - br label %sw.epilog258 - -sw.bb256: ; preds = %if.then251 +sw.bb255: ; preds = %if.then251, %if.then251 br label %sw.epilog258 -sw.epilog258: ; preds = %if.then251, %if.then251, %sw.bb256, %sw.bb255, %sw.bb254 - %charTypeSize.0 = phi i32 [ 4, %sw.bb256 ], [ 4, %sw.bb255 ], [ 2, %sw.bb254 ], [ 1, %if.then251 ], [ 1, %if.then251 ] +sw.epilog258: ; preds = %if.then251, %if.then251, %sw.bb255, %sw.bb254 + %charTypeSize.0 = phi i32 [ 4, %sw.bb255 ], [ 2, %sw.bb254 ], [ 1, %if.then251 ], [ 1, %if.then251 ] %62 = load i32, ptr %fd, align 4 %dec285 = add nsw i32 %62, -1 store i32 %dec285, ptr %fd, align 4 diff --git a/bench/flatbuffers/optimized/idl_gen_go.cpp.ll b/bench/flatbuffers/optimized/idl_gen_go.cpp.ll index 7796baf6907..47db6112a55 100644 --- a/bench/flatbuffers/optimized/idl_gen_go.cpp.ll +++ b/bench/flatbuffers/optimized/idl_gen_go.cpp.ll @@ -18607,17 +18607,17 @@ entry: i32 3, label %cond.end6 i32 4, label %cond.end6 i32 5, label %sw.bb5.i - i32 6, label %sw.bb6.i + i32 6, label %sw.bb5.i i32 7, label %sw.bb7.i - i32 8, label %sw.bb8.i + i32 8, label %sw.bb7.i i32 9, label %sw.bb9.i - i32 10, label %sw.bb10.i - i32 11, label %sw.bb11.i - i32 12, label %sw.bb12.i - i32 13, label %sw.bb13.i - i32 14, label %sw.bb14.i - i32 18, label %sw.bb15.i - i32 16, label %sw.bb17.i + i32 10, label %sw.bb9.i + i32 11, label %sw.bb7.i + i32 12, label %sw.bb9.i + i32 13, label %sw.bb7.i + i32 14, label %sw.bb7.i + i32 18, label %sw.bb9.i + i32 16, label %sw.bb7.i ] _ZN11flatbuffers8IsStructERKNS_4TypeE.exit: ; preds = %entry @@ -18626,7 +18626,7 @@ _ZN11flatbuffers8IsStructERKNS_4TypeE.exit: ; preds = %entry %fixed.i = getelementptr inbounds i8, ptr %1, i64 272 %2 = load i8, ptr %fixed.i, align 8 %tobool.i = trunc i8 %2 to i1 - br i1 %tobool.i, label %cond.true, label %cond.end6 + br i1 %tobool.i, label %cond.true, label %sw.bb7.i cond.true: ; preds = %_ZN11flatbuffers8IsStructERKNS_4TypeE.exit %bytesize = getelementptr inbounds i8, ptr %1, i64 288 @@ -18658,47 +18658,20 @@ cond.true2: ; preds = %entry %mul = mul i64 %call3, %conv br label %cond.end6 -sw.bb5.i: ; preds = %entry +sw.bb5.i: ; preds = %entry, %entry br label %cond.end6 -sw.bb6.i: ; preds = %entry +sw.bb7.i: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %_ZN11flatbuffers8IsStructERKNS_4TypeE.exit br label %cond.end6 -sw.bb7.i: ; preds = %entry - br label %cond.end6 - -sw.bb8.i: ; preds = %entry - br label %cond.end6 - -sw.bb9.i: ; preds = %entry - br label %cond.end6 - -sw.bb10.i: ; preds = %entry - br label %cond.end6 - -sw.bb11.i: ; preds = %entry - br label %cond.end6 - -sw.bb12.i: ; preds = %entry - br label %cond.end6 - -sw.bb13.i: ; preds = %entry - br label %cond.end6 - -sw.bb14.i: ; preds = %entry - br label %cond.end6 - -sw.bb15.i: ; preds = %entry - br label %cond.end6 - -sw.bb17.i: ; preds = %entry +sw.bb9.i: ; preds = %entry, %entry, %entry, %entry br label %cond.end6 sw.epilog.i: ; preds = %entry br label %cond.end6 -cond.end6: ; preds = %_ZN11flatbuffers8IsStructERKNS_4TypeE.exit, %entry, %entry, %entry, %entry, %entry, %sw.epilog.i, %sw.bb17.i, %sw.bb15.i, %sw.bb14.i, %sw.bb13.i, %sw.bb12.i, %sw.bb11.i, %sw.bb10.i, %sw.bb9.i, %sw.bb8.i, %sw.bb7.i, %sw.bb6.i, %sw.bb5.i, %cond.true2, %cond.true - %cond7 = phi i64 [ %3, %cond.true ], [ %mul, %cond.true2 ], [ 0, %sw.epilog.i ], [ 4, %sw.bb17.i ], [ 8, %sw.bb15.i ], [ 4, %sw.bb14.i ], [ 4, %sw.bb13.i ], [ 8, %sw.bb12.i ], [ 4, %sw.bb11.i ], [ 8, %sw.bb10.i ], [ 8, %sw.bb9.i ], [ 4, %sw.bb8.i ], [ 4, %sw.bb7.i ], [ 2, %sw.bb6.i ], [ 2, %sw.bb5.i ], [ 1, %entry ], [ 1, %entry ], [ 1, %entry ], [ 1, %entry ], [ 1, %entry ], [ 4, %_ZN11flatbuffers8IsStructERKNS_4TypeE.exit ] +cond.end6: ; preds = %entry, %entry, %entry, %entry, %entry, %sw.epilog.i, %sw.bb9.i, %sw.bb7.i, %sw.bb5.i, %cond.true2, %cond.true + %cond7 = phi i64 [ %3, %cond.true ], [ %mul, %cond.true2 ], [ 0, %sw.epilog.i ], [ 8, %sw.bb9.i ], [ 4, %sw.bb7.i ], [ 2, %sw.bb5.i ], [ 1, %entry ], [ 1, %entry ], [ 1, %entry ], [ 1, %entry ], [ 1, %entry ] ret i64 %cond7 } @@ -21199,7 +21172,7 @@ invoke.cont12: ; preds = %invoke.cont7 store ptr %4, ptr %enum_def.i.i, align 8, !alias.scope !576 %fixed_length.i.i = getelementptr inbounds i8, ptr %vector_type, i64 24 store i16 %5, ptr %fixed_length.i.i, align 8, !alias.scope !576 - switch i32 %2, label %sw.epilog.i30.i [ + switch i32 %2, label %sw.epilog.i19.i [ i32 15, label %_ZN11flatbuffers8IsStructERKNS_4TypeE.exit.i i32 17, label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit i32 0, label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit @@ -21207,72 +21180,45 @@ invoke.cont12: ; preds = %invoke.cont7 i32 2, label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit i32 3, label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit i32 4, label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit - i32 5, label %sw.bb5.i29.i - i32 6, label %sw.bb6.i28.i - i32 7, label %sw.bb7.i27.i - i32 8, label %sw.bb8.i26.i - i32 9, label %sw.bb9.i25.i - i32 10, label %sw.bb10.i24.i - i32 11, label %sw.bb11.i23.i - i32 12, label %sw.bb12.i22.i - i32 13, label %sw.bb13.i21.i - i32 14, label %sw.bb14.i20.i - i32 18, label %sw.bb15.i19.i - i32 16, label %sw.bb17.i17.i + i32 5, label %sw.bb5.i18.i + i32 6, label %sw.bb5.i18.i + i32 7, label %sw.bb7.i15.i + i32 8, label %sw.bb7.i15.i + i32 9, label %sw.bb9.i17.i + i32 10, label %sw.bb9.i17.i + i32 11, label %sw.bb7.i15.i + i32 12, label %sw.bb9.i17.i + i32 13, label %sw.bb7.i15.i + i32 14, label %sw.bb7.i15.i + i32 18, label %sw.bb9.i17.i + i32 16, label %sw.bb7.i15.i ] _ZN11flatbuffers8IsStructERKNS_4TypeE.exit.i: ; preds = %invoke.cont12 %fixed.i.i = getelementptr inbounds i8, ptr %3, i64 272 %6 = load i8, ptr %fixed.i.i, align 8 %tobool.i.i = trunc i8 %6 to i1 - br i1 %tobool.i.i, label %if.then.i, label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit + br i1 %tobool.i.i, label %if.then.i, label %sw.bb7.i15.i if.then.i: ; preds = %_ZN11flatbuffers8IsStructERKNS_4TypeE.exit.i %minalign.i = getelementptr inbounds i8, ptr %3, i64 280 %7 = load i64, ptr %minalign.i, align 8 br label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit -sw.bb5.i29.i: ; preds = %invoke.cont12 - br label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit - -sw.bb6.i28.i: ; preds = %invoke.cont12 - br label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit - -sw.bb7.i27.i: ; preds = %invoke.cont12 - br label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit - -sw.bb8.i26.i: ; preds = %invoke.cont12 - br label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit - -sw.bb9.i25.i: ; preds = %invoke.cont12 - br label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit - -sw.bb10.i24.i: ; preds = %invoke.cont12 - br label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit - -sw.bb11.i23.i: ; preds = %invoke.cont12 - br label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit - -sw.bb12.i22.i: ; preds = %invoke.cont12 - br label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit - -sw.bb13.i21.i: ; preds = %invoke.cont12 - br label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit - -sw.bb14.i20.i: ; preds = %invoke.cont12 +sw.bb5.i18.i: ; preds = %invoke.cont12, %invoke.cont12 br label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit -sw.bb15.i19.i: ; preds = %invoke.cont12 +sw.bb7.i15.i: ; preds = %_ZN11flatbuffers8IsStructERKNS_4TypeE.exit.i, %invoke.cont12, %invoke.cont12, %invoke.cont12, %invoke.cont12, %invoke.cont12, %invoke.cont12 br label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit -sw.bb17.i17.i: ; preds = %invoke.cont12 +sw.bb9.i17.i: ; preds = %invoke.cont12, %invoke.cont12, %invoke.cont12, %invoke.cont12 br label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit -sw.epilog.i30.i: ; preds = %invoke.cont12 +sw.epilog.i19.i: ; preds = %invoke.cont12 br label %_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit -_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit: ; preds = %invoke.cont12, %invoke.cont12, %invoke.cont12, %invoke.cont12, %invoke.cont12, %invoke.cont12, %_ZN11flatbuffers8IsStructERKNS_4TypeE.exit.i, %if.then.i, %sw.bb5.i29.i, %sw.bb6.i28.i, %sw.bb7.i27.i, %sw.bb8.i26.i, %sw.bb9.i25.i, %sw.bb10.i24.i, %sw.bb11.i23.i, %sw.bb12.i22.i, %sw.bb13.i21.i, %sw.bb14.i20.i, %sw.bb15.i19.i, %sw.bb17.i17.i, %sw.epilog.i30.i - %retval.0.i = phi i64 [ %7, %if.then.i ], [ 0, %sw.epilog.i30.i ], [ 4, %sw.bb17.i17.i ], [ 8, %sw.bb15.i19.i ], [ 4, %sw.bb14.i20.i ], [ 4, %sw.bb13.i21.i ], [ 8, %sw.bb12.i22.i ], [ 4, %sw.bb11.i23.i ], [ 8, %sw.bb10.i24.i ], [ 8, %sw.bb9.i25.i ], [ 4, %sw.bb8.i26.i ], [ 4, %sw.bb7.i27.i ], [ 2, %sw.bb6.i28.i ], [ 2, %sw.bb5.i29.i ], [ 1, %invoke.cont12 ], [ 1, %invoke.cont12 ], [ 1, %invoke.cont12 ], [ 1, %invoke.cont12 ], [ 1, %invoke.cont12 ], [ 4, %_ZN11flatbuffers8IsStructERKNS_4TypeE.exit.i ], [ 1, %invoke.cont12 ] +_ZN11flatbuffers15InlineAlignmentERKNS_4TypeE.exit: ; preds = %invoke.cont12, %invoke.cont12, %invoke.cont12, %invoke.cont12, %invoke.cont12, %invoke.cont12, %if.then.i, %sw.bb5.i18.i, %sw.bb7.i15.i, %sw.bb9.i17.i, %sw.epilog.i19.i + %retval.0.i = phi i64 [ %7, %if.then.i ], [ 0, %sw.epilog.i19.i ], [ 8, %sw.bb9.i17.i ], [ 4, %sw.bb7.i15.i ], [ 2, %sw.bb5.i18.i ], [ 1, %invoke.cont12 ], [ 1, %invoke.cont12 ], [ 1, %invoke.cont12 ], [ 1, %invoke.cont12 ], [ 1, %invoke.cont12 ], [ 1, %invoke.cont12 ] %call18 = call noundef i64 @_ZN11flatbuffers10InlineSizeERKNS_4TypeE(ptr noundef nonnull align 8 dereferenceable(26) %vector_type) call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %ss.i) call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %ss.i), !noalias !579 diff --git a/bench/flatbuffers/optimized/idl_gen_rust.cpp.ll b/bench/flatbuffers/optimized/idl_gen_rust.cpp.ll index 30ab8d07c0c..f89e6153b23 100644 --- a/bench/flatbuffers/optimized/idl_gen_rust.cpp.ll +++ b/bench/flatbuffers/optimized/idl_gen_rust.cpp.ll @@ -37376,17 +37376,17 @@ entry: i32 3, label %cond.end6 i32 4, label %cond.end6 i32 5, label %sw.bb5.i - i32 6, label %sw.bb6.i + i32 6, label %sw.bb5.i i32 7, label %sw.bb7.i - i32 8, label %sw.bb8.i + i32 8, label %sw.bb7.i i32 9, label %sw.bb9.i - i32 10, label %sw.bb10.i - i32 11, label %sw.bb11.i - i32 12, label %sw.bb12.i - i32 13, label %sw.bb13.i - i32 14, label %sw.bb14.i - i32 18, label %sw.bb15.i - i32 16, label %sw.bb17.i + i32 10, label %sw.bb9.i + i32 11, label %sw.bb7.i + i32 12, label %sw.bb9.i + i32 13, label %sw.bb7.i + i32 14, label %sw.bb7.i + i32 18, label %sw.bb9.i + i32 16, label %sw.bb7.i ] _ZN11flatbuffers8IsStructERKNS_4TypeE.exit: ; preds = %entry @@ -37395,7 +37395,7 @@ _ZN11flatbuffers8IsStructERKNS_4TypeE.exit: ; preds = %entry %fixed.i = getelementptr inbounds i8, ptr %1, i64 272 %2 = load i8, ptr %fixed.i, align 8 %tobool.i = trunc i8 %2 to i1 - br i1 %tobool.i, label %cond.true, label %cond.end6 + br i1 %tobool.i, label %cond.true, label %sw.bb7.i cond.true: ; preds = %_ZN11flatbuffers8IsStructERKNS_4TypeE.exit %bytesize = getelementptr inbounds i8, ptr %1, i64 288 @@ -37427,47 +37427,20 @@ cond.true2: ; preds = %entry %mul = mul i64 %call3, %conv br label %cond.end6 -sw.bb5.i: ; preds = %entry +sw.bb5.i: ; preds = %entry, %entry br label %cond.end6 -sw.bb6.i: ; preds = %entry - br label %cond.end6 - -sw.bb7.i: ; preds = %entry - br label %cond.end6 - -sw.bb8.i: ; preds = %entry - br label %cond.end6 - -sw.bb9.i: ; preds = %entry - br label %cond.end6 - -sw.bb10.i: ; preds = %entry - br label %cond.end6 - -sw.bb11.i: ; preds = %entry - br label %cond.end6 - -sw.bb12.i: ; preds = %entry - br label %cond.end6 - -sw.bb13.i: ; preds = %entry - br label %cond.end6 - -sw.bb14.i: ; preds = %entry - br label %cond.end6 - -sw.bb15.i: ; preds = %entry +sw.bb7.i: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %_ZN11flatbuffers8IsStructERKNS_4TypeE.exit br label %cond.end6 -sw.bb17.i: ; preds = %entry +sw.bb9.i: ; preds = %entry, %entry, %entry, %entry br label %cond.end6 sw.epilog.i: ; preds = %entry br label %cond.end6 -cond.end6: ; preds = %_ZN11flatbuffers8IsStructERKNS_4TypeE.exit, %entry, %entry, %entry, %entry, %entry, %sw.epilog.i, %sw.bb17.i, %sw.bb15.i, %sw.bb14.i, %sw.bb13.i, %sw.bb12.i, %sw.bb11.i, %sw.bb10.i, %sw.bb9.i, %sw.bb8.i, %sw.bb7.i, %sw.bb6.i, %sw.bb5.i, %cond.true2, %cond.true - %cond7 = phi i64 [ %3, %cond.true ], [ %mul, %cond.true2 ], [ 0, %sw.epilog.i ], [ 4, %sw.bb17.i ], [ 8, %sw.bb15.i ], [ 4, %sw.bb14.i ], [ 4, %sw.bb13.i ], [ 8, %sw.bb12.i ], [ 4, %sw.bb11.i ], [ 8, %sw.bb10.i ], [ 8, %sw.bb9.i ], [ 4, %sw.bb8.i ], [ 4, %sw.bb7.i ], [ 2, %sw.bb6.i ], [ 2, %sw.bb5.i ], [ 1, %entry ], [ 1, %entry ], [ 1, %entry ], [ 1, %entry ], [ 1, %entry ], [ 4, %_ZN11flatbuffers8IsStructERKNS_4TypeE.exit ] +cond.end6: ; preds = %entry, %entry, %entry, %entry, %entry, %sw.epilog.i, %sw.bb9.i, %sw.bb7.i, %sw.bb5.i, %cond.true2, %cond.true + %cond7 = phi i64 [ %3, %cond.true ], [ %mul, %cond.true2 ], [ 0, %sw.epilog.i ], [ 8, %sw.bb9.i ], [ 4, %sw.bb7.i ], [ 2, %sw.bb5.i ], [ 1, %entry ], [ 1, %entry ], [ 1, %entry ], [ 1, %entry ], [ 1, %entry ] ret i64 %cond7 } diff --git a/bench/git/optimized/blame.ll b/bench/git/optimized/blame.ll index 3954fb826a5..cc2670fcb08 100644 --- a/bench/git/optimized/blame.ll +++ b/bench/git/optimized/blame.ll @@ -953,9 +953,9 @@ if.end424: ; preds = %if.end418 i32 4, label %sw.bb427 i32 8, label %sw.bb428 i32 9, label %sw.bb429 - i32 3, label %sw.bb430 + i32 3, label %sw.bb429 i32 2, label %sw.bb431 - i32 1, label %sw.bb435 + i32 1, label %sw.bb428 i32 0, label %sw.bb436 i32 7, label %sw.bb437 ] @@ -970,13 +970,10 @@ sw.bb426: ; preds = %if.end424 sw.bb427: ; preds = %if.end424.thread, %if.end424 br label %sw.epilog441 -sw.bb428: ; preds = %if.end424 +sw.bb428: ; preds = %if.end424, %if.end424 br label %sw.epilog441 -sw.bb429: ; preds = %if.end424 - br label %sw.epilog441 - -sw.bb430: ; preds = %if.end424 +sw.bb429: ; preds = %if.end424, %if.end424 br label %sw.epilog441 sw.bb431: ; preds = %if.end424 @@ -995,9 +992,6 @@ _.exit: ; preds = %sw.bb431, %if.end3. %conv434 = sext i32 %add to i64 br label %sw.epilog441 -sw.bb435: ; preds = %if.end424 - br label %sw.epilog441 - sw.bb436: ; preds = %if.end424 br label %sw.epilog441 @@ -1007,8 +1001,8 @@ sw.bb437: ; preds = %if.end424 %add440 = add i64 %call439, 1 br label %sw.epilog441 -sw.epilog441: ; preds = %if.end424, %if.end424.sw.epilog441_crit_edge, %sw.bb437, %sw.bb436, %sw.bb435, %_.exit, %sw.bb430, %sw.bb429, %sw.bb428, %sw.bb427, %sw.bb426 - %25 = phi i64 [ %.pre, %if.end424.sw.epilog441_crit_edge ], [ %add440, %sw.bb437 ], [ 31, %sw.bb436 ], [ 17, %sw.bb435 ], [ %conv434, %_.exit ], [ 11, %sw.bb430 ], [ 11, %sw.bb429 ], [ 17, %sw.bb428 ], [ 26, %sw.bb427 ], [ 26, %sw.bb426 ], [ 32, %if.end424 ] +sw.epilog441: ; preds = %if.end424, %if.end424.sw.epilog441_crit_edge, %sw.bb437, %sw.bb436, %_.exit, %sw.bb429, %sw.bb428, %sw.bb427, %sw.bb426 + %25 = phi i64 [ %.pre, %if.end424.sw.epilog441_crit_edge ], [ %add440, %sw.bb437 ], [ 31, %sw.bb436 ], [ %conv434, %_.exit ], [ 11, %sw.bb429 ], [ 17, %sw.bb428 ], [ 26, %sw.bb427 ], [ 26, %sw.bb426 ], [ 32, %if.end424 ] %sub = add i64 %25, -1 store i64 %sub, ptr @blame_date_width, align 8 %find_copies_harder = getelementptr inbounds i8, ptr %revs, i64 1600 diff --git a/bench/glslang/optimized/hlslParseHelper.cpp.ll b/bench/glslang/optimized/hlslParseHelper.cpp.ll index 5af50b6df88..504f3d86e4d 100644 --- a/bench/glslang/optimized/hlslParseHelper.cpp.ll +++ b/bench/glslang/optimized/hlslParseHelper.cpp.ll @@ -18217,10 +18217,10 @@ define void @_ZN7glslang16HlslParseContext16fixBuiltInIoTypeERNS_5TTypeE(ptr noc i32 56, label %.thread82 i32 57, label %12 i32 71, label %97 - i32 3, label %.thread85 - i32 5, label %.thread85 - i32 4, label %.thread85 - i32 59, label %.thread85 + i32 3, label %.thread79 + i32 5, label %.thread79 + i32 4, label %.thread79 + i32 59, label %.thread79 ] 12: ; preds = %2 @@ -18300,7 +18300,7 @@ define void @_ZN7glslang16HlslParseContext16fixBuiltInIoTypeERNS_5TTypeE(ptr noc store i32 %52, ptr %66, align 4 br label %119 -.thread85: ; preds = %2, %2, %2, %2 +.thread79: ; preds = %2, %2, %2, %2 %67 = load ptr, ptr %1, align 8 %68 = getelementptr inbounds i8, ptr %67, i64 56 %69 = load ptr, ptr %68, align 8 @@ -18415,12 +18415,12 @@ define void @_ZN7glslang16HlslParseContext16fixBuiltInIoTypeERNS_5TTypeE(ptr noc %99 = getelementptr inbounds i8, ptr %98, i64 232 %100 = load ptr, ptr %99, align 8 %101 = tail call noundef zeroext i1 %100(ptr noundef nonnull align 8 dereferenceable(152) %1) #24 - %not.87 = xor i1 %101, true - %spec.select30 = zext i1 %not.87 to i32 + %not.86 = xor i1 %101, true + %spec.select30 = zext i1 %not.86 to i32 br i1 %101, label %119, label %.thread82 -.thread82: ; preds = %2, %12, %97 - %.07984 = phi i32 [ %spec.select30, %97 ], [ 4, %2 ], [ 2, %12 ] +.thread82: ; preds = %12, %2, %97 + %.0.ph85 = phi i32 [ %spec.select30, %97 ], [ 2, %12 ], [ 4, %2 ] %102 = load ptr, ptr %1, align 8 %103 = getelementptr inbounds i8, ptr %102, i64 232 %104 = load ptr, ptr %103, align 8 @@ -18432,7 +18432,7 @@ define void @_ZN7glslang16HlslParseContext16fixBuiltInIoTypeERNS_5TTypeE(ptr noc %108 = getelementptr inbounds i8, ptr %107, i64 120 %109 = load ptr, ptr %108, align 8 %110 = tail call noundef i32 %109(ptr noundef nonnull align 8 dereferenceable(152) %1) #24 - %.not = icmp eq i32 %110, %.07984 + %.not = icmp eq i32 %110, %.0.ph85 br i1 %.not, label %119, label %111 111: ; preds = %106, %.thread82 @@ -18447,12 +18447,12 @@ define void @_ZN7glslang16HlslParseContext16fixBuiltInIoTypeERNS_5TTypeE(ptr noc store i8 1, ptr %116, align 4 %117 = getelementptr inbounds i8, ptr %113, i64 21 store i8 0, ptr %117, align 1 - tail call void @_ZN7glslang17TSmallArrayVector9push_backEjPNS_12TIntermTypedE(ptr noundef nonnull align 8 dereferenceable(22) %113, i32 noundef %.07984, ptr noundef null) + tail call void @_ZN7glslang17TSmallArrayVector9push_backEjPNS_12TIntermTypedE(ptr noundef nonnull align 8 dereferenceable(22) %113, i32 noundef %.0.ph85, ptr noundef null) %118 = getelementptr inbounds i8, ptr %1, i64 96 store ptr %113, ptr %118, align 8 br label %119 -119: ; preds = %.thread85, %106, %111, %13, %61, %64, %54, %57, %97 +119: ; preds = %.thread79, %106, %111, %13, %61, %64, %54, %57, %97 ret void } @@ -49753,13 +49753,13 @@ define void @_ZN7glslang16HlslParseContext14builtInOpCheckERKNS_10TSourceLocERKN i32 644, label %36 i32 645, label %36 i32 646, label %36 - i32 633, label %170 + i32 633, label %168 i32 635, label %154 - i32 636, label %170 + i32 636, label %168 i32 637, label %166 - i32 639, label %167 - i32 641, label %168 - i32 643, label %169 + i32 639, label %166 + i32 641, label %167 + i32 643, label %167 ] 36: ; preds = %33, %33, %33 @@ -49937,104 +49937,98 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE11 %164 = and i32 %163, 65280 %.not53 = icmp eq i32 %164, 1280 %165 = select i1 %.not53, i64 2, i64 3 - br label %170 + br label %168 -166: ; preds = %33 - br label %170 +166: ; preds = %33, %33 + br label %168 -167: ; preds = %33 - br label %170 +167: ; preds = %33, %33 + br label %168 -168: ; preds = %33 - br label %170 - -169: ; preds = %33 - br label %170 - -170: ; preds = %33, %33, %169, %168, %167, %166, %154 - %.048.ph = phi i64 [ %165, %154 ], [ 3, %166 ], [ 3, %167 ], [ 4, %168 ], [ 4, %169 ], [ 2, %33 ], [ 2, %33 ] - %171 = getelementptr inbounds i8, ptr %.0, i64 8 +168: ; preds = %33, %33, %167, %166, %154 + %.048.ph = phi i64 [ %165, %154 ], [ 3, %166 ], [ 4, %167 ], [ 2, %33 ], [ 2, %33 ] + %169 = getelementptr inbounds i8, ptr %.0, i64 8 + %170 = load ptr, ptr %169, align 8 + %171 = getelementptr inbounds ptr, ptr %170, i64 %.048.ph %172 = load ptr, ptr %171, align 8 - %173 = getelementptr inbounds ptr, ptr %172, i64 %.048.ph - %174 = load ptr, ptr %173, align 8 + %173 = load ptr, ptr %172, align 8 + %174 = getelementptr inbounds i8, ptr %173, i64 40 %175 = load ptr, ptr %174, align 8 - %176 = getelementptr inbounds i8, ptr %175, i64 40 - %177 = load ptr, ptr %176, align 8 - %178 = tail call noundef ptr %177(ptr noundef nonnull align 8 dereferenceable(32) %174) #24 - %179 = icmp eq ptr %178, null - br i1 %179, label %180, label %184 + %176 = tail call noundef ptr %175(ptr noundef nonnull align 8 dereferenceable(32) %172) #24 + %177 = icmp eq ptr %176, null + br i1 %177, label %178, label %182 -180: ; preds = %170 - %181 = load ptr, ptr %0, align 8 - %182 = getelementptr inbounds i8, ptr %181, i64 344 - %183 = load ptr, ptr %182, align 8 - tail call void (ptr, ptr, ptr, ptr, ptr, ...) %183(ptr noundef nonnull align 8 dereferenceable(1280) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.171, ptr noundef nonnull @.str.172, ptr noundef nonnull @.str.5) #24 +178: ; preds = %168 + %179 = load ptr, ptr %0, align 8 + %180 = getelementptr inbounds i8, ptr %179, i64 344 + %181 = load ptr, ptr %180, align 8 + tail call void (ptr, ptr, ptr, ptr, ptr, ...) %181(ptr noundef nonnull align 8 dereferenceable(1280) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.171, ptr noundef nonnull @.str.172, ptr noundef nonnull @.str.5) #24 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev.exit -184: ; preds = %170 - %185 = load ptr, ptr %171, align 8 - %186 = getelementptr inbounds ptr, ptr %185, i64 %.048.ph - %187 = load ptr, ptr %186, align 8 +182: ; preds = %168 + %183 = load ptr, ptr %169, align 8 + %184 = getelementptr inbounds ptr, ptr %183, i64 %.048.ph + %185 = load ptr, ptr %184, align 8 + %186 = load ptr, ptr %185, align 8 + %187 = getelementptr inbounds i8, ptr %186, i64 24 %188 = load ptr, ptr %187, align 8 - %189 = getelementptr inbounds i8, ptr %188, i64 24 + %189 = tail call noundef ptr %188(ptr noundef nonnull align 8 dereferenceable(32) %185) #24 %190 = load ptr, ptr %189, align 8 - %191 = tail call noundef ptr %190(ptr noundef nonnull align 8 dereferenceable(32) %187) #24 + %191 = getelementptr inbounds i8, ptr %190, i64 240 %192 = load ptr, ptr %191, align 8 - %193 = getelementptr inbounds i8, ptr %192, i64 240 + %193 = tail call noundef nonnull align 8 dereferenceable(152) ptr %192(ptr noundef nonnull align 8 dereferenceable(184) %189) #24 %194 = load ptr, ptr %193, align 8 - %195 = tail call noundef nonnull align 8 dereferenceable(152) ptr %194(ptr noundef nonnull align 8 dereferenceable(184) %191) #24 + %195 = getelementptr inbounds i8, ptr %194, i64 96 %196 = load ptr, ptr %195, align 8 - %197 = getelementptr inbounds i8, ptr %196, i64 96 - %198 = load ptr, ptr %197, align 8 - %199 = tail call noundef i32 %198(ptr noundef nonnull align 8 dereferenceable(152) %195) #24 - %200 = icmp sgt i32 %199, 0 - br i1 %200, label %.lr.ph, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev.exit - -.lr.ph: ; preds = %184 - %201 = getelementptr inbounds i8, ptr %0, i64 576 - %202 = getelementptr inbounds i8, ptr %0, i64 572 - br label %203 - -203: ; preds = %.lr.ph, %225 - %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %225 ] - %204 = load ptr, ptr %171, align 8 - %205 = getelementptr inbounds ptr, ptr %204, i64 %.048.ph - %206 = load ptr, ptr %205, align 8 + %197 = tail call noundef i32 %196(ptr noundef nonnull align 8 dereferenceable(152) %193) #24 + %198 = icmp sgt i32 %197, 0 + br i1 %198, label %.lr.ph, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev.exit + +.lr.ph: ; preds = %182 + %199 = getelementptr inbounds i8, ptr %0, i64 576 + %200 = getelementptr inbounds i8, ptr %0, i64 572 + br label %201 + +201: ; preds = %.lr.ph, %223 + %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %223 ] + %202 = load ptr, ptr %169, align 8 + %203 = getelementptr inbounds ptr, ptr %202, i64 %.048.ph + %204 = load ptr, ptr %203, align 8 + %205 = load ptr, ptr %204, align 8 + %206 = getelementptr inbounds i8, ptr %205, i64 40 %207 = load ptr, ptr %206, align 8 - %208 = getelementptr inbounds i8, ptr %207, i64 40 - %209 = load ptr, ptr %208, align 8 - %210 = tail call noundef ptr %209(ptr noundef nonnull align 8 dereferenceable(32) %206) #24 - %211 = getelementptr inbounds i8, ptr %210, i64 192 + %208 = tail call noundef ptr %207(ptr noundef nonnull align 8 dereferenceable(32) %204) #24 + %209 = getelementptr inbounds i8, ptr %208, i64 192 + %210 = load ptr, ptr %209, align 8 + %211 = getelementptr inbounds i8, ptr %210, i64 8 %212 = load ptr, ptr %211, align 8 - %213 = getelementptr inbounds i8, ptr %212, i64 8 - %214 = load ptr, ptr %213, align 8 - %215 = getelementptr inbounds %"class.glslang::TConstUnion", ptr %214, i64 %indvars.iv - %216 = load i32, ptr %215, align 8 - %217 = load i32, ptr %201, align 8 - %218 = icmp sgt i32 %216, %217 - %219 = load i32, ptr %202, align 4 - %220 = icmp slt i32 %216, %219 - %or.cond66 = select i1 %218, i1 true, i1 %220 - br i1 %or.cond66, label %221, label %225 - -221: ; preds = %203 - %222 = load ptr, ptr %0, align 8 - %223 = getelementptr inbounds i8, ptr %222, i64 344 - %224 = load ptr, ptr %223, align 8 - tail call void (ptr, ptr, ptr, ptr, ptr, ...) %224(ptr noundef nonnull align 8 dereferenceable(1280) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.173, ptr noundef nonnull @.str.172, ptr noundef nonnull @.str.174) #24 - br label %225 + %213 = getelementptr inbounds %"class.glslang::TConstUnion", ptr %212, i64 %indvars.iv + %214 = load i32, ptr %213, align 8 + %215 = load i32, ptr %199, align 8 + %216 = icmp sgt i32 %214, %215 + %217 = load i32, ptr %200, align 4 + %218 = icmp slt i32 %214, %217 + %or.cond66 = select i1 %216, i1 true, i1 %218 + br i1 %or.cond66, label %219, label %223 + +219: ; preds = %201 + %220 = load ptr, ptr %0, align 8 + %221 = getelementptr inbounds i8, ptr %220, i64 344 + %222 = load ptr, ptr %221, align 8 + tail call void (ptr, ptr, ptr, ptr, ptr, ...) %222(ptr noundef nonnull align 8 dereferenceable(1280) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.173, ptr noundef nonnull @.str.172, ptr noundef nonnull @.str.174) #24 + br label %223 -225: ; preds = %203, %221 +223: ; preds = %201, %219 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %226 = load ptr, ptr %195, align 8 - %227 = getelementptr inbounds i8, ptr %226, i64 96 - %228 = load ptr, ptr %227, align 8 - %229 = tail call noundef i32 %228(ptr noundef nonnull align 8 dereferenceable(152) %195) #24 - %230 = sext i32 %229 to i64 - %231 = icmp slt i64 %indvars.iv.next, %230 - br i1 %231, label %203, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev.exit, !llvm.loop !256 - -_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev.exit: ; preds = %225, %184, %33, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE11_M_is_localEv.exit.thread.i.i, %.thread, %180 + %224 = load ptr, ptr %193, align 8 + %225 = getelementptr inbounds i8, ptr %224, i64 96 + %226 = load ptr, ptr %225, align 8 + %227 = tail call noundef i32 %226(ptr noundef nonnull align 8 dereferenceable(152) %193) #24 + %228 = sext i32 %227 to i64 + %229 = icmp slt i64 %indvars.iv.next, %228 + br i1 %229, label %201, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev.exit, !llvm.loop !256 + +_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev.exit: ; preds = %223, %182, %33, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE11_M_is_localEv.exit.thread.i.i, %.thread, %178 ret void } diff --git a/bench/graphviz/optimized/actions.c.ll b/bench/graphviz/optimized/actions.c.ll index 1d47efe5a57..ecaa488b419 100644 --- a/bench/graphviz/optimized/actions.c.ll +++ b/bench/graphviz/optimized/actions.c.ll @@ -4878,13 +4878,13 @@ colorxlate.exit: ; preds = %thread-pre-split.i, br label %401 .thread279: ; preds = %107, %371 - %.sink342 = phi double [ %113, %107 ], [ %380, %371 ] - %.sink341.in = phi double [ %109, %107 ], [ %374, %371 ] + %.sink343 = phi double [ %113, %107 ], [ %380, %371 ] + %.sink342.in = phi double [ %109, %107 ], [ %374, %371 ] %.sink.in = phi double [ %111, %107 ], [ %377, %371 ] %.sink = fdiv double %.sink.in, 2.550000e+02 - %.sink341 = fdiv double %.sink341.in, 2.550000e+02 - %381 = fdiv double %.sink342, 2.550000e+02 - %382 = fsub double 1.000000e+00, %.sink341 + %.sink342 = fdiv double %.sink342.in, 2.550000e+02 + %381 = fdiv double %.sink343, 2.550000e+02 + %382 = fsub double 1.000000e+00, %.sink342 %383 = fsub double 1.000000e+00, %.sink %384 = fsub double 1.000000e+00, %381 %385 = call double @llvm.minnum.f64(double %382, double %383) diff --git a/bench/gromacs/optimized/nbnxm_setup.cpp.ll b/bench/gromacs/optimized/nbnxm_setup.cpp.ll index 49505d4ee84..a30880c4fba 100644 --- a/bench/gromacs/optimized/nbnxm_setup.cpp.ll +++ b/bench/gromacs/optimized/nbnxm_setup.cpp.ll @@ -130,8 +130,7 @@ $_ZN3gmx17ThreadForceBufferINS_11BasicVectorIfEEED2Ev = comdat any @.str.36 = private unnamed_addr constant [27 x i8] c"Need valid atomdata object\00", align 1 @"__PRETTY_FUNCTION__._ZZN18nonbonded_verlet_tC1ESt10unique_ptrI12PairlistSetsSt14default_deleteIS1_EES0_I10PairSearchS2_IS5_EES0_I16nbnxn_atomdata_tS2_IS8_EERKN5Nbnxm11KernelSetupEP8NbnxmGpuENK3$_0clEv" = private unnamed_addr constant [218 x i8] c"auto nonbonded_verlet_t::nonbonded_verlet_t(std::unique_ptr, std::unique_ptr, std::unique_ptr, const Nbnxm::KernelSetup &, NbnxmGpu *)::(anonymous class)::operator()() const\00", align 1 @switch.table._ZN5Nbnxm18lookup_kernel_nameENS_10KernelTypeE = private unnamed_addr constant [6 x ptr] [ptr @.str, ptr @.str.1, ptr @.str.2, ptr @.str.3, ptr @.str.4, ptr @.str.1], align 8 -@switch.table._ZN5Nbnxm14init_nb_verletERKN3gmx8MDLoggerERK10t_inputrecRK10t_forcerecPK9t_commrecRK13gmx_hw_info_tbPKNS0_19DeviceStreamManagerERK10gmx_mtop_tPNS0_25ObservablesReducerBuilderENS0_8ArrayRefIKNS0_11BasicVectorIfEEEEPA3_fP13gmx_wallcycle.26 = private unnamed_addr constant [5 x i32] [i32 4, i32 4, i32 4, i32 8, i32 8], align 4 -@switch.table._ZN5Nbnxm14init_nb_verletERKN3gmx8MDLoggerERK10t_inputrecRK10t_forcerecPK9t_commrecRK13gmx_hw_info_tbPKNS0_19DeviceStreamManagerERK10gmx_mtop_tPNS0_25ObservablesReducerBuilderENS0_8ArrayRefIKNS0_11BasicVectorIfEEEEPA3_fP13gmx_wallcycle.27 = private unnamed_addr constant [5 x ptr] [ptr @.str.1, ptr @.str.2, ptr @.str.3, ptr @.str.4, ptr @.str.1], align 8 +@switch.table._ZN5Nbnxm14init_nb_verletERKN3gmx8MDLoggerERK10t_inputrecRK10t_forcerecPK9t_commrecRK13gmx_hw_info_tbPKNS0_19DeviceStreamManagerERK10gmx_mtop_tPNS0_25ObservablesReducerBuilderENS0_8ArrayRefIKNS0_11BasicVectorIfEEEEPA3_fP13gmx_wallcycle = private unnamed_addr constant [5 x ptr] [ptr @.str.1, ptr @.str.2, ptr @.str.3, ptr @.str.4, ptr @.str.1], align 8 @_ZN12PairlistSetsC1ERK14PairlistParamsbi = unnamed_addr alias void (ptr, ptr, i1, i32), ptr @_ZN12PairlistSetsC2ERK14PairlistParamsbi @_ZN18nonbonded_verlet_tC1ESt10unique_ptrI12PairlistSetsSt14default_deleteIS1_EES0_I10PairSearchS2_IS5_EES0_I16nbnxn_atomdata_tS2_IS8_EERKN5Nbnxm11KernelSetupES0_I16ExclusionCheckerS2_ISF_EEP8NbnxmGpuP13gmx_wallcycle = unnamed_addr alias void (ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr), ptr @_ZN18nonbonded_verlet_tC2ESt10unique_ptrI12PairlistSetsSt14default_deleteIS1_EES0_I10PairSearchS2_IS5_EES0_I16nbnxn_atomdata_tS2_IS8_EERKN5Nbnxm11KernelSetupES0_I16ExclusionCheckerS2_ISF_EEP8NbnxmGpuP13gmx_wallcycle @@ -563,26 +562,47 @@ _ZN5NbnxmL20nbnxn_simd_supportedERKN3gmx8MDLoggerERK10t_inputrec.exit.i: ; preds %80 = getelementptr inbounds i8, ptr %1, i64 32 %81 = load ptr, ptr %80, align 8 %82 = icmp eq ptr %81, null - br i1 %82, label %92, label %switch.lookup + br i1 %82, label %92, label %83 -switch.lookup: ; preds = %78 +83: ; preds = %78 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %19, i8 0, i64 40, i1 false) call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(40) %19) #18 - %83 = getelementptr inbounds i8, ptr %19, i64 32 - store i8 1, ptr %83, align 8 - %switch.tableidx = add nsw i32 %.sroa.06.0.i, -1 - %84 = sext i32 %switch.tableidx to i64 - %switch.gep = getelementptr inbounds [5 x ptr], ptr @switch.table._ZN5Nbnxm14init_nb_verletERKN3gmx8MDLoggerERK10t_inputrecRK10t_forcerecPK9t_commrecRK13gmx_hw_info_tbPKNS0_19DeviceStreamManagerERK10gmx_mtop_tPNS0_25ObservablesReducerBuilderENS0_8ArrayRefIKNS0_11BasicVectorIfEEEEPA3_fP13gmx_wallcycle.27, i64 0, i64 %84 - %switch.load = load ptr, ptr %switch.gep, align 8 - %85 = sext i32 %switch.tableidx to i64 - %switch.gep137 = getelementptr inbounds [5 x i32], ptr @switch.table._ZN5Nbnxm14init_nb_verletERKN3gmx8MDLoggerERK10t_inputrecRK10t_forcerecPK9t_commrecRK13gmx_hw_info_tbPKNS0_19DeviceStreamManagerERK10gmx_mtop_tPNS0_25ObservablesReducerBuilderENS0_8ArrayRefIKNS0_11BasicVectorIfEEEEPA3_fP13gmx_wallcycle.26, i64 0, i64 %85 - %switch.load138 = load i32, ptr %switch.gep137, align 4 - %switch.i = icmp eq i32 %.sroa.06.0.i, 2 - %spec.select.i = select i1 %switch.i, i32 8, i32 4 - %86 = invoke noundef nonnull align 8 dereferenceable(40) ptr (ptr, ptr, ...) @_ZN3gmx14LogEntryWriter19appendTextFormattedEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %19, ptr noundef nonnull @.str.11, ptr noundef nonnull %switch.load, i32 noundef %switch.load138, i32 noundef %spec.select.i) + %84 = getelementptr inbounds i8, ptr %19, i64 32 + store i8 1, ptr %84, align 8 + switch i32 %.sroa.06.0.i, label %default.unreachable [ + i32 5, label %_ZN5NbnxmL15sc_iClusterSizeENS_10KernelTypeE.exit.i + i32 1, label %_ZN5NbnxmL15sc_iClusterSizeENS_10KernelTypeE.exit.i + i32 2, label %_ZN5NbnxmL15sc_iClusterSizeENS_10KernelTypeE.exit.thread28.i + i32 3, label %85 + i32 4, label %_ZN5NbnxmL15sc_jClusterSizeENS_10KernelTypeE.exit.i + ] + +85: ; preds = %83 + br label %_ZN5NbnxmL15sc_jClusterSizeENS_10KernelTypeE.exit.i + +default.unreachable: ; preds = %83 + unreachable + +_ZN5NbnxmL15sc_iClusterSizeENS_10KernelTypeE.exit.i: ; preds = %83, %83 + %.sroa.06.0.off.i = add nsw i32 %.sroa.06.0.i, -1 + %switch.i = icmp ult i32 %.sroa.06.0.off.i, 3 + %spec.select.i = select i1 %switch.i, i32 4, i32 8 + %switch34.i = icmp eq i32 %.sroa.06.0.i, 2 + br i1 %switch34.i, label %_ZN5NbnxmL15sc_iClusterSizeENS_10KernelTypeE.exit.thread28.i, label %_ZN5NbnxmL15sc_jClusterSizeENS_10KernelTypeE.exit.i + +_ZN5NbnxmL15sc_iClusterSizeENS_10KernelTypeE.exit.thread28.i: ; preds = %_ZN5NbnxmL15sc_iClusterSizeENS_10KernelTypeE.exit.i, %83 + %.0.i2232.i = phi i32 [ %spec.select.i, %_ZN5NbnxmL15sc_iClusterSizeENS_10KernelTypeE.exit.i ], [ 4, %83 ] + %.0.i1431.i = phi ptr [ @.str.1, %_ZN5NbnxmL15sc_iClusterSizeENS_10KernelTypeE.exit.i ], [ @.str.2, %83 ] + br label %_ZN5NbnxmL15sc_jClusterSizeENS_10KernelTypeE.exit.i + +_ZN5NbnxmL15sc_jClusterSizeENS_10KernelTypeE.exit.i: ; preds = %_ZN5NbnxmL15sc_iClusterSizeENS_10KernelTypeE.exit.thread28.i, %_ZN5NbnxmL15sc_iClusterSizeENS_10KernelTypeE.exit.i, %85, %83 + %.0.i2227.i = phi i32 [ %.0.i2232.i, %_ZN5NbnxmL15sc_iClusterSizeENS_10KernelTypeE.exit.thread28.i ], [ %spec.select.i, %_ZN5NbnxmL15sc_iClusterSizeENS_10KernelTypeE.exit.i ], [ 4, %85 ], [ 8, %83 ] + %.0.i1426.i = phi ptr [ %.0.i1431.i, %_ZN5NbnxmL15sc_iClusterSizeENS_10KernelTypeE.exit.thread28.i ], [ @.str.1, %_ZN5NbnxmL15sc_iClusterSizeENS_10KernelTypeE.exit.i ], [ @.str.3, %85 ], [ @.str.4, %83 ] + %.0.i23.i = phi i32 [ 8, %_ZN5NbnxmL15sc_iClusterSizeENS_10KernelTypeE.exit.thread28.i ], [ 4, %_ZN5NbnxmL15sc_iClusterSizeENS_10KernelTypeE.exit.i ], [ 4, %85 ], [ %.sroa.06.0.i, %83 ] + %86 = invoke noundef nonnull align 8 dereferenceable(40) ptr (ptr, ptr, ...) @_ZN3gmx14LogEntryWriter19appendTextFormattedEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %19, ptr noundef nonnull @.str.11, ptr noundef nonnull %.0.i1426.i, i32 noundef %.0.i2227.i, i32 noundef %.0.i23.i) to label %87 unwind label %.body.i -87: ; preds = %switch.lookup +87: ; preds = %_ZN5NbnxmL15sc_jClusterSizeENS_10KernelTypeE.exit.i %88 = load ptr, ptr %81, align 8 %89 = getelementptr inbounds i8, ptr %88, i64 16 %90 = load ptr, ptr %89, align 8 @@ -593,7 +613,7 @@ _ZN3gmx14LogWriteHelperaSERKNS_14LogEntryWriterE.exit25.i: ; preds = %87 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(40) %19) #18 br label %92 -.body.i: ; preds = %87, %switch.lookup +.body.i: ; preds = %87, %_ZN5NbnxmL15sc_jClusterSizeENS_10KernelTypeE.exit.i %91 = landingpad { ptr, i32 } cleanup br label %common.resume.i @@ -606,21 +626,21 @@ _ZN3gmx14LogWriteHelperaSERKNS_14LogEntryWriterE.exit25.i: ; preds = %87 94: ; preds = %92 %95 = load ptr, ptr %1, align 8 %96 = icmp eq ptr %95, null - br i1 %96, label %_ZN5NbnxmL17pick_nbnxn_kernelERKN3gmx8MDLoggerEbRK13gmx_hw_info_tRKNS_17NonbondedResourceERK10t_inputrec.exit, label %switch.lookup139 + br i1 %96, label %_ZN5NbnxmL17pick_nbnxn_kernelERKN3gmx8MDLoggerEbRK13gmx_hw_info_tRKNS_17NonbondedResourceERK10t_inputrec.exit, label %switch.lookup -switch.lookup139: ; preds = %94 +switch.lookup: ; preds = %94 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %20, i8 0, i64 40, i1 false) call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(40) %20) #18 %97 = getelementptr inbounds i8, ptr %20, i64 32 store i8 1, ptr %97, align 8 - %switch.tableidx140 = add nsw i32 %.sroa.06.0.i, -1 - %98 = zext nneg i32 %switch.tableidx140 to i64 - %switch.gep141 = getelementptr inbounds [5 x ptr], ptr @switch.table._ZN5Nbnxm14init_nb_verletERKN3gmx8MDLoggerERK10t_inputrecRK10t_forcerecPK9t_commrecRK13gmx_hw_info_tbPKNS0_19DeviceStreamManagerERK10gmx_mtop_tPNS0_25ObservablesReducerBuilderENS0_8ArrayRefIKNS0_11BasicVectorIfEEEEPA3_fP13gmx_wallcycle.27, i64 0, i64 %98 - %switch.load142 = load ptr, ptr %switch.gep141, align 8 - %99 = invoke noundef nonnull align 8 dereferenceable(40) ptr (ptr, ptr, ...) @_ZN3gmx14LogEntryWriter19appendTextFormattedEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %20, ptr noundef nonnull @.str.12, ptr noundef nonnull %switch.load142) + %switch.tableidx = add nsw i32 %.sroa.06.0.i, -1 + %98 = zext nneg i32 %switch.tableidx to i64 + %switch.gep = getelementptr inbounds [5 x ptr], ptr @switch.table._ZN5Nbnxm14init_nb_verletERKN3gmx8MDLoggerERK10t_inputrecRK10t_forcerecPK9t_commrecRK13gmx_hw_info_tbPKNS0_19DeviceStreamManagerERK10gmx_mtop_tPNS0_25ObservablesReducerBuilderENS0_8ArrayRefIKNS0_11BasicVectorIfEEEEPA3_fP13gmx_wallcycle, i64 0, i64 %98 + %switch.load = load ptr, ptr %switch.gep, align 8 + %99 = invoke noundef nonnull align 8 dereferenceable(40) ptr (ptr, ptr, ...) @_ZN3gmx14LogEntryWriter19appendTextFormattedEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %20, ptr noundef nonnull @.str.12, ptr noundef nonnull %switch.load) to label %100 unwind label %.body28.i -100: ; preds = %switch.lookup139 +100: ; preds = %switch.lookup %101 = load ptr, ptr %95, align 8 %102 = getelementptr inbounds i8, ptr %101, i64 16 %103 = load ptr, ptr %102, align 8 @@ -631,7 +651,7 @@ _ZN3gmx14LogWriteHelperaSERKNS_14LogEntryWriterE.exit32.i: ; preds = %100 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(40) %20) #18 br label %_ZN5NbnxmL17pick_nbnxn_kernelERKN3gmx8MDLoggerEbRK13gmx_hw_info_tRKNS_17NonbondedResourceERK10t_inputrec.exit -.body28.i: ; preds = %100, %switch.lookup139 +.body28.i: ; preds = %100, %switch.lookup %104 = landingpad { ptr, i32 } cleanup br label %common.resume.i diff --git a/bench/grpc/optimized/status_conversion.cc.ll b/bench/grpc/optimized/status_conversion.cc.ll index fbb29e4d477..6a6195a1511 100644 --- a/bench/grpc/optimized/status_conversion.cc.ll +++ b/bench/grpc/optimized/status_conversion.cc.ll @@ -88,9 +88,9 @@ entry: i32 403, label %sw.bb3 i32 404, label %sw.bb4 i32 429, label %sw.bb5 - i32 502, label %sw.bb6 - i32 503, label %sw.bb7 - i32 504, label %sw.bb8 + i32 502, label %sw.bb5 + i32 503, label %sw.bb5 + i32 504, label %sw.bb5 ] sw.bb1: ; preds = %entry @@ -105,23 +105,14 @@ sw.bb3: ; preds = %entry sw.bb4: ; preds = %entry br label %return -sw.bb5: ; preds = %entry - br label %return - -sw.bb6: ; preds = %entry - br label %return - -sw.bb7: ; preds = %entry - br label %return - -sw.bb8: ; preds = %entry +sw.bb5: ; preds = %entry, %entry, %entry, %entry br label %return sw.default: ; preds = %entry br label %return -return: ; preds = %entry, %sw.default, %sw.bb8, %sw.bb7, %sw.bb6, %sw.bb5, %sw.bb4, %sw.bb3, %sw.bb2, %sw.bb1 - %retval.0 = phi i32 [ 2, %sw.default ], [ 14, %sw.bb8 ], [ 14, %sw.bb7 ], [ 14, %sw.bb6 ], [ 14, %sw.bb5 ], [ 12, %sw.bb4 ], [ 7, %sw.bb3 ], [ 16, %sw.bb2 ], [ 13, %sw.bb1 ], [ 0, %entry ] +return: ; preds = %entry, %sw.default, %sw.bb5, %sw.bb4, %sw.bb3, %sw.bb2, %sw.bb1 + %retval.0 = phi i32 [ 2, %sw.default ], [ 14, %sw.bb5 ], [ 12, %sw.bb4 ], [ 7, %sw.bb3 ], [ 16, %sw.bb2 ], [ 13, %sw.bb1 ], [ 0, %entry ] ret i32 %retval.0 } diff --git a/bench/harfbuzz/optimized/harfbuzz.cc.ll b/bench/harfbuzz/optimized/harfbuzz.cc.ll index 1f13de0cb5b..a82e06c9397 100644 --- a/bench/harfbuzz/optimized/harfbuzz.cc.ll +++ b/bench/harfbuzz/optimized/harfbuzz.cc.ll @@ -19886,13 +19886,13 @@ if.end: ; preds = %entry i32 1132032627, label %sw.bb3 i32 1197829995, label %sw.bb4 i32 1214344819, label %sw.bb5 - i32 1214344820, label %sw.bb6 + i32 1214344820, label %sw.bb5 i32 1247898991, label %sw.bb7 i32 1281455206, label %sw.bb8 - i32 1281455207, label %sw.bb9 + i32 1281455207, label %sw.bb8 i32 1400468069, label %sw.bb10 - i32 1400468074, label %sw.bb11 - i32 1400468078, label %sw.bb12 + i32 1400468074, label %sw.bb10 + i32 1400468078, label %sw.bb10 ] sw.bb1: ; preds = %if.end @@ -19907,28 +19907,16 @@ sw.bb3: ; preds = %if.end sw.bb4: ; preds = %if.end br label %return -sw.bb5: ; preds = %if.end - br label %return - -sw.bb6: ; preds = %if.end +sw.bb5: ; preds = %if.end, %if.end br label %return sw.bb7: ; preds = %if.end br label %return -sw.bb8: ; preds = %if.end +sw.bb8: ; preds = %if.end, %if.end br label %return -sw.bb9: ; preds = %if.end - br label %return - -sw.bb10: ; preds = %if.end - br label %return - -sw.bb11: ; preds = %if.end - br label %return - -sw.bb12: ; preds = %if.end +sw.bb10: ; preds = %if.end, %if.end, %if.end br label %return sw.epilog: ; preds = %if.end @@ -19937,8 +19925,8 @@ sw.epilog: ; preds = %if.end %or. = select i1 %cmp14, i32 %or, i32 1517976186 br label %return -return: ; preds = %sw.epilog, %if.end, %entry, %sw.bb12, %sw.bb11, %sw.bb10, %sw.bb9, %sw.bb8, %sw.bb7, %sw.bb6, %sw.bb5, %sw.bb4, %sw.bb3, %sw.bb2, %sw.bb1 - %retval.0 = phi i32 [ 1400468067, %sw.bb12 ], [ 1400468067, %sw.bb11 ], [ 1400468067, %sw.bb10 ], [ 1281455214, %sw.bb9 ], [ 1281455214, %sw.bb8 ], [ 1214344807, %sw.bb7 ], [ 1214344809, %sw.bb6 ], [ 1214344809, %sw.bb5 ], [ 1197830002, %sw.bb4 ], [ 1132032620, %sw.bb3 ], [ 1098015074, %sw.bb2 ], [ 1131376756, %sw.bb1 ], [ 0, %entry ], [ 1516858984, %if.end ], [ %or., %sw.epilog ] +return: ; preds = %sw.epilog, %if.end, %entry, %sw.bb10, %sw.bb8, %sw.bb7, %sw.bb5, %sw.bb4, %sw.bb3, %sw.bb2, %sw.bb1 + %retval.0 = phi i32 [ 1400468067, %sw.bb10 ], [ 1281455214, %sw.bb8 ], [ 1214344807, %sw.bb7 ], [ 1214344809, %sw.bb5 ], [ 1197830002, %sw.bb4 ], [ 1132032620, %sw.bb3 ], [ 1098015074, %sw.bb2 ], [ 1131376756, %sw.bb1 ], [ 0, %entry ], [ 1516858984, %if.end ], [ %or., %sw.epilog ] ret i32 %retval.0 } @@ -20029,13 +20017,13 @@ if.end.i1: ; preds = %hb_tag_from_string. i32 1132032627, label %sw.bb3.i i32 1197829995, label %sw.bb4.i i32 1214344819, label %sw.bb5.i - i32 1214344820, label %sw.bb6.i + i32 1214344820, label %sw.bb5.i i32 1247898991, label %sw.bb7.i i32 1281455206, label %sw.bb8.i - i32 1281455207, label %sw.bb9.i + i32 1281455207, label %sw.bb8.i i32 1400468069, label %sw.bb10.i - i32 1400468074, label %sw.bb11.i - i32 1400468078, label %sw.bb12.i + i32 1400468074, label %sw.bb10.i + i32 1400468078, label %sw.bb10.i ] sw.bb1.i: ; preds = %if.end.i1 @@ -20050,28 +20038,16 @@ sw.bb3.i: ; preds = %if.end.i1 sw.bb4.i: ; preds = %if.end.i1 br label %hb_script_from_iso15924_tag.exit -sw.bb5.i: ; preds = %if.end.i1 - br label %hb_script_from_iso15924_tag.exit - -sw.bb6.i: ; preds = %if.end.i1 +sw.bb5.i: ; preds = %if.end.i1, %if.end.i1 br label %hb_script_from_iso15924_tag.exit sw.bb7.i: ; preds = %if.end.i1 br label %hb_script_from_iso15924_tag.exit -sw.bb8.i: ; preds = %if.end.i1 - br label %hb_script_from_iso15924_tag.exit - -sw.bb9.i: ; preds = %if.end.i1 +sw.bb8.i: ; preds = %if.end.i1, %if.end.i1 br label %hb_script_from_iso15924_tag.exit -sw.bb10.i: ; preds = %if.end.i1 - br label %hb_script_from_iso15924_tag.exit - -sw.bb11.i: ; preds = %if.end.i1 - br label %hb_script_from_iso15924_tag.exit - -sw.bb12.i: ; preds = %if.end.i1 +sw.bb10.i: ; preds = %if.end.i1, %if.end.i1, %if.end.i1 br label %hb_script_from_iso15924_tag.exit sw.epilog.i: ; preds = %if.end.i1 @@ -20080,8 +20056,8 @@ sw.epilog.i: ; preds = %if.end.i1 %or..i = select i1 %cmp14.i, i32 %or.i2, i32 1517976186 br label %hb_script_from_iso15924_tag.exit -hb_script_from_iso15924_tag.exit: ; preds = %hb_tag_from_string.exit.thread, %hb_tag_from_string.exit, %if.end.i1, %sw.bb1.i, %sw.bb2.i, %sw.bb3.i, %sw.bb4.i, %sw.bb5.i, %sw.bb6.i, %sw.bb7.i, %sw.bb8.i, %sw.bb9.i, %sw.bb10.i, %sw.bb11.i, %sw.bb12.i, %sw.epilog.i - %retval.0.i3 = phi i32 [ 1400468067, %sw.bb12.i ], [ 1400468067, %sw.bb11.i ], [ 1400468067, %sw.bb10.i ], [ 1281455214, %sw.bb9.i ], [ 1281455214, %sw.bb8.i ], [ 1214344807, %sw.bb7.i ], [ 1214344809, %sw.bb6.i ], [ 1214344809, %sw.bb5.i ], [ 1197830002, %sw.bb4.i ], [ 1132032620, %sw.bb3.i ], [ 1098015074, %sw.bb2.i ], [ 1131376756, %sw.bb1.i ], [ 0, %hb_tag_from_string.exit ], [ 1516858984, %if.end.i1 ], [ %or..i, %sw.epilog.i ], [ 0, %hb_tag_from_string.exit.thread ] +hb_script_from_iso15924_tag.exit: ; preds = %hb_tag_from_string.exit.thread, %hb_tag_from_string.exit, %if.end.i1, %sw.bb1.i, %sw.bb2.i, %sw.bb3.i, %sw.bb4.i, %sw.bb5.i, %sw.bb7.i, %sw.bb8.i, %sw.bb10.i, %sw.epilog.i + %retval.0.i3 = phi i32 [ 1400468067, %sw.bb10.i ], [ 1281455214, %sw.bb8.i ], [ 1214344807, %sw.bb7.i ], [ 1214344809, %sw.bb5.i ], [ 1197830002, %sw.bb4.i ], [ 1132032620, %sw.bb3.i ], [ 1098015074, %sw.bb2.i ], [ 1131376756, %sw.bb1.i ], [ 0, %hb_tag_from_string.exit ], [ 1516858984, %if.end.i1 ], [ %or..i, %sw.epilog.i ], [ 0, %hb_tag_from_string.exit.thread ] ret i32 %retval.0.i3 } @@ -67222,23 +67198,23 @@ if.end11.i: ; preds = %if.else.i, %if.end. i8 30, label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit i8 33, label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit i8 3, label %sw.bb20.i - i8 107, label %sw.bb21.i + i8 107, label %sw.bb14.i i8 118, label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit - i8 122, label %sw.bb23.i + i8 122, label %sw.bb16.i i8 -127, label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit - i8 -124, label %sw.bb25.i + i8 -124, label %sw.bb16.i ] sw.bb13.i: ; preds = %if.end11.i br label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit -sw.bb14.i: ; preds = %if.end11.i +sw.bb14.i: ; preds = %if.end11.i, %if.end11.i br label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit sw.bb15.i: ; preds = %if.end11.i, %if.end11.i br label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit -sw.bb16.i: ; preds = %if.end11.i +sw.bb16.i: ; preds = %if.end11.i, %if.end11.i, %if.end11.i br label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit sw.bb18.i: ; preds = %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i @@ -67247,22 +67223,13 @@ sw.bb18.i: ; preds = %if.end11.i, %if.end sw.bb20.i: ; preds = %if.end11.i br label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit -sw.bb21.i: ; preds = %if.end11.i - br label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit - -sw.bb23.i: ; preds = %if.end11.i - br label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit - -sw.bb25.i: ; preds = %if.end11.i - br label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit - sw.epilog27.i: ; preds = %if.end11.i, %sw.bb6.i, %sw.bb5.i, %sw.bb.i, %if.then4.i %klass.addr.09.i = phi i32 [ %klass.addr.0.i, %if.end11.i ], [ 232, %sw.bb.i ], [ 230, %sw.bb5.i ], [ 220, %sw.bb6.i ], [ 0, %if.then4.i ] %6 = trunc nuw nsw i32 %klass.addr.09.i to i16 br label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit -_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit: ; preds = %if.then, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %sw.bb13.i, %sw.bb14.i, %sw.bb15.i, %sw.bb16.i, %sw.bb18.i, %sw.bb20.i, %sw.bb21.i, %sw.bb23.i, %sw.bb25.i, %sw.epilog27.i - %retval.0.i = phi i16 [ %6, %sw.epilog27.i ], [ 230, %sw.bb25.i ], [ 230, %sw.bb23.i ], [ 232, %sw.bb21.i ], [ 222, %sw.bb20.i ], [ 230, %sw.bb18.i ], [ 230, %sw.bb16.i ], [ 228, %sw.bb15.i ], [ 232, %sw.bb14.i ], [ 214, %sw.bb13.i ], [ %4, %if.then ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ] +_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit: ; preds = %if.then, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %if.end11.i, %sw.bb13.i, %sw.bb14.i, %sw.bb15.i, %sw.bb16.i, %sw.bb18.i, %sw.bb20.i, %sw.epilog27.i + %retval.0.i = phi i16 [ %6, %sw.epilog27.i ], [ 222, %sw.bb20.i ], [ 230, %sw.bb18.i ], [ 230, %sw.bb16.i ], [ 228, %sw.bb15.i ], [ 232, %sw.bb14.i ], [ 214, %sw.bb13.i ], [ %4, %if.then ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ], [ 220, %if.end11.i ] %7 = and i16 %arrayidx.val, 236 %8 = shl nuw i16 %retval.0.i, 8 %conv1.i = or disjoint i16 %8, %7 @@ -70700,8 +70667,8 @@ if.then19: ; preds = %if.end16 i32 160, label %land.lhs.true21 i32 8192, label %sw.bb2.i i32 8193, label %sw.bb3.i - i32 8194, label %sw.bb4.i - i32 8195, label %sw.bb5.i + i32 8194, label %sw.bb2.i + i32 8195, label %sw.bb3.i i32 8196, label %sw.bb6.i i32 8197, label %sw.bb7.i i32 8198, label %sw.bb8.i @@ -70711,20 +70678,14 @@ if.then19: ; preds = %if.end16 i32 8202, label %sw.bb12.i i32 8239, label %sw.bb13.i i32 8287, label %sw.bb14.i - i32 12288, label %sw.bb15.i + i32 12288, label %sw.bb3.i i32 8209, label %if.then32 ] -sw.bb2.i: ; preds = %if.then19 - br label %land.lhs.true21 - -sw.bb3.i: ; preds = %if.then19 +sw.bb2.i: ; preds = %if.then19, %if.then19 br label %land.lhs.true21 -sw.bb4.i: ; preds = %if.then19 - br label %land.lhs.true21 - -sw.bb5.i: ; preds = %if.then19 +sw.bb3.i: ; preds = %if.then19, %if.then19, %if.then19 br label %land.lhs.true21 sw.bb6.i: ; preds = %if.then19 @@ -70754,11 +70715,8 @@ sw.bb13.i: ; preds = %if.then19 sw.bb14.i: ; preds = %if.then19 br label %land.lhs.true21 -sw.bb15.i: ; preds = %if.then19 - br label %land.lhs.true21 - -land.lhs.true21: ; preds = %if.then19, %if.then19, %sw.bb15.i, %sw.bb14.i, %sw.bb13.i, %sw.bb12.i, %sw.bb11.i, %sw.bb10.i, %sw.bb9.i, %sw.bb8.i, %sw.bb7.i, %sw.bb6.i, %sw.bb5.i, %sw.bb4.i, %sw.bb3.i, %sw.bb2.i - %retval.0.i.ph = phi i16 [ 512, %sw.bb2.i ], [ 256, %sw.bb3.i ], [ 512, %sw.bb4.i ], [ 256, %sw.bb5.i ], [ 768, %sw.bb6.i ], [ 1024, %sw.bb7.i ], [ 1536, %sw.bb8.i ], [ 4864, %sw.bb9.i ], [ 5120, %sw.bb10.i ], [ 1280, %sw.bb11.i ], [ 4096, %sw.bb12.i ], [ 5376, %sw.bb13.i ], [ 4352, %sw.bb14.i ], [ 256, %sw.bb15.i ], [ 4608, %if.then19 ], [ 4608, %if.then19 ] +land.lhs.true21: ; preds = %if.then19, %if.then19, %sw.bb14.i, %sw.bb13.i, %sw.bb12.i, %sw.bb11.i, %sw.bb10.i, %sw.bb9.i, %sw.bb8.i, %sw.bb7.i, %sw.bb6.i, %sw.bb3.i, %sw.bb2.i + %retval.0.i.ph = phi i16 [ 512, %sw.bb2.i ], [ 256, %sw.bb3.i ], [ 768, %sw.bb6.i ], [ 1024, %sw.bb7.i ], [ 1536, %sw.bb8.i ], [ 4864, %sw.bb9.i ], [ 5120, %sw.bb10.i ], [ 1280, %sw.bb11.i ], [ 4096, %sw.bb12.i ], [ 5376, %sw.bb13.i ], [ 4352, %sw.bb14.i ], [ 4608, %if.then19 ], [ 4608, %if.then19 ] %font22 = getelementptr inbounds i8, ptr %c, i64 16 %25 = load ptr, ptr %font22, align 8 store i32 0, ptr %space_glyph, align 4 diff --git a/bench/hdf5/optimized/h5import.c.ll b/bench/hdf5/optimized/h5import.c.ll index dd32007625a..721c116fbb8 100644 --- a/bench/hdf5/optimized/h5import.c.ll +++ b/bench/hdf5/optimized/h5import.c.ll @@ -1003,7 +1003,7 @@ parseDimensions.exit.thread: ; preds = %.lr.ph.i, %179 call void @usage(ptr noundef %251) br label %1141 -252: ; preds = %parseDimensions.exit.thread, %226, %118, %147, %245, %111, %111, %111, %111, %199, %111, %228, %111 +252: ; preds = %parseDimensions.exit.thread, %226, %118, %147, %245, %111, %111, %111, %111, %111, %111, %199, %228 %.1125 = phi ptr [ %.0124410, %245 ], [ %.0124410, %228 ], [ %.0124410, %199 ], [ %.0124410, %147 ], [ %.0124410, %111 ], [ %.0124410, %111 ], [ %.0124410, %111 ], [ %.0124410, %111 ], [ %.0124410, %111 ], [ %.0124410, %111 ], [ %125, %118 ], [ %.0124410, %226 ], [ %.0124410, %parseDimensions.exit.thread ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count diff --git a/bench/hermes/optimized/BlockScopingTransformations.cpp.ll b/bench/hermes/optimized/BlockScopingTransformations.cpp.ll index d6c729a2a1c..65d26675f0c 100644 --- a/bench/hermes/optimized/BlockScopingTransformations.cpp.ll +++ b/bench/hermes/optimized/BlockScopingTransformations.cpp.ll @@ -427,11 +427,8 @@ while.body: ; preds = %if.end.split.split, %idx.ext = zext i32 %BucketNo.0 to i64 %add.ptr = getelementptr inbounds %"struct.llvh::detail::DenseMapPair", ptr %0, i64 %idx.ext %agg.tmp6.sroa.0.0.copyload = load ptr, ptr %add.ptr, align 8 - %magicptr135 = ptrtoint ptr %agg.tmp6.sroa.0.0.copyload to i64 - switch i64 %magicptr135, label %if.end19.i [ - i64 -1, label %if.then15 - i64 -2, label %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit40 - ] + %switch = icmp ugt ptr %agg.tmp6.sroa.0.0.copyload, inttoptr (i64 -3 to ptr) + br i1 %switch, label %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27, label %if.end19.i if.end19.i: ; preds = %while.body %agg.tmp6.sroa.2.0.call7.sroa_idx = getelementptr inbounds i8, ptr %add.ptr, i64 8 @@ -444,18 +441,18 @@ land.rhs.i.i: ; preds = %if.end19.i %4 = icmp eq i32 %bcmp.i, 0 br i1 %4, label %return, label %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27 -_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27: ; preds = %if.end19.i, %land.rhs.i.i +_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27: ; preds = %while.body, %if.end19.i, %land.rhs.i.i %cmp7.i20 = icmp eq ptr %agg.tmp6.sroa.0.0.copyload, inttoptr (i64 -1 to ptr) br i1 %cmp7.i20, label %if.then15, label %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit40 -if.then15: ; preds = %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27, %while.body, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us100, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us66, %while.body.us50, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us.us - %.us-phi46 = phi ptr [ %FoundTombstone.0.us.us, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us.us ], [ %FoundTombstone.0.us, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us ], [ %FoundTombstone.0.us53, %while.body.us50 ], [ %FoundTombstone.0.us53, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us66 ], [ %FoundTombstone.0.us86, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us100 ], [ %FoundTombstone.0, %while.body ], [ %FoundTombstone.0, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27 ] - %.us-phi47 = phi ptr [ %add.ptr.us.us, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us.us ], [ %add.ptr.us, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us ], [ %add.ptr.us56, %while.body.us50 ], [ %add.ptr.us56, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us66 ], [ %add.ptr.us89, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us100 ], [ %add.ptr, %while.body ], [ %add.ptr, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27 ] +if.then15: ; preds = %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us100, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us66, %while.body.us50, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us.us + %.us-phi46 = phi ptr [ %FoundTombstone.0.us.us, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us.us ], [ %FoundTombstone.0.us, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us ], [ %FoundTombstone.0.us53, %while.body.us50 ], [ %FoundTombstone.0.us53, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us66 ], [ %FoundTombstone.0.us86, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us100 ], [ %FoundTombstone.0, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27 ] + %.us-phi47 = phi ptr [ %add.ptr.us.us, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us.us ], [ %add.ptr.us, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us ], [ %add.ptr.us56, %while.body.us50 ], [ %add.ptr.us56, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us66 ], [ %add.ptr.us89, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27.us100 ], [ %add.ptr, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27 ] %tobool.not = icmp eq ptr %.us-phi46, null %cond = select i1 %tobool.not, ptr %.us-phi47, ptr %.us-phi46 br label %return -_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit40: ; preds = %while.body, %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27 +_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit40: ; preds = %_ZN4llvh12DenseMapInfoINS_9StringRefEE7isEqualES1_S1_.exit27 %cmp18.i30 = icmp eq ptr %agg.tmp6.sroa.0.0.copyload, inttoptr (i64 -2 to ptr) %tobool21 = icmp eq ptr %FoundTombstone.0, null %or.cond.not = select i1 %cmp18.i30, i1 %tobool21, i1 false diff --git a/bench/hwloc/optimized/topology-cuda.ll b/bench/hwloc/optimized/topology-cuda.ll index 25f04af6f5d..ee58c524bc3 100644 --- a/bench/hwloc/optimized/topology-cuda.ll +++ b/bench/hwloc/optimized/topology-cuda.ll @@ -104,8 +104,8 @@ define internal range(i32 -1, 1) i32 @hwloc_cuda_discover(ptr nocapture noundef %33 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32, ptr noundef nonnull @.str.2, ptr noundef %31) #9 br label %._crit_edge.thread -34: ; preds = %.lr.ph, %92 - %.04085 = phi i32 [ 0, %.lr.ph ], [ %93, %92 ] +34: ; preds = %.lr.ph, %91 + %.04085 = phi i32 [ 0, %.lr.ph ], [ %92, %91 ] %35 = call ptr @hwloc_alloc_setup_object(ptr noundef %10, i32 noundef 16, i32 noundef -1) #8 %36 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %6, i64 noundef 32, ptr noundef nonnull @.str.3, i32 noundef %.04085) #8 %37 = call noalias ptr @strdup(ptr noundef nonnull %6) #8 @@ -155,7 +155,7 @@ define internal range(i32 -1, 1) i32 @hwloc_cuda_discover(ptr nocapture noundef i32 6, label %70 i32 7, label %72 i32 8, label %72 - i32 9, label %74 + i32 9, label %69 ] 67: ; preds = %52 @@ -168,7 +168,7 @@ define internal range(i32 -1, 1) i32 @hwloc_cuda_discover(ptr nocapture noundef i32 1, label %hwloc_cuda_cores_per_MP.exit.thread.fold.split ] -69: ; preds = %52 +69: ; preds = %52, %52 br label %hwloc_cuda_cores_per_MP.exit.thread 70: ; preds = %52 @@ -179,15 +179,12 @@ define internal range(i32 -1, 1) i32 @hwloc_cuda_discover(ptr nocapture noundef %73 = icmp ult i32 %66, 10 br i1 %73, label %switch.hole_check, label %hwloc_cuda_cores_per_MP.exit.thread60 -74: ; preds = %52 - br label %hwloc_cuda_cores_per_MP.exit.thread - hwloc_cuda_cores_per_MP.exit.thread.fold.split: ; preds = %68 br label %hwloc_cuda_cores_per_MP.exit.thread switch.lookup: ; preds = %70 - %75 = zext nneg i32 %66 to i64 - %switch.gep = getelementptr inbounds [3 x i32], ptr @switch.table.hwloc_cuda_discover, i64 0, i64 %75 + %74 = zext nneg i32 %66 to i64 + %switch.gep = getelementptr inbounds [3 x i32], ptr @switch.table.hwloc_cuda_discover, i64 0, i64 %74 %switch.load = load i32, ptr %switch.gep, align 4 br label %hwloc_cuda_cores_per_MP.exit.thread @@ -198,57 +195,57 @@ switch.hole_check: ; preds = %72 br i1 %switch.lobit, label %switch.lookup87, label %hwloc_cuda_cores_per_MP.exit.thread60 switch.lookup87: ; preds = %switch.hole_check - %76 = zext nneg i32 %66 to i64 - %switch.gep88 = getelementptr inbounds [10 x i32], ptr @switch.table.hwloc_cuda_discover.3, i64 0, i64 %76 + %75 = zext nneg i32 %66 to i64 + %switch.gep88 = getelementptr inbounds [10 x i32], ptr @switch.table.hwloc_cuda_discover.3, i64 0, i64 %75 %switch.load89 = load i32, ptr %switch.gep88, align 4 br label %hwloc_cuda_cores_per_MP.exit.thread -hwloc_cuda_cores_per_MP.exit.thread: ; preds = %switch.lookup87, %switch.lookup, %68, %hwloc_cuda_cores_per_MP.exit.thread.fold.split, %52, %67, %69, %74 - %.0.i59 = phi i32 [ 192, %52 ], [ 8, %67 ], [ 128, %69 ], [ 128, %74 ], [ 32, %68 ], [ 48, %hwloc_cuda_cores_per_MP.exit.thread.fold.split ], [ %switch.load, %switch.lookup ], [ %switch.load89, %switch.lookup87 ] - %77 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %7, i64 noundef 32, ptr noundef nonnull @.str.13, i32 noundef %.0.i59) #8 - %78 = call i32 @hwloc_modify_infos(ptr noundef nonnull %44, i64 noundef 1, ptr noundef nonnull @.str.14, ptr noundef nonnull %7) #8 +hwloc_cuda_cores_per_MP.exit.thread: ; preds = %switch.lookup87, %switch.lookup, %68, %hwloc_cuda_cores_per_MP.exit.thread.fold.split, %52, %67, %69 + %.0.i59 = phi i32 [ 192, %52 ], [ 8, %67 ], [ 128, %69 ], [ 32, %68 ], [ 48, %hwloc_cuda_cores_per_MP.exit.thread.fold.split ], [ %switch.load, %switch.lookup ], [ %switch.load89, %switch.lookup87 ] + %76 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %7, i64 noundef 32, ptr noundef nonnull @.str.13, i32 noundef %.0.i59) #8 + %77 = call i32 @hwloc_modify_infos(ptr noundef nonnull %44, i64 noundef 1, ptr noundef nonnull @.str.14, ptr noundef nonnull %7) #8 br label %hwloc_cuda_cores_per_MP.exit.thread60 hwloc_cuda_cores_per_MP.exit.thread60: ; preds = %switch.hole_check, %72, %70, %68, %67, %52, %hwloc_cuda_cores_per_MP.exit.thread - %79 = load i64, ptr %23, align 8 - %80 = lshr i64 %79, 10 - %81 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %7, i64 noundef 32, ptr noundef nonnull @.str.8, i64 noundef %80) #8 - %82 = call i32 @hwloc_modify_infos(ptr noundef nonnull %44, i64 noundef 1, ptr noundef nonnull @.str.15, ptr noundef nonnull %7) #8 + %78 = load i64, ptr %23, align 8 + %79 = lshr i64 %78, 10 + %80 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %7, i64 noundef 32, ptr noundef nonnull @.str.8, i64 noundef %79) #8 + %81 = call i32 @hwloc_modify_infos(ptr noundef nonnull %44, i64 noundef 1, ptr noundef nonnull @.str.15, ptr noundef nonnull %7) #8 call void @llvm.lifetime.start.p0(i64 728, ptr nonnull %3) - %83 = call i32 @cudaGetDeviceProperties(ptr noundef nonnull %3, i32 noundef %.04085) #8 - %.not.i = icmp eq i32 %83, 0 - br i1 %.not.i, label %85, label %.thread + %82 = call i32 @cudaGetDeviceProperties(ptr noundef nonnull %3, i32 noundef %.04085) #8 + %.not.i = icmp eq i32 %82, 0 + br i1 %.not.i, label %84, label %.thread .thread: ; preds = %hwloc_cuda_cores_per_MP.exit.thread60 - %84 = tail call ptr @__errno_location() #10 - store i32 38, ptr %84, align 4 + %83 = tail call ptr @__errno_location() #10 + store i32 38, ptr %83, align 4 call void @llvm.lifetime.end.p0(i64 728, ptr nonnull %3) - br label %90 + br label %89 -85: ; preds = %hwloc_cuda_cores_per_MP.exit.thread60 - %86 = load i32, ptr %24, align 8 - %87 = load i32, ptr %25, align 8 - %88 = load i32, ptr %26, align 4 +84: ; preds = %hwloc_cuda_cores_per_MP.exit.thread60 + %85 = load i32, ptr %24, align 8 + %86 = load i32, ptr %25, align 8 + %87 = load i32, ptr %26, align 4 call void @llvm.lifetime.end.p0(i64 728, ptr nonnull %3) - %89 = call ptr @hwloc_pci_find_parent_by_busid(ptr noundef %10, i32 noundef %86, i32 noundef %87, i32 noundef %88, i32 noundef 0) #8 - %.not46 = icmp eq ptr %89, null - br i1 %.not46, label %90, label %92 + %88 = call ptr @hwloc_pci_find_parent_by_busid(ptr noundef %10, i32 noundef %85, i32 noundef %86, i32 noundef %87, i32 noundef 0) #8 + %.not46 = icmp eq ptr %88, null + br i1 %.not46, label %89, label %91 -90: ; preds = %.thread, %85 - %91 = call ptr @hwloc_get_obj_by_depth(ptr noundef readonly %10, i32 noundef 0, i32 noundef 0) #11 - br label %92 +89: ; preds = %.thread, %84 + %90 = call ptr @hwloc_get_obj_by_depth(ptr noundef readonly %10, i32 noundef 0, i32 noundef 0) #11 + br label %91 -92: ; preds = %90, %85 - %.1 = phi ptr [ %89, %85 ], [ %91, %90 ] +91: ; preds = %89, %84 + %.1 = phi ptr [ %88, %84 ], [ %90, %89 ] call void @hwloc_insert_object_by_parent(ptr noundef %10, ptr noundef %.1, ptr noundef nonnull %35) #8 - %93 = add nuw nsw i32 %.04085, 1 - %94 = load i32, ptr %5, align 4 - %95 = icmp slt i32 %93, %94 - br i1 %95, label %34, label %._crit_edge, !llvm.loop !4 - -._crit_edge: ; preds = %92 - %96 = call ptr @hwloc_topology_get_infos(ptr noundef %10) #8 - %97 = call i32 @hwloc_modify_infos(ptr noundef %96, i64 noundef 1, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.4) #8 + %92 = add nuw nsw i32 %.04085, 1 + %93 = load i32, ptr %5, align 4 + %94 = icmp slt i32 %92, %93 + br i1 %94, label %34, label %._crit_edge, !llvm.loop !4 + +._crit_edge: ; preds = %91 + %95 = call ptr @hwloc_topology_get_infos(ptr noundef %10) #8 + %96 = call i32 @hwloc_modify_infos(ptr noundef %95, i64 noundef 1, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.4) #8 br label %._crit_edge.thread ._crit_edge.thread: ; preds = %.preheader, %._crit_edge, %27, %30, %14, %2 diff --git a/bench/image-rs/optimized/1clnprdgqfw2q9lq.ll b/bench/image-rs/optimized/1clnprdgqfw2q9lq.ll index 79c919801d3..6ea92ba18a7 100644 --- a/bench/image-rs/optimized/1clnprdgqfw2q9lq.ll +++ b/bench/image-rs/optimized/1clnprdgqfw2q9lq.ll @@ -15513,8 +15513,8 @@ _ZN3exr4meta9attribute4Text15write_i32_sized17he0526279b8546ddeE.exit.i.i: ; pre %441 = getelementptr inbounds i8, ptr %3, i64 25 %442 = load i8, ptr %441, align 1, !range !361, !alias.scope !3269, !noalias !3270, !noundef !4 %trunc.i.i = trunc nuw i8 %442 to i1 - %..i.i = select i1 %trunc.i.i, i8 16, i8 0 - %443 = or disjoint i8 %..i.i, %440 + %spec.select.i.i = select i1 %trunc.i.i, i8 16, i8 0 + %443 = or disjoint i8 %spec.select.i.i, %440 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %.sroa.542.i.i) call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %47), !noalias !3295 store i8 %443, ptr %47, align 1, !noalias !3295 @@ -37585,26 +37585,26 @@ _ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit: ; pr br i1 %spec.select.i, label %_ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit.thread, label %40 40: ; preds = %_ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit - switch i8 %1, label %default.unreachable19.i [ - i8 4, label %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit" - i8 1, label %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit" - i8 3, label %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit" + switch i8 %1, label %default.unreachable25.i [ i8 0, label %_ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit.thread + i8 1, label %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit" i8 2, label %.critedge + i8 3, label %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit" + i8 4, label %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit" ] -default.unreachable19.i: ; preds = %40 +default.unreachable25.i: ; preds = %40 unreachable "_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit": ; preds = %40, %40, %40 %41 = icmp eq i64 %7, 1 - br i1 %41, label %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit.thread56", label %_ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit.thread + br i1 %41, label %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit.thread55", label %_ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit.thread -"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit.thread56": ; preds = %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit" - %switch = icmp ult i8 %1, 2 - br i1 %switch, label %_ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit.thread, label %.critedge +"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit.thread55": ; preds = %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit" + %switch14.i = icmp eq i8 %1, 1 + br i1 %switch14.i, label %_ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit.thread, label %.critedge -.critedge: ; preds = %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit.thread56", %40 +.critedge: ; preds = %40, %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit.thread55" call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %4), !noalias !7023 store i64 %7, ptr %4, align 8, !noalias !7023 %42 = getelementptr inbounds i8, ptr %4, i64 8 @@ -37638,11 +37638,11 @@ _ZN5image4flat12SampleLayout22increasing_stride_dims17ha5e890988dc661afE.exit: ; call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %4), !noalias !7023 %51 = icmp eq i64 %47, 1 %.not23 = icmp eq i64 %.sroa.5.0.copyload, %48 - %or.cond68 = select i1 %51, i1 %.not23, i1 false + %or.cond72 = select i1 %51, i1 %.not23, i1 false %52 = mul i64 %.sroa.7.0.copyload, %48 %.not24 = icmp eq i64 %52, %49 - %or.cond69 = select i1 %or.cond68, i1 %.not24, i1 false - br i1 %or.cond69, label %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit40", label %_ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit.thread + %or.cond73 = select i1 %or.cond72, i1 %.not24, i1 false + br i1 %or.cond73, label %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit40", label %_ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit.thread "_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit40": ; preds = %_ZN5image4flat12SampleLayout22increasing_stride_dims17ha5e890988dc661afE.exit switch i8 %1, label %_ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit.thread [ @@ -37654,18 +37654,18 @@ _ZN5image4flat12SampleLayout22increasing_stride_dims17ha5e890988dc661afE.exit: ; %.not26 = icmp eq i64 %11, %9 %53 = mul nuw nsw i64 %11, %14 %.not27 = icmp eq i64 %53, %16 - %or.cond72 = select i1 %.not26, i1 %.not27, i1 false + %or.cond76 = select i1 %.not26, i1 %.not27, i1 false br label %_ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit.thread .critedge34: ; preds = %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit40" %.not29 = icmp eq i64 %16, %9 %54 = mul nuw nsw i64 %16, %19 %.not30 = icmp eq i64 %54, %11 - %or.cond73 = select i1 %.not29, i1 %.not30, i1 false + %or.cond77 = select i1 %.not29, i1 %.not30, i1 false br label %_ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit.thread -_ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit.thread: ; preds = %.critedge32, %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit.thread56", %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit40", %40, %.critedge34, %_ZN5image4flat12SampleLayout22increasing_stride_dims17ha5e890988dc661afE.exit.i, %32, %_ZN5image4flat12SampleLayout22increasing_stride_dims17ha5e890988dc661afE.exit, %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit", %_ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit - %.0 = phi i1 [ false, %_ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit ], [ false, %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit" ], [ false, %_ZN5image4flat12SampleLayout22increasing_stride_dims17ha5e890988dc661afE.exit ], [ false, %32 ], [ false, %_ZN5image4flat12SampleLayout22increasing_stride_dims17ha5e890988dc661afE.exit.i ], [ %or.cond73, %.critedge34 ], [ true, %40 ], [ true, %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit.thread56" ], [ true, %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit40" ], [ %or.cond72, %.critedge32 ] +_ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit.thread: ; preds = %.critedge32, %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit40", %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit.thread55", %40, %.critedge34, %_ZN5image4flat12SampleLayout22increasing_stride_dims17ha5e890988dc661afE.exit.i, %32, %_ZN5image4flat12SampleLayout22increasing_stride_dims17ha5e890988dc661afE.exit, %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit", %_ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit + %.0 = phi i1 [ false, %_ZN5image4flat12SampleLayout19has_aliased_samples17h77b933853ff0f0c7E.exit ], [ false, %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit" ], [ false, %_ZN5image4flat12SampleLayout22increasing_stride_dims17ha5e890988dc661afE.exit ], [ false, %32 ], [ false, %_ZN5image4flat12SampleLayout22increasing_stride_dims17ha5e890988dc661afE.exit.i ], [ %or.cond77, %.critedge34 ], [ true, %40 ], [ true, %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit.thread55" ], [ true, %"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE.exit40" ], [ %or.cond76, %.critedge32 ] ret i1 %.0 } @@ -38065,7 +38065,7 @@ switch.lookup: ; preds = %2 define noundef range(i8 -1, 3) i8 @"_ZN65_$LT$image..flat..NormalForm$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h1cc101ee97cf367eE"(ptr noalias nocapture noundef readonly align 1 dereferenceable(1) %0, ptr noalias nocapture noundef readonly align 1 dereferenceable(1) %1) unnamed_addr #17 { %3 = load i8, ptr %0, align 1, !range !5673, !noundef !4 %4 = load i8, ptr %1, align 1, !range !5673, !noundef !4 - switch i8 %3, label %default.unreachable19 [ + switch i8 %3, label %default.unreachable25 [ i8 0, label %5 i8 1, label %7 i8 2, label %8 @@ -38073,7 +38073,7 @@ define noundef range(i8 -1, 3) i8 @"_ZN65_$LT$image..flat..NormalForm$u20$as$u20 i8 4, label %10 ] -default.unreachable19: ; preds = %10, %9, %8, %7, %2 +default.unreachable25: ; preds = %10, %9, %8, %7, %2 unreachable 5: ; preds = %2 @@ -38082,76 +38082,68 @@ default.unreachable19: ; preds = %10, %9, %8, %7, %2 br label %11 7: ; preds = %2 - switch i8 %4, label %default.unreachable19 [ + switch i8 %4, label %default.unreachable25 [ i8 1, label %11 i8 0, label %12 - i8 2, label %.thread17 - i8 3, label %13 - i8 4, label %14 + i8 2, label %14 + i8 3, label %15 + i8 4, label %16 ] -.thread17: ; preds = %7 - br label %11 - 8: ; preds = %2 - switch i8 %4, label %default.unreachable19 [ + switch i8 %4, label %default.unreachable25 [ i8 2, label %11 i8 0, label %12 - i8 1, label %.thread - i8 3, label %13 - i8 4, label %14 + i8 1, label %13 + i8 3, label %15 + i8 4, label %16 ] -.thread: ; preds = %8 - br label %11 - 9: ; preds = %2 - switch i8 %4, label %default.unreachable19 [ + switch i8 %4, label %default.unreachable25 [ i8 3, label %11 i8 0, label %12 - i8 1, label %15 - i8 2, label %17 - i8 4, label %14 + i8 1, label %13 + i8 2, label %14 + i8 4, label %16 ] 10: ; preds = %2 - switch i8 %4, label %default.unreachable19 [ + switch i8 %4, label %default.unreachable25 [ i8 4, label %11 i8 0, label %12 - i8 1, label %16 - i8 2, label %18 - i8 3, label %13 + i8 1, label %13 + i8 2, label %14 + i8 3, label %15 ] -11: ; preds = %.thread17, %.thread, %14, %13, %10, %9, %8, %7, %5, %18, %17, %16, %15, %12 - %.0 = phi i8 [ 1, %18 ], [ 1, %17 ], [ 1, %16 ], [ 1, %15 ], [ 1, %12 ], [ %., %5 ], [ 0, %7 ], [ 0, %8 ], [ 0, %9 ], [ 0, %10 ], [ %spec.select, %13 ], [ %spec.select15, %14 ], [ 2, %.thread ], [ 2, %.thread17 ] +11: ; preds = %16, %15, %14, %13, %10, %9, %8, %7, %5, %12 + %.0 = phi i8 [ 1, %12 ], [ %., %5 ], [ 0, %7 ], [ 0, %8 ], [ 0, %9 ], [ 0, %10 ], [ %.12, %13 ], [ %.16, %14 ], [ %.20, %15 ], [ %.24, %16 ] ret i8 %.0 12: ; preds = %10, %9, %8, %7 br label %11 -13: ; preds = %10, %8, %7 - %.off = add nsw i8 %3, -1 - %switch = icmp ult i8 %.off, 2 - %spec.select = select i1 %switch, i8 -1, i8 2 - br label %11 - -14: ; preds = %9, %8, %7 - %.off12 = add nsw i8 %3, -1 - %switch13 = icmp ult i8 %.off12, 2 - %spec.select15 = select i1 %switch13, i8 -1, i8 2 - br label %11 - -15: ; preds = %9 +13: ; preds = %10, %9, %8 + %switch = icmp eq i8 %3, 2 + %.12 = select i1 %switch, i8 2, i8 1 br label %11 -16: ; preds = %10 +14: ; preds = %10, %9, %7 + %switch14 = icmp eq i8 %3, 1 + %.16 = select i1 %switch14, i8 2, i8 1 br label %11 -17: ; preds = %9 +15: ; preds = %10, %8, %7 + %.off17 = add nsw i8 %3, -1 + %switch18 = icmp ult i8 %.off17, 2 + %.20 = select i1 %switch18, i8 -1, i8 2 br label %11 -18: ; preds = %10 +16: ; preds = %9, %8, %7 + %.off21 = add nsw i8 %3, -1 + %switch22 = icmp ult i8 %.off21, 2 + %.24 = select i1 %switch22, i8 -1, i8 2 br label %11 } diff --git a/bench/image-rs/optimized/2s4mh02dvph60euq.ll b/bench/image-rs/optimized/2s4mh02dvph60euq.ll index ea3f03c10de..80d5b7e4121 100644 --- a/bench/image-rs/optimized/2s4mh02dvph60euq.ll +++ b/bench/image-rs/optimized/2s4mh02dvph60euq.ll @@ -26078,7 +26078,7 @@ default.unreachable: ; preds = %46 call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %6), !noalias !4082 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) %45 = icmp eq i8 %.sroa.0.0.copyload, 10 - br i1 %45, label %46, label %51 + br i1 %45, label %46, label %52 46: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h3c611ba050066d26E.exit", %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h3c611ba050066d26E.exit.thread" call void @llvm.lifetime.end.p0(i64 31, ptr nonnull %.sroa.520) @@ -26092,9 +26092,9 @@ default.unreachable: ; preds = %46 i8 4, label %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit i8 5, label %48 i8 6, label %49 - i8 7, label %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread35 + i8 7, label %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread34 i8 8, label %50 - i8 9, label %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread38 + i8 9, label %51 ] 48: ; preds = %46, %46 @@ -26106,7 +26106,10 @@ default.unreachable: ; preds = %46 50: ; preds = %46 br label %_ZN5image5color9ColorType13channel_count17h091181b88688e861E.exit -51: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h3c611ba050066d26E.exit" +51: ; preds = %46 + br label %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread34 + +52: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h3c611ba050066d26E.exit" call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(31) %.sroa.7, ptr noundef nonnull align 1 dereferenceable(31) %.sroa.520, i64 31, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.311, ptr noundef nonnull align 8 dereferenceable(32) %.sroa.822, i64 32, i1 false) call void @llvm.lifetime.end.p0(i64 31, ptr nonnull %.sroa.520) @@ -26120,36 +26123,31 @@ default.unreachable: ; preds = %46 _ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit: ; preds = %46, %46, %48 %.0.i17 = phi i8 [ 4, %48 ], [ 2, %46 ], [ 2, %46 ] - switch i8 %47, label %52 [ + switch i8 %47, label %53 [ i8 5, label %54 i8 1, label %54 i8 2, label %_ZN5image5color9ColorType13channel_count17h091181b88688e861E.exit - i8 3, label %53 + i8 3, label %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread34 i8 4, label %"_ZN102_$LT$image..color..ExtendedColorType$u20$as$u20$core..convert..From$LT$image..color..ColorType$GT$$GT$4from17h48c483a11b2d5c57E.exit.thread6.i" ] -52: ; preds = %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit - unreachable - 53: ; preds = %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit - br label %_ZN5image5color9ColorType13channel_count17h091181b88688e861E.exit - -_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread35: ; preds = %46 - br label %_ZN5image5color9ColorType13channel_count17h091181b88688e861E.exit + unreachable -_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread38: ; preds = %46 +_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread34: ; preds = %46, %51, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit + %.0.i1736 = phi i8 [ %.0.i17, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit ], [ 16, %51 ], [ 8, %46 ] br label %_ZN5image5color9ColorType13channel_count17h091181b88688e861E.exit "_ZN102_$LT$image..color..ExtendedColorType$u20$as$u20$core..convert..From$LT$image..color..ColorType$GT$$GT$4from17h48c483a11b2d5c57E.exit.thread6.i": ; preds = %46, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit - %.0.i1734 = phi i8 [ %.0.i17, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit ], [ 1, %46 ] + %.0.i1739 = phi i8 [ %.0.i17, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit ], [ 1, %46 ] br label %_ZN5image5color9ColorType13channel_count17h091181b88688e861E.exit 54: ; preds = %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit br label %_ZN5image5color9ColorType13channel_count17h091181b88688e861E.exit -_ZN5image5color9ColorType13channel_count17h091181b88688e861E.exit: ; preds = %46, %49, %50, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit, %53, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread35, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread38, %"_ZN102_$LT$image..color..ExtendedColorType$u20$as$u20$core..convert..From$LT$image..color..ColorType$GT$$GT$4from17h48c483a11b2d5c57E.exit.thread6.i", %54 - %.0.i1731 = phi i8 [ %.0.i17, %54 ], [ %.0.i1734, %"_ZN102_$LT$image..color..ExtendedColorType$u20$as$u20$core..convert..From$LT$image..color..ColorType$GT$$GT$4from17h48c483a11b2d5c57E.exit.thread6.i" ], [ 16, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread38 ], [ 8, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread35 ], [ %.0.i17, %53 ], [ %.0.i17, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit ], [ 6, %49 ], [ 12, %50 ], [ 3, %46 ] - %.0.i.i18 = phi i8 [ 2, %54 ], [ 1, %"_ZN102_$LT$image..color..ExtendedColorType$u20$as$u20$core..convert..From$LT$image..color..ColorType$GT$$GT$4from17h48c483a11b2d5c57E.exit.thread6.i" ], [ 4, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread38 ], [ 4, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread35 ], [ 4, %53 ], [ 3, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit ], [ 3, %49 ], [ 3, %50 ], [ 3, %46 ] +_ZN5image5color9ColorType13channel_count17h091181b88688e861E.exit: ; preds = %46, %49, %50, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread34, %"_ZN102_$LT$image..color..ExtendedColorType$u20$as$u20$core..convert..From$LT$image..color..ColorType$GT$$GT$4from17h48c483a11b2d5c57E.exit.thread6.i", %54 + %.0.i1731 = phi i8 [ %.0.i17, %54 ], [ %.0.i1739, %"_ZN102_$LT$image..color..ExtendedColorType$u20$as$u20$core..convert..From$LT$image..color..ColorType$GT$$GT$4from17h48c483a11b2d5c57E.exit.thread6.i" ], [ %.0.i1736, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread34 ], [ %.0.i17, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit ], [ 6, %49 ], [ 12, %50 ], [ 3, %46 ] + %.0.i.i18 = phi i8 [ 2, %54 ], [ 1, %"_ZN102_$LT$image..color..ExtendedColorType$u20$as$u20$core..convert..From$LT$image..color..ColorType$GT$$GT$4from17h48c483a11b2d5c57E.exit.thread6.i" ], [ 4, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread34 ], [ 3, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit ], [ 3, %49 ], [ 3, %50 ], [ 3, %46 ] %55 = udiv i8 %.0.i1731, %.0.i.i18 switch i8 %55, label %.invoke [ i8 1, label %_ZN4core4iter6traits8iterator8Iterator8for_each17h85136a553483e9daE.exit @@ -26179,7 +26177,7 @@ _ZN4core4iter6traits8iterator8Iterator8for_each17h85136a553483e9daE.exit: ; pred %64 = icmp eq i64 %61, 0 br i1 %64, label %_ZN4core4iter6traits8iterator8Iterator8for_each17h85136a553483e9daE.exit, label %"_ZN4core4iter6traits8iterator8Iterator8for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17ha23eadbfcc62b74aE.exit.i.i" -65: ; preds = %_ZN4core4iter6traits8iterator8Iterator8for_each17h85136a553483e9daE.exit, %51 +65: ; preds = %_ZN4core4iter6traits8iterator8Iterator8for_each17h85136a553483e9daE.exit, %52 tail call void @"_ZN4core3ptr96drop_in_place$LT$png..decoder..Reader$LT$std..io..cursor..Cursor$LT$$RF$$u5b$u8$u5d$$GT$$GT$$GT$17h494790fa3eec33b3E"(ptr noalias noundef nonnull align 8 dereferenceable(688) %38) ret void @@ -26308,7 +26306,7 @@ default.unreachable: ; preds = %46 call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %6), !noalias !4122 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) %45 = icmp eq i8 %.sroa.0.0.copyload, 10 - br i1 %45, label %46, label %51 + br i1 %45, label %46, label %52 46: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h3c611ba050066d26E.exit", %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h3c611ba050066d26E.exit.thread" call void @llvm.lifetime.end.p0(i64 31, ptr nonnull %.sroa.520) @@ -26322,9 +26320,9 @@ default.unreachable: ; preds = %46 i8 4, label %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit i8 5, label %48 i8 6, label %49 - i8 7, label %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread35 + i8 7, label %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread34 i8 8, label %50 - i8 9, label %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread38 + i8 9, label %51 ] 48: ; preds = %46, %46 @@ -26336,7 +26334,10 @@ default.unreachable: ; preds = %46 50: ; preds = %46 br label %_ZN5image5color9ColorType13channel_count17h091181b88688e861E.exit -51: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h3c611ba050066d26E.exit" +51: ; preds = %46 + br label %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread34 + +52: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h3c611ba050066d26E.exit" call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(31) %.sroa.7, ptr noundef nonnull align 1 dereferenceable(31) %.sroa.520, i64 31, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.311, ptr noundef nonnull align 8 dereferenceable(32) %.sroa.822, i64 32, i1 false) call void @llvm.lifetime.end.p0(i64 31, ptr nonnull %.sroa.520) @@ -26350,36 +26351,31 @@ default.unreachable: ; preds = %46 _ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit: ; preds = %46, %46, %48 %.0.i17 = phi i8 [ 4, %48 ], [ 2, %46 ], [ 2, %46 ] - switch i8 %47, label %52 [ + switch i8 %47, label %53 [ i8 5, label %54 i8 1, label %54 i8 2, label %_ZN5image5color9ColorType13channel_count17h091181b88688e861E.exit - i8 3, label %53 + i8 3, label %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread34 i8 4, label %"_ZN102_$LT$image..color..ExtendedColorType$u20$as$u20$core..convert..From$LT$image..color..ColorType$GT$$GT$4from17h48c483a11b2d5c57E.exit.thread6.i" ] -52: ; preds = %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit - unreachable - 53: ; preds = %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit - br label %_ZN5image5color9ColorType13channel_count17h091181b88688e861E.exit - -_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread35: ; preds = %46 - br label %_ZN5image5color9ColorType13channel_count17h091181b88688e861E.exit + unreachable -_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread38: ; preds = %46 +_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread34: ; preds = %46, %51, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit + %.0.i1736 = phi i8 [ %.0.i17, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit ], [ 16, %51 ], [ 8, %46 ] br label %_ZN5image5color9ColorType13channel_count17h091181b88688e861E.exit "_ZN102_$LT$image..color..ExtendedColorType$u20$as$u20$core..convert..From$LT$image..color..ColorType$GT$$GT$4from17h48c483a11b2d5c57E.exit.thread6.i": ; preds = %46, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit - %.0.i1734 = phi i8 [ %.0.i17, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit ], [ 1, %46 ] + %.0.i1739 = phi i8 [ %.0.i17, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit ], [ 1, %46 ] br label %_ZN5image5color9ColorType13channel_count17h091181b88688e861E.exit 54: ; preds = %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit br label %_ZN5image5color9ColorType13channel_count17h091181b88688e861E.exit -_ZN5image5color9ColorType13channel_count17h091181b88688e861E.exit: ; preds = %46, %49, %50, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit, %53, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread35, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread38, %"_ZN102_$LT$image..color..ExtendedColorType$u20$as$u20$core..convert..From$LT$image..color..ColorType$GT$$GT$4from17h48c483a11b2d5c57E.exit.thread6.i", %54 - %.0.i1731 = phi i8 [ %.0.i17, %54 ], [ %.0.i1734, %"_ZN102_$LT$image..color..ExtendedColorType$u20$as$u20$core..convert..From$LT$image..color..ColorType$GT$$GT$4from17h48c483a11b2d5c57E.exit.thread6.i" ], [ 16, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread38 ], [ 8, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread35 ], [ %.0.i17, %53 ], [ %.0.i17, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit ], [ 6, %49 ], [ 12, %50 ], [ 3, %46 ] - %.0.i.i18 = phi i8 [ 2, %54 ], [ 1, %"_ZN102_$LT$image..color..ExtendedColorType$u20$as$u20$core..convert..From$LT$image..color..ColorType$GT$$GT$4from17h48c483a11b2d5c57E.exit.thread6.i" ], [ 4, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread38 ], [ 4, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread35 ], [ 4, %53 ], [ 3, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit ], [ 3, %49 ], [ 3, %50 ], [ 3, %46 ] +_ZN5image5color9ColorType13channel_count17h091181b88688e861E.exit: ; preds = %46, %49, %50, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread34, %"_ZN102_$LT$image..color..ExtendedColorType$u20$as$u20$core..convert..From$LT$image..color..ColorType$GT$$GT$4from17h48c483a11b2d5c57E.exit.thread6.i", %54 + %.0.i1731 = phi i8 [ %.0.i17, %54 ], [ %.0.i1739, %"_ZN102_$LT$image..color..ExtendedColorType$u20$as$u20$core..convert..From$LT$image..color..ColorType$GT$$GT$4from17h48c483a11b2d5c57E.exit.thread6.i" ], [ %.0.i1736, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread34 ], [ %.0.i17, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit ], [ 6, %49 ], [ 12, %50 ], [ 3, %46 ] + %.0.i.i18 = phi i8 [ 2, %54 ], [ 1, %"_ZN102_$LT$image..color..ExtendedColorType$u20$as$u20$core..convert..From$LT$image..color..ColorType$GT$$GT$4from17h48c483a11b2d5c57E.exit.thread6.i" ], [ 4, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit.thread34 ], [ 3, %_ZN5image5color9ColorType15bytes_per_pixel17hcff21ecdd81b7288E.exit ], [ 3, %49 ], [ 3, %50 ], [ 3, %46 ] %55 = udiv i8 %.0.i1731, %.0.i.i18 switch i8 %55, label %.invoke [ i8 1, label %_ZN4core4iter6traits8iterator8Iterator8for_each17h5af0a51e5559baefE.exit @@ -26409,7 +26405,7 @@ _ZN4core4iter6traits8iterator8Iterator8for_each17h5af0a51e5559baefE.exit: ; pred %64 = icmp eq i64 %61, 0 br i1 %64, label %_ZN4core4iter6traits8iterator8Iterator8for_each17h5af0a51e5559baefE.exit, label %"_ZN4core4iter6traits8iterator8Iterator8for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17he668c19e3c847e25E.exit.i.i" -65: ; preds = %_ZN4core4iter6traits8iterator8Iterator8for_each17h5af0a51e5559baefE.exit, %51 +65: ; preds = %_ZN4core4iter6traits8iterator8Iterator8for_each17h5af0a51e5559baefE.exit, %52 tail call void @"_ZN4core3ptr109drop_in_place$LT$png..decoder..Reader$LT$std..io..buffered..bufreader..BufReader$LT$std..fs..File$GT$$GT$$GT$17h9e00774c73443febE"(ptr noalias noundef nonnull align 8 dereferenceable(712) %38) ret void diff --git a/bench/image-rs/optimized/4srzh4wujeew249y.ll b/bench/image-rs/optimized/4srzh4wujeew249y.ll index d4ae85d7155..6c757dfad33 100644 --- a/bench/image-rs/optimized/4srzh4wujeew249y.ll +++ b/bench/image-rs/optimized/4srzh4wujeew249y.ll @@ -28893,29 +28893,10 @@ define noundef nonnull align 1 dereferenceable(2) ptr @_ZN5image6codecs3pnm6head ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define noundef zeroext i1 @_ZN5image6codecs3pnm6header10PnmSubtype15sample_encoding17h5fa31b12335d39e7E(i8 noundef %0, i8 %1) unnamed_addr #5 { - switch i8 %0, label %3 [ - i8 0, label %4 - i8 1, label %5 - i8 2, label %6 - i8 3, label %7 - ] - -3: ; preds = %2 - unreachable - -4: ; preds = %2 - br label %7 - -5: ; preds = %2 - br label %7 - -6: ; preds = %2 - br label %7 - -7: ; preds = %2, %6, %5, %4 - %.0 = phi i8 [ %1, %6 ], [ %1, %5 ], [ %1, %4 ], [ 0, %2 ] - %8 = trunc i8 %.0 to i1 - ret i1 %8 + %switch = icmp ult i8 %0, 3 + %3 = trunc i8 %1 to i1 + %4 = select i1 %switch, i1 %3, i1 false + ret i1 %4 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable @@ -28962,8 +28943,8 @@ define noundef i32 @_ZN5image6codecs3pnm6header9PnmHeader5width17h5911adb374d31d %2 = getelementptr inbounds i8, ptr %0, i64 24 %3 = load i64, ptr %2, align 8, !range !3345, !noundef !9 %switch.not = icmp ult i64 %3, -9223372036854775801 - %spec.select = select i1 %switch.not, i64 52, i64 36 - %4 = getelementptr inbounds i8, ptr %0, i64 %spec.select + %. = select i1 %switch.not, i64 52, i64 36 + %4 = getelementptr inbounds i8, ptr %0, i64 %. %.0 = load i32, ptr %4, align 4, !noundef !9 ret i32 %.0 } @@ -28973,8 +28954,8 @@ define noundef i32 @_ZN5image6codecs3pnm6header9PnmHeader6height17h6c98b24a25108 %2 = getelementptr inbounds i8, ptr %0, i64 24 %3 = load i64, ptr %2, align 8, !range !3345, !noundef !9 %switch.not = icmp ult i64 %3, -9223372036854775801 - %spec.select = select i1 %switch.not, i64 48, i64 32 - %4 = getelementptr inbounds i8, ptr %0, i64 %spec.select + %. = select i1 %switch.not, i64 48, i64 32 + %4 = getelementptr inbounds i8, ptr %0, i64 %. %.0 = load i32, ptr %4, align 8, !noundef !9 ret i32 %.0 } diff --git a/bench/influxdb-rs/optimized/168qliixz1k1vi84.ll b/bench/influxdb-rs/optimized/168qliixz1k1vi84.ll index 1be8a714c6f..7f69570f281 100644 --- a/bench/influxdb-rs/optimized/168qliixz1k1vi84.ll +++ b/bench/influxdb-rs/optimized/168qliixz1k1vi84.ll @@ -4748,14 +4748,14 @@ define internal { ptr, ptr } @"_ZN58_$LT$object_store..Error$u20$as$u20$core..er switch i64 %5, label %6 [ i64 0, label %7 i64 1, label %12 - i64 2, label %41 + i64 2, label %40 i64 3, label %17 i64 4, label %19 i64 5, label %24 i64 6, label %29 i64 7, label %34 i64 8, label %39 - i64 9, label %40 + i64 9, label %39 ] 6: ; preds = %1 @@ -4766,59 +4766,56 @@ define internal { ptr, ptr } @"_ZN58_$LT$object_store..Error$u20$as$u20$core..er %9 = load ptr, ptr %8, align 8, !nonnull !4, !align !9, !noundef !4 %10 = getelementptr inbounds i8, ptr %0, i64 32 %11 = load ptr, ptr %10, align 8, !nonnull !4, !align !25, !noundef !4 - br label %41 + br label %40 12: ; preds = %1 %13 = getelementptr inbounds i8, ptr %0, i64 32 %14 = load ptr, ptr %13, align 8, !nonnull !4, !align !9, !noundef !4 %15 = getelementptr inbounds i8, ptr %0, i64 40 %16 = load ptr, ptr %15, align 8, !nonnull !4, !align !25, !noundef !4 - br label %41 + br label %40 17: ; preds = %1 %18 = getelementptr inbounds i8, ptr %0, i64 8 - br label %41 + br label %40 19: ; preds = %1 %20 = getelementptr inbounds i8, ptr %0, i64 8 %21 = load ptr, ptr %20, align 8, !nonnull !4, !align !9, !noundef !4 %22 = getelementptr inbounds i8, ptr %0, i64 16 %23 = load ptr, ptr %22, align 8, !nonnull !4, !align !25, !noundef !4 - br label %41 + br label %40 24: ; preds = %1 %25 = getelementptr inbounds i8, ptr %0, i64 32 %26 = load ptr, ptr %25, align 8, !nonnull !4, !align !9, !noundef !4 %27 = getelementptr inbounds i8, ptr %0, i64 40 %28 = load ptr, ptr %27, align 8, !nonnull !4, !align !25, !noundef !4 - br label %41 + br label %40 29: ; preds = %1 %30 = getelementptr inbounds i8, ptr %0, i64 32 %31 = load ptr, ptr %30, align 8, !nonnull !4, !align !9, !noundef !4 %32 = getelementptr inbounds i8, ptr %0, i64 40 %33 = load ptr, ptr %32, align 8, !nonnull !4, !align !25, !noundef !4 - br label %41 + br label %40 34: ; preds = %1 %35 = getelementptr inbounds i8, ptr %0, i64 32 %36 = load ptr, ptr %35, align 8, !nonnull !4, !align !9, !noundef !4 %37 = getelementptr inbounds i8, ptr %0, i64 40 %38 = load ptr, ptr %37, align 8, !nonnull !4, !align !25, !noundef !4 - br label %41 + br label %40 -39: ; preds = %1 - br label %41 - -40: ; preds = %1 - br label %41 +39: ; preds = %1, %1 + br label %40 -41: ; preds = %1, %40, %39, %34, %29, %24, %19, %17, %12, %7 - %.sroa.11.0 = phi ptr [ undef, %40 ], [ undef, %39 ], [ %38, %34 ], [ %33, %29 ], [ %28, %24 ], [ %23, %19 ], [ @anon.45d932603a0101fa3cd25df63387eec5.42, %17 ], [ %16, %12 ], [ %11, %7 ], [ @anon.45d932603a0101fa3cd25df63387eec5.40, %1 ] - %.sroa.0.0 = phi ptr [ null, %40 ], [ null, %39 ], [ %36, %34 ], [ %31, %29 ], [ %26, %24 ], [ %21, %19 ], [ %18, %17 ], [ %14, %12 ], [ %9, %7 ], [ %0, %1 ] - %42 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 - %43 = insertvalue { ptr, ptr } %42, ptr %.sroa.11.0, 1 - ret { ptr, ptr } %43 +40: ; preds = %1, %39, %34, %29, %24, %19, %17, %12, %7 + %.sroa.11.0 = phi ptr [ undef, %39 ], [ %38, %34 ], [ %33, %29 ], [ %28, %24 ], [ %23, %19 ], [ @anon.45d932603a0101fa3cd25df63387eec5.42, %17 ], [ %16, %12 ], [ %11, %7 ], [ @anon.45d932603a0101fa3cd25df63387eec5.40, %1 ] + %.sroa.0.0 = phi ptr [ null, %39 ], [ %36, %34 ], [ %31, %29 ], [ %26, %24 ], [ %21, %19 ], [ %18, %17 ], [ %14, %12 ], [ %9, %7 ], [ %0, %1 ] + %41 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 + %42 = insertvalue { ptr, ptr } %41, ptr %.sroa.11.0, 1 + ret { ptr, ptr } %42 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable @@ -4830,14 +4827,14 @@ define internal { ptr, ptr } @"_ZN58_$LT$object_store..Error$u20$as$u20$core..er switch i64 %5, label %6 [ i64 0, label %7 i64 1, label %12 - i64 2, label %41 + i64 2, label %40 i64 3, label %17 i64 4, label %19 i64 5, label %24 i64 6, label %29 i64 7, label %34 i64 8, label %39 - i64 9, label %40 + i64 9, label %39 ] 6: ; preds = %1 @@ -4848,59 +4845,56 @@ define internal { ptr, ptr } @"_ZN58_$LT$object_store..Error$u20$as$u20$core..er %9 = load ptr, ptr %8, align 8, !nonnull !4, !align !9, !noundef !4 %10 = getelementptr inbounds i8, ptr %0, i64 32 %11 = load ptr, ptr %10, align 8, !nonnull !4, !align !25, !noundef !4 - br label %41 + br label %40 12: ; preds = %1 %13 = getelementptr inbounds i8, ptr %0, i64 32 %14 = load ptr, ptr %13, align 8, !nonnull !4, !align !9, !noundef !4 %15 = getelementptr inbounds i8, ptr %0, i64 40 %16 = load ptr, ptr %15, align 8, !nonnull !4, !align !25, !noundef !4 - br label %41 + br label %40 17: ; preds = %1 %18 = getelementptr inbounds i8, ptr %0, i64 8 - br label %41 + br label %40 19: ; preds = %1 %20 = getelementptr inbounds i8, ptr %0, i64 8 %21 = load ptr, ptr %20, align 8, !nonnull !4, !align !9, !noundef !4 %22 = getelementptr inbounds i8, ptr %0, i64 16 %23 = load ptr, ptr %22, align 8, !nonnull !4, !align !25, !noundef !4 - br label %41 + br label %40 24: ; preds = %1 %25 = getelementptr inbounds i8, ptr %0, i64 32 %26 = load ptr, ptr %25, align 8, !nonnull !4, !align !9, !noundef !4 %27 = getelementptr inbounds i8, ptr %0, i64 40 %28 = load ptr, ptr %27, align 8, !nonnull !4, !align !25, !noundef !4 - br label %41 + br label %40 29: ; preds = %1 %30 = getelementptr inbounds i8, ptr %0, i64 32 %31 = load ptr, ptr %30, align 8, !nonnull !4, !align !9, !noundef !4 %32 = getelementptr inbounds i8, ptr %0, i64 40 %33 = load ptr, ptr %32, align 8, !nonnull !4, !align !25, !noundef !4 - br label %41 + br label %40 34: ; preds = %1 %35 = getelementptr inbounds i8, ptr %0, i64 32 %36 = load ptr, ptr %35, align 8, !nonnull !4, !align !9, !noundef !4 %37 = getelementptr inbounds i8, ptr %0, i64 40 %38 = load ptr, ptr %37, align 8, !nonnull !4, !align !25, !noundef !4 - br label %41 + br label %40 -39: ; preds = %1 - br label %41 +39: ; preds = %1, %1 + br label %40 -40: ; preds = %1 - br label %41 - -41: ; preds = %1, %40, %39, %34, %29, %24, %19, %17, %12, %7 - %.sroa.11.0 = phi ptr [ undef, %40 ], [ undef, %39 ], [ %38, %34 ], [ %33, %29 ], [ %28, %24 ], [ %23, %19 ], [ @anon.45d932603a0101fa3cd25df63387eec5.42, %17 ], [ %16, %12 ], [ %11, %7 ], [ @anon.45d932603a0101fa3cd25df63387eec5.40, %1 ] - %.sroa.0.0 = phi ptr [ null, %40 ], [ null, %39 ], [ %36, %34 ], [ %31, %29 ], [ %26, %24 ], [ %21, %19 ], [ %18, %17 ], [ %14, %12 ], [ %9, %7 ], [ %0, %1 ] - %42 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 - %43 = insertvalue { ptr, ptr } %42, ptr %.sroa.11.0, 1 - ret { ptr, ptr } %43 +40: ; preds = %1, %39, %34, %29, %24, %19, %17, %12, %7 + %.sroa.11.0 = phi ptr [ undef, %39 ], [ %38, %34 ], [ %33, %29 ], [ %28, %24 ], [ %23, %19 ], [ @anon.45d932603a0101fa3cd25df63387eec5.42, %17 ], [ %16, %12 ], [ %11, %7 ], [ @anon.45d932603a0101fa3cd25df63387eec5.40, %1 ] + %.sroa.0.0 = phi ptr [ null, %39 ], [ %36, %34 ], [ %31, %29 ], [ %26, %24 ], [ %21, %19 ], [ %18, %17 ], [ %14, %12 ], [ %9, %7 ], [ %0, %1 ] + %41 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 + %42 = insertvalue { ptr, ptr } %41, ptr %.sroa.11.0, 1 + ret { ptr, ptr } %42 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable diff --git a/bench/influxdb-rs/optimized/380gcqze52ow6205.ll b/bench/influxdb-rs/optimized/380gcqze52ow6205.ll index 1d2ecff3eec..2706bdec674 100644 --- a/bench/influxdb-rs/optimized/380gcqze52ow6205.ll +++ b/bench/influxdb-rs/optimized/380gcqze52ow6205.ll @@ -4865,14 +4865,14 @@ define internal { ptr, ptr } @"_ZN58_$LT$object_store..Error$u20$as$u20$core..er switch i64 %5, label %6 [ i64 0, label %7 i64 1, label %12 - i64 2, label %41 + i64 2, label %40 i64 3, label %17 i64 4, label %19 i64 5, label %24 i64 6, label %29 i64 7, label %34 i64 8, label %39 - i64 9, label %40 + i64 9, label %39 ] 6: ; preds = %1 @@ -4883,59 +4883,56 @@ define internal { ptr, ptr } @"_ZN58_$LT$object_store..Error$u20$as$u20$core..er %9 = load ptr, ptr %8, align 8, !nonnull !4, !align !1034, !noundef !4 %10 = getelementptr inbounds i8, ptr %0, i64 32 %11 = load ptr, ptr %10, align 8, !nonnull !4, !align !18, !noundef !4 - br label %41 + br label %40 12: ; preds = %1 %13 = getelementptr inbounds i8, ptr %0, i64 32 %14 = load ptr, ptr %13, align 8, !nonnull !4, !align !1034, !noundef !4 %15 = getelementptr inbounds i8, ptr %0, i64 40 %16 = load ptr, ptr %15, align 8, !nonnull !4, !align !18, !noundef !4 - br label %41 + br label %40 17: ; preds = %1 %18 = getelementptr inbounds i8, ptr %0, i64 8 - br label %41 + br label %40 19: ; preds = %1 %20 = getelementptr inbounds i8, ptr %0, i64 8 %21 = load ptr, ptr %20, align 8, !nonnull !4, !align !1034, !noundef !4 %22 = getelementptr inbounds i8, ptr %0, i64 16 %23 = load ptr, ptr %22, align 8, !nonnull !4, !align !18, !noundef !4 - br label %41 + br label %40 24: ; preds = %1 %25 = getelementptr inbounds i8, ptr %0, i64 32 %26 = load ptr, ptr %25, align 8, !nonnull !4, !align !1034, !noundef !4 %27 = getelementptr inbounds i8, ptr %0, i64 40 %28 = load ptr, ptr %27, align 8, !nonnull !4, !align !18, !noundef !4 - br label %41 + br label %40 29: ; preds = %1 %30 = getelementptr inbounds i8, ptr %0, i64 32 %31 = load ptr, ptr %30, align 8, !nonnull !4, !align !1034, !noundef !4 %32 = getelementptr inbounds i8, ptr %0, i64 40 %33 = load ptr, ptr %32, align 8, !nonnull !4, !align !18, !noundef !4 - br label %41 + br label %40 34: ; preds = %1 %35 = getelementptr inbounds i8, ptr %0, i64 32 %36 = load ptr, ptr %35, align 8, !nonnull !4, !align !1034, !noundef !4 %37 = getelementptr inbounds i8, ptr %0, i64 40 %38 = load ptr, ptr %37, align 8, !nonnull !4, !align !18, !noundef !4 - br label %41 - -39: ; preds = %1 - br label %41 + br label %40 -40: ; preds = %1 - br label %41 +39: ; preds = %1, %1 + br label %40 -41: ; preds = %1, %40, %39, %34, %29, %24, %19, %17, %12, %7 - %.sroa.11.0 = phi ptr [ undef, %40 ], [ undef, %39 ], [ %38, %34 ], [ %33, %29 ], [ %28, %24 ], [ %23, %19 ], [ @anon.7463256388310ca230f95e7a445731de.78, %17 ], [ %16, %12 ], [ %11, %7 ], [ @anon.7463256388310ca230f95e7a445731de.76, %1 ] - %.sroa.0.0 = phi ptr [ null, %40 ], [ null, %39 ], [ %36, %34 ], [ %31, %29 ], [ %26, %24 ], [ %21, %19 ], [ %18, %17 ], [ %14, %12 ], [ %9, %7 ], [ %0, %1 ] - %42 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 - %43 = insertvalue { ptr, ptr } %42, ptr %.sroa.11.0, 1 - ret { ptr, ptr } %43 +40: ; preds = %1, %39, %34, %29, %24, %19, %17, %12, %7 + %.sroa.11.0 = phi ptr [ undef, %39 ], [ %38, %34 ], [ %33, %29 ], [ %28, %24 ], [ %23, %19 ], [ @anon.7463256388310ca230f95e7a445731de.78, %17 ], [ %16, %12 ], [ %11, %7 ], [ @anon.7463256388310ca230f95e7a445731de.76, %1 ] + %.sroa.0.0 = phi ptr [ null, %39 ], [ %36, %34 ], [ %31, %29 ], [ %26, %24 ], [ %21, %19 ], [ %18, %17 ], [ %14, %12 ], [ %9, %7 ], [ %0, %1 ] + %41 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 + %42 = insertvalue { ptr, ptr } %41, ptr %.sroa.11.0, 1 + ret { ptr, ptr } %42 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable @@ -4947,14 +4944,14 @@ define internal { ptr, ptr } @"_ZN58_$LT$object_store..Error$u20$as$u20$core..er switch i64 %5, label %6 [ i64 0, label %7 i64 1, label %12 - i64 2, label %41 + i64 2, label %40 i64 3, label %17 i64 4, label %19 i64 5, label %24 i64 6, label %29 i64 7, label %34 i64 8, label %39 - i64 9, label %40 + i64 9, label %39 ] 6: ; preds = %1 @@ -4965,59 +4962,56 @@ define internal { ptr, ptr } @"_ZN58_$LT$object_store..Error$u20$as$u20$core..er %9 = load ptr, ptr %8, align 8, !nonnull !4, !align !1034, !noundef !4 %10 = getelementptr inbounds i8, ptr %0, i64 32 %11 = load ptr, ptr %10, align 8, !nonnull !4, !align !18, !noundef !4 - br label %41 + br label %40 12: ; preds = %1 %13 = getelementptr inbounds i8, ptr %0, i64 32 %14 = load ptr, ptr %13, align 8, !nonnull !4, !align !1034, !noundef !4 %15 = getelementptr inbounds i8, ptr %0, i64 40 %16 = load ptr, ptr %15, align 8, !nonnull !4, !align !18, !noundef !4 - br label %41 + br label %40 17: ; preds = %1 %18 = getelementptr inbounds i8, ptr %0, i64 8 - br label %41 + br label %40 19: ; preds = %1 %20 = getelementptr inbounds i8, ptr %0, i64 8 %21 = load ptr, ptr %20, align 8, !nonnull !4, !align !1034, !noundef !4 %22 = getelementptr inbounds i8, ptr %0, i64 16 %23 = load ptr, ptr %22, align 8, !nonnull !4, !align !18, !noundef !4 - br label %41 + br label %40 24: ; preds = %1 %25 = getelementptr inbounds i8, ptr %0, i64 32 %26 = load ptr, ptr %25, align 8, !nonnull !4, !align !1034, !noundef !4 %27 = getelementptr inbounds i8, ptr %0, i64 40 %28 = load ptr, ptr %27, align 8, !nonnull !4, !align !18, !noundef !4 - br label %41 + br label %40 29: ; preds = %1 %30 = getelementptr inbounds i8, ptr %0, i64 32 %31 = load ptr, ptr %30, align 8, !nonnull !4, !align !1034, !noundef !4 %32 = getelementptr inbounds i8, ptr %0, i64 40 %33 = load ptr, ptr %32, align 8, !nonnull !4, !align !18, !noundef !4 - br label %41 + br label %40 34: ; preds = %1 %35 = getelementptr inbounds i8, ptr %0, i64 32 %36 = load ptr, ptr %35, align 8, !nonnull !4, !align !1034, !noundef !4 %37 = getelementptr inbounds i8, ptr %0, i64 40 %38 = load ptr, ptr %37, align 8, !nonnull !4, !align !18, !noundef !4 - br label %41 - -39: ; preds = %1 - br label %41 + br label %40 -40: ; preds = %1 - br label %41 +39: ; preds = %1, %1 + br label %40 -41: ; preds = %1, %40, %39, %34, %29, %24, %19, %17, %12, %7 - %.sroa.11.0 = phi ptr [ undef, %40 ], [ undef, %39 ], [ %38, %34 ], [ %33, %29 ], [ %28, %24 ], [ %23, %19 ], [ @anon.7463256388310ca230f95e7a445731de.78, %17 ], [ %16, %12 ], [ %11, %7 ], [ @anon.7463256388310ca230f95e7a445731de.76, %1 ] - %.sroa.0.0 = phi ptr [ null, %40 ], [ null, %39 ], [ %36, %34 ], [ %31, %29 ], [ %26, %24 ], [ %21, %19 ], [ %18, %17 ], [ %14, %12 ], [ %9, %7 ], [ %0, %1 ] - %42 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 - %43 = insertvalue { ptr, ptr } %42, ptr %.sroa.11.0, 1 - ret { ptr, ptr } %43 +40: ; preds = %1, %39, %34, %29, %24, %19, %17, %12, %7 + %.sroa.11.0 = phi ptr [ undef, %39 ], [ %38, %34 ], [ %33, %29 ], [ %28, %24 ], [ %23, %19 ], [ @anon.7463256388310ca230f95e7a445731de.78, %17 ], [ %16, %12 ], [ %11, %7 ], [ @anon.7463256388310ca230f95e7a445731de.76, %1 ] + %.sroa.0.0 = phi ptr [ null, %39 ], [ %36, %34 ], [ %31, %29 ], [ %26, %24 ], [ %21, %19 ], [ %18, %17 ], [ %14, %12 ], [ %9, %7 ], [ %0, %1 ] + %41 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 + %42 = insertvalue { ptr, ptr } %41, ptr %.sroa.11.0, 1 + ret { ptr, ptr } %42 } ; Function Attrs: inlinehint nonlazybind uwtable @@ -10529,8 +10523,8 @@ define { ptr, ptr } @"_ZN81_$LT$influxdb3_server..http..AuthorizationError$u20$a %2 = load i8, ptr %0, align 1, !range !292, !noundef !4 %switch = icmp samesign ult i8 %2, 2 %3 = getelementptr inbounds i8, ptr %0, i64 1 - %spec.select = select i1 %switch, ptr null, ptr %3 - %4 = insertvalue { ptr, ptr } poison, ptr %spec.select, 0 + %.sroa.0.0 = select i1 %switch, ptr null, ptr %3 + %4 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 %5 = insertvalue { ptr, ptr } %4, ptr @anon.7463256388310ca230f95e7a445731de.265, 1 ret { ptr, ptr } %5 } diff --git a/bench/just-rs/optimized/2sblcsgax6v4zfcc.ll b/bench/just-rs/optimized/2sblcsgax6v4zfcc.ll index 1f6b0e0a09c..34a4a1d3748 100644 --- a/bench/just-rs/optimized/2sblcsgax6v4zfcc.ll +++ b/bench/just-rs/optimized/2sblcsgax6v4zfcc.ll @@ -16991,8 +16991,8 @@ define { ptr, ptr } @"_ZN70_$LT$just..config_error..ConfigError$u20$as$u20$core. %2 = load i64, ptr %0, align 8, !range !2619, !noundef !21 %switch = icmp eq i64 %2, -9223372036854775808 %3 = getelementptr inbounds i8, ptr %0, i64 8 - %spec.select = select i1 %switch, ptr %3, ptr null - %4 = insertvalue { ptr, ptr } poison, ptr %spec.select, 0 + %.sroa.0.0 = select i1 %switch, ptr %3, ptr null + %4 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 %5 = insertvalue { ptr, ptr } %4, ptr @anon.7c6f7af04c557118a051d24cf1a7517f.239, 1 ret { ptr, ptr } %5 } @@ -17002,8 +17002,8 @@ define { ptr, ptr } @"_ZN70_$LT$just..config_error..ConfigError$u20$as$u20$core. %2 = load i64, ptr %0, align 8, !range !2619, !noundef !21 %switch = icmp eq i64 %2, -9223372036854775808 %3 = getelementptr inbounds i8, ptr %0, i64 8 - %spec.select = select i1 %switch, ptr %3, ptr null - %4 = insertvalue { ptr, ptr } poison, ptr %spec.select, 0 + %.sroa.0.0 = select i1 %switch, ptr %3, ptr null + %4 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 %5 = insertvalue { ptr, ptr } %4, ptr @anon.7c6f7af04c557118a051d24cf1a7517f.239, 1 ret { ptr, ptr } %5 } diff --git a/bench/lief/optimized/psa_crypto_cipher.c.ll b/bench/lief/optimized/psa_crypto_cipher.c.ll index 395b8d562b6..3a88ce70a02 100644 --- a/bench/lief/optimized/psa_crypto_cipher.c.ll +++ b/bench/lief/optimized/psa_crypto_cipher.c.ll @@ -14,103 +14,100 @@ define hidden ptr @mbedtls_cipher_info_from_psa(i32 noundef %0, i16 noundef zero %7 = and i32 %0, -2050981889 %spec.select = select i1 %6, i32 %7, i32 %0 %8 = and i32 %spec.select, 2130706432 - switch i32 %8, label %20 [ + switch i32 %8, label %19 [ i32 67108864, label %9 i32 83886080, label %9 ] 9: ; preds = %4, %4 - switch i32 %spec.select, label %34 [ - i32 75497728, label %22 + switch i32 %spec.select, label %33 [ + i32 75497728, label %21 i32 79695872, label %10 i32 79696128, label %11 i32 79696384, label %12 i32 71320576, label %13 i32 71319552, label %14 - i32 71319808, label %15 - i32 79696640, label %16 - i32 88080640, label %17 - i32 88080896, label %18 - i32 83887360, label %19 + i32 71319808, label %14 + i32 79696640, label %15 + i32 88080640, label %16 + i32 88080896, label %17 + i32 83887360, label %18 ] 10: ; preds = %9 - br label %22 + br label %21 11: ; preds = %9 - br label %22 + br label %21 12: ; preds = %9 - br label %22 + br label %21 13: ; preds = %9 - br label %22 + br label %21 -14: ; preds = %9 - br label %22 +14: ; preds = %9, %9 + br label %21 15: ; preds = %9 - br label %22 + br label %21 16: ; preds = %9 - br label %22 + br label %21 17: ; preds = %9 - br label %22 + br label %21 18: ; preds = %9 - br label %22 - -19: ; preds = %9 - br label %22 - -20: ; preds = %4 - %21 = icmp eq i32 %spec.select, 62915072 - br i1 %21, label %22, label %34 - -22: ; preds = %20, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18, %19 - %.015 = phi i32 [ 11, %19 ], [ 6, %18 ], [ 8, %17 ], [ 9, %16 ], [ 2, %15 ], [ 2, %14 ], [ 1, %13 ], [ 4, %12 ], [ 3, %11 ], [ 5, %10 ], [ 7, %9 ], [ 1, %20 ] - switch i16 %1, label %34 [ - i16 9216, label %29 - i16 9222, label %23 - i16 8961, label %24 - i16 9219, label %27 - i16 8196, label %28 + br label %21 + +19: ; preds = %4 + %20 = icmp eq i32 %spec.select, 62915072 + br i1 %20, label %21, label %33 + +21: ; preds = %19, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18 + %.015 = phi i32 [ 11, %18 ], [ 6, %17 ], [ 8, %16 ], [ 9, %15 ], [ 2, %14 ], [ 1, %13 ], [ 4, %12 ], [ 3, %11 ], [ 5, %10 ], [ 7, %9 ], [ 1, %19 ] + switch i16 %1, label %33 [ + i16 9216, label %28 + i16 9222, label %22 + i16 8961, label %23 + i16 9219, label %26 + i16 8196, label %27 ] -23: ; preds = %22 - br label %29 +22: ; preds = %21 + br label %28 -24: ; preds = %22 - %25 = icmp eq i64 %2, 64 - %. = select i1 %25, i32 3, i32 4 - %26 = icmp eq i64 %2, 128 - %spec.store.select = select i1 %26, i64 192, i64 %2 - br label %29 +23: ; preds = %21 + %24 = icmp eq i64 %2, 64 + %. = select i1 %24, i32 3, i32 4 + %25 = icmp eq i64 %2, 128 + %spec.store.select = select i1 %25, i64 192, i64 %2 + br label %28 -27: ; preds = %22 - br label %29 +26: ; preds = %21 + br label %28 -28: ; preds = %22 - br label %29 +27: ; preds = %21 + br label %28 -29: ; preds = %22, %28, %27, %24, %23 - %.017 = phi i64 [ %2, %28 ], [ %2, %27 ], [ %spec.store.select, %24 ], [ %2, %23 ], [ %2, %22 ] - %.0 = phi i32 [ 7, %28 ], [ 5, %27 ], [ %., %24 ], [ 6, %23 ], [ 2, %22 ] +28: ; preds = %21, %27, %26, %23, %22 + %.017 = phi i64 [ %2, %27 ], [ %2, %26 ], [ %spec.store.select, %23 ], [ %2, %22 ], [ %2, %21 ] + %.0 = phi i32 [ 7, %27 ], [ 5, %26 ], [ %., %23 ], [ 6, %22 ], [ 2, %21 ] %.not = icmp eq ptr %3, null - br i1 %.not, label %31, label %30 + br i1 %.not, label %30, label %29 -30: ; preds = %29 +29: ; preds = %28 store i32 %.0, ptr %3, align 4 - br label %31 + br label %30 -31: ; preds = %30, %29 - %32 = trunc i64 %.017 to i32 - %33 = tail call ptr @mbedtls_cipher_info_from_values(i32 noundef %.0, i32 noundef %32, i32 noundef %.015) #6 - br label %34 +30: ; preds = %29, %28 + %31 = trunc i64 %.017 to i32 + %32 = tail call ptr @mbedtls_cipher_info_from_values(i32 noundef %.0, i32 noundef %31, i32 noundef %.015) #6 + br label %33 -34: ; preds = %22, %20, %9, %31 - %.016 = phi ptr [ %33, %31 ], [ null, %9 ], [ null, %20 ], [ null, %22 ] +33: ; preds = %21, %19, %9, %30 + %.016 = phi ptr [ %32, %30 ], [ null, %9 ], [ null, %19 ], [ null, %21 ] ret ptr %.016 } diff --git a/bench/lief/optimized/psa_crypto_mac.c.ll b/bench/lief/optimized/psa_crypto_mac.c.ll index 76992b3e567..d1535df0db5 100644 --- a/bench/lief/optimized/psa_crypto_mac.c.ll +++ b/bench/lief/optimized/psa_crypto_mac.c.ll @@ -133,66 +133,75 @@ mac_init.exit: ; preds = %12 call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %7) store i64 %3, ptr %6, align 8 switch i32 %32, label %33 [ - i32 33554435, label %.thread84.thread.i + i32 33554435, label %.thread.thread.i i32 33554436, label %.fold.split81.i i32 33554437, label %.fold.split81.i - i32 33554440, label %.thread84.thread.i - i32 33554441, label %.thread84.thread.i - i32 33554442, label %.fold.split80.i + i32 33554440, label %.fold.split.i + i32 33554441, label %.fold.split66.i + i32 33554442, label %.fold.split67.i i32 33554443, label %.fold.split80.i - i32 33554444, label %.fold.split80.i - i32 33554445, label %.fold.split80.i - i32 33554448, label %.thread91.i - i32 33554449, label %.thread91.i - i32 33554450, label %.fold.split79.i + i32 33554444, label %.fold.split.i + i32 33554445, label %.fold.split66.i + i32 33554448, label %.fold.split.i + i32 33554449, label %.fold.split66.i + i32 33554450, label %.fold.split67.i ] 33: ; preds = %30 %34 = icmp eq i32 %32, 33554451 %35 = select i1 %34, i64 64, i64 0 - br label %.fold.split81.i - -.fold.split81.i: ; preds = %33, %30, %30 - %36 = phi i64 [ %35, %33 ], [ 20, %30 ], [ 20, %30 ] - switch i32 %32, label %.thread84.i [ - i32 33554441, label %.thread84.thread.i - i32 33554440, label %.thread84.thread.i - i32 33554437, label %.thread84.thread.i - i32 33554436, label %.thread84.thread.i - i32 33554435, label %.thread84.thread.i + br label %.fold.split.i + +.fold.split66.i: ; preds = %30, %30, %30 + br label %.fold.split.i + +.fold.split67.i: ; preds = %30, %30 + br label %.fold.split.i + +.fold.split81.i: ; preds = %30, %30 + br label %.fold.split.i + +.fold.split.i: ; preds = %.fold.split81.i, %.fold.split67.i, %.fold.split66.i, %33, %30, %30, %30 + %36 = phi i64 [ %35, %33 ], [ 32, %.fold.split66.i ], [ 48, %.fold.split67.i ], [ 20, %.fold.split81.i ], [ 28, %30 ], [ 28, %30 ], [ 28, %30 ] + switch i32 %32, label %.thread.i [ + i32 33554441, label %.thread.thread.i + i32 33554440, label %.thread.thread.i + i32 33554437, label %.thread.thread.i + i32 33554436, label %.thread.thread.i + i32 33554435, label %.thread.thread.i i32 33554442, label %.fold.split80.i i32 33554443, label %.fold.split80.i i32 33554444, label %.fold.split80.i i32 33554445, label %.fold.split80.i - i32 33554448, label %.thread91.i - i32 33554449, label %.thread91.i + i32 33554448, label %.thread83.i + i32 33554449, label %.thread83.i i32 33554450, label %.fold.split79.i ] -.fold.split79.i: ; preds = %.fold.split81.i, %30 - br label %.thread84.thread.i +.fold.split79.i: ; preds = %.fold.split.i + br label %.thread.thread.i -.fold.split80.i: ; preds = %.fold.split81.i, %.fold.split81.i, %.fold.split81.i, %.fold.split81.i, %30, %30, %30, %30 - br label %.thread84.thread.i +.fold.split80.i: ; preds = %.fold.split.i, %.fold.split.i, %.fold.split.i, %.fold.split.i, %30 + br label %.thread.thread.i -.thread91.i: ; preds = %.fold.split81.i, %.fold.split81.i, %30, %30 +.thread83.i: ; preds = %.fold.split.i, %.fold.split.i store i32 %32, ptr %31, align 8 br label %psa_hmac_setup_internal.exit -.thread84.thread.i: ; preds = %.fold.split80.i, %.fold.split79.i, %.fold.split81.i, %.fold.split81.i, %.fold.split81.i, %.fold.split81.i, %.fold.split81.i, %30, %30, %30 - %.ph102.i = phi i64 [ 64, %30 ], [ 128, %.fold.split80.i ], [ 64, %.fold.split81.i ], [ 64, %.fold.split81.i ], [ 64, %.fold.split81.i ], [ 64, %.fold.split81.i ], [ 104, %.fold.split79.i ], [ 64, %.fold.split81.i ], [ 64, %30 ], [ 64, %30 ] +.thread.thread.i: ; preds = %.fold.split80.i, %.fold.split79.i, %.fold.split.i, %.fold.split.i, %.fold.split.i, %.fold.split.i, %.fold.split.i, %30 + %.ph94.i = phi i64 [ 64, %30 ], [ 128, %.fold.split80.i ], [ 64, %.fold.split.i ], [ 64, %.fold.split.i ], [ 64, %.fold.split.i ], [ 64, %.fold.split.i ], [ 104, %.fold.split79.i ], [ 64, %.fold.split.i ] store i32 %32, ptr %31, align 8 br label %40 -.thread84.i: ; preds = %.fold.split81.i +.thread.i: ; preds = %.fold.split.i %37 = icmp eq i32 %32, 33554451 %38 = select i1 %37, i64 72, i64 0 store i32 %32, ptr %31, align 8 %39 = icmp samesign ult i64 %38, %36 br i1 %39, label %psa_hmac_setup_internal.exit, label %40 -40: ; preds = %.thread84.i, %.thread84.thread.i - %41 = phi i64 [ %.ph102.i, %.thread84.thread.i ], [ %38, %.thread84.i ] +40: ; preds = %.thread.i, %.thread.thread.i + %41 = phi i64 [ %.ph94.i, %.thread.thread.i ], [ %38, %.thread.i ] %42 = icmp ugt i64 %3, %41 br i1 %42, label %43, label %45 @@ -203,34 +212,34 @@ mac_init.exit: ; preds = %12 45: ; preds = %40 %.not.i21 = icmp eq i64 %3, 0 - br i1 %.not.i21, label %._crit_edge.thread.i, label %.thread105.i + br i1 %.not.i21, label %._crit_edge.thread.i, label %.thread98.i -.thread105.i: ; preds = %45 +.thread98.i: ; preds = %45 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 16 %7, ptr align 1 %2, i64 %3, i1 false) br label %.lr.ph.preheader.i 46: ; preds = %43 %.pre.i = load i64, ptr %6, align 8 - %.not98.i = icmp eq i64 %.pre.i, 0 - br i1 %.not98.i, label %._crit_edge.thread.i, label %.lr.ph.preheader.i + %.not90.i = icmp eq i64 %.pre.i, 0 + br i1 %.not90.i, label %._crit_edge.thread.i, label %.lr.ph.preheader.i -.lr.ph.preheader.i: ; preds = %46, %.thread105.i - %47 = phi i64 [ %3, %.thread105.i ], [ %.pre.i, %46 ] +.lr.ph.preheader.i: ; preds = %46, %.thread98.i + %47 = phi i64 [ %3, %.thread98.i ], [ %.pre.i, %46 ] br label %.lr.ph.i .lr.ph.i: ; preds = %.lr.ph.i, %.lr.ph.preheader.i - %.05593.i = phi i64 [ %51, %.lr.ph.i ], [ 0, %.lr.ph.preheader.i ] - %48 = getelementptr inbounds [128 x i8], ptr %7, i64 0, i64 %.05593.i + %.05585.i = phi i64 [ %51, %.lr.ph.i ], [ 0, %.lr.ph.preheader.i ] + %48 = getelementptr inbounds [128 x i8], ptr %7, i64 0, i64 %.05585.i %49 = load i8, ptr %48, align 1 %50 = xor i8 %49, 54 store i8 %50, ptr %48, align 1 - %51 = add nuw i64 %.05593.i, 1 + %51 = add nuw i64 %.05585.i, 1 %exitcond.not.i = icmp eq i64 %51, %47 br i1 %exitcond.not.i, label %._crit_edge.i22, label %.lr.ph.i, !llvm.loop !4 ._crit_edge.thread.i: ; preds = %46, %45 call void @llvm.memset.p0.i64(ptr nonnull align 16 %7, i8 54, i64 %41, i1 false) - br label %._crit_edge97.i + br label %._crit_edge89.i ._crit_edge.i22: ; preds = %.lr.ph.i %52 = getelementptr inbounds i8, ptr %7, i64 %47 @@ -240,17 +249,17 @@ mac_init.exit: ; preds = %12 br label %55 55: ; preds = %55, %._crit_edge.i22 - %.194.i = phi i64 [ 0, %._crit_edge.i22 ], [ %60, %55 ] - %56 = getelementptr inbounds [128 x i8], ptr %7, i64 0, i64 %.194.i + %.186.i = phi i64 [ 0, %._crit_edge.i22 ], [ %60, %55 ] + %56 = getelementptr inbounds [128 x i8], ptr %7, i64 0, i64 %.186.i %57 = load i8, ptr %56, align 1 %58 = xor i8 %57, 106 - %59 = getelementptr inbounds [128 x i8], ptr %54, i64 0, i64 %.194.i + %59 = getelementptr inbounds [128 x i8], ptr %54, i64 0, i64 %.186.i store i8 %58, ptr %59, align 1 - %60 = add nuw i64 %.194.i, 1 - %exitcond100.not.i = icmp eq i64 %60, %47 - br i1 %exitcond100.not.i, label %._crit_edge97.i, label %55, !llvm.loop !6 + %60 = add nuw i64 %.186.i, 1 + %exitcond92.not.i = icmp eq i64 %60, %47 + br i1 %exitcond92.not.i, label %._crit_edge89.i, label %55, !llvm.loop !6 -._crit_edge97.i: ; preds = %55, %._crit_edge.thread.i +._crit_edge89.i: ; preds = %55, %._crit_edge.thread.i %61 = phi i64 [ %41, %._crit_edge.thread.i ], [ %53, %55 ] %62 = phi i64 [ 0, %._crit_edge.thread.i ], [ %47, %55 ] %63 = getelementptr inbounds i8, ptr %0, i64 248 @@ -261,17 +270,17 @@ mac_init.exit: ; preds = %12 %.not65.i = icmp eq i32 %66, 0 br i1 %.not65.i, label %67, label %69 -67: ; preds = %._crit_edge97.i +67: ; preds = %._crit_edge89.i %68 = call i32 @psa_hash_update(ptr noundef nonnull %65, ptr noundef nonnull %7, i64 noundef %41) #5 br label %69 -69: ; preds = %67, %._crit_edge97.i, %43 - %.0.i23 = phi i32 [ %44, %43 ], [ %66, %._crit_edge97.i ], [ %68, %67 ] +69: ; preds = %67, %._crit_edge89.i, %43 + %.0.i23 = phi i32 [ %44, %43 ], [ %66, %._crit_edge89.i ], [ %68, %67 ] call void @mbedtls_platform_zeroize(ptr noundef nonnull %7, i64 noundef 128) #5 br label %psa_hmac_setup_internal.exit -psa_hmac_setup_internal.exit: ; preds = %.thread91.i, %.thread84.i, %69 - %.054.i = phi i32 [ %.0.i23, %69 ], [ -134, %.thread84.i ], [ -134, %.thread91.i ] +psa_hmac_setup_internal.exit: ; preds = %.thread83.i, %.thread.i, %69 + %.054.i = phi i32 [ %.0.i23, %69 ], [ -134, %.thread.i ], [ -134, %.thread83.i ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %7) br label %cmac_setup.exit diff --git a/bench/linux/optimized/hooks.ll b/bench/linux/optimized/hooks.ll index ab0dffa7fbe..a81545739b7 100644 --- a/bench/linux/optimized/hooks.ll +++ b/bench/linux/optimized/hooks.ll @@ -14591,21 +14591,21 @@ define internal fastcc i32 @selinux_socket_connect_helper(ptr %.24.val, ptr noca call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %4) #24 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #24 %36 = icmp eq i32 %35, 0 - br i1 %36, label %37, label %78 + br i1 %36, label %37, label %76 37: ; preds = %.thread, %18 %38 = icmp ult i32 %1, 2 - br i1 %38, label %78, label %39 + br i1 %38, label %76, label %39 39: ; preds = %37 %40 = load i16, ptr %0, align 2 %41 = icmp eq i16 %40, 0 - br i1 %41, label %78, label %42 + br i1 %41, label %76, label %42 42: ; preds = %39 %43 = getelementptr inbounds i8, ptr %9, i64 24 %44 = load i16, ptr %43, align 8 - switch i16 %44, label %77 [ + switch i16 %44, label %75 [ i16 16, label %45 i16 51, label %45 i16 60, label %45 @@ -14649,53 +14649,47 @@ define internal fastcc i32 @selinux_socket_connect_helper(ptr %.24.val, ptr noca 62: ; preds = %53 %63 = load i16, ptr %43, align 8 - switch i16 %63, label %67 [ + switch i16 %63, label %65 [ i16 16, label %64 - i16 51, label %65 - i16 60, label %66 + i16 51, label %64 + i16 60, label %64 ] -64: ; preds = %62 - br label %67 - -65: ; preds = %62 - br label %67 - -66: ; preds = %62 - br label %67 +64: ; preds = %62, %62, %62 + br label %65 .thread2: ; preds = %46, %48, %50, %53 %.ph = phi i32 [ %60, %53 ], [ %52, %50 ], [ -22, %48 ], [ -22, %46 ] call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #24 call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %6) #24 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #24 - br label %78 + br label %76 -67: ; preds = %62, %64, %65, %66 - %68 = phi i32 [ 0, %62 ], [ 4194304, %66 ], [ 4194304, %65 ], [ 4194304, %64 ] +65: ; preds = %62, %64 + %66 = phi i32 [ 0, %62 ], [ 4194304, %64 ] store i8 2, ptr %5, align 8 - %69 = getelementptr inbounds i8, ptr %5, i64 8 - store ptr %6, ptr %69, align 8 - %70 = getelementptr inbounds i8, ptr %6, i64 18 - store i16 %55, ptr %70, align 2 - %71 = load i16, ptr %0, align 2 - %72 = getelementptr inbounds i8, ptr %6, i64 16 - store i16 %71, ptr %72, align 8 - %73 = load i32, ptr %10, align 8 - %74 = load i32, ptr %7, align 4 - %75 = call i32 @avc_has_perm(i32 noundef %73, i32 noundef %74, i16 noundef zeroext %63, i32 noundef %68, ptr noundef nonnull %5) #24 - %76 = icmp eq i32 %75, 0 + %67 = getelementptr inbounds i8, ptr %5, i64 8 + store ptr %6, ptr %67, align 8 + %68 = getelementptr inbounds i8, ptr %6, i64 18 + store i16 %55, ptr %68, align 2 + %69 = load i16, ptr %0, align 2 + %70 = getelementptr inbounds i8, ptr %6, i64 16 + store i16 %69, ptr %70, align 8 + %71 = load i32, ptr %10, align 8 + %72 = load i32, ptr %7, align 4 + %73 = call i32 @avc_has_perm(i32 noundef %71, i32 noundef %72, i16 noundef zeroext %63, i32 noundef %66, ptr noundef nonnull %5) #24 + %74 = icmp eq i32 %73, 0 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #24 call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %6) #24 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #24 - br i1 %76, label %77, label %78 + br i1 %74, label %75, label %76 -77: ; preds = %67, %42 - br label %78 +75: ; preds = %65, %42 + br label %76 -78: ; preds = %.thread2, %77, %67, %39, %37, %18 - %79 = phi i32 [ 0, %77 ], [ %75, %67 ], [ %35, %18 ], [ -22, %37 ], [ 0, %39 ], [ %.ph, %.thread2 ] - ret i32 %79 +76: ; preds = %.thread2, %75, %65, %39, %37, %18 + %77 = phi i32 [ 0, %75 ], [ %73, %65 ], [ %35, %18 ], [ -22, %37 ], [ 0, %39 ], [ %.ph, %.thread2 ] + ret i32 %77 } ; Function Attrs: null_pointer_is_valid diff --git a/bench/linux/optimized/intel_cdclk.ll b/bench/linux/optimized/intel_cdclk.ll index f85c3d37342..7af9b61c061 100644 --- a/bench/linux/optimized/intel_cdclk.ll +++ b/bench/linux/optimized/intel_cdclk.ll @@ -2725,7 +2725,7 @@ define internal fastcc noundef range(i32 100000, 400001) i32 @i9xx_hrawclk(ptr n 13: ; preds = %1 switch i32 %6, label %19 [ - i32 0, label %29 + i32 0, label %28 i32 1, label %14 i32 3, label %15 i32 2, label %16 @@ -2734,19 +2734,19 @@ define internal fastcc noundef range(i32 100000, 400001) i32 @i9xx_hrawclk(ptr n ] 14: ; preds = %13 - br label %29 + br label %28 15: ; preds = %13 - br label %29 + br label %28 16: ; preds = %13 - br label %29 + br label %28 17: ; preds = %13 - br label %29 + br label %28 18: ; preds = %13 - br label %29 + br label %28 19: ; preds = %13 tail call void asm sideeffect "1075: nop\0A\09.pushsection .discard.instr_begin\0A\09.long 1075b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 1075) #15, !srcloc !62 @@ -2756,47 +2756,44 @@ define internal fastcc noundef range(i32 100000, 400001) i32 @i9xx_hrawclk(ptr n tail call void asm sideeffect "1:\09.byte 0x0f, 0x0b\0A.pushsection __bug_table,\22aw\22\0A2:\09.long 1b - .\09# bug_entry::bug_addr\0A\09.long ${0:c} - .\09# bug_entry::file\0A\09.word ${1:c}\09# bug_entry::line\0A\09.word ${2:c}\09# bug_entry::flags\0A\09.org 2b+${3:c}\0A.popsection\0A998:\0A\09.pushsection .discard.reachable\0A\09.long 998b\0A\09.popsection\0A\09", "i,i,i,i,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @.str.3, i32 3434, i32 2313, i64 12) #15, !srcloc !64 tail call void asm sideeffect "1077: nop\0A\09.pushsection .discard.instr_end\0A\09.long 1077b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 1077) #15, !srcloc !65 tail call void asm sideeffect "1078: nop\0A\09.pushsection .discard.instr_end\0A\09.long 1078b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 1078) #15, !srcloc !66 - br label %29 + br label %28 21: ; preds = %1 switch i32 %6, label %default.unreachable1 [ - i32 5, label %29 + i32 5, label %28 i32 1, label %22 i32 3, label %23 i32 2, label %24 i32 0, label %25 i32 4, label %26 i32 6, label %27 - i32 7, label %28 + i32 7, label %22 ] -22: ; preds = %21 - br label %29 +22: ; preds = %21, %21 + br label %28 23: ; preds = %21 - br label %29 + br label %28 24: ; preds = %21 - br label %29 + br label %28 25: ; preds = %21 - br label %29 + br label %28 26: ; preds = %21 - br label %29 + br label %28 27: ; preds = %21 - br label %29 + br label %28 default.unreachable1: ; preds = %21 unreachable -28: ; preds = %21 - br label %29 - -29: ; preds = %21, %28, %27, %26, %25, %24, %23, %22, %19, %18, %17, %16, %15, %14, %13 - %30 = phi i32 [ 133333, %19 ], [ 333333, %18 ], [ 266667, %17 ], [ 200000, %16 ], [ 166667, %15 ], [ 133333, %14 ], [ 133333, %28 ], [ 400000, %27 ], [ 333333, %26 ], [ 266667, %25 ], [ 200000, %24 ], [ 166667, %23 ], [ 133333, %22 ], [ 100000, %13 ], [ 100000, %21 ] - ret i32 %30 +28: ; preds = %21, %27, %26, %25, %24, %23, %22, %19, %18, %17, %16, %15, %14, %13 + %29 = phi i32 [ 133333, %19 ], [ 333333, %18 ], [ 266667, %17 ], [ 200000, %16 ], [ 166667, %15 ], [ 133333, %14 ], [ 400000, %27 ], [ 333333, %26 ], [ 266667, %25 ], [ 200000, %24 ], [ 166667, %23 ], [ 133333, %22 ], [ 100000, %13 ], [ 100000, %21 ] + ret i32 %29 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid diff --git a/bench/linux/optimized/irq.ll b/bench/linux/optimized/irq.ll index c3b0724c778..8ea77f99691 100644 --- a/bench/linux/optimized/irq.ll +++ b/bench/linux/optimized/irq.ll @@ -1742,8 +1742,21 @@ define internal noundef range(i32 0, 2) i32 @ite_router_probe(ptr nocapture noun ; Function Attrs: cold fn_ret_thunk_extern mustprogress nofree norecurse nosync nounwind null_pointer_is_valid optsize willreturn memory(argmem: readwrite) define internal noundef range(i32 0, 2) i32 @via_router_probe(ptr nocapture noundef writeonly %0, ptr nocapture noundef readonly %1, i16 noundef zeroext %2) #10 section ".init.text" align 16 { - switch i16 %2, label %11 [ - i16 1414, label %4 + %4 = icmp eq i16 %2, 1414 + br i1 %4, label %5, label %8 + +5: ; preds = %3 + %6 = getelementptr inbounds i8, ptr %1, i64 62 + %7 = load i16, ptr %6, align 2 + switch i16 %7, label %.thread [ + i16 1670, label %8 + i16 12663, label %8 + i16 12839, label %8 + ] + +8: ; preds = %5, %5, %5, %3 + %9 = phi i16 [ %2, %3 ], [ %7, %5 ], [ %7, %5 ], [ %7, %5 ] + switch i16 %9, label %14 [ i16 12839, label %.thread i16 1430, label %.thread i16 1670, label %.thread @@ -1752,31 +1765,19 @@ define internal noundef range(i32 0, 2) i32 @via_router_probe(ptr nocapture noun i16 12663, label %.thread ] -4: ; preds = %3 - %5 = getelementptr inbounds i8, ptr %1, i64 62 - %6 = load i16, ptr %5, align 2 - switch i16 %6, label %.thread3 [ - i16 1670, label %.thread - i16 12663, label %.thread - i16 12839, label %.thread - ] - -.thread: ; preds = %3, %3, %3, %3, %3, %3, %4, %4, %4 - br label %.thread3 - -.thread3: ; preds = %4, %.thread - %7 = phi ptr [ @pirq_via_get, %.thread ], [ @pirq_via586_get, %4 ] - %8 = phi ptr [ @pirq_via_set, %.thread ], [ @pirq_via586_set, %4 ] +.thread: ; preds = %8, %8, %8, %8, %8, %8, %5 + %10 = phi ptr [ @pirq_via586_get, %5 ], [ @pirq_via_get, %8 ], [ @pirq_via_get, %8 ], [ @pirq_via_get, %8 ], [ @pirq_via_get, %8 ], [ @pirq_via_get, %8 ], [ @pirq_via_get, %8 ] + %11 = phi ptr [ @pirq_via586_set, %5 ], [ @pirq_via_set, %8 ], [ @pirq_via_set, %8 ], [ @pirq_via_set, %8 ], [ @pirq_via_set, %8 ], [ @pirq_via_set, %8 ], [ @pirq_via_set, %8 ] store ptr @.str.24, ptr %0, align 8 - %9 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %7, ptr %9, align 8 - %10 = getelementptr inbounds i8, ptr %0, i64 24 - store ptr %8, ptr %10, align 8 - br label %11 + %12 = getelementptr inbounds i8, ptr %0, i64 16 + store ptr %10, ptr %12, align 8 + %13 = getelementptr inbounds i8, ptr %0, i64 24 + store ptr %11, ptr %13, align 8 + br label %14 -11: ; preds = %3, %.thread3 - %12 = phi i32 [ 1, %.thread3 ], [ 0, %3 ] - ret i32 %12 +14: ; preds = %.thread, %8 + %15 = phi i32 [ 0, %8 ], [ 1, %.thread ] + ret i32 %15 } ; Function Attrs: cold fn_ret_thunk_extern mustprogress nofree norecurse nosync nounwind null_pointer_is_valid optsize willreturn memory(argmem: write) diff --git a/bench/linux/optimized/nfs4proc.ll b/bench/linux/optimized/nfs4proc.ll index ccc8d043bd4..71c368490d3 100644 --- a/bench/linux/optimized/nfs4proc.ll +++ b/bench/linux/optimized/nfs4proc.ll @@ -1722,7 +1722,7 @@ define internal fastcc i32 @nfs4_open_recover_helper(ptr noundef %0, i32 noundef %10 = load i32, ptr %9, align 8 %11 = getelementptr inbounds i8, ptr %0, i64 888 %12 = load ptr, ptr %11, align 8 - switch i32 %1, label %default.unreachable8 [ + switch i32 %1, label %default.unreachable6 [ i32 3, label %15 i32 2, label %13 i32 1, label %14 @@ -1734,7 +1734,7 @@ define internal fastcc i32 @nfs4_open_recover_helper(ptr noundef %0, i32 noundef 14: ; preds = %2 br label %15 -default.unreachable8: ; preds = %2 +default.unreachable6: ; preds = %2 unreachable 15: ; preds = %2, %14, %13 @@ -1742,7 +1742,7 @@ default.unreachable8: ; preds = %2 %17 = getelementptr inbounds i8, ptr %12, i64 %16 %18 = load i32, ptr %17, align 4 %19 = icmp eq i32 %18, 0 - br i1 %19, label %.thread7, label %20 + br i1 %19, label %.thread5, label %20 20: ; preds = %15 %21 = getelementptr inbounds i8, ptr %0, i64 44 @@ -1791,7 +1791,7 @@ default.unreachable8: ; preds = %2 %53 = load ptr, ptr %52, align 8 %54 = tail call fastcc i32 @nfs4_run_open_task(ptr noundef %0, ptr noundef null) %55 = icmp eq i32 %54, 0 - br i1 %55, label %56, label %.thread7 + br i1 %55, label %56, label %.thread5 56: ; preds = %20 %57 = getelementptr inbounds i8, ptr %0, i64 992 @@ -1814,7 +1814,7 @@ default.unreachable8: ; preds = %2 69: ; preds = %60 %70 = tail call fastcc i32 @_nfs4_proc_open_confirm(ptr noundef %0) %71 = icmp eq i32 %70, 0 - br i1 %71, label %.thread, label %.thread7 + br i1 %71, label %.thread, label %.thread5 .thread: ; preds = %60, %56, %69 %72 = tail call fastcc ptr @nfs4_opendata_to_nfs4_state(ptr noundef %0) @@ -1824,16 +1824,16 @@ default.unreachable8: ; preds = %2 74: ; preds = %.thread %75 = ptrtoint ptr %72 to i64 %76 = trunc i64 %75 to i32 - br label %.thread7 + br label %.thread5 77: ; preds = %.thread %78 = load ptr, ptr %11, align 8 %79 = icmp eq ptr %72, %78 %80 = select i1 %79, i32 0, i32 -116 tail call void @nfs4_close_state(ptr noundef %72, i32 noundef %1) #22 - br label %.thread7 + br label %.thread5 -.thread7: ; preds = %20, %77, %74, %69, %15 +.thread5: ; preds = %20, %77, %74, %69, %15 %81 = phi i32 [ %76, %74 ], [ %80, %77 ], [ 0, %15 ], [ %70, %69 ], [ %54, %20 ] ret i32 %81 } @@ -9044,11 +9044,14 @@ define internal fastcc noundef ptr @nfs4_opendata_alloc(ptr noundef %0, ptr noun %62 = phi i32 [ 2, %60 ], [ 0, %59 ], [ %5, %47 ], [ %5, %58 ] %63 = getelementptr inbounds i8, ptr %26, i64 136 store i32 %62, ptr %63, align 8 + %.off = add nsw i32 %2, -1 + %switch = icmp ult i32 %.off, 3 + %spec.select = select i1 %switch, i32 %2, i32 0 %64 = and i32 %3, 16384 %65 = icmp eq i32 %64, 0 %66 = or i1 %65, %57 - %67 = or disjoint i32 %2, 1024 - %68 = select i1 %66, i32 %2, i32 %67 + %67 = or disjoint i32 %spec.select, 1024 + %68 = select i1 %66, i32 %spec.select, i32 %67 %69 = getelementptr inbounds i8, ptr %26, i64 48 store i32 %68, ptr %69, align 8 %70 = and i32 %3, 64 @@ -10678,7 +10681,7 @@ thread-pre-split.thread: ; preds = %52, %48, %thread-pr %69 = load volatile i64, ptr %20, align 8 %70 = and i64 %69, 512 %71 = icmp eq i64 %70, 0 - br i1 %71, label %.lr.ph, label %.loopexit4 + br i1 %71, label %.lr.ph, label %.loopexit3 .lr.ph: ; preds = %60, %93 %72 = load volatile i32, ptr %63, align 4 @@ -10713,7 +10716,7 @@ thread-pre-split.thread: ; preds = %52, %48, %thread-pr tail call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() #22, !srcloc !161 %87 = load volatile i32, ptr %63, align 4 %88 = icmp eq i32 %87, %78 - br i1 %88, label %.loopexit4, label %93 + br i1 %88, label %.loopexit3, label %93 89: ; preds = %82 %90 = load i32, ptr %66, align 8 @@ -10726,7 +10729,7 @@ thread-pre-split.thread: ; preds = %52, %48, %thread-pr %94 = load volatile i64, ptr %20, align 8 %95 = and i64 %94, 512 %96 = icmp eq i64 %95, 0 - br i1 %96, label %.lr.ph, label %.loopexit4, !llvm.loop !162 + br i1 %96, label %.lr.ph, label %.loopexit3, !llvm.loop !162 97: ; preds = %89 %98 = load i32, ptr %62, align 4 @@ -10734,13 +10737,13 @@ thread-pre-split.thread: ; preds = %52, %48, %thread-pr %100 = tail call i32 @llvm.bswap.i32(i32 %90) %101 = sub i32 %99, %100 %102 = icmp slt i32 %101, 0 - br i1 %102, label %103, label %.loopexit4 + br i1 %102, label %103, label %.loopexit3 103: ; preds = %97 store i32 %90, ptr %62, align 4 - br label %.loopexit4 + br label %.loopexit3 -.loopexit4: ; preds = %93, %85, %60, %103, %97 +.loopexit3: ; preds = %93, %85, %60, %103, %97 %104 = load volatile i64, ptr %20, align 8 %105 = and i64 %104, 512 %106 = icmp ne i64 %105, 0 @@ -10751,7 +10754,7 @@ thread-pre-split.thread: ; preds = %52, %48, %thread-pr %110 = select i1 %106, i1 true, i1 %109 br i1 %110, label %162, label %111 -111: ; preds = %.loopexit4 +111: ; preds = %.loopexit3 %112 = getelementptr inbounds i8, ptr %1, i64 104 %113 = load ptr, ptr %112, align 8 %114 = icmp eq ptr %113, null @@ -10776,11 +10779,11 @@ thread-pre-split.thread: ; preds = %52, %48, %thread-pr 124: ; preds = %121 store ptr getelementptr (i8, ptr @nfs4_procedures, i64 384), ptr %16, align 8 - %.pr3 = load i32, ptr %29, align 8 + %.pr2 = load i32, ptr %29, align 8 br label %125 125: ; preds = %124, %121 - %126 = phi i32 [ %.pr3, %124 ], [ %122, %121 ] + %126 = phi i32 [ %.pr2, %124 ], [ %122, %121 ] %127 = icmp ult i32 %126, 2 br i1 %127, label %128, label %137 @@ -10805,8 +10808,11 @@ thread-pre-split.thread: ; preds = %52, %48, %thread-pr 137: ; preds = %134, %125 %138 = phi i32 [ %.pre, %134 ], [ %126, %125 ] %139 = and i32 %138, 3 + %.off = add nsw i32 %139, -1 + %switch = icmp ult i32 %.off, 3 + %spec.select = select i1 %switch, i32 %139, i32 0 %140 = getelementptr inbounds i8, ptr %1, i64 76 - store i32 %139, ptr %140, align 4 + store i32 %spec.select, ptr %140, align 4 %141 = getelementptr inbounds i8, ptr %1, i64 112 %142 = getelementptr inbounds i8, ptr %1, i64 168 %143 = load ptr, ptr %142, align 8 @@ -10841,7 +10847,7 @@ thread-pre-split.thread: ; preds = %52, %48, %thread-pr tail call void @nfs_release_seqid(ptr noundef %161) #22 br label %174 -162: ; preds = %.loopexit4 +162: ; preds = %.loopexit3 %163 = getelementptr inbounds i8, ptr %0, i64 32 store ptr null, ptr %163, align 8 br label %164 diff --git a/bench/linux/optimized/transport.ll b/bench/linux/optimized/transport.ll index fa3b34fbac3..bc42dcd5431 100644 --- a/bench/linux/optimized/transport.ll +++ b/bench/linux/optimized/transport.ll @@ -327,23 +327,23 @@ define dso_local range(i32 0, 5) i32 @usb_stor_ctrl_transfer(ptr noundef %0, i32 ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid define internal fastcc range(i32 0, 5) i32 @interpret_urb_result(ptr noundef %0, i32 noundef %1, i32 noundef %2, i32 noundef %3, i32 noundef %4) unnamed_addr #0 align 16 { - switch i32 %3, label %58 [ + switch i32 %3, label %57 [ i32 0, label %6 i32 -32, label %9 - i32 -75, label %59 + i32 -75, label %58 i32 -104, label %55 i32 -121, label %56 - i32 -5, label %57 + i32 -5, label %55 ] 6: ; preds = %5 %7 = icmp ne i32 %4, %2 %8 = zext i1 %7 to i32 - br label %59 + br label %58 9: ; preds = %5 %10 = icmp slt i32 %1, -1073741824 - br i1 %10, label %59, label %11 + br i1 %10, label %58, label %11 11: ; preds = %9 %12 = lshr i32 %1, 15 @@ -410,23 +410,20 @@ define internal fastcc range(i32 0, 5) i32 @interpret_urb_result(ptr noundef %0, 52: ; preds = %50, %47 %53 = icmp slt i32 %48, 0 %54 = select i1 %53, i32 4, i32 2 - br label %59 + br label %58 -55: ; preds = %5 - br label %59 +55: ; preds = %5, %5 + br label %58 56: ; preds = %5 - br label %59 + br label %58 57: ; preds = %5 - br label %59 + br label %58 -58: ; preds = %5 - br label %59 - -59: ; preds = %58, %57, %56, %55, %52, %9, %6, %5 - %60 = phi i32 [ 4, %58 ], [ 4, %57 ], [ 1, %56 ], [ 4, %55 ], [ %8, %6 ], [ 2, %9 ], [ %54, %52 ], [ 3, %5 ] - ret i32 %60 +58: ; preds = %57, %56, %55, %52, %9, %6, %5 + %59 = phi i32 [ 4, %57 ], [ 1, %56 ], [ 4, %55 ], [ %8, %6 ], [ 2, %9 ], [ %54, %52 ], [ 3, %5 ] + ret i32 %59 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid diff --git a/bench/linux/optimized/zstd_decompress.ll b/bench/linux/optimized/zstd_decompress.ll index e2ef82dc83a..16b405580d1 100644 --- a/bench/linux/optimized/zstd_decompress.ll +++ b/bench/linux/optimized/zstd_decompress.ll @@ -3352,35 +3352,26 @@ define dso_local noundef range(i64 -60, 1) i64 @ZSTD_DCtx_setMaxWindowSize(ptr n ; Function Attrs: fn_ret_thunk_extern mustprogress nofree norecurse nosync nounwind null_pointer_is_valid willreturn memory(none) define dso_local { i64, i64 } @ZSTD_dParam_getBounds(i32 noundef %0) local_unnamed_addr #2 align 16 { - switch i32 %0, label %6 [ - i32 100, label %7 + switch i32 %0, label %3 [ + i32 100, label %4 i32 1000, label %2 - i32 1001, label %3 - i32 1002, label %4 - i32 1003, label %5 + i32 1001, label %2 + i32 1002, label %2 + i32 1003, label %2 ] -2: ; preds = %1 - br label %7 +2: ; preds = %1, %1, %1, %1 + br label %4 3: ; preds = %1 - br label %7 - -4: ; preds = %1 - br label %7 - -5: ; preds = %1 - br label %7 - -6: ; preds = %1 - br label %7 - -7: ; preds = %6, %5, %4, %3, %2, %1 - %8 = phi i64 [ 0, %6 ], [ 4294967296, %5 ], [ 4294967296, %4 ], [ 4294967296, %3 ], [ 4294967296, %2 ], [ 133143986186, %1 ] - %9 = phi i64 [ -40, %6 ], [ 0, %5 ], [ 0, %4 ], [ 0, %3 ], [ 0, %2 ], [ 0, %1 ] - %10 = insertvalue { i64, i64 } poison, i64 %9, 0 - %11 = insertvalue { i64, i64 } %10, i64 %8, 1 - ret { i64, i64 } %11 + br label %4 + +4: ; preds = %3, %2, %1 + %5 = phi i64 [ 0, %3 ], [ 4294967296, %2 ], [ 133143986186, %1 ] + %6 = phi i64 [ -40, %3 ], [ 0, %2 ], [ 0, %1 ] + %7 = insertvalue { i64, i64 } poison, i64 %6, 0 + %8 = insertvalue { i64, i64 } %7, i64 %5, 1 + ret { i64, i64 } %8 } ; Function Attrs: fn_ret_thunk_extern mustprogress nofree norecurse nosync nounwind null_pointer_is_valid willreturn memory(argmem: readwrite) diff --git a/bench/llama.cpp/optimized/llama.cpp.ll b/bench/llama.cpp/optimized/llama.cpp.ll index 56aa6caa52c..d1a304ea281 100644 --- a/bench/llama.cpp/optimized/llama.cpp.ll +++ b/bench/llama.cpp/optimized/llama.cpp.ll @@ -18718,13 +18718,10 @@ if.then148.i.i: ; preds = %if.then146.i.i switch i32 %ftype.0.i, label %if.end198.i.i [ i32 10, label %if.then208.i.i i32 12, label %if.then153.i.i - i32 13, label %if.then156.i.i + i32 13, label %if.then153.i.i ] -if.then153.i.i: ; preds = %if.then148.i.i - br label %if.then208.i.i - -if.then156.i.i: ; preds = %if.then148.i.i +if.then153.i.i: ; preds = %if.then148.i.i, %if.then148.i.i br label %if.then208.i.i if.else165.i.i: ; preds = %if.else143.i.i @@ -18766,10 +18763,10 @@ if.end198.i.i: ; preds = %if.then188.i.i, %lo %switch.i.i = icmp ult i32 %new_type.addr.0.off.i.i, 5 br i1 %switch.i.i, label %if.then208.i.i, label %_ZL16get_k_quant_typeR23quantize_state_internal9ggml_typePK11ggml_tensor11llama_ftype.exit.i -if.then208.i.i: ; preds = %if.end198.i.i, %if.then188.i.i, %lor.lhs.false185.i.i, %if.then178.i.i, %if.else173.i.i, %if.then168.i.i, %if.then156.i.i, %if.then153.i.i, %if.then148.i.i - %qs.sroa.24.4.i = phi i32 [ %qs.sroa.24.3.i, %if.end198.i.i ], [ %qs.sroa.24.0942.i, %lor.lhs.false185.i.i ], [ %qs.sroa.24.0942.i, %if.then188.i.i ], [ %qs.sroa.24.0942.i, %if.then168.i.i ], [ %qs.sroa.24.0942.i, %if.then178.i.i ], [ %qs.sroa.24.0942.i, %if.else173.i.i ], [ %qs.sroa.24.0942.i, %if.then156.i.i ], [ %qs.sroa.24.0942.i, %if.then153.i.i ], [ %qs.sroa.24.0942.i, %if.then148.i.i ] - %qs.sroa.19.4.i = phi i32 [ %qs.sroa.19.3.i, %if.end198.i.i ], [ %qs.sroa.19.0944.i, %lor.lhs.false185.i.i ], [ %qs.sroa.19.0944.i, %if.then188.i.i ], [ %qs.sroa.19.0944.i, %if.then168.i.i ], [ %qs.sroa.19.0944.i, %if.then178.i.i ], [ %qs.sroa.19.0944.i, %if.else173.i.i ], [ %qs.sroa.19.0944.i, %if.then156.i.i ], [ %qs.sroa.19.0944.i, %if.then153.i.i ], [ %qs.sroa.19.0944.i, %if.then148.i.i ] - %new_type.addr.0138.i.i = phi i32 [ %new_type.addr.0.i.i, %if.end198.i.i ], [ 11, %lor.lhs.false185.i.i ], [ 11, %if.then188.i.i ], [ 12, %if.then168.i.i ], [ 14, %if.then178.i.i ], [ 13, %if.else173.i.i ], [ %ftype.0.i, %if.then156.i.i ], [ %ftype.0.i, %if.then153.i.i ], [ 11, %if.then148.i.i ] +if.then208.i.i: ; preds = %if.end198.i.i, %if.then188.i.i, %lor.lhs.false185.i.i, %if.then178.i.i, %if.else173.i.i, %if.then168.i.i, %if.then153.i.i, %if.then148.i.i + %qs.sroa.24.4.i = phi i32 [ %qs.sroa.24.3.i, %if.end198.i.i ], [ %qs.sroa.24.0942.i, %lor.lhs.false185.i.i ], [ %qs.sroa.24.0942.i, %if.then188.i.i ], [ %qs.sroa.24.0942.i, %if.then168.i.i ], [ %qs.sroa.24.0942.i, %if.then178.i.i ], [ %qs.sroa.24.0942.i, %if.else173.i.i ], [ %qs.sroa.24.0942.i, %if.then153.i.i ], [ %qs.sroa.24.0942.i, %if.then148.i.i ] + %qs.sroa.19.4.i = phi i32 [ %qs.sroa.19.3.i, %if.end198.i.i ], [ %qs.sroa.19.0944.i, %lor.lhs.false185.i.i ], [ %qs.sroa.19.0944.i, %if.then188.i.i ], [ %qs.sroa.19.0944.i, %if.then168.i.i ], [ %qs.sroa.19.0944.i, %if.then178.i.i ], [ %qs.sroa.19.0944.i, %if.else173.i.i ], [ %qs.sroa.19.0944.i, %if.then153.i.i ], [ %qs.sroa.19.0944.i, %if.then148.i.i ] + %new_type.addr.0138.i.i = phi i32 [ %new_type.addr.0.i.i, %if.end198.i.i ], [ 11, %lor.lhs.false185.i.i ], [ 11, %if.then188.i.i ], [ 12, %if.then168.i.i ], [ 14, %if.then178.i.i ], [ 13, %if.else173.i.i ], [ %ftype.0.i, %if.then153.i.i ], [ 11, %if.then148.i.i ] %ne210.i.i = getelementptr inbounds i8, ptr %call2.i123.i, i64 16 %63 = load i64, ptr %ne210.i.i, align 8 %conv212.i.i = trunc i64 %63 to i32 diff --git a/bench/llvm/optimized/CGOpenMPRuntime.cpp.ll b/bench/llvm/optimized/CGOpenMPRuntime.cpp.ll index 1653b9e784b..666570b932b 100644 --- a/bench/llvm/optimized/CGOpenMPRuntime.cpp.ll +++ b/bench/llvm/optimized/CGOpenMPRuntime.cpp.ll @@ -13118,11 +13118,10 @@ define dso_local noundef zeroext i1 @_ZNK5clang7CodeGen15CGOpenMPRuntime15isStat ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable define dso_local noundef zeroext i1 @_ZNK5clang7CodeGen15CGOpenMPRuntime9isDynamicENS_24OpenMPScheduleClauseKindE(ptr nocapture nonnull readnone align 8 %0, i32 noundef %1) unnamed_addr #7 align 2 { -switch.lookup: - %switch.cast = trunc i32 %1 to i6 - %switch.downshift = lshr i6 30, %switch.cast - %switch.masked = trunc i6 %switch.downshift to i1 - ret i1 %switch.masked +_ZL18getRuntimeScheduleN5clang24OpenMPScheduleClauseKindEbb.exit: + %.off = add i32 %1, -1 + %switch = icmp ult i32 %.off, 4 + ret i1 %switch } ; Function Attrs: mustprogress nounwind uwtable diff --git a/bench/lua/optimized/lgc.ll b/bench/lua/optimized/lgc.ll index 017845fc714..cc8d473fffb 100644 --- a/bench/lua/optimized/lgc.ll +++ b/bench/lua/optimized/lgc.ll @@ -193,16 +193,13 @@ if.else: ; preds = %entry switch i8 %3, label %unreachable [ i8 5, label %getgclist.exit i8 6, label %sw.bb1.i - i8 38, label %sw.bb3.i + i8 38, label %sw.bb1.i i8 8, label %sw.bb5.i i8 10, label %sw.bb7.i i8 7, label %sw.bb9.i ] -sw.bb1.i: ; preds = %if.else - br label %getgclist.exit - -sw.bb3.i: ; preds = %if.else +sw.bb1.i: ; preds = %if.else, %if.else br label %getgclist.exit sw.bb5.i: ; preds = %if.else @@ -217,8 +214,8 @@ sw.bb9.i: ; preds = %if.else unreachable: ; preds = %if.else unreachable -getgclist.exit: ; preds = %if.else, %sw.bb1.i, %sw.bb3.i, %sw.bb5.i, %sw.bb7.i, %sw.bb9.i - %.sink = phi i64 [ 16, %sw.bb1.i ], [ 16, %sw.bb3.i ], [ 72, %sw.bb5.i ], [ 120, %sw.bb7.i ], [ 32, %sw.bb9.i ], [ 48, %if.else ] +getgclist.exit: ; preds = %if.else, %sw.bb1.i, %sw.bb5.i, %sw.bb7.i, %sw.bb9.i + %.sink = phi i64 [ 16, %sw.bb1.i ], [ 72, %sw.bb5.i ], [ 120, %sw.bb7.i ], [ 32, %sw.bb9.i ], [ 48, %if.else ] %gclist.i = getelementptr inbounds i8, ptr %o, i64 %.sink %grayagain = getelementptr inbounds i8, ptr %2, i64 144 %4 = load ptr, ptr %grayagain, align 8 @@ -3544,16 +3541,13 @@ entry: switch i8 %3, label %unreachable [ i8 5, label %getgclist.exit i8 6, label %sw.bb1.i - i8 38, label %sw.bb3.i + i8 38, label %sw.bb1.i i8 8, label %sw.bb5.i i8 10, label %sw.bb7.i i8 7, label %sw.bb9.i ] -sw.bb1.i: ; preds = %entry - br label %getgclist.exit - -sw.bb3.i: ; preds = %entry +sw.bb1.i: ; preds = %entry, %entry br label %getgclist.exit sw.bb5.i: ; preds = %entry @@ -3568,8 +3562,8 @@ sw.bb9.i: ; preds = %entry unreachable: ; preds = %entry unreachable -getgclist.exit: ; preds = %entry, %sw.bb1.i, %sw.bb3.i, %sw.bb5.i, %sw.bb7.i, %sw.bb9.i - %.sink = phi i64 [ 16, %sw.bb1.i ], [ 16, %sw.bb3.i ], [ 72, %sw.bb5.i ], [ 120, %sw.bb7.i ], [ 32, %sw.bb9.i ], [ 48, %entry ] +getgclist.exit: ; preds = %entry, %sw.bb1.i, %sw.bb5.i, %sw.bb7.i, %sw.bb9.i + %.sink = phi i64 [ 16, %sw.bb1.i ], [ 72, %sw.bb5.i ], [ 120, %sw.bb7.i ], [ 32, %sw.bb9.i ], [ 48, %entry ] %gclist.i = getelementptr inbounds i8, ptr %0, i64 %.sink %4 = load ptr, ptr %gclist.i, align 8 store ptr %4, ptr %gray, align 8 @@ -3903,16 +3897,13 @@ if.then.i24.i.i: ; preds = %for.end54.i.i switch i8 %63, label %unreachable.i.i.i [ i8 5, label %getgclist.exit.i.i.i i8 6, label %sw.bb1.i.i.i.i - i8 38, label %sw.bb3.i.i.i.i + i8 38, label %sw.bb1.i.i.i.i i8 8, label %sw.bb5.i.i.i.i i8 10, label %sw.bb7.i.i.i.i i8 7, label %sw.bb9.i.i.i.i ] -sw.bb1.i.i.i.i: ; preds = %if.then.i24.i.i - br label %getgclist.exit.i.i.i - -sw.bb3.i.i.i.i: ; preds = %if.then.i24.i.i +sw.bb1.i.i.i.i: ; preds = %if.then.i24.i.i, %if.then.i24.i.i br label %getgclist.exit.i.i.i sw.bb5.i.i.i.i: ; preds = %if.then.i24.i.i @@ -3927,8 +3918,8 @@ sw.bb9.i.i.i.i: ; preds = %if.then.i24.i.i unreachable.i.i.i: ; preds = %if.then.i24.i.i unreachable -getgclist.exit.i.i.i: ; preds = %sw.bb9.i.i.i.i, %sw.bb7.i.i.i.i, %sw.bb5.i.i.i.i, %sw.bb3.i.i.i.i, %sw.bb1.i.i.i.i, %if.then.i24.i.i - %.sink.i.i.i = phi i64 [ 16, %sw.bb1.i.i.i.i ], [ 16, %sw.bb3.i.i.i.i ], [ 72, %sw.bb5.i.i.i.i ], [ 120, %sw.bb7.i.i.i.i ], [ 32, %sw.bb9.i.i.i.i ], [ 48, %if.then.i24.i.i ] +getgclist.exit.i.i.i: ; preds = %sw.bb9.i.i.i.i, %sw.bb7.i.i.i.i, %sw.bb5.i.i.i.i, %sw.bb1.i.i.i.i, %if.then.i24.i.i + %.sink.i.i.i = phi i64 [ 16, %sw.bb1.i.i.i.i ], [ 72, %sw.bb5.i.i.i.i ], [ 120, %sw.bb7.i.i.i.i ], [ 32, %sw.bb9.i.i.i.i ], [ 48, %if.then.i24.i.i ] %gclist.i.i.i.i = getelementptr inbounds i8, ptr %0, i64 %.sink.i.i.i %grayagain.i.i.i = getelementptr inbounds i8, ptr %g, i64 144 %64 = load ptr, ptr %grayagain.i.i.i, align 8 @@ -4040,16 +4031,13 @@ if.then.i.i27: ; preds = %for.end.i switch i8 %85, label %unreachable.i.i [ i8 5, label %getgclist.exit.i.i i8 6, label %sw.bb1.i.i.i - i8 38, label %sw.bb3.i.i.i + i8 38, label %sw.bb1.i.i.i i8 8, label %sw.bb5.i.i.i i8 10, label %sw.bb7.i.i.i i8 7, label %sw.bb9.i.i.i ] -sw.bb1.i.i.i: ; preds = %if.then.i.i27 - br label %getgclist.exit.i.i - -sw.bb3.i.i.i: ; preds = %if.then.i.i27 +sw.bb1.i.i.i: ; preds = %if.then.i.i27, %if.then.i.i27 br label %getgclist.exit.i.i sw.bb5.i.i.i: ; preds = %if.then.i.i27 @@ -4064,8 +4052,8 @@ sw.bb9.i.i.i: ; preds = %if.then.i.i27 unreachable.i.i: ; preds = %if.then.i.i27 unreachable -getgclist.exit.i.i: ; preds = %sw.bb9.i.i.i, %sw.bb7.i.i.i, %sw.bb5.i.i.i, %sw.bb3.i.i.i, %sw.bb1.i.i.i, %if.then.i.i27 - %.sink.i.i = phi i64 [ 16, %sw.bb1.i.i.i ], [ 16, %sw.bb3.i.i.i ], [ 72, %sw.bb5.i.i.i ], [ 120, %sw.bb7.i.i.i ], [ 32, %sw.bb9.i.i.i ], [ 48, %if.then.i.i27 ] +getgclist.exit.i.i: ; preds = %sw.bb9.i.i.i, %sw.bb7.i.i.i, %sw.bb5.i.i.i, %sw.bb1.i.i.i, %if.then.i.i27 + %.sink.i.i = phi i64 [ 16, %sw.bb1.i.i.i ], [ 72, %sw.bb5.i.i.i ], [ 120, %sw.bb7.i.i.i ], [ 32, %sw.bb9.i.i.i ], [ 48, %if.then.i.i27 ] %gclist.i.i.i = getelementptr inbounds i8, ptr %0, i64 %.sink.i.i %grayagain.i.i29 = getelementptr inbounds i8, ptr %g, i64 144 %86 = load ptr, ptr %grayagain.i.i29, align 8 @@ -4761,16 +4749,13 @@ if.then.i43: ; preds = %if.else84 switch i8 %40, label %unreachable.i [ i8 5, label %getgclist.exit.i i8 6, label %sw.bb1.i.i - i8 38, label %sw.bb3.i.i + i8 38, label %sw.bb1.i.i i8 8, label %sw.bb5.i.i i8 10, label %sw.bb7.i.i i8 7, label %sw.bb9.i.i ] -sw.bb1.i.i: ; preds = %if.then.i43 - br label %getgclist.exit.i - -sw.bb3.i.i: ; preds = %if.then.i43 +sw.bb1.i.i: ; preds = %if.then.i43, %if.then.i43 br label %getgclist.exit.i sw.bb5.i.i: ; preds = %if.then.i43 @@ -4785,8 +4770,8 @@ sw.bb9.i.i: ; preds = %if.then.i43 unreachable.i: ; preds = %if.then.i43 unreachable -getgclist.exit.i: ; preds = %sw.bb9.i.i, %sw.bb7.i.i, %sw.bb5.i.i, %sw.bb3.i.i, %sw.bb1.i.i, %if.then.i43 - %.sink.i = phi i64 [ 16, %sw.bb1.i.i ], [ 16, %sw.bb3.i.i ], [ 72, %sw.bb5.i.i ], [ 120, %sw.bb7.i.i ], [ 32, %sw.bb9.i.i ], [ 48, %if.then.i43 ] +getgclist.exit.i: ; preds = %sw.bb9.i.i, %sw.bb7.i.i, %sw.bb5.i.i, %sw.bb1.i.i, %if.then.i43 + %.sink.i = phi i64 [ 16, %sw.bb1.i.i ], [ 72, %sw.bb5.i.i ], [ 120, %sw.bb7.i.i ], [ 32, %sw.bb9.i.i ], [ 48, %if.then.i43 ] %gclist.i.i = getelementptr inbounds i8, ptr %h, i64 %.sink.i %grayagain.i = getelementptr inbounds i8, ptr %g, i64 144 %41 = load ptr, ptr %grayagain.i, align 8 diff --git a/bench/luau/optimized/StringUtils.cpp.ll b/bench/luau/optimized/StringUtils.cpp.ll index 7510f680708..4acfa96ea46 100644 --- a/bench/luau/optimized/StringUtils.cpp.ll +++ b/bench/luau/optimized/StringUtils.cpp.ll @@ -1112,8 +1112,8 @@ switch.early.test.us: ; preds = %.lr.ph.split.us cleanup br label %.loopexit -.lr.ph.split: ; preds = %.lr.ph, %44 - %.041 = phi ptr [ %45, %44 ], [ %2, %.lr.ph ] +.lr.ph.split: ; preds = %.lr.ph, %42 + %.041 = phi ptr [ %43, %42 ], [ %2, %.lr.ph ] %26 = load i8, ptr %.041, align 1 %.fr = freeze i8 %26 %27 = zext i8 %.fr to i32 @@ -1129,12 +1129,12 @@ switch.early.test: ; preds = %.lr.ph.split i8 34, label %31 ] -.invoke44: ; preds = %switch.early.test, %33, %42, %41, %40, %39, %38, %37, %36, %35, %34 - %29 = phi i8 [ 98, %34 ], [ 102, %35 ], [ 110, %36 ], [ 114, %37 ], [ 116, %38 ], [ 118, %39 ], [ %.fr, %40 ], [ %.fr, %41 ], [ %.fr, %42 ], [ 97, %33 ], [ %.fr, %switch.early.test ] +.invoke44: ; preds = %switch.early.test, %33, %40, %39, %38, %37, %36, %35, %34 + %29 = phi i8 [ 98, %34 ], [ 102, %35 ], [ 110, %36 ], [ 114, %37 ], [ 116, %38 ], [ 118, %39 ], [ %.fr, %40 ], [ 97, %33 ], [ %.fr, %switch.early.test ] %30 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %0, i8 noundef signext %29) - to label %44 unwind label %.loopexit.split + to label %42 unwind label %.loopexit.split -.loopexit.split: ; preds = %.invoke44, %31, %43 +.loopexit.split: ; preds = %.invoke44, %31, %41 %lpad.loopexit = landingpad { ptr, i32 } cleanup br label %.loopexit @@ -1154,7 +1154,7 @@ switch.early.test: ; preds = %.lr.ph.split to label %33 unwind label %.loopexit.split 33: ; preds = %31 - switch i8 %.fr, label %43 [ + switch i8 %.fr, label %41 [ i8 7, label %.invoke44 i8 8, label %34 i8 12, label %35 @@ -1163,8 +1163,8 @@ switch.early.test: ; preds = %.lr.ph.split i8 9, label %38 i8 11, label %39 i8 39, label %40 - i8 34, label %41 - i8 92, label %42 + i8 34, label %40 + i8 92, label %40 ] 34: ; preds = %33 @@ -1185,25 +1185,19 @@ switch.early.test: ; preds = %.lr.ph.split 39: ; preds = %33 br label %.invoke44 -40: ; preds = %33 +40: ; preds = %33, %33, %33 br label %.invoke44 41: ; preds = %33 - br label %.invoke44 - -42: ; preds = %33 - br label %.invoke44 - -43: ; preds = %33 invoke void (ptr, ptr, ...) @_ZN4Luau12formatAppendERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcz(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull @.str.1, i32 noundef %27) - to label %44 unwind label %.loopexit.split + to label %42 unwind label %.loopexit.split -44: ; preds = %.invoke44, %43 - %45 = getelementptr inbounds i8, ptr %.041, i64 1 - %.not = icmp eq ptr %45, %7 +42: ; preds = %.invoke44, %41 + %43 = getelementptr inbounds i8, ptr %.041, i64 1 + %.not = icmp eq ptr %43, %7 br i1 %.not, label %._crit_edge, label %.lr.ph.split -._crit_edge: ; preds = %44, %24, %6 +._crit_edge: ; preds = %42, %24, %6 ret void } diff --git a/bench/meilisearch-rs/optimized/2fpcolt33ttb4v7z.ll b/bench/meilisearch-rs/optimized/2fpcolt33ttb4v7z.ll index 15a446f4127..6cfd8a603c9 100644 --- a/bench/meilisearch-rs/optimized/2fpcolt33ttb4v7z.ll +++ b/bench/meilisearch-rs/optimized/2fpcolt33ttb4v7z.ll @@ -1028,7 +1028,7 @@ default.unreachable: ; preds = %209 %45 = load ptr, ptr %44, align 8, !alias.scope !163, !noalias !166, !nonnull !14, !noundef !14 %46 = load i64, ptr %43, align 8, !alias.scope !163, !noalias !166, !noundef !14 invoke void @"_ZN52_$LT$T$u20$as$u20$alloc..slice..hack..ConvertVec$GT$6to_vec17h07e69a65de4159ceE.llvm.7205017296298784897"(ptr noalias nocapture noundef nonnull sret([24 x i8]) align 8 dereferenceable(24) %17, ptr noalias noundef nonnull readonly align 8 %45, i64 noundef %46) - to label %.noexc unwind label %399 + to label %.noexc unwind label %398 .noexc: ; preds = %42 %.sroa.06.0.copyload.i.i = load i64, ptr %17, align 8, !noalias !159 @@ -1074,11 +1074,11 @@ default.unreachable: ; preds = %209 "_ZN4core3ptr65drop_in_place$LT$meilisearch_types..settings..WildcardSetting$GT$17h4c27c729f03e5c7dE.exit37.i.i": ; preds = %84, %82, %63 %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.i.i = phi { ptr, i32 } [ %64, %63 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.i.i, %84 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.i.i, %82 ] %61 = icmp sgt i64 %49, -9223372036854775807 - br i1 %61, label %62, label %406 + br i1 %61, label %62, label %405 62: ; preds = %"_ZN4core3ptr65drop_in_place$LT$meilisearch_types..settings..WildcardSetting$GT$17h4c27c729f03e5c7dE.exit37.i.i" invoke void @"_ZN4core3ptr65drop_in_place$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$17h292f3c022513c31dE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %30) - to label %406 unwind label %397, !noalias !162 + to label %405 unwind label %396, !noalias !162 63: ; preds = %55 %64 = landingpad { ptr, i32 } @@ -1144,7 +1144,7 @@ default.unreachable: ; preds = %209 84: ; preds = %82 invoke void @"_ZN4core3ptr65drop_in_place$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$17h292f3c022513c31dE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %29) - to label %"_ZN4core3ptr65drop_in_place$LT$meilisearch_types..settings..WildcardSetting$GT$17h4c27c729f03e5c7dE.exit37.i.i" unwind label %397, !noalias !162 + to label %"_ZN4core3ptr65drop_in_place$LT$meilisearch_types..settings..WildcardSetting$GT$17h4c27c729f03e5c7dE.exit37.i.i" unwind label %396, !noalias !162 85: ; preds = %79, %78 %86 = landingpad { ptr, i32 } @@ -1202,7 +1202,7 @@ default.unreachable: ; preds = %209 105: ; preds = %122, %106 %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.i.i = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.i.i, %122 ], [ %107, %106 ] invoke fastcc void @"_ZN4core3ptr130drop_in_place$LT$milli..update..settings..Setting$LT$alloc..collections..btree..set..BTreeSet$LT$alloc..string..String$GT$$GT$$GT$17he8184b63d3c618c5E"(ptr noalias noundef align 8 dereferenceable(32) %28) #26 - to label %82 unwind label %397, !noalias !162 + to label %82 unwind label %396, !noalias !162 106: ; preds = %102, %101 %107 = landingpad { ptr, i32 } @@ -1249,7 +1249,7 @@ default.unreachable: ; preds = %209 122: ; preds = %142, %123 %.pn.pn.pn.pn.pn.pn.pn.pn.pn.i.i = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.i.i, %142 ], [ %124, %123 ] invoke fastcc void @"_ZN4core3ptr130drop_in_place$LT$milli..update..settings..Setting$LT$alloc..collections..btree..set..BTreeSet$LT$alloc..string..String$GT$$GT$$GT$17he8184b63d3c618c5E"(ptr noalias noundef align 8 dereferenceable(32) %27) #26 - to label %105 unwind label %397, !noalias !162 + to label %105 unwind label %396, !noalias !162 123: ; preds = %115 %124 = landingpad { ptr, i32 } @@ -1305,7 +1305,7 @@ default.unreachable: ; preds = %209 142: ; preds = %163, %143 %.pn.pn.pn.pn.pn.pn.pn.pn.i.i = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.i.i, %163 ], [ %144, %143 ] invoke fastcc void @"_ZN4core3ptr128drop_in_place$LT$milli..update..settings..Setting$LT$alloc..vec..Vec$LT$meilisearch_types..settings..RankingRuleView$GT$$GT$$GT$17hf59cf75cf99cc891E"(ptr noalias noundef align 8 dereferenceable(24) %26) #26 - to label %122 unwind label %397, !noalias !162 + to label %122 unwind label %396, !noalias !162 143: ; preds = %139, %138 %144 = landingpad { ptr, i32 } @@ -1363,7 +1363,7 @@ default.unreachable: ; preds = %209 163: ; preds = %184, %164 %.pn.pn.pn.pn.pn.pn.pn.i.i = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.i.i, %184 ], [ %165, %164 ] invoke fastcc void @"_ZN4core3ptr130drop_in_place$LT$milli..update..settings..Setting$LT$alloc..collections..btree..set..BTreeSet$LT$alloc..string..String$GT$$GT$$GT$17he8184b63d3c618c5E"(ptr noalias noundef align 8 dereferenceable(32) %25) #26 - to label %142 unwind label %397, !noalias !162 + to label %142 unwind label %396, !noalias !162 164: ; preds = %160, %159 %165 = landingpad { ptr, i32 } @@ -1421,7 +1421,7 @@ default.unreachable: ; preds = %209 184: ; preds = %205, %185 %.pn.pn.pn.pn.pn.pn.i.i = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.i.i, %205 ], [ %186, %185 ] invoke fastcc void @"_ZN4core3ptr130drop_in_place$LT$milli..update..settings..Setting$LT$alloc..collections..btree..set..BTreeSet$LT$alloc..string..String$GT$$GT$$GT$17he8184b63d3c618c5E"(ptr noalias noundef align 8 dereferenceable(32) %24) #26 - to label %163 unwind label %397, !noalias !162 + to label %163 unwind label %396, !noalias !162 185: ; preds = %181, %180 %186 = landingpad { ptr, i32 } @@ -1479,7 +1479,7 @@ default.unreachable: ; preds = %209 205: ; preds = %228, %206 %.pn.pn.pn.pn.pn.i.i = phi { ptr, i32 } [ %.pn.pn.pn.pn.i.i, %228 ], [ %207, %206 ] invoke fastcc void @"_ZN4core3ptr130drop_in_place$LT$milli..update..settings..Setting$LT$alloc..collections..btree..set..BTreeSet$LT$alloc..string..String$GT$$GT$$GT$17he8184b63d3c618c5E"(ptr noalias noundef align 8 dereferenceable(32) %23) #26 - to label %184 unwind label %397, !noalias !162 + to label %184 unwind label %396, !noalias !162 206: ; preds = %202, %201 %207 = landingpad { ptr, i32 } @@ -1548,7 +1548,7 @@ default.unreachable: ; preds = %209 228: ; preds = %241, %229 %.pn.pn.pn.pn.i.i = phi { ptr, i32 } [ %.pn.pn.pn.i.i, %241 ], [ %230, %229 ] invoke fastcc void @"_ZN4core3ptr130drop_in_place$LT$milli..update..settings..Setting$LT$alloc..collections..btree..set..BTreeSet$LT$alloc..string..String$GT$$GT$$GT$17he8184b63d3c618c5E"(ptr noalias noundef align 8 dereferenceable(32) %22) #26 - to label %205 unwind label %397, !noalias !162 + to label %205 unwind label %396, !noalias !162 229: ; preds = %223, %222 %230 = landingpad { ptr, i32 } @@ -1591,7 +1591,7 @@ default.unreachable: ; preds = %209 241: ; preds = %.body.i.i, %242 %.pn.pn.pn.i.i = phi { ptr, i32 } [ %.pn.pn.i.i, %.body.i.i ], [ %243, %242 ] invoke fastcc void @"_ZN4core3ptr177drop_in_place$LT$milli..update..settings..Setting$LT$alloc..collections..btree..map..BTreeMap$LT$alloc..string..String$C$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$$GT$17h72d84b648b76e2faE"(ptr noalias noundef align 8 dereferenceable(32) %21) #26 - to label %228 unwind label %397, !noalias !162 + to label %228 unwind label %396, !noalias !162 242: ; preds = %238 %243 = landingpad { ptr, i32 } @@ -1816,7 +1816,7 @@ default.unreachable: ; preds = %209 .body.i.i: ; preds = %362, %359, %328, %322 %.pn.pn.i.i = phi { ptr, i32 } [ %329, %328 ], [ %323, %322 ], [ %.pn.i.i, %362 ], [ %.pn.i.i, %359 ] invoke fastcc void @"_ZN4core3ptr82drop_in_place$LT$milli..update..settings..Setting$LT$alloc..string..String$GT$$GT$17hd8e6d9bd3db69219E"(ptr noalias noundef align 8 dereferenceable(24) %20) #26 - to label %241 unwind label %397, !noalias !162 + to label %241 unwind label %396, !noalias !162 328: ; preds = %301, %300 %329 = landingpad { ptr, i32 } @@ -1904,15 +1904,15 @@ default.unreachable: ; preds = %209 store i64 4, ptr %18, align 8, !noalias !159 br label %366 -359: ; preds = %395, %363 - %.pn.i.i = phi { ptr, i32 } [ %396, %395 ], [ %364, %363 ] +359: ; preds = %394, %363 + %.pn.i.i = phi { ptr, i32 } [ %395, %394 ], [ %364, %363 ] %360 = load i64, ptr %19, align 8, !range !52, !alias.scope !275, !noalias !159, !noundef !14 %361 = icmp samesign ult i64 %360, 3 br i1 %361, label %362, label %.body.i.i 362: ; preds = %359 invoke void @"_ZN4core3ptr62drop_in_place$LT$meilisearch_types..settings..TypoSettings$GT$17hcd0af135ad3ce8c6E"(ptr noalias noundef nonnull align 8 dereferenceable(72) %19) - to label %.body.i.i unwind label %397, !noalias !162 + to label %.body.i.i unwind label %396, !noalias !162 363: ; preds = %354, %353 %364 = landingpad { ptr, i32 } @@ -1941,93 +1941,91 @@ default.unreachable: ; preds = %209 %372 = select i1 %370, i64 %371, i64 0 switch i64 %372, label %41 [ i64 0, label %373 - i64 1, label %378 - i64 2, label %374 + i64 1, label %377 + i64 2, label %376 ] 373: ; preds = %366 %switch.i.i = icmp eq i64 %368, 0 - br i1 %switch.i.i, label %375, label %378 - -374: ; preds = %366 - br label %378 - -375: ; preds = %373 - %376 = getelementptr inbounds i8, ptr %35, i64 400 - %377 = load i64, ptr %376, align 8, !alias.scope !161, !noalias !162, !noundef !14 - br label %378 - -378: ; preds = %375, %374, %373, %366 - %.sroa.6.0.i.i = phi i64 [ undef, %374 ], [ undef, %366 ], [ %377, %375 ], [ undef, %373 ] - %.sroa.01.0.i.i = phi i64 [ 4, %374 ], [ 3, %366 ], [ 0, %375 ], [ %368, %373 ] - %379 = getelementptr inbounds i8, ptr %35, i64 224 - %380 = load i64, ptr %379, align 8, !range !59, !alias.scope !161, !noalias !162, !noundef !14 - %switch30.i.i = icmp eq i64 %380, 0 - br i1 %switch30.i.i, label %381, label %401 - -381: ; preds = %378 + %374 = getelementptr inbounds i8, ptr %35, i64 400 + %375 = load i64, ptr %374, align 8, !alias.scope !161, !noalias !162 + %.sroa.616.0.i.i = select i1 %switch.i.i, i64 %375, i64 undef + br label %377 + +376: ; preds = %366 + br label %377 + +377: ; preds = %376, %373, %366 + %.sroa.6.0.i.i = phi i64 [ undef, %376 ], [ %.sroa.616.0.i.i, %373 ], [ undef, %366 ] + %.sroa.01.0.i.i = phi i64 [ 4, %376 ], [ %368, %373 ], [ 3, %366 ] + %378 = getelementptr inbounds i8, ptr %35, i64 224 + %379 = load i64, ptr %378, align 8, !range !59, !alias.scope !161, !noalias !162, !noundef !14 + %switch30.i.i = icmp eq i64 %379, 0 + br i1 %switch30.i.i, label %380, label %400 + +380: ; preds = %377 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6), !noalias !159 tail call void @llvm.experimental.noalias.scope.decl(metadata !278) tail call void @llvm.experimental.noalias.scope.decl(metadata !281) - %382 = getelementptr inbounds i8, ptr %35, i64 248 - %383 = load i64, ptr %382, align 8, !alias.scope !283, !noalias !284, !noundef !14 - %384 = icmp eq i64 %383, 0 - br i1 %384, label %385, label %387 + %381 = getelementptr inbounds i8, ptr %35, i64 248 + %382 = load i64, ptr %381, align 8, !alias.scope !283, !noalias !284, !noundef !14 + %383 = icmp eq i64 %382, 0 + br i1 %383, label %384, label %386 -385: ; preds = %381 +384: ; preds = %380 store ptr null, ptr %6, align 8, !alias.scope !278, !noalias !285 - %386 = getelementptr inbounds i8, ptr %6, i64 16 - store i64 0, ptr %386, align 8, !alias.scope !278, !noalias !285 + %385 = getelementptr inbounds i8, ptr %6, i64 16 + store i64 0, ptr %385, align 8, !alias.scope !278, !noalias !285 br label %"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17hd128de6ad52744aeE.exit.i.i" -387: ; preds = %381 - %388 = getelementptr inbounds i8, ptr %35, i64 232 - %389 = load ptr, ptr %388, align 8, !alias.scope !283, !noalias !284, !noundef !14 - %390 = icmp eq ptr %389, null - br i1 %390, label %391, label %392 +386: ; preds = %380 + %387 = getelementptr inbounds i8, ptr %35, i64 232 + %388 = load ptr, ptr %387, align 8, !alias.scope !283, !noalias !284, !noundef !14 + %389 = icmp eq ptr %388, null + br i1 %389, label %390, label %391 -391: ; preds = %387 +390: ; preds = %386 invoke void @_ZN4core6option13unwrap_failed17h4b4353bf890a85dfE(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8c27afc8c2a88febbbaf000c04979b1f.32.llvm.18428783311949156975) #25 - to label %.noexc62.i.i unwind label %395, !noalias !162 + to label %.noexc62.i.i unwind label %394, !noalias !162 -.noexc62.i.i: ; preds = %391 +.noexc62.i.i: ; preds = %390 unreachable -392: ; preds = %387 - %393 = getelementptr inbounds i8, ptr %35, i64 240 - %394 = load i64, ptr %393, align 8, !alias.scope !283, !noalias !284, !noundef !14 - invoke void @"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone13clone_subtree17h1873e1226800b880E.llvm.18428783311949156975"(ptr noalias nocapture noundef nonnull sret([24 x i8]) align 8 dereferenceable(24) %6, ptr noundef nonnull %389, i64 noundef %394) - to label %"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17hd128de6ad52744aeE.exit.i.i" unwind label %395, !noalias !162 +391: ; preds = %386 + %392 = getelementptr inbounds i8, ptr %35, i64 240 + %393 = load i64, ptr %392, align 8, !alias.scope !283, !noalias !284, !noundef !14 + invoke void @"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone13clone_subtree17h1873e1226800b880E.llvm.18428783311949156975"(ptr noalias nocapture noundef nonnull sret([24 x i8]) align 8 dereferenceable(24) %6, ptr noundef nonnull %388, i64 noundef %393) + to label %"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17hd128de6ad52744aeE.exit.i.i" unwind label %394, !noalias !162 -395: ; preds = %392, %391 - %396 = landingpad { ptr, i32 } +394: ; preds = %391, %390 + %395 = landingpad { ptr, i32 } cleanup invoke fastcc void @"_ZN4core3ptr106drop_in_place$LT$milli..update..settings..Setting$LT$meilisearch_types..settings..FacetingSettings$GT$$GT$17hec033657f2c1f5e8E"(ptr noalias noundef align 8 dereferenceable(48) %18) #26 - to label %359 unwind label %397, !noalias !162 + to label %359 unwind label %396, !noalias !162 -"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17hd128de6ad52744aeE.exit.i.i": ; preds = %392, %385 +"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17hd128de6ad52744aeE.exit.i.i": ; preds = %391, %384 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.63.i.i, ptr noundef nonnull align 8 dereferenceable(24) %6, i64 24, i1 false), !noalias !153 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6), !noalias !159 - br label %401 + br label %400 -397: ; preds = %395, %362, %.body.i.i, %241, %228, %205, %184, %163, %142, %122, %105, %84, %62 - %398 = landingpad { ptr, i32 } +396: ; preds = %394, %362, %.body.i.i, %241, %228, %205, %184, %163, %142, %122, %105, %84, %62 + %397 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hd62aa59d1fda1c9fE() #24, !noalias !162 unreachable -399: ; preds = %42 - %400 = landingpad { ptr, i32 } +398: ; preds = %42 + %399 = landingpad { ptr, i32 } cleanup - br label %406 - -401: ; preds = %378, %"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17hd128de6ad52744aeE.exit.i.i" - %402 = getelementptr inbounds i8, ptr %35, i64 256 - %403 = load i64, ptr %402, align 8, !range !59, !alias.scope !161, !noalias !162, !noundef !14 - %switch32.i.i = icmp eq i64 %403, 0 - %404 = getelementptr inbounds i8, ptr %35, i64 264 - %405 = load i64, ptr %404, align 8, !alias.scope !161, !noalias !162 - %.sroa.65.0.i.i = select i1 %switch32.i.i, i64 %405, i64 undef + br label %405 + +400: ; preds = %377, %"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17hd128de6ad52744aeE.exit.i.i" + %401 = getelementptr inbounds i8, ptr %35, i64 256 + %402 = load i64, ptr %401, align 8, !range !59, !alias.scope !161, !noalias !162, !noundef !14 + %switch32.i.i = icmp eq i64 %402, 0 + %403 = getelementptr inbounds i8, ptr %35, i64 264 + %404 = load i64, ptr %403, align 8, !alias.scope !161, !noalias !162 + %.sroa.65.0.i.i = select i1 %switch32.i.i, i64 %404, i64 undef %.sroa.16.0..sroa_idx.i = getelementptr inbounds i8, ptr %32, i64 408 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.16.0..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(24) %30, i64 24, i1 false), !noalias !153 %.sroa.17.0..sroa_idx.i = getelementptr inbounds i8, ptr %32, i64 432 @@ -2068,11 +2066,11 @@ default.unreachable: ; preds = %209 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %30), !noalias !159 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(224) %32, ptr noundef nonnull align 8 dereferenceable(224) %.sroa.0.i, i64 224, i1 false), !noalias !153 %.sroa.8.0..sroa_idx.i = getelementptr inbounds i8, ptr %32, i64 224 - store i64 %380, ptr %.sroa.8.0..sroa_idx.i, align 8, !noalias !153 + store i64 %379, ptr %.sroa.8.0..sroa_idx.i, align 8, !noalias !153 %.sroa.9.0..sroa_idx.i = getelementptr inbounds i8, ptr %32, i64 232 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.9.0..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.63.i.i, i64 24, i1 false), !noalias !153 %.sroa.10.0..sroa_idx.i = getelementptr inbounds i8, ptr %32, i64 256 - store i64 %403, ptr %.sroa.10.0..sroa_idx.i, align 8, !noalias !153 + store i64 %402, ptr %.sroa.10.0..sroa_idx.i, align 8, !noalias !153 %.sroa.11.0..sroa_idx.i = getelementptr inbounds i8, ptr %32, i64 264 store i64 %.sroa.65.0.i.i, ptr %.sroa.11.0..sroa_idx.i, align 8, !noalias !153 %.sroa.14.0..sroa_idx.i = getelementptr inbounds i8, ptr %32, i64 392 @@ -2085,8 +2083,8 @@ default.unreachable: ; preds = %209 call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %.sroa.0.i) ret ptr %32 -406: ; preds = %"_ZN4core3ptr65drop_in_place$LT$meilisearch_types..settings..WildcardSetting$GT$17h4c27c729f03e5c7dE.exit37.i.i", %62, %399 - %eh.lpad-body = phi { ptr, i32 } [ %400, %399 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.i.i, %62 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.i.i, %"_ZN4core3ptr65drop_in_place$LT$meilisearch_types..settings..WildcardSetting$GT$17h4c27c729f03e5c7dE.exit37.i.i" ] +405: ; preds = %"_ZN4core3ptr65drop_in_place$LT$meilisearch_types..settings..WildcardSetting$GT$17h4c27c729f03e5c7dE.exit37.i.i", %62, %398 + %eh.lpad-body = phi { ptr, i32 } [ %399, %398 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.i.i, %62 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.i.i, %"_ZN4core3ptr65drop_in_place$LT$meilisearch_types..settings..WildcardSetting$GT$17h4c27c729f03e5c7dE.exit37.i.i" ] call void @__rust_dealloc(ptr noundef nonnull %32, i64 noundef 512, i64 noundef 8) #27 resume { ptr, i32 } %eh.lpad-body } @@ -4729,8 +4727,8 @@ define void @_ZN17meilisearch_types5tasks7Details9to_failed17hbe25d9d1e3c2482bE( call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %3) call fastcc void @"_ZN72_$LT$meilisearch_types..tasks..Details$u20$as$u20$core..clone..Clone$GT$5clone17h77f9c2304a38e238E"(ptr noalias nocapture noundef align 8 dereferenceable(56) %3, ptr noalias noundef readonly align 8 dereferenceable(56) %1) %4 = load i64, ptr %3, align 8, !range !328, !noundef !14 - %.sink2.sroa.gep7 = getelementptr inbounds i8, ptr %3, i64 24 - %.sink3.sroa.gep11 = getelementptr inbounds i8, ptr %3, i64 16 + %.sink2.sroa.gep6 = getelementptr inbounds i8, ptr %3, i64 24 + %.sink3.sroa.gep9 = getelementptr inbounds i8, ptr %3, i64 16 switch i64 %4, label %default.unreachable1 [ i64 0, label %.sink.split i64 1, label %5 @@ -4739,7 +4737,7 @@ define void @_ZN17meilisearch_types5tasks7Details9to_failed17hbe25d9d1e3c2482bE( i64 4, label %6 i64 5, label %7 i64 6, label %8 - i64 7, label %9 + i64 7, label %8 i64 8, label %5 i64 9, label %5 ] @@ -4747,9 +4745,9 @@ define void @_ZN17meilisearch_types5tasks7Details9to_failed17hbe25d9d1e3c2482bE( default.unreachable1: ; preds = %2 unreachable -.sink.split: ; preds = %2, %2, %6, %7, %8, %9 - %.sink3.sroa.phi = phi ptr [ %.sink3.sroa.gep, %9 ], [ %.sink3.sroa.gep8, %8 ], [ %.sink3.sroa.gep9, %7 ], [ %.sink3.sroa.gep10, %6 ], [ %.sink3.sroa.gep11, %2 ], [ %.sink3.sroa.gep11, %2 ] - %.sink2.sroa.phi = phi ptr [ %.sink2.sroa.gep, %9 ], [ %.sink2.sroa.gep4, %8 ], [ %.sink2.sroa.gep5, %7 ], [ %.sink2.sroa.gep6, %6 ], [ %.sink2.sroa.gep7, %2 ], [ %.sink2.sroa.gep7, %2 ] +.sink.split: ; preds = %2, %2, %6, %7, %8 + %.sink3.sroa.phi = phi ptr [ %.sink3.sroa.gep, %8 ], [ %.sink3.sroa.gep7, %7 ], [ %.sink3.sroa.gep8, %6 ], [ %.sink3.sroa.gep9, %2 ], [ %.sink3.sroa.gep9, %2 ] + %.sink2.sroa.phi = phi ptr [ %.sink2.sroa.gep, %8 ], [ %.sink2.sroa.gep4, %7 ], [ %.sink2.sroa.gep5, %6 ], [ %.sink2.sroa.gep6, %2 ], [ %.sink2.sroa.gep6, %2 ] store i64 1, ptr %.sink3.sroa.phi, align 8 store i64 0, ptr %.sink2.sroa.phi, align 8 br label %5 @@ -4760,21 +4758,16 @@ default.unreachable1: ; preds = %2 ret void 6: ; preds = %2 - %.sink3.sroa.gep10 = getelementptr inbounds i8, ptr %3, i64 32 - %.sink2.sroa.gep6 = getelementptr inbounds i8, ptr %3, i64 40 + %.sink3.sroa.gep8 = getelementptr inbounds i8, ptr %3, i64 32 + %.sink2.sroa.gep5 = getelementptr inbounds i8, ptr %3, i64 40 br label %.sink.split 7: ; preds = %2 - %.sink3.sroa.gep9 = getelementptr inbounds i8, ptr %3, i64 8 - %.sink2.sroa.gep5 = getelementptr inbounds i8, ptr %3, i64 16 + %.sink3.sroa.gep7 = getelementptr inbounds i8, ptr %3, i64 8 + %.sink2.sroa.gep4 = getelementptr inbounds i8, ptr %3, i64 16 br label %.sink.split -8: ; preds = %2 - %.sink3.sroa.gep8 = getelementptr inbounds i8, ptr %3, i64 40 - %.sink2.sroa.gep4 = getelementptr inbounds i8, ptr %3, i64 48 - br label %.sink.split - -9: ; preds = %2 +8: ; preds = %2, %2 %.sink3.sroa.gep = getelementptr inbounds i8, ptr %3, i64 40 %.sink2.sroa.gep = getelementptr inbounds i8, ptr %3, i64 48 br label %.sink.split diff --git a/bench/meshlab/optimized/filter_mesh_alpha_wrap.cpp.ll b/bench/meshlab/optimized/filter_mesh_alpha_wrap.cpp.ll index d6c44fc7983..b8d7bed333f 100644 --- a/bench/meshlab/optimized/filter_mesh_alpha_wrap.cpp.ll +++ b/bench/meshlab/optimized/filter_mesh_alpha_wrap.cpp.ll @@ -57399,7 +57399,7 @@ define linkonce_odr noundef zeroext i1 @_ZNK4CGAL24Aff_transformation_repC3INS_1 ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr noundef double @_ZNK4CGAL24Aff_transformation_repC3INS_16Simple_cartesianIdEEE9cartesianEii(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %1, i32 noundef %2) unnamed_addr #4 comdat align 2 { - switch i32 %1, label %45 [ + switch i32 %1, label %44 [ i32 0, label %4 i32 1, label %17 i32 2, label %30 @@ -57416,22 +57416,22 @@ define linkonce_odr noundef double @_ZNK4CGAL24Aff_transformation_repC3INS_16Sim 5: ; preds = %4 %6 = getelementptr inbounds i8, ptr %0, i64 16 %7 = load double, ptr %6, align 8 - br label %45 + br label %44 8: ; preds = %4 %9 = getelementptr inbounds i8, ptr %0, i64 24 %10 = load double, ptr %9, align 8 - br label %45 + br label %44 11: ; preds = %4 %12 = getelementptr inbounds i8, ptr %0, i64 32 %13 = load double, ptr %12, align 8 - br label %45 + br label %44 14: ; preds = %4 %15 = getelementptr inbounds i8, ptr %0, i64 40 %16 = load double, ptr %15, align 8 - br label %45 + br label %44 17: ; preds = %3 switch i32 %2, label %27 [ @@ -57443,22 +57443,22 @@ define linkonce_odr noundef double @_ZNK4CGAL24Aff_transformation_repC3INS_16Sim 18: ; preds = %17 %19 = getelementptr inbounds i8, ptr %0, i64 48 %20 = load double, ptr %19, align 8 - br label %45 + br label %44 21: ; preds = %17 %22 = getelementptr inbounds i8, ptr %0, i64 56 %23 = load double, ptr %22, align 8 - br label %45 + br label %44 24: ; preds = %17 %25 = getelementptr inbounds i8, ptr %0, i64 64 %26 = load double, ptr %25, align 8 - br label %45 + br label %44 27: ; preds = %17 %28 = getelementptr inbounds i8, ptr %0, i64 72 %29 = load double, ptr %28, align 8 - br label %45 + br label %44 30: ; preds = %3 switch i32 %2, label %40 [ @@ -57470,32 +57470,30 @@ define linkonce_odr noundef double @_ZNK4CGAL24Aff_transformation_repC3INS_16Sim 31: ; preds = %30 %32 = getelementptr inbounds i8, ptr %0, i64 80 %33 = load double, ptr %32, align 8 - br label %45 + br label %44 34: ; preds = %30 %35 = getelementptr inbounds i8, ptr %0, i64 88 %36 = load double, ptr %35, align 8 - br label %45 + br label %44 37: ; preds = %30 %38 = getelementptr inbounds i8, ptr %0, i64 96 %39 = load double, ptr %38, align 8 - br label %45 + br label %44 40: ; preds = %30 %41 = getelementptr inbounds i8, ptr %0, i64 104 %42 = load double, ptr %41, align 8 - br label %45 + br label %44 43: ; preds = %3 %switch = icmp ult i32 %2, 3 - br i1 %switch, label %45, label %44 - -44: ; preds = %43 - br label %45 + %. = select i1 %switch, double 0.000000e+00, double 1.000000e+00 + br label %44 -45: ; preds = %43, %3, %44, %40, %37, %34, %31, %27, %24, %21, %18, %14, %11, %8, %5 - %.0 = phi double [ 1.000000e+00, %44 ], [ %42, %40 ], [ %39, %37 ], [ %36, %34 ], [ %33, %31 ], [ %29, %27 ], [ %26, %24 ], [ %23, %21 ], [ %20, %18 ], [ %16, %14 ], [ %13, %11 ], [ %10, %8 ], [ %7, %5 ], [ 0.000000e+00, %43 ], [ 0.000000e+00, %3 ] +44: ; preds = %3, %43, %40, %37, %34, %31, %27, %24, %21, %18, %14, %11, %8, %5 + %.0 = phi double [ %42, %40 ], [ %39, %37 ], [ %36, %34 ], [ %33, %31 ], [ %29, %27 ], [ %26, %24 ], [ %23, %21 ], [ %20, %18 ], [ %16, %14 ], [ %13, %11 ], [ %10, %8 ], [ %7, %5 ], [ %., %43 ], [ 0.000000e+00, %3 ] ret double %.0 } diff --git a/bench/mini-lsm-rs/optimized/45avienzelzw747t.ll b/bench/mini-lsm-rs/optimized/45avienzelzw747t.ll index 3a07df0d18a..d4bfe1c820b 100644 --- a/bench/mini-lsm-rs/optimized/45avienzelzw747t.ll +++ b/bench/mini-lsm-rs/optimized/45avienzelzw747t.ll @@ -4077,22 +4077,22 @@ define internal fastcc void @"_ZN17crossbeam_channel7flavors5array16Channel$LT$T %20 = xor i64 %19, -1 %21 = and i64 %13, %20 %22 = icmp eq i64 %17, %21 - br i1 %22, label %26, label %23 + br i1 %22, label %25, label %_ZN17crossbeam_channel7context7Context10try_select17h1b8daab6fecf9be5E.exit -23: ; preds = %26, %2 +_ZN17crossbeam_channel7context7Context10try_select17h1b8daab6fecf9be5E.exit: ; preds = %25, %2 %.val = load ptr, ptr %1, align 8, !nonnull !4, !noundef !4 - %24 = getelementptr inbounds i8, ptr %.val, i64 32 - %25 = cmpxchg ptr %24, i64 0, i64 1 acq_rel acquire, align 8 - br label %_ZN17crossbeam_channel7context7Context10try_select17h1b8daab6fecf9be5E.exit - -26: ; preds = %2 - %27 = load atomic i64, ptr %12 seq_cst, align 128 - %28 = load i64, ptr %18, align 16, !noundef !4 - %29 = and i64 %28, %27 - %.not = icmp eq i64 %29, 0 - br i1 %.not, label %_ZN17crossbeam_channel7context7Context10try_select17h1b8daab6fecf9be5E.exit, label %23 - -_ZN17crossbeam_channel7context7Context10try_select17h1b8daab6fecf9be5E.exit: ; preds = %23, %26 + %23 = getelementptr inbounds i8, ptr %.val, i64 32 + %24 = cmpxchg ptr %23, i64 0, i64 1 acq_rel acquire, align 8 + br label %29 + +25: ; preds = %2 + %26 = load atomic i64, ptr %12 seq_cst, align 128 + %27 = load i64, ptr %18, align 16, !noundef !4 + %28 = and i64 %27, %26 + %.not = icmp eq i64 %28, 0 + br i1 %.not, label %29, label %_ZN17crossbeam_channel7context7Context10try_select17h1b8daab6fecf9be5E.exit + +29: ; preds = %25, %_ZN17crossbeam_channel7context7Context10try_select17h1b8daab6fecf9be5E.exit %30 = getelementptr inbounds i8, ptr %0, i64 16 %31 = load ptr, ptr %30, align 8, !nonnull !4, !align !197, !noundef !4 %32 = load i64, ptr %31, align 8 @@ -4102,8 +4102,8 @@ _ZN17crossbeam_channel7context7Context10try_select17h1b8daab6fecf9be5E.exit: ; p %35 = getelementptr inbounds i8, ptr %.val4, i64 32 br label %36 -36: ; preds = %.thread.i.i, %_ZN17crossbeam_channel7context7Context10try_select17h1b8daab6fecf9be5E.exit - %.0.i = phi i32 [ 0, %_ZN17crossbeam_channel7context7Context10try_select17h1b8daab6fecf9be5E.exit ], [ %45, %.thread.i.i ] +36: ; preds = %.thread.i.i, %29 + %.0.i = phi i32 [ 0, %29 ], [ %45, %.thread.i.i ] %37 = load atomic i64, ptr %35 acquire, align 8 switch i64 %37, label %_ZN17crossbeam_channel7context7Context10wait_until17h03c0fc92a426ca55E.exit.thread8 [ i64 0, label %38 diff --git a/bench/nghttp2/optimized/llhttp.c.ll b/bench/nghttp2/optimized/llhttp.c.ll index 0199b7a1929..90f2dad0b36 100644 --- a/bench/nghttp2/optimized/llhttp.c.ll +++ b/bench/nghttp2/optimized/llhttp.c.ll @@ -1554,12 +1554,12 @@ if.end178: ; preds = %s_n_llhttp__interna i8 68, label %sw.bb206 i8 69, label %sw.bb208 i8 70, label %sw.bb210 - i8 97, label %sw.bb212 - i8 98, label %sw.bb214 - i8 99, label %sw.bb216 - i8 100, label %sw.bb218 - i8 101, label %sw.bb220 - i8 102, label %sw.bb222 + i8 97, label %sw.bb200 + i8 98, label %sw.bb202 + i8 99, label %sw.bb204 + i8 100, label %sw.bb206 + i8 101, label %sw.bb208 + i8 102, label %sw.bb210 ] sw.bb182: ; preds = %if.end178 @@ -1589,40 +1589,22 @@ sw.bb196: ; preds = %if.end178 sw.bb198: ; preds = %if.end178 br label %s_n_llhttp__internal__n_invoke_mul_add_content_length -sw.bb200: ; preds = %if.end178 +sw.bb200: ; preds = %if.end178, %if.end178 br label %s_n_llhttp__internal__n_invoke_mul_add_content_length -sw.bb202: ; preds = %if.end178 +sw.bb202: ; preds = %if.end178, %if.end178 br label %s_n_llhttp__internal__n_invoke_mul_add_content_length -sw.bb204: ; preds = %if.end178 +sw.bb204: ; preds = %if.end178, %if.end178 br label %s_n_llhttp__internal__n_invoke_mul_add_content_length -sw.bb206: ; preds = %if.end178 +sw.bb206: ; preds = %if.end178, %if.end178 br label %s_n_llhttp__internal__n_invoke_mul_add_content_length -sw.bb208: ; preds = %if.end178 +sw.bb208: ; preds = %if.end178, %if.end178 br label %s_n_llhttp__internal__n_invoke_mul_add_content_length -sw.bb210: ; preds = %if.end178 - br label %s_n_llhttp__internal__n_invoke_mul_add_content_length - -sw.bb212: ; preds = %if.end178 - br label %s_n_llhttp__internal__n_invoke_mul_add_content_length - -sw.bb214: ; preds = %if.end178 - br label %s_n_llhttp__internal__n_invoke_mul_add_content_length - -sw.bb216: ; preds = %if.end178 - br label %s_n_llhttp__internal__n_invoke_mul_add_content_length - -sw.bb218: ; preds = %if.end178 - br label %s_n_llhttp__internal__n_invoke_mul_add_content_length - -sw.bb220: ; preds = %if.end178 - br label %s_n_llhttp__internal__n_invoke_mul_add_content_length - -sw.bb222: ; preds = %if.end178 +sw.bb210: ; preds = %if.end178, %if.end178 br label %s_n_llhttp__internal__n_invoke_mul_add_content_length s_n_llhttp__internal__n_chunk_size_digit: ; preds = %entry, %s_n_llhttp__internal__n_invoke_update_content_length_1 @@ -1649,12 +1631,12 @@ if.end229: ; preds = %s_n_llhttp__interna i8 68, label %sw.bb257 i8 69, label %sw.bb259 i8 70, label %sw.bb261 - i8 97, label %sw.bb263 - i8 98, label %sw.bb265 - i8 99, label %sw.bb267 - i8 100, label %sw.bb269 - i8 101, label %sw.bb271 - i8 102, label %sw.bb273 + i8 97, label %sw.bb251 + i8 98, label %sw.bb253 + i8 99, label %sw.bb255 + i8 100, label %sw.bb257 + i8 101, label %sw.bb259 + i8 102, label %sw.bb261 ] sw.bb233: ; preds = %if.end229 @@ -1684,40 +1666,22 @@ sw.bb247: ; preds = %if.end229 sw.bb249: ; preds = %if.end229 br label %s_n_llhttp__internal__n_invoke_mul_add_content_length -sw.bb251: ; preds = %if.end229 - br label %s_n_llhttp__internal__n_invoke_mul_add_content_length - -sw.bb253: ; preds = %if.end229 - br label %s_n_llhttp__internal__n_invoke_mul_add_content_length - -sw.bb255: ; preds = %if.end229 - br label %s_n_llhttp__internal__n_invoke_mul_add_content_length - -sw.bb257: ; preds = %if.end229 - br label %s_n_llhttp__internal__n_invoke_mul_add_content_length - -sw.bb259: ; preds = %if.end229 - br label %s_n_llhttp__internal__n_invoke_mul_add_content_length - -sw.bb261: ; preds = %if.end229 - br label %s_n_llhttp__internal__n_invoke_mul_add_content_length - -sw.bb263: ; preds = %if.end229 +sw.bb251: ; preds = %if.end229, %if.end229 br label %s_n_llhttp__internal__n_invoke_mul_add_content_length -sw.bb265: ; preds = %if.end229 +sw.bb253: ; preds = %if.end229, %if.end229 br label %s_n_llhttp__internal__n_invoke_mul_add_content_length -sw.bb267: ; preds = %if.end229 +sw.bb255: ; preds = %if.end229, %if.end229 br label %s_n_llhttp__internal__n_invoke_mul_add_content_length -sw.bb269: ; preds = %if.end229 +sw.bb257: ; preds = %if.end229, %if.end229 br label %s_n_llhttp__internal__n_invoke_mul_add_content_length -sw.bb271: ; preds = %if.end229 +sw.bb259: ; preds = %if.end229, %if.end229 br label %s_n_llhttp__internal__n_invoke_mul_add_content_length -sw.bb273: ; preds = %if.end229 +sw.bb261: ; preds = %if.end229, %if.end229 br label %s_n_llhttp__internal__n_invoke_mul_add_content_length s_n_llhttp__internal__n_invoke_update_content_length_1: ; preds = %s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete, %s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete, %entry @@ -7350,9 +7314,9 @@ s_n_llhttp__internal__n_error_25: ; preds = %if.end167 store ptr null, ptr %_current, align 8 br label %return -s_n_llhttp__internal__n_invoke_mul_add_content_length: ; preds = %if.end229, %if.end178, %sw.bb273, %sw.bb271, %sw.bb269, %sw.bb267, %sw.bb265, %sw.bb263, %sw.bb261, %sw.bb259, %sw.bb257, %sw.bb255, %sw.bb253, %sw.bb251, %sw.bb249, %sw.bb247, %sw.bb245, %sw.bb243, %sw.bb241, %sw.bb239, %sw.bb237, %sw.bb235, %sw.bb233, %sw.bb222, %sw.bb220, %sw.bb218, %sw.bb216, %sw.bb214, %sw.bb212, %sw.bb210, %sw.bb208, %sw.bb206, %sw.bb204, %sw.bb202, %sw.bb200, %sw.bb198, %sw.bb196, %sw.bb194, %sw.bb192, %sw.bb190, %sw.bb188, %sw.bb186, %sw.bb184, %sw.bb182 - %p.addr.28.sink = phi ptr [ %p.addr.28, %sw.bb273 ], [ %p.addr.28, %sw.bb271 ], [ %p.addr.28, %sw.bb269 ], [ %p.addr.28, %sw.bb267 ], [ %p.addr.28, %sw.bb265 ], [ %p.addr.28, %sw.bb263 ], [ %p.addr.28, %sw.bb261 ], [ %p.addr.28, %sw.bb259 ], [ %p.addr.28, %sw.bb257 ], [ %p.addr.28, %sw.bb255 ], [ %p.addr.28, %sw.bb253 ], [ %p.addr.28, %sw.bb251 ], [ %p.addr.28, %sw.bb249 ], [ %p.addr.28, %sw.bb247 ], [ %p.addr.28, %sw.bb245 ], [ %p.addr.28, %sw.bb243 ], [ %p.addr.28, %sw.bb241 ], [ %p.addr.28, %sw.bb239 ], [ %p.addr.28, %sw.bb237 ], [ %p.addr.28, %sw.bb235 ], [ %p.addr.28, %sw.bb233 ], [ %p.addr.26, %sw.bb222 ], [ %p.addr.26, %sw.bb220 ], [ %p.addr.26, %sw.bb218 ], [ %p.addr.26, %sw.bb216 ], [ %p.addr.26, %sw.bb214 ], [ %p.addr.26, %sw.bb212 ], [ %p.addr.26, %sw.bb210 ], [ %p.addr.26, %sw.bb208 ], [ %p.addr.26, %sw.bb206 ], [ %p.addr.26, %sw.bb204 ], [ %p.addr.26, %sw.bb202 ], [ %p.addr.26, %sw.bb200 ], [ %p.addr.26, %sw.bb198 ], [ %p.addr.26, %sw.bb196 ], [ %p.addr.26, %sw.bb194 ], [ %p.addr.26, %sw.bb192 ], [ %p.addr.26, %sw.bb190 ], [ %p.addr.26, %sw.bb188 ], [ %p.addr.26, %sw.bb186 ], [ %p.addr.26, %sw.bb184 ], [ %p.addr.26, %sw.bb182 ], [ %p.addr.26, %if.end178 ], [ %p.addr.28, %if.end229 ] - %match.0 = phi i64 [ 15, %sw.bb273 ], [ 14, %sw.bb271 ], [ 13, %sw.bb269 ], [ 12, %sw.bb267 ], [ 11, %sw.bb265 ], [ 10, %sw.bb263 ], [ 15, %sw.bb261 ], [ 14, %sw.bb259 ], [ 13, %sw.bb257 ], [ 12, %sw.bb255 ], [ 11, %sw.bb253 ], [ 10, %sw.bb251 ], [ 9, %sw.bb249 ], [ 8, %sw.bb247 ], [ 7, %sw.bb245 ], [ 6, %sw.bb243 ], [ 5, %sw.bb241 ], [ 4, %sw.bb239 ], [ 3, %sw.bb237 ], [ 2, %sw.bb235 ], [ 1, %sw.bb233 ], [ 15, %sw.bb222 ], [ 14, %sw.bb220 ], [ 13, %sw.bb218 ], [ 12, %sw.bb216 ], [ 11, %sw.bb214 ], [ 10, %sw.bb212 ], [ 15, %sw.bb210 ], [ 14, %sw.bb208 ], [ 13, %sw.bb206 ], [ 12, %sw.bb204 ], [ 11, %sw.bb202 ], [ 10, %sw.bb200 ], [ 9, %sw.bb198 ], [ 8, %sw.bb196 ], [ 7, %sw.bb194 ], [ 6, %sw.bb192 ], [ 5, %sw.bb190 ], [ 4, %sw.bb188 ], [ 3, %sw.bb186 ], [ 2, %sw.bb184 ], [ 1, %sw.bb182 ], [ 0, %if.end178 ], [ 0, %if.end229 ] +s_n_llhttp__internal__n_invoke_mul_add_content_length: ; preds = %if.end229, %if.end178, %sw.bb261, %sw.bb259, %sw.bb257, %sw.bb255, %sw.bb253, %sw.bb251, %sw.bb249, %sw.bb247, %sw.bb245, %sw.bb243, %sw.bb241, %sw.bb239, %sw.bb237, %sw.bb235, %sw.bb233, %sw.bb210, %sw.bb208, %sw.bb206, %sw.bb204, %sw.bb202, %sw.bb200, %sw.bb198, %sw.bb196, %sw.bb194, %sw.bb192, %sw.bb190, %sw.bb188, %sw.bb186, %sw.bb184, %sw.bb182 + %p.addr.28.sink = phi ptr [ %p.addr.28, %sw.bb261 ], [ %p.addr.28, %sw.bb259 ], [ %p.addr.28, %sw.bb257 ], [ %p.addr.28, %sw.bb255 ], [ %p.addr.28, %sw.bb253 ], [ %p.addr.28, %sw.bb251 ], [ %p.addr.28, %sw.bb249 ], [ %p.addr.28, %sw.bb247 ], [ %p.addr.28, %sw.bb245 ], [ %p.addr.28, %sw.bb243 ], [ %p.addr.28, %sw.bb241 ], [ %p.addr.28, %sw.bb239 ], [ %p.addr.28, %sw.bb237 ], [ %p.addr.28, %sw.bb235 ], [ %p.addr.28, %sw.bb233 ], [ %p.addr.26, %sw.bb210 ], [ %p.addr.26, %sw.bb208 ], [ %p.addr.26, %sw.bb206 ], [ %p.addr.26, %sw.bb204 ], [ %p.addr.26, %sw.bb202 ], [ %p.addr.26, %sw.bb200 ], [ %p.addr.26, %sw.bb198 ], [ %p.addr.26, %sw.bb196 ], [ %p.addr.26, %sw.bb194 ], [ %p.addr.26, %sw.bb192 ], [ %p.addr.26, %sw.bb190 ], [ %p.addr.26, %sw.bb188 ], [ %p.addr.26, %sw.bb186 ], [ %p.addr.26, %sw.bb184 ], [ %p.addr.26, %sw.bb182 ], [ %p.addr.26, %if.end178 ], [ %p.addr.28, %if.end229 ] + %match.0 = phi i64 [ 15, %sw.bb261 ], [ 14, %sw.bb259 ], [ 13, %sw.bb257 ], [ 12, %sw.bb255 ], [ 11, %sw.bb253 ], [ 10, %sw.bb251 ], [ 9, %sw.bb249 ], [ 8, %sw.bb247 ], [ 7, %sw.bb245 ], [ 6, %sw.bb243 ], [ 5, %sw.bb241 ], [ 4, %sw.bb239 ], [ 3, %sw.bb237 ], [ 2, %sw.bb235 ], [ 1, %sw.bb233 ], [ 15, %sw.bb210 ], [ 14, %sw.bb208 ], [ 13, %sw.bb206 ], [ 12, %sw.bb204 ], [ 11, %sw.bb202 ], [ 10, %sw.bb200 ], [ 9, %sw.bb198 ], [ 8, %sw.bb196 ], [ 7, %sw.bb194 ], [ 6, %sw.bb192 ], [ 5, %sw.bb190 ], [ 4, %sw.bb188 ], [ 3, %sw.bb186 ], [ 2, %sw.bb184 ], [ 1, %sw.bb182 ], [ 0, %if.end178 ], [ 0, %if.end229 ] %incdec.ptr274 = getelementptr inbounds i8, ptr %p.addr.28.sink, i64 1 %content_length.i4123 = getelementptr inbounds i8, ptr %state, i64 64 %709 = load i64, ptr %content_length.i4123, align 8 diff --git a/bench/nlohmann_json/optimized/unit-iterators2.cpp.ll b/bench/nlohmann_json/optimized/unit-iterators2.cpp.ll index d8f1d708a67..1f7cdd13ce1 100644 --- a/bench/nlohmann_json/optimized/unit-iterators2.cpp.ll +++ b/bench/nlohmann_json/optimized/unit-iterators2.cpp.ll @@ -3582,12 +3582,12 @@ arraydestroy.body174: ; preds = %ehcleanup170, %arra br i1 %arraydestroy.done177, label %ehcleanup2712, label %arraydestroy.body174 lpad180.loopexit: ; preds = %for.body2495, %invoke.cont2497, %for.cond2492 - %lpad.loopexit6770 = landingpad { ptr, i32 } + %lpad.loopexit6772 = landingpad { ptr, i32 } cleanup br label %ehcleanup2710 lpad180.loopexit.split-lp: ; preds = %for.body, %invoke.cont195, %invoke.cont201, %invoke.cont205, %invoke.cont211, %invoke.cont215, %invoke.cont219, %invoke.cont225, %invoke.cont231, %invoke.cont235, %invoke.cont241, %invoke.cont247, %invoke.cont251, %invoke.cont258, %invoke.cont262, %invoke.cont268, %invoke.cont274, %invoke.cont278, %invoke.cont284, %invoke.cont290, %invoke.cont294, %invoke.cont300, %invoke.cont306, %invoke.cont310, %invoke.cont321, %invoke.cont324, %invoke.cont330, %invoke.cont341, %invoke.cont344, %invoke.cont350, %invoke.cont361, %invoke.cont364, %invoke.cont370, %invoke.cont381, %invoke.cont384, %invoke.cont390, %invoke.cont401, %invoke.cont404, %invoke.cont410, %invoke.cont421, %invoke.cont424, %invoke.cont430, %invoke.cont441, %invoke.cont444, %invoke.cont450, %invoke.cont461, %invoke.cont464, %do.body, %if.then477, %do.body505, %if.then510, %do.body550, %if.then555, %do.body595, %if.then600, %do.body640, %if.then645, %do.body685, %if.then690, %do.body730, %if.then735, %do.body775, %if.then780, %if.else820, %invoke.cont824, %invoke.cont830, %invoke.cont834, %invoke.cont841, %invoke.cont845, %invoke.cont852, %invoke.cont856, %invoke.cont863, %invoke.cont867, %invoke.cont873, %invoke.cont879, %invoke.cont883, %invoke.cont890, %invoke.cont894, %invoke.cont901, %invoke.cont905, %invoke.cont912, %do.body923, %if.then928, %do.body968, %if.then973, %do.body1013, %if.then1018, %do.body1058, %if.then1063, %do.body1103, %if.then1108, %do.body1148, %if.then1153, %do.body1193, %if.then1198, %do.body1238, %if.then1243, %if.else1283, %invoke.cont1292, %invoke.cont1295, %invoke.cont1301, %invoke.cont1312, %invoke.cont1315, %invoke.cont1321, %invoke.cont1332, %invoke.cont1335, %invoke.cont1341, %invoke.cont1352, %invoke.cont1355, %invoke.cont1361, %invoke.cont1372, %invoke.cont1375, %invoke.cont1381, %invoke.cont1392, %invoke.cont1395, %invoke.cont1401, %invoke.cont1412, %invoke.cont1415, %invoke.cont1421, %invoke.cont1432, %invoke.cont1435, %do.body1448, %if.then1453, %do.body1493, %if.then1498, %do.body1538, %if.then1543, %do.body1583, %if.then1588, %do.body1628, %if.then1633, %do.body1673, %if.then1678, %do.body1718, %if.then1723, %do.body1763, %if.then1768, %if.else1808, %invoke.cont1817, %invoke.cont1820, %invoke.cont1825, %invoke.cont1836, %invoke.cont1839, %invoke.cont1844, %invoke.cont1855, %invoke.cont1858, %invoke.cont1863, %invoke.cont1874, %invoke.cont1877, %invoke.cont1882, %invoke.cont1893, %invoke.cont1896, %invoke.cont1901, %invoke.cont1912, %invoke.cont1915, %invoke.cont1920, %invoke.cont1931, %invoke.cont1934, %invoke.cont1939, %invoke.cont1950, %invoke.cont1953, %do.body1965, %if.then1970, %do.body2010, %if.then2015, %do.body2055, %if.then2060, %do.body2100, %if.then2105, %do.body2145, %if.then2150, %do.body2190, %if.then2195, %do.body2235, %if.then2240, %do.body2280, %if.then2285, %if.else2325, %invoke.cont2334, %invoke.cont2337, %invoke.cont2343, %invoke.cont2354, %invoke.cont2357, %invoke.cont2363, %invoke.cont2374, %invoke.cont2377, %invoke.cont2383, %invoke.cont2394, %invoke.cont2397, %invoke.cont2403, %invoke.cont2414, %invoke.cont2417, %invoke.cont2423, %invoke.cont2434, %invoke.cont2437, %invoke.cont2443, %invoke.cont2454, %invoke.cont2457, %invoke.cont2463, %invoke.cont2474, %invoke.cont2477, %for.cond, %invoke.cont316, %invoke.cont336, %invoke.cont356, %invoke.cont376, %invoke.cont396, %invoke.cont416, %invoke.cont436, %invoke.cont456, %invoke.cont1287, %invoke.cont1307, %invoke.cont1327, %invoke.cont1347, %invoke.cont1367, %invoke.cont1387, %invoke.cont1407, %invoke.cont1427, %invoke.cont1812, %invoke.cont1831, %invoke.cont1850, %invoke.cont1869, %invoke.cont1888, %invoke.cont1907, %invoke.cont1926, %invoke.cont1945, %invoke.cont2329, %invoke.cont2349, %invoke.cont2369, %invoke.cont2389, %invoke.cont2409, %invoke.cont2429, %invoke.cont2449, %invoke.cont2469 - %lpad.loopexit.split-lp6771 = landingpad { ptr, i32 } + %lpad.loopexit.split-lp6773 = landingpad { ptr, i32 } cleanup br label %ehcleanup2710 @@ -8942,7 +8942,7 @@ terminate.lpad.i.i1476: ; preds = %for.end2709 unreachable ehcleanup2710: ; preds = %lpad180.loopexit, %lpad180.loopexit.split-lp, %ehcleanup2705, %lpad2482, %lpad2462, %lpad2442, %lpad2422, %lpad2402, %lpad2382, %lpad2362, %lpad2342, %ehcleanup2320, %lpad2289, %ehcleanup2275, %lpad2244, %ehcleanup2230, %lpad2199, %ehcleanup2185, %lpad2154, %ehcleanup2140, %lpad2109, %ehcleanup2095, %lpad2064, %ehcleanup2050, %lpad2019, %ehcleanup2005, %lpad1974, %lpad1957, %lpad1938, %lpad1919, %lpad1900, %lpad1881, %lpad1862, %lpad1843, %lpad1824, %ehcleanup1803, %lpad1772, %ehcleanup1758, %lpad1727, %ehcleanup1713, %lpad1682, %ehcleanup1668, %lpad1637, %ehcleanup1623, %lpad1592, %ehcleanup1578, %lpad1547, %ehcleanup1533, %lpad1502, %ehcleanup1488, %lpad1457, %lpad1440, %lpad1420, %lpad1400, %lpad1380, %lpad1360, %lpad1340, %lpad1320, %lpad1300, %ehcleanup1278, %lpad1247, %ehcleanup1233, %lpad1202, %ehcleanup1188, %lpad1157, %ehcleanup1143, %lpad1112, %ehcleanup1098, %lpad1067, %ehcleanup1053, %lpad1022, %ehcleanup1008, %lpad977, %ehcleanup963, %lpad932, %lpad915, %lpad904, %lpad893, %lpad882, %lpad866, %lpad855, %lpad844, %lpad833, %ehcleanup815, %lpad784, %ehcleanup770, %lpad739, %ehcleanup725, %lpad694, %ehcleanup680, %lpad649, %ehcleanup635, %lpad604, %ehcleanup590, %lpad559, %ehcleanup545, %lpad514, %ehcleanup503, %lpad480, %lpad469, %lpad449, %lpad429, %lpad409, %lpad389, %lpad369, %lpad349, %lpad329, %lpad309, %lpad293, %lpad277, %lpad261, %lpad250, %lpad234, %lpad218, %lpad204 - %.pn516 = phi { ptr, i32 } [ %.pn514, %ehcleanup2320 ], [ %491, %lpad2289 ], [ %.pn512, %ehcleanup2275 ], [ %481, %lpad2244 ], [ %.pn510, %ehcleanup2230 ], [ %471, %lpad2199 ], [ %.pn508, %ehcleanup2185 ], [ %461, %lpad2154 ], [ %.pn506, %ehcleanup2140 ], [ %451, %lpad2109 ], [ %.pn504, %ehcleanup2095 ], [ %441, %lpad2064 ], [ %.pn502, %ehcleanup2050 ], [ %431, %lpad2019 ], [ %.pn500, %ehcleanup2005 ], [ %421, %lpad1974 ], [ %515, %lpad2482 ], [ %514, %lpad2462 ], [ %513, %lpad2442 ], [ %512, %lpad2422 ], [ %511, %lpad2402 ], [ %510, %lpad2382 ], [ %509, %lpad2362 ], [ %508, %lpad2342 ], [ %.pn498, %ehcleanup1803 ], [ %394, %lpad1772 ], [ %.pn496, %ehcleanup1758 ], [ %384, %lpad1727 ], [ %.pn494, %ehcleanup1713 ], [ %374, %lpad1682 ], [ %.pn492, %ehcleanup1668 ], [ %364, %lpad1637 ], [ %.pn490, %ehcleanup1623 ], [ %354, %lpad1592 ], [ %.pn488, %ehcleanup1578 ], [ %344, %lpad1547 ], [ %.pn486, %ehcleanup1533 ], [ %334, %lpad1502 ], [ %.pn484, %ehcleanup1488 ], [ %324, %lpad1457 ], [ %418, %lpad1957 ], [ %417, %lpad1938 ], [ %416, %lpad1919 ], [ %415, %lpad1900 ], [ %414, %lpad1881 ], [ %413, %lpad1862 ], [ %412, %lpad1843 ], [ %411, %lpad1824 ], [ %.pn482, %ehcleanup1278 ], [ %297, %lpad1247 ], [ %.pn480, %ehcleanup1233 ], [ %287, %lpad1202 ], [ %.pn478, %ehcleanup1188 ], [ %277, %lpad1157 ], [ %.pn476, %ehcleanup1143 ], [ %267, %lpad1112 ], [ %.pn474, %ehcleanup1098 ], [ %257, %lpad1067 ], [ %.pn472, %ehcleanup1053 ], [ %247, %lpad1022 ], [ %.pn470, %ehcleanup1008 ], [ %237, %lpad977 ], [ %.pn468, %ehcleanup963 ], [ %227, %lpad932 ], [ %321, %lpad1440 ], [ %320, %lpad1420 ], [ %319, %lpad1400 ], [ %318, %lpad1380 ], [ %317, %lpad1360 ], [ %316, %lpad1340 ], [ %315, %lpad1320 ], [ %314, %lpad1300 ], [ %.pn466, %ehcleanup815 ], [ %200, %lpad784 ], [ %.pn464, %ehcleanup770 ], [ %190, %lpad739 ], [ %.pn462, %ehcleanup725 ], [ %180, %lpad694 ], [ %.pn460, %ehcleanup680 ], [ %170, %lpad649 ], [ %.pn458, %ehcleanup635 ], [ %160, %lpad604 ], [ %.pn456, %ehcleanup590 ], [ %150, %lpad559 ], [ %.pn454, %ehcleanup545 ], [ %140, %lpad514 ], [ %.pn452, %ehcleanup503 ], [ %130, %lpad480 ], [ %224, %lpad915 ], [ %223, %lpad904 ], [ %222, %lpad893 ], [ %221, %lpad882 ], [ %220, %lpad866 ], [ %219, %lpad855 ], [ %218, %lpad844 ], [ %217, %lpad833 ], [ %129, %lpad469 ], [ %128, %lpad449 ], [ %127, %lpad429 ], [ %126, %lpad409 ], [ %125, %lpad389 ], [ %124, %lpad369 ], [ %123, %lpad349 ], [ %122, %lpad329 ], [ %121, %lpad309 ], [ %120, %lpad293 ], [ %119, %lpad277 ], [ %118, %lpad261 ], [ %117, %lpad250 ], [ %116, %lpad234 ], [ %115, %lpad218 ], [ %114, %lpad204 ], [ %.pn450, %ehcleanup2705 ], [ %lpad.loopexit6770, %lpad180.loopexit ], [ %lpad.loopexit.split-lp6771, %lpad180.loopexit.split-lp ] + %.pn516 = phi { ptr, i32 } [ %.pn514, %ehcleanup2320 ], [ %491, %lpad2289 ], [ %.pn512, %ehcleanup2275 ], [ %481, %lpad2244 ], [ %.pn510, %ehcleanup2230 ], [ %471, %lpad2199 ], [ %.pn508, %ehcleanup2185 ], [ %461, %lpad2154 ], [ %.pn506, %ehcleanup2140 ], [ %451, %lpad2109 ], [ %.pn504, %ehcleanup2095 ], [ %441, %lpad2064 ], [ %.pn502, %ehcleanup2050 ], [ %431, %lpad2019 ], [ %.pn500, %ehcleanup2005 ], [ %421, %lpad1974 ], [ %515, %lpad2482 ], [ %514, %lpad2462 ], [ %513, %lpad2442 ], [ %512, %lpad2422 ], [ %511, %lpad2402 ], [ %510, %lpad2382 ], [ %509, %lpad2362 ], [ %508, %lpad2342 ], [ %.pn498, %ehcleanup1803 ], [ %394, %lpad1772 ], [ %.pn496, %ehcleanup1758 ], [ %384, %lpad1727 ], [ %.pn494, %ehcleanup1713 ], [ %374, %lpad1682 ], [ %.pn492, %ehcleanup1668 ], [ %364, %lpad1637 ], [ %.pn490, %ehcleanup1623 ], [ %354, %lpad1592 ], [ %.pn488, %ehcleanup1578 ], [ %344, %lpad1547 ], [ %.pn486, %ehcleanup1533 ], [ %334, %lpad1502 ], [ %.pn484, %ehcleanup1488 ], [ %324, %lpad1457 ], [ %418, %lpad1957 ], [ %417, %lpad1938 ], [ %416, %lpad1919 ], [ %415, %lpad1900 ], [ %414, %lpad1881 ], [ %413, %lpad1862 ], [ %412, %lpad1843 ], [ %411, %lpad1824 ], [ %.pn482, %ehcleanup1278 ], [ %297, %lpad1247 ], [ %.pn480, %ehcleanup1233 ], [ %287, %lpad1202 ], [ %.pn478, %ehcleanup1188 ], [ %277, %lpad1157 ], [ %.pn476, %ehcleanup1143 ], [ %267, %lpad1112 ], [ %.pn474, %ehcleanup1098 ], [ %257, %lpad1067 ], [ %.pn472, %ehcleanup1053 ], [ %247, %lpad1022 ], [ %.pn470, %ehcleanup1008 ], [ %237, %lpad977 ], [ %.pn468, %ehcleanup963 ], [ %227, %lpad932 ], [ %321, %lpad1440 ], [ %320, %lpad1420 ], [ %319, %lpad1400 ], [ %318, %lpad1380 ], [ %317, %lpad1360 ], [ %316, %lpad1340 ], [ %315, %lpad1320 ], [ %314, %lpad1300 ], [ %.pn466, %ehcleanup815 ], [ %200, %lpad784 ], [ %.pn464, %ehcleanup770 ], [ %190, %lpad739 ], [ %.pn462, %ehcleanup725 ], [ %180, %lpad694 ], [ %.pn460, %ehcleanup680 ], [ %170, %lpad649 ], [ %.pn458, %ehcleanup635 ], [ %160, %lpad604 ], [ %.pn456, %ehcleanup590 ], [ %150, %lpad559 ], [ %.pn454, %ehcleanup545 ], [ %140, %lpad514 ], [ %.pn452, %ehcleanup503 ], [ %130, %lpad480 ], [ %224, %lpad915 ], [ %223, %lpad904 ], [ %222, %lpad893 ], [ %221, %lpad882 ], [ %220, %lpad866 ], [ %219, %lpad855 ], [ %218, %lpad844 ], [ %217, %lpad833 ], [ %129, %lpad469 ], [ %128, %lpad449 ], [ %127, %lpad429 ], [ %126, %lpad409 ], [ %125, %lpad389 ], [ %124, %lpad369 ], [ %123, %lpad349 ], [ %122, %lpad329 ], [ %121, %lpad309 ], [ %120, %lpad293 ], [ %119, %lpad277 ], [ %118, %lpad261 ], [ %117, %lpad250 ], [ %116, %lpad234 ], [ %115, %lpad218 ], [ %114, %lpad204 ], [ %.pn450, %ehcleanup2705 ], [ %lpad.loopexit6772, %lpad180.loopexit ], [ %lpad.loopexit.split-lp6773, %lpad180.loopexit.split-lp ] call void @_ZN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES3_IhSaIhEEvED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %j_values) #21 br label %ehcleanup2712 diff --git a/bench/nori/optimized/nanovg.c.ll b/bench/nori/optimized/nanovg.c.ll index e6c6b4144b0..6e9dddac112 100644 --- a/bench/nori/optimized/nanovg.c.ll +++ b/bench/nori/optimized/nanovg.c.ll @@ -56010,7 +56010,7 @@ stbi__get8.exit86: ; preds = %34, %stbi__refill_b %63 = getelementptr inbounds i8, ptr %0, i64 208 %64 = load ptr, ptr %63, align 8 store ptr %64, ptr %7, align 8 - br label %387 + br label %386 stbi__get8.exit86.thread: ; preds = %37, %stbi__get8.exit86 %65 = phi ptr [ %57, %stbi__get8.exit86 ], [ %31, %37 ] @@ -56082,7 +56082,7 @@ stbi__get8.exit92: ; preds = %68, %71, %stbi__ref %97 = getelementptr inbounds i8, ptr %0, i64 208 %98 = load ptr, ptr %97, align 8 store ptr %98, ptr %7, align 8 - br label %387 + br label %386 99: ; preds = %92 %100 = getelementptr inbounds i8, ptr %0, i64 16 @@ -56183,7 +56183,7 @@ stbi__get8.exit100.thread: ; preds = %121, %stbi__get8.ex %143 = getelementptr inbounds i8, ptr %0, i64 208 %144 = load ptr, ptr %143, align 8 store ptr %144, ptr %7, align 8 - br label %387 + br label %386 145: ; preds = %stbi__get8.exit100, %stbi__get8.exit100, %stbi__get8.exit100, %stbi__get8.exit100, %stbi__get8.exit100 %146 = load ptr, ptr %100, align 8 @@ -56225,7 +56225,7 @@ stbi__get8.exit100.thread: ; preds = %121, %stbi__get8.ex %165 = getelementptr inbounds i8, ptr %0, i64 208 %166 = load ptr, ptr %165, align 8 store ptr %166, ptr %7, align 8 - br label %387 + br label %386 167: ; preds = %160 %168 = getelementptr inbounds i8, ptr %0, i64 16 @@ -56376,7 +56376,7 @@ stbi__get16le.exit: ; preds = %212, %215, %stbi__r %245 = getelementptr inbounds i8, ptr %0, i64 208 %246 = load ptr, ptr %245, align 8 store ptr %246, ptr %7, align 8 - br label %387 + br label %386 247: ; preds = %stbi__get16le.exit %248 = icmp ult ptr %236, %235 @@ -56495,7 +56495,7 @@ stbi__get16le.exit122: ; preds = %275, %278, %stbi__r %308 = getelementptr inbounds i8, ptr %0, i64 208 %309 = load ptr, ptr %308, align 8 store ptr %309, ptr %7, align 8 - br label %387 + br label %386 310: ; preds = %stbi__get16le.exit122 %311 = icmp ult ptr %299, %298 @@ -56598,7 +56598,7 @@ stbi__get8.exit134.sink.split: ; preds = %stbi__refill_buffer stbi__get8.exit134: ; preds = %stbi__get8.exit134.sink.split, %340 %.not = icmp eq i8 %.070.shrunk, 0 - br i1 %.not, label %368, label %359 + br i1 %.not, label %367, label %359 359: ; preds = %stbi__get8.exit134 switch i8 %.0.i127, label %360 [ @@ -56613,87 +56613,84 @@ stbi__get8.exit134: ; preds = %stbi__get8.exit134. %363 = getelementptr inbounds i8, ptr %0, i64 208 %364 = load ptr, ptr %363, align 8 store ptr %364, ptr %7, align 8 - br label %387 + br label %386 365: ; preds = %359, %359 switch i8 %.070.shrunk, label %stbi__tga_get_comp.exit.thread146 [ i8 8, label %stbi__tga_get_comp.exit.thread i8 16, label %366 - i8 15, label %367 + i8 15, label %366 i8 24, label %stbi__tga_get_comp.exit i8 32, label %stbi__tga_get_comp.exit ] -366: ; preds = %365 +366: ; preds = %365, %365 br label %stbi__tga_get_comp.exit.thread -367: ; preds = %365 - br label %stbi__tga_get_comp.exit.thread - -368: ; preds = %stbi__get8.exit134 +367: ; preds = %stbi__get8.exit134 switch i8 %.0.i127, label %stbi__tga_get_comp.exit.thread146 [ i8 8, label %stbi__tga_get_comp.exit.thread - i8 16, label %369 - i8 15, label %372 - i8 24, label %373 - i8 32, label %373 + i8 16, label %368 + i8 15, label %371 + i8 24, label %372 + i8 32, label %372 ] -369: ; preds = %368 - %370 = and i8 %.0.i91, -9 - %371 = icmp eq i8 %370, 3 - %.mux.i = select i1 %371, i32 2, i32 3 +368: ; preds = %367 + %369 = and i8 %.0.i91, -9 + %370 = icmp eq i8 %369, 3 + %.mux.i = select i1 %370, i32 2, i32 3 br label %stbi__tga_get_comp.exit.thread -372: ; preds = %368 +371: ; preds = %367 br label %stbi__tga_get_comp.exit.thread -373: ; preds = %368, %368 - %374 = lshr i8 %.0.i127, 3 - %375 = zext nneg i8 %374 to i32 +372: ; preds = %367, %367 + %373 = lshr i8 %.0.i127, 3 + %374 = zext nneg i8 %373 to i32 br label %stbi__tga_get_comp.exit.thread stbi__tga_get_comp.exit: ; preds = %365, %365 - %376 = lshr i8 %.070.shrunk, 3 - %377 = zext nneg i8 %376 to i32 + %375 = lshr i8 %.070.shrunk, 3 + %376 = zext nneg i8 %375 to i32 br label %stbi__tga_get_comp.exit.thread -stbi__tga_get_comp.exit.thread146: ; preds = %368, %365 - %378 = getelementptr inbounds i8, ptr %0, i64 200 - %379 = load ptr, ptr %378, align 8 - store ptr %379, ptr %5, align 8 - %380 = getelementptr inbounds i8, ptr %0, i64 208 - %381 = load ptr, ptr %380, align 8 - store ptr %381, ptr %7, align 8 - br label %387 - -stbi__tga_get_comp.exit.thread: ; preds = %stbi__tga_get_comp.exit, %372, %369, %368, %373, %367, %366, %365 - %.069144 = phi i32 [ %377, %stbi__tga_get_comp.exit ], [ 3, %372 ], [ %.mux.i, %369 ], [ 1, %368 ], [ %375, %373 ], [ 3, %367 ], [ 3, %366 ], [ 1, %365 ] +stbi__tga_get_comp.exit.thread146: ; preds = %367, %365 + %377 = getelementptr inbounds i8, ptr %0, i64 200 + %378 = load ptr, ptr %377, align 8 + store ptr %378, ptr %5, align 8 + %379 = getelementptr inbounds i8, ptr %0, i64 208 + %380 = load ptr, ptr %379, align 8 + store ptr %380, ptr %7, align 8 + br label %386 + +stbi__tga_get_comp.exit.thread: ; preds = %stbi__tga_get_comp.exit, %371, %368, %367, %372, %366, %365 + %.069144 = phi i32 [ %376, %stbi__tga_get_comp.exit ], [ 3, %371 ], [ %.mux.i, %368 ], [ 1, %367 ], [ %374, %372 ], [ 3, %366 ], [ 1, %365 ] %.not78 = icmp eq ptr %1, null - br i1 %.not78, label %383, label %382 + br i1 %.not78, label %382, label %381 -382: ; preds = %stbi__tga_get_comp.exit.thread +381: ; preds = %stbi__tga_get_comp.exit.thread store i32 %240, ptr %1, align 4 - br label %383 + br label %382 -383: ; preds = %382, %stbi__tga_get_comp.exit.thread +382: ; preds = %381, %stbi__tga_get_comp.exit.thread %.not79 = icmp eq ptr %2, null - br i1 %.not79, label %385, label %384 + br i1 %.not79, label %384, label %383 -384: ; preds = %383 +383: ; preds = %382 store i32 %303, ptr %2, align 4 - br label %385 + br label %384 -385: ; preds = %384, %383 +384: ; preds = %383, %382 %.not80 = icmp eq ptr %3, null - br i1 %.not80, label %387, label %386 + br i1 %.not80, label %386, label %385 -386: ; preds = %385 +385: ; preds = %384 store i32 %.069144, ptr %3, align 4 - br label %387 + br label %386 -387: ; preds = %385, %386, %stbi__tga_get_comp.exit.thread146, %360, %305, %242, %162, %stbi__get8.exit100.thread, %94, %60 - %.0 = phi i32 [ 0, %60 ], [ 0, %94 ], [ 0, %stbi__get8.exit100.thread ], [ 0, %242 ], [ 0, %305 ], [ 0, %360 ], [ 0, %stbi__tga_get_comp.exit.thread146 ], [ 0, %162 ], [ 1, %386 ], [ 1, %385 ] +386: ; preds = %384, %385, %stbi__tga_get_comp.exit.thread146, %360, %305, %242, %162, %stbi__get8.exit100.thread, %94, %60 + %.0 = phi i32 [ 0, %60 ], [ 0, %94 ], [ 0, %stbi__get8.exit100.thread ], [ 0, %242 ], [ 0, %305 ], [ 0, %360 ], [ 0, %stbi__tga_get_comp.exit.thread146 ], [ 0, %162 ], [ 1, %385 ], [ 1, %384 ] ret i32 %.0 } diff --git a/bench/ockam-rs/optimized/1sna1kukcpmrcv4c.ll b/bench/ockam-rs/optimized/1sna1kukcpmrcv4c.ll index 73f8c7d40a7..29737a71ad2 100644 --- a/bench/ockam-rs/optimized/1sna1kukcpmrcv4c.ll +++ b/bench/ockam-rs/optimized/1sna1kukcpmrcv4c.ll @@ -6368,9 +6368,9 @@ define void @_ZN11ockam_vault8software6legacy13stored_secret12StoredSecret6creat i32 0, label %7 i32 1, label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit.i i32 2, label %9 - i32 3, label %10 - i32 4, label %11 - i32 5, label %12 + i32 3, label %9 + i32 4, label %9 + i32 5, label %10 ] default.unreachable1.i.i: ; preds = %4 @@ -6380,92 +6380,86 @@ default.unreachable1.i.i: ; preds = %4 %8 = zext i32 %3 to i64 br label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit.i -9: ; preds = %4 +9: ; preds = %4, %4, %4 br label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit.i 10: ; preds = %4 br label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit.i -11: ; preds = %4 - br label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit.i - -12: ; preds = %4 - br label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit.i - -_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit.i: ; preds = %12, %11, %10, %9, %7, %4 - %.0.i.i = phi i64 [ 65, %12 ], [ 32, %11 ], [ 32, %10 ], [ 32, %9 ], [ %8, %7 ], [ 16, %4 ] +_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit.i: ; preds = %10, %9, %7, %4 + %.0.i.i = phi i64 [ 65, %10 ], [ 32, %9 ], [ %8, %7 ], [ 16, %4 ] %.not.i = icmp eq i64 %.val, %.0.i.i - br i1 %.not.i, label %28, label %13 + br i1 %.not.i, label %26, label %11 -13: ; preds = %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit.i - %14 = invoke noundef nonnull align 8 ptr @_ZN10ockam_core5error5Error3new17h741ed8fe90ab66c5E.llvm.8710632623519176205(i8 noundef 2, i8 noundef 2, i8 noundef 5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.5994e10fffdafa843df54943a4559014.120) - to label %_ZN11ockam_vault8software6legacy13stored_secret12StoredSecret5check17hecb7d82caa4caea1E.exit unwind label %30 +11: ; preds = %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit.i + %12 = invoke noundef nonnull align 8 ptr @_ZN10ockam_core5error5Error3new17h741ed8fe90ab66c5E.llvm.8710632623519176205(i8 noundef 2, i8 noundef 2, i8 noundef 5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.5994e10fffdafa843df54943a4559014.120) + to label %_ZN11ockam_vault8software6legacy13stored_secret12StoredSecret5check17hecb7d82caa4caea1E.exit unwind label %28 -_ZN11ockam_vault8software6legacy13stored_secret12StoredSecret5check17hecb7d82caa4caea1E.exit: ; preds = %13 - %15 = getelementptr inbounds i8, ptr %0, i64 8 - store ptr %14, ptr %15, align 8 +_ZN11ockam_vault8software6legacy13stored_secret12StoredSecret5check17hecb7d82caa4caea1E.exit: ; preds = %11 + %13 = getelementptr inbounds i8, ptr %0, i64 8 + store ptr %12, ptr %13, align 8 store i32 6, ptr %0, align 8 invoke void @"_ZN61_$LT$alloc..vec..Vec$LT$Z$GT$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h9e93a9209dca9605E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1) - to label %"_ZN87_$LT$ockam_vault..software..legacy..secret..Secret$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc82580b55573c7fbE.exit.i" unwind label %16 + to label %"_ZN87_$LT$ockam_vault..software..legacy..secret..Secret$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc82580b55573c7fbE.exit.i" unwind label %14 -16: ; preds = %_ZN11ockam_vault8software6legacy13stored_secret12StoredSecret5check17hecb7d82caa4caea1E.exit - %17 = landingpad { ptr, i32 } +14: ; preds = %_ZN11ockam_vault8software6legacy13stored_secret12StoredSecret5check17hecb7d82caa4caea1E.exit + %15 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hceabcfa060b47853E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1) #28 - to label %common.resume unwind label %26 + to label %common.resume unwind label %24 "_ZN87_$LT$ockam_vault..software..legacy..secret..Secret$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc82580b55573c7fbE.exit.i": ; preds = %_ZN11ockam_vault8software6legacy13stored_secret12StoredSecret5check17hecb7d82caa4caea1E.exit call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5), !noalias !1800 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hebdac3a053a092f8E"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %1) - %18 = getelementptr inbounds i8, ptr %5, i64 8 - %19 = load i64, ptr %18, align 8, !range !765, !noalias !1800, !noundef !17 - %.not.i.i.i.i = icmp eq i64 %19, 0 - br i1 %.not.i.i.i.i, label %"_ZN4core3ptr66drop_in_place$LT$ockam_vault..software..legacy..secret..Secret$GT$17hbe35665078628542E.exit", label %20 - -20: ; preds = %"_ZN87_$LT$ockam_vault..software..legacy..secret..Secret$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc82580b55573c7fbE.exit.i" - %21 = getelementptr inbounds i8, ptr %5, i64 16 - %22 = load i64, ptr %21, align 8, !noalias !1800, !noundef !17 - %23 = icmp eq i64 %22, 0 - br i1 %23, label %"_ZN4core3ptr66drop_in_place$LT$ockam_vault..software..legacy..secret..Secret$GT$17hbe35665078628542E.exit", label %24 - -24: ; preds = %20 - %25 = load ptr, ptr %5, align 8, !noalias !1800, !nonnull !17, !noundef !17 - tail call void @__rust_dealloc(ptr noundef nonnull %25, i64 noundef %22, i64 noundef %19) #31 + %16 = getelementptr inbounds i8, ptr %5, i64 8 + %17 = load i64, ptr %16, align 8, !range !765, !noalias !1800, !noundef !17 + %.not.i.i.i.i = icmp eq i64 %17, 0 + br i1 %.not.i.i.i.i, label %"_ZN4core3ptr66drop_in_place$LT$ockam_vault..software..legacy..secret..Secret$GT$17hbe35665078628542E.exit", label %18 + +18: ; preds = %"_ZN87_$LT$ockam_vault..software..legacy..secret..Secret$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc82580b55573c7fbE.exit.i" + %19 = getelementptr inbounds i8, ptr %5, i64 16 + %20 = load i64, ptr %19, align 8, !noalias !1800, !noundef !17 + %21 = icmp eq i64 %20, 0 + br i1 %21, label %"_ZN4core3ptr66drop_in_place$LT$ockam_vault..software..legacy..secret..Secret$GT$17hbe35665078628542E.exit", label %22 + +22: ; preds = %18 + %23 = load ptr, ptr %5, align 8, !noalias !1800, !nonnull !17, !noundef !17 + tail call void @__rust_dealloc(ptr noundef nonnull %23, i64 noundef %20, i64 noundef %17) #31 br label %"_ZN4core3ptr66drop_in_place$LT$ockam_vault..software..legacy..secret..Secret$GT$17hbe35665078628542E.exit" -26: ; preds = %16 - %27 = landingpad { ptr, i32 } +24: ; preds = %14 + %25 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer tail call void @_ZN4core9panicking16panic_in_cleanup17hceade526831b1e89E() #29 unreachable -common.resume: ; preds = %30, %16 - %common.resume.op = phi { ptr, i32 } [ %17, %16 ], [ %31, %30 ] +common.resume: ; preds = %28, %14 + %common.resume.op = phi { ptr, i32 } [ %15, %14 ], [ %29, %28 ] resume { ptr, i32 } %common.resume.op -"_ZN4core3ptr66drop_in_place$LT$ockam_vault..software..legacy..secret..Secret$GT$17hbe35665078628542E.exit": ; preds = %"_ZN87_$LT$ockam_vault..software..legacy..secret..Secret$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc82580b55573c7fbE.exit.i", %20, %24 +"_ZN4core3ptr66drop_in_place$LT$ockam_vault..software..legacy..secret..Secret$GT$17hbe35665078628542E.exit": ; preds = %"_ZN87_$LT$ockam_vault..software..legacy..secret..Secret$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc82580b55573c7fbE.exit.i", %18, %22 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !1800 - br label %29 + br label %27 -28: ; preds = %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit.i +26: ; preds = %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit.i store i32 %2, ptr %0, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 store i32 %3, ptr %.sroa.4.0..sroa_idx, align 4 %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.5.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(24) %1, i64 24, i1 false) - br label %29 + br label %27 -29: ; preds = %28, %"_ZN4core3ptr66drop_in_place$LT$ockam_vault..software..legacy..secret..Secret$GT$17hbe35665078628542E.exit" +27: ; preds = %26, %"_ZN4core3ptr66drop_in_place$LT$ockam_vault..software..legacy..secret..Secret$GT$17hbe35665078628542E.exit" ret void -30: ; preds = %13 - %31 = landingpad { ptr, i32 } +28: ; preds = %11 + %29 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr66drop_in_place$LT$ockam_vault..software..legacy..secret..Secret$GT$17hbe35665078628542E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1) #28 - to label %common.resume unwind label %32 + to label %common.resume unwind label %30 -32: ; preds = %30 - %33 = landingpad { ptr, i32 } +30: ; preds = %28 + %31 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer tail call void @_ZN4core9panicking16panic_in_cleanup17hceade526831b1e89E() #29 unreachable diff --git a/bench/ockam-rs/optimized/2bg7joofo9nayga5.ll b/bench/ockam-rs/optimized/2bg7joofo9nayga5.ll index 3d76e1c761d..a69a2cfa31b 100644 --- a/bench/ockam-rs/optimized/2bg7joofo9nayga5.ll +++ b/bench/ockam-rs/optimized/2bg7joofo9nayga5.ll @@ -9462,11 +9462,11 @@ define noundef i32 @_ZN11ockam_vault8software6legacy17secret_attributes16SecretA %2 = load i32, ptr %0, align 4, !range !249, !noundef !5 switch i32 %2, label %default.unreachable1 [ i32 0, label %3 - i32 1, label %10 + i32 1, label %8 i32 2, label %6 - i32 3, label %7 - i32 4, label %8 - i32 5, label %9 + i32 3, label %6 + i32 4, label %6 + i32 5, label %7 ] default.unreachable1: ; preds = %1 @@ -9475,22 +9475,16 @@ default.unreachable1: ; preds = %1 3: ; preds = %1 %4 = getelementptr inbounds i8, ptr %0, i64 4 %5 = load i32, ptr %4, align 4, !noundef !5 - br label %10 + br label %8 -6: ; preds = %1 - br label %10 +6: ; preds = %1, %1, %1 + br label %8 7: ; preds = %1 - br label %10 + br label %8 -8: ; preds = %1 - br label %10 - -9: ; preds = %1 - br label %10 - -10: ; preds = %1, %9, %8, %7, %6, %3 - %.0 = phi i32 [ 65, %9 ], [ 32, %8 ], [ 32, %7 ], [ 32, %6 ], [ %5, %3 ], [ 16, %1 ] +8: ; preds = %1, %7, %6, %3 + %.0 = phi i32 [ 65, %7 ], [ 32, %6 ], [ %5, %3 ], [ 16, %1 ] ret i32 %.0 } @@ -9604,74 +9598,72 @@ define noundef zeroext i1 @"_ZN105_$LT$ockam_vault..software..legacy..secret_att call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) %7 = load i32, ptr %0, align 4, !range !249, !noundef !5 switch i32 %7, label %default.unreachable [ - i32 0, label %8 - i32 1, label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit.thread4 - i32 2, label %11 - i32 3, label %12 - i32 4, label %13 - i32 5, label %14 + i32 0, label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit.thread4 + i32 1, label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit + i32 2, label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit + i32 3, label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit.thread + i32 4, label %10 + i32 5, label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit.thread6 ] -default.unreachable: ; preds = %2 - unreachable - _ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit.thread4: ; preds = %2 - store i8 1, ptr %4, align 1 - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) - br label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit - -8: ; preds = %2 store i8 0, ptr %4, align 1 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) - %9 = getelementptr inbounds i8, ptr %0, i64 4 - %10 = load i32, ptr %9, align 4, !alias.scope !1547, !noundef !5 + %8 = getelementptr inbounds i8, ptr %0, i64 4 + %9 = load i32, ptr %8, align 4, !alias.scope !1547, !noundef !5 br label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit -11: ; preds = %2 - store i8 1, ptr %4, align 1 - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) - br label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit +default.unreachable: ; preds = %2 + unreachable -12: ; preds = %2 - store i8 3, ptr %4, align 1 +10: ; preds = %2 + br label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit.thread + +_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit.thread6: ; preds = %2 + store i8 4, ptr %4, align 1 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) br label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit -13: ; preds = %2 - store i8 2, ptr %4, align 1 +_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit.thread: ; preds = %10, %2 + %.0.i.i.ph = phi i8 [ 2, %10 ], [ 3, %2 ] + store i8 %.0.i.i.ph, ptr %4, align 1 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) - br label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit + br label %11 -14: ; preds = %2 - store i8 4, ptr %4, align 1 +_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit: ; preds = %2, %2 + store i8 1, ptr %4, align 1 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) + %switch = icmp eq i32 %7, 2 + br i1 %switch, label %11, label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit + +11: ; preds = %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit, %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit.thread br label %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit -_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit: ; preds = %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit.thread4, %8, %11, %12, %13, %14 - %.0.i = phi i32 [ 65, %14 ], [ 32, %13 ], [ 32, %12 ], [ 32, %11 ], [ %10, %8 ], [ 16, %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit.thread4 ] +_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes6length17hee8b6376fa7c6f2dE.exit: ; preds = %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit, %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit.thread4, %11, %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit.thread6 + %.0.i = phi i32 [ 65, %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit.thread6 ], [ 32, %11 ], [ %9, %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit.thread4 ], [ 16, %_ZN11ockam_vault8software6legacy17secret_attributes16SecretAttributes11secret_type17h94ca4ddc94b5e607E.exit ] store i32 %.0.i, ptr %3, align 4 store ptr %4, ptr %5, align 8 - %15 = getelementptr inbounds i8, ptr %5, i64 8 - store ptr @"_ZN97_$LT$ockam_vault..software..legacy..secret_attributes..SecretType$u20$as$u20$core..fmt..Debug$GT$3fmt17h531bb1a870b4a6d7E", ptr %15, align 8 - %16 = getelementptr inbounds i8, ptr %5, i64 16 - store ptr %3, ptr %16, align 8 - %17 = getelementptr inbounds i8, ptr %5, i64 24 - store ptr @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h52a855fee7d88d55E", ptr %17, align 8 + %12 = getelementptr inbounds i8, ptr %5, i64 8 + store ptr @"_ZN97_$LT$ockam_vault..software..legacy..secret_attributes..SecretType$u20$as$u20$core..fmt..Debug$GT$3fmt17h531bb1a870b4a6d7E", ptr %12, align 8 + %13 = getelementptr inbounds i8, ptr %5, i64 16 + store ptr %3, ptr %13, align 8 + %14 = getelementptr inbounds i8, ptr %5, i64 24 + store ptr @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h52a855fee7d88d55E", ptr %14, align 8 store ptr @anon.eb7a70d03eeb1679f83ee66cb6c5a1ec.66, ptr %6, align 8, !alias.scope !1550, !noalias !1553 - %18 = getelementptr inbounds i8, ptr %6, i64 8 + %15 = getelementptr inbounds i8, ptr %6, i64 8 + store i64 2, ptr %15, align 8, !alias.scope !1550, !noalias !1553 + %16 = getelementptr inbounds i8, ptr %6, i64 32 + store ptr null, ptr %16, align 8, !alias.scope !1550, !noalias !1553 + %17 = getelementptr inbounds i8, ptr %6, i64 16 + store ptr %5, ptr %17, align 8, !alias.scope !1550, !noalias !1553 + %18 = getelementptr inbounds i8, ptr %6, i64 24 store i64 2, ptr %18, align 8, !alias.scope !1550, !noalias !1553 - %19 = getelementptr inbounds i8, ptr %6, i64 32 - store ptr null, ptr %19, align 8, !alias.scope !1550, !noalias !1553 - %20 = getelementptr inbounds i8, ptr %6, i64 16 - store ptr %5, ptr %20, align 8, !alias.scope !1550, !noalias !1553 - %21 = getelementptr inbounds i8, ptr %6, i64 24 - store i64 2, ptr %21, align 8, !alias.scope !1550, !noalias !1553 - %22 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17hfe4d1b05e81a862eE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %6) + %19 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17hfe4d1b05e81a862eE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %6) call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %6) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) - ret i1 %22 + ret i1 %19 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/ockam-rs/optimized/2qsd987rmmdpxbp7.ll b/bench/ockam-rs/optimized/2qsd987rmmdpxbp7.ll index 7b6b0f8a44a..bae203ebd46 100644 --- a/bench/ockam-rs/optimized/2qsd987rmmdpxbp7.ll +++ b/bench/ockam-rs/optimized/2qsd987rmmdpxbp7.ll @@ -12006,38 +12006,32 @@ define { ptr, ptr } @"_ZN68_$LT$ockam_abac..error..ParseError$u20$as$u20$core..e %4 = add nsw i8 %3, -7 %narrow = tail call i8 @llvm.umin.i8(i8 %4, i8 5) switch i8 %narrow, label %default.unreachable [ - i8 0, label %10 + i8 0, label %8 i8 1, label %5 i8 2, label %6 i8 3, label %7 - i8 4, label %8 - i8 5, label %9 + i8 4, label %7 + i8 5, label %7 ] default.unreachable: ; preds = %1 unreachable 5: ; preds = %1 - br label %10 + br label %8 6: ; preds = %1 - br label %10 - -7: ; preds = %1 - br label %10 + br label %8 -8: ; preds = %1 - br label %10 - -9: ; preds = %1 - br label %10 +7: ; preds = %1, %1, %1 + br label %8 -10: ; preds = %1, %9, %8, %7, %6, %5 - %.sroa.7.0 = phi ptr [ undef, %9 ], [ undef, %8 ], [ undef, %7 ], [ @anon.a4a44d9d39faeaa0202e9d9e390646c7.110, %6 ], [ @anon.a4a44d9d39faeaa0202e9d9e390646c7.108, %5 ], [ @anon.a4a44d9d39faeaa0202e9d9e390646c7.106, %1 ] - %.sroa.0.0 = phi ptr [ null, %9 ], [ null, %8 ], [ null, %7 ], [ %0, %6 ], [ %0, %5 ], [ %0, %1 ] - %11 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 - %12 = insertvalue { ptr, ptr } %11, ptr %.sroa.7.0, 1 - ret { ptr, ptr } %12 +8: ; preds = %1, %7, %6, %5 + %.sroa.7.0 = phi ptr [ undef, %7 ], [ @anon.a4a44d9d39faeaa0202e9d9e390646c7.110, %6 ], [ @anon.a4a44d9d39faeaa0202e9d9e390646c7.108, %5 ], [ @anon.a4a44d9d39faeaa0202e9d9e390646c7.106, %1 ] + %.sroa.0.0 = phi ptr [ null, %7 ], [ %0, %6 ], [ %0, %5 ], [ %0, %1 ] + %9 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 + %10 = insertvalue { ptr, ptr } %9, ptr %.sroa.7.0, 1 + ret { ptr, ptr } %10 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable diff --git a/bench/oiio/optimized/DPXHeader.cpp.ll b/bench/oiio/optimized/DPXHeader.cpp.ll index 4b22633b094..637b7d352b3 100644 --- a/bench/oiio/optimized/DPXHeader.cpp.ll +++ b/bench/oiio/optimized/DPXHeader.cpp.ll @@ -1837,43 +1837,28 @@ entry: i8 -101, label %sw.bb14 i8 -102, label %sw.bb13 i8 -103, label %sw.bb12 - i8 -104, label %sw.bb11 - i8 -105, label %sw.bb10 - i8 -106, label %sw.bb9 + i8 -104, label %sw.bb8 + i8 -105, label %sw.bb3 + i8 -106, label %sw.bb5 i8 103, label %sw.bb8 - i8 102, label %sw.bb7 + i8 102, label %sw.bb3 i8 50, label %sw.bb3 i8 51, label %sw.bb4 i8 52, label %sw.bb4 i8 100, label %sw.bb5 - i8 101, label %sw.bb6 + i8 101, label %sw.bb3 ] -sw.bb3: ; preds = %entry +sw.bb3: ; preds = %entry, %entry, %entry, %entry br label %sw.epilog sw.bb4: ; preds = %entry, %entry br label %sw.epilog -sw.bb5: ; preds = %entry +sw.bb5: ; preds = %entry, %entry br label %sw.epilog -sw.bb6: ; preds = %entry - br label %sw.epilog - -sw.bb7: ; preds = %entry - br label %sw.epilog - -sw.bb8: ; preds = %entry - br label %sw.epilog - -sw.bb9: ; preds = %entry - br label %sw.epilog - -sw.bb10: ; preds = %entry - br label %sw.epilog - -sw.bb11: ; preds = %entry +sw.bb8: ; preds = %entry, %entry br label %sw.epilog sw.bb12: ; preds = %entry @@ -1888,8 +1873,8 @@ sw.bb14: ; preds = %entry sw.bb15: ; preds = %entry br label %sw.epilog -sw.epilog: ; preds = %sw.bb15, %sw.bb14, %sw.bb13, %sw.bb12, %sw.bb11, %sw.bb10, %sw.bb9, %sw.bb8, %sw.bb7, %sw.bb6, %sw.bb5, %sw.bb4, %sw.bb3, %entry - %count.0 = phi i32 [ 8, %sw.bb15 ], [ 7, %sw.bb14 ], [ 6, %sw.bb13 ], [ 5, %sw.bb12 ], [ 4, %sw.bb11 ], [ 3, %sw.bb10 ], [ 2, %sw.bb9 ], [ 4, %sw.bb8 ], [ 3, %sw.bb7 ], [ 3, %sw.bb6 ], [ 2, %sw.bb5 ], [ 4, %sw.bb4 ], [ 3, %sw.bb3 ], [ 1, %entry ] +sw.epilog: ; preds = %sw.bb15, %sw.bb14, %sw.bb13, %sw.bb12, %sw.bb8, %sw.bb5, %sw.bb4, %sw.bb3, %entry + %count.0 = phi i32 [ 8, %sw.bb15 ], [ 7, %sw.bb14 ], [ 6, %sw.bb13 ], [ 5, %sw.bb12 ], [ 4, %sw.bb8 ], [ 2, %sw.bb5 ], [ 4, %sw.bb4 ], [ 3, %sw.bb3 ], [ 1, %entry ] ret i32 %count.0 } diff --git a/bench/opencc/optimized/louds-trie.cc.ll b/bench/opencc/optimized/louds-trie.cc.ll index 6944ab4c70f..a78556619c3 100644 --- a/bench/opencc/optimized/louds-trie.cc.ll +++ b/bench/opencc/optimized/louds-trie.cc.ll @@ -6907,102 +6907,93 @@ define linkonce_odr void @_ZN6marisa8grimoire4trie6Config6parse_Ei(ptr noundef n _ZN6marisa8grimoire4trie6Config15parse_num_triesEi.exit: ; preds = %9, %11 %13 = and i32 %1, 3968 - switch i32 %13, label %18 [ + switch i32 %13, label %15 [ i32 0, label %_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit i32 128, label %14 - i32 256, label %15 + i32 256, label %14 i32 512, label %_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit - i32 1024, label %16 - i32 2048, label %17 + i32 1024, label %14 + i32 2048, label %14 ] -14: ; preds = %_ZN6marisa8grimoire4trie6Config15parse_num_triesEi.exit +14: ; preds = %_ZN6marisa8grimoire4trie6Config15parse_num_triesEi.exit, %_ZN6marisa8grimoire4trie6Config15parse_num_triesEi.exit, %_ZN6marisa8grimoire4trie6Config15parse_num_triesEi.exit, %_ZN6marisa8grimoire4trie6Config15parse_num_triesEi.exit br label %_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit 15: ; preds = %_ZN6marisa8grimoire4trie6Config15parse_num_triesEi.exit - br label %_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit - -16: ; preds = %_ZN6marisa8grimoire4trie6Config15parse_num_triesEi.exit - br label %_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit - -17: ; preds = %_ZN6marisa8grimoire4trie6Config15parse_num_triesEi.exit - br label %_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit - -18: ; preds = %_ZN6marisa8grimoire4trie6Config15parse_num_triesEi.exit - %19 = tail call ptr @__cxa_allocate_exception(i64 32) #22 - store ptr getelementptr inbounds (i8, ptr @_ZTVN6marisa9ExceptionE, i64 16), ptr %19, align 8 - %20 = getelementptr inbounds i8, ptr %19, i64 8 - store ptr @.str.6, ptr %20, align 8 - %21 = getelementptr inbounds i8, ptr %19, i64 16 - store i32 101, ptr %21, align 8 - %22 = getelementptr inbounds i8, ptr %19, i64 20 - store i32 5, ptr %22, align 4 - %23 = getelementptr inbounds i8, ptr %19, i64 24 - store ptr @.str.8, ptr %23, align 8 - tail call void @__cxa_throw(ptr nonnull %19, ptr nonnull @_ZTIN6marisa9ExceptionE, ptr nonnull @_ZN6marisa9ExceptionD2Ev) #24 + %16 = tail call ptr @__cxa_allocate_exception(i64 32) #22 + store ptr getelementptr inbounds (i8, ptr @_ZTVN6marisa9ExceptionE, i64 16), ptr %16, align 8 + %17 = getelementptr inbounds i8, ptr %16, i64 8 + store ptr @.str.6, ptr %17, align 8 + %18 = getelementptr inbounds i8, ptr %16, i64 16 + store i32 101, ptr %18, align 8 + %19 = getelementptr inbounds i8, ptr %16, i64 20 + store i32 5, ptr %19, align 4 + %20 = getelementptr inbounds i8, ptr %16, i64 24 + store ptr @.str.8, ptr %20, align 8 + tail call void @__cxa_throw(ptr nonnull %16, ptr nonnull @_ZTIN6marisa9ExceptionE, ptr nonnull @_ZN6marisa9ExceptionD2Ev) #24 unreachable -_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit: ; preds = %_ZN6marisa8grimoire4trie6Config15parse_num_triesEi.exit, %_ZN6marisa8grimoire4trie6Config15parse_num_triesEi.exit, %14, %15, %16, %17 - %.sink.i = phi i32 [ %13, %17 ], [ %13, %16 ], [ %13, %15 ], [ %13, %14 ], [ 512, %_ZN6marisa8grimoire4trie6Config15parse_num_triesEi.exit ], [ 512, %_ZN6marisa8grimoire4trie6Config15parse_num_triesEi.exit ] - %24 = getelementptr inbounds i8, ptr %0, i64 8 - store i32 %.sink.i, ptr %24, align 8 - %25 = trunc i32 %1 to i16 - %trunc.i = and i16 %25, -4096 - switch i16 %trunc.i, label %27 [ +_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit: ; preds = %_ZN6marisa8grimoire4trie6Config15parse_num_triesEi.exit, %_ZN6marisa8grimoire4trie6Config15parse_num_triesEi.exit, %14 + %.sink.i = phi i32 [ %13, %14 ], [ 512, %_ZN6marisa8grimoire4trie6Config15parse_num_triesEi.exit ], [ 512, %_ZN6marisa8grimoire4trie6Config15parse_num_triesEi.exit ] + %21 = getelementptr inbounds i8, ptr %0, i64 8 + store i32 %.sink.i, ptr %21, align 8 + %22 = trunc i32 %1 to i16 + %trunc.i = and i16 %22, -4096 + switch i16 %trunc.i, label %24 [ i16 0, label %_ZN6marisa8grimoire4trie6Config15parse_tail_modeEi.exit i16 4096, label %_ZN6marisa8grimoire4trie6Config15parse_tail_modeEi.exit - i16 8192, label %26 + i16 8192, label %23 ] -26: ; preds = %_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit +23: ; preds = %_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit br label %_ZN6marisa8grimoire4trie6Config15parse_tail_modeEi.exit -27: ; preds = %_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit - %28 = tail call ptr @__cxa_allocate_exception(i64 32) #22 - store ptr getelementptr inbounds (i8, ptr @_ZTVN6marisa9ExceptionE, i64 16), ptr %28, align 8 - %29 = getelementptr inbounds i8, ptr %28, i64 8 - store ptr @.str.6, ptr %29, align 8 - %30 = getelementptr inbounds i8, ptr %28, i64 16 - store i32 121, ptr %30, align 8 - %31 = getelementptr inbounds i8, ptr %28, i64 20 - store i32 5, ptr %31, align 4 - %32 = getelementptr inbounds i8, ptr %28, i64 24 - store ptr @.str.9, ptr %32, align 8 - tail call void @__cxa_throw(ptr nonnull %28, ptr nonnull @_ZTIN6marisa9ExceptionE, ptr nonnull @_ZN6marisa9ExceptionD2Ev) #24 +24: ; preds = %_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit + %25 = tail call ptr @__cxa_allocate_exception(i64 32) #22 + store ptr getelementptr inbounds (i8, ptr @_ZTVN6marisa9ExceptionE, i64 16), ptr %25, align 8 + %26 = getelementptr inbounds i8, ptr %25, i64 8 + store ptr @.str.6, ptr %26, align 8 + %27 = getelementptr inbounds i8, ptr %25, i64 16 + store i32 121, ptr %27, align 8 + %28 = getelementptr inbounds i8, ptr %25, i64 20 + store i32 5, ptr %28, align 4 + %29 = getelementptr inbounds i8, ptr %25, i64 24 + store ptr @.str.9, ptr %29, align 8 + tail call void @__cxa_throw(ptr nonnull %25, ptr nonnull @_ZTIN6marisa9ExceptionE, ptr nonnull @_ZN6marisa9ExceptionD2Ev) #24 unreachable -_ZN6marisa8grimoire4trie6Config15parse_tail_modeEi.exit: ; preds = %_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit, %_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit, %26 - %.sink.i5 = phi i32 [ 8192, %26 ], [ 4096, %_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit ], [ 4096, %_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit ] - %33 = getelementptr inbounds i8, ptr %0, i64 12 - store i32 %.sink.i5, ptr %33, align 4 - %34 = and i32 %1, 983040 - switch i32 %34, label %36 [ +_ZN6marisa8grimoire4trie6Config15parse_tail_modeEi.exit: ; preds = %_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit, %_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit, %23 + %.sink.i5 = phi i32 [ 8192, %23 ], [ 4096, %_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit ], [ 4096, %_ZN6marisa8grimoire4trie6Config17parse_cache_levelEi.exit ] + %30 = getelementptr inbounds i8, ptr %0, i64 12 + store i32 %.sink.i5, ptr %30, align 4 + %31 = and i32 %1, 983040 + switch i32 %31, label %33 [ i32 0, label %_ZN6marisa8grimoire4trie6Config16parse_node_orderEi.exit - i32 65536, label %35 + i32 65536, label %32 i32 131072, label %_ZN6marisa8grimoire4trie6Config16parse_node_orderEi.exit ] -35: ; preds = %_ZN6marisa8grimoire4trie6Config15parse_tail_modeEi.exit +32: ; preds = %_ZN6marisa8grimoire4trie6Config15parse_tail_modeEi.exit br label %_ZN6marisa8grimoire4trie6Config16parse_node_orderEi.exit -36: ; preds = %_ZN6marisa8grimoire4trie6Config15parse_tail_modeEi.exit - %37 = tail call ptr @__cxa_allocate_exception(i64 32) #22 - store ptr getelementptr inbounds (i8, ptr @_ZTVN6marisa9ExceptionE, i64 16), ptr %37, align 8 - %38 = getelementptr inbounds i8, ptr %37, i64 8 - store ptr @.str.6, ptr %38, align 8 - %39 = getelementptr inbounds i8, ptr %37, i64 16 - store i32 141, ptr %39, align 8 - %40 = getelementptr inbounds i8, ptr %37, i64 20 - store i32 5, ptr %40, align 4 - %41 = getelementptr inbounds i8, ptr %37, i64 24 - store ptr @.str.10, ptr %41, align 8 - tail call void @__cxa_throw(ptr nonnull %37, ptr nonnull @_ZTIN6marisa9ExceptionE, ptr nonnull @_ZN6marisa9ExceptionD2Ev) #24 +33: ; preds = %_ZN6marisa8grimoire4trie6Config15parse_tail_modeEi.exit + %34 = tail call ptr @__cxa_allocate_exception(i64 32) #22 + store ptr getelementptr inbounds (i8, ptr @_ZTVN6marisa9ExceptionE, i64 16), ptr %34, align 8 + %35 = getelementptr inbounds i8, ptr %34, i64 8 + store ptr @.str.6, ptr %35, align 8 + %36 = getelementptr inbounds i8, ptr %34, i64 16 + store i32 141, ptr %36, align 8 + %37 = getelementptr inbounds i8, ptr %34, i64 20 + store i32 5, ptr %37, align 4 + %38 = getelementptr inbounds i8, ptr %34, i64 24 + store ptr @.str.10, ptr %38, align 8 + tail call void @__cxa_throw(ptr nonnull %34, ptr nonnull @_ZTIN6marisa9ExceptionE, ptr nonnull @_ZN6marisa9ExceptionD2Ev) #24 unreachable -_ZN6marisa8grimoire4trie6Config16parse_node_orderEi.exit: ; preds = %_ZN6marisa8grimoire4trie6Config15parse_tail_modeEi.exit, %_ZN6marisa8grimoire4trie6Config15parse_tail_modeEi.exit, %35 - %.sink.i6 = phi i32 [ 65536, %35 ], [ 131072, %_ZN6marisa8grimoire4trie6Config15parse_tail_modeEi.exit ], [ 131072, %_ZN6marisa8grimoire4trie6Config15parse_tail_modeEi.exit ] - %42 = getelementptr inbounds i8, ptr %0, i64 16 - store i32 %.sink.i6, ptr %42, align 8 +_ZN6marisa8grimoire4trie6Config16parse_node_orderEi.exit: ; preds = %_ZN6marisa8grimoire4trie6Config15parse_tail_modeEi.exit, %_ZN6marisa8grimoire4trie6Config15parse_tail_modeEi.exit, %32 + %.sink.i6 = phi i32 [ 65536, %32 ], [ 131072, %_ZN6marisa8grimoire4trie6Config15parse_tail_modeEi.exit ], [ 131072, %_ZN6marisa8grimoire4trie6Config15parse_tail_modeEi.exit ] + %39 = getelementptr inbounds i8, ptr %0, i64 16 + store i32 %.sink.i6, ptr %39, align 8 ret void } diff --git a/bench/opencv/optimized/system.cpp.ll b/bench/opencv/optimized/system.cpp.ll index 2f1bc3b0a52..e58f261a112 100644 --- a/bench/opencv/optimized/system.cpp.ll +++ b/bench/opencv/optimized/system.cpp.ll @@ -2108,8 +2108,8 @@ define void @cvError(i32 noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable define range(i32 -214, -1) i32 @cvErrorFromIppStatus(i32 noundef %0) local_unnamed_addr #14 { - switch i32 %0, label %21 [ - i32 -1, label %22 + switch i32 %0, label %18 [ + i32 -1, label %19 i32 -113, label %2 i32 -2, label %3 i32 -11, label %4 @@ -2125,74 +2125,65 @@ define range(i32 -214, -1) i32 @cvErrorFromIppStatus(i32 noundef %0) local_unnam i32 -103, label %14 i32 -102, label %15 i32 -12, label %16 - i32 -44, label %17 - i32 -10, label %18 - i32 -7, label %19 - i32 -6, label %20 + i32 -44, label %7 + i32 -10, label %7 + i32 -7, label %7 + i32 -6, label %17 ] 2: ; preds = %1 - br label %22 + br label %19 3: ; preds = %1 - br label %22 + br label %19 4: ; preds = %1 - br label %22 + br label %19 5: ; preds = %1 - br label %22 + br label %19 6: ; preds = %1 - br label %22 + br label %19 -7: ; preds = %1 - br label %22 +7: ; preds = %1, %1, %1, %1 + br label %19 8: ; preds = %1 - br label %22 + br label %19 9: ; preds = %1 - br label %22 + br label %19 10: ; preds = %1 - br label %22 + br label %19 11: ; preds = %1 - br label %22 + br label %19 12: ; preds = %1 - br label %22 + br label %19 13: ; preds = %1 - br label %22 + br label %19 14: ; preds = %1 - br label %22 + br label %19 15: ; preds = %1 - br label %22 + br label %19 16: ; preds = %1 - br label %22 + br label %19 17: ; preds = %1 - br label %22 + br label %19 18: ; preds = %1 - br label %22 - -19: ; preds = %1 - br label %22 - -20: ; preds = %1 - br label %22 - -21: ; preds = %1 - br label %22 + br label %19 -22: ; preds = %1, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3, %2 - %.0 = phi i32 [ -2, %21 ], [ -207, %20 ], [ -5, %19 ], [ -5, %18 ], [ -5, %17 ], [ -206, %16 ], [ -15, %15 ], [ -24, %14 ], [ -205, %13 ], [ -17, %12 ], [ -7, %11 ], [ -204, %10 ], [ -203, %9 ], [ -2, %8 ], [ -5, %7 ], [ -4, %6 ], [ -13, %5 ], [ -202, %4 ], [ -27, %3 ], [ -214, %2 ], [ -201, %1 ] +19: ; preds = %1, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3, %2 + %.0 = phi i32 [ -2, %18 ], [ -207, %17 ], [ -206, %16 ], [ -15, %15 ], [ -24, %14 ], [ -205, %13 ], [ -17, %12 ], [ -7, %11 ], [ -204, %10 ], [ -203, %9 ], [ -2, %8 ], [ -5, %7 ], [ -4, %6 ], [ -13, %5 ], [ -202, %4 ], [ -27, %3 ], [ -214, %2 ], [ -201, %1 ] ret i32 %.0 } diff --git a/bench/openjdk/optimized/gif_err.ll b/bench/openjdk/optimized/gif_err.ll index 48932491757..3628af1b6b0 100644 --- a/bench/openjdk/optimized/gif_err.ll +++ b/bench/openjdk/optimized/gif_err.ll @@ -24,8 +24,8 @@ target triple = "x86_64-pc-linux-gnu" ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable define hidden noundef ptr @GifErrorString(i32 noundef %0) local_unnamed_addr #0 { - switch i32 %0, label %23 [ - i32 1, label %24 + switch i32 %0, label %19 [ + i32 1, label %20 i32 2, label %2 i32 3, label %3 i32 4, label %4 @@ -35,89 +35,77 @@ define hidden noundef ptr @GifErrorString(i32 noundef %0) local_unnamed_addr #0 i32 8, label %8 i32 9, label %9 i32 10, label %10 - i32 101, label %24 + i32 101, label %20 i32 102, label %11 i32 103, label %12 i32 104, label %13 i32 105, label %14 - i32 106, label %15 - i32 107, label %16 - i32 108, label %17 - i32 109, label %18 - i32 110, label %19 - i32 111, label %20 - i32 112, label %21 - i32 113, label %22 + i32 106, label %5 + i32 107, label %15 + i32 108, label %6 + i32 109, label %7 + i32 110, label %9 + i32 111, label %16 + i32 112, label %17 + i32 113, label %18 ] 2: ; preds = %1 - br label %24 + br label %20 3: ; preds = %1 - br label %24 + br label %20 4: ; preds = %1 - br label %24 + br label %20 -5: ; preds = %1 - br label %24 +5: ; preds = %1, %1 + br label %20 -6: ; preds = %1 - br label %24 +6: ; preds = %1, %1 + br label %20 -7: ; preds = %1 - br label %24 +7: ; preds = %1, %1 + br label %20 8: ; preds = %1 - br label %24 + br label %20 -9: ; preds = %1 - br label %24 +9: ; preds = %1, %1 + br label %20 10: ; preds = %1 - br label %24 + br label %20 11: ; preds = %1 - br label %24 + br label %20 12: ; preds = %1 - br label %24 + br label %20 13: ; preds = %1 - br label %24 + br label %20 14: ; preds = %1 - br label %24 + br label %20 15: ; preds = %1 - br label %24 + br label %20 16: ; preds = %1 - br label %24 + br label %20 17: ; preds = %1 - br label %24 + br label %20 18: ; preds = %1 - br label %24 + br label %20 19: ; preds = %1 - br label %24 + br label %20 -20: ; preds = %1 - br label %24 - -21: ; preds = %1 - br label %24 - -22: ; preds = %1 - br label %24 - -23: ; preds = %1 - br label %24 - -24: ; preds = %1, %1, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3, %2 - %.0 = phi ptr [ null, %23 ], [ @.str.17, %22 ], [ @.str.16, %21 ], [ @.str.15, %20 ], [ @.str.8, %19 ], [ @.str.6, %18 ], [ @.str.5, %17 ], [ @.str.14, %16 ], [ @.str.4, %15 ], [ @.str.13, %14 ], [ @.str.12, %13 ], [ @.str.11, %12 ], [ @.str.10, %11 ], [ @.str.9, %10 ], [ @.str.8, %9 ], [ @.str.7, %8 ], [ @.str.6, %7 ], [ @.str.5, %6 ], [ @.str.4, %5 ], [ @.str.3, %4 ], [ @.str.2, %3 ], [ @.str.1, %2 ], [ @.str, %1 ], [ @.str, %1 ] +20: ; preds = %1, %1, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3, %2 + %.0 = phi ptr [ null, %19 ], [ @.str.17, %18 ], [ @.str.16, %17 ], [ @.str.15, %16 ], [ @.str.14, %15 ], [ @.str.13, %14 ], [ @.str.12, %13 ], [ @.str.11, %12 ], [ @.str.10, %11 ], [ @.str.9, %10 ], [ @.str.8, %9 ], [ @.str.7, %8 ], [ @.str.6, %7 ], [ @.str.5, %6 ], [ @.str.4, %5 ], [ @.str.3, %4 ], [ @.str.2, %3 ], [ @.str.1, %2 ], [ @.str, %1 ], [ @.str, %1 ] ret ptr %.0 } diff --git a/bench/openjdk/optimized/hb-ot-shape-fallback.ll b/bench/openjdk/optimized/hb-ot-shape-fallback.ll index 1260a50e9cb..e8f775dbd3a 100644 --- a/bench/openjdk/optimized/hb-ot-shape-fallback.ll +++ b/bench/openjdk/optimized/hb-ot-shape-fallback.ll @@ -108,14 +108,14 @@ define hidden void @_Z54_hb_ot_shape_fallback_mark_position_recategorize_marksPK %wide.trip.count = zext i32 %5 to i64 br label %.lr.ph -.lr.ph: ; preds = %.lr.ph.preheader, %42 - %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %42 ] +.lr.ph: ; preds = %.lr.ph.preheader, %39 + %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %39 ] %8 = getelementptr inbounds %struct.hb_glyph_info_t, ptr %7, i64 %indvars.iv %9 = getelementptr i8, ptr %8, i64 16 %.val = load i16, ptr %9, align 4 %10 = and i16 %.val, 31 %11 = icmp eq i16 %10, 12 - br i1 %11, label %12, label %42 + br i1 %11, label %12, label %39 12: ; preds = %.lr.ph %13 = lshr i16 %.val, 8 @@ -201,23 +201,23 @@ define hidden void @_Z54_hb_ot_shape_fallback_mark_position_recategorize_marksPK i8 30, label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit i8 33, label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit i8 3, label %34 - i8 107, label %35 + i8 107, label %30 i8 118, label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit - i8 122, label %36 + i8 122, label %32 i8 -127, label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit - i8 -124, label %37 + i8 -124, label %32 ] 29: ; preds = %28 br label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit -30: ; preds = %28 +30: ; preds = %28, %28 br label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit 31: ; preds = %28, %28 br label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit -32: ; preds = %28 +32: ; preds = %28, %28, %28 br label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit 33: ; preds = %28, %28, %28, %28, %28, %28, %28, %28 @@ -226,34 +226,25 @@ define hidden void @_Z54_hb_ot_shape_fallback_mark_position_recategorize_marksPK 34: ; preds = %28 br label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit -35: ; preds = %28 - br label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit - -36: ; preds = %28 - br label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit - -37: ; preds = %28 - br label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit - .thread.i: ; preds = %28, %25, %24, %23, %22 %.013.i = phi i32 [ %.0.i, %28 ], [ 232, %23 ], [ 230, %24 ], [ 220, %25 ], [ 0, %22 ] - %38 = trunc nuw nsw i32 %.013.i to i16 + %35 = trunc nuw nsw i32 %.013.i to i16 br label %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit -_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit: ; preds = %12, %28, %28, %28, %28, %28, %28, %28, %28, %28, %28, %28, %28, %28, %28, %28, %28, %29, %30, %31, %32, %33, %34, %35, %36, %37, %.thread.i - %.09.i = phi i16 [ %38, %.thread.i ], [ 230, %37 ], [ 230, %36 ], [ 232, %35 ], [ 222, %34 ], [ 230, %33 ], [ 230, %32 ], [ 228, %31 ], [ 232, %30 ], [ 214, %29 ], [ %13, %12 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ] - %39 = and i16 %.val, 236 - %40 = shl nuw i16 %.09.i, 8 - %41 = or disjoint i16 %40, %39 - store i16 %41, ptr %9, align 4 - br label %42 +_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit: ; preds = %12, %28, %28, %28, %28, %28, %28, %28, %28, %28, %28, %28, %28, %28, %28, %28, %28, %29, %30, %31, %32, %33, %34, %.thread.i + %.09.i = phi i16 [ %35, %.thread.i ], [ 222, %34 ], [ 230, %33 ], [ 230, %32 ], [ 228, %31 ], [ 232, %30 ], [ 214, %29 ], [ %13, %12 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ], [ 220, %28 ] + %36 = and i16 %.val, 236 + %37 = shl nuw i16 %.09.i, 8 + %38 = or disjoint i16 %37, %36 + store i16 %38, ptr %9, align 4 + br label %39 -42: ; preds = %.lr.ph, %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit +39: ; preds = %.lr.ph, %_ZL43_hb_glyph_info_set_modified_combining_classP15hb_glyph_info_tj.exit %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !6 -._crit_edge: ; preds = %42, %3 +._crit_edge: ; preds = %39, %3 ret void } diff --git a/bench/openjdk/optimized/methodMatcher.ll b/bench/openjdk/optimized/methodMatcher.ll index cfac9b12425..64732ecbc71 100644 --- a/bench/openjdk/optimized/methodMatcher.ll +++ b/bench/openjdk/optimized/methodMatcher.ll @@ -222,29 +222,26 @@ define hidden noundef zeroext i1 @_ZN13MethodMatcher12canonicalizeEPcRPKc(ptr no br i1 %.not56.us, label %.loopexit, label %.lr.ph.split.us, !llvm.loop !9 .lr.ph.split: ; preds = %.lr.ph.split.preheader, %.thread66 - %.pr = phi i8 [ %27, %.thread66 ], [ %.pr.ph, %.lr.ph.split.preheader ] - %.072 = phi ptr [ %26, %.thread66 ], [ %0, %.lr.ph.split.preheader ] + %.pr = phi i8 [ %26, %.thread66 ], [ %.pr.ph, %.lr.ph.split.preheader ] + %.072 = phi ptr [ %25, %.thread66 ], [ %0, %.lr.ph.split.preheader ] switch i8 %.pr, label %.thread66 [ i8 46, label %.thread66.sink.split i8 58, label %24 - i8 44, label %25 + i8 44, label %24 ] -24: ; preds = %.lr.ph.split +24: ; preds = %.lr.ph.split, %.lr.ph.split br label %.thread66.sink.split -25: ; preds = %.lr.ph.split - br label %.thread66.sink.split - -.thread66.sink.split: ; preds = %.lr.ph.split, %25, %24 - %.sink = phi i8 [ 32, %24 ], [ 32, %25 ], [ 47, %.lr.ph.split ] +.thread66.sink.split: ; preds = %.lr.ph.split, %24 + %.sink = phi i8 [ 32, %24 ], [ 47, %.lr.ph.split ] store i8 %.sink, ptr %.072, align 1 br label %.thread66 .thread66: ; preds = %.thread66.sink.split, %.lr.ph.split - %26 = getelementptr inbounds i8, ptr %.072, i64 1 - %27 = load i8, ptr %26, align 1 - %.not56 = icmp eq i8 %27, 0 + %25 = getelementptr inbounds i8, ptr %.072, i64 1 + %26 = load i8, ptr %25, align 1 + %.not56 = icmp eq i8 %26, 0 br i1 %.not56, label %.loopexit, label %.lr.ph.split, !llvm.loop !9 .loopexit.sink.split: ; preds = %.preheader69, %.thread60, %14, %7 diff --git a/bench/openjdk/optimized/templateInterpreterGenerator.ll b/bench/openjdk/optimized/templateInterpreterGenerator.ll index f4437c727c2..b509251fcef 100644 --- a/bench/openjdk/optimized/templateInterpreterGenerator.ll +++ b/bench/openjdk/optimized/templateInterpreterGenerator.ll @@ -1219,64 +1219,61 @@ declare noundef ptr @_ZN28TemplateInterpreterGenerator35generate_StackOverflowEr ; Function Attrs: mustprogress nounwind uwtable define hidden noundef ptr @_ZN28TemplateInterpreterGenerator21generate_method_entryEN19AbstractInterpreter10MethodKindEb(ptr noundef nonnull align 8 dereferenceable(24) %0, i32 noundef %1, i1 noundef zeroext %2) local_unnamed_addr #0 align 2 { - switch i32 %1, label %8 [ + switch i32 %1, label %7 [ i32 0, label %.thread i32 1, label %4 i32 2, label %.thread - i32 3, label %5 + i32 3, label %4 i32 4, label %.thread i32 5, label %.thread i32 6, label %.thread - i32 7, label %6 + i32 7, label %5 ] -4: ; preds = %3 +4: ; preds = %3, %3 br label %.thread 5: ; preds = %3 - br label %.thread - -6: ; preds = %3 - %7 = tail call noundef ptr @_ZN28TemplateInterpreterGenerator23generate_abstract_entryEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #7 - br label %10 + %6 = tail call noundef ptr @_ZN28TemplateInterpreterGenerator23generate_abstract_entryEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #7 + br label %9 -8: ; preds = %3 - %9 = tail call noundef ptr @_ZN28TemplateInterpreterGenerator24generate_intrinsic_entryEN19AbstractInterpreter10MethodKindE(ptr noundef nonnull align 8 dereferenceable(24) %0, i32 noundef %1) - br label %10 +7: ; preds = %3 + %8 = tail call noundef ptr @_ZN28TemplateInterpreterGenerator24generate_intrinsic_entryEN19AbstractInterpreter10MethodKindE(ptr noundef nonnull align 8 dereferenceable(24) %0, i32 noundef %1) + br label %9 -10: ; preds = %8, %6 - %.0 = phi ptr [ %9, %8 ], [ %7, %6 ] +9: ; preds = %7, %5 + %.0 = phi ptr [ %8, %7 ], [ %6, %5 ] %.not = icmp eq ptr %.0, null - br i1 %.not, label %.thread, label %25 - -.thread: ; preds = %3, %3, %3, %3, %3, %4, %5, %10 - %.01320 = phi i1 [ false, %10 ], [ false, %3 ], [ false, %3 ], [ false, %3 ], [ false, %3 ], [ false, %3 ], [ true, %4 ], [ true, %5 ] - br i1 %2, label %11, label %18 + br i1 %.not, label %.thread, label %24 + +.thread: ; preds = %3, %3, %3, %3, %3, %4, %9 + %.01320 = phi i1 [ false, %9 ], [ false, %3 ], [ false, %3 ], [ false, %3 ], [ false, %3 ], [ false, %3 ], [ true, %4 ] + br i1 %2, label %10, label %17 + +10: ; preds = %.thread + %11 = select i1 %.01320, i64 3, i64 2 + %12 = getelementptr inbounds [40 x ptr], ptr @_ZN19AbstractInterpreter12_entry_tableE, i64 0, i64 %11 + %13 = load ptr, ptr %12, align 8 + %14 = icmp eq ptr %13, null + br i1 %14, label %15, label %24 + +15: ; preds = %10 + %16 = tail call noundef ptr @_ZN28TemplateInterpreterGenerator21generate_native_entryEb(ptr noundef nonnull align 8 dereferenceable(24) %0, i1 noundef zeroext %.01320) #7 + br label %24 + +17: ; preds = %.thread + %18 = zext i1 %.01320 to i64 + %19 = getelementptr inbounds [40 x ptr], ptr @_ZN19AbstractInterpreter12_entry_tableE, i64 0, i64 %18 + %20 = load ptr, ptr %19, align 8 + %21 = icmp eq ptr %20, null + br i1 %21, label %22, label %24 -11: ; preds = %.thread - %12 = select i1 %.01320, i64 3, i64 2 - %13 = getelementptr inbounds [40 x ptr], ptr @_ZN19AbstractInterpreter12_entry_tableE, i64 0, i64 %12 - %14 = load ptr, ptr %13, align 8 - %15 = icmp eq ptr %14, null - br i1 %15, label %16, label %25 +22: ; preds = %17 + %23 = tail call noundef ptr @_ZN28TemplateInterpreterGenerator21generate_normal_entryEb(ptr noundef nonnull align 8 dereferenceable(24) %0, i1 noundef zeroext %.01320) #7 + br label %24 -16: ; preds = %11 - %17 = tail call noundef ptr @_ZN28TemplateInterpreterGenerator21generate_native_entryEb(ptr noundef nonnull align 8 dereferenceable(24) %0, i1 noundef zeroext %.01320) #7 - br label %25 - -18: ; preds = %.thread - %19 = zext i1 %.01320 to i64 - %20 = getelementptr inbounds [40 x ptr], ptr @_ZN19AbstractInterpreter12_entry_tableE, i64 0, i64 %19 - %21 = load ptr, ptr %20, align 8 - %22 = icmp eq ptr %21, null - br i1 %22, label %23, label %25 - -23: ; preds = %18 - %24 = tail call noundef ptr @_ZN28TemplateInterpreterGenerator21generate_normal_entryEb(ptr noundef nonnull align 8 dereferenceable(24) %0, i1 noundef zeroext %.01320) #7 - br label %25 - -25: ; preds = %16, %11, %23, %18, %10 - %.014 = phi ptr [ %.0, %10 ], [ %17, %16 ], [ %14, %11 ], [ %24, %23 ], [ %21, %18 ] +24: ; preds = %15, %10, %22, %17, %9 + %.014 = phi ptr [ %.0, %9 ], [ %16, %15 ], [ %13, %10 ], [ %23, %22 ], [ %20, %17 ] ret ptr %.014 } diff --git a/bench/openmpi/optimized/bfrop_base_copy.ll b/bench/openmpi/optimized/bfrop_base_copy.ll index 937602d22c3..cc4ef2f4c13 100644 --- a/bench/openmpi/optimized/bfrop_base_copy.ll +++ b/bench/openmpi/optimized/bfrop_base_copy.ll @@ -261,16 +261,16 @@ pmix_bfrops_base_tma_buffer_extend.exit.thread: ; preds = %68, %pmix_bfrops_ba ; Function Attrs: mustprogress nofree nounwind willreturn uwtable define range(i32 -29, 1) i32 @pmix_bfrops_base_std_copy(ptr nocapture noundef writeonly %0, ptr nocapture noundef readonly %1, i16 noundef zeroext %2) local_unnamed_addr #2 { - switch i16 %2, label %21 [ - i16 1, label %17 + switch i16 %2, label %15 [ + i16 1, label %11 i16 6, label %4 i16 11, label %4 i16 4, label %5 i16 5, label %6 - i16 2, label %17 - i16 7, label %17 - i16 12, label %17 - i16 51, label %17 + i16 2, label %11 + i16 7, label %11 + i16 12, label %11 + i16 51, label %11 i16 8, label %7 i16 13, label %7 i16 45, label %7 @@ -284,75 +284,57 @@ define range(i32 -29, 1) i32 @pmix_bfrops_base_std_copy(ptr nocapture noundef wr i16 66, label %9 i16 67, label %9 i16 68, label %9 - i16 16, label %10 - i16 18, label %11 - i16 19, label %12 - i16 20, label %13 - i16 40, label %14 - i16 30, label %17 - i16 31, label %15 - i16 32, label %17 - i16 33, label %17 - i16 34, label %17 - i16 35, label %16 - i16 37, label %17 - i16 43, label %17 - i16 71, label %17 - i16 50, label %17 + i16 16, label %6 + i16 18, label %10 + i16 19, label %5 + i16 20, label %6 + i16 40, label %6 + i16 30, label %11 + i16 31, label %5 + i16 32, label %11 + i16 33, label %11 + i16 34, label %11 + i16 35, label %6 + i16 37, label %11 + i16 43, label %11 + i16 71, label %11 + i16 50, label %11 ] 4: ; preds = %3, %3 - br label %17 + br label %11 -5: ; preds = %3 - br label %17 +5: ; preds = %3, %3, %3 + br label %11 -6: ; preds = %3 - br label %17 +6: ; preds = %3, %3, %3, %3, %3 + br label %11 7: ; preds = %3, %3, %3, %3, %3 - br label %17 + br label %11 8: ; preds = %3, %3 - br label %17 + br label %11 9: ; preds = %3, %3, %3, %3, %3, %3 - br label %17 + br label %11 10: ; preds = %3 - br label %17 - -11: ; preds = %3 - br label %17 - -12: ; preds = %3 - br label %17 - -13: ; preds = %3 - br label %17 - -14: ; preds = %3 - br label %17 - -15: ; preds = %3 - br label %17 - -16: ; preds = %3 - br label %17 + br label %11 -17: ; preds = %3, %3, %3, %3, %3, %3, %3, %3, %3, %3, %3, %3, %3, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4 - %.0 = phi i64 [ 4, %16 ], [ 8, %15 ], [ 4, %14 ], [ 4, %13 ], [ 8, %12 ], [ 16, %11 ], [ 4, %10 ], [ 8, %9 ], [ 4, %8 ], [ 2, %7 ], [ 4, %6 ], [ 8, %5 ], [ 4, %4 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ] - %18 = tail call noalias ptr @malloc(i64 noundef %.0) #19 - %19 = icmp eq ptr %18, null - br i1 %19, label %21, label %20 +11: ; preds = %3, %3, %3, %3, %3, %3, %3, %3, %3, %3, %3, %3, %3, %10, %9, %8, %7, %6, %5, %4 + %.0 = phi i64 [ 16, %10 ], [ 8, %9 ], [ 4, %8 ], [ 2, %7 ], [ 4, %6 ], [ 8, %5 ], [ 4, %4 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ] + %12 = tail call noalias ptr @malloc(i64 noundef %.0) #19 + %13 = icmp eq ptr %12, null + br i1 %13, label %15, label %14 -20: ; preds = %17 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %18, ptr noundef nonnull align 1 dereferenceable(1) %1, i64 %.0, i1 false) - store ptr %18, ptr %0, align 8 - br label %21 +14: ; preds = %11 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %12, ptr noundef nonnull align 1 dereferenceable(1) %1, i64 %.0, i1 false) + store ptr %12, ptr %0, align 8 + br label %15 -21: ; preds = %17, %3, %20 - %.08 = phi i32 [ 0, %20 ], [ -16, %3 ], [ -29, %17 ] +15: ; preds = %11, %3, %14 + %.08 = phi i32 [ 0, %14 ], [ -16, %3 ], [ -29, %11 ] ret i32 %.08 } diff --git a/bench/openmpi/optimized/bfrop_v12.ll b/bench/openmpi/optimized/bfrop_v12.ll index 6e258eecc25..662723a7d0f 100644 --- a/bench/openmpi/optimized/bfrop_v12.ll +++ b/bench/openmpi/optimized/bfrop_v12.ll @@ -2844,36 +2844,33 @@ pmix_pointer_array_get_item.exit.thread: ; preds = %1, %pmix_pointer_ar ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable define range(i32 0, 65536) i32 @pmix12_v2_to_v1_datatype(i16 noundef zeroext %0) local_unnamed_addr #5 { %2 = zext i16 %0 to i32 - switch i16 %0, label %7 [ - i16 20, label %8 + switch i16 %0, label %6 [ + i16 20, label %7 i16 44, label %3 - i16 40, label %8 - i16 39, label %4 - i16 23, label %5 - i16 24, label %5 - i16 25, label %5 - i16 26, label %5 - i16 27, label %5 - i16 28, label %5 - i16 29, label %5 - i16 30, label %5 + i16 40, label %7 + i16 39, label %3 + i16 23, label %4 + i16 24, label %4 + i16 25, label %4 + i16 26, label %4 + i16 27, label %4 + i16 28, label %4 + i16 29, label %4 + i16 30, label %4 ] -3: ; preds = %1 - br label %8 +3: ; preds = %1, %1 + br label %7 -4: ; preds = %1 - br label %8 +4: ; preds = %1, %1, %1, %1, %1, %1, %1, %1 + %5 = add nuw nsw i32 %2, 1 + br label %7 -5: ; preds = %1, %1, %1, %1, %1, %1, %1, %1 - %6 = add nuw nsw i32 %2, 1 - br label %8 +6: ; preds = %1 + br label %7 -7: ; preds = %1 - br label %8 - -8: ; preds = %1, %1, %7, %5, %4, %3 - %.0 = phi i32 [ %2, %7 ], [ %6, %5 ], [ 22, %4 ], [ 22, %3 ], [ 6, %1 ], [ 6, %1 ] +7: ; preds = %1, %1, %6, %4, %3 + %.0 = phi i32 [ %2, %6 ], [ %5, %4 ], [ 22, %3 ], [ 6, %1 ], [ 6, %1 ] ret i32 %.0 } @@ -2881,39 +2878,36 @@ define range(i32 0, 65536) i32 @pmix12_v2_to_v1_datatype(i16 noundef zeroext %0) define i32 @pmix12_bfrop_store_data_type(ptr noundef %0, ptr noundef %1, i16 noundef zeroext %2) local_unnamed_addr #0 { %4 = alloca i32, align 4 %5 = zext i16 %2 to i32 - switch i16 %2, label %10 [ + switch i16 %2, label %9 [ i16 20, label %pmix12_v2_to_v1_datatype.exit i16 44, label %6 i16 40, label %pmix12_v2_to_v1_datatype.exit - i16 39, label %7 - i16 23, label %8 - i16 24, label %8 - i16 25, label %8 - i16 26, label %8 - i16 27, label %8 - i16 28, label %8 - i16 29, label %8 - i16 30, label %8 + i16 39, label %6 + i16 23, label %7 + i16 24, label %7 + i16 25, label %7 + i16 26, label %7 + i16 27, label %7 + i16 28, label %7 + i16 29, label %7 + i16 30, label %7 ] -6: ; preds = %3 +6: ; preds = %3, %3 br label %pmix12_v2_to_v1_datatype.exit -7: ; preds = %3 +7: ; preds = %3, %3, %3, %3, %3, %3, %3, %3 + %8 = add nuw nsw i32 %5, 1 br label %pmix12_v2_to_v1_datatype.exit -8: ; preds = %3, %3, %3, %3, %3, %3, %3, %3 - %9 = add nuw nsw i32 %5, 1 - br label %pmix12_v2_to_v1_datatype.exit - -10: ; preds = %3 +9: ; preds = %3 br label %pmix12_v2_to_v1_datatype.exit -pmix12_v2_to_v1_datatype.exit: ; preds = %3, %3, %6, %7, %8, %10 - %.0.i = phi i32 [ %5, %10 ], [ %9, %8 ], [ 22, %7 ], [ 22, %6 ], [ 6, %3 ], [ 6, %3 ] +pmix12_v2_to_v1_datatype.exit: ; preds = %3, %3, %6, %7, %9 + %.0.i = phi i32 [ %5, %9 ], [ %8, %7 ], [ 22, %6 ], [ 6, %3 ], [ 6, %3 ] store i32 %.0.i, ptr %4, align 4 - %11 = call i32 @pmix12_bfrop_pack_datatype(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %4, i32 noundef 1, i16 noundef zeroext 6) #17 - ret i32 %11 + %10 = call i32 @pmix12_bfrop_pack_datatype(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %4, i32 noundef 1, i16 noundef zeroext 6) #17 + ret i32 %10 } declare i32 @pmix12_bfrop_pack_datatype(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i16 noundef zeroext) #1 diff --git a/bench/openmpi/optimized/pmix_base_fns.ll b/bench/openmpi/optimized/pmix_base_fns.ll index 830cbd0e0f3..552b912f36e 100644 --- a/bench/openmpi/optimized/pmix_base_fns.ll +++ b/bench/openmpi/optimized/pmix_base_fns.ll @@ -108,8 +108,8 @@ declare void @PMIx_Info_destruct(ptr noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable define range(i32 -5, -7) i32 @opal_pmix_convert_status(i32 noundef %0) local_unnamed_addr #2 { - switch i32 %0, label %29 [ - i32 -3, label %30 + switch i32 %0, label %28 [ + i32 -3, label %29 i32 -334, label %2 i32 -7, label %3 i32 -8, label %4 @@ -138,96 +138,93 @@ define range(i32 -5, -7) i32 @opal_pmix_convert_status(i32 noundef %0) local_unn i32 -109, label %24 i32 -110, label %25 i32 -147, label %26 - i32 -1, label %27 - i32 0, label %28 + i32 -1, label %16 + i32 0, label %27 ] 2: ; preds = %1 - br label %30 + br label %29 3: ; preds = %1 - br label %30 + br label %29 4: ; preds = %1 - br label %30 + br label %29 5: ; preds = %1 - br label %30 + br label %29 6: ; preds = %1 - br label %30 + br label %29 7: ; preds = %1 - br label %30 + br label %29 8: ; preds = %1 - br label %30 + br label %29 9: ; preds = %1 - br label %30 + br label %29 10: ; preds = %1 - br label %30 + br label %29 11: ; preds = %1 - br label %30 + br label %29 12: ; preds = %1 - br label %30 + br label %29 13: ; preds = %1 - br label %30 + br label %29 14: ; preds = %1 - br label %30 + br label %29 15: ; preds = %1 - br label %30 + br label %29 -16: ; preds = %1 - br label %30 +16: ; preds = %1, %1 + br label %29 17: ; preds = %1 - br label %30 + br label %29 18: ; preds = %1, %1 - br label %30 + br label %29 19: ; preds = %1 - br label %30 + br label %29 20: ; preds = %1 - br label %30 + br label %29 21: ; preds = %1, %1, %1 - br label %30 + br label %29 22: ; preds = %1 - br label %30 + br label %29 23: ; preds = %1 - br label %30 + br label %29 24: ; preds = %1 - br label %30 + br label %29 25: ; preds = %1 - br label %30 + br label %29 26: ; preds = %1 - br label %30 + br label %29 27: ; preds = %1 - br label %30 + br label %29 28: ; preds = %1 - br label %30 - -29: ; preds = %1 - br label %30 + br label %29 -30: ; preds = %1, %29, %28, %27, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3, %2 - %.0 = phi i32 [ %0, %29 ], [ %0, %28 ], [ %0, %27 ], [ -69, %26 ], [ -68, %25 ], [ -67, %24 ], [ -56, %23 ], [ -14, %22 ], [ -51, %21 ], [ -10, %20 ], [ -15, %19 ], [ -12, %18 ], [ -5, %17 ], [ -1, %16 ], [ -2, %15 ], [ -13, %14 ], [ -8, %13 ], [ -66, %12 ], [ -65, %11 ], [ -64, %10 ], [ -63, %9 ], [ -62, %8 ], [ -61, %7 ], [ -60, %6 ], [ -59, %5 ], [ -58, %4 ], [ -57, %3 ], [ -55, %2 ], [ -54, %1 ] +29: ; preds = %1, %28, %27, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3, %2 + %.0 = phi i32 [ %0, %28 ], [ %0, %27 ], [ -69, %26 ], [ -68, %25 ], [ -67, %24 ], [ -56, %23 ], [ -14, %22 ], [ -51, %21 ], [ -10, %20 ], [ -15, %19 ], [ -12, %18 ], [ -5, %17 ], [ -1, %16 ], [ -2, %15 ], [ -13, %14 ], [ -8, %13 ], [ -66, %12 ], [ -65, %11 ], [ -64, %10 ], [ -63, %9 ], [ -62, %8 ], [ -61, %7 ], [ -60, %6 ], [ -59, %5 ], [ -58, %4 ], [ -57, %3 ], [ -55, %2 ], [ -54, %1 ] ret i32 %.0 } @@ -991,8 +988,8 @@ declare i64 @strtoul(ptr noundef readonly, ptr nocapture noundef, i32 noundef) l ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable define range(i32 -53, -56) i32 @opal_pmix_convert_rc(i32 noundef %0) local_unnamed_addr #2 { - switch i32 %0, label %26 [ - i32 -54, label %27 + switch i32 %0, label %25 [ + i32 -54, label %26 i32 -55, label %2 i32 -57, label %3 i32 -58, label %4 @@ -1019,86 +1016,83 @@ define range(i32 -53, -56) i32 @opal_pmix_convert_rc(i32 noundef %0) local_unnam i32 -56, label %22 i32 -69, label %23 i32 -1, label %24 - i32 0, label %25 + i32 0, label %24 ] 2: ; preds = %1 - br label %27 + br label %26 3: ; preds = %1 - br label %27 + br label %26 4: ; preds = %1 - br label %27 + br label %26 5: ; preds = %1 - br label %27 + br label %26 6: ; preds = %1 - br label %27 + br label %26 7: ; preds = %1 - br label %27 + br label %26 8: ; preds = %1 - br label %27 + br label %26 9: ; preds = %1 - br label %27 + br label %26 10: ; preds = %1 - br label %27 + br label %26 11: ; preds = %1 - br label %27 + br label %26 12: ; preds = %1 - br label %27 + br label %26 13: ; preds = %1, %1 - br label %27 + br label %26 14: ; preds = %1 - br label %27 + br label %26 15: ; preds = %1, %1, %1 - br label %27 + br label %26 16: ; preds = %1 - br label %27 + br label %26 17: ; preds = %1 - br label %27 + br label %26 18: ; preds = %1 - br label %27 + br label %26 19: ; preds = %1 - br label %27 + br label %26 20: ; preds = %1 - br label %27 + br label %26 21: ; preds = %1 - br label %27 + br label %26 22: ; preds = %1 - br label %27 + br label %26 23: ; preds = %1 - br label %27 + br label %26 -24: ; preds = %1 - br label %27 +24: ; preds = %1, %1 + br label %26 25: ; preds = %1 - br label %27 - -26: ; preds = %1 - br label %27 + br label %26 -27: ; preds = %1, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3, %2 - %.0 = phi i32 [ %0, %26 ], [ %0, %25 ], [ %0, %24 ], [ -147, %23 ], [ -104, %22 ], [ -11, %21 ], [ -15, %20 ], [ -24, %19 ], [ -30, %18 ], [ -29, %17 ], [ -27, %16 ], [ -25, %15 ], [ -46, %14 ], [ -47, %13 ], [ -144, %12 ], [ -6, %11 ], [ -5, %10 ], [ -4, %9 ], [ -145, %8 ], [ -232, %7 ], [ -231, %6 ], [ -9, %5 ], [ -8, %4 ], [ -7, %3 ], [ -334, %2 ], [ -3, %1 ] +26: ; preds = %1, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3, %2 + %.0 = phi i32 [ %0, %25 ], [ %0, %24 ], [ -147, %23 ], [ -104, %22 ], [ -11, %21 ], [ -15, %20 ], [ -24, %19 ], [ -30, %18 ], [ -29, %17 ], [ -27, %16 ], [ -25, %15 ], [ -46, %14 ], [ -47, %13 ], [ -144, %12 ], [ -6, %11 ], [ -5, %10 ], [ -4, %9 ], [ -145, %8 ], [ -232, %7 ], [ -231, %6 ], [ -9, %5 ], [ -8, %4 ], [ -7, %3 ], [ -334, %2 ], [ -3, %1 ] ret i32 %.0 } diff --git a/bench/openssl/optimized/libcrypto-lib-rsa_sign.ll b/bench/openssl/optimized/libcrypto-lib-rsa_sign.ll index 2c2ccb6b43b..c908e210b23 100644 --- a/bench/openssl/optimized/libcrypto-lib-rsa_sign.ll +++ b/bench/openssl/optimized/libcrypto-lib-rsa_sign.ll @@ -419,57 +419,36 @@ if.then67: ; preds = %if.else64 i32 257, label %if.end72 i32 4, label %if.end72 i32 117, label %sw.bb3.i - i32 64, label %sw.bb4.i + i32 64, label %sw.bb3.i i32 675, label %sw.bb5.i i32 672, label %sw.bb6.i i32 673, label %sw.bb7.i i32 674, label %sw.bb8.i - i32 1094, label %sw.bb9.i - i32 1095, label %sw.bb10.i - i32 1096, label %sw.bb11.i - i32 1097, label %sw.bb12.i - i32 1098, label %sw.bb13.i - i32 1099, label %sw.bb14.i + i32 1094, label %sw.bb5.i + i32 1095, label %sw.bb6.i + i32 1096, label %sw.bb5.i + i32 1097, label %sw.bb6.i + i32 1098, label %sw.bb7.i + i32 1099, label %sw.bb8.i ] -sw.bb3.i: ; preds = %if.then67 - br label %if.end72 - -sw.bb4.i: ; preds = %if.then67 - br label %if.end72 - -sw.bb5.i: ; preds = %if.then67 - br label %if.end72 - -sw.bb6.i: ; preds = %if.then67 - br label %if.end72 - -sw.bb7.i: ; preds = %if.then67 - br label %if.end72 - -sw.bb8.i: ; preds = %if.then67 - br label %if.end72 - -sw.bb9.i: ; preds = %if.then67 - br label %if.end72 - -sw.bb10.i: ; preds = %if.then67 +sw.bb3.i: ; preds = %if.then67, %if.then67 br label %if.end72 -sw.bb11.i: ; preds = %if.then67 +sw.bb5.i: ; preds = %if.then67, %if.then67, %if.then67 br label %if.end72 -sw.bb12.i: ; preds = %if.then67 +sw.bb6.i: ; preds = %if.then67, %if.then67, %if.then67 br label %if.end72 -sw.bb13.i: ; preds = %if.then67 +sw.bb7.i: ; preds = %if.then67, %if.then67 br label %if.end72 -sw.bb14.i: ; preds = %if.then67 +sw.bb8.i: ; preds = %if.then67, %if.then67 br label %if.end72 -if.end72: ; preds = %sw.bb14.i, %sw.bb13.i, %sw.bb12.i, %sw.bb11.i, %sw.bb10.i, %sw.bb9.i, %sw.bb8.i, %sw.bb7.i, %sw.bb6.i, %sw.bb5.i, %sw.bb4.i, %sw.bb3.i, %if.then67, %if.then67, %if.then67 - %retval.0.i.ph = phi i32 [ 16, %if.then67 ], [ 16, %if.then67 ], [ 16, %if.then67 ], [ 20, %sw.bb3.i ], [ 20, %sw.bb4.i ], [ 28, %sw.bb5.i ], [ 32, %sw.bb6.i ], [ 48, %sw.bb7.i ], [ 64, %sw.bb8.i ], [ 28, %sw.bb9.i ], [ 32, %sw.bb10.i ], [ 28, %sw.bb11.i ], [ 32, %sw.bb12.i ], [ 48, %sw.bb13.i ], [ 64, %sw.bb14.i ] +if.end72: ; preds = %sw.bb8.i, %sw.bb7.i, %sw.bb6.i, %sw.bb5.i, %sw.bb3.i, %if.then67, %if.then67, %if.then67 + %retval.0.i.ph = phi i32 [ 16, %if.then67 ], [ 16, %if.then67 ], [ 16, %if.then67 ], [ 20, %sw.bb3.i ], [ 28, %sw.bb5.i ], [ 32, %sw.bb6.i ], [ 48, %sw.bb7.i ], [ 64, %sw.bb8.i ] %cmp74 = icmp ugt i32 %retval.0.i.ph, %call8 br i1 %cmp74, label %if.then76, label %if.end77 diff --git a/bench/openusd/optimized/avif.c.ll b/bench/openusd/optimized/avif.c.ll index e4c6ead76de..ca7d0a63405 100644 --- a/bench/openusd/optimized/avif.c.ll +++ b/bench/openusd/optimized/avif.c.ll @@ -338,89 +338,95 @@ define hidden void @avifImageCopySamples(ptr nocapture noundef readonly %0, ptr 22: ; preds = %20 %23 = load i32, ptr %12, align 4 switch i32 %23, label %29 [ - i32 4, label %avifImagePlaneRowBytes.exit58 - i32 2, label %.thread126 - i32 3, label %avifGetPixelFormatInfo.exit.thread.i49 + i32 4, label %avifImagePlaneRowBytes.exit57 + i32 2, label %avifGetPixelFormatInfo.exit.thread15.i + i32 3, label %avifGetPixelFormatInfo.exit.thread15.i ] -.thread126: ; preds = %22 - br label %avifGetPixelFormatInfo.exit.thread.i49 +avifGetPixelFormatInfo.exit.thread15.i: ; preds = %22, %22 + br label %29 24: ; preds = %20 %25 = load ptr, ptr %7, align 8 %.not.i = icmp eq ptr %25, null - br i1 %.not.i, label %.loopexit, label %avifImagePlaneRowBytes.exit58.thread141 + br i1 %.not.i, label %.loopexit, label %avifImagePlaneRowBytes.exit57.thread136 26: ; preds = %20 %27 = load i32, ptr %1, align 8 %28 = load i32, ptr %8, align 4 - br label %avifImagePlaneRowBytes.exit58 - -29: ; preds = %22 - br label %avifGetPixelFormatInfo.exit.thread.i49 + br label %avifImagePlaneRowBytes.exit57 -avifGetPixelFormatInfo.exit.thread.i49: ; preds = %22, %29, %.thread126 - %.sink159 = phi i32 [ 0, %29 ], [ 1, %.thread126 ], [ 1, %22 ] - %.sroa.5.0.i = phi i32 [ 0, %29 ], [ 0, %.thread126 ], [ 1, %22 ] +29: ; preds = %22, %avifGetPixelFormatInfo.exit.thread15.i + %.sroa.3.0.i = phi i32 [ 0, %22 ], [ 1, %avifGetPixelFormatInfo.exit.thread15.i ] %30 = load i32, ptr %1, align 8 - %31 = add i32 %30, %.sink159 - %32 = lshr i32 %31, %.sink159 + %31 = add i32 %30, %.sroa.3.0.i + %32 = lshr i32 %31, %.sroa.3.0.i + switch i32 %23, label %avifGetPixelFormatInfo.exit.thread.i48 [ + i32 4, label %avifImagePlaneRowBytes.exit57 + i32 3, label %avifGetPixelFormatInfo.exit.thread19.i + ] + +avifGetPixelFormatInfo.exit.thread19.i: ; preds = %29 + br label %avifGetPixelFormatInfo.exit.thread.i48 + +avifGetPixelFormatInfo.exit.thread.i48: ; preds = %avifGetPixelFormatInfo.exit.thread19.i, %29 + %.sroa.5.0.i = phi i32 [ 0, %29 ], [ 1, %avifGetPixelFormatInfo.exit.thread19.i ] %33 = load i32, ptr %8, align 4 %34 = add i32 %33, %.sroa.5.0.i %35 = lshr i32 %34, %.sroa.5.0.i - br label %avifImagePlaneRowBytes.exit58 + br label %avifImagePlaneRowBytes.exit57 -avifImagePlaneRowBytes.exit58.thread141: ; preds = %24 +avifImagePlaneRowBytes.exit57.thread136: ; preds = %24 %36 = load i32, ptr %1, align 8 %37 = load i32, ptr %8, align 4 br label %42 -avifImagePlaneRowBytes.exit58: ; preds = %22, %avifGetPixelFormatInfo.exit.thread.i49, %26 - %.0.i60.ph = phi i32 [ %32, %avifGetPixelFormatInfo.exit.thread.i49 ], [ %27, %26 ], [ 0, %22 ] - %.0.i46.ph = phi i32 [ %35, %avifGetPixelFormatInfo.exit.thread.i49 ], [ %28, %26 ], [ 0, %22 ] +avifImagePlaneRowBytes.exit57: ; preds = %22, %avifGetPixelFormatInfo.exit.thread.i48, %29, %26 + %.0.i59.ph = phi i32 [ %32, %29 ], [ %32, %avifGetPixelFormatInfo.exit.thread.i48 ], [ %27, %26 ], [ 0, %22 ] + %.0.i46.ph = phi i32 [ 0, %29 ], [ %35, %avifGetPixelFormatInfo.exit.thread.i48 ], [ %28, %26 ], [ 0, %22 ] %38 = getelementptr inbounds [3 x ptr], ptr %13, i64 0, i64 %indvars.iv %39 = getelementptr inbounds [3 x ptr], ptr %14, i64 0, i64 %indvars.iv %40 = getelementptr inbounds [3 x i32], ptr %15, i64 0, i64 %indvars.iv %41 = getelementptr inbounds [3 x i32], ptr %16, i64 0, i64 %indvars.iv - %.0.i508491113.pre = load ptr, ptr %38, align 8 - %.not43 = icmp eq ptr %.0.i508491113.pre, null + %.0.i498390112.pre = load ptr, ptr %38, align 8 + %.not43 = icmp eq ptr %.0.i498390112.pre, null br i1 %.not43, label %.loopexit, label %42 -42: ; preds = %avifImagePlaneRowBytes.exit58.thread141, %avifImagePlaneRowBytes.exit58 - %.0.i55115156.in = phi ptr [ %10, %avifImagePlaneRowBytes.exit58.thread141 ], [ %40, %avifImagePlaneRowBytes.exit58 ] - %.0.i57155.in = phi ptr [ %11, %avifImagePlaneRowBytes.exit58.thread141 ], [ %41, %avifImagePlaneRowBytes.exit58 ] - %.0.i5299107.in154 = phi ptr [ %9, %avifImagePlaneRowBytes.exit58.thread141 ], [ %39, %avifImagePlaneRowBytes.exit58 ] - %.0.i46708095109153 = phi i32 [ %37, %avifImagePlaneRowBytes.exit58.thread141 ], [ %.0.i46.ph, %avifImagePlaneRowBytes.exit58 ] - %.0.i60688293111152 = phi i32 [ %36, %avifImagePlaneRowBytes.exit58.thread141 ], [ %.0.i60.ph, %avifImagePlaneRowBytes.exit58 ] - %.0.i508491113151 = phi ptr [ %25, %avifImagePlaneRowBytes.exit58.thread141 ], [ %.0.i508491113.pre, %avifImagePlaneRowBytes.exit58 ] - %43 = zext i32 %.0.i60688293111152 to i64 +42: ; preds = %avifImagePlaneRowBytes.exit57.thread136, %avifImagePlaneRowBytes.exit57 + %.0.i54114151.in = phi ptr [ %10, %avifImagePlaneRowBytes.exit57.thread136 ], [ %40, %avifImagePlaneRowBytes.exit57 ] + %.0.i56150.in = phi ptr [ %11, %avifImagePlaneRowBytes.exit57.thread136 ], [ %41, %avifImagePlaneRowBytes.exit57 ] + %.0.i5198106.in149 = phi ptr [ %9, %avifImagePlaneRowBytes.exit57.thread136 ], [ %39, %avifImagePlaneRowBytes.exit57 ] + %.0.i46697994108148 = phi i32 [ %37, %avifImagePlaneRowBytes.exit57.thread136 ], [ %.0.i46.ph, %avifImagePlaneRowBytes.exit57 ] + %.0.i59678192110147 = phi i32 [ %36, %avifImagePlaneRowBytes.exit57.thread136 ], [ %.0.i59.ph, %avifImagePlaneRowBytes.exit57 ] + %.0.i498390112146 = phi ptr [ %25, %avifImagePlaneRowBytes.exit57.thread136 ], [ %.0.i498390112.pre, %avifImagePlaneRowBytes.exit57 ] + %43 = zext i32 %.0.i59678192110147 to i64 %44 = shl nuw nsw i64 %43, %17 - %.not = icmp eq i32 %.0.i46708095109153, 0 + %.not = icmp eq i32 %.0.i46697994108148, 0 br i1 %.not, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %42 - %.0.i57155 = load i32, ptr %.0.i57155.in, align 4 - %.0.i55115156 = load i32, ptr %.0.i55115156.in, align 4 - %.0.i5299107 = load ptr, ptr %.0.i5299107.in154, align 8 - %45 = zext i32 %.0.i55115156 to i64 - %46 = zext i32 %.0.i57155 to i64 + %.0.i56150 = load i32, ptr %.0.i56150.in, align 4 + %.0.i54114151 = load i32, ptr %.0.i54114151.in, align 4 + %.0.i5198106 = load ptr, ptr %.0.i5198106.in149, align 8 + %45 = zext i32 %.0.i54114151 to i64 + %46 = zext i32 %.0.i56150 to i64 br label %47 47: ; preds = %.lr.ph, %47 - %.0119 = phi i32 [ 0, %.lr.ph ], [ %50, %47 ] - %.039118 = phi ptr [ %.0.i508491113151, %.lr.ph ], [ %48, %47 ] - %.040117 = phi ptr [ %.0.i5299107, %.lr.ph ], [ %49, %47 ] - tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %.040117, ptr align 1 %.039118, i64 %44, i1 false) - %48 = getelementptr inbounds i8, ptr %.039118, i64 %45 - %49 = getelementptr inbounds i8, ptr %.040117, i64 %46 - %50 = add nuw i32 %.0119, 1 - %exitcond.not = icmp eq i32 %50, %.0.i46708095109153 + %.0118 = phi i32 [ 0, %.lr.ph ], [ %50, %47 ] + %.039117 = phi ptr [ %.0.i498390112146, %.lr.ph ], [ %48, %47 ] + %.040116 = phi ptr [ %.0.i5198106, %.lr.ph ], [ %49, %47 ] + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %.040116, ptr align 1 %.039117, i64 %44, i1 false) + %48 = getelementptr inbounds i8, ptr %.039117, i64 %45 + %49 = getelementptr inbounds i8, ptr %.040116, i64 %46 + %50 = add nuw i32 %.0118, 1 + %exitcond.not = icmp eq i32 %50, %.0.i46697994108148 br i1 %exitcond.not, label %.loopexit, label %47, !llvm.loop !4 -.loopexit: ; preds = %47, %24, %42, %avifImagePlaneRowBytes.exit58, %18 +.loopexit: ; preds = %47, %24, %42, %avifImagePlaneRowBytes.exit57, %18 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond123.not = icmp eq i64 %indvars.iv.next, 4 - br i1 %exitcond123.not, label %51, label %18, !llvm.loop !6 + %exitcond122.not = icmp eq i64 %indvars.iv.next, 4 + br i1 %exitcond122.not, label %51, label %18, !llvm.loop !6 51: ; preds = %.loopexit ret void @@ -454,17 +460,14 @@ define hidden i32 @avifImagePlaneWidth(ptr nocapture noundef readonly %0, i32 no switch i32 %9, label %avifGetPixelFormatInfo.exit.thread [ i32 4, label %avifGetPixelFormatInfo.exit i32 2, label %avifGetPixelFormatInfo.exit.thread15 - i32 3, label %avifGetPixelFormatInfo.exit.thread19 + i32 3, label %avifGetPixelFormatInfo.exit.thread15 ] -avifGetPixelFormatInfo.exit.thread19: ; preds = %7 +avifGetPixelFormatInfo.exit.thread15: ; preds = %7, %7 br label %avifGetPixelFormatInfo.exit.thread -avifGetPixelFormatInfo.exit.thread15: ; preds = %7 - br label %avifGetPixelFormatInfo.exit.thread - -avifGetPixelFormatInfo.exit.thread: ; preds = %7, %avifGetPixelFormatInfo.exit.thread19, %avifGetPixelFormatInfo.exit.thread15 - %.sroa.3.0 = phi i32 [ 0, %7 ], [ 1, %avifGetPixelFormatInfo.exit.thread19 ], [ 1, %avifGetPixelFormatInfo.exit.thread15 ] +avifGetPixelFormatInfo.exit.thread: ; preds = %7, %avifGetPixelFormatInfo.exit.thread15 + %.sroa.3.0 = phi i32 [ 0, %7 ], [ 1, %avifGetPixelFormatInfo.exit.thread15 ] %10 = load i32, ptr %0, align 8 %11 = add i32 %.sroa.3.0, %10 %12 = lshr i32 %11, %.sroa.3.0 @@ -808,89 +811,95 @@ avifImageFreePlanes.exit: ; preds = %18, %21 126: ; preds = %124 %127 = load i32, ptr %32, align 4 switch i32 %127, label %133 [ - i32 4, label %avifImagePlaneRowBytes.exit58.i - i32 2, label %.thread126.i - i32 3, label %avifGetPixelFormatInfo.exit.thread.i49.i + i32 4, label %avifImagePlaneRowBytes.exit57.i + i32 2, label %avifGetPixelFormatInfo.exit.thread15.i.i + i32 3, label %avifGetPixelFormatInfo.exit.thread15.i.i ] -.thread126.i: ; preds = %126 - br label %avifGetPixelFormatInfo.exit.thread.i49.i +avifGetPixelFormatInfo.exit.thread15.i.i: ; preds = %126, %126 + br label %133 128: ; preds = %124 %129 = load ptr, ptr %114, align 8 %.not.i.i = icmp eq ptr %129, null - br i1 %.not.i.i, label %.loopexit.i, label %avifImagePlaneRowBytes.exit58.thread141.i + br i1 %.not.i.i, label %.loopexit.i, label %avifImagePlaneRowBytes.exit57.thread136.i 130: ; preds = %124 %131 = load i32, ptr %1, align 8 %132 = load i32, ptr %26, align 4 - br label %avifImagePlaneRowBytes.exit58.i - -133: ; preds = %126 - br label %avifGetPixelFormatInfo.exit.thread.i49.i + br label %avifImagePlaneRowBytes.exit57.i -avifGetPixelFormatInfo.exit.thread.i49.i: ; preds = %133, %.thread126.i, %126 - %.sink159.i = phi i32 [ 0, %133 ], [ 1, %.thread126.i ], [ 1, %126 ] - %.sroa.5.0.i.i = phi i32 [ 0, %133 ], [ 0, %.thread126.i ], [ 1, %126 ] +133: ; preds = %avifGetPixelFormatInfo.exit.thread15.i.i, %126 + %.sroa.3.0.i.i = phi i32 [ 0, %126 ], [ 1, %avifGetPixelFormatInfo.exit.thread15.i.i ] %134 = load i32, ptr %1, align 8 - %135 = add i32 %134, %.sink159.i - %136 = lshr i32 %135, %.sink159.i + %135 = add i32 %134, %.sroa.3.0.i.i + %136 = lshr i32 %135, %.sroa.3.0.i.i + switch i32 %127, label %avifGetPixelFormatInfo.exit.thread.i48.i [ + i32 4, label %avifImagePlaneRowBytes.exit57.i + i32 3, label %avifGetPixelFormatInfo.exit.thread19.i.i + ] + +avifGetPixelFormatInfo.exit.thread19.i.i: ; preds = %133 + br label %avifGetPixelFormatInfo.exit.thread.i48.i + +avifGetPixelFormatInfo.exit.thread.i48.i: ; preds = %avifGetPixelFormatInfo.exit.thread19.i.i, %133 + %.sroa.5.0.i.i = phi i32 [ 0, %133 ], [ 1, %avifGetPixelFormatInfo.exit.thread19.i.i ] %137 = load i32, ptr %26, align 4 %138 = add i32 %137, %.sroa.5.0.i.i %139 = lshr i32 %138, %.sroa.5.0.i.i - br label %avifImagePlaneRowBytes.exit58.i + br label %avifImagePlaneRowBytes.exit57.i -avifImagePlaneRowBytes.exit58.thread141.i: ; preds = %128 +avifImagePlaneRowBytes.exit57.thread136.i: ; preds = %128 %140 = load i32, ptr %1, align 8 %141 = load i32, ptr %26, align 4 br label %146 -avifImagePlaneRowBytes.exit58.i: ; preds = %avifGetPixelFormatInfo.exit.thread.i49.i, %130, %126 - %.0.i60.ph.i = phi i32 [ %136, %avifGetPixelFormatInfo.exit.thread.i49.i ], [ %131, %130 ], [ 0, %126 ] - %.0.i46.ph.i = phi i32 [ %139, %avifGetPixelFormatInfo.exit.thread.i49.i ], [ %132, %130 ], [ 0, %126 ] +avifImagePlaneRowBytes.exit57.i: ; preds = %avifGetPixelFormatInfo.exit.thread.i48.i, %133, %130, %126 + %.0.i59.ph.i = phi i32 [ %136, %133 ], [ %136, %avifGetPixelFormatInfo.exit.thread.i48.i ], [ %131, %130 ], [ 0, %126 ] + %.0.i46.ph.i = phi i32 [ 0, %133 ], [ %139, %avifGetPixelFormatInfo.exit.thread.i48.i ], [ %132, %130 ], [ 0, %126 ] %142 = getelementptr inbounds [3 x ptr], ptr %117, i64 0, i64 %indvars.iv.i %143 = getelementptr inbounds [3 x ptr], ptr %118, i64 0, i64 %indvars.iv.i %144 = getelementptr inbounds [3 x i32], ptr %119, i64 0, i64 %indvars.iv.i %145 = getelementptr inbounds [3 x i32], ptr %120, i64 0, i64 %indvars.iv.i - %.0.i508491113.pre.i = load ptr, ptr %142, align 8 - %.not43.i = icmp eq ptr %.0.i508491113.pre.i, null + %.0.i498390112.pre.i = load ptr, ptr %142, align 8 + %.not43.i = icmp eq ptr %.0.i498390112.pre.i, null br i1 %.not43.i, label %.loopexit.i, label %146 -146: ; preds = %avifImagePlaneRowBytes.exit58.i, %avifImagePlaneRowBytes.exit58.thread141.i - %.0.i55115156.in.i = phi ptr [ %115, %avifImagePlaneRowBytes.exit58.thread141.i ], [ %144, %avifImagePlaneRowBytes.exit58.i ] - %.0.i57155.in.i = phi ptr [ %116, %avifImagePlaneRowBytes.exit58.thread141.i ], [ %145, %avifImagePlaneRowBytes.exit58.i ] - %.0.i5299107.in154.i = phi ptr [ %24, %avifImagePlaneRowBytes.exit58.thread141.i ], [ %143, %avifImagePlaneRowBytes.exit58.i ] - %.0.i46708095109153.i = phi i32 [ %141, %avifImagePlaneRowBytes.exit58.thread141.i ], [ %.0.i46.ph.i, %avifImagePlaneRowBytes.exit58.i ] - %.0.i60688293111152.i = phi i32 [ %140, %avifImagePlaneRowBytes.exit58.thread141.i ], [ %.0.i60.ph.i, %avifImagePlaneRowBytes.exit58.i ] - %.0.i508491113151.i = phi ptr [ %129, %avifImagePlaneRowBytes.exit58.thread141.i ], [ %.0.i508491113.pre.i, %avifImagePlaneRowBytes.exit58.i ] - %147 = zext i32 %.0.i60688293111152.i to i64 +146: ; preds = %avifImagePlaneRowBytes.exit57.i, %avifImagePlaneRowBytes.exit57.thread136.i + %.0.i54114151.in.i = phi ptr [ %115, %avifImagePlaneRowBytes.exit57.thread136.i ], [ %144, %avifImagePlaneRowBytes.exit57.i ] + %.0.i56150.in.i = phi ptr [ %116, %avifImagePlaneRowBytes.exit57.thread136.i ], [ %145, %avifImagePlaneRowBytes.exit57.i ] + %.0.i5198106.in149.i = phi ptr [ %24, %avifImagePlaneRowBytes.exit57.thread136.i ], [ %143, %avifImagePlaneRowBytes.exit57.i ] + %.0.i46697994108148.i = phi i32 [ %141, %avifImagePlaneRowBytes.exit57.thread136.i ], [ %.0.i46.ph.i, %avifImagePlaneRowBytes.exit57.i ] + %.0.i59678192110147.i = phi i32 [ %140, %avifImagePlaneRowBytes.exit57.thread136.i ], [ %.0.i59.ph.i, %avifImagePlaneRowBytes.exit57.i ] + %.0.i498390112146.i = phi ptr [ %129, %avifImagePlaneRowBytes.exit57.thread136.i ], [ %.0.i498390112.pre.i, %avifImagePlaneRowBytes.exit57.i ] + %147 = zext i32 %.0.i59678192110147.i to i64 %148 = shl nuw nsw i64 %147, %121 - %.not.i = icmp eq i32 %.0.i46708095109153.i, 0 + %.not.i = icmp eq i32 %.0.i46697994108148.i, 0 br i1 %.not.i, label %.loopexit.i, label %.lr.ph.i .lr.ph.i: ; preds = %146 - %.0.i57155.i = load i32, ptr %.0.i57155.in.i, align 4 - %.0.i55115156.i = load i32, ptr %.0.i55115156.in.i, align 4 - %.0.i5299107.i = load ptr, ptr %.0.i5299107.in154.i, align 8 - %149 = zext i32 %.0.i55115156.i to i64 - %150 = zext i32 %.0.i57155.i to i64 + %.0.i56150.i = load i32, ptr %.0.i56150.in.i, align 4 + %.0.i54114151.i = load i32, ptr %.0.i54114151.in.i, align 4 + %.0.i5198106.i = load ptr, ptr %.0.i5198106.in149.i, align 8 + %149 = zext i32 %.0.i54114151.i to i64 + %150 = zext i32 %.0.i56150.i to i64 br label %151 151: ; preds = %151, %.lr.ph.i - %.0119.i = phi i32 [ 0, %.lr.ph.i ], [ %154, %151 ] - %.039118.i = phi ptr [ %.0.i508491113151.i, %.lr.ph.i ], [ %152, %151 ] - %.040117.i = phi ptr [ %.0.i5299107.i, %.lr.ph.i ], [ %153, %151 ] - tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %.040117.i, ptr align 1 %.039118.i, i64 %148, i1 false) - %152 = getelementptr inbounds i8, ptr %.039118.i, i64 %149 - %153 = getelementptr inbounds i8, ptr %.040117.i, i64 %150 - %154 = add nuw i32 %.0119.i, 1 - %exitcond.not.i = icmp eq i32 %154, %.0.i46708095109153.i + %.0118.i = phi i32 [ 0, %.lr.ph.i ], [ %154, %151 ] + %.039117.i = phi ptr [ %.0.i498390112146.i, %.lr.ph.i ], [ %152, %151 ] + %.040116.i = phi ptr [ %.0.i5198106.i, %.lr.ph.i ], [ %153, %151 ] + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %.040116.i, ptr align 1 %.039117.i, i64 %148, i1 false) + %152 = getelementptr inbounds i8, ptr %.039117.i, i64 %149 + %153 = getelementptr inbounds i8, ptr %.040116.i, i64 %150 + %154 = add nuw i32 %.0118.i, 1 + %exitcond.not.i = icmp eq i32 %154, %.0.i46697994108148.i br i1 %exitcond.not.i, label %.loopexit.i, label %151, !llvm.loop !4 -.loopexit.i: ; preds = %151, %146, %avifImagePlaneRowBytes.exit58.i, %128, %122 +.loopexit.i: ; preds = %151, %146, %avifImagePlaneRowBytes.exit57.i, %128, %122 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %exitcond123.not.i = icmp eq i64 %indvars.iv.next.i, 4 - br i1 %exitcond123.not.i, label %avifImageCopySamples.exit, label %122, !llvm.loop !6 + %exitcond122.not.i = icmp eq i64 %indvars.iv.next.i, 4 + br i1 %exitcond122.not.i, label %avifImageCopySamples.exit, label %122, !llvm.loop !6 avifImageCopySamples.exit: ; preds = %.loopexit.i, %109, %102, %96, %99, %82, %75, %avifImageFreePlanes.exit %.0 = phi i32 [ %74, %avifImageFreePlanes.exit ], [ %81, %75 ], [ %88, %82 ], [ 24, %99 ], [ 24, %96 ], [ %103, %102 ], [ %110, %109 ], [ 0, %.loopexit.i ] diff --git a/bench/openusd/optimized/stbImage.cpp.ll b/bench/openusd/optimized/stbImage.cpp.ll index 38fe973d274..4c21ffb49f1 100644 --- a/bench/openusd/optimized/stbImage.cpp.ll +++ b/bench/openusd/optimized/stbImage.cpp.ll @@ -38125,7 +38125,7 @@ _ZL10stbi__get8P13stbi__context.exit83: ; preds = %44, %_ZL19stbi__ref %83 = getelementptr inbounds nuw i8, ptr %0, i64 216 %84 = load ptr, ptr %83, align 8 store ptr %84, ptr %7, align 8 - br label %332 + br label %331 _ZL10stbi__get8P13stbi__context.exit83.thread: ; preds = %47, %_ZL10stbi__get8P13stbi__context.exit83 %85 = phi ptr [ %77, %_ZL10stbi__get8P13stbi__context.exit83 ], [ %41, %47 ] @@ -38208,7 +38208,7 @@ _ZL10stbi__get8P13stbi__context.exit89: ; preds = %88, %91, %_ZL19stbi %127 = getelementptr inbounds nuw i8, ptr %0, i64 216 %128 = load ptr, ptr %127, align 8 store ptr %128, ptr %7, align 8 - br label %332 + br label %331 129: ; preds = %122 %130 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -38320,7 +38320,7 @@ _ZL10stbi__get8P13stbi__context.exit97.thread: ; preds = %151, %_ZL10stbi__ge %183 = getelementptr inbounds nuw i8, ptr %0, i64 216 %184 = load ptr, ptr %183, align 8 store ptr %184, ptr %7, align 8 - br label %332 + br label %331 185: ; preds = %_ZL10stbi__get8P13stbi__context.exit97, %_ZL10stbi__get8P13stbi__context.exit97, %_ZL10stbi__get8P13stbi__context.exit97, %_ZL10stbi__get8P13stbi__context.exit97, %_ZL10stbi__get8P13stbi__context.exit97 %186 = load ptr, ptr %130, align 8 @@ -38362,7 +38362,7 @@ _ZL10stbi__get8P13stbi__context.exit97.thread: ; preds = %151, %_ZL10stbi__ge %205 = getelementptr inbounds nuw i8, ptr %0, i64 216 %206 = load ptr, ptr %205, align 8 store ptr %206, ptr %7, align 8 - br label %332 + br label %331 207: ; preds = %200 %208 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -38406,7 +38406,7 @@ _ZL10stbi__skipP13stbi__contexti.exit102: ; preds = %._crit_edge.i104, % %228 = getelementptr inbounds nuw i8, ptr %0, i64 216 %229 = load ptr, ptr %228, align 8 store ptr %229, ptr %7, align 8 - br label %332 + br label %331 230: ; preds = %_ZL10stbi__skipP13stbi__contexti.exit102 %231 = tail call fastcc noundef i32 @_ZL13stbi__get16leP13stbi__context(ptr noundef %0) @@ -38420,7 +38420,7 @@ _ZL10stbi__skipP13stbi__contexti.exit102: ; preds = %._crit_edge.i104, % %236 = getelementptr inbounds nuw i8, ptr %0, i64 216 %237 = load ptr, ptr %236, align 8 store ptr %237, ptr %7, align 8 - br label %332 + br label %331 238: ; preds = %230 %239 = load ptr, ptr %5, align 8 @@ -38547,7 +38547,7 @@ _ZL10stbi__get8P13stbi__context.exit119.sink.split: ; preds = %_ZL19stbi__refill _ZL10stbi__get8P13stbi__context.exit119: ; preds = %_ZL10stbi__get8P13stbi__context.exit119.sink.split, %280 %.not = icmp eq i8 %.070.shrunk, 0 - br i1 %.not, label %318, label %309 + br i1 %.not, label %317, label %309 309: ; preds = %_ZL10stbi__get8P13stbi__context.exit119 switch i8 %.0.i112, label %310 [ @@ -38562,68 +38562,65 @@ _ZL10stbi__get8P13stbi__context.exit119: ; preds = %_ZL10stbi__get8P13s %313 = getelementptr inbounds nuw i8, ptr %0, i64 216 %314 = load ptr, ptr %313, align 8 store ptr %314, ptr %7, align 8 - br label %332 + br label %331 315: ; preds = %309, %309 switch i8 %.070.shrunk, label %_ZL18stbi__tga_get_compiiPi.exit.thread131 [ i8 8, label %_ZL18stbi__tga_get_compiiPi.exit.thread i8 16, label %316 - i8 15, label %317 + i8 15, label %316 i8 24, label %_ZL18stbi__tga_get_compiiPi.exit i8 32, label %_ZL18stbi__tga_get_compiiPi.exit ] -316: ; preds = %315 +316: ; preds = %315, %315 br label %_ZL18stbi__tga_get_compiiPi.exit.thread -317: ; preds = %315 - br label %_ZL18stbi__tga_get_compiiPi.exit.thread - -318: ; preds = %_ZL10stbi__get8P13stbi__context.exit119 +317: ; preds = %_ZL10stbi__get8P13stbi__context.exit119 switch i8 %.0.i112, label %_ZL18stbi__tga_get_compiiPi.exit.thread131 [ i8 8, label %_ZL18stbi__tga_get_compiiPi.exit.thread - i8 16, label %319 - i8 15, label %322 - i8 24, label %323 - i8 32, label %323 + i8 16, label %318 + i8 15, label %321 + i8 24, label %322 + i8 32, label %322 ] -319: ; preds = %318 - %320 = and i8 %.0.i88, -9 - %321 = icmp eq i8 %320, 3 - %.mux.i = select i1 %321, i32 2, i32 3 +318: ; preds = %317 + %319 = and i8 %.0.i88, -9 + %320 = icmp eq i8 %319, 3 + %.mux.i = select i1 %320, i32 2, i32 3 br label %_ZL18stbi__tga_get_compiiPi.exit.thread -322: ; preds = %318 +321: ; preds = %317 br label %_ZL18stbi__tga_get_compiiPi.exit.thread -323: ; preds = %318, %318 - %324 = lshr i8 %.0.i112, 3 - %325 = zext nneg i8 %324 to i32 +322: ; preds = %317, %317 + %323 = lshr i8 %.0.i112, 3 + %324 = zext nneg i8 %323 to i32 br label %_ZL18stbi__tga_get_compiiPi.exit.thread _ZL18stbi__tga_get_compiiPi.exit: ; preds = %315, %315 - %326 = lshr i8 %.070.shrunk, 3 - %327 = zext nneg i8 %326 to i32 + %325 = lshr i8 %.070.shrunk, 3 + %326 = zext nneg i8 %325 to i32 br label %_ZL18stbi__tga_get_compiiPi.exit.thread -_ZL18stbi__tga_get_compiiPi.exit.thread131: ; preds = %318, %315 - %328 = getelementptr inbounds nuw i8, ptr %0, i64 208 - %329 = load ptr, ptr %328, align 8 - store ptr %329, ptr %5, align 8 - %330 = getelementptr inbounds nuw i8, ptr %0, i64 216 - %331 = load ptr, ptr %330, align 8 - store ptr %331, ptr %7, align 8 - br label %332 - -_ZL18stbi__tga_get_compiiPi.exit.thread: ; preds = %_ZL18stbi__tga_get_compiiPi.exit, %322, %319, %318, %323, %317, %316, %315 - %.069129 = phi i32 [ %327, %_ZL18stbi__tga_get_compiiPi.exit ], [ 3, %322 ], [ %.mux.i, %319 ], [ 1, %318 ], [ %325, %323 ], [ 3, %317 ], [ 3, %316 ], [ 1, %315 ] +_ZL18stbi__tga_get_compiiPi.exit.thread131: ; preds = %317, %315 + %327 = getelementptr inbounds nuw i8, ptr %0, i64 208 + %328 = load ptr, ptr %327, align 8 + store ptr %328, ptr %5, align 8 + %329 = getelementptr inbounds nuw i8, ptr %0, i64 216 + %330 = load ptr, ptr %329, align 8 + store ptr %330, ptr %7, align 8 + br label %331 + +_ZL18stbi__tga_get_compiiPi.exit.thread: ; preds = %_ZL18stbi__tga_get_compiiPi.exit, %321, %318, %317, %322, %316, %315 + %.069129 = phi i32 [ %326, %_ZL18stbi__tga_get_compiiPi.exit ], [ 3, %321 ], [ %.mux.i, %318 ], [ 1, %317 ], [ %324, %322 ], [ 3, %316 ], [ 1, %315 ] store i32 %223, ptr %1, align 4 store i32 %231, ptr %2, align 4 store i32 %.069129, ptr %3, align 4 - br label %332 + br label %331 -332: ; preds = %_ZL18stbi__tga_get_compiiPi.exit.thread, %_ZL18stbi__tga_get_compiiPi.exit.thread131, %310, %233, %225, %202, %_ZL10stbi__get8P13stbi__context.exit97.thread, %124, %80 +331: ; preds = %_ZL18stbi__tga_get_compiiPi.exit.thread, %_ZL18stbi__tga_get_compiiPi.exit.thread131, %310, %233, %225, %202, %_ZL10stbi__get8P13stbi__context.exit97.thread, %124, %80 %.0 = phi i32 [ 0, %80 ], [ 0, %124 ], [ 0, %_ZL10stbi__get8P13stbi__context.exit97.thread ], [ 0, %225 ], [ 0, %233 ], [ 0, %310 ], [ 1, %_ZL18stbi__tga_get_compiiPi.exit.thread ], [ 0, %_ZL18stbi__tga_get_compiiPi.exit.thread131 ], [ 0, %202 ] ret i32 %.0 } diff --git a/bench/ozz-animation/optimized/gltf2ozz.cc.ll b/bench/ozz-animation/optimized/gltf2ozz.cc.ll index 3a8b1e1c06f..30fb48166f6 100644 --- a/bench/ozz-animation/optimized/gltf2ozz.cc.ll +++ b/bench/ozz-animation/optimized/gltf2ozz.cc.ll @@ -61150,39 +61150,33 @@ _ZNSt8_Rb_treeIPKcSt4pairIKS1_St6vectorIPKN8tinygltf16AnimationChannelESaIS8_EEE ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable define internal fastcc noundef range(i32 -1, 17) i32 @_ZN8tinygltfL18GetTypeSizeInBytesEj(i32 noundef %0) unnamed_addr #22 { - switch i32 %0, label %8 [ - i32 65, label %9 + switch i32 %0, label %6 [ + i32 65, label %7 i32 2, label %2 - i32 3, label %3 - i32 4, label %4 - i32 34, label %5 - i32 35, label %6 - i32 36, label %7 + i32 3, label %2 + i32 4, label %3 + i32 34, label %3 + i32 35, label %4 + i32 36, label %5 ] -2: ; preds = %1 - br label %9 +2: ; preds = %1, %1 + br label %7 -3: ; preds = %1 - br label %9 +3: ; preds = %1, %1 + br label %7 4: ; preds = %1 - br label %9 + br label %7 5: ; preds = %1 - br label %9 + br label %7 6: ; preds = %1 - br label %9 - -7: ; preds = %1 - br label %9 - -8: ; preds = %1 - br label %9 + br label %7 -9: ; preds = %1, %8, %7, %6, %5, %4, %3, %2 - %.0 = phi i32 [ %0, %2 ], [ %0, %3 ], [ %0, %4 ], [ 4, %5 ], [ 9, %6 ], [ 16, %7 ], [ -1, %8 ], [ 1, %1 ] +7: ; preds = %1, %6, %5, %4, %3, %2 + %.0 = phi i32 [ %0, %2 ], [ 4, %3 ], [ 9, %4 ], [ 16, %5 ], [ -1, %6 ], [ 1, %1 ] ret i32 %.0 } diff --git a/bench/pocketpy/optimized/vm.cpp.ll b/bench/pocketpy/optimized/vm.cpp.ll index b18fdecf1b3..9aeb0cdf0cd 100644 --- a/bench/pocketpy/optimized/vm.cpp.ll +++ b/bench/pocketpy/optimized/vm.cpp.ll @@ -13107,7 +13107,7 @@ define void @_ZN4pkpy2VM16__unpack_as_listENS_8ArgsViewERNS_10pod_vectorIPNS_8Py br label %16 16: ; preds = %.lr.ph49, %.loopexit - %.048 = phi ptr [ %1, %.lr.ph49 ], [ %227, %.loopexit ] + %.048 = phi ptr [ %1, %.lr.ph49 ], [ %226, %.loopexit ] %17 = load ptr, ptr %.048, align 8 %18 = ptrtoint ptr %17 to i64 %19 = and i64 %18, 3 @@ -13507,93 +13507,90 @@ _ZN4pkpy2VM16find_name_in_mroENS_4TypeENS_7StrNameE.exit.thread.i: ; preds = %_Z %191 = load i16, ptr %190, align 2 switch i16 %191, label %_ZN4pkpy2VM18get_unbound_methodEPNS_8PyObjectENS_7StrNameEPS2_bb.exit [ i16 11, label %192 - i16 12, label %193 - i16 21, label %194 - i16 22, label %197 + i16 12, label %192 + i16 21, label %193 + i16 22, label %196 ] -192: ; preds = %189 +192: ; preds = %189, %189 br label %_ZN4pkpy2VM18get_unbound_methodEPNS_8PyObjectENS_7StrNameEPS2_bb.exit 193: ; preds = %189 + %194 = getelementptr inbounds i8, ptr %183, i64 24 + %195 = load ptr, ptr %194, align 8 br label %_ZN4pkpy2VM18get_unbound_methodEPNS_8PyObjectENS_7StrNameEPS2_bb.exit -194: ; preds = %189 - %195 = getelementptr inbounds i8, ptr %183, i64 24 - %196 = load ptr, ptr %195, align 8 - br label %_ZN4pkpy2VM18get_unbound_methodEPNS_8PyObjectENS_7StrNameEPS2_bb.exit - -197: ; preds = %189 - %198 = sext i16 %storemerge.i to i64 - %199 = getelementptr inbounds %"struct.pkpy::PyTypeInfo", ptr %147, i64 %198 - %200 = load ptr, ptr %199, align 8 - %201 = getelementptr inbounds i8, ptr %183, i64 24 - %202 = load ptr, ptr %201, align 8 +196: ; preds = %189 + %197 = sext i16 %storemerge.i to i64 + %198 = getelementptr inbounds %"struct.pkpy::PyTypeInfo", ptr %147, i64 %197 + %199 = load ptr, ptr %198, align 8 + %200 = getelementptr inbounds i8, ptr %183, i64 24 + %201 = load ptr, ptr %200, align 8 br label %_ZN4pkpy2VM18get_unbound_methodEPNS_8PyObjectENS_7StrNameEPS2_bb.exit -_ZN4pkpy2VM18get_unbound_methodEPNS_8PyObjectENS_7StrNameEPS2_bb.exit: ; preds = %_ZN4pkpy2VM16find_name_in_mroENS_4TypeENS_7StrNameE.exit.i, %189, %192, %193, %194, %197 - %.036 = phi ptr [ %15, %189 ], [ %200, %197 ], [ %15, %194 ], [ %.0100.i, %193 ], [ %.0100.i, %192 ], [ %15, %_ZN4pkpy2VM16find_name_in_mroENS_4TypeENS_7StrNameE.exit.i ] - %.0.i29 = phi ptr [ %183, %189 ], [ %202, %197 ], [ %196, %194 ], [ %183, %193 ], [ %183, %192 ], [ %183, %_ZN4pkpy2VM16find_name_in_mroENS_4TypeENS_7StrNameE.exit.i ] - %203 = load ptr, ptr %13, align 8 - %204 = getelementptr inbounds i8, ptr %203, i64 8 - store ptr %204, ptr %13, align 8 - store ptr %.0.i29, ptr %203, align 8 - %205 = load ptr, ptr %13, align 8 - %206 = getelementptr inbounds i8, ptr %205, i64 8 - store ptr %206, ptr %13, align 8 - store ptr %.036, ptr %205, align 8 - %207 = call noundef ptr @_ZN4pkpy2VM10vectorcallEiib(ptr noundef nonnull align 8 dereferenceable(264913) %0, i32 noundef 0, i32 noundef 0, i1 noundef zeroext false) +_ZN4pkpy2VM18get_unbound_methodEPNS_8PyObjectENS_7StrNameEPS2_bb.exit: ; preds = %_ZN4pkpy2VM16find_name_in_mroENS_4TypeENS_7StrNameE.exit.i, %189, %192, %193, %196 + %.036 = phi ptr [ %15, %189 ], [ %199, %196 ], [ %15, %193 ], [ %.0100.i, %192 ], [ %15, %_ZN4pkpy2VM16find_name_in_mroENS_4TypeENS_7StrNameE.exit.i ] + %.0.i29 = phi ptr [ %183, %189 ], [ %201, %196 ], [ %195, %193 ], [ %183, %192 ], [ %183, %_ZN4pkpy2VM16find_name_in_mroENS_4TypeENS_7StrNameE.exit.i ] + %202 = load ptr, ptr %13, align 8 + %203 = getelementptr inbounds i8, ptr %202, i64 8 + store ptr %203, ptr %13, align 8 + store ptr %.0.i29, ptr %202, align 8 + %204 = load ptr, ptr %13, align 8 + %205 = getelementptr inbounds i8, ptr %204, i64 8 + store ptr %205, ptr %13, align 8 + store ptr %.036, ptr %204, align 8 + %206 = call noundef ptr @_ZN4pkpy2VM10vectorcallEiib(ptr noundef nonnull align 8 dereferenceable(264913) %0, i32 noundef 0, i32 noundef 0, i1 noundef zeroext false) br label %_ZN4pkpy2VM8_py_nextEPKNS_10PyTypeInfoEPNS_8PyObjectE.exit _ZN4pkpy2VM8_py_nextEPKNS_10PyTypeInfoEPNS_8PyObjectE.exit: ; preds = %_ZN4pkpy2VM18__pack_next_retvalEj.exit.i, %_ZN4pkpy2VM18get_unbound_methodEPNS_8PyObjectENS_7StrNameEPS2_bb.exit - %.0.i = phi ptr [ %.0.i.i, %_ZN4pkpy2VM18__pack_next_retvalEj.exit.i ], [ %207, %_ZN4pkpy2VM18get_unbound_methodEPNS_8PyObjectENS_7StrNameEPS2_bb.exit ] - %208 = load ptr, ptr %10, align 8 - %.not18 = icmp eq ptr %.0.i, %208 + %.0.i = phi ptr [ %.0.i.i, %_ZN4pkpy2VM18__pack_next_retvalEj.exit.i ], [ %206, %_ZN4pkpy2VM18get_unbound_methodEPNS_8PyObjectENS_7StrNameEPS2_bb.exit ] + %207 = load ptr, ptr %10, align 8 + %.not18 = icmp eq ptr %.0.i, %207 br i1 %.not18, label %.loopexit, label %63, !llvm.loop !81 _ZN4pkpy7is_typeEPNS_8PyObjectENS_4TypeE.exit.thread: ; preds = %16, %_ZN4pkpy7is_typeEPNS_8PyObjectENS_4TypeE.exit - %209 = load i32, ptr %3, align 8 - %210 = load i32, ptr %11, align 4 - %211 = icmp eq i32 %209, %210 - br i1 %211, label %212, label %_ZN4pkpy10pod_vectorIPNS_8PyObjectELi4EE9push_backIRS2_EEvOT_.exit27 - -212: ; preds = %_ZN4pkpy7is_typeEPNS_8PyObjectENS_4TypeE.exit.thread - %213 = shl nsw i32 %209, 2 - %.not.i.i23 = icmp sgt i32 %213, %209 - br i1 %.not.i.i23, label %214, label %_ZN4pkpy10pod_vectorIPNS_8PyObjectELi4EE9push_backIRS2_EEvOT_.exit27 - -214: ; preds = %212 - store i32 %213, ptr %11, align 4 - %215 = load ptr, ptr %12, align 8 - %216 = shl nsw i32 %209, 5 - %217 = sext i32 %216 to i64 - %218 = call noundef ptr @_ZN4pkpy12pool64_allocEm(i64 noundef %217) #29 - store ptr %218, ptr %12, align 8 - %.not6.i.i24 = icmp eq ptr %215, null + %208 = load i32, ptr %3, align 8 + %209 = load i32, ptr %11, align 4 + %210 = icmp eq i32 %208, %209 + br i1 %210, label %211, label %_ZN4pkpy10pod_vectorIPNS_8PyObjectELi4EE9push_backIRS2_EEvOT_.exit27 + +211: ; preds = %_ZN4pkpy7is_typeEPNS_8PyObjectENS_4TypeE.exit.thread + %212 = shl nsw i32 %208, 2 + %.not.i.i23 = icmp sgt i32 %212, %208 + br i1 %.not.i.i23, label %213, label %_ZN4pkpy10pod_vectorIPNS_8PyObjectELi4EE9push_backIRS2_EEvOT_.exit27 + +213: ; preds = %211 + store i32 %212, ptr %11, align 4 + %214 = load ptr, ptr %12, align 8 + %215 = shl nsw i32 %208, 5 + %216 = sext i32 %215 to i64 + %217 = call noundef ptr @_ZN4pkpy12pool64_allocEm(i64 noundef %216) #29 + store ptr %217, ptr %12, align 8 + %.not6.i.i24 = icmp eq ptr %214, null %.pre2.i25 = load i32, ptr %3, align 8 - br i1 %.not6.i.i24, label %_ZN4pkpy10pod_vectorIPNS_8PyObjectELi4EE9push_backIRS2_EEvOT_.exit27, label %219 + br i1 %.not6.i.i24, label %_ZN4pkpy10pod_vectorIPNS_8PyObjectELi4EE9push_backIRS2_EEvOT_.exit27, label %218 -219: ; preds = %214 - %220 = shl nsw i32 %.pre2.i25, 3 - %221 = sext i32 %220 to i64 - call void @llvm.memcpy.p0.p0.i64(ptr align 8 %218, ptr nonnull align 8 %215, i64 %221, i1 false) - call void @_ZN4pkpy14pool64_deallocEPv(ptr noundef nonnull %215) #29 +218: ; preds = %213 + %219 = shl nsw i32 %.pre2.i25, 3 + %220 = sext i32 %219 to i64 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %217, ptr nonnull align 8 %214, i64 %220, i1 false) + call void @_ZN4pkpy14pool64_deallocEPv(ptr noundef nonnull %214) #29 %.pre.i26 = load i32, ptr %3, align 8 br label %_ZN4pkpy10pod_vectorIPNS_8PyObjectELi4EE9push_backIRS2_EEvOT_.exit27 -_ZN4pkpy10pod_vectorIPNS_8PyObjectELi4EE9push_backIRS2_EEvOT_.exit27: ; preds = %_ZN4pkpy7is_typeEPNS_8PyObjectENS_4TypeE.exit.thread, %212, %214, %219 - %222 = phi i32 [ %.pre.i26, %219 ], [ %.pre2.i25, %214 ], [ %209, %212 ], [ %209, %_ZN4pkpy7is_typeEPNS_8PyObjectENS_4TypeE.exit.thread ] - %223 = load ptr, ptr %12, align 8 - %224 = add nsw i32 %222, 1 - store i32 %224, ptr %3, align 8 - %225 = sext i32 %222 to i64 - %226 = getelementptr inbounds ptr, ptr %223, i64 %225 - store ptr %17, ptr %226, align 8 +_ZN4pkpy10pod_vectorIPNS_8PyObjectELi4EE9push_backIRS2_EEvOT_.exit27: ; preds = %_ZN4pkpy7is_typeEPNS_8PyObjectENS_4TypeE.exit.thread, %211, %213, %218 + %221 = phi i32 [ %.pre.i26, %218 ], [ %.pre2.i25, %213 ], [ %208, %211 ], [ %208, %_ZN4pkpy7is_typeEPNS_8PyObjectENS_4TypeE.exit.thread ] + %222 = load ptr, ptr %12, align 8 + %223 = add nsw i32 %221, 1 + store i32 %223, ptr %3, align 8 + %224 = sext i32 %221 to i64 + %225 = getelementptr inbounds ptr, ptr %222, i64 %224 + store ptr %17, ptr %225, align 8 br label %.loopexit .loopexit: ; preds = %_ZN4pkpy2VM8_py_nextEPKNS_10PyTypeInfoEPNS_8PyObjectE.exit, %46, %_ZN4pkpy10pod_vectorIPNS_8PyObjectELi4EE9push_backIRS2_EEvOT_.exit27 - %227 = getelementptr inbounds i8, ptr %.048, i64 8 - %.not = icmp eq ptr %227, %2 + %226 = getelementptr inbounds i8, ptr %.048, i64 8 + %.not = icmp eq ptr %226, %2 br i1 %.not, label %._crit_edge, label %16 ._crit_edge: ; preds = %.loopexit, %4 diff --git a/bench/postgres/optimized/json.ll b/bench/postgres/optimized/json.ll index 862ad103155..755f9248769 100644 --- a/bench/postgres/optimized/json.ll +++ b/bench/postgres/optimized/json.ll @@ -737,41 +737,38 @@ define dso_local zeroext i1 @to_json_is_immutable(i32 noundef %0) local_unnamed_ %3 = alloca i32, align 4 call void @json_categorize_type(i32 noundef %0, i1 noundef zeroext false, ptr noundef nonnull %2, ptr noundef nonnull %3) #9 %4 = load i32, ptr %2, align 4 - switch i32 %4, label %12 [ - i32 1, label %13 - i32 6, label %13 - i32 7, label %13 - i32 0, label %13 + switch i32 %4, label %11 [ + i32 1, label %12 + i32 6, label %12 + i32 7, label %12 + i32 0, label %12 i32 3, label %5 i32 4, label %5 i32 5, label %5 i32 8, label %6 - i32 9, label %7 - i32 2, label %8 - i32 10, label %8 - i32 11, label %8 + i32 9, label %6 + i32 2, label %7 + i32 10, label %7 + i32 11, label %7 ] 5: ; preds = %1, %1, %1 - br label %13 + br label %12 -6: ; preds = %1 - br label %13 - -7: ; preds = %1 - br label %13 +6: ; preds = %1, %1 + br label %12 -8: ; preds = %1, %1, %1 - %9 = load i32, ptr %3, align 4 - %10 = call signext i8 @func_volatile(i32 noundef %9) #9 - %11 = icmp eq i8 %10, 105 - br label %13 +7: ; preds = %1, %1, %1 + %8 = load i32, ptr %3, align 4 + %9 = call signext i8 @func_volatile(i32 noundef %8) #9 + %10 = icmp eq i8 %9, 105 + br label %12 -12: ; preds = %1 - br label %13 +11: ; preds = %1 + br label %12 -13: ; preds = %1, %1, %1, %1, %12, %8, %7, %6, %5 - %.0 = phi i1 [ false, %12 ], [ %11, %8 ], [ false, %7 ], [ false, %6 ], [ false, %5 ], [ true, %1 ], [ true, %1 ], [ true, %1 ], [ true, %1 ] +12: ; preds = %1, %1, %1, %1, %11, %7, %6, %5 + %.0 = phi i1 [ false, %11 ], [ %10, %7 ], [ false, %6 ], [ false, %5 ], [ true, %1 ], [ true, %1 ], [ true, %1 ], [ true, %1 ] ret i1 %.0 } diff --git a/bench/postgres/optimized/pl_handler.ll b/bench/postgres/optimized/pl_handler.ll index 0fe37183ced..1661d2b9bb4 100644 --- a/bench/postgres/optimized/pl_handler.ll +++ b/bench/postgres/optimized/pl_handler.ll @@ -605,18 +605,18 @@ define noundef i64 @plpgsql_validator(ptr nocapture noundef readonly %0) local_u i32 2279, label %42 i32 3838, label %35 i32 2249, label %.fold.split - i32 2278, label %.fold.split138 - i32 2283, label %.fold.split139 - i32 2277, label %.fold.split140 - i32 2776, label %.fold.split141 - i32 3500, label %.fold.split142 - i32 3831, label %.fold.split143 - i32 4537, label %.fold.split144 - i32 5077, label %.fold.split145 - i32 5078, label %.fold.split146 - i32 5079, label %.fold.split147 - i32 5080, label %.fold.split148 - i32 4538, label %.fold.split149 + i32 2278, label %.fold.split + i32 2283, label %.fold.split + i32 2277, label %.fold.split + i32 2776, label %.fold.split + i32 3500, label %.fold.split + i32 3831, label %.fold.split + i32 4537, label %.fold.split + i32 5077, label %.fold.split + i32 5078, label %.fold.split + i32 5079, label %.fold.split + i32 5080, label %.fold.split + i32 4538, label %.fold.split ] 35: ; preds = %33 @@ -632,48 +632,12 @@ define noundef i64 @plpgsql_validator(ptr nocapture noundef readonly %0) local_u tail call void @errfinish(ptr noundef nonnull @.str.15, i32 noundef 481, ptr noundef nonnull @__func__.plpgsql_validator) #10 unreachable -.fold.split: ; preds = %33 +.fold.split: ; preds = %33, %33, %33, %33, %33, %33, %33, %33, %33, %33, %33, %33, %33 br label %42 -.fold.split138: ; preds = %33 - br label %42 - -.fold.split139: ; preds = %33 - br label %42 - -.fold.split140: ; preds = %33 - br label %42 - -.fold.split141: ; preds = %33 - br label %42 - -.fold.split142: ; preds = %33 - br label %42 - -.fold.split143: ; preds = %33 - br label %42 - -.fold.split144: ; preds = %33 - br label %42 - -.fold.split145: ; preds = %33 - br label %42 - -.fold.split146: ; preds = %33 - br label %42 - -.fold.split147: ; preds = %33 - br label %42 - -.fold.split148: ; preds = %33 - br label %42 - -.fold.split149: ; preds = %33 - br label %42 - -42: ; preds = %33, %.fold.split149, %.fold.split148, %.fold.split147, %.fold.split146, %.fold.split145, %.fold.split144, %.fold.split143, %.fold.split142, %.fold.split141, %.fold.split140, %.fold.split139, %.fold.split138, %.fold.split, %35, %22 - %.0124 = phi i1 [ true, %35 ], [ false, %22 ], [ false, %33 ], [ false, %.fold.split ], [ false, %.fold.split138 ], [ false, %.fold.split139 ], [ false, %.fold.split140 ], [ false, %.fold.split141 ], [ false, %.fold.split142 ], [ false, %.fold.split143 ], [ false, %.fold.split144 ], [ false, %.fold.split145 ], [ false, %.fold.split146 ], [ false, %.fold.split147 ], [ false, %.fold.split148 ], [ false, %.fold.split149 ] - %.0123 = phi i1 [ false, %35 ], [ false, %22 ], [ true, %33 ], [ false, %.fold.split ], [ false, %.fold.split138 ], [ false, %.fold.split139 ], [ false, %.fold.split140 ], [ false, %.fold.split141 ], [ false, %.fold.split142 ], [ false, %.fold.split143 ], [ false, %.fold.split144 ], [ false, %.fold.split145 ], [ false, %.fold.split146 ], [ false, %.fold.split147 ], [ false, %.fold.split148 ], [ false, %.fold.split149 ] +42: ; preds = %33, %.fold.split, %35, %22 + %.0124 = phi i1 [ true, %35 ], [ false, %22 ], [ false, %33 ], [ false, %.fold.split ] + %.0123 = phi i1 [ false, %35 ], [ false, %22 ], [ true, %33 ], [ false, %.fold.split ] %43 = call i32 @get_func_arg_info(ptr noundef nonnull %18, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4) #10 %44 = icmp sgt i32 %43, 0 br i1 %44, label %.lr.ph.preheader, label %._crit_edge diff --git a/bench/postgres/optimized/psqlscan.ll b/bench/postgres/optimized/psqlscan.ll index d8a9dea32ad..87eae425cb8 100644 --- a/bench/postgres/optimized/psqlscan.ll +++ b/bench/postgres/optimized/psqlscan.ll @@ -7622,38 +7622,38 @@ define dso_local range(i32 0, 4) i32 @psql_scan(ptr nocapture noundef %0, ptr no %10 = tail call i32 @psql_yylex(ptr noundef null, ptr noundef %9) switch i32 %10, label %default.unreachable30 [ i32 0, label %11 - i32 1, label %33 - i32 2, label %32 + i32 1, label %32 + i32 2, label %31 ] 11: ; preds = %3 %12 = getelementptr inbounds i8, ptr %0, i64 72 %13 = load i32, ptr %12, align 8 - switch i32 %13, label %29 [ + switch i32 %13, label %28 [ i32 0, label %14 i32 6, label %14 - i32 1, label %33 + i32 1, label %32 i32 2, label %25 i32 3, label %26 - i32 4, label %33 - i32 7, label %33 - i32 5, label %33 + i32 4, label %32 + i32 7, label %32 + i32 5, label %32 i32 8, label %27 - i32 9, label %28 - i32 10, label %33 + i32 9, label %26 + i32 10, label %32 ] 14: ; preds = %11, %11 %15 = getelementptr inbounds i8, ptr %0, i64 80 %16 = load i32, ptr %15, align 8 %17 = icmp sgt i32 %16, 0 - br i1 %17, label %33, label %18 + br i1 %17, label %32, label %18 18: ; preds = %14 %19 = getelementptr inbounds i8, ptr %0, i64 104 %20 = load i32, ptr %19, align 8 %21 = icmp sgt i32 %20, 0 - br i1 %21, label %33, label %22 + br i1 %21, label %32, label %22 22: ; preds = %18 %23 = getelementptr inbounds i8, ptr %1, i64 8 @@ -7661,35 +7661,32 @@ define dso_local range(i32 0, 4) i32 @psql_scan(ptr nocapture noundef %0, ptr no %.not29 = icmp ne i64 %24, 0 %. = zext i1 %.not29 to i32 %.33 = select i1 %.not29, i32 3, i32 2 - br label %33 + br label %32 25: ; preds = %11 - br label %33 + br label %32 -26: ; preds = %11 - br label %33 +26: ; preds = %11, %11 + br label %32 27: ; preds = %11 - br label %33 + br label %32 28: ; preds = %11 - br label %33 - -29: ; preds = %11 - %30 = load ptr, ptr @stderr, align 8 - %31 = tail call i32 (ptr, ptr, ...) @pg_fprintf(ptr noundef %30, ptr noundef nonnull @.str.19) #27 + %29 = load ptr, ptr @stderr, align 8 + %30 = tail call i32 (ptr, ptr, ...) @pg_fprintf(ptr noundef %29, ptr noundef nonnull @.str.19) #27 tail call void @exit(i32 noundef 1) #30 unreachable -32: ; preds = %3 - br label %33 +31: ; preds = %3 + br label %32 default.unreachable30: ; preds = %3 unreachable -33: ; preds = %3, %11, %11, %11, %11, %11, %22, %18, %14, %25, %26, %27, %28, %32 - %.sink32 = phi i32 [ 2, %25 ], [ 4, %26 ], [ 5, %27 ], [ 4, %28 ], [ 0, %32 ], [ 6, %14 ], [ 1, %18 ], [ %., %22 ], [ 3, %11 ], [ 3, %11 ], [ 3, %11 ], [ 3, %11 ], [ 3, %11 ], [ 0, %3 ] - %.0 = phi i32 [ 2, %25 ], [ 2, %26 ], [ 2, %27 ], [ 2, %28 ], [ 1, %32 ], [ 2, %14 ], [ 2, %18 ], [ %.33, %22 ], [ 2, %11 ], [ 2, %11 ], [ 2, %11 ], [ 2, %11 ], [ 2, %11 ], [ 0, %3 ] +32: ; preds = %3, %11, %11, %11, %11, %11, %22, %18, %14, %25, %26, %27, %31 + %.sink32 = phi i32 [ 2, %25 ], [ 4, %26 ], [ 5, %27 ], [ 0, %31 ], [ 6, %14 ], [ 1, %18 ], [ %., %22 ], [ 3, %11 ], [ 3, %11 ], [ 3, %11 ], [ 3, %11 ], [ 3, %11 ], [ 0, %3 ] + %.0 = phi i32 [ 2, %25 ], [ 2, %26 ], [ 2, %27 ], [ 1, %31 ], [ 2, %14 ], [ 2, %18 ], [ %.33, %22 ], [ 2, %11 ], [ 2, %11 ], [ 2, %11 ], [ 2, %11 ], [ 2, %11 ], [ 0, %3 ] store i32 %.sink32, ptr %2, align 4 ret i32 %.0 } diff --git a/bench/postgres/optimized/typename.ll b/bench/postgres/optimized/typename.ll index de33e8c82b3..b7ac5da8a9b 100644 --- a/bench/postgres/optimized/typename.ll +++ b/bench/postgres/optimized/typename.ll @@ -53,59 +53,50 @@ declare void @abort() local_unnamed_addr #1 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable define dso_local range(i32 0, 17) i32 @ecpg_dynamic_type(i32 noundef %0) local_unnamed_addr #2 { - switch i32 %0, label %13 [ - i32 16, label %14 + switch i32 %0, label %10 [ + i32 16, label %11 i32 21, label %2 i32 23, label %3 i32 25, label %4 i32 700, label %5 i32 701, label %6 - i32 1042, label %7 - i32 1043, label %8 - i32 1082, label %9 - i32 1083, label %10 - i32 1114, label %11 - i32 1700, label %12 + i32 1042, label %4 + i32 1043, label %7 + i32 1082, label %8 + i32 1083, label %8 + i32 1114, label %8 + i32 1700, label %9 ] 2: ; preds = %1 - br label %14 + br label %11 3: ; preds = %1 - br label %14 + br label %11 -4: ; preds = %1 - br label %14 +4: ; preds = %1, %1 + br label %11 5: ; preds = %1 - br label %14 + br label %11 6: ; preds = %1 - br label %14 + br label %11 7: ; preds = %1 - br label %14 + br label %11 -8: ; preds = %1 - br label %14 +8: ; preds = %1, %1, %1 + br label %11 9: ; preds = %1 - br label %14 + br label %11 10: ; preds = %1 - br label %14 + br label %11 -11: ; preds = %1 - br label %14 - -12: ; preds = %1 - br label %14 - -13: ; preds = %1 - br label %14 - -14: ; preds = %1, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3, %2 - %.0 = phi i32 [ 0, %13 ], [ 2, %12 ], [ 9, %11 ], [ 9, %10 ], [ 9, %9 ], [ 12, %8 ], [ 1, %7 ], [ 8, %6 ], [ 7, %5 ], [ 1, %4 ], [ 4, %3 ], [ 5, %2 ], [ %0, %1 ] +11: ; preds = %1, %10, %9, %8, %7, %6, %5, %4, %3, %2 + %.0 = phi i32 [ 0, %10 ], [ 2, %9 ], [ 9, %8 ], [ 12, %7 ], [ 8, %6 ], [ 7, %5 ], [ 1, %4 ], [ 4, %3 ], [ 5, %2 ], [ %0, %1 ] ret i32 %.0 } diff --git a/bench/protobuf/optimized/wire_format.cc.ll b/bench/protobuf/optimized/wire_format.cc.ll index e923344e71f..cb86b427998 100644 --- a/bench/protobuf/optimized/wire_format.cc.ll +++ b/bench/protobuf/optimized/wire_format.cc.ll @@ -13231,7 +13231,7 @@ _ZNK6google8protobuf15FieldDescriptor4typeEv.exit: ; preds = %entry, %if.then.i, i8 7, label %return i8 6, label %sw.bb30 i8 15, label %return - i8 16, label %sw.bb32 + i8 16, label %sw.bb30 i8 8, label %sw.bb33 ] @@ -13333,10 +13333,7 @@ sw.bb26: ; preds = %_ZNK6google8protobu %add.i.i37 = add i64 %call.i, %conv.i.i.i br label %return -sw.bb30: ; preds = %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit - br label %return - -sw.bb32: ; preds = %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit +sw.bb30: ; preds = %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit br label %return sw.bb33: ; preds = %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit @@ -13357,8 +13354,8 @@ lpad36: ; preds = %sw.epilog call void @_ZN4absl12lts_2023080212log_internal15LogMessageFatalD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp35) #26 unreachable -return: ; preds = %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit, %sw.bb33, %sw.bb32, %sw.bb30, %sw.bb26, %sw.bb23, %sw.bb20, %sw.bb17, %sw.bb14, %sw.bb11, %sw.bb8 - %retval.0 = phi i64 [ 1, %sw.bb33 ], [ 8, %sw.bb32 ], [ 8, %sw.bb30 ], [ %add.i.i37, %sw.bb26 ], [ %div1.i.i30, %sw.bb23 ], [ %conv.i.i22, %sw.bb20 ], [ %div1.i.i16, %sw.bb17 ], [ %conv.i.i, %sw.bb14 ], [ %div1.i.i, %sw.bb11 ], [ %div1.i.i.i, %sw.bb8 ], [ 4, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit ], [ 4, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit ] +return: ; preds = %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit, %sw.bb33, %sw.bb30, %sw.bb26, %sw.bb23, %sw.bb20, %sw.bb17, %sw.bb14, %sw.bb11, %sw.bb8 + %retval.0 = phi i64 [ 1, %sw.bb33 ], [ 8, %sw.bb30 ], [ %add.i.i37, %sw.bb26 ], [ %div1.i.i30, %sw.bb23 ], [ %conv.i.i22, %sw.bb20 ], [ %div1.i.i16, %sw.bb17 ], [ %conv.i.i, %sw.bb14 ], [ %div1.i.i, %sw.bb11 ], [ %div1.i.i.i, %sw.bb8 ], [ 4, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit ], [ 4, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit ] ret i64 %retval.0 } @@ -13592,8 +13589,8 @@ _ZNK6google8protobuf15FieldDescriptor4typeEv.exit: ; preds = %entry, %if.then.i, i8 7, label %return i8 6, label %sw.bb36 i8 15, label %return - i8 16, label %sw.bb38 - i8 1, label %sw.bb39 + i8 16, label %sw.bb36 + i8 1, label %sw.bb36 i8 2, label %return i8 8, label %sw.bb41 ] @@ -13738,13 +13735,7 @@ sw.bb32: ; preds = %_ZNK6google8protobu %add.i.i63 = add i64 %call.i55, %conv.i.i.i62 br label %return -sw.bb36: ; preds = %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit - br label %return - -sw.bb38: ; preds = %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit - br label %return - -sw.bb39: ; preds = %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit +sw.bb36: ; preds = %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit br label %return sw.bb41: ; preds = %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit @@ -13765,8 +13756,8 @@ lpad45: ; preds = %sw.epilog call void @_ZN4absl12lts_2023080212log_internal15LogMessageFatalD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp43) #26 unreachable -return: ; preds = %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit, %sw.bb41, %sw.bb39, %sw.bb38, %sw.bb36, %sw.bb32, %sw.bb29, %sw.bb26, %sw.bb23, %sw.bb20, %sw.bb17, %sw.bb14, %sw.bb11, %sw.bb8, %sw.bb5 - %retval.0 = phi i64 [ 1, %sw.bb41 ], [ 8, %sw.bb39 ], [ 8, %sw.bb38 ], [ 8, %sw.bb36 ], [ %add.i.i63, %sw.bb32 ], [ %div1.i.i.i54, %sw.bb29 ], [ %add.i.i49, %sw.bb26 ], [ %add.i.i40, %sw.bb23 ], [ %div1.i.i33, %sw.bb20 ], [ %conv.i.i25, %sw.bb17 ], [ %div1.i.i19, %sw.bb14 ], [ %conv.i.i, %sw.bb11 ], [ %div1.i.i, %sw.bb8 ], [ %div1.i.i.i, %sw.bb5 ], [ 4, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit ], [ 4, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit ], [ 4, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit ] +return: ; preds = %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit, %sw.bb41, %sw.bb36, %sw.bb32, %sw.bb29, %sw.bb26, %sw.bb23, %sw.bb20, %sw.bb17, %sw.bb14, %sw.bb11, %sw.bb8, %sw.bb5 + %retval.0 = phi i64 [ 1, %sw.bb41 ], [ 8, %sw.bb36 ], [ %add.i.i63, %sw.bb32 ], [ %div1.i.i.i54, %sw.bb29 ], [ %add.i.i49, %sw.bb26 ], [ %add.i.i40, %sw.bb23 ], [ %div1.i.i33, %sw.bb20 ], [ %conv.i.i25, %sw.bb17 ], [ %div1.i.i19, %sw.bb14 ], [ %conv.i.i, %sw.bb11 ], [ %div1.i.i, %sw.bb8 ], [ %div1.i.i.i, %sw.bb5 ], [ 4, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit ], [ 4, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit ], [ 4, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit ] ret i64 %retval.0 } diff --git a/bench/qemu/optimized/hw_scsi_lsi53c895a.c.ll b/bench/qemu/optimized/hw_scsi_lsi53c895a.c.ll index 9498c4f53df..66f8cdf0a49 100644 --- a/bench/qemu/optimized/hw_scsi_lsi53c895a.c.ll +++ b/bench/qemu/optimized/hw_scsi_lsi53c895a.c.ll @@ -744,7 +744,7 @@ entry: i32 22, label %sw.bb44 i32 23, label %sw.bb45 i32 24, label %sw.bb46 - i32 25, label %sw.bb47 + i32 25, label %sw.bb8 i32 26, label %sw.bb48 i32 27, label %sw.bb66 i32 28, label %sw.bb67 @@ -754,7 +754,7 @@ entry: i32 32, label %sw.bb85 i32 33, label %sw.bb86 i32 34, label %sw.bb87 - i32 35, label %sw.bb88 + i32 35, label %sw.bb8 i32 36, label %sw.bb89 i32 37, label %sw.bb92 i32 38, label %sw.bb97 @@ -788,7 +788,7 @@ entry: i32 66, label %sw.bb202 i32 67, label %sw.bb204 i32 70, label %sw.bb206 - i32 71, label %sw.bb207 + i32 71, label %sw.bb206 i32 72, label %sw.bb208 i32 74, label %sw.bb209 i32 75, label %sw.bb210 @@ -800,7 +800,7 @@ entry: i32 86, label %sw.bb216 i32 87, label %sw.bb217 i32 88, label %sw.bb218 - i32 89, label %sw.bb231 + i32 89, label %sw.bb8 i32 160, label %sw.bb232 i32 161, label %sw.bb235 i32 162, label %sw.bb240 @@ -894,7 +894,7 @@ sw.bb6: ; preds = %entry %6 = load i8, ptr %sdid, align 1 br label %cond.true506 -sw.bb8: ; preds = %entry +sw.bb8: ; preds = %entry, %entry, %entry, %entry br label %cond.true506 sw.bb9: ; preds = %entry @@ -998,9 +998,6 @@ sw.bb45: ; preds = %entry sw.bb46: ; preds = %entry br label %cond.true506 -sw.bb47: ; preds = %entry - br label %cond.true506 - sw.bb48: ; preds = %entry %ctest2 = getelementptr inbounds i8, ptr %s, i64 3772 %28 = load i8, ptr %ctest2, align 4 @@ -1064,9 +1061,6 @@ sw.bb87: ; preds = %entry %40 = load i8, ptr %ctest5, align 1 br label %cond.true506 -sw.bb88: ; preds = %entry - br label %cond.true506 - sw.bb89: ; preds = %entry %dbc = getelementptr inbounds i8, ptr %s, i64 3756 %41 = load i32, ptr %dbc, align 4 @@ -1271,10 +1265,7 @@ sw.bb204: ; preds = %entry tail call fastcc void @lsi_update_irq(ptr noundef %s) br label %cond.true506 -sw.bb206: ; preds = %entry - br label %cond.true506 - -sw.bb207: ; preds = %entry +sw.bb206: ; preds = %entry, %entry br label %cond.true506 sw.bb208: ; preds = %entry @@ -1347,9 +1338,6 @@ if.end228: ; preds = %if.then224 %85 = load i8, ptr %msg, align 8 br label %return -sw.bb231: ; preds = %entry - br label %cond.true506 - sw.bb232: ; preds = %entry %mmrs = getelementptr inbounds i8, ptr %s, i64 3812 %86 = load i32, ptr %mmrs, align 4 @@ -1772,8 +1760,8 @@ sw.epilog: ; preds = %cond.end, %do.body, %cmp504 = icmp ult i32 %offset, 96 br i1 %cmp504, label %cond.true506, label %cond.end510 -cond.true506: ; preds = %sw.bb, %sw.bb1, %sw.bb2, %sw.bb3, %sw.bb4, %sw.bb5, %sw.bb6, %sw.bb8, %sw.bb9, %sw.bb10, %sw.bb11, %if.end, %sw.bb17, %sw.bb18, %sw.bb19, %sw.bb24, %sw.bb27, %sw.bb31, %sw.bb36, %sw.bb41, %sw.bb43, %sw.bb44, %sw.bb45, %sw.bb46, %sw.bb47, %sw.bb66, %sw.bb67, %sw.bb70, %sw.bb75, %sw.bb80, %sw.bb85, %sw.bb86, %sw.bb87, %sw.bb88, %sw.bb89, %sw.bb92, %sw.bb97, %sw.bb102, %sw.bb103, %sw.bb106, %sw.bb111, %sw.bb116, %sw.bb121, %sw.bb124, %sw.bb129, %sw.bb134, %sw.bb139, %sw.bb142, %sw.bb147, %sw.bb152, %sw.bb157, %sw.bb160, %sw.bb166, %sw.bb172, %sw.bb178, %sw.bb179, %sw.bb180, %sw.bb181, %sw.bb182, %sw.bb185, %sw.bb190, %sw.bb195, %sw.bb200, %sw.bb201, %sw.bb202, %sw.bb204, %sw.bb206, %sw.bb207, %sw.bb208, %sw.bb209, %sw.bb210, %sw.bb211, %sw.bb212, %sw.bb213, %sw.bb214, %sw.bb215, %sw.bb216, %sw.bb217, %sw.bb231, %if.then57, %sw.bb48, %entry, %sw.bb218, %sw.epilog - %ret.0154 = phi i8 [ %ret.0, %sw.epilog ], [ 0, %sw.bb218 ], [ 127, %entry ], [ %0, %sw.bb ], [ %1, %sw.bb1 ], [ %2, %sw.bb2 ], [ %3, %sw.bb3 ], [ %4, %sw.bb4 ], [ %5, %sw.bb5 ], [ %6, %sw.bb6 ], [ 0, %sw.bb8 ], [ %7, %sw.bb9 ], [ %8, %sw.bb10 ], [ %9, %sw.bb11 ], [ %11, %if.end ], [ %14, %sw.bb17 ], [ %15, %sw.bb18 ], [ %19, %sw.bb19 ], [ %conv26, %sw.bb24 ], [ %conv30, %sw.bb27 ], [ %conv35, %sw.bb31 ], [ %conv40, %sw.bb36 ], [ %24, %sw.bb41 ], [ %25, %sw.bb43 ], [ %26, %sw.bb44 ], [ %27, %sw.bb45 ], [ -1, %sw.bb46 ], [ 0, %sw.bb47 ], [ %29, %sw.bb48 ], [ %32, %if.then57 ], [ %33, %sw.bb66 ], [ %conv69, %sw.bb67 ], [ %conv74, %sw.bb70 ], [ %conv79, %sw.bb75 ], [ %conv84, %sw.bb80 ], [ %38, %sw.bb85 ], [ %39, %sw.bb86 ], [ %40, %sw.bb87 ], [ 0, %sw.bb88 ], [ %conv91, %sw.bb89 ], [ %conv96, %sw.bb92 ], [ %conv101, %sw.bb97 ], [ %44, %sw.bb102 ], [ %conv105, %sw.bb103 ], [ %conv110, %sw.bb106 ], [ %conv115, %sw.bb111 ], [ %conv120, %sw.bb116 ], [ %conv123, %sw.bb121 ], [ %conv128, %sw.bb124 ], [ %conv133, %sw.bb129 ], [ %conv138, %sw.bb134 ], [ %conv141, %sw.bb139 ], [ %conv146, %sw.bb142 ], [ %conv151, %sw.bb147 ], [ %conv156, %sw.bb152 ], [ %conv159, %sw.bb157 ], [ %conv165, %sw.bb160 ], [ %conv171, %sw.bb166 ], [ %conv177, %sw.bb172 ], [ %61, %sw.bb178 ], [ %62, %sw.bb179 ], [ %63, %sw.bb180 ], [ %64, %sw.bb181 ], [ %conv184, %sw.bb182 ], [ %conv189, %sw.bb185 ], [ %conv194, %sw.bb190 ], [ %conv199, %sw.bb195 ], [ %69, %sw.bb200 ], [ %70, %sw.bb201 ], [ %71, %sw.bb202 ], [ %72, %sw.bb204 ], [ 15, %sw.bb206 ], [ 15, %sw.bb207 ], [ %73, %sw.bb208 ], [ %74, %sw.bb209 ], [ %75, %sw.bb210 ], [ %76, %sw.bb211 ], [ %77, %sw.bb212 ], [ %78, %sw.bb213 ], [ %79, %sw.bb214 ], [ -32, %sw.bb215 ], [ %80, %sw.bb216 ], [ %81, %sw.bb217 ], [ 0, %sw.bb231 ] +cond.true506: ; preds = %sw.bb, %sw.bb1, %sw.bb2, %sw.bb3, %sw.bb4, %sw.bb5, %sw.bb6, %sw.bb8, %sw.bb9, %sw.bb10, %sw.bb11, %if.end, %sw.bb17, %sw.bb18, %sw.bb19, %sw.bb24, %sw.bb27, %sw.bb31, %sw.bb36, %sw.bb41, %sw.bb43, %sw.bb44, %sw.bb45, %sw.bb46, %sw.bb66, %sw.bb67, %sw.bb70, %sw.bb75, %sw.bb80, %sw.bb85, %sw.bb86, %sw.bb87, %sw.bb89, %sw.bb92, %sw.bb97, %sw.bb102, %sw.bb103, %sw.bb106, %sw.bb111, %sw.bb116, %sw.bb121, %sw.bb124, %sw.bb129, %sw.bb134, %sw.bb139, %sw.bb142, %sw.bb147, %sw.bb152, %sw.bb157, %sw.bb160, %sw.bb166, %sw.bb172, %sw.bb178, %sw.bb179, %sw.bb180, %sw.bb181, %sw.bb182, %sw.bb185, %sw.bb190, %sw.bb195, %sw.bb200, %sw.bb201, %sw.bb202, %sw.bb204, %sw.bb206, %sw.bb208, %sw.bb209, %sw.bb210, %sw.bb211, %sw.bb212, %sw.bb213, %sw.bb214, %sw.bb215, %sw.bb216, %sw.bb217, %if.then57, %sw.bb48, %entry, %sw.bb218, %sw.epilog + %ret.0154 = phi i8 [ %ret.0, %sw.epilog ], [ 0, %sw.bb218 ], [ 127, %entry ], [ %0, %sw.bb ], [ %1, %sw.bb1 ], [ %2, %sw.bb2 ], [ %3, %sw.bb3 ], [ %4, %sw.bb4 ], [ %5, %sw.bb5 ], [ %6, %sw.bb6 ], [ 0, %sw.bb8 ], [ %7, %sw.bb9 ], [ %8, %sw.bb10 ], [ %9, %sw.bb11 ], [ %11, %if.end ], [ %14, %sw.bb17 ], [ %15, %sw.bb18 ], [ %19, %sw.bb19 ], [ %conv26, %sw.bb24 ], [ %conv30, %sw.bb27 ], [ %conv35, %sw.bb31 ], [ %conv40, %sw.bb36 ], [ %24, %sw.bb41 ], [ %25, %sw.bb43 ], [ %26, %sw.bb44 ], [ %27, %sw.bb45 ], [ -1, %sw.bb46 ], [ %29, %sw.bb48 ], [ %32, %if.then57 ], [ %33, %sw.bb66 ], [ %conv69, %sw.bb67 ], [ %conv74, %sw.bb70 ], [ %conv79, %sw.bb75 ], [ %conv84, %sw.bb80 ], [ %38, %sw.bb85 ], [ %39, %sw.bb86 ], [ %40, %sw.bb87 ], [ %conv91, %sw.bb89 ], [ %conv96, %sw.bb92 ], [ %conv101, %sw.bb97 ], [ %44, %sw.bb102 ], [ %conv105, %sw.bb103 ], [ %conv110, %sw.bb106 ], [ %conv115, %sw.bb111 ], [ %conv120, %sw.bb116 ], [ %conv123, %sw.bb121 ], [ %conv128, %sw.bb124 ], [ %conv133, %sw.bb129 ], [ %conv138, %sw.bb134 ], [ %conv141, %sw.bb139 ], [ %conv146, %sw.bb142 ], [ %conv151, %sw.bb147 ], [ %conv156, %sw.bb152 ], [ %conv159, %sw.bb157 ], [ %conv165, %sw.bb160 ], [ %conv171, %sw.bb166 ], [ %conv177, %sw.bb172 ], [ %61, %sw.bb178 ], [ %62, %sw.bb179 ], [ %63, %sw.bb180 ], [ %64, %sw.bb181 ], [ %conv184, %sw.bb182 ], [ %conv189, %sw.bb185 ], [ %conv194, %sw.bb190 ], [ %conv199, %sw.bb195 ], [ %69, %sw.bb200 ], [ %70, %sw.bb201 ], [ %71, %sw.bb202 ], [ %72, %sw.bb204 ], [ 15, %sw.bb206 ], [ %73, %sw.bb208 ], [ %74, %sw.bb209 ], [ %75, %sw.bb210 ], [ %76, %sw.bb211 ], [ %77, %sw.bb212 ], [ %78, %sw.bb213 ], [ %79, %sw.bb214 ], [ -32, %sw.bb215 ], [ %80, %sw.bb216 ], [ %81, %sw.bb217 ] %conv503 = zext nneg i32 %offset to i64 %arrayidx508 = getelementptr [96 x ptr], ptr @names, i64 0, i64 %conv503 %146 = load ptr, ptr %arrayidx508, align 8 @@ -3819,7 +3807,7 @@ cond.end837: ; preds = %if.then829, %cond.t tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.133, ptr noundef %cond838, i32 noundef %offset, i32 noundef %conv839) #12 br label %sw.epilog -sw.epilog: ; preds = %if.then810, %do.body821, %cond.end837, %sw.bb385, %do.end400, %trace_lsi_reg_write.exit, %sw.bb366, %land.lhs.true373, %if.then379, %sw.bb284, %land.lhs.true295, %if.then300, %trace_lsi_reg_write.exit, %if.end139, %if.then143, %trace_lsi_reg_write.exit, %trace_lsi_reg_write.exit, %trace_lsi_reg_write.exit, %trace_lsi_reg_write.exit, %trace_lsi_reg_write.exit, %trace_lsi_reg_write.exit, %trace_lsi_reg_write.exit, %if.else, %if.then35, %if.then31, %sw.bb, %do.body, %if.then6, %sw.bb798, %sw.bb791, %sw.bb784, %sw.bb779, %sw.bb772, %sw.bb765, %sw.bb758, %sw.bb753, %sw.bb746, %sw.bb739, %sw.bb732, %sw.bb727, %sw.bb720, %sw.bb713, %sw.bb706, %sw.bb701, %sw.bb694, %sw.bb687, %sw.bb680, %sw.bb675, %sw.bb668, %sw.bb661, %sw.bb654, %sw.bb649, %sw.bb642, %sw.bb635, %sw.bb628, %sw.bb623, %sw.bb616, %sw.bb609, %sw.bb602, %sw.bb597, %sw.bb590, %sw.bb583, %sw.bb576, %sw.bb571, %sw.bb564, %sw.bb557, %sw.bb550, %sw.bb545, %sw.bb538, %sw.bb531, %sw.bb524, %sw.bb519, %sw.bb512, %sw.bb505, %sw.bb498, %sw.bb493, %sw.bb486, %sw.bb479, %sw.bb472, %sw.bb467, %sw.bb460, %sw.bb453, %sw.bb446, %sw.bb441, %sw.bb440, %sw.bb439, %if.end438, %if.end421, %sw.bb404, %sw.bb403, %sw.bb402, %sw.bb384, %sw.bb382, %sw.bb381, %sw.bb365, %sw.bb364, %sw.bb362, %sw.bb353, %sw.bb344, %sw.bb335, %sw.bb328, %sw.bb321, %sw.bb314, %sw.bb307, %sw.bb302, %sw.bb277, %sw.bb270, %sw.bb264, %sw.bb257, %sw.bb250, %sw.bb243, %sw.bb237, %sw.bb230, %sw.bb223, %sw.bb218, %if.end217, %if.end200, %sw.bb176, %sw.bb169, %sw.bb162, %sw.bb157, %sw.bb153, %sw.bb149, %sw.bb147, %sw.bb146, %sw.bb102, %sw.bb95, %sw.bb89, %sw.bb84, %sw.bb81, %if.end76, %sw.bb52, %sw.bb51, %sw.bb50, %sw.bb46 +sw.epilog: ; preds = %if.then810, %do.body821, %cond.end837, %sw.bb385, %do.end400, %sw.bb366, %land.lhs.true373, %if.then379, %sw.bb284, %land.lhs.true295, %if.then300, %if.end139, %if.then143, %trace_lsi_reg_write.exit, %trace_lsi_reg_write.exit, %trace_lsi_reg_write.exit, %trace_lsi_reg_write.exit, %trace_lsi_reg_write.exit, %trace_lsi_reg_write.exit, %trace_lsi_reg_write.exit, %trace_lsi_reg_write.exit, %trace_lsi_reg_write.exit, %if.else, %if.then35, %if.then31, %sw.bb, %do.body, %if.then6, %sw.bb798, %sw.bb791, %sw.bb784, %sw.bb779, %sw.bb772, %sw.bb765, %sw.bb758, %sw.bb753, %sw.bb746, %sw.bb739, %sw.bb732, %sw.bb727, %sw.bb720, %sw.bb713, %sw.bb706, %sw.bb701, %sw.bb694, %sw.bb687, %sw.bb680, %sw.bb675, %sw.bb668, %sw.bb661, %sw.bb654, %sw.bb649, %sw.bb642, %sw.bb635, %sw.bb628, %sw.bb623, %sw.bb616, %sw.bb609, %sw.bb602, %sw.bb597, %sw.bb590, %sw.bb583, %sw.bb576, %sw.bb571, %sw.bb564, %sw.bb557, %sw.bb550, %sw.bb545, %sw.bb538, %sw.bb531, %sw.bb524, %sw.bb519, %sw.bb512, %sw.bb505, %sw.bb498, %sw.bb493, %sw.bb486, %sw.bb479, %sw.bb472, %sw.bb467, %sw.bb460, %sw.bb453, %sw.bb446, %sw.bb441, %sw.bb440, %sw.bb439, %if.end438, %if.end421, %sw.bb404, %sw.bb403, %sw.bb402, %sw.bb384, %sw.bb382, %sw.bb381, %sw.bb365, %sw.bb364, %sw.bb362, %sw.bb353, %sw.bb344, %sw.bb335, %sw.bb328, %sw.bb321, %sw.bb314, %sw.bb307, %sw.bb302, %sw.bb277, %sw.bb270, %sw.bb264, %sw.bb257, %sw.bb250, %sw.bb243, %sw.bb237, %sw.bb230, %sw.bb223, %sw.bb218, %if.end217, %if.end200, %sw.bb176, %sw.bb169, %sw.bb162, %sw.bb157, %sw.bb153, %sw.bb149, %sw.bb147, %sw.bb146, %sw.bb102, %sw.bb95, %sw.bb89, %sw.bb84, %sw.bb81, %if.end76, %sw.bb52, %sw.bb51, %sw.bb50, %sw.bb46 ret void } diff --git a/bench/qemu/optimized/hw_usb_hcd-xhci.c.ll b/bench/qemu/optimized/hw_usb_hcd-xhci.c.ll index 84c1617d193..4bd68d1864d 100644 --- a/bench/qemu/optimized/hw_usb_hcd-xhci.c.ll +++ b/bench/qemu/optimized/hw_usb_hcd-xhci.c.ll @@ -5244,11 +5244,11 @@ entry: i64 8, label %sw.bb11 i64 9, label %sw.bb12 i64 10, label %sw.bb13 - i64 11, label %sw.bb22 + i64 11, label %sw.bb5 i64 12, label %sw.bb23 - i64 13, label %sw.bb24 + i64 13, label %sw.bb12 i64 14, label %sw.bb25 - i64 15, label %sw.bb38 + i64 15, label %sw.bb5 ] sw.bb1: ; preds = %entry @@ -5270,7 +5270,7 @@ sw.bb1: ; preds = %entry sw.bb4: ; preds = %entry br label %sw.epilog -sw.bb5: ; preds = %entry +sw.bb5: ; preds = %entry, %entry, %entry br label %sw.epilog sw.bb6: ; preds = %entry @@ -5289,7 +5289,7 @@ sw.bb10: ; preds = %entry sw.bb11: ; preds = %entry br label %sw.epilog -sw.bb12: ; preds = %entry +sw.bb12: ; preds = %entry, %entry br label %sw.epilog sw.bb13: ; preds = %entry @@ -5313,15 +5313,9 @@ if.else: ; preds = %sw.bb13 %or21 = or disjoint i32 %shl20, 1 br label %sw.epilog -sw.bb22: ; preds = %entry - br label %sw.epilog - sw.bb23: ; preds = %entry br label %sw.epilog -sw.bb24: ; preds = %entry - br label %sw.epilog - sw.bb25: ; preds = %entry %flags.i16 = getelementptr inbounds i8, ptr %ptr, i64 1744 %9 = load i32, ptr %flags.i16, align 16 @@ -5343,9 +5337,6 @@ if.else31: ; preds = %sw.bb25 %or36 = or i32 %add35, %shl33 br label %sw.epilog -sw.bb38: ; preds = %entry - br label %sw.epilog - sw.default: ; preds = %entry %conv = trunc i64 %reg to i32 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_now.i.i) @@ -5384,8 +5375,8 @@ trace_usb_xhci_unimplemented.exit: ; preds = %sw.default, %land.l call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %_now.i.i) br label %sw.epilog -sw.epilog: ; preds = %entry, %if.then27, %if.else31, %if.then, %if.else, %trace_usb_xhci_unimplemented.exit, %sw.bb38, %sw.bb24, %sw.bb23, %sw.bb22, %sw.bb12, %sw.bb11, %sw.bb10, %sw.bb9, %sw.bb6, %sw.bb5, %sw.bb4, %sw.bb1 - %ret.0 = phi i32 [ 0, %trace_usb_xhci_unimplemented.exit ], [ 0, %sw.bb38 ], [ %or30, %if.then27 ], [ %or36, %if.else31 ], [ 541217621, %sw.bb24 ], [ 50331650, %sw.bb23 ], [ 0, %sw.bb22 ], [ %or18, %if.then ], [ %or21, %if.else ], [ 541217621, %sw.bb12 ], [ 33555458, %sw.bb11 ], [ 4096, %sw.bb10 ], [ 8192, %sw.bb9 ], [ %or8, %sw.bb6 ], [ 0, %sw.bb5 ], [ 15, %sw.bb4 ], [ %or3, %sw.bb1 ], [ 16777280, %entry ] +sw.epilog: ; preds = %entry, %if.then27, %if.else31, %if.then, %if.else, %trace_usb_xhci_unimplemented.exit, %sw.bb23, %sw.bb12, %sw.bb11, %sw.bb10, %sw.bb9, %sw.bb6, %sw.bb5, %sw.bb4, %sw.bb1 + %ret.0 = phi i32 [ 0, %trace_usb_xhci_unimplemented.exit ], [ %or30, %if.then27 ], [ %or36, %if.else31 ], [ 50331650, %sw.bb23 ], [ %or18, %if.then ], [ %or21, %if.else ], [ 541217621, %sw.bb12 ], [ 33555458, %sw.bb11 ], [ 4096, %sw.bb10 ], [ 8192, %sw.bb9 ], [ %or8, %sw.bb6 ], [ 0, %sw.bb5 ], [ 15, %sw.bb4 ], [ %or3, %sw.bb1 ], [ 16777280, %entry ] %conv39 = trunc i64 %reg to i32 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_now.i.i19) %18 = load i32, ptr @trace_events_enabled_count, align 4 diff --git a/bench/qemu/optimized/nbd_server.c.ll b/bench/qemu/optimized/nbd_server.c.ll index 899b9ee8bd2..230cbbc2af1 100644 --- a/bench/qemu/optimized/nbd_server.c.ll +++ b/bench/qemu/optimized/nbd_server.c.ll @@ -3158,42 +3158,30 @@ entry: i32 1, label %sw.bb1.i i32 30, label %sw.bb1.i i32 5, label %sw.bb2.i - i32 12, label %sw.bb3.i + i32 12, label %sw.bb2.i i32 122, label %sw.bb4.i i32 27, label %sw.bb4.i i32 28, label %sw.bb4.i - i32 75, label %sw.bb5.i - i32 95, label %sw.bb6.i - i32 108, label %sw.bb7.i + i32 75, label %sw.bb2.i + i32 95, label %sw.bb2.i + i32 108, label %sw.bb2.i ] sw.bb1.i: ; preds = %entry, %entry br label %system_errno_to_nbd_errno.exit -sw.bb2.i: ; preds = %entry - br label %system_errno_to_nbd_errno.exit - -sw.bb3.i: ; preds = %entry +sw.bb2.i: ; preds = %entry, %entry, %entry, %entry, %entry br label %system_errno_to_nbd_errno.exit sw.bb4.i: ; preds = %entry, %entry, %entry br label %system_errno_to_nbd_errno.exit -sw.bb5.i: ; preds = %entry - br label %system_errno_to_nbd_errno.exit - -sw.bb6.i: ; preds = %entry - br label %system_errno_to_nbd_errno.exit - -sw.bb7.i: ; preds = %entry - br label %system_errno_to_nbd_errno.exit - sw.default.i: ; preds = %entry br label %system_errno_to_nbd_errno.exit -system_errno_to_nbd_errno.exit: ; preds = %entry, %sw.bb1.i, %sw.bb2.i, %sw.bb3.i, %sw.bb4.i, %sw.bb5.i, %sw.bb6.i, %sw.bb7.i, %sw.default.i - %tobool7.not = phi i1 [ false, %sw.default.i ], [ false, %sw.bb7.i ], [ false, %sw.bb6.i ], [ false, %sw.bb5.i ], [ false, %sw.bb4.i ], [ false, %sw.bb3.i ], [ false, %sw.bb2.i ], [ false, %sw.bb1.i ], [ true, %entry ] - %retval.0.i = phi i32 [ 22, %sw.default.i ], [ %error, %sw.bb7.i ], [ %error, %sw.bb6.i ], [ %error, %sw.bb5.i ], [ 28, %sw.bb4.i ], [ %error, %sw.bb3.i ], [ %error, %sw.bb2.i ], [ 1, %sw.bb1.i ], [ %error, %entry ] +system_errno_to_nbd_errno.exit: ; preds = %entry, %sw.bb1.i, %sw.bb2.i, %sw.bb4.i, %sw.default.i + %tobool7.not = phi i1 [ false, %sw.default.i ], [ false, %sw.bb4.i ], [ false, %sw.bb2.i ], [ false, %sw.bb1.i ], [ true, %entry ] + %retval.0.i = phi i32 [ 22, %sw.default.i ], [ 28, %sw.bb4.i ], [ %error, %sw.bb2.i ], [ 1, %sw.bb1.i ], [ %error, %entry ] store ptr %hdr, ptr %iov, align 16 %iov_len = getelementptr inbounds i8, ptr %iov, i64 8 store i64 0, ptr %iov_len, align 8 @@ -3462,13 +3450,13 @@ entry: i32 1, label %system_errno_to_nbd_errno.exit i32 30, label %system_errno_to_nbd_errno.exit i32 5, label %sw.bb2.i - i32 12, label %sw.bb3.i + i32 12, label %sw.bb2.i i32 122, label %sw.bb4.i i32 27, label %sw.bb4.i i32 28, label %sw.bb4.i - i32 75, label %sw.bb5.i - i32 95, label %sw.bb6.i - i32 108, label %sw.bb7.i + i32 75, label %sw.bb2.i + i32 95, label %sw.bb2.i + i32 108, label %sw.bb2.i ] system_errno_to_nbd_errno.exit.thread: ; preds = %entry @@ -3481,29 +3469,17 @@ system_errno_to_nbd_errno.exit.thread: ; preds = %entry store i64 %len, ptr %iov_len215, align 8 br label %if.end -sw.bb2.i: ; preds = %entry - br label %system_errno_to_nbd_errno.exit - -sw.bb3.i: ; preds = %entry +sw.bb2.i: ; preds = %entry, %entry, %entry, %entry, %entry br label %system_errno_to_nbd_errno.exit sw.bb4.i: ; preds = %entry, %entry, %entry br label %system_errno_to_nbd_errno.exit -sw.bb5.i: ; preds = %entry - br label %system_errno_to_nbd_errno.exit - -sw.bb6.i: ; preds = %entry - br label %system_errno_to_nbd_errno.exit - -sw.bb7.i: ; preds = %entry - br label %system_errno_to_nbd_errno.exit - sw.default.i: ; preds = %entry br label %system_errno_to_nbd_errno.exit -system_errno_to_nbd_errno.exit: ; preds = %entry, %entry, %sw.bb2.i, %sw.bb3.i, %sw.bb4.i, %sw.bb5.i, %sw.bb6.i, %sw.bb7.i, %sw.default.i - %retval.0.i = phi i32 [ 22, %sw.default.i ], [ %error, %sw.bb7.i ], [ %error, %sw.bb6.i ], [ %error, %sw.bb5.i ], [ 28, %sw.bb4.i ], [ %error, %sw.bb3.i ], [ %error, %sw.bb2.i ], [ 1, %entry ], [ 1, %entry ] +system_errno_to_nbd_errno.exit: ; preds = %entry, %entry, %sw.bb2.i, %sw.bb4.i, %sw.default.i + %retval.0.i = phi i32 [ 22, %sw.default.i ], [ 28, %sw.bb4.i ], [ %error, %sw.bb2.i ], [ 1, %entry ], [ 1, %entry ] store ptr %reply, ptr %iov, align 16 %iov_len = getelementptr inbounds i8, ptr %iov, i64 8 store i64 16, ptr %iov_len, align 8 diff --git a/bench/regex-rs/optimized/32jw1oy2yofrhudk.ll b/bench/regex-rs/optimized/32jw1oy2yofrhudk.ll index fd15b13f900..bcf2bd8afd9 100644 --- a/bench/regex-rs/optimized/32jw1oy2yofrhudk.ll +++ b/bench/regex-rs/optimized/32jw1oy2yofrhudk.ll @@ -9527,9 +9527,9 @@ define void @_ZN14regex_automata3nfa8thompson7builder7Builder5patch17h25b5bd83fc i32 2, label %15 i32 3, label %.thread.sink.split i32 4, label %20 - i32 5, label %21 - i32 6, label %22 - i32 7, label %35 + i32 5, label %20 + i32 6, label %21 + i32 7, label %34 i32 8, label %.thread i32 9, label %.thread ] @@ -9551,92 +9551,89 @@ default.unreachable20: ; preds = %"_ZN84_$LT$alloc..v call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.15285cd795f513bdaa4bdcfb2bbacd31.115) #24 unreachable -20: ; preds = %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit" +20: ; preds = %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit", %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit" br label %.thread.sink.split 21: ; preds = %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit" - br label %.thread.sink.split - -22: ; preds = %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit" - %23 = getelementptr inbounds i8, ptr %13, i64 8 - %24 = getelementptr inbounds i8, ptr %13, i64 24 - %25 = load i64, ptr %24, align 8, !alias.scope !1797, !noundef !4 - %26 = load i64, ptr %23, align 8, !alias.scope !1797, !noundef !4 - %27 = icmp eq i64 %25, %26 - br i1 %27, label %28, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h3a4f749c8deb5dbcE.exit" - -28: ; preds = %22 - tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17he6671efbaa138bbfE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %25) - %.pre.i = load i64, ptr %24, align 8, !alias.scope !1797 + %22 = getelementptr inbounds i8, ptr %13, i64 8 + %23 = getelementptr inbounds i8, ptr %13, i64 24 + %24 = load i64, ptr %23, align 8, !alias.scope !1797, !noundef !4 + %25 = load i64, ptr %22, align 8, !alias.scope !1797, !noundef !4 + %26 = icmp eq i64 %24, %25 + br i1 %26, label %27, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h3a4f749c8deb5dbcE.exit" + +27: ; preds = %21 + tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17he6671efbaa138bbfE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %24) + %.pre.i = load i64, ptr %23, align 8, !alias.scope !1797 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h3a4f749c8deb5dbcE.exit" -"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h3a4f749c8deb5dbcE.exit": ; preds = %22, %28 - %29 = phi i64 [ %.pre.i, %28 ], [ %25, %22 ] - %30 = getelementptr inbounds i8, ptr %13, i64 16 - %31 = load ptr, ptr %30, align 8, !alias.scope !1797, !nonnull !4, !noundef !4 - %32 = getelementptr inbounds i32, ptr %31, i64 %29 - store i32 %3, ptr %32, align 4 - %33 = load i64, ptr %24, align 8, !alias.scope !1797, !noundef !4 - %34 = add i64 %33, 1 - store i64 %34, ptr %24, align 8, !alias.scope !1797 - br label %48 +"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h3a4f749c8deb5dbcE.exit": ; preds = %21, %27 + %28 = phi i64 [ %.pre.i, %27 ], [ %24, %21 ] + %29 = getelementptr inbounds i8, ptr %13, i64 16 + %30 = load ptr, ptr %29, align 8, !alias.scope !1797, !nonnull !4, !noundef !4 + %31 = getelementptr inbounds i32, ptr %30, i64 %28 + store i32 %3, ptr %31, align 4 + %32 = load i64, ptr %23, align 8, !alias.scope !1797, !noundef !4 + %33 = add i64 %32, 1 + store i64 %33, ptr %23, align 8, !alias.scope !1797 + br label %47 -35: ; preds = %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit" - %36 = getelementptr inbounds i8, ptr %13, i64 8 - %37 = getelementptr inbounds i8, ptr %13, i64 24 - %38 = load i64, ptr %37, align 8, !alias.scope !1800, !noundef !4 - %39 = load i64, ptr %36, align 8, !alias.scope !1800, !noundef !4 - %40 = icmp eq i64 %38, %39 - br i1 %40, label %41, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h3a4f749c8deb5dbcE.exit12" +34: ; preds = %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit" + %35 = getelementptr inbounds i8, ptr %13, i64 8 + %36 = getelementptr inbounds i8, ptr %13, i64 24 + %37 = load i64, ptr %36, align 8, !alias.scope !1800, !noundef !4 + %38 = load i64, ptr %35, align 8, !alias.scope !1800, !noundef !4 + %39 = icmp eq i64 %37, %38 + br i1 %39, label %40, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h3a4f749c8deb5dbcE.exit12" -41: ; preds = %35 - tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17he6671efbaa138bbfE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %38) - %.pre.i11 = load i64, ptr %37, align 8, !alias.scope !1800 +40: ; preds = %34 + tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17he6671efbaa138bbfE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %37) + %.pre.i11 = load i64, ptr %36, align 8, !alias.scope !1800 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h3a4f749c8deb5dbcE.exit12" -"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h3a4f749c8deb5dbcE.exit12": ; preds = %35, %41 - %42 = phi i64 [ %.pre.i11, %41 ], [ %38, %35 ] - %43 = getelementptr inbounds i8, ptr %13, i64 16 - %44 = load ptr, ptr %43, align 8, !alias.scope !1800, !nonnull !4, !noundef !4 - %45 = getelementptr inbounds i32, ptr %44, i64 %42 - store i32 %3, ptr %45, align 4 - %46 = load i64, ptr %37, align 8, !alias.scope !1800, !noundef !4 - %47 = add i64 %46, 1 - store i64 %47, ptr %37, align 8, !alias.scope !1800 - br label %48 +"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h3a4f749c8deb5dbcE.exit12": ; preds = %34, %40 + %41 = phi i64 [ %.pre.i11, %40 ], [ %37, %34 ] + %42 = getelementptr inbounds i8, ptr %13, i64 16 + %43 = load ptr, ptr %42, align 8, !alias.scope !1800, !nonnull !4, !noundef !4 + %44 = getelementptr inbounds i32, ptr %43, i64 %41 + store i32 %3, ptr %44, align 4 + %45 = load i64, ptr %36, align 8, !alias.scope !1800, !noundef !4 + %46 = add i64 %45, 1 + store i64 %46, ptr %36, align 8, !alias.scope !1800 + br label %47 + +47: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h3a4f749c8deb5dbcE.exit", %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h3a4f749c8deb5dbcE.exit12" + %48 = add i64 %7, 4 + store i64 %48, ptr %6, align 8 + %49 = load i64, ptr %1, align 8, !range !426, !alias.scope !1803, !noalias !1806, !noundef !4 + %.not.i = icmp eq i64 %49, 0 + br i1 %.not.i, label %.thread, label %50 -48: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h3a4f749c8deb5dbcE.exit", %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h3a4f749c8deb5dbcE.exit12" - %49 = add i64 %7, 4 - store i64 %49, ptr %6, align 8 - %50 = load i64, ptr %1, align 8, !range !426, !alias.scope !1803, !noalias !1806, !noundef !4 - %.not.i = icmp eq i64 %50, 0 - br i1 %.not.i, label %.thread, label %51 - -51: ; preds = %48 - %52 = getelementptr inbounds i8, ptr %1, i64 8 - %53 = load i64, ptr %52, align 8, !alias.scope !1803, !noalias !1806, !noundef !4 - %54 = shl i64 %.val10, 5 - %55 = add i64 %54, %49 - %56 = icmp ugt i64 %55, %53 - br i1 %56, label %58, label %.thread - -.thread.sink.split: ; preds = %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit", %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit", %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit", %21, %20 - %.sink22 = phi i64 [ 12, %20 ], [ 12, %21 ], [ 4, %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit" ], [ 4, %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit" ], [ 4, %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit" ] - %57 = getelementptr inbounds i8, ptr %13, i64 %.sink22 - store i32 %3, ptr %57, align 4 +50: ; preds = %47 + %51 = getelementptr inbounds i8, ptr %1, i64 8 + %52 = load i64, ptr %51, align 8, !alias.scope !1803, !noalias !1806, !noundef !4 + %53 = shl i64 %.val10, 5 + %54 = add i64 %53, %48 + %55 = icmp ugt i64 %54, %52 + br i1 %55, label %57, label %.thread + +.thread.sink.split: ; preds = %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit", %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit", %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit", %20 + %.sink22 = phi i64 [ 12, %20 ], [ 4, %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit" ], [ 4, %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit" ], [ 4, %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit" ] + %56 = getelementptr inbounds i8, ptr %13, i64 %.sink22 + store i32 %3, ptr %56, align 4 br label %.thread -.thread: ; preds = %.thread.sink.split, %48, %51, %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit", %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit" +.thread: ; preds = %.thread.sink.split, %47, %50, %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit", %"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17hbe23888e0b58b727E.exit" store i64 -9223372036854775800, ptr %0, align 8 - br label %59 + br label %58 -58: ; preds = %51 +57: ; preds = %50 store i64 -9223372036854775803, ptr %0, align 8 %.sroa.29.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 8 - store i64 %53, ptr %.sroa.29.0..sroa_idx, align 8 - br label %59 + store i64 %52, ptr %.sroa.29.0..sroa_idx, align 8 + br label %58 -59: ; preds = %58, %.thread +58: ; preds = %57, %.thread ret void } diff --git a/bench/ripgrep-rs/optimized/1zzjpab9m5homdm3.ll b/bench/ripgrep-rs/optimized/1zzjpab9m5homdm3.ll index 98fb23b5fa7..bc7c0cda9d6 100644 --- a/bench/ripgrep-rs/optimized/1zzjpab9m5homdm3.ll +++ b/bench/ripgrep-rs/optimized/1zzjpab9m5homdm3.ll @@ -2897,7 +2897,7 @@ define void @"_ZN52_$LT$ignore..Error$u20$as$u20$core..clone..Clone$GT$5clone17h %14 = alloca { { { { { i64, ptr, {} }, i64 } } } }, align 8 %15 = alloca { { i64, ptr, {} }, i64 }, align 8 %16 = load i64, ptr %1, align 8, !range !164, !noundef !4 - switch i64 %16, label %default.unreachable49 [ + switch i64 %16, label %default.unreachable47 [ i64 0, label %17 i64 1, label %23 i64 2, label %35 @@ -2909,7 +2909,7 @@ define void @"_ZN52_$LT$ignore..Error$u20$as$u20$core..clone..Clone$GT$5clone17h i64 8, label %89 ] -default.unreachable49: ; preds = %77, %2 +default.unreachable47: ; preds = %77, %2 unreachable 17: ; preds = %2 @@ -2991,20 +2991,20 @@ common.resume: ; preds = %common.resume.sink. %44 = getelementptr inbounds i8, ptr %1, i64 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !464) %45 = invoke noundef align 8 ptr @"_ZN5alloc5boxed16Box$LT$T$C$A$GT$17try_new_uninit_in17h0ef86662dfeec22aE.llvm.11520163510252972942"() - to label %.noexc25 unwind label %91 + to label %.noexc24 unwind label %91 -.noexc25: ; preds = %35 +.noexc24: ; preds = %35 %46 = icmp eq ptr %45, null br i1 %46, label %47, label %.noexc -47: ; preds = %.noexc25 +47: ; preds = %.noexc24 invoke void @_ZN5alloc5alloc18handle_alloc_error17h836e982fea7018bdE(i64 noundef 8, i64 noundef 56) #28 - to label %.noexc26 unwind label %91 + to label %.noexc25 unwind label %91 -.noexc26: ; preds = %47 +.noexc25: ; preds = %47 unreachable -.noexc: ; preds = %.noexc25 +.noexc: ; preds = %.noexc24 %48 = load ptr, ptr %44, align 8, !alias.scope !464, !nonnull !4, !align !38, !noundef !4 call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %5) invoke void @"_ZN52_$LT$ignore..Error$u20$as$u20$core..clone..Clone$GT$5clone17ha143aecd39460626E"(ptr noalias nocapture noundef nonnull sret({ i64, [6 x i64] }) align 8 dereferenceable(56) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %48) @@ -3022,25 +3022,25 @@ common.resume: ; preds = %common.resume.sink. tail call void @llvm.experimental.noalias.scope.decl(metadata !467) %54 = tail call noundef align 8 ptr @"_ZN5alloc5boxed16Box$LT$T$C$A$GT$17try_new_uninit_in17h0ef86662dfeec22aE.llvm.11520163510252972942"(), !noalias !467 %55 = icmp eq ptr %54, null - br i1 %55, label %56, label %"_ZN5alloc5boxed16Box$LT$T$C$A$GT$13new_uninit_in17hb61a9cfcf3395ae8E.exit30" + br i1 %55, label %56, label %"_ZN5alloc5boxed16Box$LT$T$C$A$GT$13new_uninit_in17hb61a9cfcf3395ae8E.exit29" 56: ; preds = %51 tail call void @_ZN5alloc5alloc18handle_alloc_error17h836e982fea7018bdE(i64 noundef 8, i64 noundef 56) #28, !noalias !467 unreachable -"_ZN5alloc5boxed16Box$LT$T$C$A$GT$13new_uninit_in17hb61a9cfcf3395ae8E.exit30": ; preds = %51 +"_ZN5alloc5boxed16Box$LT$T$C$A$GT$13new_uninit_in17hb61a9cfcf3395ae8E.exit29": ; preds = %51 %57 = getelementptr inbounds i8, ptr %1, i64 16 %58 = load ptr, ptr %57, align 8, !alias.scope !467, !nonnull !4, !align !38, !noundef !4 call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %4) invoke void @"_ZN52_$LT$ignore..Error$u20$as$u20$core..clone..Clone$GT$5clone17ha143aecd39460626E"(ptr noalias nocapture noundef nonnull sret({ i64, [6 x i64] }) align 8 dereferenceable(56) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %58) - to label %"_ZN69_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h679464ec7c803816E.exit16" unwind label %59 + to label %"_ZN69_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h679464ec7c803816E.exit15" unwind label %59 -59: ; preds = %"_ZN5alloc5boxed16Box$LT$T$C$A$GT$13new_uninit_in17hb61a9cfcf3395ae8E.exit30" +59: ; preds = %"_ZN5alloc5boxed16Box$LT$T$C$A$GT$13new_uninit_in17hb61a9cfcf3395ae8E.exit29" %60 = landingpad { ptr, i32 } cleanup br label %common.resume.sink.split -"_ZN69_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h679464ec7c803816E.exit16": ; preds = %"_ZN5alloc5boxed16Box$LT$T$C$A$GT$13new_uninit_in17hb61a9cfcf3395ae8E.exit30" +"_ZN69_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h679464ec7c803816E.exit15": ; preds = %"_ZN5alloc5boxed16Box$LT$T$C$A$GT$13new_uninit_in17hb61a9cfcf3395ae8E.exit29" call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %54, ptr noundef nonnull align 8 dereferenceable(56) %4, i64 56, i1 false), !noalias !470 call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %4) %61 = getelementptr inbounds i8, ptr %0, i64 8 @@ -3080,7 +3080,7 @@ common.resume: ; preds = %common.resume.sink. %79 = load ptr, ptr %78, align 8, !nonnull !4, !noundef !4 %80 = ptrtoint ptr %79 to i64 %81 = and i64 %80, 3 - switch i64 %81, label %default.unreachable49 [ + switch i64 %81, label %default.unreachable47 [ i64 2, label %129 i64 3, label %switch.lookup i64 0, label %107 @@ -3108,7 +3108,7 @@ common.resume: ; preds = %common.resume.sink. store i64 8, ptr %0, align 8 br label %90 -90: ; preds = %141, %133, %100, %93, %89, %86, %"_ZN69_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h679464ec7c803816E.exit16", %"_ZN69_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h679464ec7c803816E.exit", %17 +90: ; preds = %141, %133, %100, %93, %89, %86, %"_ZN69_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h679464ec7c803816E.exit15", %"_ZN69_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h679464ec7c803816E.exit", %17 ret void 91: ; preds = %47, %35 @@ -3245,9 +3245,9 @@ _ZN3std2io5error5Error4kind17he9f58cfbf63ce398E.exit: ; preds = %switch.lookup, br label %133 133: ; preds = %129, %"_ZN45_$LT$T$u20$as$u20$alloc..string..ToString$GT$9to_string17h36234ed5cb1aab52E.exit" - %.sink50 = phi ptr [ %132, %129 ], [ %128, %"_ZN45_$LT$T$u20$as$u20$alloc..string..ToString$GT$9to_string17h36234ed5cb1aab52E.exit" ] + %.sink48 = phi ptr [ %132, %129 ], [ %128, %"_ZN45_$LT$T$u20$as$u20$alloc..string..ToString$GT$9to_string17h36234ed5cb1aab52E.exit" ] %134 = getelementptr inbounds i8, ptr %0, i64 8 - store ptr %.sink50, ptr %134, align 8 + store ptr %.sink48, ptr %134, align 8 store i64 5, ptr %0, align 8 br label %90 @@ -3293,21 +3293,18 @@ tailrecurse: ; preds = %tailrecurse.backedg i64 0, label %.loopexit i64 1, label %3 i64 2, label %tailrecurse.backedge - i64 3, label %5 + i64 3, label %3 ] -3: ; preds = %tailrecurse +3: ; preds = %tailrecurse, %tailrecurse br label %tailrecurse.backedge -tailrecurse.backedge: ; preds = %tailrecurse, %3, %5 - %.sink = phi i64 [ 16, %3 ], [ 16, %5 ], [ 8, %tailrecurse ] +tailrecurse.backedge: ; preds = %tailrecurse, %3 + %.sink = phi i64 [ 16, %3 ], [ 8, %tailrecurse ] %4 = getelementptr inbounds i8, ptr %.tr, i64 %.sink %.tr.be = load ptr, ptr %4, align 8, !nonnull !4, !align !38, !noundef !4 br label %tailrecurse -5: ; preds = %tailrecurse - br label %tailrecurse.backedge - .loopexit.loopexit: ; preds = %tailrecurse br label %.loopexit @@ -3327,7 +3324,7 @@ tailrecurse: ; preds = %tailrecurse.backedg i64 0, label %3 i64 1, label %7 i64 2, label %tailrecurse.backedge - i64 3, label %9 + i64 3, label %7 i64 4, label %.loopexit.loopexit i64 5, label %.loopexit i64 6, label %.loopexit.loopexit @@ -3344,18 +3341,15 @@ default.unreachable5: ; preds = %tailrecurse %6 = icmp eq i64 %5, 1 br i1 %6, label %tailrecurse.backedge, label %.loopexit.loopexit -7: ; preds = %tailrecurse +7: ; preds = %tailrecurse, %tailrecurse br label %tailrecurse.backedge -tailrecurse.backedge: ; preds = %3, %tailrecurse, %7, %9 - %.sink = phi i64 [ 16, %7 ], [ 16, %9 ], [ 8, %tailrecurse ], [ 16, %3 ] +tailrecurse.backedge: ; preds = %3, %tailrecurse, %7 + %.sink = phi i64 [ 16, %7 ], [ 8, %tailrecurse ], [ 16, %3 ] %8 = getelementptr inbounds i8, ptr %.tr, i64 %.sink %.tr.be = load ptr, ptr %8, align 8, !nonnull !4, !noundef !4 br label %tailrecurse -9: ; preds = %tailrecurse - br label %tailrecurse.backedge - .loopexit.loopexit: ; preds = %tailrecurse, %tailrecurse, %tailrecurse, %tailrecurse, %3 br label %.loopexit @@ -3375,9 +3369,9 @@ tailrecurse: ; preds = %tailrecurse.backedg i64 0, label %3 i64 1, label %7 i64 2, label %tailrecurse.backedge - i64 3, label %9 + i64 3, label %7 i64 4, label %.loopexit - i64 5, label %10 + i64 5, label %9 i64 6, label %.loopexit i64 7, label %.loopexit i64 8, label %.loopexit @@ -3392,24 +3386,21 @@ default.unreachable8: ; preds = %tailrecurse %6 = icmp eq i64 %5, 1 br i1 %6, label %tailrecurse.backedge, label %.loopexit -7: ; preds = %tailrecurse +7: ; preds = %tailrecurse, %tailrecurse br label %tailrecurse.backedge -tailrecurse.backedge: ; preds = %3, %tailrecurse, %7, %9 - %.sink = phi i64 [ 16, %7 ], [ 16, %9 ], [ 8, %tailrecurse ], [ 16, %3 ] +tailrecurse.backedge: ; preds = %3, %tailrecurse, %7 + %.sink = phi i64 [ 16, %7 ], [ 8, %tailrecurse ], [ 16, %3 ] %8 = getelementptr inbounds i8, ptr %.tr, i64 %.sink %.tr.be = load ptr, ptr %8, align 8, !nonnull !4, !noundef !4 br label %tailrecurse 9: ; preds = %tailrecurse - br label %tailrecurse.backedge - -10: ; preds = %tailrecurse - %11 = getelementptr inbounds i8, ptr %.tr, i64 8 + %10 = getelementptr inbounds i8, ptr %.tr, i64 8 br label %.loopexit -.loopexit: ; preds = %3, %tailrecurse, %tailrecurse, %tailrecurse, %tailrecurse, %10 - %.0 = phi ptr [ %11, %10 ], [ null, %tailrecurse ], [ null, %tailrecurse ], [ null, %tailrecurse ], [ null, %tailrecurse ], [ null, %3 ] +.loopexit: ; preds = %3, %tailrecurse, %tailrecurse, %tailrecurse, %tailrecurse, %9 + %.0 = phi ptr [ %10, %9 ], [ null, %tailrecurse ], [ null, %tailrecurse ], [ null, %tailrecurse ], [ null, %tailrecurse ], [ null, %3 ] ret ptr %.0 } @@ -4791,7 +4782,7 @@ tailrecurse.i: ; preds = %tailrecurse.backedg i64 0, label %5 i64 1, label %9 i64 2, label %tailrecurse.backedge.i - i64 3, label %11 + i64 3, label %9 i64 4, label %_ZN6ignore5Error5is_io17h0ea59c09bdae053fE.exit i64 5, label %.critedge i64 6, label %_ZN6ignore5Error5is_io17h0ea59c09bdae053fE.exit @@ -4808,68 +4799,65 @@ default.unreachable: ; preds = %tailrecurse.i %8 = icmp eq i64 %7, 1 br i1 %8, label %tailrecurse.backedge.i, label %_ZN6ignore5Error5is_io17h0ea59c09bdae053fE.exit -9: ; preds = %tailrecurse.i +9: ; preds = %tailrecurse.i, %tailrecurse.i br label %tailrecurse.backedge.i -tailrecurse.backedge.i: ; preds = %11, %9, %5, %tailrecurse.i - %.sink.i = phi i64 [ 16, %9 ], [ 16, %11 ], [ 8, %tailrecurse.i ], [ 16, %5 ] +tailrecurse.backedge.i: ; preds = %9, %5, %tailrecurse.i + %.sink.i = phi i64 [ 16, %9 ], [ 8, %tailrecurse.i ], [ 16, %5 ] %10 = getelementptr inbounds i8, ptr %.tr.i, i64 %.sink.i %.tr.be.i = load ptr, ptr %10, align 8, !nonnull !4, !noundef !4 br label %tailrecurse.i -11: ; preds = %tailrecurse.i - br label %tailrecurse.backedge.i - _ZN6ignore5Error5is_io17h0ea59c09bdae053fE.exit: ; preds = %5, %tailrecurse.i, %tailrecurse.i, %tailrecurse.i, %tailrecurse.i call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %3) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %3, ptr noundef nonnull align 8 dereferenceable(56) %1, i64 56, i1 false) - %12 = getelementptr inbounds i8, ptr %0, i64 16 - %13 = load i64, ptr %12, align 8, !alias.scope !626, !noalias !631, !noundef !4 - %14 = load i64, ptr %0, align 8, !alias.scope !626, !noalias !631, !noundef !4 - %15 = icmp eq i64 %13, %14 - br i1 %15, label %16, label %21 - -16: ; preds = %_ZN6ignore5Error5is_io17h0ea59c09bdae053fE.exit - invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hfcd4898c1b952c2bE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %13) - to label %._crit_edge.i.i unwind label %17, !noalias !631 - -._crit_edge.i.i: ; preds = %16 - %.pre.i.i = load i64, ptr %12, align 8, !alias.scope !626, !noalias !631 - br label %21 + %11 = getelementptr inbounds i8, ptr %0, i64 16 + %12 = load i64, ptr %11, align 8, !alias.scope !626, !noalias !631, !noundef !4 + %13 = load i64, ptr %0, align 8, !alias.scope !626, !noalias !631, !noundef !4 + %14 = icmp eq i64 %12, %13 + br i1 %14, label %15, label %20 + +15: ; preds = %_ZN6ignore5Error5is_io17h0ea59c09bdae053fE.exit + invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17hfcd4898c1b952c2bE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %12) + to label %._crit_edge.i.i unwind label %16, !noalias !631 + +._crit_edge.i.i: ; preds = %15 + %.pre.i.i = load i64, ptr %11, align 8, !alias.scope !626, !noalias !631 + br label %20 -17: ; preds = %16 - %18 = landingpad { ptr, i32 } +16: ; preds = %15 + %17 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr34drop_in_place$LT$ignore..Error$GT$17hd529253980965e42E.llvm.8988879509220902597"(ptr noalias noundef nonnull align 8 dereferenceable(56) %3) #30 - to label %.body unwind label %19 + to label %.body unwind label %18 -19: ; preds = %17 - %20 = landingpad { ptr, i32 } +18: ; preds = %16 + %19 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #29 unreachable -21: ; preds = %._crit_edge.i.i, %_ZN6ignore5Error5is_io17h0ea59c09bdae053fE.exit - %22 = phi i64 [ %.pre.i.i, %._crit_edge.i.i ], [ %13, %_ZN6ignore5Error5is_io17h0ea59c09bdae053fE.exit ] - %23 = getelementptr inbounds i8, ptr %0, i64 8 - %24 = load ptr, ptr %23, align 8, !alias.scope !626, !noalias !631, !nonnull !4, !noundef !4 - %25 = getelementptr inbounds { i64, [6 x i64] }, ptr %24, i64 %22 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %25, ptr noundef nonnull align 8 dereferenceable(56) %1, i64 56, i1 false) - %26 = load i64, ptr %12, align 8, !alias.scope !626, !noalias !631, !noundef !4 - %27 = add i64 %26, 1 - store i64 %27, ptr %12, align 8, !alias.scope !626, !noalias !631 +20: ; preds = %._crit_edge.i.i, %_ZN6ignore5Error5is_io17h0ea59c09bdae053fE.exit + %21 = phi i64 [ %.pre.i.i, %._crit_edge.i.i ], [ %12, %_ZN6ignore5Error5is_io17h0ea59c09bdae053fE.exit ] + %22 = getelementptr inbounds i8, ptr %0, i64 8 + %23 = load ptr, ptr %22, align 8, !alias.scope !626, !noalias !631, !nonnull !4, !noundef !4 + %24 = getelementptr inbounds { i64, [6 x i64] }, ptr %23, i64 %21 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %24, ptr noundef nonnull align 8 dereferenceable(56) %1, i64 56, i1 false) + %25 = load i64, ptr %11, align 8, !alias.scope !626, !noalias !631, !noundef !4 + %26 = add i64 %25, 1 + store i64 %26, ptr %11, align 8, !alias.scope !626, !noalias !631 call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %3) - br label %28 + br label %27 -28: ; preds = %21, %.critedge +27: ; preds = %20, %.critedge ret void .critedge: ; preds = %tailrecurse.i tail call void @"_ZN4core3ptr34drop_in_place$LT$ignore..Error$GT$17hd529253980965e42E.llvm.8988879509220902597"(ptr noalias noundef nonnull align 8 dereferenceable(56) %1) - br label %28 + br label %27 -.body: ; preds = %17 - resume { ptr, i32 } %18 +.body: ; preds = %16 + resume { ptr, i32 } %17 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/ruby/optimized/dir.ll b/bench/ruby/optimized/dir.ll index 224b5889a54..d86a92fc241 100644 --- a/bench/ruby/optimized/dir.ll +++ b/bench/ruby/optimized/dir.ll @@ -4139,8 +4139,8 @@ define internal fastcc noundef ptr @find_dirsep(ptr noundef %0, ptr noundef %1, %.0.ph.us = phi i32 [ %.0.ph.be.us, %.outer.backedge.us ], [ 0, %4 ] br label %.backedge.us.us -.outer.backedge.us: ; preds = %.backedge.us.us, %.backedge.us.us, %.split39.us.us, %.split36.us.us, %.split.us.us - %.0.ph.be.us = phi i32 [ 0, %.split.us.us ], [ 0, %.split36.us.us ], [ 1, %.split39.us.us ], [ 1, %.backedge.us.us ], [ 1, %.backedge.us.us ] +.outer.backedge.us: ; preds = %.backedge.us.us, %.backedge.us.us, %.split34.us.us, %.split.us.us + %.0.ph.be.us = phi i32 [ 1, %.split34.us.us ], [ 0, %.split.us.us ], [ 1, %.backedge.us.us ], [ 1, %.backedge.us.us ] br label %.outer.us, !llvm.loop !63 .backedge.us.us: ; preds = %.backedge.us.us.backedge, %.outer.us @@ -4152,8 +4152,8 @@ define internal fastcc noundef ptr @find_dirsep(ptr noundef %0, ptr noundef %1, i8 91, label %.outer.backedge.us i8 93, label %.split.us.us i8 123, label %.outer.backedge.us - i8 125, label %.split36.us.us - i8 47, label %.split39.us.us + i8 125, label %.split.us.us + i8 47, label %.split34.us.us i8 92, label %8 ], !llvm.loop !63 @@ -4173,13 +4173,10 @@ define internal fastcc noundef ptr @find_dirsep(ptr noundef %0, ptr noundef %1, %14 = getelementptr i8, ptr %.014.us.us, i64 %13 br label %.backedge.us.us.backedge -.split.us.us: ; preds = %.backedge.us.us +.split.us.us: ; preds = %.backedge.us.us, %.backedge.us.us br label %.outer.backedge.us -.split36.us.us: ; preds = %.backedge.us.us - br label %.outer.backedge.us - -.split39.us.us: ; preds = %.backedge.us.us +.split34.us.us: ; preds = %.backedge.us.us %.not18.us = icmp eq i32 %.0.ph.us, 0 br i1 %.not18.us, label %.loopexit, label %.outer.backedge.us @@ -4195,22 +4192,22 @@ define internal fastcc noundef ptr @find_dirsep(ptr noundef %0, ptr noundef %1, switch i8 %17, label %18 [ i8 0, label %.loopexit i8 91, label %.outer.backedge - i8 93, label %.outer.backedge.loopexit114 + i8 93, label %.outer.backedge.loopexit98 i8 123, label %.outer.backedge - i8 125, label %.outer.backedge.loopexit114 - i8 47, label %.split39 + i8 125, label %.outer.backedge.loopexit98 + i8 47, label %.split34 i8 92, label %.backedge ], !llvm.loop !63 -.split39: ; preds = %15 +.split34: ; preds = %15 %.not18 = icmp eq i32 %.0.ph, 0 br i1 %.not18, label %.loopexit, label %.outer.backedge -.outer.backedge.loopexit114: ; preds = %15, %15 +.outer.backedge.loopexit98: ; preds = %15, %15 br label %.outer.backedge -.outer.backedge: ; preds = %15, %15, %.outer.backedge.loopexit114, %.split39 - %.0.ph.be = phi i32 [ 1, %.split39 ], [ 0, %.outer.backedge.loopexit114 ], [ 1, %15 ], [ 1, %15 ] +.outer.backedge: ; preds = %15, %15, %.outer.backedge.loopexit98, %.split34 + %.0.ph.be = phi i32 [ 1, %.split34 ], [ 0, %.outer.backedge.loopexit98 ], [ 1, %15 ], [ 1, %15 ] br label %.outer, !llvm.loop !63 .backedge: ; preds = %15, %18 @@ -4223,8 +4220,8 @@ define internal fastcc noundef ptr @find_dirsep(ptr noundef %0, ptr noundef %1, %21 = getelementptr i8, ptr %.014, i64 %20 br label %.backedge -.loopexit: ; preds = %.split39, %15, %.split39.us.us, %.backedge.us.us, %8 - %.013 = phi ptr [ %6, %8 ], [ %.014.us.us, %.backedge.us.us ], [ %.014.us.us, %.split39.us.us ], [ %.014, %15 ], [ %.014, %.split39 ] +.loopexit: ; preds = %.split34, %15, %.split34.us.us, %.backedge.us.us, %8 + %.013 = phi ptr [ %6, %8 ], [ %.014.us.us, %.backedge.us.us ], [ %.014.us.us, %.split34.us.us ], [ %.014, %15 ], [ %.014, %.split34 ] ret ptr %.013 } diff --git a/bench/ruby/optimized/signal.ll b/bench/ruby/optimized/signal.ll index 7c3d38e9fce..40ba8d49e80 100644 --- a/bench/ruby/optimized/signal.ll +++ b/bench/ruby/optimized/signal.ll @@ -2333,38 +2333,35 @@ declare i64 @rb_string_value(ptr noundef) local_unnamed_addr #2 ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable define internal fastcc noundef ptr @default_handler(i32 noundef %0) unnamed_addr #0 { - switch i32 %0, label %6 [ - i32 2, label %7 - i32 1, label %7 - i32 3, label %7 - i32 15, label %7 - i32 14, label %7 - i32 10, label %7 - i32 12, label %7 - i32 17, label %7 + switch i32 %0, label %5 [ + i32 2, label %6 + i32 1, label %6 + i32 3, label %6 + i32 15, label %6 + i32 14, label %6 + i32 10, label %6 + i32 12, label %6 + i32 17, label %6 i32 7, label %2 i32 11, label %3 i32 13, label %4 - i32 31, label %5 + i32 31, label %4 ] 2: ; preds = %1 - br label %7 + br label %6 3: ; preds = %1 - br label %7 + br label %6 -4: ; preds = %1 - br label %7 +4: ; preds = %1, %1 + br label %6 5: ; preds = %1 - br label %7 - -6: ; preds = %1 - br label %7 + br label %6 -7: ; preds = %1, %1, %1, %1, %1, %1, %1, %1, %6, %5, %4, %3, %2 - %.0 = phi ptr [ null, %6 ], [ @sig_do_nothing, %5 ], [ @sig_do_nothing, %4 ], [ @sigsegv, %3 ], [ @sigbus, %2 ], [ @sighandler, %1 ], [ @sighandler, %1 ], [ @sighandler, %1 ], [ @sighandler, %1 ], [ @sighandler, %1 ], [ @sighandler, %1 ], [ @sighandler, %1 ], [ @sighandler, %1 ] +6: ; preds = %1, %1, %1, %1, %1, %1, %1, %1, %5, %4, %3, %2 + %.0 = phi ptr [ null, %5 ], [ @sig_do_nothing, %4 ], [ @sigsegv, %3 ], [ @sigbus, %2 ], [ @sighandler, %1 ], [ @sighandler, %1 ], [ @sighandler, %1 ], [ @sighandler, %1 ], [ @sighandler, %1 ], [ @sighandler, %1 ], [ @sighandler, %1 ], [ @sighandler, %1 ] ret ptr %.0 } diff --git a/bench/rust-analyzer-rs/optimized/3j0nbdwupb3iwt86.ll b/bench/rust-analyzer-rs/optimized/3j0nbdwupb3iwt86.ll index d68a3d82b22..1469ea4a572 100644 --- a/bench/rust-analyzer-rs/optimized/3j0nbdwupb3iwt86.ll +++ b/bench/rust-analyzer-rs/optimized/3j0nbdwupb3iwt86.ll @@ -4387,8 +4387,8 @@ define internal fastcc noundef zeroext i1 @"_ZN116_$LT$core..iter..adapters..fla define hidden noundef nonnull align 4 dereferenceable(20) ptr @"_ZN2tt13Leaf$LT$S$GT$4span17h02f463e9805de0d2E"(ptr noalias noundef readonly align 8 dereferenceable(56) %0) unnamed_addr #4 { %2 = load i32, ptr %0, align 8, !range !1608, !noundef !30 %switch = icmp eq i32 %2, 1 - %spec.select = select i1 %switch, i64 8, i64 32 - %3 = getelementptr inbounds i8, ptr %0, i64 %spec.select + %. = select i1 %switch, i64 8, i64 32 + %3 = getelementptr inbounds i8, ptr %0, i64 %. ret ptr %3 } @@ -4561,8 +4561,8 @@ define hidden void @"_ZN2tt18TokenTree$LT$S$GT$10first_span17h8b3e70e04c7b5099E" %5 = icmp eq i8 %4, 4 %6 = load i32, ptr %1, align 8, !range !1608 %switch.i = icmp eq i32 %6, 1 - %spec.select.i = select i1 %switch.i, i64 8, i64 32 - %.sink1 = select i1 %5, i64 %spec.select.i, i64 16 + %..i = select i1 %switch.i, i64 8, i64 32 + %.sink1 = select i1 %5, i64 %..i, i64 16 %7 = getelementptr inbounds i8, ptr %1, i64 %.sink1 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %0, ptr noundef nonnull align 8 dereferenceable(20) %7, i64 20, i1 false) ret void @@ -6471,8 +6471,8 @@ default.unreachable: ; preds = %100 %186 = icmp eq i8 %185, 4 %187 = load i32, ptr %155, align 8, !range !1608, !alias.scope !1925, !noalias !1922 %switch.i.i = icmp eq i32 %187, 1 - %spec.select.i.i = select i1 %switch.i.i, i64 8, i64 32 - %.sink1.i = select i1 %186, i64 %spec.select.i.i, i64 16 + %..i.i = select i1 %switch.i.i, i64 8, i64 32 + %.sink1.i = select i1 %186, i64 %..i.i, i64 16 %188 = getelementptr inbounds i8, ptr %155, i64 %.sink1.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %14, ptr noundef nonnull readonly align 8 dereferenceable(20) %188, i64 20, i1 false), !alias.scope !1927 call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.026, ptr noundef nonnull align 8 dereferenceable(20) %188, i64 20, i1 false) @@ -20667,11 +20667,11 @@ define noundef i64 @_ZN10hir_expand8mod_path7ModPath3len17h6629c842d1c4591bE(ptr %5 = load i64, ptr %4, align 8, !alias.scope !4877, !noalias !4880 %6 = load i8, ptr %0, align 8, !range !39, !noundef !30 switch i8 %6, label %default.unreachable1 [ - i8 0, label %13 + i8 0, label %12 i8 1, label %7 i8 2, label %11 - i8 3, label %13 - i8 4, label %12 + i8 3, label %12 + i8 4, label %11 ] default.unreachable1: ; preds = %1 @@ -20681,20 +20681,17 @@ default.unreachable1: ; preds = %1 %8 = getelementptr inbounds i8, ptr %0, i64 1 %9 = load i8, ptr %8, align 1, !noundef !30 %10 = zext i8 %9 to i64 - br label %13 - -11: ; preds = %1 - br label %13 + br label %12 -12: ; preds = %1 - br label %13 +11: ; preds = %1, %1 + br label %12 -13: ; preds = %1, %1, %12, %11, %7 - %.0 = phi i64 [ 1, %12 ], [ 1, %11 ], [ %10, %7 ], [ 0, %1 ], [ 0, %1 ] - %14 = icmp ugt i64 %3, 1 - %.sink4.i = select i1 %14, i64 %5, i64 %3 - %15 = add i64 %.0, %.sink4.i - ret i64 %15 +12: ; preds = %1, %1, %11, %7 + %.0 = phi i64 [ 1, %11 ], [ %10, %7 ], [ 0, %1 ], [ 0, %1 ] + %13 = icmp ugt i64 %3, 1 + %.sink4.i = select i1 %13, i64 %5, i64 %3 + %14 = add i64 %.0, %.sink4.i + ret i64 %14 } ; Function Attrs: nofree norecurse nosync nounwind nonlazybind memory(read, inaccessiblemem: none) uwtable diff --git a/bench/rust-analyzer-rs/optimized/68ytxs4wk5ncclk.ll b/bench/rust-analyzer-rs/optimized/68ytxs4wk5ncclk.ll index f032eb9c99f..182aa1b1375 100644 --- a/bench/rust-analyzer-rs/optimized/68ytxs4wk5ncclk.ll +++ b/bench/rust-analyzer-rs/optimized/68ytxs4wk5ncclk.ll @@ -75632,16 +75632,11 @@ define hidden noundef nonnull ptr @"_ZN8chalk_ir13Goal$LT$I$GT$3all17h65c04036d2 ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(read, inaccessiblemem: none) uwtable define hidden noundef zeroext i1 @"_ZN8chalk_ir14Const$LT$I$GT$11needs_shift17hcf1ae1347827c523E"(ptr noalias nocapture noundef readonly align 8 dereferenceable(8) %0) unnamed_addr #7 { -switch.lookup: - %1 = load ptr, ptr %0, align 8, !alias.scope !18870, !nonnull !14, !noundef !14 - %2 = getelementptr inbounds i8, ptr %1, i64 8 - %3 = load i64, ptr %2, align 8, !range !3160, !noundef !14 - %4 = add nsw i64 %3, -5 - %5 = tail call i64 @llvm.umin.i64(i64 %4, i64 3) - %switch.cast = trunc nuw nsw i64 %5 to i4 - %switch.downshift = lshr i4 1, %switch.cast - %switch.masked = trunc nuw i4 %switch.downshift to i1 - ret i1 %switch.masked + %2 = load ptr, ptr %0, align 8, !alias.scope !18870, !nonnull !14, !noundef !14 + %3 = getelementptr inbounds i8, ptr %2, i64 8 + %4 = load i64, ptr %3, align 8, !range !3160, !noundef !14 + %switch = icmp eq i64 %4, 5 + ret i1 %switch } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(read, inaccessiblemem: none) uwtable @@ -88615,14 +88610,11 @@ define hidden void @"_ZN8chalk_ir16Binders$LT$T$GT$7map_ref17hf84ce72cc94c5fc0E" ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(read, inaccessiblemem: none) uwtable define hidden noundef zeroext i1 @"_ZN8chalk_ir17Lifetime$LT$I$GT$11needs_shift17h4132134777889eccE"(ptr noalias nocapture noundef readonly align 8 dereferenceable(8) %0) unnamed_addr #7 { -switch.lookup: - %1 = load ptr, ptr %0, align 8, !alias.scope !22471, !nonnull !14, !noundef !14 - %2 = getelementptr inbounds i8, ptr %1, i64 8 - %3 = load i32, ptr %2, align 8, !range !3230, !noundef !14 - %switch.cast = trunc nuw nsw i32 %3 to i7 - %switch.downshift = lshr i7 33, %switch.cast - %switch.masked = trunc i7 %switch.downshift to i1 - ret i1 %switch.masked + %2 = load ptr, ptr %0, align 8, !alias.scope !22471, !nonnull !14, !noundef !14 + %3 = getelementptr inbounds i8, ptr %2, i64 8 + %4 = load i32, ptr %3, align 8, !range !3230, !noundef !14 + %switch = icmp eq i32 %4, 0 + ret i1 %switch } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(read, inaccessiblemem: none) uwtable diff --git a/bench/rustfmt-rs/optimized/2vbyym84o66crvo9.ll b/bench/rustfmt-rs/optimized/2vbyym84o66crvo9.ll index 4743deea7ea..181b8971e29 100644 --- a/bench/rustfmt-rs/optimized/2vbyym84o66crvo9.ll +++ b/bench/rustfmt-rs/optimized/2vbyym84o66crvo9.ll @@ -12609,9 +12609,9 @@ define void @_ZN15rustfmt_nightly10formatting13newline_style19apply_newline_styl call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) switch i8 %0, label %7 [ i8 0, label %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit - i8 1, label %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit.thread7 - i8 2, label %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit.thread - i8 3, label %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit.thread + i8 1, label %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit.thread + i8 2, label %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit.thread7 + i8 3, label %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit.thread7 ] 7: ; preds = %4 @@ -12619,13 +12619,13 @@ define void @_ZN15rustfmt_nightly10formatting13newline_style19apply_newline_styl _ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit: ; preds = %4 %8 = tail call noundef zeroext i1 @_ZN15rustfmt_nightly10formatting13newline_style25auto_detect_newline_style17h74c9cfedaab8cf46E.llvm.7442130522521287225(ptr noalias noundef nonnull readonly align 1 %2, i64 noundef %3) - br i1 %8, label %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit.thread, label %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit.thread7 + br i1 %8, label %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit.thread7, label %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit.thread -_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit.thread7: ; preds = %4, %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit +_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit.thread: ; preds = %4, %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit call void @_ZN15rustfmt_nightly10formatting13newline_style27convert_to_windows_newlines17h31118352e8fc6c04E.llvm.7442130522521287225(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr }, i64 } }) align 8 dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %1) br label %13 -_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit.thread: ; preds = %4, %4, %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit +_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit.thread7: ; preds = %4, %4, %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit %9 = getelementptr inbounds i8, ptr %1, i64 8 %10 = load ptr, ptr %9, align 8, !nonnull !10, !noundef !10 %11 = getelementptr inbounds i8, ptr %1, i64 16 @@ -12633,7 +12633,7 @@ _ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e26 call void @"_ZN5alloc3str21_$LT$impl$u20$str$GT$7replace17h928866d5a7fc9a3eE.llvm.7442130522521287225"(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr }, i64 } }) align 8 dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 1 %10, i64 noundef %12, ptr noalias noundef nonnull readonly align 1 @anon.baa956cfa16a1a4d76c0816b6b0648a8.350.llvm.7442130522521287225, i64 noundef 2, ptr noalias noundef nonnull readonly align 1 @anon.baa956cfa16a1a4d76c0816b6b0648a8.363.llvm.7442130522521287225, i64 noundef 1) br label %13 -13: ; preds = %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit.thread, %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit.thread7 +13: ; preds = %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit.thread7, %_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225.exit.thread call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5), !noalias !1827 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h8f466af1321eaceaE.llvm.17249484671449717553"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %1) to label %.noexc unwind label %22 @@ -12672,9 +12672,9 @@ _ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e26 define hidden noundef zeroext i1 @_ZN15rustfmt_nightly10formatting13newline_style23effective_newline_style17h98e266382f068c28E.llvm.7442130522521287225(i8 noundef %0, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) unnamed_addr #3 { switch i8 %0, label %4 [ i8 0, label %5 - i8 1, label %9 + i8 1, label %8 i8 2, label %7 - i8 3, label %8 + i8 3, label %7 ] 4: ; preds = %3 @@ -12682,16 +12682,13 @@ define hidden noundef zeroext i1 @_ZN15rustfmt_nightly10formatting13newline_styl 5: ; preds = %3 %6 = tail call noundef zeroext i1 @_ZN15rustfmt_nightly10formatting13newline_style25auto_detect_newline_style17h74c9cfedaab8cf46E.llvm.7442130522521287225(ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) - br label %9 - -7: ; preds = %3 - br label %9 + br label %8 -8: ; preds = %3 - br label %9 +7: ; preds = %3, %3 + br label %8 -9: ; preds = %3, %8, %7, %5 - %.0 = phi i1 [ true, %8 ], [ true, %7 ], [ %6, %5 ], [ false, %3 ] +8: ; preds = %3, %7, %5 + %.0 = phi i1 [ true, %7 ], [ %6, %5 ], [ false, %3 ] ret i1 %.0 } diff --git a/bench/sentencepiece/optimized/strutil.cc.ll b/bench/sentencepiece/optimized/strutil.cc.ll index 10ce7eb6e9e..4b5e7ce2cfe 100644 --- a/bench/sentencepiece/optimized/strutil.cc.ll +++ b/bench/sentencepiece/optimized/strutil.cc.ll @@ -820,20 +820,20 @@ define noundef i32 @_ZN6google8protobuf24UnescapeCEscapeSequencesEPKcPcPSt6vecto %.153.ph = phi ptr [ %0, %3 ], [ %7, %6 ], [ %.05279, %.lr.ph ], [ %.05279, %.lr.ph ] br label %.critedge -.critedge: ; preds = %.critedge.preheader, %51 - %.155 = phi ptr [ %.256, %51 ], [ %.155.ph, %.critedge.preheader ] - %.153 = phi ptr [ %.2, %51 ], [ %.153.ph, %.critedge.preheader ] +.critedge: ; preds = %.critedge.preheader, %48 + %.155 = phi ptr [ %.256, %48 ], [ %.155.ph, %.critedge.preheader ] + %.153 = phi ptr [ %.2, %48 ], [ %.153.ph, %.critedge.preheader ] %10 = load i8, ptr %.153, align 1 switch i8 %10, label %.sink.split [ - i8 0, label %52 + i8 0, label %49 i8 92, label %11 ] 11: ; preds = %.critedge %12 = getelementptr inbounds i8, ptr %.153, i64 1 %13 = load i8, ptr %12, align 1 - switch i8 %13, label %51 [ - i8 0, label %52 + switch i8 %13, label %48 [ + i8 0, label %49 i8 97, label %.sink.split i8 98, label %14 i8 102, label %15 @@ -842,19 +842,19 @@ define noundef i32 @_ZN6google8protobuf24UnescapeCEscapeSequencesEPKcPcPSt6vecto i8 116, label %18 i8 118, label %19 i8 92, label %20 - i8 63, label %21 - i8 39, label %22 - i8 34, label %23 - i8 48, label %24 - i8 49, label %24 - i8 50, label %24 - i8 51, label %24 - i8 52, label %24 - i8 53, label %24 - i8 54, label %24 - i8 55, label %24 - i8 120, label %38 - i8 88, label %38 + i8 63, label %20 + i8 39, label %20 + i8 34, label %20 + i8 48, label %21 + i8 49, label %21 + i8 50, label %21 + i8 51, label %21 + i8 52, label %21 + i8 53, label %21 + i8 54, label %21 + i8 55, label %21 + i8 120, label %35 + i8 88, label %35 ] 14: ; preds = %11 @@ -875,50 +875,41 @@ define noundef i32 @_ZN6google8protobuf24UnescapeCEscapeSequencesEPKcPcPSt6vecto 19: ; preds = %11 br label %.sink.split -20: ; preds = %11 +20: ; preds = %11, %11, %11, %11 br label %.sink.split -21: ; preds = %11 +21: ; preds = %11, %11, %11, %11, %11, %11, %11, %11 + %22 = add nsw i8 %13, -48 + %23 = getelementptr inbounds i8, ptr %.153, i64 2 + %24 = load i8, ptr %23, align 1 + %25 = and i8 %24, -8 + %or.cond = icmp eq i8 %25, 48 + %26 = shl nuw nsw i8 %22, 3 + %27 = add nsw i8 %26, -48 + %28 = add i8 %27, %24 + %.4 = select i1 %or.cond, ptr %23, ptr %12 + %.051 = select i1 %or.cond, i8 %28, i8 %22 + %29 = getelementptr inbounds i8, ptr %.4, i64 1 + %30 = load i8, ptr %29, align 1 + %31 = and i8 %30, -8 + %or.cond65 = icmp eq i8 %31, 48 + %32 = shl i8 %.051, 3 + %33 = add i8 %30, -48 + %34 = add i8 %33, %32 + %.5 = select i1 %or.cond65, ptr %29, ptr %.4 + %.1 = select i1 %or.cond65, i8 %34, i8 %.051 br label %.sink.split -22: ; preds = %11 - br label %.sink.split - -23: ; preds = %11 - br label %.sink.split - -24: ; preds = %11, %11, %11, %11, %11, %11, %11, %11 - %25 = add nsw i8 %13, -48 - %26 = getelementptr inbounds i8, ptr %.153, i64 2 - %27 = load i8, ptr %26, align 1 - %28 = and i8 %27, -8 - %or.cond = icmp eq i8 %28, 48 - %29 = shl nuw nsw i8 %25, 3 - %30 = add nsw i8 %29, -48 - %31 = add i8 %30, %27 - %.4 = select i1 %or.cond, ptr %26, ptr %12 - %.051 = select i1 %or.cond, i8 %31, i8 %25 - %32 = getelementptr inbounds i8, ptr %.4, i64 1 - %33 = load i8, ptr %32, align 1 - %34 = and i8 %33, -8 - %or.cond65 = icmp eq i8 %34, 48 - %35 = shl i8 %.051, 3 - %36 = add i8 %33, -48 - %37 = add i8 %36, %35 - %.5 = select i1 %or.cond65, ptr %32, ptr %.4 - %.1 = select i1 %or.cond65, i8 %37, i8 %.051 - br label %.sink.split - -38: ; preds = %11, %11 - %39 = getelementptr inbounds i8, ptr %.153, i64 2 - %40 = load i8, ptr %39, align 1 - %.fr75 = freeze i8 %40 - %41 = add i8 %.fr75, -48 - %or.cond.i = icmp ult i8 %41, 10 +35: ; preds = %11, %11 + %36 = getelementptr inbounds i8, ptr %.153, i64 2 + %37 = load i8, ptr %36, align 1 + %.fr75 = freeze i8 %37 + %38 = add i8 %.fr75, -48 + %or.cond.i = icmp ult i8 %38, 10 br i1 %or.cond.i, label %_ZN6google8protobuf8isxdigitEc.exit.preheader, label %switch.early.test74 -switch.early.test74: ; preds = %38 - switch i8 %.fr75, label %51 [ +switch.early.test74: ; preds = %35 + switch i8 %.fr75, label %48 [ i8 102, label %_ZN6google8protobuf8isxdigitEc.exit.preheader i8 101, label %_ZN6google8protobuf8isxdigitEc.exit.preheader i8 100, label %_ZN6google8protobuf8isxdigitEc.exit.preheader @@ -933,17 +924,17 @@ switch.early.test74: ; preds = %38 i8 65, label %_ZN6google8protobuf8isxdigitEc.exit.preheader ] -_ZN6google8protobuf8isxdigitEc.exit.preheader: ; preds = %38, %switch.early.test74, %switch.early.test74, %switch.early.test74, %switch.early.test74, %switch.early.test74, %switch.early.test74, %switch.early.test74, %switch.early.test74, %switch.early.test74, %switch.early.test74, %switch.early.test74, %switch.early.test74 +_ZN6google8protobuf8isxdigitEc.exit.preheader: ; preds = %35, %switch.early.test74, %switch.early.test74, %switch.early.test74, %switch.early.test74, %switch.early.test74, %switch.early.test74, %switch.early.test74, %switch.early.test74, %switch.early.test74, %switch.early.test74, %switch.early.test74, %switch.early.test74 br label %_ZN6google8protobuf8isxdigitEc.exit _ZN6google8protobuf8isxdigitEc.exit: ; preds = %_ZN6google8protobuf8isxdigitEc.exit.preheader, %_ZN6google8protobuf8isxdigitEc.exit69.thread - %.6 = phi ptr [ %42, %_ZN6google8protobuf8isxdigitEc.exit69.thread ], [ %12, %_ZN6google8protobuf8isxdigitEc.exit.preheader ] - %.050 = phi i8 [ %49, %_ZN6google8protobuf8isxdigitEc.exit69.thread ], [ 0, %_ZN6google8protobuf8isxdigitEc.exit.preheader ] - %42 = getelementptr inbounds i8, ptr %.6, i64 1 - %43 = load i8, ptr %42, align 1 - %.fr76 = freeze i8 %43 - %44 = add i8 %.fr76, -48 - %or.cond.i66 = icmp ult i8 %44, 10 + %.6 = phi ptr [ %39, %_ZN6google8protobuf8isxdigitEc.exit69.thread ], [ %12, %_ZN6google8protobuf8isxdigitEc.exit.preheader ] + %.050 = phi i8 [ %46, %_ZN6google8protobuf8isxdigitEc.exit69.thread ], [ 0, %_ZN6google8protobuf8isxdigitEc.exit.preheader ] + %39 = getelementptr inbounds i8, ptr %.6, i64 1 + %40 = load i8, ptr %39, align 1 + %.fr76 = freeze i8 %40 + %41 = add i8 %.fr76, -48 + %or.cond.i66 = icmp ult i8 %41, 10 br i1 %or.cond.i66, label %_ZN6google8protobuf8isxdigitEc.exit69.thread, label %switch.early.test switch.early.test: ; preds = %_ZN6google8protobuf8isxdigitEc.exit @@ -963,33 +954,33 @@ switch.early.test: ; preds = %_ZN6google8protobuf ] _ZN6google8protobuf8isxdigitEc.exit69.thread: ; preds = %switch.early.test, %switch.early.test, %switch.early.test, %switch.early.test, %switch.early.test, %switch.early.test, %switch.early.test, %switch.early.test, %switch.early.test, %switch.early.test, %switch.early.test, %switch.early.test, %_ZN6google8protobuf8isxdigitEc.exit - %45 = shl i8 %.050, 4 - %46 = icmp ugt i8 %.fr76, 57 - %47 = add nuw nsw i8 %.fr76, 9 - %spec.select.i = select i1 %46, i8 %47, i8 %.fr76 - %48 = and i8 %spec.select.i, 15 - %49 = or disjoint i8 %48, %45 + %42 = shl i8 %.050, 4 + %43 = icmp ugt i8 %.fr76, 57 + %44 = add nuw nsw i8 %.fr76, 9 + %spec.select.i = select i1 %43, i8 %44, i8 %.fr76 + %45 = and i8 %spec.select.i, 15 + %46 = or disjoint i8 %45, %42 br label %_ZN6google8protobuf8isxdigitEc.exit, !llvm.loop !16 -.sink.split: ; preds = %switch.early.test, %11, %.critedge, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14 - %.sink = phi i8 [ 8, %14 ], [ 12, %15 ], [ 10, %16 ], [ 13, %17 ], [ 9, %18 ], [ 11, %19 ], [ %13, %20 ], [ %13, %21 ], [ %13, %22 ], [ %13, %23 ], [ %.1, %24 ], [ %10, %.critedge ], [ 7, %11 ], [ %.050, %switch.early.test ] - %.153.pn.ph = phi ptr [ %12, %14 ], [ %12, %15 ], [ %12, %16 ], [ %12, %17 ], [ %12, %18 ], [ %12, %19 ], [ %12, %20 ], [ %12, %21 ], [ %12, %22 ], [ %12, %23 ], [ %.5, %24 ], [ %.153, %.critedge ], [ %12, %11 ], [ %.6, %switch.early.test ] - %50 = getelementptr inbounds i8, ptr %.155, i64 1 +.sink.split: ; preds = %switch.early.test, %11, %.critedge, %21, %20, %19, %18, %17, %16, %15, %14 + %.sink = phi i8 [ 8, %14 ], [ 12, %15 ], [ 10, %16 ], [ 13, %17 ], [ 9, %18 ], [ 11, %19 ], [ %13, %20 ], [ %.1, %21 ], [ %10, %.critedge ], [ 7, %11 ], [ %.050, %switch.early.test ] + %.153.pn.ph = phi ptr [ %12, %14 ], [ %12, %15 ], [ %12, %16 ], [ %12, %17 ], [ %12, %18 ], [ %12, %19 ], [ %12, %20 ], [ %.5, %21 ], [ %.153, %.critedge ], [ %12, %11 ], [ %.6, %switch.early.test ] + %47 = getelementptr inbounds i8, ptr %.155, i64 1 store i8 %.sink, ptr %.155, align 1 - br label %51 + br label %48 -51: ; preds = %.sink.split, %switch.early.test74, %11 - %.256 = phi ptr [ %.155, %11 ], [ %.155, %switch.early.test74 ], [ %50, %.sink.split ] +48: ; preds = %.sink.split, %switch.early.test74, %11 + %.256 = phi ptr [ %.155, %11 ], [ %.155, %switch.early.test74 ], [ %47, %.sink.split ] %.153.pn = phi ptr [ %12, %11 ], [ %12, %switch.early.test74 ], [ %.153.pn.ph, %.sink.split ] %.2 = getelementptr inbounds i8, ptr %.153.pn, i64 1 br label %.critedge, !llvm.loop !17 -52: ; preds = %.critedge, %11 +49: ; preds = %.critedge, %11 store i8 0, ptr %.155, align 1 - %53 = ptrtoint ptr %.155 to i64 - %54 = ptrtoint ptr %1 to i64 - %55 = sub i64 %53, %54 - %.0 = trunc i64 %55 to i32 + %50 = ptrtoint ptr %.155 to i64 + %51 = ptrtoint ptr %1 to i64 + %52 = sub i64 %50, %51 + %.0 = trunc i64 %52 to i32 ret i32 %.0 } diff --git a/bench/slurm/optimized/serializer_yaml.ll b/bench/slurm/optimized/serializer_yaml.ll index 877b643037a..f50c16e0648 100644 --- a/bench/slurm/optimized/serializer_yaml.ll +++ b/bench/slurm/optimized/serializer_yaml.ll @@ -870,18 +870,18 @@ define internal fastcc range(i32 2, 6) i32 @_on_parse_event(i32 noundef %0, ptr br i1 %7, label %9, label %thread-pre-split 9: ; preds = %5 - switch i32 %8, label %79 [ + switch i32 %8, label %76 [ i32 6, label %10 i32 7, label %10 i32 9, label %10 i32 0, label %common.ret4 i32 3, label %23 - i32 1, label %24 - i32 4, label %25 + i32 1, label %23 + i32 4, label %23 i32 2, label %common.ret4 - i32 5, label %26 - i32 8, label %71 - i32 10, label %78 + i32 5, label %24 + i32 8, label %69 + i32 10, label %69 ] 10: ; preds = %9, %9, %9 @@ -900,8 +900,8 @@ define internal fastcc range(i32 2, 6) i32 @_on_parse_event(i32 noundef %0, ptr tail call void (i32, ptr, ...) @slurm_log_var(i32 noundef 4, ptr noundef nonnull @.str.38, ptr noundef nonnull @plugin_type, ptr noundef nonnull @__func__._on_parse_event, ptr noundef %3, ptr noundef %11) #6 br label %18 -common.ret4: ; preds = %64, %62, %_yaml_tag_to_type.exit, %41, %_yaml_tag_to_type.exit.thread, %thread-pre-split, %thread-pre-split, %78, %72, %71, %65, %26, %25, %24, %23, %9, %9, %18 - %common.ret4.op = phi i32 [ %22, %18 ], [ 3, %78 ], [ %77, %72 ], [ 3, %71 ], [ %70, %65 ], [ 5, %26 ], [ 2, %25 ], [ 2, %24 ], [ 2, %23 ], [ 4, %thread-pre-split ], [ 4, %thread-pre-split ], [ %43, %41 ], [ 5, %64 ], [ 3, %62 ], [ 3, %_yaml_tag_to_type.exit ], [ 3, %_yaml_tag_to_type.exit.thread ], [ 4, %9 ], [ 4, %9 ] +common.ret4: ; preds = %62, %60, %_yaml_tag_to_type.exit, %39, %_yaml_tag_to_type.exit.thread, %thread-pre-split, %thread-pre-split, %70, %69, %63, %24, %23, %9, %9, %18 + %common.ret4.op = phi i32 [ %22, %18 ], [ %75, %70 ], [ 3, %69 ], [ %68, %63 ], [ 5, %24 ], [ 2, %23 ], [ 4, %thread-pre-split ], [ 4, %thread-pre-split ], [ %41, %39 ], [ 5, %62 ], [ 3, %60 ], [ 3, %_yaml_tag_to_type.exit ], [ 3, %_yaml_tag_to_type.exit.thread ], [ 4, %9 ], [ 4, %9 ] ret i32 %common.ret4.op 18: ; preds = %10, %14, %17 @@ -912,143 +912,134 @@ common.ret4: ; preds = %64, %62, %_yaml_tag br label %common.ret4 thread-pre-split: ; preds = %5 - switch i32 %8, label %79 [ + switch i32 %8, label %76 [ i32 0, label %common.ret4 i32 3, label %23 - i32 1, label %24 - i32 4, label %25 + i32 1, label %23 + i32 4, label %23 i32 2, label %common.ret4 - i32 5, label %26 - i32 6, label %28 - i32 7, label %65 - i32 8, label %71 - i32 9, label %72 - i32 10, label %78 + i32 5, label %24 + i32 6, label %26 + i32 7, label %63 + i32 8, label %69 + i32 9, label %70 + i32 10, label %69 ] -23: ; preds = %9, %thread-pre-split +23: ; preds = %9, %9, %9, %thread-pre-split, %thread-pre-split, %thread-pre-split br label %common.ret4 24: ; preds = %9, %thread-pre-split - br label %common.ret4 - -25: ; preds = %9, %thread-pre-split - br label %common.ret4 - -26: ; preds = %9, %thread-pre-split - %27 = tail call i32 (ptr, ...) @slurm_error(ptr noundef nonnull @.str.39, ptr noundef nonnull @__func__._on_parse_event) #6 + %25 = tail call i32 (ptr, ...) @slurm_error(ptr noundef nonnull @.str.39, ptr noundef nonnull @__func__._on_parse_event) #6 store i32 2036, ptr %4, align 4 br label %common.ret4 -28: ; preds = %thread-pre-split - %29 = getelementptr inbounds i8, ptr %2, i64 24 - %30 = load ptr, ptr %29, align 8 - %31 = tail call i32 @data_get_type(ptr noundef %3) #6 - %32 = icmp eq i32 %31, 3 - br i1 %32, label %33, label %44 - -33: ; preds = %28 - %34 = tail call ptr @data_key_set(ptr noundef %3, ptr noundef %30) #6 - %35 = load i64, ptr getelementptr inbounds (i8, ptr @slurm_conf, i64 288), align 8 - %36 = and i64 %35, 256 - %.not21.i = icmp eq i64 %36, 0 - br i1 %.not21.i, label %41, label %37 - -37: ; preds = %33 - %38 = tail call i32 @slurm_get_log_level() #6 - %39 = icmp sgt i32 %38, 3 - br i1 %39, label %40, label %41 - -40: ; preds = %37 - tail call void (i32, ptr, ...) @slurm_log_var(i32 noundef 4, ptr noundef nonnull @.str.41, ptr noundef nonnull @plugin_type, ptr noundef nonnull @__func__._on_parse_scalar, ptr noundef %3, ptr noundef %30, ptr noundef %34) #6 - br label %41 - -41: ; preds = %40, %37, %33 - %42 = add nsw i32 %0, 1 - %43 = tail call fastcc i32 @_yaml_to_data(i32 noundef %42, ptr noundef nonnull %1, ptr noundef %34, ptr noundef nonnull %4) +26: ; preds = %thread-pre-split + %27 = getelementptr inbounds i8, ptr %2, i64 24 + %28 = load ptr, ptr %27, align 8 + %29 = tail call i32 @data_get_type(ptr noundef %3) #6 + %30 = icmp eq i32 %29, 3 + br i1 %30, label %31, label %42 + +31: ; preds = %26 + %32 = tail call ptr @data_key_set(ptr noundef %3, ptr noundef %28) #6 + %33 = load i64, ptr getelementptr inbounds (i8, ptr @slurm_conf, i64 288), align 8 + %34 = and i64 %33, 256 + %.not21.i = icmp eq i64 %34, 0 + br i1 %.not21.i, label %39, label %35 + +35: ; preds = %31 + %36 = tail call i32 @slurm_get_log_level() #6 + %37 = icmp sgt i32 %36, 3 + br i1 %37, label %38, label %39 + +38: ; preds = %35 + tail call void (i32, ptr, ...) @slurm_log_var(i32 noundef 4, ptr noundef nonnull @.str.41, ptr noundef nonnull @plugin_type, ptr noundef nonnull @__func__._on_parse_scalar, ptr noundef %3, ptr noundef %28, ptr noundef %32) #6 + br label %39 + +39: ; preds = %38, %35, %31 + %40 = add nsw i32 %0, 1 + %41 = tail call fastcc i32 @_yaml_to_data(i32 noundef %40, ptr noundef nonnull %1, ptr noundef %32, ptr noundef nonnull %4) br label %common.ret4 -44: ; preds = %28 - %45 = getelementptr i8, ptr %2, i64 16 - %.val.i = load ptr, ptr %45, align 8 +42: ; preds = %26 + %43 = getelementptr i8, ptr %2, i64 16 + %.val.i = load ptr, ptr %43, align 8 %.not.i38 = icmp eq ptr %.val.i, null - br i1 %.not.i38, label %_yaml_tag_to_type.exit.thread, label %46 + br i1 %.not.i38, label %_yaml_tag_to_type.exit.thread, label %44 + +44: ; preds = %42 + %45 = load i8, ptr %.val.i, align 1 + %.not14.i = icmp eq i8 %45, 0 + br i1 %.not14.i, label %_yaml_tag_to_type.exit.thread, label %46 46: ; preds = %44 - %47 = load i8, ptr %.val.i, align 1 - %.not14.i = icmp eq i8 %47, 0 - br i1 %.not14.i, label %_yaml_tag_to_type.exit.thread, label %48 - -48: ; preds = %46 - %49 = load i64, ptr getelementptr inbounds (i8, ptr @slurm_conf, i64 288), align 8 - %50 = and i64 %49, 256 - %.not15.i = icmp eq i64 %50, 0 - br i1 %.not15.i, label %.preheader, label %51 - -51: ; preds = %48 - %52 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.val.i) #7 - tail call void (ptr, i64, i64, i64, ptr, ...) @_log_flag_hex(ptr noundef nonnull %.val.i, i64 noundef %52, i64 noundef -1, i64 noundef -1, ptr noundef nonnull @.str.42, ptr noundef nonnull @__func__._on_parse_scalar) #6 + %47 = load i64, ptr getelementptr inbounds (i8, ptr @slurm_conf, i64 288), align 8 + %48 = and i64 %47, 256 + %.not15.i = icmp eq i64 %48, 0 + br i1 %.not15.i, label %.preheader, label %49 + +49: ; preds = %46 + %50 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.val.i) #7 + tail call void (ptr, i64, i64, i64, ptr, ...) @_log_flag_hex(ptr noundef nonnull %.val.i, i64 noundef %50, i64 noundef -1, i64 noundef -1, ptr noundef nonnull @.str.42, ptr noundef nonnull @__func__._on_parse_scalar) #6 br label %.preheader -.preheader: ; preds = %51, %48 - br label %54 +.preheader: ; preds = %49, %46 + br label %52 -53: ; preds = %54 +51: ; preds = %52 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, 7 - br i1 %exitcond.not.i, label %_yaml_tag_to_type.exit.thread, label %54, !llvm.loop !9 - -54: ; preds = %.preheader, %53 - %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %53 ], [ 0, %.preheader ] - %55 = getelementptr inbounds [7 x %struct.anon.30], ptr @tags, i64 0, i64 %indvars.iv.i - %56 = getelementptr inbounds i8, ptr %55, i64 16 - %57 = load ptr, ptr %56, align 8 - %58 = tail call i32 @slurm_xstrcmp(ptr noundef %57, ptr noundef nonnull %.val.i) #6 - %.not16.i = icmp eq i32 %58, 0 - br i1 %.not16.i, label %_yaml_tag_to_type.exit, label %53 - -_yaml_tag_to_type.exit.thread: ; preds = %53, %46, %44 - %59 = tail call ptr @data_set_string(ptr noundef %3, ptr noundef %30) #6 + br i1 %exitcond.not.i, label %_yaml_tag_to_type.exit.thread, label %52, !llvm.loop !9 + +52: ; preds = %.preheader, %51 + %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %51 ], [ 0, %.preheader ] + %53 = getelementptr inbounds [7 x %struct.anon.30], ptr @tags, i64 0, i64 %indvars.iv.i + %54 = getelementptr inbounds i8, ptr %53, i64 16 + %55 = load ptr, ptr %54, align 8 + %56 = tail call i32 @slurm_xstrcmp(ptr noundef %55, ptr noundef nonnull %.val.i) #6 + %.not16.i = icmp eq i32 %56, 0 + br i1 %.not16.i, label %_yaml_tag_to_type.exit, label %51 + +_yaml_tag_to_type.exit.thread: ; preds = %51, %44, %42 + %57 = tail call ptr @data_set_string(ptr noundef %3, ptr noundef %28) #6 br label %common.ret4 -_yaml_tag_to_type.exit: ; preds = %54 - %60 = load i32, ptr %55, align 8 - %61 = tail call ptr @data_set_string(ptr noundef %3, ptr noundef %30) #6 - %.not.i = icmp eq i32 %60, 0 - br i1 %.not.i, label %common.ret4, label %62 +_yaml_tag_to_type.exit: ; preds = %52 + %58 = load i32, ptr %53, align 8 + %59 = tail call ptr @data_set_string(ptr noundef %3, ptr noundef %28) #6 + %.not.i = icmp eq i32 %58, 0 + br i1 %.not.i, label %common.ret4, label %60 -62: ; preds = %_yaml_tag_to_type.exit - %63 = tail call i32 @data_convert_type(ptr noundef %3, i32 noundef %60) #6 - %.not20.i = icmp eq i32 %63, %60 - br i1 %.not20.i, label %common.ret4, label %64 +60: ; preds = %_yaml_tag_to_type.exit + %61 = tail call i32 @data_convert_type(ptr noundef %3, i32 noundef %58) #6 + %.not20.i = icmp eq i32 %61, %58 + br i1 %.not20.i, label %common.ret4, label %62 -64: ; preds = %62 +62: ; preds = %60 store i32 9202, ptr %4, align 4 br label %common.ret4 -65: ; preds = %thread-pre-split - %66 = tail call ptr @data_set_list(ptr noundef %3) #6 - %67 = add nsw i32 %0, 1 - %68 = tail call fastcc i32 @_yaml_to_data(i32 noundef %67, ptr noundef %1, ptr noundef %3, ptr noundef %4) - %69 = icmp eq i32 %68, 2 - %70 = select i1 %69, i32 3, i32 %68 - br label %common.ret4 - -71: ; preds = %9, %thread-pre-split +63: ; preds = %thread-pre-split + %64 = tail call ptr @data_set_list(ptr noundef %3) #6 + %65 = add nsw i32 %0, 1 + %66 = tail call fastcc i32 @_yaml_to_data(i32 noundef %65, ptr noundef %1, ptr noundef %3, ptr noundef %4) + %67 = icmp eq i32 %66, 2 + %68 = select i1 %67, i32 3, i32 %66 br label %common.ret4 -72: ; preds = %thread-pre-split - %73 = tail call ptr @data_set_dict(ptr noundef %3) #6 - %74 = add nsw i32 %0, 1 - %75 = tail call fastcc i32 @_yaml_to_data(i32 noundef %74, ptr noundef %1, ptr noundef %3, ptr noundef %4) - %76 = icmp eq i32 %75, 2 - %77 = select i1 %76, i32 3, i32 %75 +69: ; preds = %9, %9, %thread-pre-split, %thread-pre-split br label %common.ret4 -78: ; preds = %9, %thread-pre-split +70: ; preds = %thread-pre-split + %71 = tail call ptr @data_set_dict(ptr noundef %3) #6 + %72 = add nsw i32 %0, 1 + %73 = tail call fastcc i32 @_yaml_to_data(i32 noundef %72, ptr noundef %1, ptr noundef %3, ptr noundef %4) + %74 = icmp eq i32 %73, 2 + %75 = select i1 %74, i32 3, i32 %73 br label %common.ret4 -79: ; preds = %9, %thread-pre-split +76: ; preds = %9, %thread-pre-split tail call void (ptr, ...) @slurm_fatal_abort(ptr noundef nonnull @.str.40) #8 unreachable } diff --git a/bench/tev/optimized/ExrImageLoader.cpp.ll b/bench/tev/optimized/ExrImageLoader.cpp.ll index a0551df6f96..5622f720ab7 100644 --- a/bench/tev/optimized/ExrImageLoader.cpp.ll +++ b/bench/tev/optimized/ExrImageLoader.cpp.ll @@ -1137,8 +1137,6 @@ $_ZTIZN3tev10ThreadPool11enqueueTaskIRNSt3__116coroutine_handleIvEEEEDaOT_iEUlvE @.str.93 = private unnamed_addr constant [40 x i8] c"~Task was invoked before completion.\00", align 1 @.str.94 = private unnamed_addr constant [45 x i8] c"Cannot co_await/get() a task multiple times.\00", align 1 @llvm.global_ctors = appending global [0 x { i32, ptr, ptr }] zeroinitializer -@switch.table._ZN3tev10RawChannel12registerWithERN7Imf_2_511FrameBufferERKN9Imath_2_53BoxINS4_4Vec2IiEEEE = private unnamed_addr constant [3 x i32] [i32 2, i32 1, i32 2], align 4 -@switch.table._ZN3tev10RawChannel12registerWithERN7Imf_2_511FrameBufferERKN9Imath_2_53BoxINS4_4Vec2IiEEEE.6 = private unnamed_addr constant [3 x i32] [i32 4, i32 2, i32 4], align 4 @switch.table._ZN4tlog13ConsoleOutput9writeLineERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS_9ESeverityES9_ = private unnamed_addr constant [6 x ptr] [ptr getelementptr inbounds (i8, ptr @_ZN4tlog4ansiL4CYANE, i64 1), ptr getelementptr inbounds (i8, ptr @_ZN4tlog4ansiL7MAGENTAE, i64 1), ptr getelementptr inbounds (i8, ptr @_ZN4tlog4ansiL11BOLD_YELLOWE, i64 1), ptr getelementptr inbounds (i8, ptr @_ZN4tlog4ansiL8BOLD_REDE, i64 1), ptr getelementptr inbounds (i8, ptr @_ZN4tlog4ansiL5GREENE, i64 1), ptr getelementptr inbounds (i8, ptr @_ZN4tlog4ansiL4BLUEE, i64 1)], align 8 @switch.table._ZN3tev10RawChannel6resizeEv = private unnamed_addr constant [3 x i64] [i64 4, i64 2, i64 4], align 8 @@ -4766,68 +4764,75 @@ _ZNSt3__110shared_ptrIN3tev15TaskSharedStateEED2B8ne190000Ev.exit: ; preds = %10 ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_ZN3tev10RawChannel12registerWithERN7Imf_2_511FrameBufferERKN9Imath_2_53BoxINS4_4Vec2IiEEEE(ptr noundef nonnull align 8 dereferenceable(104) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 4 dereferenceable(16) %2) local_unnamed_addr #3 comdat align 2 personality ptr @__gxx_personality_v0 { %4 = alloca %"struct.Imf_2_5::Slice", align 8 - %5 = getelementptr inbounds i8, ptr %0, i64 56 - %6 = load i32, ptr %5, align 8 - %7 = icmp ult i32 %6, 3 - br i1 %7, label %switch.lookup, label %8 + %5 = getelementptr inbounds i8, ptr %2, i64 8 + %6 = load i32, ptr %5, align 4 + %7 = load i32, ptr %2, align 4 + %8 = sub nsw i32 %6, %7 + %9 = add nsw i32 %8, 1 + %10 = getelementptr inbounds i8, ptr %0, i64 32 + %11 = load i8, ptr %10, align 8 + %12 = getelementptr inbounds i8, ptr %0, i64 48 + %13 = load ptr, ptr %12, align 8 + %14 = getelementptr inbounds i8, ptr %0, i64 56 + %15 = load i32, ptr %14, align 8 + %16 = getelementptr inbounds i8, ptr %0, i64 80 + %17 = load ptr, ptr %16, align 8 + %18 = getelementptr inbounds i8, ptr %2, i64 4 + %19 = load i32, ptr %18, align 4 + %20 = mul nsw i32 %19, %9 + %21 = add nsw i32 %20, %7 + switch i32 %15, label %23 [ + i32 1, label %_ZNK3tev10RawChannel13bytesPerPixelEv.exit.thread + i32 2, label %_ZNK3tev10RawChannel13bytesPerPixelEv.exit + i32 0, label %_ZNK3tev10RawChannel13bytesPerPixelEv.exit + ] -8: ; preds = %3 - %9 = tail call ptr @__cxa_allocate_exception(i64 16) #23 - invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull @.str.44) - to label %10 unwind label %11 +_ZNK3tev10RawChannel13bytesPerPixelEv.exit.thread: ; preds = %3 + %22 = shl nsw i32 %21, 1 + br label %_ZNK3tev10RawChannel13bytesPerPixelEv.exit10 -10: ; preds = %8 - tail call void @__cxa_throw(ptr nonnull %9, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #27 +23: ; preds = %3 + %24 = tail call ptr @__cxa_allocate_exception(i64 16) #23 + invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef nonnull @.str.44) + to label %25 unwind label %26 + +25: ; preds = %23 + tail call void @__cxa_throw(ptr nonnull %24, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #27 unreachable -11: ; preds = %8 - %12 = landingpad { ptr, i32 } +26: ; preds = %23 + %27 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %9) #23 - resume { ptr, i32 } %12 - -switch.lookup: ; preds = %3 - %13 = getelementptr inbounds i8, ptr %2, i64 4 - %14 = load i32, ptr %13, align 4 - %15 = getelementptr inbounds i8, ptr %0, i64 80 - %16 = load ptr, ptr %15, align 8 - %17 = getelementptr inbounds i8, ptr %0, i64 48 - %18 = load ptr, ptr %17, align 8 - %19 = getelementptr inbounds i8, ptr %0, i64 32 - %20 = load i8, ptr %19, align 8 - %21 = load i32, ptr %2, align 4 - %22 = getelementptr inbounds i8, ptr %2, i64 8 - %23 = load i32, ptr %22, align 4 - %24 = zext nneg i32 %6 to i64 - %switch.gep = getelementptr inbounds [3 x i32], ptr @switch.table._ZN3tev10RawChannel12registerWithERN7Imf_2_511FrameBufferERKN9Imath_2_53BoxINS4_4Vec2IiEEEE, i64 0, i64 %24 - %switch.load = load i32, ptr %switch.gep, align 4 - %25 = zext nneg i32 %6 to i64 - %switch.gep19 = getelementptr inbounds [3 x i64], ptr @switch.table._ZN3tev10RawChannel6resizeEv, i64 0, i64 %25 - %switch.load20 = load i64, ptr %switch.gep19, align 8 - %26 = zext nneg i32 %6 to i64 - %switch.gep21 = getelementptr inbounds [3 x i32], ptr @switch.table._ZN3tev10RawChannel12registerWithERN7Imf_2_511FrameBufferERKN9Imath_2_53BoxINS4_4Vec2IiEEEE.6, i64 0, i64 %26 - %switch.load22 = load i32, ptr %switch.gep21, align 4 - %27 = sub nsw i32 %23, %21 - %28 = add nsw i32 %27, 1 - %29 = mul nsw i32 %14, %28 - %30 = add nsw i32 %29, %21 - %31 = shl nsw i32 %30, %switch.load - %32 = sext i32 %31 to i64 - %33 = sub nsw i64 0, %32 - %34 = getelementptr inbounds i8, ptr %16, i64 %33 - %35 = and i8 %20, 1 - %.not.i.i.i = icmp eq i8 %35, 0 - %36 = getelementptr inbounds i8, ptr %0, i64 33 - %37 = select i1 %.not.i.i.i, ptr %36, ptr %18 - %38 = getelementptr inbounds i8, ptr %0, i64 60 - %39 = load i32, ptr %38, align 4 - %40 = sdiv i32 %28, %39 - %41 = mul nsw i32 %40, %switch.load22 - %42 = sext i32 %41 to i64 - %43 = getelementptr inbounds i8, ptr %0, i64 64 - %44 = load i32, ptr %43, align 8 - call void @_ZN7Imf_2_55SliceC1ENS_9PixelTypeEPcmmiidbb(ptr noundef nonnull align 8 dereferenceable(50) %4, i32 noundef %6, ptr noundef %34, i64 noundef %switch.load20, i64 noundef %42, i32 noundef %39, i32 noundef %44, double noundef 0.000000e+00, i1 noundef zeroext false, i1 noundef zeroext false) - call void @_ZN7Imf_2_511FrameBuffer6insertEPKcRKNS_5SliceE(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef %37, ptr noundef nonnull align 8 dereferenceable(50) %4) + tail call void @__cxa_free_exception(ptr %24) #23 + resume { ptr, i32 } %27 + +_ZNK3tev10RawChannel13bytesPerPixelEv.exit: ; preds = %3, %3 + %28 = shl nsw i32 %21, 2 + %switch = icmp eq i32 %15, 1 + %spec.select = select i1 %switch, i64 2, i64 4 + %spec.select16 = select i1 %switch, i32 2, i32 4 + br label %_ZNK3tev10RawChannel13bytesPerPixelEv.exit10 + +_ZNK3tev10RawChannel13bytesPerPixelEv.exit10: ; preds = %_ZNK3tev10RawChannel13bytesPerPixelEv.exit, %_ZNK3tev10RawChannel13bytesPerPixelEv.exit.thread + %29 = phi i64 [ 2, %_ZNK3tev10RawChannel13bytesPerPixelEv.exit.thread ], [ %spec.select, %_ZNK3tev10RawChannel13bytesPerPixelEv.exit ] + %.pn17.in = phi i32 [ %22, %_ZNK3tev10RawChannel13bytesPerPixelEv.exit.thread ], [ %28, %_ZNK3tev10RawChannel13bytesPerPixelEv.exit ] + %.0.i9 = phi i32 [ 2, %_ZNK3tev10RawChannel13bytesPerPixelEv.exit.thread ], [ %spec.select16, %_ZNK3tev10RawChannel13bytesPerPixelEv.exit ] + %.pn17 = sext i32 %.pn17.in to i64 + %.pn = sub nsw i64 0, %.pn17 + %30 = getelementptr inbounds i8, ptr %17, i64 %.pn + %31 = and i8 %11, 1 + %.not.i.i.i = icmp eq i8 %31, 0 + %32 = getelementptr inbounds i8, ptr %0, i64 33 + %33 = select i1 %.not.i.i.i, ptr %32, ptr %13 + %34 = getelementptr inbounds i8, ptr %0, i64 60 + %35 = load i32, ptr %34, align 4 + %36 = sdiv i32 %9, %35 + %37 = mul nsw i32 %36, %.0.i9 + %38 = sext i32 %37 to i64 + %39 = getelementptr inbounds i8, ptr %0, i64 64 + %40 = load i32, ptr %39, align 8 + call void @_ZN7Imf_2_55SliceC1ENS_9PixelTypeEPcmmiidbb(ptr noundef nonnull align 8 dereferenceable(50) %4, i32 noundef %15, ptr noundef %30, i64 noundef %29, i64 noundef %38, i32 noundef %35, i32 noundef %40, double noundef 0.000000e+00, i1 noundef zeroext false, i1 noundef zeroext false) + call void @_ZN7Imf_2_511FrameBuffer6insertEPKcRKNS_5SliceE(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef %33, ptr noundef nonnull align 8 dereferenceable(50) %4) ret void } diff --git a/bench/tinygltf/optimized/tiny_gltf.cc.ll b/bench/tinygltf/optimized/tiny_gltf.cc.ll index 2b5c3e1e467..cf87b27cf04 100644 --- a/bench/tinygltf/optimized/tiny_gltf.cc.ll +++ b/bench/tinygltf/optimized/tiny_gltf.cc.ll @@ -87536,7 +87536,7 @@ _ZL10stbi__get8P13stbi__context.exit86: ; preds = %44, %_ZL19stbi__ref %83 = getelementptr inbounds i8, ptr %0, i64 216 %84 = load ptr, ptr %83, align 8 store ptr %84, ptr %7, align 8 - br label %337 + br label %336 _ZL10stbi__get8P13stbi__context.exit86.thread: ; preds = %47, %_ZL10stbi__get8P13stbi__context.exit86 %85 = phi ptr [ %77, %_ZL10stbi__get8P13stbi__context.exit86 ], [ %41, %47 ] @@ -87619,7 +87619,7 @@ _ZL10stbi__get8P13stbi__context.exit92: ; preds = %88, %91, %_ZL19stbi %127 = getelementptr inbounds i8, ptr %0, i64 216 %128 = load ptr, ptr %127, align 8 store ptr %128, ptr %7, align 8 - br label %337 + br label %336 129: ; preds = %122 %130 = getelementptr inbounds i8, ptr %0, i64 16 @@ -87731,7 +87731,7 @@ _ZL10stbi__get8P13stbi__context.exit100.thread: ; preds = %151, %_ZL10stbi__ge %183 = getelementptr inbounds i8, ptr %0, i64 216 %184 = load ptr, ptr %183, align 8 store ptr %184, ptr %7, align 8 - br label %337 + br label %336 185: ; preds = %_ZL10stbi__get8P13stbi__context.exit100, %_ZL10stbi__get8P13stbi__context.exit100, %_ZL10stbi__get8P13stbi__context.exit100, %_ZL10stbi__get8P13stbi__context.exit100, %_ZL10stbi__get8P13stbi__context.exit100 %186 = load ptr, ptr %130, align 8 @@ -87773,7 +87773,7 @@ _ZL10stbi__get8P13stbi__context.exit100.thread: ; preds = %151, %_ZL10stbi__ge %205 = getelementptr inbounds i8, ptr %0, i64 216 %206 = load ptr, ptr %205, align 8 store ptr %206, ptr %7, align 8 - br label %337 + br label %336 207: ; preds = %200 %208 = getelementptr inbounds i8, ptr %0, i64 16 @@ -87817,7 +87817,7 @@ _ZL10stbi__skipP13stbi__contexti.exit105: ; preds = %._crit_edge.i107, % %228 = getelementptr inbounds i8, ptr %0, i64 216 %229 = load ptr, ptr %228, align 8 store ptr %229, ptr %7, align 8 - br label %337 + br label %336 230: ; preds = %_ZL10stbi__skipP13stbi__contexti.exit105 %231 = tail call fastcc noundef i32 @_ZL13stbi__get16leP13stbi__context(ptr noundef %0) @@ -87831,7 +87831,7 @@ _ZL10stbi__skipP13stbi__contexti.exit105: ; preds = %._crit_edge.i107, % %236 = getelementptr inbounds i8, ptr %0, i64 216 %237 = load ptr, ptr %236, align 8 store ptr %237, ptr %7, align 8 - br label %337 + br label %336 238: ; preds = %230 %239 = load ptr, ptr %5, align 8 @@ -87958,7 +87958,7 @@ _ZL10stbi__get8P13stbi__context.exit122.sink.split: ; preds = %_ZL19stbi__refill _ZL10stbi__get8P13stbi__context.exit122: ; preds = %_ZL10stbi__get8P13stbi__context.exit122.sink.split, %280 %.not = icmp eq i8 %.070.shrunk, 0 - br i1 %.not, label %318, label %309 + br i1 %.not, label %317, label %309 309: ; preds = %_ZL10stbi__get8P13stbi__context.exit122 switch i8 %.0.i115, label %310 [ @@ -87973,87 +87973,84 @@ _ZL10stbi__get8P13stbi__context.exit122: ; preds = %_ZL10stbi__get8P13s %313 = getelementptr inbounds i8, ptr %0, i64 216 %314 = load ptr, ptr %313, align 8 store ptr %314, ptr %7, align 8 - br label %337 + br label %336 315: ; preds = %309, %309 switch i8 %.070.shrunk, label %_ZL18stbi__tga_get_compiiPi.exit.thread134 [ i8 8, label %_ZL18stbi__tga_get_compiiPi.exit.thread i8 16, label %316 - i8 15, label %317 + i8 15, label %316 i8 24, label %_ZL18stbi__tga_get_compiiPi.exit i8 32, label %_ZL18stbi__tga_get_compiiPi.exit ] -316: ; preds = %315 - br label %_ZL18stbi__tga_get_compiiPi.exit.thread - -317: ; preds = %315 +316: ; preds = %315, %315 br label %_ZL18stbi__tga_get_compiiPi.exit.thread -318: ; preds = %_ZL10stbi__get8P13stbi__context.exit122 +317: ; preds = %_ZL10stbi__get8P13stbi__context.exit122 switch i8 %.0.i115, label %_ZL18stbi__tga_get_compiiPi.exit.thread134 [ i8 8, label %_ZL18stbi__tga_get_compiiPi.exit.thread - i8 16, label %319 - i8 15, label %322 - i8 24, label %323 - i8 32, label %323 + i8 16, label %318 + i8 15, label %321 + i8 24, label %322 + i8 32, label %322 ] -319: ; preds = %318 - %320 = and i8 %.0.i91, -9 - %321 = icmp eq i8 %320, 3 - %.mux.i = select i1 %321, i32 2, i32 3 +318: ; preds = %317 + %319 = and i8 %.0.i91, -9 + %320 = icmp eq i8 %319, 3 + %.mux.i = select i1 %320, i32 2, i32 3 br label %_ZL18stbi__tga_get_compiiPi.exit.thread -322: ; preds = %318 +321: ; preds = %317 br label %_ZL18stbi__tga_get_compiiPi.exit.thread -323: ; preds = %318, %318 - %324 = lshr i8 %.0.i115, 3 - %325 = zext nneg i8 %324 to i32 +322: ; preds = %317, %317 + %323 = lshr i8 %.0.i115, 3 + %324 = zext nneg i8 %323 to i32 br label %_ZL18stbi__tga_get_compiiPi.exit.thread _ZL18stbi__tga_get_compiiPi.exit: ; preds = %315, %315 - %326 = lshr i8 %.070.shrunk, 3 - %327 = zext nneg i8 %326 to i32 + %325 = lshr i8 %.070.shrunk, 3 + %326 = zext nneg i8 %325 to i32 br label %_ZL18stbi__tga_get_compiiPi.exit.thread -_ZL18stbi__tga_get_compiiPi.exit.thread134: ; preds = %318, %315 - %328 = getelementptr inbounds i8, ptr %0, i64 208 - %329 = load ptr, ptr %328, align 8 - store ptr %329, ptr %5, align 8 - %330 = getelementptr inbounds i8, ptr %0, i64 216 - %331 = load ptr, ptr %330, align 8 - store ptr %331, ptr %7, align 8 - br label %337 +_ZL18stbi__tga_get_compiiPi.exit.thread134: ; preds = %317, %315 + %327 = getelementptr inbounds i8, ptr %0, i64 208 + %328 = load ptr, ptr %327, align 8 + store ptr %328, ptr %5, align 8 + %329 = getelementptr inbounds i8, ptr %0, i64 216 + %330 = load ptr, ptr %329, align 8 + store ptr %330, ptr %7, align 8 + br label %336 -_ZL18stbi__tga_get_compiiPi.exit.thread: ; preds = %_ZL18stbi__tga_get_compiiPi.exit, %322, %319, %318, %323, %317, %316, %315 - %.069132 = phi i32 [ %327, %_ZL18stbi__tga_get_compiiPi.exit ], [ 3, %322 ], [ %.mux.i, %319 ], [ 1, %318 ], [ %325, %323 ], [ 3, %317 ], [ 3, %316 ], [ 1, %315 ] +_ZL18stbi__tga_get_compiiPi.exit.thread: ; preds = %_ZL18stbi__tga_get_compiiPi.exit, %321, %318, %317, %322, %316, %315 + %.069132 = phi i32 [ %326, %_ZL18stbi__tga_get_compiiPi.exit ], [ 3, %321 ], [ %.mux.i, %318 ], [ 1, %317 ], [ %324, %322 ], [ 3, %316 ], [ 1, %315 ] %.not78 = icmp eq ptr %1, null - br i1 %.not78, label %333, label %332 + br i1 %.not78, label %332, label %331 -332: ; preds = %_ZL18stbi__tga_get_compiiPi.exit.thread +331: ; preds = %_ZL18stbi__tga_get_compiiPi.exit.thread store i32 %223, ptr %1, align 4 - br label %333 + br label %332 -333: ; preds = %332, %_ZL18stbi__tga_get_compiiPi.exit.thread +332: ; preds = %331, %_ZL18stbi__tga_get_compiiPi.exit.thread %.not79 = icmp eq ptr %2, null - br i1 %.not79, label %335, label %334 + br i1 %.not79, label %334, label %333 -334: ; preds = %333 +333: ; preds = %332 store i32 %231, ptr %2, align 4 - br label %335 + br label %334 -335: ; preds = %334, %333 +334: ; preds = %333, %332 %.not80 = icmp eq ptr %3, null - br i1 %.not80, label %337, label %336 + br i1 %.not80, label %336, label %335 -336: ; preds = %335 +335: ; preds = %334 store i32 %.069132, ptr %3, align 4 - br label %337 + br label %336 -337: ; preds = %335, %336, %_ZL18stbi__tga_get_compiiPi.exit.thread134, %310, %233, %225, %202, %_ZL10stbi__get8P13stbi__context.exit100.thread, %124, %80 - %.0 = phi i32 [ 0, %80 ], [ 0, %124 ], [ 0, %_ZL10stbi__get8P13stbi__context.exit100.thread ], [ 0, %225 ], [ 0, %233 ], [ 0, %310 ], [ 0, %_ZL18stbi__tga_get_compiiPi.exit.thread134 ], [ 0, %202 ], [ 1, %336 ], [ 1, %335 ] +336: ; preds = %334, %335, %_ZL18stbi__tga_get_compiiPi.exit.thread134, %310, %233, %225, %202, %_ZL10stbi__get8P13stbi__context.exit100.thread, %124, %80 + %.0 = phi i32 [ 0, %80 ], [ 0, %124 ], [ 0, %_ZL10stbi__get8P13stbi__context.exit100.thread ], [ 0, %225 ], [ 0, %233 ], [ 0, %310 ], [ 0, %_ZL18stbi__tga_get_compiiPi.exit.thread134 ], [ 0, %202 ], [ 1, %335 ], [ 1, %334 ] ret i32 %.0 } diff --git a/bench/tls-rs/optimized/1pt3w3786vo2dyk0.ll b/bench/tls-rs/optimized/1pt3w3786vo2dyk0.ll index d7cbc69ea13..e9142da5e89 100644 --- a/bench/tls-rs/optimized/1pt3w3786vo2dyk0.ll +++ b/bench/tls-rs/optimized/1pt3w3786vo2dyk0.ll @@ -10104,7 +10104,7 @@ define void @"_ZN90_$LT$rustls..msgs..handshake..ServerHelloPayload$u20$as$u20$r call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.6, i64 24, i1 false) store i64 -9223372036854775808, ptr %0, align 8 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %.sroa.6) - br label %63 + br label %62 26: ; preds = %20 %27 = getelementptr inbounds i8, ptr %18, i64 %13 @@ -10117,7 +10117,7 @@ define void @"_ZN90_$LT$rustls..msgs..handshake..ServerHelloPayload$u20$as$u20$r tail call void @llvm.experimental.noalias.scope.decl(metadata !2356) tail call void @llvm.experimental.noalias.scope.decl(metadata !2359) %33 = icmp eq i64 %11, %17 - br i1 %33, label %50, label %34 + br i1 %33, label %49, label %34 34: ; preds = %26 %35 = add i64 %13, 3 @@ -10140,67 +10140,64 @@ define void @"_ZN90_$LT$rustls..msgs..handshake..ServerHelloPayload$u20$as$u20$r 41: ; preds = %37 %42 = getelementptr inbounds i8, ptr %18, i64 %17 %43 = load i8, ptr %42, align 1, !noalias !2369, !noundef !4 - switch i8 %43, label %48 [ + switch i8 %43, label %47 [ i8 0, label %44 - i8 1, label %45 - i8 64, label %46 + i8 1, label %44 + i8 64, label %45 ] -44: ; preds = %41 - br label %48 +44: ; preds = %41, %41 + br label %47 45: ; preds = %41 - br label %48 - -46: ; preds = %41 - br label %48 + br label %47 "_ZN73_$LT$rustls..enums..CipherSuite$u20$as$u20$rustls..msgs..codec..Codec$GT$4read17ha4077eedfa258889E.exit": ; preds = %9 - %47 = getelementptr inbounds i8, ptr %0, i64 8 - store i8 11, ptr %47, align 8 + %46 = getelementptr inbounds i8, ptr %0, i64 8 + store i8 11, ptr %46, align 8 %.sroa.560.sroa.2.0..sroa.560.0..sroa_idx.sroa_idx = getelementptr inbounds i8, ptr %0, i64 16 store ptr @anon.c12b500a9dbc3a7785a3e66a12bc69a1.649.llvm.3875224068774112026, ptr %.sroa.560.sroa.2.0..sroa.560.0..sroa_idx.sroa_idx, align 8 %.sroa.560.sroa.3.0..sroa.560.0..sroa_idx.sroa_idx = getelementptr inbounds i8, ptr %0, i64 24 store i64 11, ptr %.sroa.560.sroa.3.0..sroa.560.0..sroa_idx.sroa_idx, align 8 store i64 -9223372036854775808, ptr %0, align 8 - br label %63 + br label %62 -48: ; preds = %41, %44, %45, %46 - %.sroa.5109.0.ph = phi i8 [ 3, %41 ], [ %43, %44 ], [ %43, %45 ], [ 2, %46 ] - %49 = icmp ult i64 %35, %11 - br i1 %49, label %52, label %55 +47: ; preds = %41, %44, %45 + %.sroa.5109.0.ph = phi i8 [ 3, %41 ], [ %43, %44 ], [ 2, %45 ] + %48 = icmp ult i64 %35, %11 + br i1 %48, label %51, label %54 -50: ; preds = %26 - %51 = getelementptr inbounds i8, ptr %0, i64 8 - store i8 11, ptr %51, align 8 +49: ; preds = %26 + %50 = getelementptr inbounds i8, ptr %0, i64 8 + store i8 11, ptr %50, align 8 %.sroa.472.sroa.2.0..sroa.472.0..sroa_idx.sroa_idx = getelementptr inbounds i8, ptr %0, i64 16 store ptr @anon.a568c7da4921ec2ed34cb4ede4839d57.54.llvm.17726792709170085280, ptr %.sroa.472.sroa.2.0..sroa.472.0..sroa_idx.sroa_idx, align 8 %.sroa.472.sroa.3.0..sroa.472.0..sroa_idx.sroa_idx = getelementptr inbounds i8, ptr %0, i64 24 store i64 11, ptr %.sroa.472.sroa.3.0..sroa.472.0..sroa_idx.sroa_idx, align 8 store i64 -9223372036854775808, ptr %0, align 8 - br label %63 + br label %62 -52: ; preds = %48 +51: ; preds = %47 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) call void @"_ZN71_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$rustls..msgs..codec..Codec$GT$4read17he6ef6c5f82494510E"(ptr noalias nocapture noundef nonnull sret({ i64, [3 x i64] }) align 8 dereferenceable(32) %4, ptr noalias noundef nonnull align 8 dereferenceable(24) %1) - %53 = load i64, ptr %4, align 8, !range !431, !noundef !4 - %trunc91 = trunc nuw i64 %53 to i1 - %54 = getelementptr inbounds i8, ptr %4, i64 8 - %.sroa.079.0.copyload = load i64, ptr %54, align 8 + %52 = load i64, ptr %4, align 8, !range !431, !noundef !4 + %trunc91 = trunc nuw i64 %52 to i1 + %53 = getelementptr inbounds i8, ptr %4, i64 8 + %.sroa.079.0.copyload = load i64, ptr %53, align 8 %.sroa.480.0..sroa_idx = getelementptr inbounds i8, ptr %4, i64 16 %.sroa.480.0.copyload = load ptr, ptr %.sroa.480.0..sroa_idx, align 8 %.sroa.581.0..sroa_idx = getelementptr inbounds i8, ptr %4, i64 24 %.sroa.581.0.copyload = load i64, ptr %.sroa.581.0..sroa_idx, align 8 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) - br i1 %trunc91, label %59, label %.thread146 - -55: ; preds = %.thread146, %48 - %56 = phi i64 [ %11, %48 ], [ %.pre173, %.thread146 ] - %57 = phi i64 [ %35, %48 ], [ %.pre, %.thread146 ] - %.sroa.031.0 = phi i64 [ 0, %48 ], [ %.sroa.079.0.copyload, %.thread146 ] - %.sroa.333.0 = phi ptr [ inttoptr (i64 8 to ptr), %48 ], [ %.sroa.480.0.copyload, %.thread146 ] - %.sroa.435.0 = phi i64 [ 0, %48 ], [ %.sroa.581.0.copyload, %.thread146 ] - %58 = icmp ult i64 %57, %56 + br i1 %trunc91, label %58, label %.thread146 + +54: ; preds = %.thread146, %47 + %55 = phi i64 [ %11, %47 ], [ %.pre173, %.thread146 ] + %56 = phi i64 [ %35, %47 ], [ %.pre, %.thread146 ] + %.sroa.031.0 = phi i64 [ 0, %47 ], [ %.sroa.079.0.copyload, %.thread146 ] + %.sroa.333.0 = phi ptr [ inttoptr (i64 8 to ptr), %47 ], [ %.sroa.480.0.copyload, %.thread146 ] + %.sroa.435.0 = phi i64 [ 0, %47 ], [ %.sroa.581.0.copyload, %.thread146 ] + %57 = icmp ult i64 %56, %55 call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %3) store i64 %.sroa.031.0, ptr %3, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %3, i64 8 @@ -10223,32 +10220,32 @@ define void @"_ZN90_$LT$rustls..msgs..handshake..ServerHelloPayload$u20$as$u20$r store i8 %.sroa.5109.0.ph, ptr %.sroa.13.0..sroa_idx, align 8 %.sroa.14.0..sroa_idx = getelementptr inbounds i8, ptr %3, i64 105 store i8 %43, ptr %.sroa.14.0..sroa_idx, align 1 - br i1 %58, label %61, label %.thread.i + br i1 %57, label %60, label %.thread.i -.thread146: ; preds = %52 +.thread146: ; preds = %51 %.pre = load i64, ptr %12, align 8, !alias.scope !2370, !noalias !2375 %.pre173 = load i64, ptr %10, align 8, !alias.scope !2370, !noalias !2375 - br label %55 + br label %54 -59: ; preds = %52 - %60 = getelementptr inbounds i8, ptr %0, i64 8 - store i64 %.sroa.079.0.copyload, ptr %60, align 8 +58: ; preds = %51 + %59 = getelementptr inbounds i8, ptr %0, i64 8 + store i64 %.sroa.079.0.copyload, ptr %59, align 8 %.sroa.283.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 16 store ptr %.sroa.480.0.copyload, ptr %.sroa.283.0..sroa_idx, align 8 %.sroa.384.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 24 store i64 %.sroa.581.0.copyload, ptr %.sroa.384.0..sroa_idx, align 8 store i64 -9223372036854775808, ptr %0, align 8 - br label %63 + br label %62 -.thread.i: ; preds = %55 +.thread.i: ; preds = %54 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %0, ptr noundef nonnull align 8 dereferenceable(112) %3, i64 112, i1 false), !alias.scope !2378, !noalias !2382 br label %"_ZN4core6result19Result$LT$T$C$E$GT$3map17he43348e1b5e563e7E.exit" -61: ; preds = %55 +60: ; preds = %54 tail call void @llvm.experimental.noalias.scope.decl(metadata !2382) tail call void @llvm.experimental.noalias.scope.decl(metadata !2384) - %62 = getelementptr inbounds i8, ptr %0, i64 8 - store i8 14, ptr %62, align 8, !alias.scope !2385, !noalias !2384 + %61 = getelementptr inbounds i8, ptr %0, i64 8 + store i8 14, ptr %61, align 8, !alias.scope !2385, !noalias !2384 %.sroa.5117.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 16 store ptr @anon.b829d69e4dfa1ad4f2781c144a746ff0.55, ptr %.sroa.5117.0..sroa_idx, align 8, !alias.scope !2385, !noalias !2384 %.sroa.6118.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 24 @@ -10257,11 +10254,11 @@ define void @"_ZN90_$LT$rustls..msgs..handshake..ServerHelloPayload$u20$as$u20$r call void @"_ZN4core3ptr84drop_in_place$LT$alloc..vec..Vec$LT$rustls..msgs..handshake..ServerExtension$GT$$GT$17ha782c5efae66e9d4E"(ptr noalias noundef nonnull align 8 dereferenceable(112) %3) br label %"_ZN4core6result19Result$LT$T$C$E$GT$3map17he43348e1b5e563e7E.exit" -"_ZN4core6result19Result$LT$T$C$E$GT$3map17he43348e1b5e563e7E.exit": ; preds = %61, %.thread.i +"_ZN4core6result19Result$LT$T$C$E$GT$3map17he43348e1b5e563e7E.exit": ; preds = %60, %.thread.i call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %3) - br label %63 + br label %62 -63: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$3map17he43348e1b5e563e7E.exit", %59, %50, %"_ZN73_$LT$rustls..enums..CipherSuite$u20$as$u20$rustls..msgs..codec..Codec$GT$4read17ha4077eedfa258889E.exit", %24 +62: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$3map17he43348e1b5e563e7E.exit", %58, %49, %"_ZN73_$LT$rustls..enums..CipherSuite$u20$as$u20$rustls..msgs..codec..Codec$GT$4read17ha4077eedfa258889E.exit", %24 ret void } diff --git a/bench/tls-rs/optimized/4klah4jfox7oqufu.ll b/bench/tls-rs/optimized/4klah4jfox7oqufu.ll index 2e2af2b8170..8aa471ebdcd 100644 --- a/bench/tls-rs/optimized/4klah4jfox7oqufu.ll +++ b/bench/tls-rs/optimized/4klah4jfox7oqufu.ll @@ -12701,7 +12701,7 @@ define hidden void @"_ZN71_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$rustls..msgs. tail call void @llvm.experimental.noalias.scope.decl(metadata !2723) %21 = sub nuw i64 %5, %10 %22 = icmp ult i64 %21, %20 - br i1 %22, label %58, label %23 + br i1 %22, label %57, label %23 23: ; preds = %17 %24 = add i64 %10, %20 @@ -12729,7 +12729,7 @@ define hidden void @"_ZN71_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$rustls..msgs. %.sroa.356.sroa.3.0..sroa.356.0..sroa_idx.sroa_idx = getelementptr inbounds i8, ptr %0, i64 24 store i64 2, ptr %.sroa.356.sroa.3.0..sroa.356.0..sroa_idx.sroa_idx, align 8 store i64 1, ptr %0, align 8 - br label %46 + br label %45 32: ; preds = %26 %33 = getelementptr inbounds i8, ptr %11, i64 %10 @@ -12742,87 +12742,84 @@ define hidden void @"_ZN71_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$rustls..msgs. %.not = icmp eq i8 %19, 0 br i1 %.not, label %._crit_edge, label %.lr.ph -36: ; preds = %50 +36: ; preds = %49 %37 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr76drop_in_place$LT$alloc..vec..Vec$LT$rustls..msgs..enums..Compression$GT$$GT$17hfad114b1a7bb108dE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %3) #36 - to label %62 unwind label %60 + to label %61 unwind label %59 -._crit_edge: ; preds = %51, %32 +._crit_edge: ; preds = %50, %32 %38 = getelementptr inbounds i8, ptr %0, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %38, ptr noundef nonnull align 8 dereferenceable(24) %3, i64 24, i1 false) store i64 0, ptr %0, align 8 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) - br label %46 + br label %45 -.lr.ph: ; preds = %32, %51 - %39 = phi i64 [ %57, %51 ], [ 0, %32 ] - %.sroa.7.0141161 = phi i64 [ %40, %51 ], [ 0, %32 ] +.lr.ph: ; preds = %32, %50 + %39 = phi i64 [ %56, %50 ], [ 0, %32 ] + %.sroa.7.0141161 = phi i64 [ %40, %50 ], [ 0, %32 ] %40 = add nuw nsw i64 %.sroa.7.0141161, 1 %41 = getelementptr inbounds i8, ptr %33, i64 %.sroa.7.0141161 %42 = load i8, ptr %41, align 1, !noalias !2732, !noundef !4 - switch i8 %42, label %47 [ + switch i8 %42, label %46 [ i8 0, label %43 - i8 1, label %44 - i8 64, label %45 + i8 1, label %43 + i8 64, label %44 ] -43: ; preds = %.lr.ph - br label %47 +43: ; preds = %.lr.ph, %.lr.ph + br label %46 44: ; preds = %.lr.ph - br label %47 - -45: ; preds = %.lr.ph - br label %47 + br label %46 -46: ; preds = %58, %._crit_edge, %30 +45: ; preds = %57, %._crit_edge, %30 ret void -47: ; preds = %.lr.ph, %43, %44, %45 - %.sroa.5130.1 = phi i8 [ 2, %45 ], [ %42, %44 ], [ %42, %43 ], [ 3, %.lr.ph ] - %48 = load i64, ptr %3, align 8, !alias.scope !2739, !noundef !4 - %49 = icmp eq i64 %39, %48 - br i1 %49, label %50, label %51 +46: ; preds = %.lr.ph, %43, %44 + %.sroa.5130.1 = phi i8 [ 2, %44 ], [ %42, %43 ], [ 3, %.lr.ph ] + %47 = load i64, ptr %3, align 8, !alias.scope !2739, !noundef !4 + %48 = icmp eq i64 %39, %47 + br i1 %48, label %49, label %50 -50: ; preds = %47 +49: ; preds = %46 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17h9aef7fe8598e9996E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %39) to label %.noexc105 unwind label %36 -.noexc105: ; preds = %50 +.noexc105: ; preds = %49 %.pre.i = load i64, ptr %35, align 8, !alias.scope !2739 - br label %51 + br label %50 -51: ; preds = %.noexc105, %47 - %52 = phi i64 [ %.pre.i, %.noexc105 ], [ %39, %47 ] - %53 = load ptr, ptr %34, align 8, !alias.scope !2739, !nonnull !4, !noundef !4 - %54 = getelementptr inbounds { i8, i8 }, ptr %53, i64 %52 - store i8 %.sroa.5130.1, ptr %54, align 1 - %55 = getelementptr inbounds i8, ptr %54, i64 1 - store i8 %42, ptr %55, align 1 - %56 = load i64, ptr %35, align 8, !alias.scope !2739, !noundef !4 - %57 = add i64 %56, 1 - store i64 %57, ptr %35, align 8 +50: ; preds = %.noexc105, %46 + %51 = phi i64 [ %.pre.i, %.noexc105 ], [ %39, %46 ] + %52 = load ptr, ptr %34, align 8, !alias.scope !2739, !nonnull !4, !noundef !4 + %53 = getelementptr inbounds { i8, i8 }, ptr %52, i64 %51 + store i8 %.sroa.5130.1, ptr %53, align 1 + %54 = getelementptr inbounds i8, ptr %53, i64 1 + store i8 %42, ptr %54, align 1 + %55 = load i64, ptr %35, align 8, !alias.scope !2739, !noundef !4 + %56 = add i64 %55, 1 + store i64 %56, ptr %35, align 8 %exitcond.not = icmp eq i64 %40, %20 br i1 %exitcond.not, label %._crit_edge, label %.lr.ph -58: ; preds = %17 - %59 = getelementptr inbounds i8, ptr %0, i64 8 - store ptr inttoptr (i64 10 to ptr), ptr %59, align 8 +57: ; preds = %17 + %58 = getelementptr inbounds i8, ptr %0, i64 8 + store ptr inttoptr (i64 10 to ptr), ptr %58, align 8 %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 16 store i64 %20, ptr %.sroa.2.0..sroa_idx, align 8 %.sroa.3.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 24 store i64 0, ptr %.sroa.3.0..sroa_idx, align 8 store i64 1, ptr %0, align 8 - br label %46 + br label %45 -60: ; preds = %36 - %61 = landingpad { ptr, i32 } +59: ; preds = %36 + %60 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #37 unreachable -62: ; preds = %36 +61: ; preds = %36 resume { ptr, i32 } %37 } diff --git a/bench/typst-rs/optimized/3rk2ctuzbghb17s4.ll b/bench/typst-rs/optimized/3rk2ctuzbghb17s4.ll index e09f0952d7a..b2d603f4e54 100644 --- a/bench/typst-rs/optimized/3rk2ctuzbghb17s4.ll +++ b/bench/typst-rs/optimized/3rk2ctuzbghb17s4.ll @@ -102025,8 +102025,8 @@ define noundef i8 @_ZN5typst6layout5align9Alignment1x17h2d1e9aa6d2f37f4dE(i16 %0 %.sroa.4.0.extract.trunc = trunc nuw i16 %.sroa.4.0.extract.shift to i8 %2 = and i16 %0, 255 %switch = icmp eq i16 %2, 4 - %spec.select = select i1 %switch, i8 5, i8 %.sroa.4.0.extract.trunc - ret i8 %spec.select + %.04 = select i1 %switch, i8 5, i8 %.sroa.4.0.extract.trunc + ret i8 %.04 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable @@ -102063,9 +102063,9 @@ switch.lookup: %.sroa.4.0.extract.trunc.i = trunc nuw i16 %.sroa.4.0.extract.shift.i to i8 %2 = and i16 %0, 255 %switch.i = icmp eq i16 %2, 4 - %spec.select.i = select i1 %switch.i, i8 5, i8 %.sroa.4.0.extract.trunc.i - %3 = icmp eq i8 %spec.select.i, 5 - %. = select i1 %3, i8 0, i8 %spec.select.i + %.04.i = select i1 %switch.i, i8 5, i8 %.sroa.4.0.extract.trunc.i + %3 = icmp eq i8 %.04.i, 5 + %. = select i1 %3, i8 0, i8 %.04.i %switch.idx.cast = trunc i8 %1 to i1 switch i8 %., label %4 [ i8 0, label %5 @@ -102111,16 +102111,16 @@ default.unreachable: ; preds = %"_ZN87_$LT$typst..l br label %_ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit _ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit: ; preds = %"_ZN87_$LT$typst..layout..align..HAlignment$u20$as$u20$typst..layout..align..FixAlignment$GT$3fix17h0573f6eb3b097ab6E.exit", %11 - %.04.i = phi i8 [ %.sroa.02.0.extract.trunc.i, %11 ], [ %.sroa.4.0.extract.trunc.i, %"_ZN87_$LT$typst..layout..align..HAlignment$u20$as$u20$typst..layout..align..FixAlignment$GT$3fix17h0573f6eb3b097ab6E.exit" ] - %.04.i.fr = freeze i8 %.04.i - %12 = icmp eq i8 %.04.i.fr, 3 + %.04.i13 = phi i8 [ %.sroa.02.0.extract.trunc.i, %11 ], [ %.sroa.4.0.extract.trunc.i, %"_ZN87_$LT$typst..layout..align..HAlignment$u20$as$u20$typst..layout..align..FixAlignment$GT$3fix17h0573f6eb3b097ab6E.exit" ] + %.04.i13.fr = freeze i8 %.04.i13 + %12 = icmp eq i8 %.04.i13.fr, 3 br i1 %12, label %_ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit.thread, label %13 _ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit.thread: ; preds = %"_ZN87_$LT$typst..layout..align..HAlignment$u20$as$u20$typst..layout..align..FixAlignment$GT$3fix17h0573f6eb3b097ab6E.exit", %_ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit br label %13 13: ; preds = %_ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit, %_ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit.thread - %14 = phi i8 [ 0, %_ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit.thread ], [ %.04.i.fr, %_ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit ] + %14 = phi i8 [ 0, %_ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit.thread ], [ %.04.i13.fr, %_ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit ] %15 = insertvalue { i8, i8 } poison, i8 %.0.i, 0 %16 = insertvalue { i8, i8 } %15, i8 %14, 1 ret { i8, i8 } %16 @@ -102918,9 +102918,9 @@ _ZN5typst11foundations6styles10StyleChain3get17h88ecd0bba392819bE.exit.i: ; pred %.sroa.4.0.extract.trunc.i.i = trunc nuw i16 %.sroa.4.0.extract.shift.i.i to i8 %14 = and i16 %0, 255 %switch.i.i = icmp eq i16 %14, 4 - %spec.select.i.i = select i1 %switch.i.i, i8 5, i8 %.sroa.4.0.extract.trunc.i.i - %15 = icmp eq i8 %spec.select.i.i, 5 - %..i = select i1 %15, i8 0, i8 %spec.select.i.i + %.04.i.i = select i1 %switch.i.i, i8 5, i8 %.sroa.4.0.extract.trunc.i.i + %15 = icmp eq i8 %.04.i.i, 5 + %..i = select i1 %15, i8 0, i8 %.04.i.i %switch.idx.cast = trunc i8 %.0.i.i to i1 switch i8 %..i, label %16 [ i8 0, label %17 @@ -102966,16 +102966,16 @@ default.unreachable: ; preds = %"_ZN87_$LT$typst..l br label %_ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit.i _ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit.i: ; preds = %23, %"_ZN87_$LT$typst..layout..align..HAlignment$u20$as$u20$typst..layout..align..FixAlignment$GT$3fix17h0573f6eb3b097ab6E.exit.i" - %.04.i.i = phi i8 [ %.sroa.02.0.extract.trunc.i.i, %23 ], [ %.sroa.4.0.extract.trunc.i.i, %"_ZN87_$LT$typst..layout..align..HAlignment$u20$as$u20$typst..layout..align..FixAlignment$GT$3fix17h0573f6eb3b097ab6E.exit.i" ] - %.04.i.fr.i = freeze i8 %.04.i.i - %24 = icmp eq i8 %.04.i.fr.i, 3 + %.04.i13.i = phi i8 [ %.sroa.02.0.extract.trunc.i.i, %23 ], [ %.sroa.4.0.extract.trunc.i.i, %"_ZN87_$LT$typst..layout..align..HAlignment$u20$as$u20$typst..layout..align..FixAlignment$GT$3fix17h0573f6eb3b097ab6E.exit.i" ] + %.04.i13.fr.i = freeze i8 %.04.i13.i + %24 = icmp eq i8 %.04.i13.fr.i, 3 br i1 %24, label %_ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit.thread.i, label %_ZN5typst6layout5align9Alignment3fix17h286824a91b28e67aE.exit _ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit.thread.i: ; preds = %_ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit.i, %"_ZN87_$LT$typst..layout..align..HAlignment$u20$as$u20$typst..layout..align..FixAlignment$GT$3fix17h0573f6eb3b097ab6E.exit.i" br label %_ZN5typst6layout5align9Alignment3fix17h286824a91b28e67aE.exit _ZN5typst6layout5align9Alignment3fix17h286824a91b28e67aE.exit: ; preds = %_ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit.i, %_ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit.thread.i - %25 = phi i8 [ 0, %_ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit.thread.i ], [ %.04.i.fr.i, %_ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit.i ] + %25 = phi i8 [ 0, %_ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit.thread.i ], [ %.04.i13.fr.i, %_ZN5typst6layout5align9Alignment1y17h1969e9edbe648b86E.exit.i ] %26 = insertvalue { i8, i8 } poison, i8 %.0.i.i1, 0 %27 = insertvalue { i8, i8 } %26, i8 %25, 1 ret { i8, i8 } %27 @@ -103948,12 +103948,9 @@ switch.lookup: ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define noundef range(i8 0, 3) i8 @"_ZN110_$LT$typst..layout..align..FixedAlignment$u20$as$u20$core..convert..From$LT$typst..layout..sides..Side$GT$$GT$4from17h4ff2d69f4032535aE"(i8 noundef %0) unnamed_addr #9 { -switch.lookup: - %switch.cast = zext i8 %0 to i32 - %switch.shiftamt = shl nuw nsw i32 %switch.cast, 3 - %switch.downshift = lshr i32 33685504, %switch.shiftamt - %switch.masked = trunc i32 %switch.downshift to i8 - ret i8 %switch.masked + %switch = icmp ult i8 %0, 2 + %. = select i1 %switch, i8 0, i8 2 + ret i8 %. } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable @@ -125563,23 +125560,20 @@ define noundef nonnull align 8 ptr @"_ZN5typst4math6accent1_104_$LT$impl$u20$typ define noundef zeroext i1 @"_ZN5typst4math6accent1_97_$LT$impl$u20$typst..foundations..element..Fields$u20$for$u20$typst..math..accent..AccentElem$GT$3has17haee5c6e78c2534c4E"(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %0, i8 noundef %1) unnamed_addr #58 { switch i8 %1, label %"_ZN83_$LT$typst..math..accent.._..Fields$u20$as$u20$core..convert..TryFrom$LT$u8$GT$$GT$8try_from17h542c1975ed85bc31E.exit.thread5" [ i8 0, label %3 - i8 1, label %4 + i8 1, label %3 i8 2, label %"_ZN83_$LT$typst..math..accent.._..Fields$u20$as$u20$core..convert..TryFrom$LT$u8$GT$$GT$8try_from17h542c1975ed85bc31E.exit" ] -3: ; preds = %2 - br label %"_ZN83_$LT$typst..math..accent.._..Fields$u20$as$u20$core..convert..TryFrom$LT$u8$GT$$GT$8try_from17h542c1975ed85bc31E.exit.thread5" - -4: ; preds = %2 +3: ; preds = %2, %2 br label %"_ZN83_$LT$typst..math..accent.._..Fields$u20$as$u20$core..convert..TryFrom$LT$u8$GT$$GT$8try_from17h542c1975ed85bc31E.exit.thread5" "_ZN83_$LT$typst..math..accent.._..Fields$u20$as$u20$core..convert..TryFrom$LT$u8$GT$$GT$8try_from17h542c1975ed85bc31E.exit": ; preds = %2 - %5 = load i64, ptr %0, align 8, !range !973, !noundef !12 - %6 = icmp ne i64 %5, 2 + %4 = load i64, ptr %0, align 8, !range !973, !noundef !12 + %5 = icmp ne i64 %4, 2 br label %"_ZN83_$LT$typst..math..accent.._..Fields$u20$as$u20$core..convert..TryFrom$LT$u8$GT$$GT$8try_from17h542c1975ed85bc31E.exit.thread5" -"_ZN83_$LT$typst..math..accent.._..Fields$u20$as$u20$core..convert..TryFrom$LT$u8$GT$$GT$8try_from17h542c1975ed85bc31E.exit.thread5": ; preds = %2, %3, %4, %"_ZN83_$LT$typst..math..accent.._..Fields$u20$as$u20$core..convert..TryFrom$LT$u8$GT$$GT$8try_from17h542c1975ed85bc31E.exit" - %.0 = phi i1 [ %6, %"_ZN83_$LT$typst..math..accent.._..Fields$u20$as$u20$core..convert..TryFrom$LT$u8$GT$$GT$8try_from17h542c1975ed85bc31E.exit" ], [ true, %4 ], [ true, %3 ], [ false, %2 ] +"_ZN83_$LT$typst..math..accent.._..Fields$u20$as$u20$core..convert..TryFrom$LT$u8$GT$$GT$8try_from17h542c1975ed85bc31E.exit.thread5": ; preds = %2, %3, %"_ZN83_$LT$typst..math..accent.._..Fields$u20$as$u20$core..convert..TryFrom$LT$u8$GT$$GT$8try_from17h542c1975ed85bc31E.exit" + %.0 = phi i1 [ %5, %"_ZN83_$LT$typst..math..accent.._..Fields$u20$as$u20$core..convert..TryFrom$LT$u8$GT$$GT$8try_from17h542c1975ed85bc31E.exit" ], [ true, %3 ], [ false, %2 ] ret i1 %.0 } diff --git a/bench/typst-rs/optimized/40w6rezair915kkd.ll b/bench/typst-rs/optimized/40w6rezair915kkd.ll index 8d4560eca28..29e4178faaa 100644 --- a/bench/typst-rs/optimized/40w6rezair915kkd.ll +++ b/bench/typst-rs/optimized/40w6rezair915kkd.ll @@ -102622,13 +102622,13 @@ common.resume: ; preds = %.noexc, %20, %24 i8 3, label %45 i8 4, label %46 i8 5, label %47 - i8 6, label %48 - i8 7, label %49 - i8 8, label %50 - i8 9, label %51 - i8 10, label %52 - i8 11, label %53 - i8 12, label %54 + i8 6, label %47 + i8 7, label %48 + i8 8, label %49 + i8 9, label %50 + i8 10, label %51 + i8 11, label %52 + i8 12, label %53 ] default.unreachable: ; preds = %40 @@ -102646,7 +102646,7 @@ default.unreachable: ; preds = %40 46: ; preds = %40 br label %_ZN5typst5model10numbering_13NumberingKind7to_char17h278b798d82c2c96bE.exit -47: ; preds = %40 +47: ; preds = %40, %40 br label %_ZN5typst5model10numbering_13NumberingKind7to_char17h278b798d82c2c96bE.exit 48: ; preds = %40 @@ -102667,47 +102667,44 @@ default.unreachable: ; preds = %40 53: ; preds = %40 br label %_ZN5typst5model10numbering_13NumberingKind7to_char17h278b798d82c2c96bE.exit -54: ; preds = %40 - br label %_ZN5typst5model10numbering_13NumberingKind7to_char17h278b798d82c2c96bE.exit - -_ZN5typst5model10numbering_13NumberingKind7to_char17h278b798d82c2c96bE.exit: ; preds = %54, %53, %52, %51, %50, %49, %48, %47, %46, %45, %44, %43, %40 - %.0.i21 = phi i32 [ 44032, %54 ], [ 12593, %53 ], [ 12452, %52 ], [ 12450, %51 ], [ 12356, %50 ], [ 12354, %49 ], [ 19968, %48 ], [ 19968, %47 ], [ 1488, %46 ], [ 42, %45 ], [ 105, %44 ], [ 97, %43 ], [ 49, %40 ] - %.0 = phi i1 [ false, %54 ], [ false, %53 ], [ false, %52 ], [ false, %51 ], [ false, %50 ], [ false, %49 ], [ false, %48 ], [ false, %47 ], [ false, %46 ], [ false, %45 ], [ true, %44 ], [ true, %43 ], [ false, %40 ] - %55 = getelementptr inbounds i8, ptr %.sroa.0.0, i64 17 - %56 = load i8, ptr %55, align 1, !range !87, !noundef !4 - %57 = trunc nuw i8 %56 to i1 - %58 = xor i32 %.0.i21, 32 - %59 = and i1 %.0, %57 - %.014 = select i1 %59, i32 %58, i32 %.0.i21 +_ZN5typst5model10numbering_13NumberingKind7to_char17h278b798d82c2c96bE.exit: ; preds = %53, %52, %51, %50, %49, %48, %47, %46, %45, %44, %43, %40 + %.0.i21 = phi i32 [ 44032, %53 ], [ 12593, %52 ], [ 12452, %51 ], [ 12450, %50 ], [ 12356, %49 ], [ 12354, %48 ], [ 19968, %47 ], [ 1488, %46 ], [ 42, %45 ], [ 105, %44 ], [ 97, %43 ], [ 49, %40 ] + %.0 = phi i1 [ false, %53 ], [ false, %52 ], [ false, %51 ], [ false, %50 ], [ false, %49 ], [ false, %48 ], [ false, %47 ], [ false, %46 ], [ false, %45 ], [ true, %44 ], [ true, %43 ], [ false, %40 ] + %54 = getelementptr inbounds i8, ptr %.sroa.0.0, i64 17 + %55 = load i8, ptr %54, align 1, !range !87, !noundef !4 + %56 = trunc nuw i8 %55 to i1 + %57 = xor i32 %.0.i21, 32 + %58 = and i1 %.0, %56 + %.014 = select i1 %58, i32 %57, i32 %.0.i21 invoke fastcc void @_ZN4ecow6string9EcoString4push17ha76aaffb08413f6eE(ptr noalias noundef align 8 dereferenceable(16) %3, i32 noundef %.014) to label %6 unwind label %.loopexit -.noexc: ; preds = %63, %60 +.noexc: ; preds = %62, %59 invoke void @"_ZN4core3ptr63drop_in_place$LT$typst..model..numbering_..NumberingPattern$GT$17h9b284622ed07ddf6E"(ptr noalias noundef nonnull align 8 dereferenceable(40) %1) #79 - to label %common.resume unwind label %64 + to label %common.resume unwind label %63 .loopexit: ; preds = %_ZN5typst5model10numbering_13NumberingKind7to_char17h278b798d82c2c96bE.exit, %30 %lpad.loopexit = landingpad { ptr, i32 } cleanup - br label %60 + br label %59 .loopexit.split-lp: ; preds = %8 %lpad.loopexit.split-lp = landingpad { ptr, i32 } cleanup - br label %60 + br label %59 -60: ; preds = %.loopexit.split-lp, %.loopexit +59: ; preds = %.loopexit.split-lp, %.loopexit %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] - %61 = load i8, ptr %.sroa.0.sroa.4.0..sroa_idx, align 1, !alias.scope !25056, !noundef !4 - %62 = icmp sgt i8 %61, -1 - br i1 %62, label %63, label %.noexc + %60 = load i8, ptr %.sroa.0.sroa.4.0..sroa_idx, align 1, !alias.scope !25056, !noundef !4 + %61 = icmp sgt i8 %60, -1 + br i1 %61, label %62, label %.noexc -63: ; preds = %60 +62: ; preds = %59 invoke void @"_ZN68_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h3d104556f500dee7E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3) - to label %.noexc unwind label %64 + to label %.noexc unwind label %63 -64: ; preds = %63, %.noexc - %65 = landingpad { ptr, i32 } +63: ; preds = %62, %.noexc + %64 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #78 unreachable diff --git a/bench/velox/optimized/PrestoSerializer.cpp.ll b/bench/velox/optimized/PrestoSerializer.cpp.ll index 790838538e3..1a32368bbf6 100644 --- a/bench/velox/optimized/PrestoSerializer.cpp.ll +++ b/bench/velox/optimized/PrestoSerializer.cpp.ll @@ -65402,11 +65402,11 @@ entry: i8 3, label %sw.bb4 i8 4, label %sw.bb5 i8 10, label %sw.bb6 - i8 5, label %sw.bb7 - i8 6, label %sw.bb8 + i8 5, label %sw.bb4 + i8 6, label %sw.bb5 i8 7, label %sw.bb9 - i8 8, label %sw.bb10 - i8 9, label %sw.bb11 + i8 8, label %sw.bb9 + i8 9, label %sw.bb5 i8 30, label %sw.bb12 i8 31, label %sw.bb13 i8 32, label %sw.bb14 @@ -65416,28 +65416,16 @@ entry: sw.bb3: ; preds = %entry br label %return -sw.bb4: ; preds = %entry +sw.bb4: ; preds = %entry, %entry br label %return -sw.bb5: ; preds = %entry +sw.bb5: ; preds = %entry, %entry, %entry br label %return sw.bb6: ; preds = %entry br label %return -sw.bb7: ; preds = %entry - br label %return - -sw.bb8: ; preds = %entry - br label %return - -sw.bb9: ; preds = %entry - br label %return - -sw.bb10: ; preds = %entry - br label %return - -sw.bb11: ; preds = %entry +sw.bb9: ; preds = %entry, %entry br label %return sw.bb12: ; preds = %entry @@ -65470,9 +65458,9 @@ lpad: ; preds = %sw.default tail call void @__cxa_free_exception(ptr %exception) #19 resume { ptr, i32 } %4 -return: ; preds = %entry, %entry, %entry, %sw.bb14, %sw.bb13, %sw.bb12, %sw.bb11, %sw.bb10, %sw.bb9, %sw.bb8, %sw.bb7, %sw.bb6, %sw.bb5, %sw.bb4, %sw.bb3 - %retval.sroa.16.0 = phi ptr [ %cond, %sw.bb14 ], [ @.str.27, %sw.bb13 ], [ @.str.26, %sw.bb12 ], [ @.str.23, %sw.bb11 ], [ @.str.25, %sw.bb10 ], [ @.str.25, %sw.bb9 ], [ @.str.23, %sw.bb8 ], [ @.str.22, %sw.bb7 ], [ @.str.24, %sw.bb6 ], [ @.str.23, %sw.bb5 ], [ @.str.22, %sw.bb4 ], [ @.str.21, %sw.bb3 ], [ @.str.20, %entry ], [ @.str.20, %entry ], [ @.str.20, %entry ] - %retval.sroa.0.0 = phi i64 [ %call.i.i26, %sw.bb14 ], [ 3, %sw.bb13 ], [ 5, %sw.bb12 ], [ 10, %sw.bb11 ], [ 14, %sw.bb10 ], [ 14, %sw.bb9 ], [ 10, %sw.bb8 ], [ 9, %sw.bb7 ], [ 12, %sw.bb6 ], [ 10, %sw.bb5 ], [ 9, %sw.bb4 ], [ 11, %sw.bb3 ], [ 10, %entry ], [ 10, %entry ], [ 10, %entry ] +return: ; preds = %entry, %entry, %entry, %sw.bb14, %sw.bb13, %sw.bb12, %sw.bb9, %sw.bb6, %sw.bb5, %sw.bb4, %sw.bb3 + %retval.sroa.16.0 = phi ptr [ %cond, %sw.bb14 ], [ @.str.27, %sw.bb13 ], [ @.str.26, %sw.bb12 ], [ @.str.25, %sw.bb9 ], [ @.str.24, %sw.bb6 ], [ @.str.23, %sw.bb5 ], [ @.str.22, %sw.bb4 ], [ @.str.21, %sw.bb3 ], [ @.str.20, %entry ], [ @.str.20, %entry ], [ @.str.20, %entry ] + %retval.sroa.0.0 = phi i64 [ %call.i.i26, %sw.bb14 ], [ 3, %sw.bb13 ], [ 5, %sw.bb12 ], [ 14, %sw.bb9 ], [ 12, %sw.bb6 ], [ 10, %sw.bb5 ], [ 9, %sw.bb4 ], [ 11, %sw.bb3 ], [ 10, %entry ], [ 10, %entry ], [ 10, %entry ] %.fca.0.insert = insertvalue { i64, ptr } poison, i64 %retval.sroa.0.0, 0 %.fca.1.insert = insertvalue { i64, ptr } %.fca.0.insert, ptr %retval.sroa.16.0, 1 ret { i64, ptr } %.fca.1.insert diff --git a/bench/velox/optimized/UnsafeRowSerializer.cpp.ll b/bench/velox/optimized/UnsafeRowSerializer.cpp.ll index 8623abe6771..2d7c5807804 100644 --- a/bench/velox/optimized/UnsafeRowSerializer.cpp.ll +++ b/bench/velox/optimized/UnsafeRowSerializer.cpp.ll @@ -6397,31 +6397,25 @@ cond.true.i.i: ; preds = %_ZN8facebook5velox3 i8 2, label %sw.bb8.i.i.i i8 4, label %sw.bb10.i.i.i i8 10, label %sw.bb12.i.i.i - i8 5, label %sw.bb14.i.i.i - i8 6, label %sw.bb16.i.i.i + i8 5, label %sw.bb4.i.i.i + i8 6, label %sw.bb10.i.i.i i8 7, label %sw.bb18.i.i.i i8 8, label %sw.bb20.i.i.i - i8 9, label %sw.bb22.i.i.i + i8 9, label %sw.bb10.i.i.i ] -sw.bb4.i.i.i: ; preds = %cond.true.i.i +sw.bb4.i.i.i: ; preds = %cond.true.i.i, %cond.true.i.i br label %cond.end.i.i sw.bb8.i.i.i: ; preds = %cond.true.i.i br label %cond.end.i.i -sw.bb10.i.i.i: ; preds = %cond.true.i.i +sw.bb10.i.i.i: ; preds = %cond.true.i.i, %cond.true.i.i, %cond.true.i.i br label %cond.end.i.i sw.bb12.i.i.i: ; preds = %cond.true.i.i br label %cond.end.i.i -sw.bb14.i.i.i: ; preds = %cond.true.i.i - br label %cond.end.i.i - -sw.bb16.i.i.i: ; preds = %cond.true.i.i - br label %cond.end.i.i - sw.bb18.i.i.i: ; preds = %cond.true.i.i call void @llvm.trap() unreachable @@ -6430,9 +6424,6 @@ sw.bb20.i.i.i: ; preds = %cond.true.i.i call void @llvm.trap() unreachable -sw.bb22.i.i.i: ; preds = %cond.true.i.i - br label %cond.end.i.i - sw.default.i.i.i: ; preds = %cond.true.i.i call void @llvm.trap() unreachable @@ -6440,9 +6431,9 @@ sw.default.i.i.i: ; preds = %cond.true.i.i cond.end.fold.split.i.i: ; preds = %cond.true.i.i, %cond.true.i.i br label %cond.end.i.i -cond.end.i.i: ; preds = %cond.end.fold.split.i.i, %sw.bb22.i.i.i, %sw.bb16.i.i.i, %sw.bb14.i.i.i, %sw.bb12.i.i.i, %sw.bb10.i.i.i, %sw.bb8.i.i.i, %sw.bb4.i.i.i, %cond.true.i.i, %_ZN8facebook5velox3row12_GLOBAL__N_126UnsafeRowDataBatchIterator12isFixedWidthERKSt10shared_ptrIKNS0_4TypeEE.exit.i.i, %call1.i14.i.noexc.i - %cmp25.not.i.i = phi i1 [ true, %_ZN8facebook5velox3row12_GLOBAL__N_126UnsafeRowDataBatchIterator12isFixedWidthERKSt10shared_ptrIKNS0_4TypeEE.exit.i.i ], [ true, %cond.true.i.i ], [ false, %sw.bb22.i.i.i ], [ false, %sw.bb16.i.i.i ], [ false, %sw.bb14.i.i.i ], [ false, %sw.bb12.i.i.i ], [ false, %sw.bb10.i.i.i ], [ false, %sw.bb8.i.i.i ], [ false, %sw.bb4.i.i.i ], [ true, %call1.i14.i.noexc.i ], [ false, %cond.end.fold.split.i.i ] - %cond.i.i = phi i64 [ 0, %_ZN8facebook5velox3row12_GLOBAL__N_126UnsafeRowDataBatchIterator12isFixedWidthERKSt10shared_ptrIKNS0_4TypeEE.exit.i.i ], [ 0, %cond.true.i.i ], [ 8, %sw.bb22.i.i.i ], [ 8, %sw.bb16.i.i.i ], [ 4, %sw.bb14.i.i.i ], [ 16, %sw.bb12.i.i.i ], [ 8, %sw.bb10.i.i.i ], [ 2, %sw.bb8.i.i.i ], [ 4, %sw.bb4.i.i.i ], [ 0, %call1.i14.i.noexc.i ], [ 1, %cond.end.fold.split.i.i ] +cond.end.i.i: ; preds = %cond.end.fold.split.i.i, %sw.bb12.i.i.i, %sw.bb10.i.i.i, %sw.bb8.i.i.i, %sw.bb4.i.i.i, %cond.true.i.i, %_ZN8facebook5velox3row12_GLOBAL__N_126UnsafeRowDataBatchIterator12isFixedWidthERKSt10shared_ptrIKNS0_4TypeEE.exit.i.i, %call1.i14.i.noexc.i + %cmp25.not.i.i = phi i1 [ true, %_ZN8facebook5velox3row12_GLOBAL__N_126UnsafeRowDataBatchIterator12isFixedWidthERKSt10shared_ptrIKNS0_4TypeEE.exit.i.i ], [ true, %cond.true.i.i ], [ false, %sw.bb12.i.i.i ], [ false, %sw.bb10.i.i.i ], [ false, %sw.bb8.i.i.i ], [ false, %sw.bb4.i.i.i ], [ true, %call1.i14.i.noexc.i ], [ false, %cond.end.fold.split.i.i ] + %cond.i.i = phi i64 [ 0, %_ZN8facebook5velox3row12_GLOBAL__N_126UnsafeRowDataBatchIterator12isFixedWidthERKSt10shared_ptrIKNS0_4TypeEE.exit.i.i ], [ 0, %cond.true.i.i ], [ 16, %sw.bb12.i.i.i ], [ 8, %sw.bb10.i.i.i ], [ 2, %sw.bb8.i.i.i ], [ 4, %sw.bb4.i.i.i ], [ 0, %call1.i14.i.noexc.i ], [ 1, %cond.end.fold.split.i.i ] %530 = load i64, ptr %numElements_.i.i, align 8, !noalias !185 %conv.i16.i.i = trunc i64 %530 to i32 %add.i.i.i.i.i93 = add i32 %conv.i16.i.i, 63 @@ -8427,31 +8418,25 @@ call1.i.noexc.i.i.i.i.i.i.i.i: ; preds = %invoke.cont5.i.i.i. i8 2, label %sw.bb8.i.i.i.i.i.i.i.i.i i8 4, label %sw.bb10.i.i.i.i.i.i.i.i.i i8 10, label %sw.bb12.i.i.i.i.i.i.i.i.i - i8 5, label %sw.bb14.i.i.i.i.i.i.i.i.i - i8 6, label %sw.bb16.i.i.i.i.i.i.i.i.i + i8 5, label %sw.bb4.i.i.i.i.i.i.i.i.i + i8 6, label %sw.bb10.i.i.i.i.i.i.i.i.i i8 7, label %sw.bb18.i.i.i.i.i.i.i.i.i i8 8, label %sw.bb20.i.i.i.i.i.i.i.i.i - i8 9, label %sw.bb22.i.i.i.i.i.i.i.i.i + i8 9, label %sw.bb10.i.i.i.i.i.i.i.i.i ] -sw.bb4.i.i.i.i.i.i.i.i.i: ; preds = %call1.i.noexc.i.i.i.i.i.i.i.i +sw.bb4.i.i.i.i.i.i.i.i.i: ; preds = %call1.i.noexc.i.i.i.i.i.i.i.i, %call1.i.noexc.i.i.i.i.i.i.i.i br label %cond.end.i.i.i.i.i.i.i.i sw.bb8.i.i.i.i.i.i.i.i.i: ; preds = %call1.i.noexc.i.i.i.i.i.i.i.i br label %cond.end.i.i.i.i.i.i.i.i -sw.bb10.i.i.i.i.i.i.i.i.i: ; preds = %call1.i.noexc.i.i.i.i.i.i.i.i +sw.bb10.i.i.i.i.i.i.i.i.i: ; preds = %call1.i.noexc.i.i.i.i.i.i.i.i, %call1.i.noexc.i.i.i.i.i.i.i.i, %call1.i.noexc.i.i.i.i.i.i.i.i br label %cond.end.i.i.i.i.i.i.i.i sw.bb12.i.i.i.i.i.i.i.i.i: ; preds = %call1.i.noexc.i.i.i.i.i.i.i.i br label %cond.end.i.i.i.i.i.i.i.i -sw.bb14.i.i.i.i.i.i.i.i.i: ; preds = %call1.i.noexc.i.i.i.i.i.i.i.i - br label %cond.end.i.i.i.i.i.i.i.i - -sw.bb16.i.i.i.i.i.i.i.i.i: ; preds = %call1.i.noexc.i.i.i.i.i.i.i.i - br label %cond.end.i.i.i.i.i.i.i.i - sw.bb18.i.i.i.i.i.i.i.i.i: ; preds = %call1.i.noexc.i.i.i.i.i.i.i.i tail call void @llvm.trap() unreachable @@ -8460,9 +8445,6 @@ sw.bb20.i.i.i.i.i.i.i.i.i: ; preds = %call1.i.noexc.i.i.i tail call void @llvm.trap() unreachable -sw.bb22.i.i.i.i.i.i.i.i.i: ; preds = %call1.i.noexc.i.i.i.i.i.i.i.i - br label %cond.end.i.i.i.i.i.i.i.i - sw.default.i.i.i.i.i.i.i.i.i: ; preds = %call1.i.noexc.i.i.i.i.i.i.i.i tail call void @llvm.trap() unreachable @@ -8470,9 +8452,9 @@ sw.default.i.i.i.i.i.i.i.i.i: ; preds = %call1.i.noexc.i.i.i cond.end.fold.split.i.i.i.i.i.i.i.i: ; preds = %call1.i.noexc.i.i.i.i.i.i.i.i, %call1.i.noexc.i.i.i.i.i.i.i.i br label %cond.end.i.i.i.i.i.i.i.i -cond.end.i.i.i.i.i.i.i.i: ; preds = %cond.end.fold.split.i.i.i.i.i.i.i.i, %sw.bb22.i.i.i.i.i.i.i.i.i, %sw.bb16.i.i.i.i.i.i.i.i.i, %sw.bb14.i.i.i.i.i.i.i.i.i, %sw.bb12.i.i.i.i.i.i.i.i.i, %sw.bb10.i.i.i.i.i.i.i.i.i, %sw.bb8.i.i.i.i.i.i.i.i.i, %sw.bb4.i.i.i.i.i.i.i.i.i, %call1.i.noexc.i.i.i.i.i.i.i.i, %invoke.cont5.i.i.i.i.i.i.i.i, %invoke.cont5.thread25.i.i.i.i.i.i.i.i - %fixedDataWidth_23.i.i.i.i.i.i.i.i = phi ptr [ %fixedDataWidth_.i.i.i.i.i.i.i.i, %invoke.cont5.i.i.i.i.i.i.i.i ], [ %fixedDataWidth_24.i.i.i.i.i.i.i.i, %call1.i.noexc.i.i.i.i.i.i.i.i ], [ %fixedDataWidth_28.i.i.i.i.i.i.i.i, %invoke.cont5.thread25.i.i.i.i.i.i.i.i ], [ %fixedDataWidth_24.i.i.i.i.i.i.i.i, %sw.bb4.i.i.i.i.i.i.i.i.i ], [ %fixedDataWidth_24.i.i.i.i.i.i.i.i, %sw.bb8.i.i.i.i.i.i.i.i.i ], [ %fixedDataWidth_24.i.i.i.i.i.i.i.i, %sw.bb10.i.i.i.i.i.i.i.i.i ], [ %fixedDataWidth_24.i.i.i.i.i.i.i.i, %sw.bb12.i.i.i.i.i.i.i.i.i ], [ %fixedDataWidth_24.i.i.i.i.i.i.i.i, %sw.bb14.i.i.i.i.i.i.i.i.i ], [ %fixedDataWidth_24.i.i.i.i.i.i.i.i, %sw.bb16.i.i.i.i.i.i.i.i.i ], [ %fixedDataWidth_24.i.i.i.i.i.i.i.i, %sw.bb22.i.i.i.i.i.i.i.i.i ], [ %fixedDataWidth_24.i.i.i.i.i.i.i.i, %cond.end.fold.split.i.i.i.i.i.i.i.i ] - %cond.i.i.i.i.i.i.i.i = phi i64 [ 0, %invoke.cont5.i.i.i.i.i.i.i.i ], [ 0, %call1.i.noexc.i.i.i.i.i.i.i.i ], [ 0, %invoke.cont5.thread25.i.i.i.i.i.i.i.i ], [ 4, %sw.bb4.i.i.i.i.i.i.i.i.i ], [ 2, %sw.bb8.i.i.i.i.i.i.i.i.i ], [ 8, %sw.bb10.i.i.i.i.i.i.i.i.i ], [ 16, %sw.bb12.i.i.i.i.i.i.i.i.i ], [ 4, %sw.bb14.i.i.i.i.i.i.i.i.i ], [ 8, %sw.bb16.i.i.i.i.i.i.i.i.i ], [ 8, %sw.bb22.i.i.i.i.i.i.i.i.i ], [ 1, %cond.end.fold.split.i.i.i.i.i.i.i.i ] +cond.end.i.i.i.i.i.i.i.i: ; preds = %cond.end.fold.split.i.i.i.i.i.i.i.i, %sw.bb12.i.i.i.i.i.i.i.i.i, %sw.bb10.i.i.i.i.i.i.i.i.i, %sw.bb8.i.i.i.i.i.i.i.i.i, %sw.bb4.i.i.i.i.i.i.i.i.i, %call1.i.noexc.i.i.i.i.i.i.i.i, %invoke.cont5.i.i.i.i.i.i.i.i, %invoke.cont5.thread25.i.i.i.i.i.i.i.i + %fixedDataWidth_23.i.i.i.i.i.i.i.i = phi ptr [ %fixedDataWidth_.i.i.i.i.i.i.i.i, %invoke.cont5.i.i.i.i.i.i.i.i ], [ %fixedDataWidth_24.i.i.i.i.i.i.i.i, %call1.i.noexc.i.i.i.i.i.i.i.i ], [ %fixedDataWidth_28.i.i.i.i.i.i.i.i, %invoke.cont5.thread25.i.i.i.i.i.i.i.i ], [ %fixedDataWidth_24.i.i.i.i.i.i.i.i, %sw.bb4.i.i.i.i.i.i.i.i.i ], [ %fixedDataWidth_24.i.i.i.i.i.i.i.i, %sw.bb8.i.i.i.i.i.i.i.i.i ], [ %fixedDataWidth_24.i.i.i.i.i.i.i.i, %sw.bb10.i.i.i.i.i.i.i.i.i ], [ %fixedDataWidth_24.i.i.i.i.i.i.i.i, %sw.bb12.i.i.i.i.i.i.i.i.i ], [ %fixedDataWidth_24.i.i.i.i.i.i.i.i, %cond.end.fold.split.i.i.i.i.i.i.i.i ] + %cond.i.i.i.i.i.i.i.i = phi i64 [ 0, %invoke.cont5.i.i.i.i.i.i.i.i ], [ 0, %call1.i.noexc.i.i.i.i.i.i.i.i ], [ 0, %invoke.cont5.thread25.i.i.i.i.i.i.i.i ], [ 4, %sw.bb4.i.i.i.i.i.i.i.i.i ], [ 2, %sw.bb8.i.i.i.i.i.i.i.i.i ], [ 8, %sw.bb10.i.i.i.i.i.i.i.i.i ], [ 16, %sw.bb12.i.i.i.i.i.i.i.i.i ], [ 1, %cond.end.fold.split.i.i.i.i.i.i.i.i ] store i64 %cond.i.i.i.i.i.i.i.i, ptr %fixedDataWidth_23.i.i.i.i.i.i.i.i, align 8, !noalias !240 %columnData_.i.i.i.i.i.i.i.i92 = getelementptr inbounds i8, ptr %call5.i.i.i5.i.i.i.i68, i64 88 %totalNumElements_.i.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %call5.i.i.i5.i.i.i.i68, i64 112 diff --git a/bench/wasmedge/optimized/controlInstr.cpp.ll b/bench/wasmedge/optimized/controlInstr.cpp.ll index a4a8e29cf26..6ad3c52d125 100644 --- a/bench/wasmedge/optimized/controlInstr.cpp.ll +++ b/bench/wasmedge/optimized/controlInstr.cpp.ll @@ -1289,11 +1289,11 @@ switch.lookup: ; preds = %40 %switch.cast = trunc i8 %switch.tableidx to i3 %switch.downshift = lshr i3 3, %switch.cast %switch.masked = trunc i3 %switch.downshift to i1 - %switch.cast76 = zext i8 %switch.tableidx to i24 - %switch.shiftamt77 = shl nuw nsw i24 %switch.cast76, 3 - %switch.downshift78 = lshr i24 7367530, %switch.shiftamt77 - %switch.masked79 = trunc i24 %switch.downshift78 to i8 - %48 = icmp eq i8 %20, %switch.masked79 + %switch.cast79 = zext i8 %switch.tableidx to i24 + %switch.shiftamt80 = shl nuw nsw i24 %switch.cast79, 3 + %switch.downshift81 = lshr i24 7367530, %switch.shiftamt80 + %switch.masked82 = trunc i24 %switch.downshift81 to i8 + %48 = icmp eq i8 %20, %switch.masked82 br i1 %48, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit, label %49 49: ; preds = %switch.lookup @@ -1303,9 +1303,9 @@ switch.lookup: ; preds = %40 ] 50: ; preds = %49 - %.off = add i8 %20, -109 - %switch = icmp ult i8 %.off, 2 - %or.cond75 = and i1 %switch, %switch.masked + %.off75 = add i8 %20, -109 + %switch76 = icmp ult i8 %.off75, 2 + %or.cond77 = and i1 %switch76, %switch.masked br label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit _ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40: ; preds = %18, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit @@ -1331,27 +1331,24 @@ _ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40: ; preds = %18, %_ZNK8WasmEdge7 %55 = load i32, ptr %54, align 4 %56 = zext i32 %55 to i64 %.not = icmp ugt i64 %1, %56 - br i1 %.not, label %switch.lookup80, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit + br i1 %.not, label %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit -switch.lookup80: ; preds = %53 +_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49: ; preds = %53 %57 = getelementptr inbounds ptr, ptr %0, i64 %56 %58 = load ptr, ptr %57, align 8 %59 = getelementptr inbounds i8, ptr %58, i64 32 %60 = load i8, ptr %59, align 8 - %switch.tableidx81 = add i8 %60, 2 - %switch.cast82 = trunc i8 %switch.tableidx81 to i3 - %switch.downshift84 = lshr exact i3 -4, %switch.cast82 - %switch.masked85 = trunc i3 %switch.downshift84 to i1 + %switch = icmp eq i8 %60, 96 switch i8 %52, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit [ i8 113, label %61 i8 115, label %62 ] -61: ; preds = %switch.lookup80 - %not. = xor i1 %switch.masked85, true +61: ; preds = %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49 + %not. = xor i1 %switch, true br label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit -62: ; preds = %switch.lookup80 +62: ; preds = %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49 br label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit _ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47: ; preds = %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40 @@ -1362,8 +1359,8 @@ _ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47: ; preds = %_ZNK8WasmEdge7ValTy %67 = tail call noundef zeroext i1 @_ZN8WasmEdge3AST11TypeMatcher9matchTypeEN5cxx204spanIKPKNS0_7SubTypeELm18446744073709551615EEEjS8_j(ptr %0, i64 %1, i32 noundef %64, ptr %3, i64 %4, i32 noundef %66) #19 br label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit -_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit: ; preds = %50, %61, %11, %62, %15, %switch.lookup, %49, %49, %39, %37, %35, %34, %33, %33, %31, %29, %29, %27, %24, %14, %switch.lookup80, %53, %40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47 - %.0 = phi i1 [ %67, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47 ], [ false, %40 ], [ false, %53 ], [ false, %14 ], [ %28, %27 ], [ %32, %31 ], [ false, %39 ], [ %38, %37 ], [ %36, %35 ], [ true, %24 ], [ false, %29 ], [ false, %29 ], [ false, %33 ], [ false, %33 ], [ true, %34 ], [ true, %switch.lookup ], [ false, %49 ], [ false, %49 ], [ false, %15 ], [ %switch.masked85, %62 ], [ false, %switch.lookup80 ], [ %or.cond, %11 ], [ %not., %61 ], [ %or.cond75, %50 ] +_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit: ; preds = %50, %61, %11, %62, %15, %switch.lookup, %49, %49, %39, %37, %35, %34, %33, %33, %31, %29, %29, %27, %24, %14, %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49, %53, %40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47 + %.0 = phi i1 [ %67, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47 ], [ false, %40 ], [ false, %53 ], [ false, %14 ], [ %28, %27 ], [ %32, %31 ], [ false, %39 ], [ %38, %37 ], [ %36, %35 ], [ true, %24 ], [ false, %29 ], [ false, %29 ], [ false, %33 ], [ false, %33 ], [ true, %34 ], [ true, %switch.lookup ], [ false, %49 ], [ false, %49 ], [ false, %15 ], [ %switch, %62 ], [ false, %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49 ], [ %or.cond, %11 ], [ %not., %61 ], [ %or.cond77, %50 ] ret i1 %.0 } diff --git a/bench/wasmtime-rs/optimized/18flldcd4wnig7ks.ll b/bench/wasmtime-rs/optimized/18flldcd4wnig7ks.ll index bdd1886784f..b7adb532e57 100644 --- a/bench/wasmtime-rs/optimized/18flldcd4wnig7ks.ll +++ b/bench/wasmtime-rs/optimized/18flldcd4wnig7ks.ll @@ -5096,22 +5096,19 @@ define hidden void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$11extend_with17h01846edfe698 i8 2, label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i" i8 3, label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.exit6.i.i" i8 4, label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i" - i8 5, label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.exit12.i.i" + i8 5, label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.exit6.i.i" i8 6, label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i" ] default.unreachable: ; preds = %37 unreachable -"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.exit6.i.i": ; preds = %37 +"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.exit6.i.i": ; preds = %37, %37 br label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i" -"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.exit12.i.i": ; preds = %37 - br label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i" - -"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i": ; preds = %37, %37, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.exit12.i.i", %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.exit6.i.i", %37, %37, %37 - %.sroa.12.sroa.0.0.i = phi i32 [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ], [ %19, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.exit6.i.i" ], [ %19, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.exit12.i.i" ], [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ] - %.sroa.12.sroa.8.0.i = phi i32 [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ], [ %21, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.exit6.i.i" ], [ %21, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.exit12.i.i" ], [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ] +"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i": ; preds = %37, %37, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.exit6.i.i", %37, %37, %37 + %.sroa.12.sroa.0.0.i = phi i32 [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ], [ %19, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.exit6.i.i" ], [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ] + %.sroa.12.sroa.8.0.i = phi i32 [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ], [ %21, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.exit6.i.i" ], [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ] %.sroa.12.sroa.8.0.insert.ext.i = zext i32 %.sroa.12.sroa.8.0.i to i64 %.sroa.12.sroa.8.0.insert.shift.i = shl nuw i64 %.sroa.12.sroa.8.0.insert.ext.i, 32 %.sroa.12.sroa.0.0.insert.ext.i = zext i32 %.sroa.12.sroa.0.0.i to i64 @@ -6933,28 +6930,45 @@ define hidden void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$6resize17hcc251ce4b38c037dE" %18 = add i64 %8, -1 %19 = add i64 %18, %13 %switch = icmp eq i8 %.sroa.0.0.copyload, 7 - br label %20 + br i1 %switch, label %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i.us", label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" + +"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i.us": ; preds = %.lr.ph.i, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i.us" + %.032.i.us = phi ptr [ %21, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i.us" ], [ %16, %.lr.ph.i ] + %.sroa.03.031.i.us = phi i64 [ %20, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i.us" ], [ 1, %.lr.ph.i ] + %20 = add nuw i64 %.sroa.03.031.i.us, 1 + store i8 7, ptr %.032.i.us, align 8, !noalias !1469 + %21 = getelementptr inbounds i8, ptr %.032.i.us, i64 40 + %exitcond.not.i.us = icmp eq i64 %20, %8 + br i1 %exitcond.not.i.us, label %._crit_edge.thread.i, label %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i.us" + +"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i": ; preds = %.lr.ph.i, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" + %.032.i = phi ptr [ %23, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ %16, %.lr.ph.i ] + %.sroa.03.031.i = phi i64 [ %22, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ 1, %.lr.ph.i ] + %22 = add nuw i64 %.sroa.03.031.i, 1 + store i8 %.sroa.0.0.copyload, ptr %.032.i, align 8, !noalias !1469 + %.sroa.517.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 1 + store i8 %.sroa.5.0.copyload, ptr %.sroa.517.0..0.sroa_idx.i, align 1, !noalias !1469 + %.sroa.6.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 2 + store i16 %.sroa.6.0.copyload, ptr %.sroa.6.0..0.sroa_idx.i, align 2, !noalias !1469 + %.sroa.7.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 4 + store i32 %.sroa.7.0.copyload, ptr %.sroa.7.0..0.sroa_idx.i, align 4, !noalias !1469 + %.sroa.8.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 8 + store i64 %.sroa.8.0.copyload, ptr %.sroa.8.0..0.sroa_idx.i, align 8, !noalias !1469 + %.sroa.9.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 16 + store i64 %.sroa.11.0.copyload, ptr %.sroa.9.0..0.sroa_idx.i, align 8, !noalias !1469 + %.sroa.10.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 24 + store i32 %.sroa.12.0.copyload, ptr %.sroa.10.0..0.sroa_idx.i, align 8, !noalias !1469 + %.sroa.11.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 28 + store i32 %.sroa.13.0.copyload, ptr %.sroa.11.0..0.sroa_idx.i, align 4, !noalias !1469 + %.sroa.12.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 32 + store i64 %.sroa.14.0.copyload, ptr %.sroa.12.0..0.sroa_idx.i, align 8, !noalias !1469 + %23 = getelementptr inbounds i8, ptr %.032.i, i64 40 + %exitcond.not.i = icmp eq i64 %22, %8 + br i1 %exitcond.not.i, label %._crit_edge.thread.i, label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" -20: ; preds = %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i", %.lr.ph.i - %.032.i = phi ptr [ %16, %.lr.ph.i ], [ %23, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i" ] - %.sroa.03.031.i = phi i64 [ 1, %.lr.ph.i ], [ %21, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i" ] - %.sroa.12.029.i = phi i64 [ undef, %.lr.ph.i ], [ %.sroa.12.1.i, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i" ] - %.sroa.517.028.i = phi i8 [ undef, %.lr.ph.i ], [ %.sroa.517.1.i, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i" ] - %.sroa.6.027.i = phi i16 [ undef, %.lr.ph.i ], [ %.sroa.6.1.i, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i" ] - %.sroa.7.026.i = phi i32 [ undef, %.lr.ph.i ], [ %.sroa.7.1.i, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i" ] - %.sroa.8.025.i = phi i64 [ undef, %.lr.ph.i ], [ %.sroa.8.1.i, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i" ] - %.sroa.9.024.i = phi i64 [ undef, %.lr.ph.i ], [ %.sroa.9.1.i, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i" ] - %.sroa.10.023.i = phi i32 [ undef, %.lr.ph.i ], [ %.sroa.10.1.i, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i" ] - %.sroa.11.022.i = phi i32 [ undef, %.lr.ph.i ], [ %.sroa.11.1.i, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i" ] - %21 = add nuw i64 %.sroa.03.031.i, 1 - br i1 %switch, label %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i", label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" - -"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i": ; preds = %20 - br label %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i" - -._crit_edge.thread.i: ; preds = %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i", %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h9efaa183f0df617dE.exit.i" - %.0.lcssa56.i = phi ptr [ %16, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h9efaa183f0df617dE.exit.i" ], [ %23, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i" ] - %storemerge.lcssa55.i = phi i64 [ %13, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h9efaa183f0df617dE.exit.i" ], [ %19, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i" ] +._crit_edge.thread.i: ; preds = %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i", %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i.us", %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h9efaa183f0df617dE.exit.i" + %.0.lcssa56.i = phi ptr [ %16, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h9efaa183f0df617dE.exit.i" ], [ %21, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i.us" ], [ %23, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ] + %storemerge.lcssa55.i = phi i64 [ %13, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h9efaa183f0df617dE.exit.i" ], [ %19, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i.us" ], [ %19, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ] store i8 %.sroa.0.0.copyload, ptr %.0.lcssa56.i, align 8 %.sroa.5.0..0.lcssa56.i.sroa_idx = getelementptr inbounds i8, ptr %.0.lcssa56.i, i64 1 store i8 %.sroa.5.0.copyload, ptr %.sroa.5.0..0.lcssa56.i.sroa_idx, align 1 @@ -6972,41 +6986,11 @@ define hidden void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$6resize17hcc251ce4b38c037dE" store i32 %.sroa.13.0.copyload, ptr %.sroa.13.0..0.lcssa56.i.sroa_idx, align 4 %.sroa.14.0..0.lcssa56.i.sroa_idx = getelementptr inbounds i8, ptr %.0.lcssa56.i, i64 32 store i64 %.sroa.14.0.copyload, ptr %.sroa.14.0..0.lcssa56.i.sroa_idx, align 8 - %22 = add i64 %storemerge.lcssa55.i, 1 + %24 = add i64 %storemerge.lcssa55.i, 1 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$8truncate17h64c79df9db8c05ccE.llvm.12599983639457799574.exit" -"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h7ab8591e8fdee786E.exit.i": ; preds = %20, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" - %.sroa.11.1.i = phi i32 [ %.sroa.13.0.copyload, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ %.sroa.11.022.i, %20 ] - %.sroa.10.1.i = phi i32 [ %.sroa.12.0.copyload, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ %.sroa.10.023.i, %20 ] - %.sroa.9.1.i = phi i64 [ %.sroa.11.0.copyload, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ %.sroa.9.024.i, %20 ] - %.sroa.8.1.i = phi i64 [ %.sroa.8.0.copyload, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ %.sroa.8.025.i, %20 ] - %.sroa.7.1.i = phi i32 [ %.sroa.7.0.copyload, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ %.sroa.7.026.i, %20 ] - %.sroa.6.1.i = phi i16 [ %.sroa.6.0.copyload, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ %.sroa.6.027.i, %20 ] - %.sroa.517.1.i = phi i8 [ %.sroa.5.0.copyload, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ %.sroa.517.028.i, %20 ] - %.sroa.12.1.i = phi i64 [ %.sroa.14.0.copyload, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ %.sroa.12.029.i, %20 ] - store i8 %.sroa.0.0.copyload, ptr %.032.i, align 8, !noalias !1469 - %.sroa.517.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 1 - store i8 %.sroa.517.1.i, ptr %.sroa.517.0..0.sroa_idx.i, align 1, !noalias !1469 - %.sroa.6.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 2 - store i16 %.sroa.6.1.i, ptr %.sroa.6.0..0.sroa_idx.i, align 2, !noalias !1469 - %.sroa.7.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 4 - store i32 %.sroa.7.1.i, ptr %.sroa.7.0..0.sroa_idx.i, align 4, !noalias !1469 - %.sroa.8.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 8 - store i64 %.sroa.8.1.i, ptr %.sroa.8.0..0.sroa_idx.i, align 8, !noalias !1469 - %.sroa.9.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 16 - store i64 %.sroa.9.1.i, ptr %.sroa.9.0..0.sroa_idx.i, align 8, !noalias !1469 - %.sroa.10.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 24 - store i32 %.sroa.10.1.i, ptr %.sroa.10.0..0.sroa_idx.i, align 8, !noalias !1469 - %.sroa.11.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 28 - store i32 %.sroa.11.1.i, ptr %.sroa.11.0..0.sroa_idx.i, align 4, !noalias !1469 - %.sroa.12.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 32 - store i64 %.sroa.12.1.i, ptr %.sroa.12.0..0.sroa_idx.i, align 8, !noalias !1469 - %23 = getelementptr inbounds i8, ptr %.032.i, i64 40 - %exitcond.not.i = icmp eq i64 %21, %8 - br i1 %exitcond.not.i, label %._crit_edge.thread.i, label %20 - "_ZN5alloc3vec16Vec$LT$T$C$A$GT$8truncate17h64c79df9db8c05ccE.llvm.12599983639457799574.exit": ; preds = %._crit_edge.thread.i, %3 - %storemerge = phi i64 [ %1, %3 ], [ %22, %._crit_edge.thread.i ] + %storemerge = phi i64 [ %1, %3 ], [ %24, %._crit_edge.thread.i ] store i64 %storemerge, ptr %4, align 8 ret void } diff --git a/bench/wasmtime-rs/optimized/526qiozl2mm0d4p0.ll b/bench/wasmtime-rs/optimized/526qiozl2mm0d4p0.ll index 6a251541af5..f645fb55827 100644 --- a/bench/wasmtime-rs/optimized/526qiozl2mm0d4p0.ll +++ b/bench/wasmtime-rs/optimized/526qiozl2mm0d4p0.ll @@ -11494,8 +11494,8 @@ switch.lookup: ; preds = %1 define noundef range(i8 1, 3) i8 @_ZN16wasmtime_environ9component4info13FixedEncoding5width17hc795ad6859aa152aE(ptr noalias nocapture noundef readonly align 1 dereferenceable(1) %0) unnamed_addr #9 { %2 = load i8, ptr %0, align 1, !range !1571, !noundef !49 %switch = icmp eq i8 %2, 1 - %spec.select = select i1 %switch, i8 2, i8 1 - ret i8 %spec.select + %. = select i1 %switch, i8 2, i8 1 + ret i8 %. } ; Function Attrs: nonlazybind uwtable @@ -12793,30 +12793,11 @@ define noundef zeroext i1 @"_ZN182_$LT$wasmtime_environ..tunables.._..$LT$impl$u ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable define { ptr, ptr } @"_ZN78_$LT$wasmtime_environ..compile..CompileError$u20$as$u20$core..error..Error$GT$6source17h5edbc8538b87d7fcE"(ptr noalias noundef readonly align 8 dereferenceable(32) %0) unnamed_addr #9 { %2 = load i64, ptr %0, align 8, !range !1081, !noundef !49 - %3 = add i64 %2, 9223372036854775805 - %4 = icmp ult i64 %3, 2 - %5 = add nsw i64 %2, 9223372036854775806 - %6 = select i1 %4, i64 %5, i64 0 - switch i64 %6, label %7 [ - i64 0, label %10 - i64 1, label %8 - i64 2, label %9 - ] - -7: ; preds = %1 - unreachable - -8: ; preds = %1 - br label %10 - -9: ; preds = %1 - br label %10 - -10: ; preds = %1, %9, %8 - %.sroa.0.0 = phi ptr [ null, %9 ], [ null, %8 ], [ %0, %1 ] - %11 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 - %12 = insertvalue { ptr, ptr } %11, ptr @anon.d85152804b0e6a658af4011f794a6e53.156, 1 - ret { ptr, ptr } %12 + %3 = icmp ult i64 %2, -9223372036854775805 + %. = select i1 %3, ptr %0, ptr null + %4 = insertvalue { ptr, ptr } poison, ptr %., 0 + %5 = insertvalue { ptr, ptr } %4, ptr @anon.d85152804b0e6a658af4011f794a6e53.156, 1 + ret { ptr, ptr } %5 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/wasmtime-rs/optimized/yijsgxkf5yj6ls1.ll b/bench/wasmtime-rs/optimized/yijsgxkf5yj6ls1.ll index a3ccf714dd8..320106e3f36 100644 --- a/bench/wasmtime-rs/optimized/yijsgxkf5yj6ls1.ll +++ b/bench/wasmtime-rs/optimized/yijsgxkf5yj6ls1.ll @@ -539,22 +539,19 @@ define hidden void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$11extend_with17h4c49c9f277e6 i8 2, label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i" i8 3, label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.llvm.1718329805141733722.exit6.i.i" i8 4, label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i" - i8 5, label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.llvm.1718329805141733722.exit12.i.i" + i8 5, label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.llvm.1718329805141733722.exit6.i.i" i8 6, label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i" ] default.unreachable: ; preds = %37 unreachable -"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.llvm.1718329805141733722.exit6.i.i": ; preds = %37 +"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.llvm.1718329805141733722.exit6.i.i": ; preds = %37, %37 br label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i" -"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.llvm.1718329805141733722.exit12.i.i": ; preds = %37 - br label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i" - -"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i": ; preds = %37, %37, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.llvm.1718329805141733722.exit12.i.i", %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.llvm.1718329805141733722.exit6.i.i", %37, %37, %37 - %.sroa.12.sroa.0.0.i = phi i32 [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ], [ %19, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.llvm.1718329805141733722.exit6.i.i" ], [ %19, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.llvm.1718329805141733722.exit12.i.i" ], [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ] - %.sroa.12.sroa.8.0.i = phi i32 [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ], [ %21, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.llvm.1718329805141733722.exit6.i.i" ], [ %21, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.llvm.1718329805141733722.exit12.i.i" ], [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ] +"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i": ; preds = %37, %37, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.llvm.1718329805141733722.exit6.i.i", %37, %37, %37 + %.sroa.12.sroa.0.0.i = phi i32 [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ], [ %19, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.llvm.1718329805141733722.exit6.i.i" ], [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.0.0.extract.trunc.i, %37 ] + %.sroa.12.sroa.8.0.i = phi i32 [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ], [ %21, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Expr$u20$as$u20$core..clone..Clone$GT$5clone17hda07561bf74c99d2E.llvm.1718329805141733722.exit6.i.i" ], [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ], [ %.sroa.12.sroa.8.0.extract.trunc.i, %37 ] %.sroa.12.sroa.8.0.insert.ext.i = zext i32 %.sroa.12.sroa.8.0.i to i64 %.sroa.12.sroa.8.0.insert.shift.i = shl nuw i64 %.sroa.12.sroa.8.0.insert.ext.i, 32 %.sroa.12.sroa.0.0.insert.ext.i = zext i32 %.sroa.12.sroa.0.0.i to i64 @@ -741,28 +738,45 @@ define hidden void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$6resize17ha8b63f23e43f6130E" %18 = add i64 %8, -1 %19 = add i64 %18, %13 %switch = icmp eq i8 %.sroa.0.0.copyload, 7 - br label %20 - -20: ; preds = %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i", %.lr.ph.i - %.032.i = phi ptr [ %16, %.lr.ph.i ], [ %23, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i" ] - %.sroa.03.031.i = phi i64 [ 1, %.lr.ph.i ], [ %21, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i" ] - %.sroa.12.029.i = phi i64 [ undef, %.lr.ph.i ], [ %.sroa.12.1.i, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i" ] - %.sroa.517.028.i = phi i8 [ undef, %.lr.ph.i ], [ %.sroa.517.1.i, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i" ] - %.sroa.6.027.i = phi i16 [ undef, %.lr.ph.i ], [ %.sroa.6.1.i, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i" ] - %.sroa.7.026.i = phi i32 [ undef, %.lr.ph.i ], [ %.sroa.7.1.i, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i" ] - %.sroa.8.025.i = phi i64 [ undef, %.lr.ph.i ], [ %.sroa.8.1.i, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i" ] - %.sroa.9.024.i = phi i64 [ undef, %.lr.ph.i ], [ %.sroa.9.1.i, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i" ] - %.sroa.10.023.i = phi i32 [ undef, %.lr.ph.i ], [ %.sroa.10.1.i, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i" ] - %.sroa.11.022.i = phi i32 [ undef, %.lr.ph.i ], [ %.sroa.11.1.i, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i" ] - %21 = add nuw i64 %.sroa.03.031.i, 1 - br i1 %switch, label %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i", label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" - -"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i": ; preds = %20 - br label %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i" - -._crit_edge.thread.i: ; preds = %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i", %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0dd776e98067f090E.exit.i" - %.0.lcssa56.i = phi ptr [ %16, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0dd776e98067f090E.exit.i" ], [ %23, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i" ] - %storemerge.lcssa55.i = phi i64 [ %13, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0dd776e98067f090E.exit.i" ], [ %19, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i" ] + br i1 %switch, label %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i.us", label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" + +"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i.us": ; preds = %.lr.ph.i, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i.us" + %.032.i.us = phi ptr [ %21, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i.us" ], [ %16, %.lr.ph.i ] + %.sroa.03.031.i.us = phi i64 [ %20, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i.us" ], [ 1, %.lr.ph.i ] + %20 = add nuw i64 %.sroa.03.031.i.us, 1 + store i8 7, ptr %.032.i.us, align 8, !noalias !111 + %21 = getelementptr inbounds i8, ptr %.032.i.us, i64 40 + %exitcond.not.i.us = icmp eq i64 %20, %8 + br i1 %exitcond.not.i.us, label %._crit_edge.thread.i, label %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i.us" + +"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i": ; preds = %.lr.ph.i, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" + %.032.i = phi ptr [ %23, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ %16, %.lr.ph.i ] + %.sroa.03.031.i = phi i64 [ %22, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ 1, %.lr.ph.i ] + %22 = add nuw i64 %.sroa.03.031.i, 1 + store i8 %.sroa.0.0.copyload, ptr %.032.i, align 8, !noalias !111 + %.sroa.517.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 1 + store i8 %.sroa.5.0.copyload, ptr %.sroa.517.0..0.sroa_idx.i, align 1, !noalias !111 + %.sroa.6.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 2 + store i16 %.sroa.6.0.copyload, ptr %.sroa.6.0..0.sroa_idx.i, align 2, !noalias !111 + %.sroa.7.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 4 + store i32 %.sroa.7.0.copyload, ptr %.sroa.7.0..0.sroa_idx.i, align 4, !noalias !111 + %.sroa.8.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 8 + store i64 %.sroa.8.0.copyload, ptr %.sroa.8.0..0.sroa_idx.i, align 8, !noalias !111 + %.sroa.9.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 16 + store i64 %.sroa.11.0.copyload, ptr %.sroa.9.0..0.sroa_idx.i, align 8, !noalias !111 + %.sroa.10.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 24 + store i32 %.sroa.12.0.copyload, ptr %.sroa.10.0..0.sroa_idx.i, align 8, !noalias !111 + %.sroa.11.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 28 + store i32 %.sroa.13.0.copyload, ptr %.sroa.11.0..0.sroa_idx.i, align 4, !noalias !111 + %.sroa.12.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 32 + store i64 %.sroa.14.0.copyload, ptr %.sroa.12.0..0.sroa_idx.i, align 8, !noalias !111 + %23 = getelementptr inbounds i8, ptr %.032.i, i64 40 + %exitcond.not.i = icmp eq i64 %22, %8 + br i1 %exitcond.not.i, label %._crit_edge.thread.i, label %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" + +._crit_edge.thread.i: ; preds = %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i", %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i.us", %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0dd776e98067f090E.exit.i" + %.0.lcssa56.i = phi ptr [ %16, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0dd776e98067f090E.exit.i" ], [ %21, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i.us" ], [ %23, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ] + %storemerge.lcssa55.i = phi i64 [ %13, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0dd776e98067f090E.exit.i" ], [ %19, %"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i.us" ], [ %19, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ] store i8 %.sroa.0.0.copyload, ptr %.0.lcssa56.i, align 8 %.sroa.5.0..0.lcssa56.i.sroa_idx = getelementptr inbounds i8, ptr %.0.lcssa56.i, i64 1 store i8 %.sroa.5.0.copyload, ptr %.sroa.5.0..0.lcssa56.i.sroa_idx, align 1 @@ -780,41 +794,11 @@ define hidden void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$6resize17ha8b63f23e43f6130E" store i32 %.sroa.13.0.copyload, ptr %.sroa.13.0..0.lcssa56.i.sroa_idx, align 4 %.sroa.14.0..0.lcssa56.i.sroa_idx = getelementptr inbounds i8, ptr %.0.lcssa56.i, i64 32 store i64 %.sroa.14.0.copyload, ptr %.sroa.14.0..0.lcssa56.i.sroa_idx, align 8 - %22 = add i64 %storemerge.lcssa55.i, 1 + %24 = add i64 %storemerge.lcssa55.i, 1 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$8truncate17h8b07dfd81abea041E.llvm.1718329805141733722.exit" -"_ZN68_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17heef0267abda4737fE.exit.i": ; preds = %20, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" - %.sroa.11.1.i = phi i32 [ %.sroa.13.0.copyload, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ %.sroa.11.022.i, %20 ] - %.sroa.10.1.i = phi i32 [ %.sroa.12.0.copyload, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ %.sroa.10.023.i, %20 ] - %.sroa.9.1.i = phi i64 [ %.sroa.11.0.copyload, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ %.sroa.9.024.i, %20 ] - %.sroa.8.1.i = phi i64 [ %.sroa.8.0.copyload, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ %.sroa.8.025.i, %20 ] - %.sroa.7.1.i = phi i32 [ %.sroa.7.0.copyload, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ %.sroa.7.026.i, %20 ] - %.sroa.6.1.i = phi i16 [ %.sroa.6.0.copyload, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ %.sroa.6.027.i, %20 ] - %.sroa.517.1.i = phi i8 [ %.sroa.5.0.copyload, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ %.sroa.517.028.i, %20 ] - %.sroa.12.1.i = phi i64 [ %.sroa.14.0.copyload, %"_ZN71_$LT$cranelift_codegen..ir..pcc..Fact$u20$as$u20$core..clone..Clone$GT$5clone17h6e7d016d1ebd55c4E.exit.i.i" ], [ %.sroa.12.029.i, %20 ] - store i8 %.sroa.0.0.copyload, ptr %.032.i, align 8, !noalias !111 - %.sroa.517.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 1 - store i8 %.sroa.517.1.i, ptr %.sroa.517.0..0.sroa_idx.i, align 1, !noalias !111 - %.sroa.6.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 2 - store i16 %.sroa.6.1.i, ptr %.sroa.6.0..0.sroa_idx.i, align 2, !noalias !111 - %.sroa.7.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 4 - store i32 %.sroa.7.1.i, ptr %.sroa.7.0..0.sroa_idx.i, align 4, !noalias !111 - %.sroa.8.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 8 - store i64 %.sroa.8.1.i, ptr %.sroa.8.0..0.sroa_idx.i, align 8, !noalias !111 - %.sroa.9.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 16 - store i64 %.sroa.9.1.i, ptr %.sroa.9.0..0.sroa_idx.i, align 8, !noalias !111 - %.sroa.10.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 24 - store i32 %.sroa.10.1.i, ptr %.sroa.10.0..0.sroa_idx.i, align 8, !noalias !111 - %.sroa.11.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 28 - store i32 %.sroa.11.1.i, ptr %.sroa.11.0..0.sroa_idx.i, align 4, !noalias !111 - %.sroa.12.0..0.sroa_idx.i = getelementptr inbounds i8, ptr %.032.i, i64 32 - store i64 %.sroa.12.1.i, ptr %.sroa.12.0..0.sroa_idx.i, align 8, !noalias !111 - %23 = getelementptr inbounds i8, ptr %.032.i, i64 40 - %exitcond.not.i = icmp eq i64 %21, %8 - br i1 %exitcond.not.i, label %._crit_edge.thread.i, label %20 - "_ZN5alloc3vec16Vec$LT$T$C$A$GT$8truncate17h8b07dfd81abea041E.llvm.1718329805141733722.exit": ; preds = %._crit_edge.thread.i, %3 - %storemerge = phi i64 [ %1, %3 ], [ %22, %._crit_edge.thread.i ] + %storemerge = phi i64 [ %1, %3 ], [ %24, %._crit_edge.thread.i ] store i64 %storemerge, ptr %4, align 8 ret void } diff --git a/bench/wireshark/optimized/packet-drda.c.ll b/bench/wireshark/optimized/packet-drda.c.ll index 2388435fbfe..aee142e6613 100644 --- a/bench/wireshark/optimized/packet-drda.c.ll +++ b/bench/wireshark/optimized/packet-drda.c.ll @@ -1450,30 +1450,30 @@ define internal noundef i32 @dissect_drda_ccsid(ptr noundef %0, ptr nocapture no %7 = call ptr @proto_tree_add_item_ret_uint(ptr noundef %2, i32 noundef %6, ptr noundef %0, i32 noundef 0, i32 noundef 2, i32 noundef 0, ptr noundef nonnull %5) #6 %8 = getelementptr inbounds i8, ptr %1, i64 292 %9 = load i32, ptr %8, align 4 - switch i32 %9, label %31 [ + switch i32 %9, label %29 [ i32 4508, label %10 - i32 4510, label %20 + i32 4510, label %19 ] 10: ; preds = %4 %11 = load i32, ptr %5, align 4 - switch i32 %11, label %19 [ + switch i32 %11, label %18 [ i32 0, label %.sink.split i32 500, label %.sink.split i32 65535, label %.sink.split i32 37, label %12 i32 367, label %13 i32 819, label %14 - i32 850, label %15 - i32 1200, label %16 - i32 1202, label %17 - i32 1208, label %18 + i32 850, label %13 + i32 1200, label %15 + i32 1202, label %16 + i32 1208, label %17 ] 12: ; preds = %10 br label %.sink.split -13: ; preds = %10 +13: ; preds = %10, %10 br label %.sink.split 14: ; preds = %10 @@ -1491,56 +1491,50 @@ define internal noundef i32 @dissect_drda_ccsid(ptr noundef %0, ptr nocapture no 18: ; preds = %10 br label %.sink.split -19: ; preds = %10 - br label %.sink.split - -20: ; preds = %4 - %21 = load i32, ptr %5, align 4 - switch i32 %21, label %29 [ +19: ; preds = %4 + %20 = load i32, ptr %5, align 4 + switch i32 %20, label %27 [ i32 0, label %.sink.split i32 500, label %.sink.split i32 65535, label %.sink.split - i32 37, label %22 - i32 367, label %23 - i32 819, label %24 - i32 850, label %25 - i32 1200, label %26 - i32 1202, label %27 - i32 1208, label %28 + i32 37, label %21 + i32 367, label %22 + i32 819, label %23 + i32 850, label %22 + i32 1200, label %24 + i32 1202, label %25 + i32 1208, label %26 ] -22: ; preds = %20 - br label %.sink.split - -23: ; preds = %20 +21: ; preds = %19 br label %.sink.split -24: ; preds = %20 +22: ; preds = %19, %19 br label %.sink.split -25: ; preds = %20 +23: ; preds = %19 br label %.sink.split -26: ; preds = %20 +24: ; preds = %19 br label %.sink.split -27: ; preds = %20 +25: ; preds = %19 br label %.sink.split -28: ; preds = %20 +26: ; preds = %19 br label %.sink.split -29: ; preds = %20 +27: ; preds = %19 br label %.sink.split -.sink.split: ; preds = %29, %28, %27, %26, %25, %24, %23, %22, %20, %20, %20, %19, %18, %17, %16, %15, %14, %13, %12, %10, %10, %10 - %.sink8 = phi i64 [ 8, %10 ], [ 8, %10 ], [ 8, %10 ], [ 8, %12 ], [ 8, %13 ], [ 8, %14 ], [ 8, %15 ], [ 8, %16 ], [ 8, %17 ], [ 8, %18 ], [ 8, %19 ], [ 12, %20 ], [ 12, %20 ], [ 12, %20 ], [ 12, %22 ], [ 12, %23 ], [ 12, %24 ], [ 12, %25 ], [ 12, %26 ], [ 12, %27 ], [ 12, %28 ], [ 12, %29 ] - %.0.i6.sink = phi i32 [ 96, %10 ], [ 96, %10 ], [ 96, %10 ], [ 56, %12 ], [ 0, %13 ], [ 10, %14 ], [ 0, %15 ], [ 4, %16 ], [ -2147483644, %17 ], [ 2, %18 ], [ 2, %19 ], [ 96, %20 ], [ 96, %20 ], [ 96, %20 ], [ 56, %22 ], [ 0, %23 ], [ 10, %24 ], [ 0, %25 ], [ 4, %26 ], [ -2147483644, %27 ], [ 2, %28 ], [ 2, %29 ] - %30 = getelementptr inbounds i8, ptr %3, i64 %.sink8 - store i32 %.0.i6.sink, ptr %30, align 4 - br label %31 +.sink.split: ; preds = %27, %26, %25, %24, %23, %22, %21, %19, %19, %19, %18, %17, %16, %15, %14, %13, %12, %10, %10, %10 + %.sink8 = phi i64 [ 8, %10 ], [ 8, %10 ], [ 8, %10 ], [ 8, %12 ], [ 8, %13 ], [ 8, %14 ], [ 8, %15 ], [ 8, %16 ], [ 8, %17 ], [ 8, %18 ], [ 12, %19 ], [ 12, %19 ], [ 12, %19 ], [ 12, %21 ], [ 12, %22 ], [ 12, %23 ], [ 12, %24 ], [ 12, %25 ], [ 12, %26 ], [ 12, %27 ] + %.0.i6.sink = phi i32 [ 96, %10 ], [ 96, %10 ], [ 96, %10 ], [ 56, %12 ], [ 0, %13 ], [ 10, %14 ], [ 4, %15 ], [ -2147483644, %16 ], [ 2, %17 ], [ 2, %18 ], [ 96, %19 ], [ 96, %19 ], [ 96, %19 ], [ 56, %21 ], [ 0, %22 ], [ 10, %23 ], [ 4, %24 ], [ -2147483644, %25 ], [ 2, %26 ], [ 2, %27 ] + %28 = getelementptr inbounds i8, ptr %3, i64 %.sink8 + store i32 %.0.i6.sink, ptr %28, align 4 + br label %29 -31: ; preds = %.sink.split, %4 +29: ; preds = %.sink.split, %4 ret i32 2 } diff --git a/bench/wireshark/optimized/packet-fmp.c.ll b/bench/wireshark/optimized/packet-fmp.c.ll index 76ddae04857..6612b4dfcb9 100644 --- a/bench/wireshark/optimized/packet-fmp.c.ll +++ b/bench/wireshark/optimized/packet-fmp.c.ll @@ -1403,60 +1403,45 @@ declare ptr @proto_tree_add_uint(ptr noundef, i32 noundef, ptr noundef, i32 noun ; Function Attrs: nounwind uwtable define internal fastcc i32 @dissect_fmp_status(ptr noundef %0, i32 noundef %1, ptr noundef %2, ptr nocapture noundef nonnull writeonly %3) unnamed_addr #0 { %5 = tail call i32 @tvb_get_ntohl(ptr noundef %0, i32 noundef %1) #3 - switch i32 %5, label %13 [ - i32 0, label %14 + switch i32 %5, label %8 [ + i32 0, label %9 i32 5, label %6 - i32 12, label %7 - i32 13, label %8 - i32 22, label %9 - i32 28, label %14 - i32 79, label %10 - i32 510, label %10 - i32 505, label %10 - i32 500, label %10 - i32 501, label %10 - i32 508, label %10 - i32 502, label %14 - i32 503, label %14 - i32 504, label %14 - i32 506, label %14 - i32 507, label %14 - i32 509, label %14 - i32 511, label %14 - i32 512, label %11 - i32 600, label %12 + i32 12, label %6 + i32 13, label %6 + i32 22, label %6 + i32 28, label %9 + i32 79, label %7 + i32 510, label %7 + i32 505, label %7 + i32 500, label %7 + i32 501, label %7 + i32 508, label %7 + i32 502, label %9 + i32 503, label %9 + i32 504, label %9 + i32 506, label %9 + i32 507, label %9 + i32 509, label %9 + i32 511, label %9 + i32 512, label %6 + i32 600, label %6 ] -6: ; preds = %4 - br label %14 +6: ; preds = %4, %4, %4, %4, %4, %4 + br label %9 -7: ; preds = %4 - br label %14 +7: ; preds = %4, %4, %4, %4, %4, %4 + br label %9 8: ; preds = %4 - br label %14 + br label %9 -9: ; preds = %4 - br label %14 - -10: ; preds = %4, %4, %4, %4, %4, %4 - br label %14 - -11: ; preds = %4 - br label %14 - -12: ; preds = %4 - br label %14 - -13: ; preds = %4 - br label %14 - -14: ; preds = %4, %4, %4, %4, %4, %4, %4, %4, %4, %13, %12, %11, %10, %9, %8, %7, %6 - %.sink = phi i32 [ 1, %13 ], [ 1, %12 ], [ 1, %11 ], [ 1, %10 ], [ 1, %9 ], [ 1, %8 ], [ 1, %7 ], [ 1, %6 ], [ 0, %4 ], [ 0, %4 ], [ 0, %4 ], [ 0, %4 ], [ 0, %4 ], [ 0, %4 ], [ 0, %4 ], [ 0, %4 ], [ 0, %4 ] +9: ; preds = %4, %4, %4, %4, %4, %4, %4, %4, %4, %8, %7, %6 + %.sink = phi i32 [ 1, %8 ], [ 1, %7 ], [ 1, %6 ], [ 0, %4 ], [ 0, %4 ], [ 0, %4 ], [ 0, %4 ], [ 0, %4 ], [ 0, %4 ], [ 0, %4 ], [ 0, %4 ], [ 0, %4 ] store i32 %.sink, ptr %3, align 4 - %15 = load i32, ptr @hf_fmp_status, align 4 - %16 = tail call i32 @dissect_rpc_uint32(ptr noundef %0, ptr noundef %2, i32 noundef %15, i32 noundef %1) #3 - ret i32 %16 + %10 = load i32, ptr @hf_fmp_status, align 4 + %11 = tail call i32 @dissect_rpc_uint32(ptr noundef %0, ptr noundef %2, i32 noundef %10, i32 noundef %1) #3 + ret i32 %11 } declare i32 @dissect_rpc_data(ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #1 diff --git a/bench/wireshark/optimized/packet-fmp_notify.c.ll b/bench/wireshark/optimized/packet-fmp_notify.c.ll index f1e715fce66..4f8b5bab935 100644 --- a/bench/wireshark/optimized/packet-fmp_notify.c.ll +++ b/bench/wireshark/optimized/packet-fmp_notify.c.ll @@ -357,75 +357,42 @@ declare i32 @dissect_rpc_uint32(ptr noundef, ptr noundef, i32 noundef, i32 nound ; Function Attrs: nounwind uwtable define internal fastcc i32 @dissect_fmp_notify_status(ptr noundef %0, ptr noundef %1, ptr nocapture noundef nonnull writeonly %2) unnamed_addr #0 { %4 = tail call i32 @tvb_get_ntohl(ptr noundef %0, i32 noundef 0) #2 - switch i32 %4, label %17 [ - i32 0, label %18 + switch i32 %4, label %6 [ + i32 0, label %7 i32 5, label %5 - i32 12, label %6 - i32 13, label %7 - i32 22, label %8 - i32 28, label %18 - i32 79, label %9 - i32 500, label %10 - i32 501, label %11 - i32 502, label %18 - i32 503, label %18 - i32 504, label %18 - i32 505, label %12 - i32 506, label %18 - i32 507, label %18 - i32 508, label %13 - i32 509, label %18 - i32 510, label %14 - i32 511, label %18 - i32 512, label %15 - i32 600, label %16 + i32 12, label %5 + i32 13, label %5 + i32 22, label %5 + i32 28, label %7 + i32 79, label %5 + i32 500, label %5 + i32 501, label %5 + i32 502, label %7 + i32 503, label %7 + i32 504, label %7 + i32 505, label %5 + i32 506, label %7 + i32 507, label %7 + i32 508, label %5 + i32 509, label %7 + i32 510, label %5 + i32 511, label %7 + i32 512, label %5 + i32 600, label %5 ] -5: ; preds = %3 - br label %18 +5: ; preds = %3, %3, %3, %3, %3, %3, %3, %3, %3, %3, %3, %3 + br label %7 6: ; preds = %3 - br label %18 + br label %7 -7: ; preds = %3 - br label %18 - -8: ; preds = %3 - br label %18 - -9: ; preds = %3 - br label %18 - -10: ; preds = %3 - br label %18 - -11: ; preds = %3 - br label %18 - -12: ; preds = %3 - br label %18 - -13: ; preds = %3 - br label %18 - -14: ; preds = %3 - br label %18 - -15: ; preds = %3 - br label %18 - -16: ; preds = %3 - br label %18 - -17: ; preds = %3 - br label %18 - -18: ; preds = %3, %3, %3, %3, %3, %3, %3, %3, %3, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5 - %.sink = phi i32 [ 1, %17 ], [ 1, %16 ], [ 1, %15 ], [ 1, %14 ], [ 1, %13 ], [ 1, %12 ], [ 1, %11 ], [ 1, %10 ], [ 1, %9 ], [ 1, %8 ], [ 1, %7 ], [ 1, %6 ], [ 1, %5 ], [ 0, %3 ], [ 0, %3 ], [ 0, %3 ], [ 0, %3 ], [ 0, %3 ], [ 0, %3 ], [ 0, %3 ], [ 0, %3 ], [ 0, %3 ] +7: ; preds = %3, %3, %3, %3, %3, %3, %3, %3, %3, %6, %5 + %.sink = phi i32 [ 1, %6 ], [ 1, %5 ], [ 0, %3 ], [ 0, %3 ], [ 0, %3 ], [ 0, %3 ], [ 0, %3 ], [ 0, %3 ], [ 0, %3 ], [ 0, %3 ], [ 0, %3 ] store i32 %.sink, ptr %2, align 4 - %19 = load i32, ptr @hf_fmp_status, align 4 - %20 = tail call i32 @dissect_rpc_uint32(ptr noundef %0, ptr noundef %1, i32 noundef %19, i32 noundef 0) #2 - ret i32 %20 + %8 = load i32, ptr @hf_fmp_status, align 4 + %9 = tail call i32 @dissect_rpc_uint32(ptr noundef %0, ptr noundef %1, i32 noundef %8, i32 noundef 0) #2 + ret i32 %9 } declare i32 @tvb_get_ntohl(ptr noundef, i32 noundef) local_unnamed_addr #1 diff --git a/bench/wireshark/optimized/packet-llrp.c.ll b/bench/wireshark/optimized/packet-llrp.c.ll index 2d8c5601e9b..ded7b25e257 100644 --- a/bench/wireshark/optimized/packet-llrp.c.ll +++ b/bench/wireshark/optimized/packet-llrp.c.ll @@ -1614,8 +1614,8 @@ define internal fastcc i32 @dissect_llrp_parameters(ptr noundef %0, ptr noundef %11 = add nuw nsw i32 %5, 1 br label %12 -12: ; preds = %.lr.ph, %1249 - %.011711185 = phi i32 [ %3, %.lr.ph ], [ %.11172, %1249 ] +12: ; preds = %.lr.ph, %1248 + %.011711185 = phi i32 [ %3, %.lr.ph ], [ %.11172, %1248 ] %13 = call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %.011711185) #3 %.not = icmp sgt i8 %13, -1 br i1 %.not, label %14, label %1211 @@ -3281,12 +3281,12 @@ dissect_llrp_utf8_parameter.exit1183: ; preds = %551, %554 dissect_llrp_impinj_parameter.exit: ; preds = %1201, %890, %1203, %869, %862, %852, %836, %828, %812, %790, %783, %775, %761, %754, %732, %716, %687, %679, %668, %661, %657, %650, %633, %628, %623, %590, %573, %565, %558, %dissect_llrp_utf8_parameter.exit1183, %535, %531, %524, %513, %503, %dissect_llrp_utf8_parameter.exit1180, %486, %476, %469, %462, %455, %441, %430, %426, %403, %395, %391, %381, %371, %367, %362, %352, %345, %338, %328, %324, %319, %315, %308, %291, %287, %277, %266, %258, %239, %231, %226, %218, %208, %200, %195, %184, %177, %173, %163, %158, %151, %143, %110, %103, %96, %86, %79, %75, %dissect_llrp_utf8_parameter.exit, %44, %42, %40 %.0 = phi i32 [ %41, %40 ], [ %868, %862 ], [ %861, %852 ], [ %851, %836 ], [ %835, %828 ], [ %827, %812 ], [ %811, %790 ], [ %789, %783 ], [ %782, %775 ], [ %774, %761 ], [ %760, %754 ], [ %753, %732 ], [ %731, %716 ], [ %715, %687 ], [ %686, %679 ], [ %678, %668 ], [ %667, %661 ], [ %660, %657 ], [ %656, %650 ], [ %649, %633 ], [ %632, %628 ], [ %627, %623 ], [ %622, %590 ], [ %589, %573 ], [ %572, %565 ], [ %564, %558 ], [ %557, %dissect_llrp_utf8_parameter.exit1183 ], [ %541, %535 ], [ %884, %869 ], [ %534, %531 ], [ %530, %524 ], [ %523, %513 ], [ %512, %503 ], [ %502, %dissect_llrp_utf8_parameter.exit1180 ], [ %1207, %1203 ], [ %489, %486 ], [ %485, %476 ], [ %475, %469 ], [ %468, %462 ], [ %461, %455 ], [ %454, %441 ], [ %440, %430 ], [ %429, %426 ], [ %425, %403 ], [ %402, %395 ], [ %394, %391 ], [ %390, %381 ], [ %380, %371 ], [ %370, %367 ], [ %366, %362 ], [ %361, %352 ], [ %351, %345 ], [ %344, %338 ], [ %337, %328 ], [ %327, %324 ], [ %323, %319 ], [ %318, %315 ], [ %314, %308 ], [ %307, %291 ], [ %290, %287 ], [ %286, %277 ], [ %276, %266 ], [ %265, %258 ], [ %257, %239 ], [ %238, %231 ], [ %230, %226 ], [ %225, %218 ], [ %217, %208 ], [ %207, %200 ], [ %199, %195 ], [ %194, %184 ], [ %183, %177 ], [ %176, %173 ], [ %172, %163 ], [ %162, %158 ], [ %157, %151 ], [ %150, %143 ], [ %142, %110 ], [ %109, %103 ], [ %102, %96 ], [ %95, %86 ], [ %85, %79 ], [ %78, %75 ], [ %74, %dissect_llrp_utf8_parameter.exit ], [ %47, %44 ], [ %43, %42 ], [ %1202, %1201 ], [ %895, %890 ] %.not1177 = icmp eq i32 %.0, %26 - br i1 %.not1177, label %1249, label %1208 + br i1 %.not1177, label %1248, label %1208 1208: ; preds = %dissect_llrp_impinj_parameter.exit %1209 = sub i32 %.0, %.011711185 %1210 = call ptr (ptr, ptr, ptr, ptr, ...) @expert_add_info_format(ptr noundef %1, ptr noundef %33, ptr noundef nonnull @ei_llrp_invalid_length, ptr noundef nonnull @.str.908, i32 noundef %1209, i32 noundef %.01170) #3 - br label %1249 + br label %1248 1211: ; preds = %12 %1212 = call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %.011711185) #3 @@ -3313,7 +3313,7 @@ switch.lookup: ; preds = %1211 %1224 = load i32, ptr @hf_llrp_tv_type, align 4 %1225 = call ptr @proto_tree_add_item(ptr noundef %1223, i32 noundef %1224, ptr noundef %0, i32 noundef %.011711185, i32 noundef 1, i32 noundef 0) #3 %1226 = add i32 %.011711185, 1 - switch i8 %1213, label %1247 [ + switch i8 %1213, label %1246 [ i8 1, label %.sink.split i8 2, label %1227 i8 3, label %1227 @@ -3330,10 +3330,10 @@ switch.lookup: ; preds = %1211 i8 14, label %1236 i8 15, label %1237 i8 16, label %1238 - i8 17, label %1239 - i8 18, label %1240 - i8 19, label %1243 - i8 20, label %1244 + i8 17, label %1237 + i8 18, label %1239 + i8 19, label %1242 + i8 20, label %1243 ] 1227: ; preds = %1217, %1217, %1217, %1217 @@ -3366,45 +3366,42 @@ switch.lookup: ; preds = %1211 1236: ; preds = %1217 br label %.sink.split -1237: ; preds = %1217 +1237: ; preds = %1217, %1217 br label %.sink.split 1238: ; preds = %1217 br label %.sink.split 1239: ; preds = %1217 + %1240 = load i32, ptr @hf_llrp_num_coll, align 4 + %1241 = call ptr @proto_tree_add_item(ptr noundef %1223, i32 noundef %1240, ptr noundef %0, i32 noundef %1226, i32 noundef 2, i32 noundef 0) #3 br label %.sink.split -1240: ; preds = %1217 - %1241 = load i32, ptr @hf_llrp_num_coll, align 4 - %1242 = call ptr @proto_tree_add_item(ptr noundef %1223, i32 noundef %1241, ptr noundef %0, i32 noundef %1226, i32 noundef 2, i32 noundef 0) #3 +1242: ; preds = %1217 br label %.sink.split 1243: ; preds = %1217 br label %.sink.split -1244: ; preds = %1217 - br label %.sink.split - -.sink.split: ; preds = %1217, %1227, %1228, %1229, %1230, %1231, %1232, %1233, %1234, %1235, %1236, %1237, %1238, %1239, %1240, %1243, %1244 - %hf_llrp_xpc_w2.sink = phi ptr [ @hf_llrp_xpc_w2, %1244 ], [ @hf_llrp_xpc_w1, %1243 ], [ @hf_llrp_num_empty, %1240 ], [ @hf_llrp_opspec_id, %1239 ], [ @hf_llrp_accessspec_id, %1238 ], [ @hf_llrp_opspec_id, %1237 ], [ @hf_llrp_spec_idx, %1236 ], [ @hf_llrp_epc, %1235 ], [ @hf_llrp_pc_bits, %1234 ], [ @hf_llrp_crc, %1233 ], [ @hf_llrp_inventory_spec_id, %1232 ], [ @hf_llrp_rospec_id, %1231 ], [ @hf_llrp_tag_count, %1230 ], [ @hf_llrp_channel_idx, %1229 ], [ @hf_llrp_peak_rssi, %1228 ], [ @hf_llrp_microseconds, %1227 ], [ @hf_llrp_antenna_id, %1217 ] - %.sink1188 = phi i32 [ 2, %1244 ], [ 2, %1243 ], [ 2, %1240 ], [ 2, %1239 ], [ 4, %1238 ], [ 2, %1237 ], [ 2, %1236 ], [ 12, %1235 ], [ 2, %1234 ], [ 2, %1233 ], [ 2, %1232 ], [ 4, %1231 ], [ 2, %1230 ], [ 2, %1229 ], [ 1, %1228 ], [ 8, %1227 ], [ 2, %1217 ] - %1245 = load i32, ptr %hf_llrp_xpc_w2.sink, align 4 - %1246 = call ptr @proto_tree_add_item(ptr noundef %1223, i32 noundef %1245, ptr noundef %0, i32 noundef %1226, i32 noundef %.sink1188, i32 noundef 0) #3 - br label %1247 - -1247: ; preds = %.sink.split, %1217 - %1248 = add i32 %.1, %1226 - br label %1249 - -1249: ; preds = %dissect_llrp_impinj_parameter.exit, %1208, %1247 - %.11172 = phi i32 [ %1248, %1247 ], [ %26, %1208 ], [ %26, %dissect_llrp_impinj_parameter.exit ] - %1250 = sub i32 %4, %.11172 - %1251 = icmp sgt i32 %1250, 0 - br i1 %1251, label %12, label %._crit_edge, !llvm.loop !5 - -._crit_edge: ; preds = %25, %1249, %6 - %.01169 = phi i32 [ %3, %6 ], [ %.11172, %1249 ], [ %26, %25 ] +.sink.split: ; preds = %1217, %1227, %1228, %1229, %1230, %1231, %1232, %1233, %1234, %1235, %1236, %1237, %1238, %1239, %1242, %1243 + %hf_llrp_xpc_w2.sink = phi ptr [ @hf_llrp_xpc_w2, %1243 ], [ @hf_llrp_xpc_w1, %1242 ], [ @hf_llrp_num_empty, %1239 ], [ @hf_llrp_accessspec_id, %1238 ], [ @hf_llrp_opspec_id, %1237 ], [ @hf_llrp_spec_idx, %1236 ], [ @hf_llrp_epc, %1235 ], [ @hf_llrp_pc_bits, %1234 ], [ @hf_llrp_crc, %1233 ], [ @hf_llrp_inventory_spec_id, %1232 ], [ @hf_llrp_rospec_id, %1231 ], [ @hf_llrp_tag_count, %1230 ], [ @hf_llrp_channel_idx, %1229 ], [ @hf_llrp_peak_rssi, %1228 ], [ @hf_llrp_microseconds, %1227 ], [ @hf_llrp_antenna_id, %1217 ] + %.sink1188 = phi i32 [ 2, %1243 ], [ 2, %1242 ], [ 2, %1239 ], [ 4, %1238 ], [ 2, %1237 ], [ 2, %1236 ], [ 12, %1235 ], [ 2, %1234 ], [ 2, %1233 ], [ 2, %1232 ], [ 4, %1231 ], [ 2, %1230 ], [ 2, %1229 ], [ 1, %1228 ], [ 8, %1227 ], [ 2, %1217 ] + %1244 = load i32, ptr %hf_llrp_xpc_w2.sink, align 4 + %1245 = call ptr @proto_tree_add_item(ptr noundef %1223, i32 noundef %1244, ptr noundef %0, i32 noundef %1226, i32 noundef %.sink1188, i32 noundef 0) #3 + br label %1246 + +1246: ; preds = %.sink.split, %1217 + %1247 = add i32 %.1, %1226 + br label %1248 + +1248: ; preds = %dissect_llrp_impinj_parameter.exit, %1208, %1246 + %.11172 = phi i32 [ %1247, %1246 ], [ %26, %1208 ], [ %26, %dissect_llrp_impinj_parameter.exit ] + %1249 = sub i32 %4, %.11172 + %1250 = icmp sgt i32 %1249, 0 + br i1 %1250, label %12, label %._crit_edge, !llvm.loop !5 + +._crit_edge: ; preds = %25, %1248, %6 + %.01169 = phi i32 [ %3, %6 ], [ %.11172, %1248 ], [ %26, %25 ] ret i32 %.01169 } diff --git a/bench/wolfssl/optimized/hmac.c.ll b/bench/wolfssl/optimized/hmac.c.ll index 160da2a2dc4..be8ee30686c 100644 --- a/bench/wolfssl/optimized/hmac.c.ll +++ b/bench/wolfssl/optimized/hmac.c.ll @@ -8,7 +8,7 @@ target triple = "x86_64-unknown-linux-gnu" %struct.wc_Sha3 = type { [25 x i64], [200 x i8], i8, ptr } @switch.table.wc_HmacSizeByType = private unnamed_addr constant [11 x i32] [i32 16, i32 20, i32 28, i32 32, i32 48, i32 64, i32 -173, i32 28, i32 32, i32 48, i32 64], align 4 -@switch.table.wc_HKDF = private unnamed_addr constant [11 x i32] [i32 16, i32 20, i32 28, i32 32, i32 48, i32 64, i32 16, i32 28, i32 32, i32 48, i32 64], align 4 +@switch.table.wc_HKDF_Expand_ex = private unnamed_addr constant [11 x i32] [i32 16, i32 20, i32 28, i32 32, i32 48, i32 64, i32 16, i32 28, i32 32, i32 48, i32 64], align 4 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable define range(i32 -173, 65) i32 @wc_HmacSizeByType(i32 noundef %type) local_unnamed_addr #0 { @@ -1030,7 +1030,7 @@ switch.lookup: ; preds = %switch.hole_check if.then2: ; preds = %switch.lookup %1 = zext nneg i32 %switch.tableidx to i64 - %switch.gep = getelementptr inbounds [11 x i32], ptr @switch.table.wc_HKDF, i64 0, i64 %1 + %switch.gep = getelementptr inbounds [11 x i32], ptr @switch.table.wc_HKDF_Expand_ex, i64 0, i64 %1 %switch.load = load i32, ptr %switch.gep, align 4 %conv = zext nneg i32 %switch.load to i64 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(1) %tmp, i8 0, i64 %conv, i1 false) @@ -1088,7 +1088,7 @@ switch.lookup: ; preds = %switch.hole_check if.then2.i: ; preds = %switch.lookup %1 = zext nneg i32 %switch.tableidx to i64 - %switch.gep = getelementptr inbounds [11 x i32], ptr @switch.table.wc_HKDF, i64 0, i64 %1 + %switch.gep = getelementptr inbounds [11 x i32], ptr @switch.table.wc_HKDF_Expand_ex, i64 0, i64 %1 %switch.load = load i32, ptr %switch.gep, align 4 %conv.i = zext nneg i32 %switch.load to i64 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(1) %tmp.i, i8 0, i64 %conv.i, i1 false) @@ -1142,7 +1142,7 @@ switch.hole_check: ; preds = %entry switch.lookup: ; preds = %switch.hole_check %1 = zext nneg i32 %switch.tableidx to i64 - %switch.gep = getelementptr inbounds [11 x i32], ptr @switch.table.wc_HKDF, i64 0, i64 %1 + %switch.gep = getelementptr inbounds [11 x i32], ptr @switch.table.wc_HKDF_Expand_ex, i64 0, i64 %1 %switch.load = load i32, ptr %switch.gep, align 4 %cmp1 = icmp eq ptr %out, null br i1 %cmp1, label %return, label %lor.lhs.false @@ -1230,44 +1230,92 @@ entry: %tmp.i.i = alloca [64 x i8], align 16 %myHmac.i.i = alloca [1 x %struct.Hmac], align 16 %prk = alloca [64 x i8], align 16 - %switch.tableidx = add i32 %type, -3 - %0 = icmp ult i32 %switch.tableidx, 11 - br i1 %0, label %switch.hole_check, label %return + switch i32 %type, label %return [ + i32 3, label %if.end.thread + i32 4, label %if.end.thread14 + i32 5, label %if.end + i32 6, label %sw.bb20.i + i32 7, label %sw.bb21.i + i32 8, label %sw.bb22.i + i32 10, label %if.end + i32 11, label %sw.bb20.i + i32 12, label %sw.bb21.i + i32 13, label %sw.bb22.i + ] -switch.hole_check: ; preds = %entry - %switch.maskindex = trunc nuw i32 %switch.tableidx to i16 - %switch.shifted = lshr i16 1983, %switch.maskindex - %switch.lobit = trunc i16 %switch.shifted to i1 - br i1 %switch.lobit, label %switch.lookup, label %return +if.end.thread14: ; preds = %entry + call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %tmp.i.i) + call void @llvm.lifetime.start.p0(i64 784, ptr nonnull %myHmac.i.i) + br label %if.end.i.i -switch.lookup: ; preds = %switch.hole_check - %1 = zext nneg i32 %switch.tableidx to i64 - %switch.gep = getelementptr inbounds [11 x i32], ptr @switch.table.wc_HKDF, i64 0, i64 %1 - %switch.load = load i32, ptr %switch.gep, align 4 +sw.bb20.i: ; preds = %entry, %entry + br label %if.end + +sw.bb21.i: ; preds = %entry, %entry + br label %if.end + +sw.bb22.i: ; preds = %entry, %entry + br label %if.end + +if.end.thread: ; preds = %entry call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %tmp.i.i) call void @llvm.lifetime.start.p0(i64 784, ptr nonnull %myHmac.i.i) + br label %if.end.i.i + +if.end: ; preds = %entry, %entry, %sw.bb22.i, %sw.bb21.i, %sw.bb20.i + %retval.0.i.ph = phi i32 [ 32, %sw.bb20.i ], [ 48, %sw.bb21.i ], [ 64, %sw.bb22.i ], [ 28, %entry ], [ 28, %entry ] + call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %tmp.i.i) + call void @llvm.lifetime.start.p0(i64 784, ptr nonnull %myHmac.i.i) + switch i32 %type, label %wc_HKDF_Extract.exit.thread [ + i32 13, label %sw.bb22.i.i.i + i32 12, label %sw.bb21.i.i.i + i32 5, label %if.end.i.i + i32 6, label %sw.bb20.i.i.i + i32 7, label %sw.bb21.i.i.i + i32 8, label %sw.bb22.i.i.i + i32 10, label %if.end.i.i + i32 11, label %sw.bb20.i.i.i + ] + +wc_HKDF_Extract.exit.thread: ; preds = %if.end + call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %tmp.i.i) + call void @llvm.lifetime.end.p0(i64 784, ptr nonnull %myHmac.i.i) + br label %return + +sw.bb20.i.i.i: ; preds = %if.end, %if.end + br label %if.end.i.i + +sw.bb21.i.i.i: ; preds = %if.end, %if.end + br label %if.end.i.i + +sw.bb22.i.i.i: ; preds = %if.end, %if.end + br label %if.end.i.i + +if.end.i.i: ; preds = %if.end, %if.end, %if.end.thread, %if.end.thread14, %sw.bb22.i.i.i, %sw.bb21.i.i.i, %sw.bb20.i.i.i + %retval.0.i.ph11 = phi i32 [ %retval.0.i.ph, %sw.bb20.i.i.i ], [ %retval.0.i.ph, %sw.bb21.i.i.i ], [ %retval.0.i.ph, %sw.bb22.i.i.i ], [ 20, %if.end.thread14 ], [ 16, %if.end.thread ], [ %retval.0.i.ph, %if.end ], [ %retval.0.i.ph, %if.end ] + %retval.0.i.ph.i.i = phi i32 [ 32, %sw.bb20.i.i.i ], [ 48, %sw.bb21.i.i.i ], [ 64, %sw.bb22.i.i.i ], [ 20, %if.end.thread14 ], [ 16, %if.end.thread ], [ 28, %if.end ], [ 28, %if.end ] %cmp1.i.i = icmp eq ptr %salt, null br i1 %cmp1.i.i, label %if.then2.i.i, label %if.then9.i.i -if.then2.i.i: ; preds = %switch.lookup - %conv.i.i = zext nneg i32 %switch.load to i64 +if.then2.i.i: ; preds = %if.end.i.i + %conv.i.i = zext nneg i32 %retval.0.i.ph.i.i to i64 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(1) %tmp.i.i, i8 0, i64 %conv.i.i, i1 false) br label %if.then9.i.i -if.then9.i.i: ; preds = %if.then2.i.i, %switch.lookup - %saltSz.addr.0.i.i = phi i32 [ %switch.load, %if.then2.i.i ], [ %saltSz, %switch.lookup ] - %localSalt.0.i.i = phi ptr [ %tmp.i.i, %if.then2.i.i ], [ %salt, %switch.lookup ] +if.then9.i.i: ; preds = %if.then2.i.i, %if.end.i.i + %saltSz.addr.0.i.i = phi i32 [ %retval.0.i.ph.i.i, %if.then2.i.i ], [ %saltSz, %if.end.i.i ] + %localSalt.0.i.i = phi ptr [ %tmp.i.i, %if.then2.i.i ], [ %salt, %if.end.i.i ] call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(784) %myHmac.i.i, i8 0, i64 784, i1 false) %call11.i.i = call i32 @wc_HmacSetKey(ptr noundef nonnull %myHmac.i.i, i32 noundef %type, ptr noundef nonnull %localSalt.0.i.i, i32 noundef %saltSz.addr.0.i.i) %cmp12.i.i = icmp eq i32 %call11.i.i, 0 - br i1 %cmp12.i.i, label %if.end17.i.i, label %wc_HKDF_Extract.exit.thread + br i1 %cmp12.i.i, label %if.end17.i.i, label %wc_HKDF_Extract.exit.thread19 if.end17.i.i: ; preds = %if.then9.i.i %call16.i.i = call i32 @wc_HmacUpdate(ptr noundef nonnull %myHmac.i.i, ptr noundef %inKey, i32 noundef %inKeySz) %cmp18.i.i = icmp eq i32 %call16.i.i, 0 - br i1 %cmp18.i.i, label %wc_HKDF_Extract.exit, label %wc_HKDF_Extract.exit.thread + br i1 %cmp18.i.i, label %wc_HKDF_Extract.exit, label %wc_HKDF_Extract.exit.thread19 -wc_HKDF_Extract.exit.thread: ; preds = %if.end17.i.i, %if.then9.i.i +wc_HKDF_Extract.exit.thread19: ; preds = %if.end17.i.i, %if.then9.i.i %ret.2.i.i.ph = phi i32 [ %call11.i.i, %if.then9.i.i ], [ %call16.i.i, %if.end17.i.i ] call void @wc_HmacFree(ptr noundef nonnull %myHmac.i.i) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %tmp.i.i) @@ -1283,11 +1331,11 @@ wc_HKDF_Extract.exit: ; preds = %if.end17.i.i br i1 %cmp2.not, label %if.end4, label %return if.end4: ; preds = %wc_HKDF_Extract.exit - %call.i = call i32 @wc_HKDF_Expand_ex(i32 noundef %type, ptr noundef nonnull %prk, i32 noundef %switch.load, ptr noundef %info, i32 noundef %infoSz, ptr noundef %out, i32 noundef %outSz, ptr noundef null, i32 poison) + %call.i = call i32 @wc_HKDF_Expand_ex(i32 noundef %type, ptr noundef nonnull %prk, i32 noundef %retval.0.i.ph11, ptr noundef %info, i32 noundef %infoSz, ptr noundef %out, i32 noundef %outSz, ptr noundef null, i32 poison) br label %return -return: ; preds = %switch.hole_check, %entry, %wc_HKDF_Extract.exit.thread, %wc_HKDF_Extract.exit, %if.end4 - %retval.0 = phi i32 [ %call.i, %if.end4 ], [ %call22.i.i, %wc_HKDF_Extract.exit ], [ -173, %entry ], [ %ret.2.i.i.ph, %wc_HKDF_Extract.exit.thread ], [ -173, %switch.hole_check ] +return: ; preds = %wc_HKDF_Extract.exit.thread19, %wc_HKDF_Extract.exit.thread, %entry, %wc_HKDF_Extract.exit, %if.end4 + %retval.0 = phi i32 [ %call.i, %if.end4 ], [ %call22.i.i, %wc_HKDF_Extract.exit ], [ -173, %entry ], [ -173, %wc_HKDF_Extract.exit.thread ], [ %ret.2.i.i.ph, %wc_HKDF_Extract.exit.thread19 ] ret i32 %retval.0 } diff --git a/bench/xgboost/optimized/in_memory_handler.cc.ll b/bench/xgboost/optimized/in_memory_handler.cc.ll index 042decf680e..5bd004c4b69 100644 --- a/bench/xgboost/optimized/in_memory_handler.cc.ll +++ b/bench/xgboost/optimized/in_memory_handler.cc.ll @@ -4825,19 +4825,19 @@ define linkonce_odr void @_ZNSt8_Rb_treeImSt4pairIKmSt17basic_string_viewIcSt11c ; Function Attrs: mustprogress uwtable define linkonce_odr noundef i64 @_ZN7xgboost13DispatchDTypeIZNKS_10collective16AllreduceFunctorclEPKcmPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEUlT_E_EEDaNS_21ArrayInterfaceHandler4TypeESC_(i8 noundef signext %0) local_unnamed_addr #3 comdat personality ptr @__gxx_personality_v0 { %2 = alloca %"class.dmlc::LogMessageFatal", align 1 - switch i8 %0, label %28 [ + switch i8 %0, label %22 [ i8 0, label %3 i8 1, label %17 i8 2, label %18 i8 3, label %19 i8 4, label %20 i8 5, label %21 - i8 6, label %22 - i8 7, label %23 - i8 8, label %24 - i8 9, label %25 - i8 10, label %26 - i8 11, label %27 + i8 6, label %17 + i8 7, label %18 + i8 8, label %20 + i8 9, label %21 + i8 10, label %17 + i8 11, label %18 ] 3: ; preds = %1 @@ -4873,59 +4873,41 @@ _ZN4dmlc15LogMessageFatal6streamB5cxx11Ev.exit: ; preds = %.noexc, %_ZN4dmlc15 14: ; preds = %_ZN4dmlc15LogMessageFatal6streamB5cxx11Ev.exit call void @_ZN4dmlc15LogMessageFatalD2Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) - br label %28 + br label %22 15: ; preds = %11, %_ZN4dmlc15LogMessageFatal6streamB5cxx11Ev.exit %16 = landingpad { ptr, i32 } cleanup invoke void @_ZN4dmlc15LogMessageFatalD2Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) - to label %29 unwind label %30 + to label %23 unwind label %24 -17: ; preds = %1 - br label %28 +17: ; preds = %1, %1, %1 + br label %22 -18: ; preds = %1 - br label %28 +18: ; preds = %1, %1, %1 + br label %22 19: ; preds = %1 - br label %28 - -20: ; preds = %1 - br label %28 - -21: ; preds = %1 - br label %28 - -22: ; preds = %1 - br label %28 - -23: ; preds = %1 - br label %28 + br label %22 -24: ; preds = %1 - br label %28 +20: ; preds = %1, %1 + br label %22 -25: ; preds = %1 - br label %28 +21: ; preds = %1, %1 + br label %22 -26: ; preds = %1 - br label %28 - -27: ; preds = %1 - br label %28 - -28: ; preds = %1, %14, %27, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17 - %.0 = phi i64 [ 8, %27 ], [ 4, %26 ], [ 2, %25 ], [ 1, %24 ], [ 8, %23 ], [ 4, %22 ], [ 2, %21 ], [ 1, %20 ], [ 16, %19 ], [ 8, %18 ], [ 4, %17 ], [ 0, %14 ], [ 0, %1 ] +22: ; preds = %1, %14, %21, %20, %19, %18, %17 + %.0 = phi i64 [ 2, %21 ], [ 1, %20 ], [ 16, %19 ], [ 8, %18 ], [ 4, %17 ], [ 0, %14 ], [ 0, %1 ] ret i64 %.0 -29: ; preds = %15 +23: ; preds = %15 resume { ptr, i32 } %16 -30: ; preds = %15 - %31 = landingpad { ptr, i32 } +24: ; preds = %15 + %25 = landingpad { ptr, i32 } catch ptr null - %32 = extractvalue { ptr, i32 } %31, 0 - call void @__clang_call_terminate(ptr %32) #24 + %26 = extractvalue { ptr, i32 } %25, 0 + call void @__clang_call_terminate(ptr %26) #24 unreachable } diff --git a/bench/yoga/optimized/Node.cpp.ll b/bench/yoga/optimized/Node.cpp.ll index 7f270f65a3b..268a3136b08 100644 --- a/bench/yoga/optimized/Node.cpp.ll +++ b/bench/yoga/optimized/Node.cpp.ll @@ -45,8 +45,7 @@ $_ZNSt6vectorIPN8facebook4yoga4NodeESaIS3_EE16_M_shrink_to_fitEv = comdat any @.str.8 = private unnamed_addr constant [35 x i8] c"Edge must be top/left/bottom/right\00", align 1 @.str.9 = private unnamed_addr constant [49 x i8] c"cannot create std::vector larger than max_size()\00", align 1 @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_Node.cpp, ptr null }] -@switch.table._ZN8facebook4yoga4Node21styleDefinesDimensionENS0_13FlexDirectionEf = private unnamed_addr constant [4 x i64] [i64 632, i64 632, i64 624, i64 624], align 8 -@switch.table._ZN8facebook4yoga4Node21styleDefinesDimensionENS0_13FlexDirectionEf.1 = private unnamed_addr constant [4 x i64] [i64 1, i64 1, i64 0, i64 0], align 8 +@switch.table._ZN8facebook4yoga4Node21styleDefinesDimensionENS0_13FlexDirectionEf = private unnamed_addr constant [4 x i64] [i64 1, i64 1, i64 0, i64 0], align 8 @switch.table._ZNK8facebook4yoga4Node23getFlexStartMarginValueENS0_13FlexDirectionE = private unnamed_addr constant [4 x i64] [i64 1, i64 3, i64 0, i64 2], align 8 @switch.table._ZNK8facebook4yoga4Node19marginTrailingValueENS0_13FlexDirectionE = private unnamed_addr constant [4 x i64] [i64 3, i64 1, i64 2, i64 0], align 8 @@ -4060,7 +4059,7 @@ sw.epilog.i: ; preds = %entry switch.lookup: ; preds = %entry %1 = zext nneg i8 %axis to i64 - %switch.gep = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yoga4Node21styleDefinesDimensionENS0_13FlexDirectionEf.1, i64 0, i64 %1 + %switch.gep = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yoga4Node21styleDefinesDimensionENS0_13FlexDirectionEf, i64 0, i64 %1 %switch.load = load i64, ptr %switch.gep, align 8 %measuredDimensions_.i = getelementptr inbounds i8, ptr %this, i64 500 %arrayidx.i.i.i = getelementptr inbounds [2 x float], ptr %measuredDimensions_.i, i64 0, i64 %switch.load @@ -4084,7 +4083,7 @@ sw.epilog.i: ; preds = %entry switch.lookup: ; preds = %entry %1 = zext nneg i8 %axis to i64 - %switch.gep = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yoga4Node21styleDefinesDimensionENS0_13FlexDirectionEf.1, i64 0, i64 %1 + %switch.gep = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yoga4Node21styleDefinesDimensionENS0_13FlexDirectionEf, i64 0, i64 %1 %switch.load = load i64, ptr %switch.gep, align 8 %measuredDimensions_.i = getelementptr inbounds i8, ptr %this, i64 500 %arrayidx.i.i.i = getelementptr inbounds [2 x float], ptr %measuredDimensions_.i, i64 0, i64 %switch.load @@ -4107,39 +4106,38 @@ switch.lookup: ; preds = %entry %1 = zext nneg i8 %axis to i64 %switch.gep = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yoga4Node21styleDefinesDimensionENS0_13FlexDirectionEf, i64 0, i64 %1 %switch.load = load i64, ptr %switch.gep, align 8 - %2 = zext nneg i8 %axis to i64 - %switch.gep40 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yoga4Node21styleDefinesDimensionENS0_13FlexDirectionEf.1, i64 0, i64 %2 - %switch.load41 = load i64, ptr %switch.gep40, align 8 - %arrayidx.i.i.i = getelementptr inbounds i8, ptr %this, i64 %switch.load - %3 = getelementptr inbounds i8, ptr %this, i64 624 - %cmp.i.i28.in.in.in = load i64, ptr %arrayidx.i.i.i, align 8 - %cmp.i.i28.in.in = trunc i64 %cmp.i.i28.in.in.in to i32 - %cmp.i.i28.in = bitcast i32 %cmp.i.i28.in.in to float - %cmp.i.i28 = fcmp ord float %cmp.i.i28.in, 0.000000e+00 - %arrayidx.i.i.i16 = getelementptr inbounds [2 x %struct.YGValue], ptr %3, i64 0, i64 %switch.load41 - %retval.sroa.0.0.copyload.i17 = load i64, ptr %arrayidx.i.i.i16, align 8 - %resolvedDimension.sroa.3.0.extract.shift = lshr i64 %retval.sroa.0.0.copyload.i17, 32 + %resolvedDimensions_.i = getelementptr inbounds i8, ptr %this, i64 624 + %arrayidx.i.i.i = getelementptr inbounds [2 x %struct.YGValue], ptr %resolvedDimensions_.i, i64 0, i64 %switch.load + %retval.sroa.0.0.copyload.i = load i64, ptr %arrayidx.i.i.i, align 8 + %ref.tmp.sroa.0.0.extract.trunc = trunc i64 %retval.sroa.0.0.copyload.i to i32 + %2 = bitcast i32 %ref.tmp.sroa.0.0.extract.trunc to float + %cmp.i.i = fcmp ord float %2, 0.000000e+00 + %switch = icmp ult i8 %axis, 2 + %conv.i14 = zext i1 %switch to i64 + %arrayidx.i.i.i15 = getelementptr inbounds [2 x %struct.YGValue], ptr %resolvedDimensions_.i, i64 0, i64 %conv.i14 + %retval.sroa.0.0.copyload.i16 = load i64, ptr %arrayidx.i.i.i15, align 8 + %resolvedDimension.sroa.3.0.extract.shift = lshr i64 %retval.sroa.0.0.copyload.i16, 32 %cmp = icmp eq i64 %resolvedDimension.sroa.3.0.extract.shift, 3 - %cmp7 = icmp ult i64 %retval.sroa.0.0.copyload.i17, 4294967296 + %cmp7 = icmp ult i64 %retval.sroa.0.0.copyload.i16, 4294967296 %or.cond = or i1 %cmp7, %cmp br i1 %or.cond, label %lor.end22, label %lor.lhs.false8 lor.lhs.false8: ; preds = %switch.lookup - %resolvedDimension.sroa.0.0.extract.trunc = trunc i64 %retval.sroa.0.0.copyload.i17 to i32 - %4 = bitcast i32 %resolvedDimension.sroa.0.0.extract.trunc to float + %resolvedDimension.sroa.0.0.extract.trunc = trunc i64 %retval.sroa.0.0.copyload.i16 to i32 + %3 = bitcast i32 %resolvedDimension.sroa.0.0.extract.trunc to float %cmp10 = icmp eq i64 %resolvedDimension.sroa.3.0.extract.shift, 1 - %cmp13 = fcmp olt float %4, 0.000000e+00 - %5 = and i1 %cmp10, %cmp13 - %or.cond8 = and i1 %cmp.i.i28, %5 + %cmp13 = fcmp olt float %3, 0.000000e+00 + %4 = and i1 %cmp10, %cmp13 + %or.cond8 = and i1 %cmp.i.i, %4 br i1 %or.cond8, label %lor.end22, label %lor.rhs lor.rhs: ; preds = %lor.lhs.false8 %cmp15 = icmp ne i64 %resolvedDimension.sroa.3.0.extract.shift, 2 - %call3.not = xor i1 %cmp.i.i28, true + %call3.not = xor i1 %cmp.i.i, true %brmerge = or i1 %cmp15, %call3.not - %brmerge39 = or i1 %brmerge, %cmp13 + %brmerge17 = or i1 %brmerge, %cmp13 %cmp.i = fcmp ord float %ownerSize, 0.000000e+00 - %spec.select = select i1 %brmerge39, i1 %brmerge, i1 %cmp.i + %spec.select = select i1 %brmerge17, i1 %brmerge, i1 %cmp.i br label %lor.end22 lor.end22: ; preds = %lor.rhs, %lor.lhs.false8, %switch.lookup diff --git a/bench/yosys/optimized/fstapi.ll b/bench/yosys/optimized/fstapi.ll index 928c1c31393..98e3c94d8bd 100644 --- a/bench/yosys/optimized/fstapi.ll +++ b/bench/yosys/optimized/fstapi.ll @@ -14872,22 +14872,22 @@ define i32 @fstUtilityEscToBin(ptr noundef %0, ptr noundef %1, i32 noundef %2) l %4 = icmp sgt i32 %2, 0 br i1 %4, label %.lr.ph, label %._crit_edge -.lr.ph: ; preds = %3, %55 - %.069 = phi i32 [ %56, %55 ], [ 0, %3 ] - %.05968 = phi ptr [ %.160, %55 ], [ %., %3 ] +.lr.ph: ; preds = %3, %52 + %.069 = phi i32 [ %53, %52 ], [ 0, %3 ] + %.05968 = phi ptr [ %.160, %52 ], [ %., %3 ] %5 = sext i32 %.069 to i64 %6 = getelementptr inbounds i8, ptr %1, i64 %5 %7 = load i8, ptr %6, align 1 %.not64 = icmp eq i8 %7, 92 - br i1 %.not64, label %8, label %55 + br i1 %.not64, label %8, label %52 8: ; preds = %.lr.ph %9 = add nsw i32 %.069, 1 %10 = sext i32 %9 to i64 %11 = getelementptr inbounds i8, ptr %1, i64 %10 %12 = load i8, ptr %11, align 1 - switch i8 %12, label %54 [ - i8 97, label %55 + switch i8 %12, label %51 [ + i8 97, label %52 i8 98, label %13 i8 102, label %14 i8 110, label %15 @@ -14895,110 +14895,101 @@ define i32 @fstUtilityEscToBin(ptr noundef %0, ptr noundef %1, i32 noundef %2) l i8 116, label %17 i8 118, label %18 i8 39, label %19 - i8 34, label %20 - i8 92, label %21 - i8 63, label %22 - i8 120, label %23 - i8 48, label %42 - i8 49, label %42 - i8 50, label %42 - i8 51, label %42 - i8 52, label %42 - i8 53, label %42 - i8 54, label %42 - i8 55, label %42 + i8 34, label %19 + i8 92, label %19 + i8 63, label %19 + i8 120, label %20 + i8 48, label %39 + i8 49, label %39 + i8 50, label %39 + i8 51, label %39 + i8 52, label %39 + i8 53, label %39 + i8 54, label %39 + i8 55, label %39 ] 13: ; preds = %8 - br label %55 + br label %52 14: ; preds = %8 - br label %55 + br label %52 15: ; preds = %8 - br label %55 + br label %52 16: ; preds = %8 - br label %55 + br label %52 17: ; preds = %8 - br label %55 + br label %52 18: ; preds = %8 - br label %55 + br label %52 -19: ; preds = %8 - br label %55 +19: ; preds = %8, %8, %8, %8 + br label %52 20: ; preds = %8 - br label %55 - -21: ; preds = %8 - br label %55 - -22: ; preds = %8 - br label %55 - -23: ; preds = %8 %gep67 = getelementptr i8, ptr %invariant.gep, i64 %5 - %24 = load i8, ptr %gep67, align 1 - %25 = zext i8 %24 to i32 - %26 = tail call i32 @toupper(i32 noundef %25) #38 - %27 = add nsw i32 %.069, 3 - %28 = sext i32 %27 to i64 - %29 = getelementptr inbounds i8, ptr %1, i64 %28 - %30 = load i8, ptr %29, align 1 - %31 = zext i8 %30 to i32 - %32 = tail call i32 @toupper(i32 noundef %31) #38 - %33 = and i32 %26, 255 - %34 = add nsw i32 %33, -65 - %or.cond = icmp ult i32 %34, 6 + %21 = load i8, ptr %gep67, align 1 + %22 = zext i8 %21 to i32 + %23 = tail call i32 @toupper(i32 noundef %22) #38 + %24 = add nsw i32 %.069, 3 + %25 = sext i32 %24 to i64 + %26 = getelementptr inbounds i8, ptr %1, i64 %25 + %27 = load i8, ptr %26, align 1 + %28 = zext i8 %27 to i32 + %29 = tail call i32 @toupper(i32 noundef %28) #38 + %30 = and i32 %23, 255 + %31 = add nsw i32 %30, -65 + %or.cond = icmp ult i32 %31, 6 %.v = select i1 %or.cond, i32 -55, i32 -48 - %35 = add nsw i32 %.v, %33 - %36 = and i32 %32, 255 - %37 = add nsw i32 %36, -65 - %or.cond7 = icmp ult i32 %37, 6 + %32 = add nsw i32 %.v, %30 + %33 = and i32 %29, 255 + %34 = add nsw i32 %33, -65 + %or.cond7 = icmp ult i32 %34, 6 %.v65 = select i1 %or.cond7, i32 201, i32 208 - %38 = add i32 %.v65, %32 - %39 = shl nsw i32 %35, 4 - %40 = add i32 %38, %39 - %41 = trunc i32 %40 to i8 - br label %55 + %35 = add i32 %.v65, %29 + %36 = shl nsw i32 %32, 4 + %37 = add i32 %35, %36 + %38 = trunc i32 %37 to i8 + br label %52 -42: ; preds = %8, %8, %8, %8, %8, %8, %8, %8 +39: ; preds = %8, %8, %8, %8, %8, %8, %8, %8 %gep = getelementptr i8, ptr %invariant.gep, i64 %5 - %43 = load i8, ptr %gep, align 1 - %44 = add nsw i32 %.069, 3 - %45 = sext i32 %44 to i64 - %46 = getelementptr inbounds i8, ptr %1, i64 %45 - %47 = load i8, ptr %46, align 1 - %48 = shl i8 %12, 6 - %49 = shl i8 %43, 3 - %50 = xor i8 %49, -128 - %51 = add i8 %48, -48 - %52 = add i8 %51, %47 - %53 = add i8 %52, %50 - br label %55 - -54: ; preds = %8 - br label %55 - -55: ; preds = %8, %.lr.ph, %54, %42, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13 - %.sink = phi i8 [ %12, %54 ], [ %53, %42 ], [ %41, %23 ], [ %12, %22 ], [ %12, %21 ], [ %12, %20 ], [ %12, %19 ], [ 11, %18 ], [ 9, %17 ], [ 13, %16 ], [ 10, %15 ], [ 12, %14 ], [ 8, %13 ], [ %7, %.lr.ph ], [ 7, %8 ] - %.1 = phi i32 [ %9, %54 ], [ %44, %42 ], [ %27, %23 ], [ %9, %22 ], [ %9, %21 ], [ %9, %20 ], [ %9, %19 ], [ %9, %18 ], [ %9, %17 ], [ %9, %16 ], [ %9, %15 ], [ %9, %14 ], [ %9, %13 ], [ %.069, %.lr.ph ], [ %9, %8 ] + %40 = load i8, ptr %gep, align 1 + %41 = add nsw i32 %.069, 3 + %42 = sext i32 %41 to i64 + %43 = getelementptr inbounds i8, ptr %1, i64 %42 + %44 = load i8, ptr %43, align 1 + %45 = shl i8 %12, 6 + %46 = shl i8 %40, 3 + %47 = xor i8 %46, -128 + %48 = add i8 %45, -48 + %49 = add i8 %48, %44 + %50 = add i8 %49, %47 + br label %52 + +51: ; preds = %8 + br label %52 + +52: ; preds = %8, %.lr.ph, %51, %39, %20, %19, %18, %17, %16, %15, %14, %13 + %.sink = phi i8 [ %12, %51 ], [ %50, %39 ], [ %38, %20 ], [ %12, %19 ], [ 11, %18 ], [ 9, %17 ], [ 13, %16 ], [ 10, %15 ], [ 12, %14 ], [ 8, %13 ], [ %7, %.lr.ph ], [ 7, %8 ] + %.1 = phi i32 [ %9, %51 ], [ %41, %39 ], [ %24, %20 ], [ %9, %19 ], [ %9, %18 ], [ %9, %17 ], [ %9, %16 ], [ %9, %15 ], [ %9, %14 ], [ %9, %13 ], [ %.069, %.lr.ph ], [ %9, %8 ] store i8 %.sink, ptr %.05968, align 1 %.160 = getelementptr inbounds i8, ptr %.05968, i64 1 - %56 = add nsw i32 %.1, 1 - %57 = icmp slt i32 %56, %2 - br i1 %57, label %.lr.ph, label %._crit_edge, !llvm.loop !115 - -._crit_edge: ; preds = %55, %3 - %.059.lcssa = phi ptr [ %., %3 ], [ %.160, %55 ] - %58 = ptrtoint ptr %.059.lcssa to i64 - %59 = ptrtoint ptr %. to i64 - %60 = sub i64 %58, %59 - %61 = trunc i64 %60 to i32 - ret i32 %61 + %53 = add nsw i32 %.1, 1 + %54 = icmp slt i32 %53, %2 + br i1 %54, label %.lr.ph, label %._crit_edge, !llvm.loop !115 + +._crit_edge: ; preds = %52, %3 + %.059.lcssa = phi ptr [ %., %3 ], [ %.160, %52 ] + %55 = ptrtoint ptr %.059.lcssa to i64 + %56 = ptrtoint ptr %. to i64 + %57 = sub i64 %55, %56 + %58 = trunc i64 %57 to i32 + ret i32 %58 } ; Function Attrs: mustprogress nofree nounwind willreturn memory(read) diff --git a/bench/zed-rs/optimized/25fxlhz3kxu1eqndtge46j52s.ll b/bench/zed-rs/optimized/25fxlhz3kxu1eqndtge46j52s.ll index 9c6faf5b350..b82299a7a0d 100644 --- a/bench/zed-rs/optimized/25fxlhz3kxu1eqndtge46j52s.ll +++ b/bench/zed-rs/optimized/25fxlhz3kxu1eqndtge46j52s.ll @@ -2111,9 +2111,8 @@ define hidden noundef zeroext i1 @"_ZN95_$LT$core..ops..control_flow..ControlFlo ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define noundef zeroext i1 @_ZN15live_kit_server5proto11stream_info6Status8is_valid17he11040c0ab83dfabE(i32 noundef %0) unnamed_addr #4 { -switch.lookup: - %1 = icmp ult i32 %0, 3 - ret i1 %1 + %switch = icmp ult i32 %0, 3 + ret i1 %switch } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable @@ -2137,9 +2136,8 @@ define noundef range(i32 0, 3) i32 @"_ZN15live_kit_server5proto11stream_info104_ ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define noundef zeroext i1 @_ZN15live_kit_server5proto11client_info3Sdk8is_valid17hc0d52c150a7efd66E(i32 noundef %0) unnamed_addr #4 { -switch.lookup: - %1 = icmp ult i32 %0, 7 - ret i1 %1 + %switch = icmp ult i32 %0, 7 + ret i1 %switch } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable diff --git a/bench/zed-rs/optimized/9wd9ok5kgn8j922db1jwm4yni.ll b/bench/zed-rs/optimized/9wd9ok5kgn8j922db1jwm4yni.ll index 2309b09ce6f..261b8ae2303 100644 --- a/bench/zed-rs/optimized/9wd9ok5kgn8j922db1jwm4yni.ll +++ b/bench/zed-rs/optimized/9wd9ok5kgn8j922db1jwm4yni.ll @@ -583,44 +583,32 @@ define noundef i64 @_ZN7open_ai5Model15max_token_count17h38cc0eecfcca23cbE(ptr n %3 = xor i64 %2, -9223372036854775808 %4 = tail call i64 @llvm.umin.i64(i64 %3, i64 7) switch i64 %4, label %default.unreachable [ - i64 0, label %14 + i64 0, label %10 i64 1, label %5 i64 2, label %6 - i64 3, label %7 - i64 4, label %8 - i64 5, label %9 - i64 6, label %10 - i64 7, label %11 + i64 3, label %6 + i64 4, label %6 + i64 5, label %6 + i64 6, label %6 + i64 7, label %7 ] default.unreachable: ; preds = %1 unreachable 5: ; preds = %1 - br label %14 + br label %10 -6: ; preds = %1 - br label %14 +6: ; preds = %1, %1, %1, %1, %1 + br label %10 7: ; preds = %1 - br label %14 - -8: ; preds = %1 - br label %14 - -9: ; preds = %1 - br label %14 - -10: ; preds = %1 - br label %14 - -11: ; preds = %1 - %12 = getelementptr inbounds i8, ptr %0, i64 64 - %13 = load i64, ptr %12, align 8, !noundef !4 - br label %14 + %8 = getelementptr inbounds i8, ptr %0, i64 64 + %9 = load i64, ptr %8, align 8, !noundef !4 + br label %10 -14: ; preds = %1, %11, %10, %9, %8, %7, %6, %5 - %.sroa.0.0 = phi i64 [ %13, %11 ], [ 128000, %10 ], [ 128000, %9 ], [ 128000, %8 ], [ 128000, %7 ], [ 128000, %6 ], [ 8192, %5 ], [ 16385, %1 ] +10: ; preds = %1, %7, %6, %5 + %.sroa.0.0 = phi i64 [ %9, %7 ], [ 128000, %6 ], [ 8192, %5 ], [ 16385, %1 ] ret i64 %.sroa.0.0 } diff --git a/bench/zed-rs/optimized/bktyyhuk5fekatq647qx0ox8v.ll b/bench/zed-rs/optimized/bktyyhuk5fekatq647qx0ox8v.ll index 17330df3cad..591c3ff6aa5 100644 --- a/bench/zed-rs/optimized/bktyyhuk5fekatq647qx0ox8v.ll +++ b/bench/zed-rs/optimized/bktyyhuk5fekatq647qx0ox8v.ll @@ -39615,9 +39615,8 @@ define noundef zeroext i1 @"_ZN149_$LT$proto.._..$LT$impl$u20$serde..de..Deseria ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define noundef zeroext i1 @_ZN5proto17LocalSettingsKind8is_valid17h5869dd25e2598b5dE(i32 noundef %0) unnamed_addr #2 { -switch.lookup: - %1 = icmp ult i32 %0, 3 - ret i1 %1 + %switch = icmp ult i32 %0, 3 + ret i1 %switch } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable @@ -39770,9 +39769,8 @@ define noundef zeroext i1 @"_ZN143_$LT$proto.._..$LT$impl$u20$serde..de..Deseria ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define noundef zeroext i1 @_ZN5proto11ChannelRole8is_valid17h223aff4e85ac8ceaE(i32 noundef %0) unnamed_addr #2 { -switch.lookup: - %1 = icmp ult i32 %0, 5 - ret i1 %1 + %switch = icmp ult i32 %0, 5 + ret i1 %switch } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable @@ -39921,9 +39919,8 @@ define noundef zeroext i1 @"_ZN141_$LT$proto.._..$LT$impl$u20$serde..de..Deseria ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define noundef zeroext i1 @_ZN5proto9GitStatus8is_valid17h8c07d6c514fe5422E(i32 noundef %0) unnamed_addr #2 { -switch.lookup: - %1 = icmp ult i32 %0, 3 - ret i1 %1 + %switch = icmp ult i32 %0, 3 + ret i1 %switch } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable @@ -40113,9 +40110,8 @@ define noundef zeroext i1 @"_ZN149_$LT$proto.._..$LT$impl$u20$serde..de..Deseria ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define noundef zeroext i1 @_ZN5proto17LanguageModelRole8is_valid17h8ef2138b2f6f8477E(i32 noundef %0) unnamed_addr #2 { -switch.lookup: - %1 = icmp ult i32 %0, 3 - ret i1 %1 + %switch = icmp ult i32 %0, 3 + ret i1 %switch } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable @@ -40227,9 +40223,8 @@ define noundef zeroext i1 @"_ZN144_$LT$proto.._..$LT$impl$u20$serde..de..Deseria ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define noundef zeroext i1 @_ZN5proto12HideStrategy8is_valid17habaca5d80e3dced9E(i32 noundef %0) unnamed_addr #2 { -switch.lookup: - %1 = icmp ult i32 %0, 3 - ret i1 %1 + %switch = icmp ult i32 %0, 3 + ret i1 %switch } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable diff --git a/bench/zed-rs/optimized/cnvyqwq6kbzihugegghzc0tdw.ll b/bench/zed-rs/optimized/cnvyqwq6kbzihugegghzc0tdw.ll index 9667bedc00c..e169c2d8e0c 100644 --- a/bench/zed-rs/optimized/cnvyqwq6kbzihugegghzc0tdw.ll +++ b/bench/zed-rs/optimized/cnvyqwq6kbzihugegghzc0tdw.ll @@ -586,7 +586,6 @@ target triple = "x86_64-unknown-linux-gnu" @_ZN3log20MAX_LOG_LEVEL_FILTER17hf1c8299dd29f90d0E = external local_unnamed_addr global { i64 } @__rust_no_alloc_shim_is_unstable = external global i8 @anon.ccdf789eeb5cefa329d349f0244c0d12.460.llvm.4362591429528097151 = external hidden unnamed_addr constant <{ ptr, [16 x i8] }>, align 8 -@switch.table._ZN7project12buffer_store18is_not_found_error17haf2e9ab3554928a7E = private unnamed_addr constant [41 x i8] c"\00((((((((((((((((((((((((((((((((((((((((", align 1 ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: readwrite) uwtable define hidden void @"_ZN101_$LT$std..collections..hash..set..Iter$LT$K$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint17hfe4055e461c79d85E.llvm.10723454985916948783"(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([24 x i8]) align 8 dereferenceable(24) %0, ptr noalias nocapture noundef readonly align 8 dereferenceable(40) %1) unnamed_addr #0 { @@ -123660,7 +123659,7 @@ define hidden noundef zeroext i1 @_ZN7project12buffer_store18is_not_found_error1 %15 = and i64 %14, 3 switch i64 %15, label %default.unreachable [ i64 2, label %17 - i64 3, label %switch.lookup + i64 3, label %16 i64 0, label %21 i64 1, label %24 ] @@ -123668,10 +123667,9 @@ define hidden noundef zeroext i1 @_ZN7project12buffer_store18is_not_found_error1 default.unreachable: ; preds = %12 unreachable -switch.lookup: ; preds = %12 - %16 = ashr i64 %14, 32 - %switch.gep = getelementptr inbounds [41 x i8], ptr @switch.table._ZN7project12buffer_store18is_not_found_error17haf2e9ab3554928a7E, i64 0, i64 %16 - %switch.load = load i8, ptr %switch.gep, align 1 +16: ; preds = %12 + %switch = icmp ult ptr %13, inttoptr (i64 4294967296 to ptr) + %spec.select = select i1 %switch, i8 0, i8 40 br label %_ZN3std2io5error5Error4kind17h71bf7cbc1da3e59bE.llvm.10723454985916948783.exit 17: ; preds = %12 @@ -123693,8 +123691,8 @@ switch.lookup: ; preds = %12 %28 = load i8, ptr %27, align 8, !range !1973, !noalias !34816, !noundef !4 br label %_ZN3std2io5error5Error4kind17h71bf7cbc1da3e59bE.llvm.10723454985916948783.exit -_ZN3std2io5error5Error4kind17h71bf7cbc1da3e59bE.llvm.10723454985916948783.exit: ; preds = %switch.lookup, %17, %21, %24 - %.sroa.0.0.i3 = phi i8 [ %28, %24 ], [ %23, %21 ], [ %20, %17 ], [ %switch.load, %switch.lookup ] +_ZN3std2io5error5Error4kind17h71bf7cbc1da3e59bE.llvm.10723454985916948783.exit: ; preds = %16, %17, %21, %24 + %.sroa.0.0.i3 = phi i8 [ %28, %24 ], [ %23, %21 ], [ %20, %17 ], [ %spec.select, %16 ] %29 = icmp eq i8 %.sroa.0.0.i3, 0 br label %30 diff --git a/bench/zfp/optimized/zfp.c.ll b/bench/zfp/optimized/zfp.c.ll index 61bcee3a863..e9d90c65ae3 100644 --- a/bench/zfp/optimized/zfp.c.ll +++ b/bench/zfp/optimized/zfp.c.ll @@ -1706,8 +1706,8 @@ zfp_field_blocks.exit: ; preds = %zfp_field_dimension %42 = load i32, ptr %1, align 8 switch i32 %42, label %71 [ i32 1, label %43 - i32 2, label %47 - i32 3, label %45 + i32 2, label %45 + i32 3, label %47 i32 4, label %49 ] @@ -1716,22 +1716,22 @@ zfp_field_blocks.exit: ; preds = %zfp_field_dimension br label %zfp_field_precision.exit 45: ; preds = %41 - %46 = select i1 %4, i32 9, i32 15 + %46 = select i1 %4, i32 0, i32 6 br label %zfp_field_precision.exit 47: ; preds = %41 - %48 = select i1 %4, i32 0, i32 6 + %48 = select i1 %4, i32 9, i32 15 br label %zfp_field_precision.exit 49: ; preds = %41 %50 = select i1 %4, i32 12, i32 19 br label %zfp_field_precision.exit -zfp_field_precision.exit: ; preds = %43, %45, %47, %49 - %.044 = phi i32 [ %50, %49 ], [ %48, %47 ], [ %44, %43 ], [ %46, %45 ] - %.0.i.i = phi i32 [ 64, %49 ], [ 64, %47 ], [ 32, %43 ], [ 32, %45 ] - %.in49 = shl nsw i32 -1, %40 - %51 = xor i32 %.in49, -1 +zfp_field_precision.exit: ; preds = %49, %45, %43, %47 + %.044 = phi i32 [ %44, %43 ], [ %48, %47 ], [ %50, %49 ], [ %46, %45 ] + %.0.i.i = phi i32 [ 32, %43 ], [ 32, %47 ], [ 64, %49 ], [ 64, %45 ] + %.in45 = shl nsw i32 -1, %40 + %51 = xor i32 %.in45, -1 %.in = getelementptr inbounds i8, ptr %0, i64 8 %52 = load i32, ptr %.in, align 8 %53 = icmp ult i32 %52, %.0.i.i diff --git a/bench/zstd/optimized/zstd_compress.c.ll b/bench/zstd/optimized/zstd_compress.c.ll index 6e86208960f..f40d79dbc6d 100644 --- a/bench/zstd/optimized/zstd_compress.c.ll +++ b/bench/zstd/optimized/zstd_compress.c.ll @@ -773,50 +773,47 @@ entry: i32 100, label %sw.bb i32 101, label %return i32 102, label %sw.bb5 - i32 103, label %sw.bb8 + i32 103, label %sw.bb5 i32 104, label %sw.bb11 i32 105, label %sw.bb14 i32 106, label %sw.bb17 i32 107, label %sw.bb20 i32 200, label %sw.bb23 - i32 201, label %sw.bb26 - i32 202, label %sw.bb29 + i32 201, label %sw.bb23 + i32 202, label %sw.bb23 i32 400, label %sw.bb32 i32 401, label %sw.bb35 i32 402, label %sw.bb39 - i32 1005, label %sw.bb42 + i32 1005, label %sw.bb23 i32 160, label %sw.bb45 - i32 161, label %sw.bb48 + i32 161, label %sw.bb5 i32 162, label %sw.bb51 i32 163, label %sw.bb54 i32 164, label %sw.bb57 - i32 500, label %sw.bb60 - i32 1000, label %sw.bb63 - i32 10, label %sw.bb66 + i32 500, label %sw.bb23 + i32 1000, label %sw.bb23 + i32 10, label %sw.bb23 i32 1001, label %sw.bb69 - i32 1002, label %sw.bb72 + i32 1002, label %sw.bb45 i32 1003, label %sw.bb75 i32 1004, label %sw.bb78 i32 1006, label %sw.bb81 i32 1007, label %sw.bb81 - i32 1008, label %sw.bb84 - i32 1009, label %sw.bb87 - i32 1010, label %sw.bb90 - i32 1011, label %sw.bb93 - i32 1012, label %sw.bb96 - i32 1013, label %sw.bb99 - i32 1014, label %sw.bb102 + i32 1008, label %sw.bb23 + i32 1009, label %sw.bb23 + i32 1010, label %sw.bb45 + i32 1011, label %sw.bb45 + i32 1012, label %sw.bb23 + i32 1013, label %sw.bb45 + i32 1014, label %sw.bb23 i32 1015, label %sw.bb105 - i32 1016, label %sw.bb108 + i32 1016, label %sw.bb45 ] sw.bb: ; preds = %entry br label %return -sw.bb5: ; preds = %entry - br label %return - -sw.bb8: ; preds = %entry +sw.bb5: ; preds = %entry, %entry, %entry br label %return sw.bb11: ; preds = %entry @@ -831,13 +828,7 @@ sw.bb17: ; preds = %entry sw.bb20: ; preds = %entry br label %return -sw.bb23: ; preds = %entry - br label %return - -sw.bb26: ; preds = %entry - br label %return - -sw.bb29: ; preds = %entry +sw.bb23: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry br label %return sw.bb32: ; preds = %entry @@ -849,13 +840,7 @@ sw.bb35: ; preds = %entry sw.bb39: ; preds = %entry br label %return -sw.bb42: ; preds = %entry - br label %return - -sw.bb45: ; preds = %entry - br label %return - -sw.bb48: ; preds = %entry +sw.bb45: ; preds = %entry, %entry, %entry, %entry, %entry, %entry br label %return sw.bb51: ; preds = %entry @@ -867,21 +852,9 @@ sw.bb54: ; preds = %entry sw.bb57: ; preds = %entry br label %return -sw.bb60: ; preds = %entry - br label %return - -sw.bb63: ; preds = %entry - br label %return - -sw.bb66: ; preds = %entry - br label %return - sw.bb69: ; preds = %entry br label %return -sw.bb72: ; preds = %entry - br label %return - sw.bb75: ; preds = %entry br label %return @@ -891,39 +864,15 @@ sw.bb78: ; preds = %entry sw.bb81: ; preds = %entry, %entry br label %return -sw.bb84: ; preds = %entry - br label %return - -sw.bb87: ; preds = %entry - br label %return - -sw.bb90: ; preds = %entry - br label %return - -sw.bb93: ; preds = %entry - br label %return - -sw.bb96: ; preds = %entry - br label %return - -sw.bb99: ; preds = %entry - br label %return - -sw.bb102: ; preds = %entry - br label %return - sw.bb105: ; preds = %entry br label %return -sw.bb108: ; preds = %entry - br label %return - sw.default: ; preds = %entry br label %return -return: ; preds = %entry, %sw.default, %sw.bb108, %sw.bb105, %sw.bb102, %sw.bb99, %sw.bb96, %sw.bb93, %sw.bb90, %sw.bb87, %sw.bb84, %sw.bb81, %sw.bb78, %sw.bb75, %sw.bb72, %sw.bb69, %sw.bb66, %sw.bb63, %sw.bb60, %sw.bb57, %sw.bb54, %sw.bb51, %sw.bb48, %sw.bb45, %sw.bb42, %sw.bb39, %sw.bb35, %sw.bb32, %sw.bb29, %sw.bb26, %sw.bb23, %sw.bb20, %sw.bb17, %sw.bb14, %sw.bb11, %sw.bb8, %sw.bb5, %sw.bb - %retval.sroa.3.0 = phi i64 [ 0, %sw.default ], [ 8589934592, %sw.bb108 ], [ 562949953422336, %sw.bb105 ], [ 4294967296, %sw.bb102 ], [ 8589934592, %sw.bb99 ], [ 4294967296, %sw.bb96 ], [ 8589934592, %sw.bb93 ], [ 8589934592, %sw.bb90 ], [ 4294967296, %sw.bb87 ], [ 4294967296, %sw.bb84 ], [ 4294967296, %sw.bb81 ], [ 9223372032559808512, %sw.bb78 ], [ 562949953421376, %sw.bb75 ], [ 8589934592, %sw.bb72 ], [ 12884901888, %sw.bb69 ], [ 4294967296, %sw.bb66 ], [ 4294967296, %sw.bb63 ], [ 4294967296, %sw.bb60 ], [ 107374182400, %sw.bb57 ], [ 34359738369, %sw.bb54 ], [ 17592186044420, %sw.bb51 ], [ 128849018886, %sw.bb48 ], [ 8589934592, %sw.bb45 ], [ 4294967296, %sw.bb42 ], [ 38654705664, %sw.bb39 ], [ 4611686018427387904, %sw.bb35 ], [ 1099511627776, %sw.bb32 ], [ 4294967296, %sw.bb29 ], [ 4294967296, %sw.bb26 ], [ 4294967296, %sw.bb23 ], [ 38654705665, %sw.bb20 ], [ 562949953421312, %sw.bb17 ], [ 30064771075, %sw.bb14 ], [ 128849018881, %sw.bb11 ], [ 128849018886, %sw.bb8 ], [ 128849018886, %sw.bb5 ], [ 98784116736, %sw.bb ], [ 133143986186, %entry ] - %retval.sroa.0.0 = phi i64 [ -40, %sw.default ], [ 0, %sw.bb108 ], [ 0, %sw.bb105 ], [ 0, %sw.bb102 ], [ 0, %sw.bb99 ], [ 0, %sw.bb96 ], [ 0, %sw.bb93 ], [ 0, %sw.bb90 ], [ 0, %sw.bb87 ], [ 0, %sw.bb84 ], [ 0, %sw.bb81 ], [ 0, %sw.bb78 ], [ 0, %sw.bb75 ], [ 0, %sw.bb72 ], [ 0, %sw.bb69 ], [ 0, %sw.bb66 ], [ 0, %sw.bb63 ], [ 0, %sw.bb60 ], [ 0, %sw.bb57 ], [ 0, %sw.bb54 ], [ 0, %sw.bb51 ], [ 0, %sw.bb48 ], [ 0, %sw.bb45 ], [ 0, %sw.bb42 ], [ 0, %sw.bb39 ], [ 0, %sw.bb35 ], [ 0, %sw.bb32 ], [ 0, %sw.bb29 ], [ 0, %sw.bb26 ], [ 0, %sw.bb23 ], [ 0, %sw.bb20 ], [ 0, %sw.bb17 ], [ 0, %sw.bb14 ], [ 0, %sw.bb11 ], [ 0, %sw.bb8 ], [ 0, %sw.bb5 ], [ 0, %sw.bb ], [ 0, %entry ] +return: ; preds = %entry, %sw.default, %sw.bb105, %sw.bb81, %sw.bb78, %sw.bb75, %sw.bb69, %sw.bb57, %sw.bb54, %sw.bb51, %sw.bb45, %sw.bb39, %sw.bb35, %sw.bb32, %sw.bb23, %sw.bb20, %sw.bb17, %sw.bb14, %sw.bb11, %sw.bb5, %sw.bb + %retval.sroa.3.0 = phi i64 [ 0, %sw.default ], [ 562949953422336, %sw.bb105 ], [ 4294967296, %sw.bb81 ], [ 9223372032559808512, %sw.bb78 ], [ 562949953421376, %sw.bb75 ], [ 12884901888, %sw.bb69 ], [ 107374182400, %sw.bb57 ], [ 34359738369, %sw.bb54 ], [ 17592186044420, %sw.bb51 ], [ 8589934592, %sw.bb45 ], [ 38654705664, %sw.bb39 ], [ 4611686018427387904, %sw.bb35 ], [ 1099511627776, %sw.bb32 ], [ 4294967296, %sw.bb23 ], [ 38654705665, %sw.bb20 ], [ 562949953421312, %sw.bb17 ], [ 30064771075, %sw.bb14 ], [ 128849018881, %sw.bb11 ], [ 128849018886, %sw.bb5 ], [ 98784116736, %sw.bb ], [ 133143986186, %entry ] + %retval.sroa.0.0 = phi i64 [ -40, %sw.default ], [ 0, %sw.bb105 ], [ 0, %sw.bb81 ], [ 0, %sw.bb78 ], [ 0, %sw.bb75 ], [ 0, %sw.bb69 ], [ 0, %sw.bb57 ], [ 0, %sw.bb54 ], [ 0, %sw.bb51 ], [ 0, %sw.bb45 ], [ 0, %sw.bb39 ], [ 0, %sw.bb35 ], [ 0, %sw.bb32 ], [ 0, %sw.bb23 ], [ 0, %sw.bb20 ], [ 0, %sw.bb17 ], [ 0, %sw.bb14 ], [ 0, %sw.bb11 ], [ 0, %sw.bb5 ], [ 0, %sw.bb ], [ 0, %entry ] %.fca.0.insert = insertvalue { i64, i64 } poison, i64 %retval.sroa.0.0, 0 %.fca.1.insert = insertvalue { i64, i64 } %.fca.0.insert, i64 %retval.sroa.3.0, 1 ret { i64, i64 } %.fca.1.insert diff --git a/bench/zstd/optimized/zstd_decompress.c.ll b/bench/zstd/optimized/zstd_decompress.c.ll index 96992ef808b..aeb5c208d64 100644 --- a/bench/zstd/optimized/zstd_decompress.c.ll +++ b/bench/zstd/optimized/zstd_decompress.c.ll @@ -4021,26 +4021,14 @@ entry: switch i32 %dParam, label %sw.epilog [ i32 100, label %return i32 1000, label %sw.bb1 - i32 1001, label %sw.bb4 - i32 1002, label %sw.bb7 - i32 1003, label %sw.bb10 - i32 1004, label %sw.bb13 + i32 1001, label %sw.bb1 + i32 1002, label %sw.bb1 + i32 1003, label %sw.bb1 + i32 1004, label %sw.bb1 i32 1005, label %sw.bb16 ] -sw.bb1: ; preds = %entry - br label %return - -sw.bb4: ; preds = %entry - br label %return - -sw.bb7: ; preds = %entry - br label %return - -sw.bb10: ; preds = %entry - br label %return - -sw.bb13: ; preds = %entry +sw.bb1: ; preds = %entry, %entry, %entry, %entry, %entry br label %return sw.bb16: ; preds = %entry @@ -4049,9 +4037,9 @@ sw.bb16: ; preds = %entry sw.epilog: ; preds = %entry br label %return -return: ; preds = %entry, %sw.epilog, %sw.bb16, %sw.bb13, %sw.bb10, %sw.bb7, %sw.bb4, %sw.bb1 - %retval.sroa.3.0 = phi i64 [ 0, %sw.epilog ], [ 562949953422336, %sw.bb16 ], [ 4294967296, %sw.bb13 ], [ 4294967296, %sw.bb10 ], [ 4294967296, %sw.bb7 ], [ 4294967296, %sw.bb4 ], [ 4294967296, %sw.bb1 ], [ 133143986186, %entry ] - %retval.sroa.0.0 = phi i64 [ -40, %sw.epilog ], [ 0, %sw.bb16 ], [ 0, %sw.bb13 ], [ 0, %sw.bb10 ], [ 0, %sw.bb7 ], [ 0, %sw.bb4 ], [ 0, %sw.bb1 ], [ 0, %entry ] +return: ; preds = %entry, %sw.epilog, %sw.bb16, %sw.bb1 + %retval.sroa.3.0 = phi i64 [ 0, %sw.epilog ], [ 562949953422336, %sw.bb16 ], [ 4294967296, %sw.bb1 ], [ 133143986186, %entry ] + %retval.sroa.0.0 = phi i64 [ -40, %sw.epilog ], [ 0, %sw.bb16 ], [ 0, %sw.bb1 ], [ 0, %entry ] %.fca.0.insert = insertvalue { i64, i64 } poison, i64 %retval.sroa.0.0, 0 %.fca.1.insert = insertvalue { i64, i64 } %.fca.0.insert, i64 %retval.sroa.3.0, 1 ret { i64, i64 } %.fca.1.insert