From 75665cb0f7303f344d42c6e4c5bcae845466bc6a Mon Sep 17 00:00:00 2001 From: nikic <216080+nikic@users.noreply.github.com> Date: Tue, 21 Oct 2025 18:02:29 +0800 Subject: [PATCH 1/3] pre-commit: PR164382 --- scripts/setup_pre_commit_patch.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c8d0fce0bf7..1002bfd8f9a 100755 --- a/scripts/setup_pre_commit_patch.sh +++ b/scripts/setup_pre_commit_patch.sh @@ -2,7 +2,7 @@ set -euo pipefail shopt -s inherit_errexit -export GITHUB_PATCH_ID="/llvm-project/commit/" +export GITHUB_PATCH_ID=llvm/llvm-project/pull/164382 export COMPTIME_MODE=0 export STAT_MODE=0 export STAT_NAME="" From 8b57d4eaf5aeeef062f4b261575dac1d27aafca4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 21 Oct 2025 10:23:13 +0000 Subject: [PATCH 2/3] pre-commit: Update --- bench/abc/optimized/abcReorder.ll | 9 +- bench/abc/optimized/bmcEco.ll | 11 +- bench/abc/optimized/wlnWriteVer.ll | 7 +- bench/abseil-cpp/optimized/str_cat_test.ll | 4 +- bench/box2d/optimized/init.ll | 195 +++++++++--------- bench/bullet3/optimized/b3File.ll | 53 ++--- bench/chibicc/optimized/parse.ll | 161 ++++++++------- bench/chibicc/optimized/tokenize.ll | 113 +++++----- bench/clamav/optimized/others_common.ll | 27 +-- bench/clamav/optimized/unpack.ll | 160 +++++++------- .../optimized/archive_read_disk_posix.ll | 28 +-- .../archive_read_support_format_mtree.ll | 95 +++++---- .../optimized/Hacl_Hash_Blake2b_Simd256.ll | 123 +++++------ .../optimized/Hacl_Hash_Blake2s_Simd128.ll | 89 ++++---- bench/darktable/optimized/film.ll | 11 +- bench/darktable/optimized/filtering.ll | 14 +- bench/darktable/optimized/imageio_pnm.ll | 16 +- .../optimized/introspection_colorzones.ll | 65 +++--- bench/darktable/optimized/tethering.ll | 24 ++- bench/duckdb/optimized/fastcover.ll | 89 ++++---- bench/flac/optimized/options.ll | 82 ++++---- bench/flac/optimized/replaygain_analysis.ll | 143 +++++++------ bench/fmt/optimized/chrono-test.ll | 61 +++--- bench/freetype/optimized/ftsystem.ll | 75 +++---- bench/git/optimized/submodule--helper.ll | 157 +++++++------- bench/graphviz/optimized/cvt.ll | 60 +++--- bench/graphviz/optimized/gvpack.ll | 49 ++--- bench/hdf5/optimized/H5Rint.ll | 86 ++++---- bench/hdf5/optimized/h5diff_array.ll | 94 +++++---- bench/hdf5/optimized/h5tools_str.ll | 46 +++-- bench/hermes/optimized/CSE.ll | 23 +-- bench/hermes/optimized/FoldingSet.ll | 17 +- bench/hermes/optimized/Lowering.ll | 13 +- bench/hwloc/optimized/bitmap.ll | 35 ++-- bench/hwloc/optimized/memattrs.ll | 85 ++++---- bench/hwloc/optimized/topology-linux.ll | 58 +++--- bench/icu/optimized/uwmsg.ll | 59 +++--- bench/jq/optimized/st.ll | 28 ++- bench/jq/optimized/unicode.ll | 16 +- bench/libigl/optimized/kkt_inverse.ll | 175 +++++++++------- bench/libpng/optimized/pngmem.ll | 89 ++++---- bench/libquic/optimized/a_utctm.ll | 7 +- bench/libquic/optimized/cipher.ll | 58 +++--- bench/libquic/optimized/e_aes.ll | 64 +++--- bench/libquic/optimized/rsa_impl.ll | 79 +++---- bench/libzmq/optimized/msg.ll | 151 +++++++------- bench/libzmq/optimized/xpub.ll | 86 ++++---- bench/llama.cpp/optimized/ggml-alloc.ll | 70 ++++--- bench/llvm/optimized/ASTWriter.ll | 77 ++++--- bench/llvm/optimized/LiveIntervalUnion.ll | 52 +++-- bench/llvm/optimized/NestedNameSpecifier.ll | 74 +++---- bench/llvm/optimized/SmallPtrSet.ll | 107 +++++----- bench/lvgl/optimized/lv_sdl_window.ll | 59 +++--- bench/lz4/optimized/lorem.ll | 11 +- bench/memcached/optimized/assoc.ll | 49 +++-- bench/mold/optimized/rust-demangle.ll | 46 +++-- bench/nanobind/optimized/common.ll | 15 +- bench/nuttx/optimized/lib_setvbuf.ll | 71 ++++--- bench/opencv/optimized/ar_hmdb_benchmark.ll | 15 +- bench/opencv/optimized/calibinit.ll | 26 ++- bench/openexr/optimized/ImfIDManifest.ll | 38 ++-- bench/openjdk/optimized/AccelGlyphCache.ll | 55 +++-- .../PLATFORM_API_LinuxOS_ALSA_MidiUtils.ll | 21 +- bench/openjdk/optimized/img_colors.ll | 63 +++--- bench/openjdk/optimized/os.ll | 58 +++--- bench/openjdk/optimized/splashscreen_sys.ll | 19 +- bench/openmpi/optimized/pmix_mca_base_open.ll | 18 +- bench/openmpi/optimized/pmix_mca_base_var.ll | 19 +- bench/openmpi/optimized/unpack.ll | 29 +-- bench/openusd/optimized/drawModeStandin.ll | 117 ++++++----- bench/php/optimized/shared_alloc_shm.ll | 122 +++++------ bench/php/optimized/zend.ll | 20 +- bench/postgres/optimized/fe-cancel.ll | 76 +++---- bench/raylib/optimized/utils.ll | 117 +++++------ bench/redis/optimized/fpconv.ll | 45 ++-- bench/ruby/optimized/util.ll | 87 ++++---- bench/sdl/optimized/SDL_malloc.ll | 107 +++++----- bench/sundials/optimized/arkode_lsrkstep.ll | 88 ++++---- bench/sundials/optimized/sundials_hashmap.ll | 50 ++--- .../optimized/sundials_nvector_senswrapper.ll | 57 ++--- bench/velox/optimized/CompactRowSerializer.ll | 171 +++++++-------- .../optimized/user_defined_serialization.ll | 52 +++-- bench/zlib/optimized/gzwrite.ll | 103 ++++----- bench/zstd/optimized/fastcover.ll | 93 +++++---- 84 files changed, 2850 insertions(+), 2637 deletions(-) diff --git a/bench/abc/optimized/abcReorder.ll b/bench/abc/optimized/abcReorder.ll index 54c62e2e5ed..41dbcd75954 100644 --- a/bench/abc/optimized/abcReorder.ll +++ b/bench/abc/optimized/abcReorder.ll @@ -15,11 +15,12 @@ define void @Abc_NodeBddReorder(ptr noundef %0, ptr noundef captures(none) %1) l %4 = sext i32 %.val to i64 %5 = shl nsw i64 %4, 2 %6 = tail call noalias ptr @malloc(i64 noundef %5) #6 - %7 = icmp sgt i32 %.val, 0 + %.val38 = load i32, ptr %3, align 4, !tbaa !3 + %7 = icmp sgt i32 %.val38, 0 br i1 %7, label %.lr.ph.preheader, label %._crit_edge .lr.ph.preheader: ; preds = %2 - %8 = zext nneg i32 %.val to i64 + %8 = zext nneg i32 %.val38 to i64 %9 = shl nuw nsw i64 %8, 2 tail call void @llvm.memset.p0.i64(ptr align 4 %6, i8 -1, i64 %9, i1 false), !tbaa !13 br label %._crit_edge @@ -89,7 +90,7 @@ define void @Abc_NodeBddReorder(ptr noundef %0, ptr noundef captures(none) %1) l ret void } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #1 declare ptr @Extra_Reorder(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2 @@ -227,7 +228,7 @@ declare void @Extra_ReorderQuit(ptr noundef) local_unnamed_addr #2 declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #5 attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #1 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/abc/optimized/bmcEco.ll b/bench/abc/optimized/bmcEco.ll index ebaaec9c312..785f00ec5aa 100644 --- a/bench/abc/optimized/bmcEco.ll +++ b/bench/abc/optimized/bmcEco.ll @@ -1444,7 +1444,8 @@ Vec_IntAlloc.exit: ; preds = %11, %20 %25 = getelementptr inbounds nuw i8, ptr %17, i64 8 store ptr %24, ptr %25, align 8, !tbaa !31 %26 = getelementptr i8, ptr %14, i64 32 - %27 = icmp sgt i32 %.val38.val, 0 + %.val42 = load i32, ptr %16, align 4, !tbaa !29 + %27 = icmp sgt i32 %.val42, 0 br i1 %27, label %.lr.ph, label %.critedge .lr.ph: ; preds = %Vec_IntAlloc.exit, %Vec_IntPush.exit @@ -1572,7 +1573,7 @@ declare void @Gia_AigerWrite(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) declare ptr @strcpy(ptr noalias noundef returned writeonly, ptr noalias noundef readonly captures(none)) local_unnamed_addr #4 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #5 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: read) @@ -1747,7 +1748,7 @@ Vec_IntPush.exit: ; preds = %.Vec_IntGrow.exit10 ; Function Attrs: nofree noreturn nounwind declare void @exit(i32 noundef) local_unnamed_addr #7 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #8 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) @@ -1784,10 +1785,10 @@ attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "t attributes #2 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { nofree noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #10 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #11 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } diff --git a/bench/abc/optimized/wlnWriteVer.ll b/bench/abc/optimized/wlnWriteVer.ll index f953840f365..c5597c5cfff 100644 --- a/bench/abc/optimized/wlnWriteVer.ll +++ b/bench/abc/optimized/wlnWriteVer.ll @@ -233,7 +233,8 @@ Vec_IntStart.exit: ; preds = %Vec_IntAlloc.exit.i br label %24 .preheader: ; preds = %41, %Vec_IntStart.exit - %20 = icmp sgt i32 %.val, 0 + %.val3148 = load i32, ptr %7, align 4, !tbaa !21 + %20 = icmp sgt i32 %.val3148, 0 br i1 %20, label %.lr.ph50, label %.critedge .lr.ph50: ; preds = %.preheader @@ -2630,7 +2631,7 @@ declare noundef i32 @fclose(ptr noundef captures(none)) local_unnamed_addr #1 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #5 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #6 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) @@ -2666,7 +2667,7 @@ attributes #2 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-mat attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #6 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #9 = { nofree nounwind } diff --git a/bench/abseil-cpp/optimized/str_cat_test.ll b/bench/abseil-cpp/optimized/str_cat_test.ll index deae9e7079f..f6e43bde058 100644 --- a/bench/abseil-cpp/optimized/str_cat_test.ll +++ b/bench/abseil-cpp/optimized/str_cat_test.ll @@ -14912,7 +14912,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit32: ; preds = %62, ; Function Attrs: noreturn declare void @_ZSt20__throw_length_errorPKc(ptr noundef) local_unnamed_addr #12 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #14 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) @@ -50528,7 +50528,7 @@ attributes #10 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-wi attributes #11 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #12 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #13 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #14 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #14 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #15 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #16 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #17 = { mustprogress noinline nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/box2d/optimized/init.ll b/bench/box2d/optimized/init.ll index bb304a92e42..c812b6c81ef 100644 --- a/bench/box2d/optimized/init.ll +++ b/bench/box2d/optimized/init.ll @@ -172,7 +172,7 @@ define hidden range(i64 0, 5) i64 @_glfwEncodeUTF8(ptr noundef writeonly capture define hidden ptr @_glfwParseUriList(ptr noundef %0, ptr noundef captures(none) initializes((0, 4)) %1) local_unnamed_addr #1 { %3 = alloca [3 x i8], align 1 store i32 0, ptr %1, align 4, !tbaa !6 - %4 = tail call ptr @strtok(ptr noundef %0, ptr noundef nonnull @.str.1) #21 + %4 = tail call ptr @strtok(ptr noundef %0, ptr noundef nonnull @.str.1) #22 %.not47 = icmp eq ptr %4, null br i1 %.not47, label %._crit_edge, label %.lr.ph @@ -189,7 +189,7 @@ define hidden ptr @_glfwParseUriList(ptr noundef %0, ptr noundef captures(none) br i1 %10, label %.loopexit, label %11 11: ; preds = %7 - %12 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %8, ptr noundef nonnull dereferenceable(8) @.str, i64 noundef 7) #22 + %12 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %8, ptr noundef nonnull dereferenceable(8) @.str, i64 noundef 7) #23 %13 = icmp eq i32 %12, 0 br i1 %13, label %14, label %.loopexit43 @@ -209,7 +209,7 @@ define hidden ptr @_glfwParseUriList(ptr noundef %0, ptr noundef captures(none) %19 = load i32, ptr %1, align 4, !tbaa !6 %20 = add nsw i32 %19, 1 store i32 %20, ptr %1, align 4, !tbaa !6 - %21 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.030) #22 + %21 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.030) #23 %22 = add i64 %21, 1 %.not42 = icmp eq i64 %22, 0 br i1 %.not42, label %_glfw_calloc.exit, label %23 @@ -217,7 +217,7 @@ define hidden ptr @_glfwParseUriList(ptr noundef %0, ptr noundef captures(none) 23: ; preds = %.loopexit43 %24 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 8), align 8, !tbaa !8 %25 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - %26 = tail call ptr %24(i64 noundef %22, ptr noundef %25) #21 + %26 = tail call ptr %24(i64 noundef %22, ptr noundef %25) #22 %.not.i = icmp eq ptr %26, null br i1 %.not.i, label %28, label %27 @@ -242,7 +242,7 @@ _glfw_calloc.exit: ; preds = %.loopexit43, %27, % 34: ; preds = %_glfw_calloc.exit %35 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 16), align 8, !tbaa !96 %36 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - %37 = tail call ptr %35(ptr noundef nonnull %.03148, i64 noundef %31, ptr noundef %36) #21 + %37 = tail call ptr %35(ptr noundef nonnull %.03148, i64 noundef %31, ptr noundef %36) #22 %.not.i41 = icmp eq ptr %37, null br i1 %.not.i41, label %38, label %_glfw_realloc.exit @@ -256,14 +256,14 @@ _glfw_calloc.exit: ; preds = %.loopexit43, %27, % _glfw_free.exit.i: ; preds = %39 %40 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 24), align 8, !tbaa !97 %41 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - tail call void %40(ptr noundef nonnull %.03148, ptr noundef %41) #21 + tail call void %40(ptr noundef nonnull %.03148, ptr noundef %41) #22 unreachable 42: ; preds = %39 tail call void @llvm.assume(i1 %33) %43 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 8), align 8, !tbaa !8 %44 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - %45 = tail call ptr %43(i64 noundef %31, ptr noundef %44) #21 + %45 = tail call ptr %43(i64 noundef %31, ptr noundef %44) #22 %.not.i14.i = icmp eq ptr %45, null br i1 %.not.i14.i, label %47, label %46 @@ -310,7 +310,7 @@ _glfw_realloc.exit: ; preds = %34, %46 store i8 %56, ptr %3, align 1, !tbaa !3 store i8 %59, ptr %5, align 1, !tbaa !3 store i8 0, ptr %6, align 1, !tbaa !3 - %61 = call i64 @strtol(ptr noundef nonnull captures(none) %3, ptr noundef null, i32 noundef 16) #21 + %61 = call i64 @strtol(ptr noundef nonnull captures(none) %3, ptr noundef null, i32 noundef 16) #22 %62 = trunc i64 %61 to i8 store i8 %62, ptr %.0, align 1, !tbaa !3 call void @llvm.lifetime.end.p0(ptr nonnull %3) @@ -328,7 +328,7 @@ _glfw_realloc.exit: ; preds = %34, %46 .loopexit: ; preds = %52, %7 %.132 = phi ptr [ %.03148, %7 ], [ %.1.i40, %52 ] - %67 = tail call ptr @strtok(ptr noundef null, ptr noundef nonnull @.str.1) #21 + %67 = tail call ptr @strtok(ptr noundef null, ptr noundef nonnull @.str.1) #22 %.not = icmp eq ptr %67, null br i1 %.not, label %._crit_edge, label %7 @@ -366,7 +366,7 @@ define hidden ptr @_glfw_calloc(i64 noundef %0, i64 noundef %1) local_unnamed_ad %8 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 8), align 8, !tbaa !8 %9 = mul i64 %1, %0 %10 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - %11 = tail call ptr %8(i64 noundef %9, ptr noundef %10) #21 + %11 = tail call ptr %8(i64 noundef %9, ptr noundef %10) #22 %.not = icmp eq ptr %11, null br i1 %.not, label %13, label %12 @@ -393,7 +393,7 @@ define hidden ptr @_glfw_realloc(ptr noundef %0, i64 noundef %1) local_unnamed_a 5: ; preds = %2 %6 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 16), align 8, !tbaa !96 %7 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - %8 = tail call ptr %6(ptr noundef nonnull %0, i64 noundef %1, ptr noundef %7) #21 + %8 = tail call ptr %6(ptr noundef nonnull %0, i64 noundef %1, ptr noundef %7) #22 %.not = icmp eq ptr %8, null br i1 %.not, label %9, label %_glfw_calloc.exit @@ -407,7 +407,7 @@ define hidden ptr @_glfw_realloc(ptr noundef %0, i64 noundef %1) local_unnamed_a _glfw_free.exit: ; preds = %10 %11 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 24), align 8, !tbaa !97 %12 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - tail call void %11(ptr noundef nonnull %0, ptr noundef %12) #21 + tail call void %11(ptr noundef nonnull %0, ptr noundef %12) #22 br label %_glfw_calloc.exit 13: ; preds = %10 @@ -416,7 +416,7 @@ _glfw_free.exit: ; preds = %10 14: ; preds = %13 %15 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 8), align 8, !tbaa !8 %16 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - %17 = tail call ptr %15(i64 noundef %1, ptr noundef %16) #21 + %17 = tail call ptr %15(i64 noundef %1, ptr noundef %16) #22 %.not.i14 = icmp eq ptr %17, null br i1 %.not.i14, label %19, label %18 @@ -438,7 +438,7 @@ declare i64 @strtol(ptr noundef readonly, ptr noundef captures(none), i32 nounde ; Function Attrs: nounwind uwtable define hidden noundef ptr @_glfw_strdup(ptr noundef readonly captures(none) %0) local_unnamed_addr #1 { - %2 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %0) #22 + %2 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %0) #23 %3 = add i64 %2, 1 %.not = icmp eq i64 %3, 0 br i1 %.not, label %_glfw_calloc.exit, label %4 @@ -446,7 +446,7 @@ define hidden noundef ptr @_glfw_strdup(ptr noundef readonly captures(none) %0) 4: ; preds = %1 %5 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 8), align 8, !tbaa !8 %6 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - %7 = tail call ptr %5(i64 noundef %3, ptr noundef %6) #21 + %7 = tail call ptr %5(i64 noundef %3, ptr noundef %6) #22 %.not.i = icmp eq ptr %7, null br i1 %.not.i, label %9, label %8 @@ -460,7 +460,7 @@ define hidden noundef ptr @_glfw_strdup(ptr noundef readonly captures(none) %0) _glfw_calloc.exit: ; preds = %1, %8, %9 %.1.i = phi ptr [ %7, %8 ], [ null, %9 ], [ null, %1 ] - %10 = tail call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %.1.i, ptr noundef nonnull dereferenceable(1) %0) #21 + %10 = tail call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %.1.i, ptr noundef nonnull dereferenceable(1) %0) #22 ret ptr %.1.i } @@ -490,7 +490,7 @@ define hidden void @_glfwInputError(i32 noundef %0, ptr noundef readonly capture 5: ; preds = %2 call void @llvm.lifetime.start.p0(ptr nonnull %4) call void @llvm.va_start.p0(ptr nonnull %4) - %6 = call i32 @vsnprintf(ptr noundef nonnull %3, i64 noundef 1024, ptr noundef nonnull %1, ptr noundef nonnull %4) #21 + %6 = call i32 @vsnprintf(ptr noundef nonnull %3, i64 noundef 1024, ptr noundef nonnull %1, ptr noundef nonnull %4) #22 call void @llvm.va_end.p0(ptr nonnull %4) %7 = getelementptr inbounds nuw i8, ptr %3, i64 1023 store i8 0, ptr %7, align 1, !tbaa !3 @@ -516,63 +516,63 @@ define hidden void @_glfwInputError(i32 noundef %0, ptr noundef readonly capture ] 9: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(36) %3, ptr noundef nonnull align 1 dereferenceable(36) @.str.3, i64 36, i1 false) #21 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(36) %3, ptr noundef nonnull align 1 dereferenceable(36) @.str.3, i64 36, i1 false) #22 br label %24 10: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(28) %3, ptr noundef nonnull align 1 dereferenceable(28) @.str.4, i64 28, i1 false) #21 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(28) %3, ptr noundef nonnull align 1 dereferenceable(28) @.str.4, i64 28, i1 false) #22 br label %24 11: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(36) %3, ptr noundef nonnull align 1 dereferenceable(36) @.str.5, i64 36, i1 false) #21 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(36) %3, ptr noundef nonnull align 1 dereferenceable(36) @.str.5, i64 36, i1 false) #22 br label %24 12: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(28) %3, ptr noundef nonnull align 1 dereferenceable(28) @.str.6, i64 28, i1 false) #21 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(28) %3, ptr noundef nonnull align 1 dereferenceable(28) @.str.6, i64 28, i1 false) #22 br label %24 13: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(14) %3, ptr noundef nonnull align 1 dereferenceable(14) @.str.7, i64 14, i1 false) #21 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(14) %3, ptr noundef nonnull align 1 dereferenceable(14) @.str.7, i64 14, i1 false) #22 br label %24 14: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(33) %3, ptr noundef nonnull align 1 dereferenceable(33) @.str.8, i64 33, i1 false) #21 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(33) %3, ptr noundef nonnull align 1 dereferenceable(33) @.str.8, i64 33, i1 false) #22 br label %24 15: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(41) %3, ptr noundef nonnull align 1 dereferenceable(41) @.str.9, i64 41, i1 false) #21 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(41) %3, ptr noundef nonnull align 1 dereferenceable(41) @.str.9, i64 41, i1 false) #22 br label %24 16: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(35) %3, ptr noundef nonnull align 1 dereferenceable(35) @.str.10, i64 35, i1 false) #21 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(35) %3, ptr noundef nonnull align 1 dereferenceable(35) @.str.10, i64 35, i1 false) #22 br label %24 17: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(36) %3, ptr noundef nonnull align 1 dereferenceable(36) @.str.11, i64 36, i1 false) #21 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(36) %3, ptr noundef nonnull align 1 dereferenceable(36) @.str.11, i64 36, i1 false) #22 br label %24 18: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(36) %3, ptr noundef nonnull align 1 dereferenceable(36) @.str.12, i64 36, i1 false) #21 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(36) %3, ptr noundef nonnull align 1 dereferenceable(36) @.str.12, i64 36, i1 false) #22 br label %24 19: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(42) %3, ptr noundef nonnull align 1 dereferenceable(42) @.str.13, i64 42, i1 false) #21 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(42) %3, ptr noundef nonnull align 1 dereferenceable(42) @.str.13, i64 42, i1 false) #22 br label %24 20: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(62) %3, ptr noundef nonnull align 1 dereferenceable(62) @.str.14, i64 62, i1 false) #21 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(62) %3, ptr noundef nonnull align 1 dereferenceable(62) @.str.14, i64 62, i1 false) #22 br label %24 21: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(69) %3, ptr noundef nonnull align 1 dereferenceable(69) @.str.15, i64 69, i1 false) #21 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(69) %3, ptr noundef nonnull align 1 dereferenceable(69) @.str.15, i64 69, i1 false) #22 br label %24 22: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(38) %3, ptr noundef nonnull align 1 dereferenceable(38) @.str.16, i64 38, i1 false) #21 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(38) %3, ptr noundef nonnull align 1 dereferenceable(38) @.str.16, i64 38, i1 false) #22 br label %24 23: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(26) %3, ptr noundef nonnull align 1 dereferenceable(26) @.str.17, i64 26, i1 false) #21 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(26) %3, ptr noundef nonnull align 1 dereferenceable(26) @.str.17, i64 26, i1 false) #22 br label %24 24: ; preds = %9, %11, %13, %15, %17, %19, %21, %23, %22, %20, %18, %16, %14, %12, %10, %5 @@ -581,14 +581,14 @@ define hidden void @_glfwInputError(i32 noundef %0, ptr noundef readonly capture br i1 %.not27, label %35, label %26 26: ; preds = %24 - %27 = call ptr @_glfwPlatformGetTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404)) #21 + %27 = call ptr @_glfwPlatformGetTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404)) #22 %.not28 = icmp eq ptr %27, null br i1 %.not28, label %28, label %35 28: ; preds = %26 %29 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 8), align 8, !tbaa !8 %30 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - %31 = call ptr %29(i64 noundef 1040, ptr noundef %30) #21 + %31 = call ptr %29(i64 noundef 1040, ptr noundef %30) #22 %.not.i = icmp eq ptr %31, null br i1 %.not.i, label %33, label %32 @@ -601,12 +601,12 @@ define hidden void @_glfwInputError(i32 noundef %0, ptr noundef readonly capture br label %_glfw_calloc.exit _glfw_calloc.exit: ; preds = %32, %33 - call void @_glfwPlatformSetTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404), ptr noundef %31) #21 - call void @_glfwPlatformLockMutex(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133424)) #21 + call void @_glfwPlatformSetTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404), ptr noundef %31) #22 + call void @_glfwPlatformLockMutex(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133424)) #22 %34 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 1896), align 8, !tbaa !100 store ptr %34, ptr %31, align 8, !tbaa !101 store ptr %31, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 1896), align 8, !tbaa !100 - call void @_glfwPlatformUnlockMutex(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133424)) #21 + call void @_glfwPlatformUnlockMutex(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133424)) #22 br label %35 35: ; preds = %24, %26, %_glfw_calloc.exit @@ -614,13 +614,13 @@ _glfw_calloc.exit: ; preds = %32, %33 %36 = getelementptr inbounds nuw i8, ptr %.0, i64 8 store i32 %0, ptr %36, align 8, !tbaa !103 %37 = getelementptr inbounds nuw i8, ptr %.0, i64 12 - %38 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %37, ptr noundef nonnull dereferenceable(1) %3) #21 + %38 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %37, ptr noundef nonnull dereferenceable(1) %3) #22 %39 = load ptr, ptr @_glfwErrorCallback, align 8, !tbaa !104 %.not29 = icmp eq ptr %39, null br i1 %.not29, label %41, label %40 40: ; preds = %35 - call void %39(i32 noundef %0, ptr noundef nonnull %3) #21 + call void %39(i32 noundef %0, ptr noundef nonnull %3) #22 br label %41 41: ; preds = %40, %35 @@ -639,7 +639,7 @@ define hidden void @_glfw_free(ptr noundef %0) local_unnamed_addr #1 { 2: ; preds = %1 %3 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 24), align 8, !tbaa !97 %4 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - tail call void %3(ptr noundef nonnull %0, ptr noundef %4) #21 + tail call void %3(ptr noundef nonnull %0, ptr noundef %4) #22 br label %5 5: ; preds = %2, %1 @@ -685,13 +685,13 @@ define range(i32 0, 2) i32 @glfwInit() local_unnamed_addr #1 { 5: ; preds = %4, %2 %6 = load i32, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 624), align 8, !tbaa !107 - %7 = tail call i32 @_glfwSelectPlatform(i32 noundef %6, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 40)) #21 + %7 = tail call i32 @_glfwSelectPlatform(i32 noundef %6, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 40)) #22 %.not2 = icmp eq i32 %7, 0 br i1 %.not2, label %21, label %8 8: ; preds = %5 %9 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 48), align 8, !tbaa !108 - %10 = tail call i32 %9() #21 + %10 = tail call i32 %9() #22 %.not3 = icmp eq i32 %10, 0 br i1 %.not3, label %11, label %12 @@ -700,17 +700,17 @@ define range(i32 0, 2) i32 @glfwInit() local_unnamed_addr #1 { br label %21 12: ; preds = %8 - %13 = tail call i32 @_glfwPlatformCreateMutex(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133424)) #21 + %13 = tail call i32 @_glfwPlatformCreateMutex(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133424)) #22 %.not4 = icmp eq i32 %13, 0 br i1 %.not4, label %18, label %14 14: ; preds = %12 - %15 = tail call i32 @_glfwPlatformCreateTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404)) #21 + %15 = tail call i32 @_glfwPlatformCreateTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404)) #22 %.not5 = icmp eq i32 %15, 0 br i1 %.not5, label %18, label %16 16: ; preds = %14 - %17 = tail call i32 @_glfwPlatformCreateTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133412)) #21 + %17 = tail call i32 @_glfwPlatformCreateTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133412)) #22 %.not6 = icmp eq i32 %17, 0 br i1 %.not6, label %18, label %19 @@ -719,13 +719,13 @@ define range(i32 0, 2) i32 @glfwInit() local_unnamed_addr #1 { br label %21 19: ; preds = %16 - tail call void @_glfwPlatformSetTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404), ptr noundef nonnull @_glfwMainThreadError) #21 - tail call void @_glfwInitGamepadMappings() #21 - tail call void @_glfwPlatformInitTimer() #21 - %20 = tail call i64 @_glfwPlatformGetTimerValue() #21 + tail call void @_glfwPlatformSetTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404), ptr noundef nonnull @_glfwMainThreadError) #22 + tail call void @_glfwInitGamepadMappings() #22 + tail call void @_glfwPlatformInitTimer() #22 + %20 = tail call i64 @_glfwPlatformGetTimerValue() #22 store i64 %20, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 133472), align 8, !tbaa !109 store i32 1, ptr @_glfw, align 8, !tbaa !99 - tail call void @glfwDefaultWindowHints() #21 + tail call void @glfwDefaultWindowHints() #22 br label %21 21: ; preds = %5, %0, %19, %18, %11 @@ -736,21 +736,21 @@ define range(i32 0, 2) i32 @glfwInit() local_unnamed_addr #1 { ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #10 -; Function Attrs: mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite) uwtable +; Function Attrs: mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite, errnomem: write) uwtable define internal noalias noundef ptr @defaultAllocate(i64 noundef %0, ptr readnone captures(none) %1) #11 { - %3 = tail call noalias ptr @malloc(i64 noundef %0) #23 + %3 = tail call noalias ptr @malloc(i64 noundef %0) #24 ret ptr %3 } -; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable +; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable define internal noalias noundef ptr @defaultReallocate(ptr noundef captures(none) %0, i64 noundef %1, ptr readnone captures(none) %2) #12 { - %4 = tail call ptr @realloc(ptr noundef %0, i64 noundef %1) #24 + %4 = tail call ptr @realloc(ptr noundef %0, i64 noundef %1) #25 ret ptr %4 } ; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable -define internal void @defaultDeallocate(ptr noundef captures(none) %0, ptr readnone captures(none) %1) #12 { - tail call void @free(ptr noundef %0) #21 +define internal void @defaultDeallocate(ptr noundef captures(none) %0, ptr readnone captures(none) %1) #13 { + tail call void @free(ptr noundef %0) #22 ret void } @@ -770,7 +770,7 @@ define internal fastcc void @terminate() unnamed_addr #1 { .lr.ph: ; preds = %0, %.lr.ph %3 = phi ptr [ %4, %.lr.ph ], [ %1, %0 ] - tail call void @glfwDestroyWindow(ptr noundef nonnull %3) #21 + tail call void @glfwDestroyWindow(ptr noundef nonnull %3) #22 %4 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 1912), align 8, !tbaa !110 %.not = icmp eq ptr %4, null br i1 %.not, label %.preheader18, label %.lr.ph @@ -782,7 +782,7 @@ define internal fastcc void @terminate() unnamed_addr #1 { .lr.ph21: ; preds = %.preheader18, %.lr.ph21 %7 = phi ptr [ %8, %.lr.ph21 ], [ %2, %.preheader18 ] - tail call void @glfwDestroyCursor(ptr noundef nonnull %7) #21 + tail call void @glfwDestroyCursor(ptr noundef nonnull %7) #22 %8 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 1904), align 8, !tbaa !111 %.not11 = icmp eq ptr %8, null br i1 %.not11, label %.preheader, label %.lr.ph21 @@ -800,11 +800,11 @@ define internal fastcc void @terminate() unnamed_addr #1 { 14: ; preds = %.lr.ph23 %15 = getelementptr inbounds nuw i8, ptr %11, i64 192 %16 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 264), align 8, !tbaa !126 - tail call void %16(ptr noundef nonnull %11, ptr noundef nonnull %15) #21 + tail call void %16(ptr noundef nonnull %11, ptr noundef nonnull %15) #22 br label %17 17: ; preds = %14, %.lr.ph23 - tail call void @_glfwFreeMonitor(ptr noundef nonnull %11) #21 + tail call void @_glfwFreeMonitor(ptr noundef nonnull %11) #22 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %18 = load i32, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 1928), align 8, !tbaa !112 %19 = sext i32 %18 to i64 @@ -819,7 +819,7 @@ define internal fastcc void @terminate() unnamed_addr #1 { 22: ; preds = %._crit_edge %23 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 24), align 8, !tbaa !97 %24 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - tail call void %23(ptr noundef nonnull %21, ptr noundef %24) #21 + tail call void %23(ptr noundef nonnull %21, ptr noundef %24) #22 br label %_glfw_free.exit _glfw_free.exit: ; preds = %._crit_edge, %22 @@ -832,17 +832,17 @@ _glfw_free.exit: ; preds = %._crit_edge, %22 26: ; preds = %_glfw_free.exit %27 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 24), align 8, !tbaa !97 %28 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - tail call void %27(ptr noundef nonnull %25, ptr noundef %28) #21 + tail call void %27(ptr noundef nonnull %25, ptr noundef %28) #22 br label %_glfw_free.exit15 _glfw_free.exit15: ; preds = %_glfw_free.exit, %26 store ptr null, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 133392), align 8, !tbaa !127 store i32 0, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 133400), align 8, !tbaa !128 - tail call void @_glfwTerminateVulkan() #21 + tail call void @_glfwTerminateVulkan() #22 %29 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 176), align 8, !tbaa !129 - tail call void %29() #21 + tail call void %29() #22 %30 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 56), align 8, !tbaa !130 - tail call void %30() #21 + tail call void %30() #22 store i32 0, ptr @_glfw, align 8, !tbaa !99 %31 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 1896), align 8, !tbaa !100 %.not1224 = icmp eq ptr %31, null @@ -854,15 +854,15 @@ _glfw_free.exit17: ; preds = %_glfw_free.exit15, store ptr %33, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 1896), align 8, !tbaa !100 %34 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 24), align 8, !tbaa !97 %35 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - tail call void %34(ptr noundef nonnull %32, ptr noundef %35) #21 + tail call void %34(ptr noundef nonnull %32, ptr noundef %35) #22 %36 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 1896), align 8, !tbaa !100 %.not12 = icmp eq ptr %36, null br i1 %.not12, label %._crit_edge25, label %_glfw_free.exit17 ._crit_edge25: ; preds = %_glfw_free.exit17, %_glfw_free.exit15 - tail call void @_glfwPlatformDestroyTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133412)) #21 - tail call void @_glfwPlatformDestroyTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404)) #21 - tail call void @_glfwPlatformDestroyMutex(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133424)) #21 + tail call void @_glfwPlatformDestroyTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133412)) #22 + tail call void @_glfwPlatformDestroyTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404)) #22 + tail call void @_glfwPlatformDestroyMutex(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133424)) #22 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(143664) @_glfw, i8 0, i64 143664, i1 false) ret void } @@ -980,7 +980,7 @@ define void @glfwInitAllocator(ptr noundef readonly captures(address_is_null) %0 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: none, inaccessiblemem: none) uwtable -define void @glfwInitVulkanLoader(ptr noundef %0) local_unnamed_addr #13 { +define void @glfwInitVulkanLoader(ptr noundef %0) local_unnamed_addr #14 { store ptr %0, ptr getelementptr inbounds nuw (i8, ptr @_glfwInitHints, i64 16), align 8, !tbaa !141 ret void } @@ -1029,7 +1029,7 @@ define i32 @glfwGetError(ptr noundef writeonly captures(address_is_null) %0) loc br i1 %.not, label %.thread, label %6 6: ; preds = %4 - %7 = tail call ptr @_glfwPlatformGetTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404)) #21 + %7 = tail call ptr @_glfwPlatformGetTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404)) #22 %.not13 = icmp eq ptr %7, null br i1 %.not13, label %13, label %.thread @@ -1053,20 +1053,20 @@ define i32 @glfwGetError(ptr noundef writeonly captures(address_is_null) %0) loc } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, argmem: none, inaccessiblemem: none) uwtable -define ptr @glfwSetErrorCallback(ptr noundef %0) local_unnamed_addr #14 { +define ptr @glfwSetErrorCallback(ptr noundef %0) local_unnamed_addr #15 { %2 = load ptr, ptr @_glfwErrorCallback, align 8, !tbaa !104 store ptr %0, ptr @_glfwErrorCallback, align 8, !tbaa !104 ret ptr %2 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) -declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #15 +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) +declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #16 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) -declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #16 +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) +declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #17 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) -declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #17 +declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #18 declare void @glfwDestroyWindow(ptr noundef) local_unnamed_addr #9 @@ -1081,22 +1081,22 @@ declare void @_glfwPlatformDestroyTls(ptr noundef) local_unnamed_addr #9 declare void @_glfwPlatformDestroyMutex(ptr noundef) local_unnamed_addr #9 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(ptr captures(none)) #18 +declare void @llvm.lifetime.start.p0(ptr captures(none)) #19 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(ptr captures(none)) #18 +declare void @llvm.lifetime.end.p0(ptr captures(none)) #19 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #19 +declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #20 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.smin.i32(i32, i32) #19 +declare i32 @llvm.smin.i32(i32, i32) #20 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.smax.i32(i32, i32) #19 +declare i32 @llvm.smax.i32(i32, i32) #20 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) -declare void @llvm.assume(i1 noundef) #20 +declare void @llvm.assume(i1 noundef) #21 attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -1109,20 +1109,21 @@ attributes #7 = { mustprogress nocallback nofree nosync nounwind willreturn } attributes #8 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #10 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #11 = { mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: none, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #14 = { mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, argmem: none, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #15 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #16 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #17 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #18 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #19 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #20 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } -attributes #21 = { nounwind } -attributes #22 = { nounwind willreturn memory(read) } -attributes #23 = { nounwind allocsize(0) } -attributes #24 = { nounwind allocsize(1) } +attributes #11 = { mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite, errnomem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #12 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #13 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #14 = { mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: none, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #15 = { mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, argmem: none, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #16 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #17 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #18 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #19 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +attributes #20 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #21 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } +attributes #22 = { nounwind } +attributes #23 = { nounwind willreturn memory(read) } +attributes #24 = { nounwind allocsize(0) } +attributes #25 = { nounwind allocsize(1) } !llvm.module.flags = !{!0, !1, !2} diff --git a/bench/bullet3/optimized/b3File.ll b/bench/bullet3/optimized/b3File.ll index 4351fe03bdb..4deebd67379 100644 --- a/bench/bullet3/optimized/b3File.ll +++ b/bench/bullet3/optimized/b3File.ll @@ -256,7 +256,7 @@ define dso_local void @_ZN6bParse5bFileC2EPKcS2_(ptr noundef nonnull align 8 der 71: ; preds = %73 %72 = tail call noalias ptr @fopen(ptr noundef %1, ptr noundef nonnull @.str) %.not = icmp eq ptr %72, null - br i1 %.not, label %99, label %77 + br i1 %.not, label %100, label %77 73: ; preds = %3, %73 %indvars.iv = phi i64 [ 0, %3 ], [ %indvars.iv.next, %73 ] @@ -279,32 +279,33 @@ define dso_local void @_ZN6bParse5bFileC2EPKcS2_(ptr noundef nonnull align 8 der %84 = sext i32 %83 to i64 %85 = tail call noalias ptr @malloc(i64 noundef %84) #31 store ptr %85, ptr %5, align 8, !tbaa !59 - %86 = sext i32 %82 to i64 - %87 = tail call i64 @fread(ptr noundef %85, i64 noundef %86, i64 noundef 1, ptr noundef nonnull %72) - %88 = tail call i32 @fclose(ptr noundef nonnull %72) - %89 = load ptr, ptr %0, align 8, !tbaa !9 - %90 = load ptr, ptr %89, align 8 - invoke void %90(ptr noundef nonnull align 8 dereferenceable(540) %0) - to label %99 unwind label %91 - -91: ; preds = %77 - %92 = landingpad { ptr, i32 } + %86 = load i32, ptr %6, align 8, !tbaa !58 + %87 = sext i32 %86 to i64 + %88 = tail call i64 @fread(ptr noundef %85, i64 noundef %87, i64 noundef 1, ptr noundef nonnull %72) + %89 = tail call i32 @fclose(ptr noundef nonnull %72) + %90 = load ptr, ptr %0, align 8, !tbaa !9 + %91 = load ptr, ptr %90, align 8 + invoke void %91(ptr noundef nonnull align 8 dereferenceable(540) %0) + to label %100 unwind label %92 + +92: ; preds = %77 + %93 = landingpad { ptr, i32 } cleanup - %93 = getelementptr inbounds nuw i8, ptr %0, i64 408 - %94 = getelementptr inbounds nuw i8, ptr %0, i64 280 - %95 = getelementptr inbounds nuw i8, ptr %0, i64 248 - %96 = getelementptr inbounds nuw i8, ptr %0, i64 216 - %97 = getelementptr inbounds nuw i8, ptr %0, i64 184 - %98 = getelementptr inbounds nuw i8, ptr %0, i64 32 - tail call void @_ZN9b3HashMapI9b3HashPtrPN6bParse13bStructHandleEED2Ev(ptr noundef nonnull align 8 dereferenceable(128) %93) #32 - tail call void @_ZN9b3HashMapI9b3HashPtrN6bParse9bChunkIndEED2Ev(ptr noundef nonnull align 8 dereferenceable(128) %94) #32 - tail call void @_ZN20b3AlignedObjectArrayIN6bParse9bChunkIndEED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %95) #32 - tail call void @_ZN20b3AlignedObjectArrayIPcED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %96) #32 + %94 = getelementptr inbounds nuw i8, ptr %0, i64 408 + %95 = getelementptr inbounds nuw i8, ptr %0, i64 280 + %96 = getelementptr inbounds nuw i8, ptr %0, i64 248 + %97 = getelementptr inbounds nuw i8, ptr %0, i64 216 + %98 = getelementptr inbounds nuw i8, ptr %0, i64 184 + %99 = getelementptr inbounds nuw i8, ptr %0, i64 32 + tail call void @_ZN9b3HashMapI9b3HashPtrPN6bParse13bStructHandleEED2Ev(ptr noundef nonnull align 8 dereferenceable(128) %94) #32 + tail call void @_ZN9b3HashMapI9b3HashPtrN6bParse9bChunkIndEED2Ev(ptr noundef nonnull align 8 dereferenceable(128) %95) #32 + tail call void @_ZN20b3AlignedObjectArrayIN6bParse9bChunkIndEED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %96) #32 tail call void @_ZN20b3AlignedObjectArrayIPcED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %97) #32 - tail call void @_ZN9b3HashMapI9b3HashPtrPN6bParse13bStructHandleEED2Ev(ptr noundef nonnull align 8 dereferenceable(128) %98) #32 - resume { ptr, i32 } %92 + tail call void @_ZN20b3AlignedObjectArrayIPcED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %98) #32 + tail call void @_ZN9b3HashMapI9b3HashPtrPN6bParse13bStructHandleEED2Ev(ptr noundef nonnull align 8 dereferenceable(128) %99) #32 + resume { ptr, i32 } %93 -99: ; preds = %77, %71 +100: ; preds = %77, %71 ret void } @@ -319,7 +320,7 @@ declare noundef i32 @fseek(ptr noundef captures(none), i64 noundef, i32 noundef) ; Function Attrs: nofree nounwind declare noundef i64 @ftell(ptr noundef captures(none)) local_unnamed_addr #3 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #4 ; Function Attrs: nofree nounwind @@ -5902,7 +5903,7 @@ attributes #0 = { mustprogress nofree norecurse nounwind memory(argmem: readwrit attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nofree norecurse nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/chibicc/optimized/parse.ll b/bench/chibicc/optimized/parse.ll index 9ed7a79d053..a96890a5281 100644 --- a/bench/chibicc/optimized/parse.ll +++ b/bench/chibicc/optimized/parse.ll @@ -210,7 +210,7 @@ define dso_local noalias noundef ptr @new_cast(ptr noundef %0, ptr noundef %1) l declare void @add_type(ptr noundef) local_unnamed_addr #1 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #2 declare ptr @copy_type(ptr noundef) local_unnamed_addr #1 @@ -30234,7 +30234,7 @@ struct_ref.exit40: ; preds = %.lr.ph.i35 declare ptr @format(ptr noundef, ...) local_unnamed_addr #1 -; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias ptr @strndup(ptr noundef readonly captures(none), i64 noundef) local_unnamed_addr #5 ; Function Attrs: nounwind uwtable @@ -30588,8 +30588,8 @@ define internal fastcc noalias noundef ptr @new_initializer(ptr noundef %0, i1 n %5 = load i32, ptr %0, align 8, !tbaa !61 switch i32 %5, label %.loopexit [ i32 12, label %6 - i32 14, label %28 - i32 15, label %28 + i32 14, label %29 + i32 15, label %29 ] 6: ; preds = %2 @@ -30613,103 +30613,104 @@ define internal fastcc noalias noundef ptr @new_initializer(ptr noundef %0, i1 n %17 = tail call noalias ptr @calloc(i64 noundef %16, i64 noundef 8) #14 %18 = getelementptr inbounds nuw i8, ptr %3, i64 40 store ptr %17, ptr %18, align 8, !tbaa !166 - %19 = icmp sgt i32 %15, 0 - br i1 %19, label %.lr.ph52, label %.loopexit + %19 = load i32, ptr %14, align 8, !tbaa !173 + %20 = icmp sgt i32 %19, 0 + br i1 %20, label %.lr.ph52, label %.loopexit .lr.ph52: ; preds = %13 - %20 = getelementptr inbounds nuw i8, ptr %0, i64 24 - br label %21 + %21 = getelementptr inbounds nuw i8, ptr %0, i64 24 + br label %22 -21: ; preds = %.lr.ph52, %21 - %indvars.iv = phi i64 [ 0, %.lr.ph52 ], [ %indvars.iv.next, %21 ] - %22 = load ptr, ptr %20, align 8, !tbaa !123 - %23 = tail call fastcc ptr @new_initializer(ptr noundef %22, i1 noundef zeroext false) - %24 = getelementptr inbounds nuw ptr, ptr %17, i64 %indvars.iv - store ptr %23, ptr %24, align 8, !tbaa !171 +22: ; preds = %.lr.ph52, %22 + %indvars.iv = phi i64 [ 0, %.lr.ph52 ], [ %indvars.iv.next, %22 ] + %23 = load ptr, ptr %21, align 8, !tbaa !123 + %24 = tail call fastcc ptr @new_initializer(ptr noundef %23, i1 noundef zeroext false) + %25 = getelementptr inbounds nuw ptr, ptr %17, i64 %indvars.iv + store ptr %24, ptr %25, align 8, !tbaa !171 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %25 = load i32, ptr %14, align 8, !tbaa !173 - %26 = sext i32 %25 to i64 - %27 = icmp slt i64 %indvars.iv.next, %26 - br i1 %27, label %21, label %.loopexit, !llvm.loop !192 + %26 = load i32, ptr %14, align 8, !tbaa !173 + %27 = sext i32 %26 to i64 + %28 = icmp slt i64 %indvars.iv.next, %27 + br i1 %28, label %22, label %.loopexit, !llvm.loop !192 -28: ; preds = %2, %2 - %29 = getelementptr inbounds nuw i8, ptr %0, i64 72 - br label %30 +29: ; preds = %2, %2 + %30 = getelementptr inbounds nuw i8, ptr %0, i64 72 + br label %31 -30: ; preds = %30, %28 - %.043 = phi i32 [ 0, %28 ], [ %31, %30 ] - %.042.in = phi ptr [ %29, %28 ], [ %.042, %30 ] +31: ; preds = %31, %29 + %.043 = phi i32 [ 0, %29 ], [ %32, %31 ] + %.042.in = phi ptr [ %30, %29 ], [ %.042, %31 ] %.042 = load ptr, ptr %.042.in, align 8, !tbaa !159 %.not = icmp eq ptr %.042, null - %31 = add nuw nsw i32 %.043, 1 - br i1 %.not, label %32, label %30, !llvm.loop !193 - -32: ; preds = %30 - %33 = zext nneg i32 %.043 to i64 - %34 = tail call noalias ptr @calloc(i64 noundef %33, i64 noundef 8) #14 - %35 = getelementptr inbounds nuw i8, ptr %3, i64 40 - store ptr %34, ptr %35, align 8, !tbaa !166 - %.04148 = load ptr, ptr %29, align 8, !tbaa !159 + %32 = add nuw nsw i32 %.043, 1 + br i1 %.not, label %33, label %31, !llvm.loop !193 + +33: ; preds = %31 + %34 = zext nneg i32 %.043 to i64 + %35 = tail call noalias ptr @calloc(i64 noundef %34, i64 noundef 8) #14 + %36 = getelementptr inbounds nuw i8, ptr %3, i64 40 + store ptr %35, ptr %36, align 8, !tbaa !166 + %.04148 = load ptr, ptr %30, align 8, !tbaa !159 %.not4549 = icmp eq ptr %.04148, null br i1 %.not4549, label %.loopexit, label %.lr.ph -.lr.ph: ; preds = %32 - %36 = getelementptr inbounds nuw i8, ptr %0, i64 80 +.lr.ph: ; preds = %33 + %37 = getelementptr inbounds nuw i8, ptr %0, i64 80 br i1 %1, label %.lr.ph.split.us, label %.lr.ph.split -.lr.ph.split.us: ; preds = %.lr.ph, %51 - %.04150.us = phi ptr [ %.041.us, %51 ], [ %.04148, %.lr.ph ] - %37 = load i8, ptr %36, align 8, !tbaa !158, !range !58, !noundef !59 - %38 = trunc nuw i8 %37 to i1 - br i1 %38, label %39, label %41 - -39: ; preds = %.lr.ph.split.us - %40 = load ptr, ptr %.04150.us, align 8, !tbaa !160 - %.not46.us = icmp eq ptr %40, null - br i1 %.not46.us, label %45, label %41 - -41: ; preds = %39, %.lr.ph.split.us - %42 = getelementptr inbounds nuw i8, ptr %.04150.us, i64 8 - %43 = load ptr, ptr %42, align 8, !tbaa !157 - %44 = tail call fastcc ptr @new_initializer(ptr noundef %43, i1 noundef zeroext false) - br label %51 - -45: ; preds = %39 - %46 = tail call noalias dereferenceable_or_null(56) ptr @calloc(i64 noundef 1, i64 noundef 56) #14 - %47 = getelementptr inbounds nuw i8, ptr %.04150.us, i64 8 - %48 = load ptr, ptr %47, align 8, !tbaa !157 - %49 = getelementptr inbounds nuw i8, ptr %46, i64 8 - store ptr %48, ptr %49, align 8, !tbaa !172 - %50 = getelementptr inbounds nuw i8, ptr %46, i64 24 - store i8 1, ptr %50, align 8, !tbaa !191 - br label %51 - -51: ; preds = %45, %41 - %.sink = phi ptr [ %46, %45 ], [ %44, %41 ] - %52 = getelementptr inbounds nuw i8, ptr %.04150.us, i64 32 - %53 = load i32, ptr %52, align 8, !tbaa !170 - %54 = sext i32 %53 to i64 - %55 = getelementptr inbounds ptr, ptr %34, i64 %54 - store ptr %.sink, ptr %55, align 8, !tbaa !171 +.lr.ph.split.us: ; preds = %.lr.ph, %52 + %.04150.us = phi ptr [ %.041.us, %52 ], [ %.04148, %.lr.ph ] + %38 = load i8, ptr %37, align 8, !tbaa !158, !range !58, !noundef !59 + %39 = trunc nuw i8 %38 to i1 + br i1 %39, label %40, label %42 + +40: ; preds = %.lr.ph.split.us + %41 = load ptr, ptr %.04150.us, align 8, !tbaa !160 + %.not46.us = icmp eq ptr %41, null + br i1 %.not46.us, label %46, label %42 + +42: ; preds = %40, %.lr.ph.split.us + %43 = getelementptr inbounds nuw i8, ptr %.04150.us, i64 8 + %44 = load ptr, ptr %43, align 8, !tbaa !157 + %45 = tail call fastcc ptr @new_initializer(ptr noundef %44, i1 noundef zeroext false) + br label %52 + +46: ; preds = %40 + %47 = tail call noalias dereferenceable_or_null(56) ptr @calloc(i64 noundef 1, i64 noundef 56) #14 + %48 = getelementptr inbounds nuw i8, ptr %.04150.us, i64 8 + %49 = load ptr, ptr %48, align 8, !tbaa !157 + %50 = getelementptr inbounds nuw i8, ptr %47, i64 8 + store ptr %49, ptr %50, align 8, !tbaa !172 + %51 = getelementptr inbounds nuw i8, ptr %47, i64 24 + store i8 1, ptr %51, align 8, !tbaa !191 + br label %52 + +52: ; preds = %46, %42 + %.sink = phi ptr [ %47, %46 ], [ %45, %42 ] + %53 = getelementptr inbounds nuw i8, ptr %.04150.us, i64 32 + %54 = load i32, ptr %53, align 8, !tbaa !170 + %55 = sext i32 %54 to i64 + %56 = getelementptr inbounds ptr, ptr %35, i64 %55 + store ptr %.sink, ptr %56, align 8, !tbaa !171 %.041.us = load ptr, ptr %.04150.us, align 8, !tbaa !159 %.not45.us = icmp eq ptr %.041.us, null br i1 %.not45.us, label %.loopexit, label %.lr.ph.split.us, !llvm.loop !194 .lr.ph.split: ; preds = %.lr.ph, %.lr.ph.split %.04150 = phi ptr [ %.041, %.lr.ph.split ], [ %.04148, %.lr.ph ] - %56 = getelementptr inbounds nuw i8, ptr %.04150, i64 8 - %57 = load ptr, ptr %56, align 8, !tbaa !157 - %58 = tail call fastcc ptr @new_initializer(ptr noundef %57, i1 noundef zeroext false) - %59 = getelementptr inbounds nuw i8, ptr %.04150, i64 32 - %60 = load i32, ptr %59, align 8, !tbaa !170 - %61 = sext i32 %60 to i64 - %62 = getelementptr inbounds ptr, ptr %34, i64 %61 - store ptr %58, ptr %62, align 8, !tbaa !171 + %57 = getelementptr inbounds nuw i8, ptr %.04150, i64 8 + %58 = load ptr, ptr %57, align 8, !tbaa !157 + %59 = tail call fastcc ptr @new_initializer(ptr noundef %58, i1 noundef zeroext false) + %60 = getelementptr inbounds nuw i8, ptr %.04150, i64 32 + %61 = load i32, ptr %60, align 8, !tbaa !170 + %62 = sext i32 %61 to i64 + %63 = getelementptr inbounds ptr, ptr %35, i64 %62 + store ptr %59, ptr %63, align 8, !tbaa !171 %.041 = load ptr, ptr %.04150, align 8, !tbaa !159 %.not45 = icmp eq ptr %.041, null br i1 %.not45, label %.loopexit, label %.lr.ph.split, !llvm.loop !194 -.loopexit: ; preds = %.lr.ph.split, %51, %21, %32, %13, %2, %11 +.loopexit: ; preds = %.lr.ph.split, %52, %22, %33, %13, %2, %11 ret ptr %3 } @@ -34659,10 +34660,10 @@ declare void @llvm.assume(i1 noundef) #12 attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #4 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { nofree nounwind memory(readwrite, argmem: read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #8 = { nofree nounwind memory(read, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/chibicc/optimized/tokenize.ll b/bench/chibicc/optimized/tokenize.ll index 67a97f6058b..e42fd5addbe 100644 --- a/bench/chibicc/optimized/tokenize.ll +++ b/bench/chibicc/optimized/tokenize.ll @@ -1105,7 +1105,7 @@ sub_0: ; preds = %1, %.backedge br i1 %.not116, label %39, label %47 39: ; preds = %37 - switch i8 %6, label %.thread192 [ + switch i8 %6, label %.thread190 [ i8 46, label %40 i8 34, label %86 i8 117, label %sub_1137 @@ -1122,7 +1122,7 @@ sub_0: ; preds = %1, %.backedge %45 = load i16, ptr %44, align 2, !tbaa !43 %46 = and i16 %45, 2048 %.not117 = icmp eq i16 %46, 0 - br i1 %.not117, label %.thread192, label %47 + br i1 %.not117, label %.thread190, label %47 47: ; preds = %40, %37 %48 = getelementptr inbounds nuw i8, ptr %.0157, i64 1 @@ -1239,7 +1239,7 @@ sub_1137: ; preds = %39 %106 = getelementptr inbounds nuw i8, ptr %.0157, i64 1 %107 = load i8, ptr %106, align 1 %108 = icmp eq i8 %107, 34 - br i1 %108, label %109, label %.thread192 + br i1 %108, label %109, label %.thread190 109: ; preds = %.tail139 %110 = getelementptr inbounds nuw i8, ptr %.0157, i64 1 @@ -1256,7 +1256,7 @@ sub_1137: ; preds = %39 %117 = getelementptr inbounds nuw i8, ptr %.0157, i64 1 %118 = load i8, ptr %117, align 1 %119 = icmp eq i8 %118, 34 - br i1 %119, label %120, label %.thread192 + br i1 %119, label %120, label %.thread190 120: ; preds = %.tail143 %121 = getelementptr inbounds nuw i8, ptr %.0157, i64 1 @@ -1274,7 +1274,7 @@ sub_1137: ; preds = %39 %129 = getelementptr inbounds nuw i8, ptr %.0157, i64 1 %130 = load i8, ptr %129, align 1 %131 = icmp eq i8 %130, 34 - br i1 %131, label %132, label %.thread192 + br i1 %131, label %132, label %.thread190 132: ; preds = %.tail147 %133 = getelementptr inbounds nuw i8, ptr %.0157, i64 1 @@ -1304,11 +1304,11 @@ sub_1137: ; preds = %39 %151 = getelementptr inbounds i8, ptr %.0157, i64 %150 br label %.backedge -.thread192: ; preds = %39, %.tail139, %40, %.tail143, %.tail147 +.thread190: ; preds = %39, %.tail139, %40, %.tail143, %.tail147 %152 = tail call fastcc zeroext i1 @startswith(ptr noundef nonnull %.0157, ptr noundef nonnull @.str.12) br i1 %152, label %153, label %165 -153: ; preds = %.thread192 +153: ; preds = %.thread190 %154 = getelementptr inbounds nuw i8, ptr %.0157, i64 1 %155 = load ptr, ptr @ty_ushort, align 8, !tbaa !45 %156 = tail call fastcc ptr @read_char_literal(ptr noundef nonnull %.0157, ptr noundef nonnull %154, ptr noundef %155) @@ -1324,7 +1324,7 @@ sub_1137: ; preds = %39 %164 = getelementptr inbounds i8, ptr %.0157, i64 %163 br label %.backedge -165: ; preds = %.thread192 +165: ; preds = %.thread190 %166 = tail call fastcc zeroext i1 @startswith(ptr noundef nonnull %.0157, ptr noundef nonnull @.str.13) br i1 %166, label %167, label %176 @@ -1371,11 +1371,11 @@ sub_1137: ; preds = %39 unreachable 192: ; preds = %189, %187 - %.sink201 = phi i32 [ %188, %187 ], [ %190, %189 ] - %.sink198 = phi i32 [ 0, %187 ], [ 1, %189 ] - %193 = sext i32 %.sink201 to i64 + %.sink199 = phi i32 [ %188, %187 ], [ %190, %189 ] + %.sink196 = phi i32 [ 0, %187 ], [ 1, %189 ] + %193 = sext i32 %.sink199 to i64 %194 = getelementptr inbounds i8, ptr %.0157, i64 %193 - %195 = tail call fastcc ptr @new_token(i32 noundef %.sink198, ptr noundef nonnull %.0157, ptr noundef nonnull %194) + %195 = tail call fastcc ptr @new_token(i32 noundef %.sink196, ptr noundef nonnull %.0157, ptr noundef nonnull %194) %196 = getelementptr inbounds nuw i8, ptr %.0107156, i64 8 store ptr %195, ptr %196, align 8, !tbaa !34 %.pn.in.in = getelementptr inbounds nuw i8, ptr %195, i64 56 @@ -1386,48 +1386,46 @@ sub_1137: ; preds = %39 ._crit_edge.loopexit: ; preds = %.backedge %.pre = load ptr, ptr @current_file, align 8, !tbaa !12 - %.b.i130.pre = load i1, ptr @at_bol, align 1 - %.b11.i131.pre = load i1, ptr @has_space, align 1 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %.pre, i64 16 - %.pre170 = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !13 - %197 = zext i1 %.b.i130.pre to i8 - %198 = zext i1 %.b11.i131.pre to i8 + %.pre168 = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !13 br label %._crit_edge ._crit_edge: ; preds = %._crit_edge.loopexit, %1 - %199 = phi ptr [ %4, %1 ], [ %.pre170, %._crit_edge.loopexit ] - %.b11.i131 = phi i8 [ 0, %1 ], [ %198, %._crit_edge.loopexit ] - %.b.i130 = phi i8 [ 1, %1 ], [ %197, %._crit_edge.loopexit ] - %200 = phi ptr [ %0, %1 ], [ %.pre, %._crit_edge.loopexit ] + %197 = phi ptr [ %4, %1 ], [ %.pre168, %._crit_edge.loopexit ] + %198 = phi ptr [ %0, %1 ], [ %.pre, %._crit_edge.loopexit ] %.0107.lcssa = phi ptr [ %2, %1 ], [ %.0107.be, %._crit_edge.loopexit ] %.0.lcssa = phi ptr [ %4, %1 ], [ %.0.be, %._crit_edge.loopexit ] - %201 = tail call noalias dereferenceable_or_null(128) ptr @calloc(i64 noundef 1, i64 noundef 128) #32 - store i32 6, ptr %201, align 16, !tbaa !36 - %202 = getelementptr inbounds nuw i8, ptr %201, i64 48 - store ptr %.0.lcssa, ptr %202, align 16, !tbaa !32 - %203 = getelementptr inbounds nuw i8, ptr %201, i64 56 - store i32 0, ptr %203, align 8, !tbaa !33 - %204 = getelementptr inbounds nuw i8, ptr %201, i64 80 - store ptr %200, ptr %204, align 16, !tbaa !23 - %205 = getelementptr inbounds nuw i8, ptr %200, i64 24 - %206 = load ptr, ptr %205, align 8, !tbaa !56 - %207 = getelementptr inbounds nuw i8, ptr %201, i64 88 - store ptr %206, ptr %207, align 8, !tbaa !57 - %208 = getelementptr inbounds nuw i8, ptr %201, i64 104 - store i8 %.b.i130, ptr %208, align 8, !tbaa !58 - %209 = getelementptr inbounds nuw i8, ptr %201, i64 105 - store i8 %.b11.i131, ptr %209, align 1, !tbaa !59 + %199 = tail call noalias dereferenceable_or_null(128) ptr @calloc(i64 noundef 1, i64 noundef 128) #32 + store i32 6, ptr %199, align 16, !tbaa !36 + %200 = getelementptr inbounds nuw i8, ptr %199, i64 48 + store ptr %.0.lcssa, ptr %200, align 16, !tbaa !32 + %201 = getelementptr inbounds nuw i8, ptr %199, i64 56 + store i32 0, ptr %201, align 8, !tbaa !33 + %202 = getelementptr inbounds nuw i8, ptr %199, i64 80 + store ptr %198, ptr %202, align 16, !tbaa !23 + %203 = getelementptr inbounds nuw i8, ptr %198, i64 24 + %204 = load ptr, ptr %203, align 8, !tbaa !56 + %205 = getelementptr inbounds nuw i8, ptr %199, i64 88 + store ptr %204, ptr %205, align 8, !tbaa !57 + %.b.i130 = load i1, ptr @at_bol, align 1 + %206 = getelementptr inbounds nuw i8, ptr %199, i64 104 + %207 = zext i1 %.b.i130 to i8 + store i8 %207, ptr %206, align 8, !tbaa !58 + %.b11.i131 = load i1, ptr @has_space, align 1 + %208 = getelementptr inbounds nuw i8, ptr %199, i64 105 + %209 = zext i1 %.b11.i131 to i8 + store i8 %209, ptr %208, align 1, !tbaa !59 store i1 false, ptr @has_space, align 1 store i1 false, ptr @at_bol, align 1 %210 = getelementptr inbounds nuw i8, ptr %.0107.lcssa, i64 8 - store ptr %201, ptr %210, align 8, !tbaa !34 + store ptr %199, ptr %210, align 8, !tbaa !34 %211 = getelementptr inbounds nuw i8, ptr %2, i64 8 %212 = load ptr, ptr %211, align 8, !tbaa !34 br label %213 213: ; preds = %221, %._crit_edge %.08.i = phi ptr [ %212, %._crit_edge ], [ %.19.i, %221 ] - %.07.i = phi ptr [ %199, %._crit_edge ], [ %225, %221 ] + %.07.i = phi ptr [ %197, %._crit_edge ], [ %225, %221 ] %.0.i = phi i32 [ 1, %._crit_edge ], [ %spec.select.i, %221 ] %214 = getelementptr inbounds nuw i8, ptr %.08.i, i64 48 %215 = load ptr, ptr %214, align 16, !tbaa !32 @@ -1791,7 +1789,7 @@ define dso_local noalias noundef ptr @new_file(ptr noundef %0, i32 noundef %1, p ret ptr %4 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #17 ; Function Attrs: nounwind uwtable @@ -2156,26 +2154,29 @@ convert_universal_chars.exit: ; preds = %145, %remove_backsl %152 = getelementptr inbounds nuw i8, ptr %149, i64 16 store ptr %spec.select, ptr %152, align 8, !tbaa !13 %153 = load ptr, ptr @input_files, align 8, !tbaa !12 - %154 = add nsw i32 %147, 2 - %155 = sext i32 %154 to i64 - %156 = shl nsw i64 %155, 3 - %157 = call ptr @realloc(ptr noundef %153, i64 noundef %156) #33 - store ptr %157, ptr @input_files, align 8, !tbaa !12 - %158 = sext i32 %147 to i64 - %159 = getelementptr inbounds ptr, ptr %157, i64 %158 - store ptr %149, ptr %159, align 8, !tbaa !12 - %160 = getelementptr i8, ptr %159, i64 8 - store ptr null, ptr %160, align 8, !tbaa !12 - store i32 %148, ptr @tokenize_file.file_no, align 4, !tbaa !62 - %161 = call ptr @tokenize(ptr noundef nonnull %149) + %154 = load i32, ptr @tokenize_file.file_no, align 4, !tbaa !62 + %155 = add nsw i32 %154, 2 + %156 = sext i32 %155 to i64 + %157 = shl nsw i64 %156, 3 + %158 = call ptr @realloc(ptr noundef %153, i64 noundef %157) #33 + store ptr %158, ptr @input_files, align 8, !tbaa !12 + %159 = load i32, ptr @tokenize_file.file_no, align 4, !tbaa !62 + %160 = sext i32 %159 to i64 + %161 = getelementptr inbounds ptr, ptr %158, i64 %160 + store ptr %149, ptr %161, align 8, !tbaa !12 + %162 = getelementptr i8, ptr %161, i64 8 + store ptr null, ptr %162, align 8, !tbaa !12 + %163 = add nsw i32 %159, 1 + store i32 %163, ptr @tokenize_file.file_no, align 4, !tbaa !62 + %164 = call ptr @tokenize(ptr noundef nonnull %149) br label %read_file.exit.thread read_file.exit.thread: ; preds = %.tail.thread.i, %read_file.exit, %convert_universal_chars.exit - %.0 = phi ptr [ %161, %convert_universal_chars.exit ], [ null, %read_file.exit ], [ null, %.tail.thread.i ] + %.0 = phi ptr [ %164, %convert_universal_chars.exit ], [ null, %read_file.exit ], [ null, %.tail.thread.i ] ret ptr %.0 } -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #18 declare i32 @display_width(ptr noundef, i32 noundef) local_unnamed_addr #19 @@ -2391,8 +2392,8 @@ attributes #13 = { mustprogress nofree nounwind willreturn memory(readwrite, arg attributes #14 = { nofree nounwind memory(read, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #15 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, argmem: none, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #16 = { mustprogress nofree nounwind willreturn memory(write, argmem: none, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #17 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #18 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #17 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #18 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #19 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #20 = { mustprogress nocallback nofree nounwind willreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #21 = { mustprogress nocallback nofree nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/clamav/optimized/others_common.ll b/bench/clamav/optimized/others_common.ll index 3de7d3c5268..ecf15d31db6 100644 --- a/bench/clamav/optimized/others_common.ll +++ b/bench/clamav/optimized/others_common.ll @@ -370,7 +370,7 @@ define noalias noundef ptr @cli_max_malloc(i64 noundef %0) local_unnamed_addr #0 ret ptr %.0 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #8 ; Function Attrs: nofree nounwind @@ -408,7 +408,7 @@ define noalias noundef ptr @cli_max_calloc(i64 noundef %0, i64 noundef %1) local ret ptr %.0 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #9 ; Function Attrs: nounwind uwtable @@ -435,7 +435,7 @@ define noalias noundef ptr @cli_safer_realloc(ptr noundef captures(none) %0, i64 ret ptr %.0 } -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #10 ; Function Attrs: nounwind uwtable @@ -551,7 +551,7 @@ define noalias ptr @cli_safer_strdup(ptr noundef readonly captures(address_is_nu ret ptr %.0 } -; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias ptr @strdup(ptr noundef readonly captures(none)) local_unnamed_addr #12 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: read) @@ -1158,13 +1158,14 @@ cli_safer_strdup.exit: ; preds = %44 br label %.thread cli_safer_strdup.exit49: ; preds = %57 - %62 = icmp eq i32 %52, 5 - %63 = select i1 %62, i32 4, i32 5 - %64 = tail call i32 %5(ptr noundef nonnull %2, ptr noundef nonnull %58, ptr noundef nonnull %0, i32 noundef %63, ptr noundef %6) #23 + %62 = load i32, ptr %4, align 4, !tbaa !3 + %63 = icmp eq i32 %62, 5 + %64 = select i1 %63, i32 4, i32 5 + %65 = tail call i32 %5(ptr noundef nonnull %2, ptr noundef nonnull %58, ptr noundef nonnull %0, i32 noundef %64, ptr noundef %6) #23 br label %.thread .thread: ; preds = %cli_safer_strdup.exit49, %59, %56, %46, %43, %cli_safer_strdup.exit, %51, %50 - %.132 = phi i32 [ 0, %50 ], [ 0, %51 ], [ %49, %cli_safer_strdup.exit ], [ 20, %43 ], [ 20, %46 ], [ 20, %56 ], [ 20, %59 ], [ %64, %cli_safer_strdup.exit49 ] + %.132 = phi i32 [ 0, %50 ], [ 0, %51 ], [ %49, %cli_safer_strdup.exit ], [ 20, %43 ], [ 20, %46 ], [ 20, %56 ], [ 20, %59 ], [ %65, %cli_safer_strdup.exit49 ] ret i32 %.132 } @@ -2191,7 +2192,7 @@ define range(i32 0, 21) i32 @cli_get_filepath_from_filedesc(i32 noundef %0, ptr ; Function Attrs: nofree nounwind declare noundef i64 @readlink(ptr noundef readonly captures(none), ptr noundef captures(none), i64 noundef) local_unnamed_addr #6 -; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias ptr @strndup(ptr noundef readonly captures(none), i64 noundef) local_unnamed_addr #12 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: read) @@ -2300,11 +2301,11 @@ attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argm attributes #5 = { mustprogress nocallback nofree nosync nounwind willreturn } attributes #6 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #11 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #12 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #13 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #14 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #15 = { nofree "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/clamav/optimized/unpack.ll b/bench/clamav/optimized/unpack.ll index 1ee1d5c3d40..717301ccbad 100644 --- a/bench/clamav/optimized/unpack.ll +++ b/bench/clamav/optimized/unpack.ll @@ -178,7 +178,7 @@ _ZN12SubAllocator16StopSubAllocatorEv.exit: ; preds = %7, %8 ret i1 %.0 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #4 declare void @_ZN12ErrorHandler11MemoryErrorEv(ptr noundef nonnull align 4 dereferenceable(14)) local_unnamed_addr #5 @@ -9949,7 +9949,6 @@ define noundef zeroext i1 @_ZN6Unpack10ReadVMCodeEv(ptr noundef nonnull align 8 br i1 %42, label %_ZN5ArrayIhED2Ev.exit, label %.thread .thread: ; preds = %1, %22, %33 - %.pre51 = phi i32 [ %41, %33 ], [ %18, %1 ], [ %32, %22 ] %.02035 = phi i32 [ %40, %33 ], [ %21, %1 ], [ %31, %22 ] %43 = tail call i32 @llvm.umax.i32(i32 %.02035, i32 32) %..i.i = zext nneg i32 %43 to i64 @@ -9959,16 +9958,15 @@ define noundef zeroext i1 @_ZN6Unpack10ReadVMCodeEv(ptr noundef nonnull align 8 45: ; preds = %.thread tail call void @_ZN12ErrorHandler11MemoryErrorEv(ptr noundef nonnull align 4 dereferenceable(14) @ErrHandler) - %.pre.pre = load i32, ptr %2, align 8, !tbaa !94 br label %_ZN5ArrayIhEC2Em.exit _ZN5ArrayIhEC2Em.exit: ; preds = %.thread, %45 - %.pre = phi i32 [ %.pre51, %.thread ], [ %.pre.pre, %45 ] %46 = getelementptr inbounds nuw i8, ptr %0, i64 176 %47 = getelementptr inbounds nuw i8, ptr %0, i64 180 %48 = add nsw i32 %.02035, -1 %49 = zext nneg i32 %48 to i64 %wide.trip.count = zext nneg i32 %.02035 to i64 + %.pre = load i32, ptr %2, align 8, !tbaa !94 %.pre48 = load i32, ptr %46, align 8, !tbaa !111 br label %50 @@ -15030,7 +15028,7 @@ define void @_ZN6Unpack4InitEmb(ptr noundef nonnull align 8 captures(none) deref %.not = icmp ule i64 %spec.store.select, %8 %9 = icmp ugt i64 %1, 4295032831 %or.cond35 = or i1 %9, %.not - br i1 %or.cond35, label %56, label %10 + br i1 %or.cond35, label %59, label %10 10: ; preds = %6 %spec.store.select1 = tail call i64 @llvm.umin.i64(i64 %spec.store.select, i64 1073741824) @@ -15059,93 +15057,99 @@ define void @_ZN6Unpack4InitEmb(ptr noundef nonnull align 8 captures(none) deref 20: ; preds = %17, %.thread %21 = phi i1 [ false, %.thread ], [ %.not28, %17 ] - %calloc = tail call ptr @calloc(i64 1, i64 %spec.store.select1) - %22 = icmp eq ptr %calloc, null - br i1 %22, label %.thread38, label %32 + %22 = tail call noalias ptr @malloc(i64 noundef %spec.store.select1) #25 + %23 = icmp eq ptr %22, null + br i1 %23, label %.thread38, label %33 .thread38: ; preds = %.thread, %20 - %23 = phi i1 [ %21, %20 ], [ false, %.thread ] - %24 = icmp samesign ult i64 %1, 16777216 - %or.cond = or i1 %24, %23 - br i1 %or.cond, label %25, label %27 - -25: ; preds = %.thread38 - %26 = tail call ptr @__cxa_allocate_exception(i64 8) #24 - store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %26, align 8, !tbaa !59 - tail call void @__cxa_throw(ptr nonnull %26, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #26 + %24 = phi i1 [ %21, %20 ], [ false, %.thread ] + %25 = icmp samesign ult i64 %1, 16777216 + %or.cond = or i1 %25, %24 + br i1 %or.cond, label %26, label %28 + +26: ; preds = %.thread38 + %27 = tail call ptr @__cxa_allocate_exception(i64 8) #24 + store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %27, align 8, !tbaa !59 + tail call void @__cxa_throw(ptr nonnull %27, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #26 unreachable -27: ; preds = %.thread38 - %28 = getelementptr inbounds nuw i8, ptr %0, i64 19312 - %29 = load ptr, ptr %28, align 8, !tbaa !161 - %.not29 = icmp eq ptr %29, null - br i1 %.not29, label %.thread45, label %30 +28: ; preds = %.thread38 + %29 = getelementptr inbounds nuw i8, ptr %0, i64 19312 + %30 = load ptr, ptr %29, align 8, !tbaa !161 + %.not29 = icmp eq ptr %30, null + br i1 %.not29, label %.thread45, label %31 -30: ; preds = %27 - tail call void @free(ptr noundef nonnull %29) #24 - store ptr null, ptr %28, align 8, !tbaa !161 +31: ; preds = %28 + tail call void @free(ptr noundef nonnull %30) #24 + store ptr null, ptr %29, align 8, !tbaa !161 br label %.thread45 -.thread45: ; preds = %27, %30 - %31 = getelementptr inbounds nuw i8, ptr %0, i64 19320 - tail call void @_ZN16FragmentedWindow4InitEm(ptr noundef nonnull align 8 dereferenceable(512) %31, i64 noundef %spec.store.select1) +.thread45: ; preds = %28, %31 + %32 = getelementptr inbounds nuw i8, ptr %0, i64 19320 + tail call void @_ZN16FragmentedWindow4InitEm(ptr noundef nonnull align 8 dereferenceable(512) %32, i64 noundef %spec.store.select1) store i8 1, ptr %11, align 8, !tbaa !280 - br label %53 + br label %56 -32: ; preds = %20 +33: ; preds = %20 + %.pre = load i8, ptr %11, align 8, !tbaa !280, !range !207 + %34 = trunc nuw i8 %.pre to i1 + br i1 %34, label %56, label %35 + +35: ; preds = %33 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %22, i8 0, i64 %spec.store.select1, i1 false) br i1 %21, label %.preheader, label %.loopexit -.preheader: ; preds = %32 - %33 = load i64, ptr %7, align 8, !tbaa !164 - %.not3039 = icmp eq i64 %33, 0 +.preheader: ; preds = %35 + %36 = load i64, ptr %7, align 8, !tbaa !164 + %.not3039 = icmp eq i64 %36, 0 br i1 %.not3039, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %.preheader - %34 = getelementptr inbounds nuw i8, ptr %0, i64 19312 - %35 = load ptr, ptr %34, align 8, !tbaa !161 - %36 = getelementptr inbounds nuw i8, ptr %0, i64 160 - %37 = load i64, ptr %36, align 8, !tbaa !157 - %38 = add i64 %33, -1 - %39 = add nsw i64 %spec.store.select1, -1 - %40 = add i64 %33, 1 - %umax = tail call i64 @llvm.umax.i64(i64 %40, i64 2) - br label %41 + %37 = getelementptr inbounds nuw i8, ptr %0, i64 19312 + %38 = load ptr, ptr %37, align 8, !tbaa !161 + %39 = getelementptr inbounds nuw i8, ptr %0, i64 160 + %40 = load i64, ptr %39, align 8, !tbaa !157 + %41 = add i64 %36, -1 + %42 = add nsw i64 %spec.store.select1, -1 + %43 = add i64 %36, 1 + %umax = tail call i64 @llvm.umax.i64(i64 %43, i64 2) + br label %44 -41: ; preds = %.lr.ph, %41 - %.040 = phi i64 [ 1, %.lr.ph ], [ %48, %41 ] - %42 = sub i64 %37, %.040 - %43 = and i64 %42, %38 - %44 = getelementptr inbounds nuw i8, ptr %35, i64 %43 - %45 = load i8, ptr %44, align 1, !tbaa !27 - %46 = and i64 %42, %39 - %47 = getelementptr inbounds nuw i8, ptr %calloc, i64 %46 - store i8 %45, ptr %47, align 1, !tbaa !27 - %48 = add nuw i64 %.040, 1 - %exitcond = icmp eq i64 %48, %umax - br i1 %exitcond, label %.loopexit, label %41, !llvm.loop !329 - -.loopexit: ; preds = %41, %.preheader, %32 - %49 = getelementptr inbounds nuw i8, ptr %0, i64 19312 - %50 = load ptr, ptr %49, align 8, !tbaa !161 - %.not31 = icmp eq ptr %50, null - br i1 %.not31, label %52, label %51 - -51: ; preds = %.loopexit - tail call void @free(ptr noundef nonnull %50) #24 - br label %52 +44: ; preds = %.lr.ph, %44 + %.040 = phi i64 [ 1, %.lr.ph ], [ %51, %44 ] + %45 = sub i64 %40, %.040 + %46 = and i64 %45, %41 + %47 = getelementptr inbounds nuw i8, ptr %38, i64 %46 + %48 = load i8, ptr %47, align 1, !tbaa !27 + %49 = and i64 %45, %42 + %50 = getelementptr inbounds nuw i8, ptr %22, i64 %49 + store i8 %48, ptr %50, align 1, !tbaa !27 + %51 = add nuw i64 %.040, 1 + %exitcond = icmp eq i64 %51, %umax + br i1 %exitcond, label %.loopexit, label %44, !llvm.loop !329 + +.loopexit: ; preds = %44, %.preheader, %35 + %52 = getelementptr inbounds nuw i8, ptr %0, i64 19312 + %53 = load ptr, ptr %52, align 8, !tbaa !161 + %.not31 = icmp eq ptr %53, null + br i1 %.not31, label %55, label %54 + +54: ; preds = %.loopexit + tail call void @free(ptr noundef nonnull %53) #24 + br label %55 -52: ; preds = %51, %.loopexit - store ptr %calloc, ptr %49, align 8, !tbaa !161 - br label %53 +55: ; preds = %54, %.loopexit + store ptr %22, ptr %52, align 8, !tbaa !161 + br label %56 -53: ; preds = %.thread45, %52 +56: ; preds = %.thread45, %55, %33 store i64 %spec.store.select1, ptr %7, align 8, !tbaa !164 - %54 = add nsw i64 %spec.store.select1, -1 - %55 = getelementptr inbounds nuw i8, ptr %0, i64 59680 - store i64 %54, ptr %55, align 8, !tbaa !159 - br label %56 + %57 = add nsw i64 %spec.store.select1, -1 + %58 = getelementptr inbounds nuw i8, ptr %0, i64 59680 + store i64 %57, ptr %58, align 8, !tbaa !159 + br label %59 -56: ; preds = %6, %53 +59: ; preds = %6, %56 ret void } @@ -15415,7 +15419,7 @@ declare i32 @llvm.bswap.i32(i32) #15 declare void @_ZN12ErrorHandler13GeneralErrMsgEPKwz(ptr noundef nonnull align 4 dereferenceable(14), ptr noundef, ...) local_unnamed_addr #5 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #20 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -15445,14 +15449,14 @@ declare i32 @llvm.smax.i32(i32, i32) #22 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.smin.i64(i64, i64) #22 -; Function Attrs: nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #23 attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nounwind willreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } @@ -15468,10 +15472,10 @@ attributes #16 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-prote attributes #17 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #18 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #19 = { mustprogress nofree norecurse nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #20 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #20 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #21 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #22 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #23 = { nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" } +attributes #23 = { nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" } attributes #24 = { nounwind } attributes #25 = { nounwind allocsize(0) } attributes #26 = { noreturn } diff --git a/bench/cmake/optimized/archive_read_disk_posix.ll b/bench/cmake/optimized/archive_read_disk_posix.ll index 9a3018eba5c..8c5e98e9466 100644 --- a/bench/cmake/optimized/archive_read_disk_posix.ll +++ b/bench/cmake/optimized/archive_read_disk_posix.ll @@ -210,7 +210,7 @@ define dso_local noundef ptr @archive_read_disk_new() local_unnamed_addr #0 { ret ptr %1 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #2 declare ptr @archive_entry_new2(ptr noundef) local_unnamed_addr #1 @@ -2628,9 +2628,9 @@ archive_read_disk_gname.exit.thread.i: ; preds = %648, %archive_read_ %669 = load i32, ptr %13, align 8, !tbaa !96 %670 = call i32 @archive_read_disk_entry_from_file(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %669, ptr noundef nonnull %.0146.i) #17 %671 = icmp eq i32 %670, 0 - %.not216 = xor i1 %671, true - %brmerge = or i1 %.not216, %.not187.i - %.mux = select i1 %.not216, i32 %670, i32 0 + %.not217 = xor i1 %671, true + %brmerge = or i1 %.not217, %.not187.i + %.mux = select i1 %.not217, i32 %670, i32 0 br i1 %brmerge, label %674, label %672 672: ; preds = %668 @@ -2737,10 +2737,14 @@ tree_enter_initial_dir.exit: ; preds = %683, %687, %691 %720 = call noalias ptr @malloc(i64 noundef %719) #23 store ptr %720, ptr %714, align 8, !tbaa !105 %721 = icmp eq ptr %720, null - br i1 %721, label %setup_sparse.exit, label %722 + br i1 %721, label %setup_sparse.exit, label %._crit_edge38.i -722: ; preds = %713, %707 - %723 = phi i32 [ %716, %713 ], [ %709, %707 ] +._crit_edge38.i: ; preds = %713 + %.pre.i47 = load i32, ptr %710, align 8, !tbaa !151 + br label %722 + +722: ; preds = %._crit_edge38.i, %707 + %723 = phi i32 [ %.pre.i47, %._crit_edge38.i ], [ %709, %707 ] %724 = icmp sgt i32 %723, 0 %725 = getelementptr inbounds nuw i8, ptr %708, i64 456 br i1 %724, label %.lr.ph.i, label %._crit_edge.thread.i @@ -3623,7 +3627,7 @@ declare ptr @archive_strncat(ptr noundef, ptr noundef, i64 noundef) local_unname ; Function Attrs: nounwind declare i32 @fstatat(i32 noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #8 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #10 declare i32 @openat(i32 noundef, ptr noundef, i32 noundef, ...) local_unnamed_addr #1 @@ -3642,7 +3646,7 @@ declare i32 @fchdir(i32 noundef) local_unnamed_addr #8 declare i32 @archive_entry_sparse_reset(ptr noundef) local_unnamed_addr #1 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #11 declare i32 @archive_entry_sparse_next(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1 @@ -3790,7 +3794,7 @@ declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immar attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -3798,8 +3802,8 @@ attributes #6 = { mustprogress nofree nosync nounwind willreturn memory(none) "n attributes #7 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #12 = { nofree "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #13 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #14 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } diff --git a/bench/cmake/optimized/archive_read_support_format_mtree.ll b/bench/cmake/optimized/archive_read_support_format_mtree.ll index bd3b1a32d8f..1cc808d43f0 100644 --- a/bench/cmake/optimized/archive_read_support_format_mtree.ll +++ b/bench/cmake/optimized/archive_read_support_format_mtree.ll @@ -145,7 +145,7 @@ define internal i32 @mtree_cmp_key(ptr noundef readonly captures(none) %0, ptr n declare i32 @__archive_check_magic(ptr noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #2 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #3 declare void @archive_set_error(ptr noundef, i32 noundef, ptr noundef, ...) local_unnamed_addr #2 @@ -1493,7 +1493,7 @@ define internal range(i32 -30, 2) i32 @read_data(ptr noundef %0, ptr noundef wri store ptr null, ptr %1, align 8, !tbaa !92 store i64 0, ptr %3, align 8, !tbaa !45 store i64 0, ptr %2, align 8, !tbaa !45 - br label %42 + br label %43 12: ; preds = %4 %13 = getelementptr inbounds nuw i8, ptr %7, i64 32 @@ -1507,52 +1507,57 @@ define internal range(i32 -30, 2) i32 @read_data(ptr noundef %0, ptr noundef wri %18 = tail call noalias dereferenceable_or_null(65536) ptr @malloc(i64 noundef 65536) #23 store ptr %18, ptr %13, align 8, !tbaa !93 %19 = icmp eq ptr %18, null - br i1 %19, label %20, label %21 + br i1 %19, label %20, label %._crit_edge + +._crit_edge: ; preds = %16 + %.pre = load i32, ptr %8, align 8, !tbaa !4 + br label %21 20: ; preds = %16 tail call void (ptr, i32, ptr, ...) @archive_set_error(ptr noundef nonnull %0, i32 noundef 12, ptr noundef nonnull @.str.45) #19 - br label %42 - -21: ; preds = %16, %12 - %22 = phi ptr [ %18, %16 ], [ %14, %12 ] - store ptr %22, ptr %1, align 8, !tbaa !92 - %23 = getelementptr inbounds nuw i8, ptr %7, i64 40 - %24 = load i64, ptr %23, align 8, !tbaa !91 - store i64 %24, ptr %3, align 8, !tbaa !45 - %25 = getelementptr inbounds nuw i8, ptr %7, i64 24 - %26 = load i64, ptr %25, align 8, !tbaa !94 - %27 = getelementptr inbounds nuw i8, ptr %7, i64 168 - %28 = load i64, ptr %27, align 8, !tbaa !90 - %29 = sub nsw i64 %28, %24 - %. = tail call i64 @llvm.smin.i64(i64 %26, i64 %29) - %30 = load ptr, ptr %13, align 8, !tbaa !93 - %31 = tail call i64 @read(i32 noundef %9, ptr noundef %30, i64 noundef %.) #19 - %32 = icmp slt i64 %31, 0 - br i1 %32, label %33, label %36 - -33: ; preds = %21 - %34 = tail call ptr @__errno_location() #22 - %35 = load i32, ptr %34, align 4, !tbaa !67 - tail call void (ptr, i32, ptr, ...) @archive_set_error(ptr noundef nonnull %0, i32 noundef %35, ptr noundef nonnull @.str.73) #19 - br label %42 - -36: ; preds = %21 - %37 = icmp eq i64 %31, 0 - br i1 %37, label %38, label %39 - -38: ; preds = %36 + br label %43 + +21: ; preds = %._crit_edge, %12 + %22 = phi i32 [ %.pre, %._crit_edge ], [ %9, %12 ] + %23 = phi ptr [ %18, %._crit_edge ], [ %14, %12 ] + store ptr %23, ptr %1, align 8, !tbaa !92 + %24 = getelementptr inbounds nuw i8, ptr %7, i64 40 + %25 = load i64, ptr %24, align 8, !tbaa !91 + store i64 %25, ptr %3, align 8, !tbaa !45 + %26 = getelementptr inbounds nuw i8, ptr %7, i64 24 + %27 = load i64, ptr %26, align 8, !tbaa !94 + %28 = getelementptr inbounds nuw i8, ptr %7, i64 168 + %29 = load i64, ptr %28, align 8, !tbaa !90 + %30 = sub nsw i64 %29, %25 + %. = tail call i64 @llvm.smin.i64(i64 %27, i64 %30) + %31 = load ptr, ptr %13, align 8, !tbaa !93 + %32 = tail call i64 @read(i32 noundef %22, ptr noundef %31, i64 noundef %.) #19 + %33 = icmp slt i64 %32, 0 + br i1 %33, label %34, label %37 + +34: ; preds = %21 + %35 = tail call ptr @__errno_location() #22 + %36 = load i32, ptr %35, align 4, !tbaa !67 + tail call void (ptr, i32, ptr, ...) @archive_set_error(ptr noundef nonnull %0, i32 noundef %36, ptr noundef nonnull @.str.73) #19 + br label %43 + +37: ; preds = %21 + %38 = icmp eq i64 %32, 0 + br i1 %38, label %39, label %40 + +39: ; preds = %37 store i64 0, ptr %2, align 8, !tbaa !45 - br label %42 + br label %43 -39: ; preds = %36 - %40 = load i64, ptr %23, align 8, !tbaa !91 - %41 = add nsw i64 %40, %31 - store i64 %41, ptr %23, align 8, !tbaa !91 - store i64 %31, ptr %2, align 8, !tbaa !45 - br label %42 +40: ; preds = %37 + %41 = load i64, ptr %24, align 8, !tbaa !91 + %42 = add nsw i64 %41, %32 + store i64 %42, ptr %24, align 8, !tbaa !91 + store i64 %32, ptr %2, align 8, !tbaa !45 + br label %43 -42: ; preds = %39, %38, %33, %20, %11 - %.0 = phi i32 [ 1, %11 ], [ -30, %20 ], [ -20, %33 ], [ 1, %38 ], [ 0, %39 ] +43: ; preds = %40, %39, %34, %20, %11 + %.0 = phi i32 [ 1, %11 ], [ -30, %20 ], [ -20, %34 ], [ 1, %39 ], [ 0, %40 ] ret i32 %.0 } @@ -2497,7 +2502,7 @@ declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr no declare i64 @__archive_read_consume(ptr noundef, i64 noundef) local_unnamed_addr #2 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #10 ; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none) @@ -3852,14 +3857,14 @@ declare i32 @llvm.smin.i32(i32, i32) #18 attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress nofree norecurse nounwind willreturn memory(read, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nofree norecurse nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { nofree norecurse nosync nounwind memory(read, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #11 = { nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #12 = { nofree "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #13 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/cpython/optimized/Hacl_Hash_Blake2b_Simd256.ll b/bench/cpython/optimized/Hacl_Hash_Blake2b_Simd256.ll index 58f97978040..2a7895859ed 100644 --- a/bench/cpython/optimized/Hacl_Hash_Blake2b_Simd256.ll +++ b/bench/cpython/optimized/Hacl_Hash_Blake2b_Simd256.ll @@ -979,7 +979,7 @@ define hidden noalias noundef ptr @python_hashlib_Hacl_Hash_Blake2b_Simd256_mall ret ptr %1 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized,aligned") allocsize(1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized,aligned") allocsize(1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @aligned_alloc(i64 allocalign noundef, i64 noundef) local_unnamed_addr #10 ; Function Attrs: mustprogress nofree nounwind willreturn uwtable @@ -1013,69 +1013,72 @@ define hidden noalias noundef ptr @python_hashlib_Hacl_Hash_Blake2b_Simd256_mall store ptr %4, ptr %.sroa.494.0..sroa_idx.i, align 8, !tbaa !14 %.sroa.595.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %8, i64 32 store i64 %..i, ptr %.sroa.595.0..sroa_idx.i, align 8, !tbaa !8 - br i1 %.not.i, label %malloc_raw.exit, label %9 - -9: ; preds = %3 - %10 = zext i8 %.sroa.43.0.copyload to i64 - tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %4, ptr readonly align 1 %2, i64 %10, i1 false) - %11 = shl nuw nsw i64 %10, 8 + %9 = load i8, ptr %.sroa.43.0..sroa_idx, align 1, !tbaa !16 + %10 = icmp eq i8 %9, 0 + br i1 %10, label %malloc_raw.exit, label %11 + +11: ; preds = %3 + %12 = zext i8 %9 to i64 + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %4, ptr readonly align 1 %2, i64 %12, i1 false) + %13 = shl nuw nsw i64 %12, 8 br label %malloc_raw.exit -malloc_raw.exit: ; preds = %3, %9 - %.pre-phi.i = phi i64 [ %11, %9 ], [ 0, %3 ] +malloc_raw.exit: ; preds = %3, %11 + %.pre-phi.i = phi i64 [ %13, %11 ], [ 0, %3 ] + %.sroa.0.0.copyload.i = load i8, ptr %0, align 8, !tbaa !3 %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 2 %.sroa.5.0.copyload.i = load i8, ptr %.sroa.5.0..sroa_idx.i, align 2, !tbaa !3 %.sroa.6.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 3 %.sroa.6.0.copyload.i = load i8, ptr %.sroa.6.0..sroa_idx.i, align 1, !tbaa !3 %.sroa.7.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 4 - %.sroa.7.0.copyload.i = load i32, ptr %.sroa.7.0..sroa_idx.i, align 4, !tbaa !16 + %.sroa.7.0.copyload.i = load i32, ptr %.sroa.7.0..sroa_idx.i, align 4, !tbaa !19 %.sroa.8.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 8 %.sroa.8.0.copyload.i = load i64, ptr %.sroa.8.0..sroa_idx.i, align 8, !tbaa !8 %.sroa.9.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 16 %.sroa.9.0.copyload.i = load i16, ptr %.sroa.9.0..sroa_idx.i, align 8 - %12 = zext i16 %.sroa.9.0.copyload.i to i64 + %14 = zext i16 %.sroa.9.0.copyload.i to i64 %.sroa.1169.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 24 %.sroa.1169.0.copyload.i = load ptr, ptr %.sroa.1169.0..sroa_idx.i, align 8, !tbaa !14 %.sroa.13.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 32 %.sroa.13.0.copyload.i = load ptr, ptr %.sroa.13.0..sroa_idx.i, align 8, !tbaa !14 - %13 = getelementptr i8, ptr %6, i64 32 - %14 = getelementptr i8, ptr %6, i64 64 - %15 = getelementptr i8, ptr %6, i64 96 - store <4 x i64> , ptr %14, align 32, !tbaa !3 - store <4 x i64> , ptr %15, align 32, !tbaa !3 + %15 = getelementptr i8, ptr %6, i64 32 + %16 = getelementptr i8, ptr %6, i64 64 + %17 = getelementptr i8, ptr %6, i64 96 + store <4 x i64> , ptr %16, align 32, !tbaa !3 + store <4 x i64> , ptr %17, align 32, !tbaa !3 %.sroa.1169.0.copyload.val.i = load i64, ptr %.sroa.1169.0.copyload.i, align 1 - %16 = getelementptr i8, ptr %.sroa.1169.0.copyload.i, i64 8 - %.val116.i = load i64, ptr %16, align 1 + %18 = getelementptr i8, ptr %.sroa.1169.0.copyload.i, i64 8 + %.val116.i = load i64, ptr %18, align 1 %.sroa.13.0.copyload.val.i = load i64, ptr %.sroa.13.0.copyload.i, align 1 - %17 = getelementptr i8, ptr %.sroa.13.0.copyload.i, i64 8 - %.val.i = load i64, ptr %17, align 1 - %18 = zext i8 %.sroa.02.0.copyload to i64 - %19 = zext i8 %.sroa.5.0.copyload.i to i64 - %20 = shl nuw nsw i64 %19, 16 - %21 = zext i8 %.sroa.6.0.copyload.i to i64 - %22 = shl nuw nsw i64 %21, 24 - %23 = zext i32 %.sroa.7.0.copyload.i to i64 - %24 = shl nuw i64 %23, 32 - %25 = or disjoint i64 %.pre-phi.i, %18 - %26 = add nuw nsw i64 %20, %25 - %27 = add nuw nsw i64 %26, %22 - %28 = add nuw nsw i64 %27, %24 - %29 = xor i64 %28, 7640891576956012808 - %30 = xor i64 %.sroa.8.0.copyload.i, -4942790177534073029 - %31 = xor i64 %12, 4354685564936845355 - %32 = xor i64 %.sroa.1169.0.copyload.val.i, 5840696475078001361 - %33 = xor i64 %.val116.i, -7276294671716946913 - %34 = xor i64 %.sroa.13.0.copyload.val.i, 2270897969802886507 - %35 = xor i64 %.val.i, 6620516959819538809 - %36 = insertelement <4 x i64> , i64 %29, i64 0 - %37 = insertelement <4 x i64> %36, i64 %30, i64 1 - %38 = insertelement <4 x i64> %37, i64 %31, i64 2 - store <4 x i64> %38, ptr %6, align 32, !tbaa !3 - %39 = insertelement <4 x i64> poison, i64 %32, i64 0 - %40 = insertelement <4 x i64> %39, i64 %33, i64 1 - %41 = insertelement <4 x i64> %40, i64 %34, i64 2 - %42 = insertelement <4 x i64> %41, i64 %35, i64 3 - store <4 x i64> %42, ptr %13, align 32, !tbaa !3 + %19 = getelementptr i8, ptr %.sroa.13.0.copyload.i, i64 8 + %.val.i = load i64, ptr %19, align 1 + %20 = zext i8 %.sroa.0.0.copyload.i to i64 + %21 = zext i8 %.sroa.5.0.copyload.i to i64 + %22 = shl nuw nsw i64 %21, 16 + %23 = zext i8 %.sroa.6.0.copyload.i to i64 + %24 = shl nuw nsw i64 %23, 24 + %25 = zext i32 %.sroa.7.0.copyload.i to i64 + %26 = shl nuw i64 %25, 32 + %27 = or disjoint i64 %.pre-phi.i, %20 + %28 = add nuw nsw i64 %22, %27 + %29 = add nuw nsw i64 %28, %24 + %30 = add nuw nsw i64 %29, %26 + %31 = xor i64 %30, 7640891576956012808 + %32 = xor i64 %.sroa.8.0.copyload.i, -4942790177534073029 + %33 = xor i64 %14, 4354685564936845355 + %34 = xor i64 %.sroa.1169.0.copyload.val.i, 5840696475078001361 + %35 = xor i64 %.val116.i, -7276294671716946913 + %36 = xor i64 %.sroa.13.0.copyload.val.i, 2270897969802886507 + %37 = xor i64 %.val.i, 6620516959819538809 + %38 = insertelement <4 x i64> , i64 %31, i64 0 + %39 = insertelement <4 x i64> %38, i64 %32, i64 1 + %40 = insertelement <4 x i64> %39, i64 %33, i64 2 + store <4 x i64> %40, ptr %6, align 32, !tbaa !3 + %41 = insertelement <4 x i64> poison, i64 %34, i64 0 + %42 = insertelement <4 x i64> %41, i64 %35, i64 1 + %43 = insertelement <4 x i64> %42, i64 %36, i64 2 + %44 = insertelement <4 x i64> %43, i64 %37, i64 3 + store <4 x i64> %44, ptr %15, align 32, !tbaa !3 ret ptr %8 } @@ -1159,7 +1162,7 @@ define hidden void @python_hashlib_Hacl_Hash_Blake2b_Simd256_reset_with_key_and_ %.sroa.8119.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 24 %.sroa.8119.0.copyload.i = load ptr, ptr %.sroa.8119.0..sroa_idx.i, align 8, !tbaa !14 %4 = getelementptr inbounds nuw i8, ptr %1, i64 1 - %5 = load i8, ptr %4, align 1, !tbaa !18 + %5 = load i8, ptr %4, align 1, !tbaa !16 %6 = icmp eq i8 %5, 0 br i1 %6, label %reset_raw.exit, label %7 @@ -1632,10 +1635,10 @@ define hidden noalias noundef ptr @python_hashlib_Hacl_Hash_Blake2b_Simd256_copy ret ptr %6 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #19 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #20 ; Function Attrs: nounwind uwtable @@ -1875,7 +1878,7 @@ attributes #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "t attributes #7 = { nounwind uwtable "min-legal-vector-width"="256" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } attributes #8 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable "min-legal-vector-width"="256" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } attributes #9 = { mustprogress nofree nounwind willreturn memory(write, argmem: none, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized,aligned") allocsize(1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized,aligned") allocsize(1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } attributes #11 = { mustprogress nofree nounwind willreturn uwtable "min-legal-vector-width"="256" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } attributes #12 = { mustprogress nofree nounwind willreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } attributes #13 = { mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="256" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } @@ -1884,8 +1887,8 @@ attributes #15 = { nofree norecurse nosync nounwind memory(readwrite, inaccessib attributes #16 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } attributes #17 = { mustprogress nounwind willreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } attributes #18 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #19 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #20 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #19 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #20 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } attributes #21 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } attributes #22 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #23 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } @@ -1912,11 +1915,11 @@ attributes #27 = { nounwind allocsize(0) } !13 = !{!"any pointer", !4, i64 0} !14 = !{!15, !15, i64 0} !15 = !{!"p1 omnipotent char", !13, i64 0} -!16 = !{!17, !17, i64 0} -!17 = !{!"int", !4, i64 0} -!18 = !{!19, !4, i64 1} -!19 = !{!"Hacl_Hash_Blake2b_blake2_params_s", !4, i64 0, !4, i64 1, !4, i64 2, !4, i64 3, !17, i64 4, !9, i64 8, !4, i64 16, !4, i64 17, !15, i64 24, !15, i64 32} +!16 = !{!17, !4, i64 1} +!17 = !{!"Hacl_Hash_Blake2b_blake2_params_s", !4, i64 0, !4, i64 1, !4, i64 2, !4, i64 3, !18, i64 4, !9, i64 8, !4, i64 16, !4, i64 17, !15, i64 24, !15, i64 32} +!18 = !{!"int", !4, i64 0} +!19 = !{!18, !18, i64 0} !20 = !{i64 0, i64 1, !3, i64 1, i64 1, !3, i64 2, i64 1, !10, i64 8, i64 8, !12, i64 16, i64 8, !12, i64 24, i64 8, !14, i64 32, i64 8, !8} -!21 = !{!19, !15, i64 24} -!22 = !{!19, !15, i64 32} -!23 = !{!19, !9, i64 8} +!21 = !{!17, !15, i64 24} +!22 = !{!17, !15, i64 32} +!23 = !{!17, !9, i64 8} diff --git a/bench/cpython/optimized/Hacl_Hash_Blake2s_Simd128.ll b/bench/cpython/optimized/Hacl_Hash_Blake2s_Simd128.ll index ab44bd3c866..2bde321b51f 100644 --- a/bench/cpython/optimized/Hacl_Hash_Blake2s_Simd128.ll +++ b/bench/cpython/optimized/Hacl_Hash_Blake2s_Simd128.ll @@ -860,20 +860,25 @@ define hidden noalias noundef ptr @python_hashlib_Hacl_Hash_Blake2s_Simd128_mall ret ptr %1 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized,aligned") allocsize(1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized,aligned") allocsize(1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @aligned_alloc(i64 allocalign noundef, i64 noundef) local_unnamed_addr #10 ; Function Attrs: mustprogress nofree nounwind willreturn uwtable define hidden noalias noundef ptr @python_hashlib_Hacl_Hash_Blake2s_Simd128_malloc_with_params_and_key(ptr noundef readonly captures(none) %0, i1 noundef zeroext %1, ptr noundef readonly captures(none) %2) local_unnamed_addr #11 { - %.sroa.02.0.copyload = load i16, ptr %0, align 8 - %.sroa.01.0.insert.insert = tail call i16 @llvm.bswap.i16(i16 %.sroa.02.0.copyload) + %.sroa.02.0.copyload = load i8, ptr %0, align 8, !tbaa !3 + %.sroa.43.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 1 + %.sroa.43.0.copyload = load i8, ptr %.sroa.43.0..sroa_idx, align 1, !tbaa !3 + %.sroa.4.0.insert.ext = zext i8 %.sroa.02.0.copyload to i16 + %.sroa.4.0.insert.shift = shl nuw i16 %.sroa.4.0.insert.ext, 8 + %.sroa.01.0.insert.ext = zext i8 %.sroa.43.0.copyload to i16 + %.sroa.01.0.insert.insert = or disjoint i16 %.sroa.4.0.insert.shift, %.sroa.01.0.insert.ext %4 = tail call noalias dereferenceable_or_null(64) ptr @calloc(i64 noundef 64, i64 noundef 1) #26 %5 = tail call noalias align 16 dereferenceable_or_null(64) ptr @aligned_alloc(i64 noundef 16, i64 noundef 64) #25 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %5, i8 0, i64 64, i1 false) %6 = tail call noalias align 16 dereferenceable_or_null(64) ptr @aligned_alloc(i64 noundef 16, i64 noundef 64) #25 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %6, i8 0, i64 32, i1 false) %7 = zext i1 %1 to i8 - %.not.i = icmp ult i16 %.sroa.02.0.copyload, 256 + %.not.i = icmp eq i8 %.sroa.43.0.copyload, 0 %..i = select i1 %.not.i, i64 0, i64 64 %8 = tail call noalias dereferenceable_or_null(40) ptr @malloc(i64 noundef 40) #27 store i16 %.sroa.01.0.insert.insert, ptr %8, align 8 @@ -889,16 +894,17 @@ define hidden noalias noundef ptr @python_hashlib_Hacl_Hash_Blake2s_Simd128_mall store ptr %4, ptr %.sroa.493.0..sroa_idx.i, align 8, !tbaa !14 %.sroa.594.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %8, i64 32 store i64 %..i, ptr %.sroa.594.0..sroa_idx.i, align 8, !tbaa !16 - br i1 %.not.i, label %malloc_raw.exit, label %9 + %9 = load i8, ptr %.sroa.43.0..sroa_idx, align 1, !tbaa !18 + %10 = icmp eq i8 %9, 0 + br i1 %10, label %malloc_raw.exit, label %11 -9: ; preds = %3 - %10 = lshr i16 %.sroa.02.0.copyload, 8 - %11 = zext nneg i16 %10 to i64 - tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %4, ptr readonly align 1 %2, i64 %11, i1 false) +11: ; preds = %3 + %12 = zext i8 %9 to i64 + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %4, ptr readonly align 1 %2, i64 %12, i1 false) br label %malloc_raw.exit -malloc_raw.exit: ; preds = %3, %9 - %12 = zext i16 %.sroa.02.0.copyload to i32 +malloc_raw.exit: ; preds = %3, %11 + %.sroa.0.0.copyload.i = load i8, ptr %0, align 8, !tbaa !3 %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 2 %.sroa.5.0.copyload.i = load i16, ptr %.sroa.5.0..sroa_idx.i, align 2 %13 = zext i16 %.sroa.5.0.copyload.i to i32 @@ -926,29 +932,33 @@ malloc_raw.exit: ; preds = %3, %9 %.sroa.14.0.copyload.val.i = load i32, ptr %.sroa.14.0.copyload.i, align 1 %21 = getelementptr i8, ptr %.sroa.14.0.copyload.i, i64 4 %.val.i = load i32, ptr %21, align 1 - %22 = or disjoint i32 %14, %12 - %23 = trunc i64 %.sroa.8.0.copyload.i to i32 - %24 = lshr i64 %.sroa.8.0.copyload.i, 32 - %25 = trunc nuw i64 %24 to i32 - %26 = xor i32 %22, 1779033703 - %27 = xor i32 %.sroa.7.0.copyload.i, -1150833019 - %28 = xor i32 %23, 1013904242 - %29 = xor i32 %16, %25 - %30 = xor i32 %29, -1521486534 - %31 = xor i32 %.sroa.1268.0.copyload.val.i, 1359893119 - %32 = xor i32 %.val114.i, -1694144372 - %33 = xor i32 %.sroa.14.0.copyload.val.i, 528734635 - %34 = xor i32 %.val.i, 1541459225 - %35 = insertelement <4 x i32> poison, i32 %26, i64 0 - %36 = insertelement <4 x i32> %35, i32 %27, i64 1 - %37 = insertelement <4 x i32> %36, i32 %28, i64 2 - %38 = insertelement <4 x i32> %37, i32 %30, i64 3 - store <4 x i32> %38, ptr %6, align 16, !tbaa !3 - %39 = insertelement <4 x i32> poison, i32 %31, i64 0 - %40 = insertelement <4 x i32> %39, i32 %32, i64 1 - %41 = insertelement <4 x i32> %40, i32 %33, i64 2 + %22 = zext i8 %.sroa.0.0.copyload.i to i32 + %23 = zext i8 %9 to i32 + %24 = shl nuw nsw i32 %23, 8 + %25 = or disjoint i32 %24, %22 + %26 = or disjoint i32 %25, %14 + %27 = trunc i64 %.sroa.8.0.copyload.i to i32 + %28 = lshr i64 %.sroa.8.0.copyload.i, 32 + %29 = trunc nuw i64 %28 to i32 + %30 = xor i32 %26, 1779033703 + %31 = xor i32 %.sroa.7.0.copyload.i, -1150833019 + %32 = xor i32 %27, 1013904242 + %33 = xor i32 %16, %29 + %34 = xor i32 %33, -1521486534 + %35 = xor i32 %.sroa.1268.0.copyload.val.i, 1359893119 + %36 = xor i32 %.val114.i, -1694144372 + %37 = xor i32 %.sroa.14.0.copyload.val.i, 528734635 + %38 = xor i32 %.val.i, 1541459225 + %39 = insertelement <4 x i32> poison, i32 %30, i64 0 + %40 = insertelement <4 x i32> %39, i32 %31, i64 1 + %41 = insertelement <4 x i32> %40, i32 %32, i64 2 %42 = insertelement <4 x i32> %41, i32 %34, i64 3 - store <4 x i32> %42, ptr %17, align 16, !tbaa !3 + store <4 x i32> %42, ptr %6, align 16, !tbaa !3 + %43 = insertelement <4 x i32> poison, i32 %35, i64 0 + %44 = insertelement <4 x i32> %43, i32 %36, i64 1 + %45 = insertelement <4 x i32> %44, i32 %37, i64 2 + %46 = insertelement <4 x i32> %45, i32 %38, i64 3 + store <4 x i32> %46, ptr %17, align 16, !tbaa !3 ret ptr %8 } @@ -1501,10 +1511,10 @@ define hidden noalias noundef ptr @python_hashlib_Hacl_Hash_Blake2s_Simd128_copy ret ptr %6 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #19 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #20 ; Function Attrs: nounwind uwtable @@ -1749,9 +1759,6 @@ declare void @llvm.lifetime.end.p0(ptr captures(none)) #22 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare <4 x i32> @llvm.fshl.v4i32(<4 x i32>, <4 x i32>, <4 x i32>) #23 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i16 @llvm.bswap.i16(i16) #23 - attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #2 = { nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } @@ -1762,7 +1769,7 @@ attributes #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "t attributes #7 = { nounwind uwtable "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } attributes #8 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nofree nounwind willreturn memory(write, argmem: none, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } -attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized,aligned") allocsize(1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } +attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized,aligned") allocsize(1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } attributes #11 = { mustprogress nofree nounwind willreturn uwtable "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } attributes #12 = { mustprogress nofree nounwind willreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } attributes #13 = { mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } @@ -1771,8 +1778,8 @@ attributes #15 = { nofree norecurse nosync nounwind memory(readwrite, inaccessib attributes #16 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } attributes #17 = { mustprogress nounwind willreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } attributes #18 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } -attributes #19 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } -attributes #20 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } +attributes #19 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } +attributes #20 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } attributes #21 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } attributes #22 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #23 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } diff --git a/bench/darktable/optimized/film.ll b/bench/darktable/optimized/film.ll index a6d7625401c..85cc0690ac5 100644 --- a/bench/darktable/optimized/film.ll +++ b/bench/darktable/optimized/film.ll @@ -228,9 +228,9 @@ define noalias noundef ptr @dt_sqlite3_escape_wildcards(ptr noundef readonly cap br i1 %.not35, label %._crit_edge.loopexit, label %.lr.ph .preheader: ; preds = %._crit_edge, %15 - %12 = phi i8 [ %.pre, %15 ], [ %2, %._crit_edge ] %.028 = phi ptr [ %18, %15 ], [ %0, %._crit_edge ] %.0 = phi ptr [ %17, %15 ], [ %4, %._crit_edge ] + %12 = load i8, ptr %.028, align 1, !tbaa !6 switch i8 %12, label %15 [ i8 0, label %19 i8 37, label %13 @@ -241,16 +241,15 @@ define noalias noundef ptr @dt_sqlite3_escape_wildcards(ptr noundef readonly cap 13: ; preds = %.preheader, %.preheader, %.preheader %14 = getelementptr inbounds nuw i8, ptr %.0, i64 1 store i8 126, ptr %.0, align 1, !tbaa !6 - %.pre42 = load i8, ptr %.028, align 1, !tbaa !6 + %.pre = load i8, ptr %.028, align 1, !tbaa !6 br label %15 15: ; preds = %.preheader, %13 - %16 = phi i8 [ %.pre42, %13 ], [ %12, %.preheader ] + %16 = phi i8 [ %.pre, %13 ], [ %12, %.preheader ] %.1 = phi ptr [ %14, %13 ], [ %.0, %.preheader ] %17 = getelementptr inbounds nuw i8, ptr %.1, i64 1 store i8 %16, ptr %.1, align 1, !tbaa !6 %18 = getelementptr inbounds nuw i8, ptr %.028, i64 1 - %.pre = load i8, ptr %18, align 1, !tbaa !6 br label %.preheader 19: ; preds = %.preheader @@ -262,7 +261,7 @@ define noalias noundef ptr @dt_sqlite3_escape_wildcards(ptr noundef readonly cap ret ptr %.023 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #4 ; Function Attrs: nounwind uwtable @@ -1551,7 +1550,7 @@ attributes #0 = { nounwind uwtable "approx-func-fp-math"="true" "min-legal-vecto attributes #1 = { "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #2 = { nofree nounwind "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #3 = { nofree nounwind memory(write, argmem: read, inaccessiblemem: readwrite) uwtable "approx-func-fp-math"="true" "min-legal-vector-width"="0" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } -attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } +attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #6 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #7 = { nounwind "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } diff --git a/bench/darktable/optimized/filtering.ll b/bench/darktable/optimized/filtering.ll index bf29e7fa598..97fe78d2fff 100644 --- a/bench/darktable/optimized/filtering.ll +++ b/bench/darktable/optimized/filtering.ll @@ -1377,7 +1377,7 @@ declare void @dt_lib_presets_add(ptr noundef, ptr noundef, i32 noundef, ptr noun declare i64 @g_strlcpy(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #3 ; Function Attrs: nounwind uwtable -define noalias noundef ptr @get_params(ptr noundef readonly captures(none) %0, ptr noundef writeonly captures(none) initializes((0, 4)) %1) local_unnamed_addr #1 { +define noalias noundef ptr @get_params(ptr noundef readonly captures(none) %0, ptr noundef captures(none) initializes((0, 4)) %1) local_unnamed_addr #1 { %3 = getelementptr inbounds nuw i8, ptr %0, i64 280 %4 = load ptr, ptr %3, align 8, !tbaa !112 %5 = getelementptr i8, ptr %4, i64 4512 @@ -1388,7 +1388,9 @@ define noalias noundef ptr @get_params(ptr noundef readonly captures(none) %0, p %7 = load ptr, ptr %3, align 8, !tbaa !112 %8 = getelementptr inbounds nuw i8, ptr %7, i64 4512 %9 = load ptr, ptr %8, align 8, !tbaa !113 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(2692) %6, ptr noundef nonnull align 4 dereferenceable(2692) %9, i64 2692, i1 false) + %10 = load i32, ptr %1, align 4, !tbaa !114 + %11 = sext i32 %10 to i64 + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %6, ptr align 4 %9, i64 %11, i1 false) ret ptr %6 } @@ -1547,7 +1549,7 @@ define internal fastcc void @_filters_update_params(ptr initializes((0, 2692)) % br i1 %82, label %65, label %._crit_edge5 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #7 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) @@ -2658,7 +2660,7 @@ define void @gui_init(ptr noundef initializes((280, 288), (416, 424)) %0) local_ ret void } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #9 declare ptr @gtk_box_new(i32 noundef, i32 noundef) local_unnamed_addr #3 @@ -13497,9 +13499,9 @@ attributes #3 = { "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #5 = { nofree nounwind "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #6 = { nounwind "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } -attributes #7 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } +attributes #7 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #9 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } +attributes #9 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #10 = { allocsize(0) "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #11 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #12 = { mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) uwtable "approx-func-fp-math"="true" "min-legal-vector-width"="0" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } diff --git a/bench/darktable/optimized/imageio_pnm.ll b/bench/darktable/optimized/imageio_pnm.ll index ff29c428100..115cc8c348f 100644 --- a/bench/darktable/optimized/imageio_pnm.ll +++ b/bench/darktable/optimized/imageio_pnm.ll @@ -322,11 +322,12 @@ define internal fastcc range(i32 0, 7) i32 @_read_pgm(ptr noundef readonly captu .lr.ph110.preheader: ; preds = %.lr.ph99 %19 = uitofp nneg i32 %8 to float + %.pre118 = load i32, ptr %12, align 4, !tbaa !11 %20 = fdiv reassoc nsz arcp contract afn float 1.000000e+00, %19 br label %.lr.ph110 .lr.ph110: ; preds = %.lr.ph110.preheader, %._crit_edge94 - %21 = phi i32 [ %24, %._crit_edge94 ], [ %13, %.lr.ph110.preheader ] + %21 = phi i32 [ %24, %._crit_edge94 ], [ %.pre118, %.lr.ph110.preheader ] %.06596109 = phi i64 [ %26, %._crit_edge94 ], [ 0, %.lr.ph110.preheader ] %.06297108 = phi ptr [ %.163.lcssa, %._crit_edge94 ], [ %2, %.lr.ph110.preheader ] %22 = sext i32 %21 to i64 @@ -379,11 +380,12 @@ define internal fastcc range(i32 0, 7) i32 @_read_pgm(ptr noundef readonly captu .lr.ph89.preheader: ; preds = %.lr.ph79 %42 = uitofp nneg i32 %8 to float + %.pre = load i32, ptr %12, align 4, !tbaa !11 %43 = fdiv reassoc nsz arcp contract afn float 1.000000e+00, %42 br label %.lr.ph89 .lr.ph89: ; preds = %.lr.ph89.preheader, %._crit_edge - %44 = phi i32 [ %47, %._crit_edge ], [ %13, %.lr.ph89.preheader ] + %44 = phi i32 [ %47, %._crit_edge ], [ %.pre, %.lr.ph89.preheader ] %.0607688 = phi ptr [ %.161.lcssa, %._crit_edge ], [ %2, %.lr.ph89.preheader ] %.0597787 = phi i64 [ %49, %._crit_edge ], [ 0, %.lr.ph89.preheader ] %45 = sext i32 %44 to i64 @@ -473,11 +475,12 @@ define internal fastcc range(i32 0, 7) i32 @_read_ppm(ptr noundef readonly captu .lr.ph118.preheader: ; preds = %.lr.ph107 %20 = uitofp nneg i32 %8 to float + %.pre134 = load i32, ptr %12, align 4, !tbaa !11 %21 = fdiv reassoc nsz arcp contract afn float 1.000000e+00, %20 br label %.lr.ph118 .lr.ph118: ; preds = %.lr.ph118.preheader, %._crit_edge102 - %22 = phi i32 [ %25, %._crit_edge102 ], [ %13, %.lr.ph118.preheader ] + %22 = phi i32 [ %25, %._crit_edge102 ], [ %.pre134, %.lr.ph118.preheader ] %.069104117 = phi i64 [ %29, %._crit_edge102 ], [ 0, %.lr.ph118.preheader ] %.064105116 = phi ptr [ %.165.lcssa, %._crit_edge102 ], [ %2, %.lr.ph118.preheader ] %23 = sext i32 %22 to i64 @@ -538,11 +541,12 @@ define internal fastcc range(i32 0, 7) i32 @_read_ppm(ptr noundef readonly captu .lr.ph96.preheader: ; preds = %.lr.ph %45 = uitofp nneg i32 %8 to float + %.pre = load i32, ptr %12, align 4, !tbaa !11 %46 = fdiv reassoc nsz arcp contract afn float 1.000000e+00, %45 br label %.lr.ph96 .lr.ph96: ; preds = %.lr.ph96.preheader, %._crit_edge - %47 = phi i32 [ %50, %._crit_edge ], [ %13, %.lr.ph96.preheader ] + %47 = phi i32 [ %50, %._crit_edge ], [ %.pre, %.lr.ph96.preheader ] %.0618495 = phi ptr [ %.162.lcssa, %._crit_edge ], [ %2, %.lr.ph96.preheader ] %.0608594 = phi i64 [ %53, %._crit_edge ], [ 0, %.lr.ph96.preheader ] %48 = sext i32 %47 to i64 @@ -607,7 +611,7 @@ define internal fastcc range(i32 0, 7) i32 @_read_ppm(ptr noundef readonly captu ; Function Attrs: nofree nounwind declare noundef i32 @fclose(ptr noundef captures(none)) local_unnamed_addr #3 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #8 ; Function Attrs: nofree nounwind @@ -639,7 +643,7 @@ attributes #4 = { "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #6 = { mustprogress nofree nosync nounwind willreturn memory(none) "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #7 = { mustprogress nocallback nofree nounwind willreturn "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } -attributes #8 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } +attributes #8 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #9 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #10 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #11 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } diff --git a/bench/darktable/optimized/introspection_colorzones.ll b/bench/darktable/optimized/introspection_colorzones.ll index c54c5dbbbfe..cf6664b8542 100644 --- a/bench/darktable/optimized/introspection_colorzones.ll +++ b/bench/darktable/optimized/introspection_colorzones.ll @@ -506,7 +506,7 @@ define range(i32 0, 2) i32 @legacy_params(ptr noundef readnone captures(none) %0 ret i32 %.0175 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #5 ; Function Attrs: nounwind uwtable @@ -7491,7 +7491,7 @@ define void @init_pipe(ptr noundef readonly captures(none) %0, ptr noundef readn %12 = getelementptr inbounds nuw i8, ptr %6, i64 4 br label %19 -13: ; preds = %40 +13: ; preds = %41 %14 = load i32, ptr %6, align 4, !tbaa !142 %15 = getelementptr inbounds nuw i8, ptr %4, i64 48 store i32 %14, ptr %15, align 8, !tbaa !69 @@ -7501,8 +7501,8 @@ define void @init_pipe(ptr noundef readonly captures(none) %0, ptr noundef readn store i32 %17, ptr %18, align 4, !tbaa !108 ret void -19: ; preds = %3, %40 - %indvars.iv35 = phi i64 [ 0, %3 ], [ %indvars.iv.next36, %40 ] +19: ; preds = %3, %41 + %indvars.iv35 = phi i64 [ 0, %3 ], [ %indvars.iv.next36, %41 ] %20 = getelementptr inbounds nuw i32, ptr %8, i64 %indvars.iv35 %21 = load i32, ptr %20, align 4, !tbaa !19 %22 = tail call noalias dereferenceable_or_null(200) ptr @malloc(i64 noundef 200) #30 @@ -7530,42 +7530,43 @@ define void @init_pipe(ptr noundef readonly captures(none) %0, ptr noundef readn %34 = load i32, ptr %33, align 4, !tbaa !19 %35 = getelementptr inbounds nuw i32, ptr %10, i64 %indvars.iv35 store i32 %34, ptr %35, align 4, !tbaa !19 - %36 = getelementptr inbounds nuw i32, ptr %11, i64 %indvars.iv35 - store i32 %21, ptr %36, align 4, !tbaa !19 - %37 = icmp sgt i32 %34, 0 - br i1 %37, label %.lr.ph, label %40 + %36 = load i32, ptr %20, align 4, !tbaa !19 + %37 = getelementptr inbounds nuw i32, ptr %11, i64 %indvars.iv35 + store i32 %36, ptr %37, align 4, !tbaa !19 + %38 = icmp sgt i32 %34, 0 + br i1 %38, label %.lr.ph, label %41 .lr.ph: ; preds = %19 - %38 = getelementptr inbounds nuw [20 x %struct.dt_iop_colorzones_node_t], ptr %12, i64 %indvars.iv35 - %39 = getelementptr inbounds nuw i8, ptr %22, i64 24 + %39 = getelementptr inbounds nuw [20 x %struct.dt_iop_colorzones_node_t], ptr %12, i64 %indvars.iv35 + %40 = getelementptr inbounds nuw i8, ptr %22, i64 24 %wide.trip.count = zext nneg i32 %34 to i64 - br label %41 + br label %42 -._crit_edge: ; preds = %41 - store i8 %50, ptr %27, align 4, !tbaa !162 - br label %40 +._crit_edge: ; preds = %42 + store i8 %51, ptr %27, align 4, !tbaa !162 + br label %41 -40: ; preds = %._crit_edge, %19 +41: ; preds = %._crit_edge, %19 %indvars.iv.next36 = add nuw nsw i64 %indvars.iv35, 1 %exitcond38.not = icmp eq i64 %indvars.iv.next36, 3 br i1 %exitcond38.not, label %13, label %19 -41: ; preds = %.lr.ph, %41 - %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %41 ] - %42 = phi i8 [ 0, %.lr.ph ], [ %50, %41 ] - %43 = getelementptr inbounds nuw %struct.dt_iop_colorzones_node_t, ptr %38, i64 %indvars.iv - %44 = load float, ptr %43, align 4, !tbaa !15 - %45 = getelementptr inbounds nuw i8, ptr %43, i64 4 - %46 = load float, ptr %45, align 4, !tbaa !17 - %47 = zext i8 %42 to i64 - %48 = getelementptr inbounds nuw %struct.CurveAnchorPoint, ptr %39, i64 %47 - store float %44, ptr %48, align 8, !tbaa !168 - %49 = getelementptr inbounds nuw i8, ptr %48, i64 4 - store float %46, ptr %49, align 4, !tbaa !170 - %50 = add i8 %42, 1 +42: ; preds = %.lr.ph, %42 + %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %42 ] + %43 = phi i8 [ 0, %.lr.ph ], [ %51, %42 ] + %44 = getelementptr inbounds nuw %struct.dt_iop_colorzones_node_t, ptr %39, i64 %indvars.iv + %45 = load float, ptr %44, align 4, !tbaa !15 + %46 = getelementptr inbounds nuw i8, ptr %44, i64 4 + %47 = load float, ptr %46, align 4, !tbaa !17 + %48 = zext i8 %43 to i64 + %49 = getelementptr inbounds nuw %struct.CurveAnchorPoint, ptr %40, i64 %48 + store float %45, ptr %49, align 8, !tbaa !168 + %50 = getelementptr inbounds nuw i8, ptr %49, i64 4 + store float %47, ptr %50, align 4, !tbaa !170 + %51 = add i8 %43, 1 %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 %41 + br i1 %exitcond.not, label %._crit_edge, label %42 } ; Function Attrs: nounwind uwtable @@ -7655,7 +7656,7 @@ _reset_parameters.exit: ; preds = %_reset_nodes.exit.u ret void } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #17 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable @@ -9309,7 +9310,7 @@ attributes #1 = { nounwind uwtable "approx-func-fp-math"="true" "min-legal-vecto attributes #2 = { nounwind "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #3 = { "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #4 = { nofree nounwind uwtable "approx-func-fp-math"="true" "min-legal-vector-width"="0" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } -attributes #5 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } +attributes #5 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #7 = { nofree norecurse nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) uwtable "approx-func-fp-math"="true" "min-legal-vector-width"="0" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } @@ -9321,7 +9322,7 @@ attributes #13 = { mustprogress nofree nounwind willreturn memory(write, inacces attributes #14 = { mustprogress nounwind willreturn uwtable "approx-func-fp-math"="true" "min-legal-vector-width"="0" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #15 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #16 = { nofree nounwind memory(write, argmem: readwrite, inaccessiblemem: readwrite) uwtable "approx-func-fp-math"="true" "min-legal-vector-width"="0" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } -attributes #17 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } +attributes #17 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #18 = { nofree norecurse nosync nounwind memory(readwrite, argmem: none, inaccessiblemem: none) uwtable "approx-func-fp-math"="true" "min-legal-vector-width"="0" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #19 = { mustprogress nofree norecurse nounwind willreturn memory(argmem: read) uwtable "approx-func-fp-math"="true" "min-legal-vector-width"="0" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #20 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } diff --git a/bench/darktable/optimized/tethering.ll b/bench/darktable/optimized/tethering.ll index 889fe821c48..aae6507312c 100644 --- a/bench/darktable/optimized/tethering.ll +++ b/bench/darktable/optimized/tethering.ll @@ -86,7 +86,7 @@ define void @init(ptr noundef initializes((288, 296)) %0) local_unnamed_addr #3 ret void } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #4 ; Function Attrs: nounwind uwtable @@ -1278,13 +1278,19 @@ define internal range(i32 0, 2) i32 @_tethering_write_image(ptr noundef captures %22 = getelementptr inbounds nuw i8, ptr %0, i64 152 store ptr %21, ptr %22, align 8, !tbaa !150 %.not = icmp eq ptr %21, null - br i1 %.not, label %24, label %23 + br i1 %.not, label %30, label %23 23: ; preds = %12 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %21, ptr align 1 %2, i64 %20, i1 false) - br label %24 - -24: ; preds = %12, %23 + %24 = load i32, ptr %13, align 8, !tbaa !151 + %25 = sext i32 %24 to i64 + %26 = shl nsw i64 %25, 4 + %27 = load i32, ptr %17, align 4, !tbaa !152 + %28 = sext i32 %27 to i64 + %29 = mul i64 %26, %28 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %21, ptr align 1 %2, i64 %29, i1 false) + br label %30 + +30: ; preds = %12, %23 %.0 = phi i32 [ 0, %23 ], [ 1, %12 ] ret i32 %.0 } @@ -1322,7 +1328,7 @@ declare void @cairo_surface_set_device_scale(ptr noundef, double noundef, double ; Function Attrs: nounwind declare i32 @pthread_mutex_unlock(ptr noundef) local_unnamed_addr #2 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #14 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) @@ -1362,7 +1368,7 @@ attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memor attributes #1 = { nounwind uwtable "approx-func-fp-math"="true" "min-legal-vector-width"="0" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #2 = { nounwind "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #3 = { mustprogress nofree nounwind willreturn memory(readwrite, argmem: write) uwtable "approx-func-fp-math"="true" "min-legal-vector-width"="0" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } -attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } +attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #5 = { mustprogress nounwind willreturn uwtable "approx-func-fp-math"="true" "min-legal-vector-width"="0" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #6 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #7 = { "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } @@ -1372,7 +1378,7 @@ attributes #10 = { noreturn "approx-func-fp-math"="true" "no-signed-zeros-fp-mat attributes #11 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #12 = { mustprogress nofree nounwind willreturn uwtable "approx-func-fp-math"="true" "min-legal-vector-width"="0" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #13 = { mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } -attributes #14 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } +attributes #14 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #15 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #16 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #17 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } diff --git a/bench/duckdb/optimized/fastcover.ll b/bench/duckdb/optimized/fastcover.ll index dfe35973204..314ea48dc84 100644 --- a/bench/duckdb/optimized/fastcover.ll +++ b/bench/duckdb/optimized/fastcover.ll @@ -523,7 +523,7 @@ _ZN11duckdb_zstdL26FASTCOVER_computeFrequencyEPjPKNS_15FASTCOVER_ctx_tE.exit: ; declare void @_ZN11duckdb_zstd23COVER_warnOnSmallCorpusEmmi(i64 noundef, i64 noundef, i32 noundef) local_unnamed_addr #4 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #5 ; Function Attrs: mustprogress uwtable @@ -1233,7 +1233,7 @@ declare void @_ZN11duckdb_zstd18COVER_best_destroyEPNS_12COVER_best_sE(ptr nound declare void @_ZN11duckdb_zstd9POOL_freeEPNS_10POOL_ctx_sE(ptr noundef) local_unnamed_addr #4 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #7 declare void @_ZN11duckdb_zstd16COVER_best_startEPNS_12COVER_best_sE(ptr noundef) local_unnamed_addr #4 @@ -1272,7 +1272,7 @@ define internal void @_ZN11duckdb_zstdL23FASTCOVER_tryParametersEPv(ptr noundef 22: ; preds = %1 %23 = load i32, ptr @_ZN11duckdb_zstdL14g_displayLevelE, align 4, !tbaa !10 %24 = icmp sgt i32 %23, 0 - br i1 %24, label %25, label %57 + br i1 %24, label %25, label %60 25: ; preds = %22 %26 = load ptr, ptr @stderr, align 8, !tbaa !13 @@ -1282,51 +1282,54 @@ define internal void @_ZN11duckdb_zstdL23FASTCOVER_tryParametersEPv(ptr noundef 28: ; preds = %1 %29 = getelementptr inbounds nuw i8, ptr %5, i64 56 %30 = load ptr, ptr %29, align 8, !tbaa !23 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %18, ptr align 4 %30, i64 %17, i1 false) - %31 = call fastcc noundef i64 @_ZN11duckdb_zstdL25FASTCOVER_buildDictionaryEPKNS_15FASTCOVER_ctx_tEPjPvmNS_20ZDICT_cover_params_tEPt(ptr noundef nonnull %5, ptr noundef nonnull %18, ptr noundef nonnull %14, i64 noundef %8, ptr noundef nonnull byval(%"struct.duckdb_zstd::ZDICT_cover_params_t") align 8 %2, ptr noundef nonnull %13) - %32 = getelementptr inbounds nuw i8, ptr %5, i64 32 - %33 = load i64, ptr %32, align 8, !tbaa !26 - %34 = getelementptr inbounds nuw i8, ptr %5, i64 72 - %35 = load i32, ptr %34, align 8, !tbaa !27 - %36 = zext i32 %35 to i64 - %37 = mul i64 %33, %36 - %38 = udiv i64 %37, 100 - %39 = trunc i64 %38 to i32 + %31 = load i32, ptr %9, align 4, !tbaa !34 + %32 = zext nneg i32 %31 to i64 + %33 = shl i64 4, %32 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %18, ptr align 4 %30, i64 %33, i1 false) + %34 = call fastcc noundef i64 @_ZN11duckdb_zstdL25FASTCOVER_buildDictionaryEPKNS_15FASTCOVER_ctx_tEPjPvmNS_20ZDICT_cover_params_tEPt(ptr noundef nonnull %5, ptr noundef nonnull %18, ptr noundef nonnull %14, i64 noundef %8, ptr noundef nonnull byval(%"struct.duckdb_zstd::ZDICT_cover_params_t") align 8 %2, ptr noundef nonnull %13) + %35 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %36 = load i64, ptr %35, align 8, !tbaa !26 + %37 = getelementptr inbounds nuw i8, ptr %5, i64 72 + %38 = load i32, ptr %37, align 8, !tbaa !27 + %39 = zext i32 %38 to i64 + %40 = mul i64 %36, %39 + %41 = udiv i64 %40, 100 + %42 = trunc i64 %41 to i32 call void @llvm.lifetime.start.p0(ptr nonnull %4) - %40 = getelementptr inbounds nuw i8, ptr %14, i64 %31 - %41 = sub i64 %8, %31 - %42 = load ptr, ptr %5, align 8, !tbaa !29 - %43 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %44 = load ptr, ptr %43, align 8, !tbaa !30 - %45 = getelementptr inbounds nuw i8, ptr %5, i64 24 - %46 = load i64, ptr %45, align 8, !tbaa !31 - %47 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %48 = load ptr, ptr %47, align 8, !tbaa !28 - call void @_ZN11duckdb_zstd16COVER_selectDictEPhmmPKhPKmjmmNS_20ZDICT_cover_params_tEPmm(ptr dead_on_unwind nonnull writable sret(%"struct.duckdb_zstd::COVER_dictSelection") align 8 %4, ptr noundef nonnull %40, i64 noundef %8, i64 noundef %41, ptr noundef %42, ptr noundef %44, i32 noundef %39, i64 noundef %33, i64 noundef %46, ptr noundef nonnull byval(%"struct.duckdb_zstd::ZDICT_cover_params_t") align 8 %2, ptr noundef %48, i64 noundef -1) + %43 = getelementptr inbounds nuw i8, ptr %14, i64 %34 + %44 = sub i64 %8, %34 + %45 = load ptr, ptr %5, align 8, !tbaa !29 + %46 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %47 = load ptr, ptr %46, align 8, !tbaa !30 + %48 = getelementptr inbounds nuw i8, ptr %5, i64 24 + %49 = load i64, ptr %48, align 8, !tbaa !31 + %50 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %51 = load ptr, ptr %50, align 8, !tbaa !28 + call void @_ZN11duckdb_zstd16COVER_selectDictEPhmmPKhPKmjmmNS_20ZDICT_cover_params_tEPmm(ptr dead_on_unwind nonnull writable sret(%"struct.duckdb_zstd::COVER_dictSelection") align 8 %4, ptr noundef nonnull %43, i64 noundef %8, i64 noundef %44, ptr noundef %45, ptr noundef %47, i32 noundef %42, i64 noundef %36, i64 noundef %49, ptr noundef nonnull byval(%"struct.duckdb_zstd::ZDICT_cover_params_t") align 8 %2, ptr noundef %51, i64 noundef -1) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %4, i64 24, i1 false), !tbaa.struct !72 call void @llvm.lifetime.end.p0(ptr nonnull %4) - %49 = call noundef i32 @_ZN11duckdb_zstd26COVER_dictSelectionIsErrorENS_19COVER_dictSelectionE(ptr noundef nonnull byval(%"struct.duckdb_zstd::COVER_dictSelection") align 8 %3) - %.not = icmp ne i32 %49, 0 - %50 = load i32, ptr @_ZN11duckdb_zstdL14g_displayLevelE, align 4 - %51 = icmp sgt i32 %50, 0 - %or.cond42 = select i1 %.not, i1 %51, i1 false - br i1 %or.cond42, label %52, label %57 - -52: ; preds = %28 - %53 = load ptr, ptr @stderr, align 8, !tbaa !13 - %54 = call i64 @fwrite(ptr nonnull @.str.26, i64 28, i64 1, ptr %53) #12 + %52 = call noundef i32 @_ZN11duckdb_zstd26COVER_dictSelectionIsErrorENS_19COVER_dictSelectionE(ptr noundef nonnull byval(%"struct.duckdb_zstd::COVER_dictSelection") align 8 %3) + %.not = icmp ne i32 %52, 0 + %53 = load i32, ptr @_ZN11duckdb_zstdL14g_displayLevelE, align 4 + %54 = icmp sgt i32 %53, 0 + %or.cond42 = select i1 %.not, i1 %54, i1 false + br i1 %or.cond42, label %55, label %60 + +55: ; preds = %28 + %56 = load ptr, ptr @stderr, align 8, !tbaa !13 + %57 = call i64 @fwrite(ptr nonnull @.str.26, i64 28, i64 1, ptr %56) #12 br label %.sink.split -.sink.split: ; preds = %25, %52 - %55 = load ptr, ptr @stderr, align 8, !tbaa !13 - %56 = call i32 @fflush(ptr noundef %55) - br label %57 +.sink.split: ; preds = %25, %55 + %58 = load ptr, ptr @stderr, align 8, !tbaa !13 + %59 = call i32 @fflush(ptr noundef %58) + br label %60 -57: ; preds = %.sink.split, %28, %22 +60: ; preds = %.sink.split, %28, %22 call void @free(ptr noundef %14) #15 - %58 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %59 = load ptr, ptr %58, align 8, !tbaa !57 - call void @_ZN11duckdb_zstd17COVER_best_finishEPNS_12COVER_best_sENS_20ZDICT_cover_params_tENS_19COVER_dictSelectionE(ptr noundef %59, ptr noundef nonnull byval(%"struct.duckdb_zstd::ZDICT_cover_params_t") align 8 %2, ptr noundef nonnull byval(%"struct.duckdb_zstd::COVER_dictSelection") align 8 %3) + %61 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %62 = load ptr, ptr %61, align 8, !tbaa !57 + call void @_ZN11duckdb_zstd17COVER_best_finishEPNS_12COVER_best_sENS_20ZDICT_cover_params_tENS_19COVER_dictSelectionE(ptr noundef %62, ptr noundef nonnull byval(%"struct.duckdb_zstd::ZDICT_cover_params_t") align 8 %2, ptr noundef nonnull byval(%"struct.duckdb_zstd::COVER_dictSelection") align 8 %3) call void @free(ptr noundef nonnull %0) #15 call void @free(ptr noundef %13) #15 call void @_ZN11duckdb_zstd23COVER_dictSelectionFreeENS_19COVER_dictSelectionE(ptr noundef nonnull byval(%"struct.duckdb_zstd::COVER_dictSelection") align 8 %3) @@ -1377,9 +1380,9 @@ attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argm attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #3 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #10 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } diff --git a/bench/flac/optimized/options.ll b/bench/flac/optimized/options.ll index 62137b4385d..d3e7d75fb27 100644 --- a/bench/flac/optimized/options.ll +++ b/bench/flac/optimized/options.ll @@ -2278,25 +2278,24 @@ define internal fastcc ptr @append_argument(ptr noundef captures(none) %0, i32 n %8 = getelementptr inbounds nuw i8, ptr %0, i64 72 store ptr %7, ptr %8, align 8, !tbaa !45 %9 = icmp eq ptr %7, null - br i1 %9, label %10, label %13 + br i1 %9, label %10, label %11 10: ; preds = %6 tail call void @die(ptr noundef nonnull @.str.97) #18 %.pre.i = load ptr, ptr %8, align 8, !tbaa !45 - %.pre22.i = load i32, ptr %3, align 4, !tbaa !62 - %11 = zext i32 %.pre22.i to i64 - %12 = mul nuw nsw i64 %11, 24 - br label %13 - -13: ; preds = %10, %6 - %14 = phi i64 [ %12, %10 ], [ 1200, %6 ] - %15 = phi ptr [ %.pre.i, %10 ], [ %7, %6 ] - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 %15, i8 noundef 0, i64 noundef range(i64 0, 206158430161) %14, i1 noundef false) #18 + br label %11 + +11: ; preds = %10, %6 + %12 = phi ptr [ %.pre.i, %10 ], [ %7, %6 ] + %13 = load i32, ptr %3, align 4, !tbaa !62 + %14 = zext i32 %13 to i64 + %15 = mul nuw nsw i64 %14, 24 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 %12, i8 noundef 0, i64 noundef range(i64 0, 206158430161) %15, i1 noundef false) #18 %.pr.i = load i32, ptr %3, align 4, !tbaa !62 br label %16 -16: ; preds = %13, %2 - %17 = phi i32 [ %.pr.i, %13 ], [ %4, %2 ] +16: ; preds = %11, %2 + %17 = phi i32 [ %.pr.i, %11 ], [ %4, %2 ] %18 = getelementptr inbounds nuw i8, ptr %0, i64 80 %19 = load i32, ptr %18, align 8, !tbaa !44 %.not.i = icmp ugt i32 %17, %19 @@ -2308,11 +2307,11 @@ define internal fastcc ptr @append_argument(ptr noundef captures(none) %0, i32 n 22: ; preds = %20 tail call void @die(ptr noundef nonnull @.str.97) #18 - %.pre23.i = load i32, ptr %3, align 4, !tbaa !62 + %.pre22.i = load i32, ptr %3, align 4, !tbaa !62 br label %23 23: ; preds = %22, %20 - %24 = phi i32 [ %.pre23.i, %22 ], [ %17, %20 ] + %24 = phi i32 [ %.pre22.i, %22 ], [ %17, %20 ] %25 = shl i32 %24, 1 store i32 %25, ptr %3, align 4, !tbaa !62 %26 = getelementptr inbounds nuw i8, ptr %0, i64 72 @@ -2344,11 +2343,11 @@ safe_realloc_mul_2op_.exit.i: ; preds = %23 35: ; preds = %safe_realloc_mul_2op_.exit.i, %safe_realloc_mul_2op_.exit.thread.i tail call void @die(ptr noundef nonnull @.str.97) #18 - %.pre24.i = load ptr, ptr %26, align 8, !tbaa !45 + %.pre23.i = load ptr, ptr %26, align 8, !tbaa !45 br label %36 36: ; preds = %35, %safe_realloc_mul_2op_.exit.i, %safe_realloc_mul_2op_.exit.thread20.i - %37 = phi ptr [ %31, %safe_realloc_mul_2op_.exit.thread20.i ], [ %.pre24.i, %35 ], [ %33, %safe_realloc_mul_2op_.exit.i ] + %37 = phi ptr [ %31, %safe_realloc_mul_2op_.exit.thread20.i ], [ %.pre23.i, %35 ], [ %33, %safe_realloc_mul_2op_.exit.i ] %38 = zext i32 %17 to i64 %39 = getelementptr inbounds nuw %struct.Argument, ptr %37, i64 %38 %40 = load i32, ptr %3, align 4, !tbaa !62 @@ -2356,11 +2355,11 @@ safe_realloc_mul_2op_.exit.i: ; preds = %23 %42 = zext i32 %41 to i64 %43 = mul nuw nsw i64 %42, 24 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 %39, i8 noundef 0, i64 noundef range(i64 0, 206158430161) %43, i1 noundef false) #18 - %.pre25.i = load i32, ptr %18, align 8, !tbaa !44 + %.pre24.i = load i32, ptr %18, align 8, !tbaa !44 br label %append_new_argument.exit append_new_argument.exit: ; preds = %16, %36 - %44 = phi i32 [ %.pre25.i, %36 ], [ %19, %16 ] + %44 = phi i32 [ %.pre24.i, %36 ], [ %19, %16 ] %45 = getelementptr inbounds nuw i8, ptr %0, i64 72 %46 = load ptr, ptr %45, align 8, !tbaa !45 %47 = add i32 %44, 1 @@ -2764,7 +2763,7 @@ declare i64 @strtoul(ptr noundef readonly, ptr noundef captures(none), i32 nound ; Function Attrs: mustprogress nocallback nofree nounwind willreturn declare i64 @strtoull(ptr noundef readonly, ptr noundef captures(none), i32 noundef) local_unnamed_addr #9 -; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias ptr @strdup(ptr noundef readonly captures(none)) local_unnamed_addr #10 ; Function Attrs: nounwind sspstrong uwtable @@ -2780,25 +2779,24 @@ define internal fastcc void @append_new_operation(ptr noundef captures(none) %0, %8 = tail call noalias dereferenceable_or_null(2400) ptr @malloc(i64 noundef 2400) #21 store ptr %8, ptr %3, align 8, !tbaa !34 %9 = icmp eq ptr %8, null - br i1 %9, label %10, label %13 + br i1 %9, label %10, label %11 10: ; preds = %7 tail call void @die(ptr noundef nonnull @.str.97) #18 %.pre = load ptr, ptr %3, align 8, !tbaa !34 - %.pre22 = load i32, ptr %4, align 4, !tbaa !79 - %11 = zext i32 %.pre22 to i64 - %12 = mul nuw nsw i64 %11, 48 - br label %13 - -13: ; preds = %10, %7 - %14 = phi i64 [ %12, %10 ], [ 2400, %7 ] - %15 = phi ptr [ %.pre, %10 ], [ %8, %7 ] - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 %15, i8 noundef 0, i64 noundef range(i64 0, 206158430161) %14, i1 noundef false) #18 + br label %11 + +11: ; preds = %10, %7 + %12 = phi ptr [ %.pre, %10 ], [ %8, %7 ] + %13 = load i32, ptr %4, align 4, !tbaa !79 + %14 = zext i32 %13 to i64 + %15 = mul nuw nsw i64 %14, 48 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 %12, i8 noundef 0, i64 noundef range(i64 0, 206158430161) %15, i1 noundef false) #18 %.pr = load i32, ptr %4, align 4, !tbaa !79 br label %16 -16: ; preds = %13, %2 - %17 = phi i32 [ %.pr, %13 ], [ %5, %2 ] +16: ; preds = %11, %2 + %17 = phi i32 [ %.pr, %11 ], [ %5, %2 ] %18 = getelementptr inbounds nuw i8, ptr %0, i64 48 %19 = load i32, ptr %18, align 8, !tbaa !33 %.not = icmp ugt i32 %17, %19 @@ -2810,11 +2808,11 @@ define internal fastcc void @append_new_operation(ptr noundef captures(none) %0, 22: ; preds = %20 tail call void @die(ptr noundef nonnull @.str.97) #18 - %.pre23 = load i32, ptr %4, align 4, !tbaa !79 + %.pre22 = load i32, ptr %4, align 4, !tbaa !79 br label %23 23: ; preds = %22, %20 - %24 = phi i32 [ %.pre23, %22 ], [ %17, %20 ] + %24 = phi i32 [ %.pre22, %22 ], [ %17, %20 ] %25 = shl i32 %24, 1 store i32 %25, ptr %4, align 4, !tbaa !79 %26 = load ptr, ptr %3, align 8, !tbaa !34 @@ -2845,11 +2843,11 @@ safe_realloc_mul_2op_.exit: ; preds = %23 34: ; preds = %safe_realloc_mul_2op_.exit.thread, %safe_realloc_mul_2op_.exit tail call void @die(ptr noundef nonnull @.str.97) #18 - %.pre24 = load ptr, ptr %3, align 8, !tbaa !34 + %.pre23 = load ptr, ptr %3, align 8, !tbaa !34 br label %35 35: ; preds = %safe_realloc_mul_2op_.exit.thread20, %34, %safe_realloc_mul_2op_.exit - %36 = phi ptr [ %30, %safe_realloc_mul_2op_.exit.thread20 ], [ %.pre24, %34 ], [ %32, %safe_realloc_mul_2op_.exit ] + %36 = phi ptr [ %30, %safe_realloc_mul_2op_.exit.thread20 ], [ %.pre23, %34 ], [ %32, %safe_realloc_mul_2op_.exit ] %37 = zext i32 %17 to i64 %38 = getelementptr inbounds nuw %struct.Operation, ptr %36, i64 %37 %39 = load i32, ptr %4, align 4, !tbaa !79 @@ -2857,11 +2855,11 @@ safe_realloc_mul_2op_.exit: ; preds = %23 %41 = zext i32 %40 to i64 %42 = mul nuw nsw i64 %41, 48 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 %38, i8 noundef 0, i64 noundef range(i64 0, 206158430161) %42, i1 noundef false) #18 - %.pre25 = load i32, ptr %18, align 8, !tbaa !33 + %.pre24 = load i32, ptr %18, align 8, !tbaa !33 br label %43 43: ; preds = %35, %16 - %44 = phi i32 [ %.pre25, %35 ], [ %19, %16 ] + %44 = phi i32 [ %.pre24, %35 ], [ %19, %16 ] %45 = load ptr, ptr %3, align 8, !tbaa !34 %46 = add i32 %44, 1 store i32 %46, ptr %18, align 8, !tbaa !33 @@ -2871,13 +2869,13 @@ safe_realloc_mul_2op_.exit: ; preds = %23 ret void } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #11 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #12 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #13 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: read) @@ -2911,10 +2909,10 @@ attributes #6 = { mustprogress nofree norecurse nounwind sspstrong willreturn uw attributes #7 = { mustprogress nofree norecurse nounwind sspstrong willreturn memory(argmem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nocallback nofree nounwind willreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #12 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #13 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #13 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #14 = { mustprogress nocallback nofree nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #15 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #16 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/bench/flac/optimized/replaygain_analysis.ll b/bench/flac/optimized/replaygain_analysis.ll index a886ea60b1a..01b6f12efa0 100644 --- a/bench/flac/optimized/replaygain_analysis.ll +++ b/bench/flac/optimized/replaygain_analysis.ll @@ -163,97 +163,112 @@ ReallocateWindowBuffer.exit.i: ; preds = %CreateGainFilter.ex br i1 %28, label %ResetSampleFrequency.exit.thread, label %29 29: ; preds = %ReallocateWindowBuffer.exit.i - %30 = load ptr, ptr @rstepbuf, align 8, !tbaa !21 - %31 = tail call ptr @realloc(ptr noundef %30, i64 noundef range(i64 0, 17179869181) %25) #17 - %32 = icmp eq ptr %31, null - %or.cond.i.i16.i = and i1 %27, %32 + %30 = load i32, ptr @sampleWindow, align 4, !tbaa !18 + %31 = load ptr, ptr @rstepbuf, align 8, !tbaa !21 + %32 = add i32 %30, 10 + %33 = zext i32 %32 to i64 + %34 = shl nuw nsw i64 %33, 2 + %35 = tail call ptr @realloc(ptr noundef %31, i64 noundef range(i64 0, 17179869181) %34) #17 + %36 = icmp ne i32 %32, 0 + %37 = icmp eq ptr %35, null + %or.cond.i.i16.i = and i1 %36, %37 br i1 %or.cond.i.i16.i, label %ReallocateWindowBuffer.exit17.thread.i, label %ReallocateWindowBuffer.exit17.i ReallocateWindowBuffer.exit17.thread.i: ; preds = %29 - tail call void @free(ptr noundef %30) #15 + tail call void @free(ptr noundef %31) #15 store ptr null, ptr @rstepbuf, align 8, !tbaa !21 br label %ResetSampleFrequency.exit.thread ReallocateWindowBuffer.exit17.i: ; preds = %29 - store ptr %31, ptr @rstepbuf, align 8, !tbaa !21 - br i1 %32, label %ResetSampleFrequency.exit.thread, label %33 - -33: ; preds = %ReallocateWindowBuffer.exit17.i - %34 = load ptr, ptr @loutbuf, align 8, !tbaa !21 - %35 = tail call ptr @realloc(ptr noundef %34, i64 noundef range(i64 0, 17179869181) %25) #17 - %36 = icmp eq ptr %35, null - %or.cond.i.i18.i = and i1 %27, %36 + store ptr %35, ptr @rstepbuf, align 8, !tbaa !21 + br i1 %37, label %ResetSampleFrequency.exit.thread, label %38 + +38: ; preds = %ReallocateWindowBuffer.exit17.i + %39 = load i32, ptr @sampleWindow, align 4, !tbaa !18 + %40 = load ptr, ptr @loutbuf, align 8, !tbaa !21 + %41 = add i32 %39, 10 + %42 = zext i32 %41 to i64 + %43 = shl nuw nsw i64 %42, 2 + %44 = tail call ptr @realloc(ptr noundef %40, i64 noundef range(i64 0, 17179869181) %43) #17 + %45 = icmp ne i32 %41, 0 + %46 = icmp eq ptr %44, null + %or.cond.i.i18.i = and i1 %45, %46 br i1 %or.cond.i.i18.i, label %ReallocateWindowBuffer.exit19.thread.i, label %ReallocateWindowBuffer.exit19.i -ReallocateWindowBuffer.exit19.thread.i: ; preds = %33 - tail call void @free(ptr noundef %34) #15 +ReallocateWindowBuffer.exit19.thread.i: ; preds = %38 + tail call void @free(ptr noundef %40) #15 store ptr null, ptr @loutbuf, align 8, !tbaa !21 br label %ResetSampleFrequency.exit.thread -ReallocateWindowBuffer.exit19.i: ; preds = %33 - store ptr %35, ptr @loutbuf, align 8, !tbaa !21 - br i1 %36, label %ResetSampleFrequency.exit.thread, label %37 - -37: ; preds = %ReallocateWindowBuffer.exit19.i - %38 = load ptr, ptr @routbuf, align 8, !tbaa !21 - %39 = tail call ptr @realloc(ptr noundef %38, i64 noundef range(i64 0, 17179869181) %25) #17 - %40 = icmp eq ptr %39, null - %or.cond.i.i20.i = and i1 %27, %40 +ReallocateWindowBuffer.exit19.i: ; preds = %38 + store ptr %44, ptr @loutbuf, align 8, !tbaa !21 + br i1 %46, label %ResetSampleFrequency.exit.thread, label %47 + +47: ; preds = %ReallocateWindowBuffer.exit19.i + %48 = load i32, ptr @sampleWindow, align 4, !tbaa !18 + %49 = load ptr, ptr @routbuf, align 8, !tbaa !21 + %50 = add i32 %48, 10 + %51 = zext i32 %50 to i64 + %52 = shl nuw nsw i64 %51, 2 + %53 = tail call ptr @realloc(ptr noundef %49, i64 noundef range(i64 0, 17179869181) %52) #17 + %54 = icmp ne i32 %50, 0 + %55 = icmp eq ptr %53, null + %or.cond.i.i20.i = and i1 %54, %55 br i1 %or.cond.i.i20.i, label %ReallocateWindowBuffer.exit21.thread.i, label %ReallocateWindowBuffer.exit21.i -ReallocateWindowBuffer.exit21.thread.i: ; preds = %37 - tail call void @free(ptr noundef %38) #15 +ReallocateWindowBuffer.exit21.thread.i: ; preds = %47 + tail call void @free(ptr noundef %49) #15 store ptr null, ptr @routbuf, align 8, !tbaa !21 br label %ResetSampleFrequency.exit.thread -ReallocateWindowBuffer.exit21.i: ; preds = %37 - store ptr %39, ptr @routbuf, align 8, !tbaa !21 - br i1 %40, label %ResetSampleFrequency.exit.thread, label %.preheader.i +ReallocateWindowBuffer.exit21.i: ; preds = %47 + store ptr %53, ptr @routbuf, align 8, !tbaa !21 + br i1 %55, label %ResetSampleFrequency.exit.thread, label %.preheader.i .preheader.i: ; preds = %ReallocateWindowBuffer.exit21.i - %41 = load ptr, ptr @rstepbuf, align 8, !tbaa !21 - %42 = load ptr, ptr @loutbuf, align 8, !tbaa !21 - %43 = load ptr, ptr @lstepbuf, align 8, !tbaa !21 - br label %44 - -44: ; preds = %44, %.preheader.i - %indvars.iv.i = phi i64 [ 0, %.preheader.i ], [ %indvars.iv.next.i, %44 ] - %45 = getelementptr inbounds nuw float, ptr %39, i64 %indvars.iv.i - store float 0.000000e+00, ptr %45, align 4, !tbaa !23 - %46 = getelementptr inbounds nuw float, ptr %41, i64 %indvars.iv.i - store float 0.000000e+00, ptr %46, align 4, !tbaa !23 - %47 = getelementptr inbounds nuw float, ptr @rinprebuf, i64 %indvars.iv.i - store float 0.000000e+00, ptr %47, align 4, !tbaa !23 - %48 = getelementptr inbounds nuw float, ptr %42, i64 %indvars.iv.i - store float 0.000000e+00, ptr %48, align 4, !tbaa !23 - %49 = getelementptr inbounds nuw float, ptr %43, i64 %indvars.iv.i - store float 0.000000e+00, ptr %49, align 4, !tbaa !23 - %50 = getelementptr inbounds nuw float, ptr @linprebuf, i64 %indvars.iv.i - store float 0.000000e+00, ptr %50, align 4, !tbaa !23 + %56 = load ptr, ptr @rstepbuf, align 8, !tbaa !21 + %57 = load ptr, ptr @loutbuf, align 8, !tbaa !21 + %58 = load ptr, ptr @lstepbuf, align 8, !tbaa !21 + br label %59 + +59: ; preds = %59, %.preheader.i + %indvars.iv.i = phi i64 [ 0, %.preheader.i ], [ %indvars.iv.next.i, %59 ] + %60 = getelementptr inbounds nuw float, ptr %53, i64 %indvars.iv.i + store float 0.000000e+00, ptr %60, align 4, !tbaa !23 + %61 = getelementptr inbounds nuw float, ptr %56, i64 %indvars.iv.i + store float 0.000000e+00, ptr %61, align 4, !tbaa !23 + %62 = getelementptr inbounds nuw float, ptr @rinprebuf, i64 %indvars.iv.i + store float 0.000000e+00, ptr %62, align 4, !tbaa !23 + %63 = getelementptr inbounds nuw float, ptr %57, i64 %indvars.iv.i + store float 0.000000e+00, ptr %63, align 4, !tbaa !23 + %64 = getelementptr inbounds nuw float, ptr %58, i64 %indvars.iv.i + store float 0.000000e+00, ptr %64, align 4, !tbaa !23 + %65 = getelementptr inbounds nuw float, ptr @linprebuf, i64 %indvars.iv.i + store float 0.000000e+00, ptr %65, align 4, !tbaa !23 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, 10 - br i1 %exitcond.not.i, label %51, label %44, !llvm.loop !25 + br i1 %exitcond.not.i, label %66, label %59, !llvm.loop !25 -51: ; preds = %44 +66: ; preds = %59 store double 0.000000e+00, ptr @lsum, align 8, !tbaa !26 store double 0.000000e+00, ptr @rsum, align 8, !tbaa !26 store i64 0, ptr @totsamp, align 8, !tbaa !17 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48000) @A, i8 noundef 0, i64 noundef 48000, i1 noundef false) #15 store ptr getelementptr inbounds nuw (i8, ptr @linprebuf, i64 40), ptr @linpre, align 8, !tbaa !21 store ptr getelementptr inbounds nuw (i8, ptr @rinprebuf, i64 40), ptr @rinpre, align 8, !tbaa !21 - %52 = getelementptr inbounds nuw i8, ptr %43, i64 40 - store ptr %52, ptr @lstep, align 8, !tbaa !21 - %53 = getelementptr inbounds nuw i8, ptr %41, i64 40 - store ptr %53, ptr @rstep, align 8, !tbaa !21 - %54 = getelementptr inbounds nuw i8, ptr %42, i64 40 - store ptr %54, ptr @lout, align 8, !tbaa !21 - %55 = getelementptr inbounds nuw i8, ptr %39, i64 40 - store ptr %55, ptr @rout, align 8, !tbaa !21 + %67 = getelementptr inbounds nuw i8, ptr %58, i64 40 + store ptr %67, ptr @lstep, align 8, !tbaa !21 + %68 = getelementptr inbounds nuw i8, ptr %56, i64 40 + store ptr %68, ptr @rstep, align 8, !tbaa !21 + %69 = getelementptr inbounds nuw i8, ptr %57, i64 40 + store ptr %69, ptr @lout, align 8, !tbaa !21 + %70 = getelementptr inbounds nuw i8, ptr %53, i64 40 + store ptr %70, ptr @rout, align 8, !tbaa !21 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48000) @B, i8 noundef 0, i64 noundef 48000, i1 noundef false) #15 br label %ResetSampleFrequency.exit.thread -ResetSampleFrequency.exit.thread: ; preds = %ReallocateWindowBuffer.exit21.thread.i, %ReallocateWindowBuffer.exit19.thread.i, %ReallocateWindowBuffer.exit17.thread.i, %ReallocateWindowBuffer.exit.thread.i, %CreateGainFilter.exit.thread.i, %ReallocateWindowBuffer.exit.i, %ReallocateWindowBuffer.exit17.i, %ReallocateWindowBuffer.exit19.i, %ReallocateWindowBuffer.exit21.i, %51 - %.0 = phi i32 [ 1, %51 ], [ 0, %ReallocateWindowBuffer.exit21.i ], [ 0, %ReallocateWindowBuffer.exit19.i ], [ 0, %ReallocateWindowBuffer.exit17.i ], [ 0, %ReallocateWindowBuffer.exit.i ], [ 0, %CreateGainFilter.exit.thread.i ], [ 0, %ReallocateWindowBuffer.exit.thread.i ], [ 0, %ReallocateWindowBuffer.exit17.thread.i ], [ 0, %ReallocateWindowBuffer.exit19.thread.i ], [ 0, %ReallocateWindowBuffer.exit21.thread.i ] +ResetSampleFrequency.exit.thread: ; preds = %ReallocateWindowBuffer.exit21.thread.i, %ReallocateWindowBuffer.exit19.thread.i, %ReallocateWindowBuffer.exit17.thread.i, %ReallocateWindowBuffer.exit.thread.i, %CreateGainFilter.exit.thread.i, %ReallocateWindowBuffer.exit.i, %ReallocateWindowBuffer.exit17.i, %ReallocateWindowBuffer.exit19.i, %ReallocateWindowBuffer.exit21.i, %66 + %.0 = phi i32 [ 1, %66 ], [ 0, %ReallocateWindowBuffer.exit21.i ], [ 0, %ReallocateWindowBuffer.exit19.i ], [ 0, %ReallocateWindowBuffer.exit17.i ], [ 0, %ReallocateWindowBuffer.exit.i ], [ 0, %CreateGainFilter.exit.thread.i ], [ 0, %ReallocateWindowBuffer.exit.thread.i ], [ 0, %ReallocateWindowBuffer.exit17.thread.i ], [ 0, %ReallocateWindowBuffer.exit19.thread.i ], [ 0, %ReallocateWindowBuffer.exit21.thread.i ] ret i32 %.0 } @@ -837,13 +852,13 @@ analyzeResult.exit: ; preds = %6, %20 ret float %.017.i } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #8 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #9 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #10 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) @@ -881,9 +896,9 @@ attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(errn attributes #5 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #6 = { nofree norecurse nosync nounwind sspstrong memory(readwrite, argmem: write, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { nofree norecurse nosync nounwind sspstrong memory(read, argmem: none, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #10 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #11 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #12 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #13 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/bench/fmt/optimized/chrono-test.ll b/bench/fmt/optimized/chrono-test.ll index 33c9cd6ecbd..56eb5ec17b9 100644 --- a/bench/fmt/optimized/chrono-test.ll +++ b/bench/fmt/optimized/chrono-test.ll @@ -79033,7 +79033,7 @@ _ZN3fmt3v116detail9allocatorIcE8allocateEm.exit: ; preds = %2 ret void } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #24 ; Function Attrs: nounwind @@ -146607,7 +146607,7 @@ define linkonce_odr hidden void @_ZN3fmt3v116detail13format_dragonENS1_8basic_fp 43: ; preds = %42 %44 = call noalias dereferenceable_or_null(192) ptr @malloc(i64 noundef 192) #39 %.not.i.i926 = icmp eq ptr %44, null - br i1 %.not.i.i926, label %.invoke1523, label %.noexc + br i1 %.not.i.i926, label %.invoke1520, label %.noexc .noexc: ; preds = %43 store ptr %44, ptr %6, align 8, !tbaa !3616 @@ -146650,9 +146650,9 @@ define linkonce_odr hidden void @_ZN3fmt3v116detail13format_dragonENS1_8basic_fp 61: ; preds = %._crit_edge.i %62 = add nuw nsw i64 %48, 1 %.not577 = icmp samesign ult i64 %39, %47 - br i1 %.not577, label %_ZN3fmt3v116detail6bigintlSEi.exit.thread1167, label %64 + br i1 %.not577, label %_ZN3fmt3v116detail6bigintlSEi.exit.thread1165, label %64 -_ZN3fmt3v116detail6bigintlSEi.exit.thread1167: ; preds = %61 +_ZN3fmt3v116detail6bigintlSEi.exit.thread1165: ; preds = %61 store i64 %62, ptr %12, align 8, !tbaa !3626 %63 = getelementptr inbounds nuw i32, ptr %46, i64 %48 store i32 %57, ptr %63, align 4, !tbaa !202 @@ -146663,26 +146663,26 @@ _ZN3fmt3v116detail6bigintlSEi.exit.thread1167: ; preds = %61 %66 = add nuw nsw i64 %65, %47 %67 = shl nuw nsw i64 %66, 2 %68 = call noalias ptr @malloc(i64 noundef %67) #39 - %.not.i.i1224 = icmp eq ptr %68, null - br i1 %.not.i.i1224, label %.invoke1523, label %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i + %.not.i.i1222 = icmp eq ptr %68, null + br i1 %.not.i.i1222, label %.invoke1520, label %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i _ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i: ; preds = %64 %69 = shl nuw nsw i64 %48, 2 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %68, ptr noundef nonnull align 4 dereferenceable(1) %46, i64 %69, i1 false) store ptr %68, ptr %6, align 8, !tbaa !3616 store i64 %66, ptr %10, align 8, !tbaa !3617 - %.not.i1225 = icmp eq ptr %46, %13 - br i1 %.not.i1225, label %_ZN3fmt3v116detail6bigintlSEi.exit, label %70 + %.not.i1223 = icmp eq ptr %46, %13 + br i1 %.not.i1223, label %_ZN3fmt3v116detail6bigintlSEi.exit, label %70 70: ; preds = %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i call void @free(ptr noundef nonnull %46) #34 %.pre.i.i.pre = load i64, ptr %12, align 8, !tbaa !3626 %.pre708.pre = load ptr, ptr %6, align 8, !tbaa !3616 - %.pre1341 = add i64 %.pre.i.i.pre, 1 + %.pre1339 = add i64 %.pre.i.i.pre, 1 br label %_ZN3fmt3v116detail6bigintlSEi.exit _ZN3fmt3v116detail6bigintlSEi.exit: ; preds = %70, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i - %.pre2.i.i.pre-phi = phi i64 [ %.pre1341, %70 ], [ %62, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i ] + %.pre2.i.i.pre-phi = phi i64 [ %.pre1339, %70 ], [ %62, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i ] %.pre708 = phi ptr [ %.pre708.pre, %70 ], [ %68, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i ] %.pre.i.i = phi i64 [ %.pre.i.i.pre, %70 ], [ %48, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i ] store i64 %.pre2.i.i.pre-phi, ptr %12, align 8, !tbaa !3626 @@ -146690,7 +146690,7 @@ _ZN3fmt3v116detail6bigintlSEi.exit: ; preds = %70, %_ZN3fmt3v116de store i32 %57, ptr %71, align 4, !tbaa !202 br label %_ZN3fmt3v116detail6bigintlSEi.exit.thread -_ZN3fmt3v116detail6bigintlSEi.exit.thread: ; preds = %45, %._crit_edge.i, %_ZN3fmt3v116detail6bigintlSEi.exit, %_ZN3fmt3v116detail6bigintlSEi.exit.thread1167 +_ZN3fmt3v116detail6bigintlSEi.exit.thread: ; preds = %45, %._crit_edge.i, %_ZN3fmt3v116detail6bigintlSEi.exit, %_ZN3fmt3v116detail6bigintlSEi.exit.thread1165 store i32 1, ptr %23, align 8, !tbaa !202 store i64 1, ptr %22, align 8, !tbaa !3626 %72 = lshr i32 %33, 5 @@ -146727,7 +146727,7 @@ _ZN3fmt3v116detail6bigintlSEi.exit139: ; preds = %.lr.ph.i128, %_ZN3f cleanup br label %.body -.loopexit.split-lp: ; preds = %.invoke1523, %_ZN3fmt3v116detail6bigintlSEi.exit159, %106, %_ZN3fmt3v116detail6bigintlSEi.exit263, %98, %_ZN3fmt3v1119basic_memory_bufferIjLm32ENS0_6detail9allocatorIjEEE6resizeEm.exit.thread.i, %_ZN3fmt3v1119basic_memory_bufferIjLm32ENS0_6detail9allocatorIjEEE6resizeEm.exit.thread.i183, %153, %203, %210, %228, %290, %297, %306 +.loopexit.split-lp: ; preds = %.invoke1520, %_ZN3fmt3v116detail6bigintlSEi.exit159, %106, %_ZN3fmt3v116detail6bigintlSEi.exit263, %98, %_ZN3fmt3v1119basic_memory_bufferIjLm32ENS0_6detail9allocatorIjEEE6resizeEm.exit.thread.i, %_ZN3fmt3v1119basic_memory_bufferIjLm32ENS0_6detail9allocatorIjEEE6resizeEm.exit.thread.i183, %153, %203, %210, %228, %290, %297, %306 %lpad.loopexit.split-lp = landingpad { ptr, i32 } cleanup br label %.body @@ -147161,7 +147161,7 @@ _ZN3fmt3v116detail6bufferIjE9push_backERKj.exit.i234: ; preds = %.noexc238, %227 241: ; preds = %240 %242 = call noalias dereferenceable_or_null(192) ptr @malloc(i64 noundef 192) #39 %.not.i.i930 = icmp eq ptr %242, null - br i1 %.not.i.i930, label %.invoke1523, label %243 + br i1 %.not.i.i930, label %.invoke1520, label %243 243: ; preds = %241 store ptr %242, ptr %6, align 8, !tbaa !3616 @@ -147201,38 +147201,38 @@ _ZN3fmt3v116detail6bufferIjE9push_backERKj.exit.i234: ; preds = %.noexc238, %227 256: ; preds = %254 %257 = lshr exact i64 %245, 1 %258 = add nuw nsw i64 %257, %245 - %.0.i1227 = call i64 @llvm.umax.i64(i64 %255, i64 %258) - %259 = shl i64 %.0.i1227, 2 + %.0.i1225 = call i64 @llvm.umax.i64(i64 %255, i64 %258) + %259 = shl i64 %.0.i1225, 2 %260 = call noalias ptr @malloc(i64 noundef %259) #39 - %.not.i.i1228 = icmp eq ptr %260, null - br i1 %.not.i.i1228, label %.invoke1523, label %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1229 + %.not.i.i1226 = icmp eq ptr %260, null + br i1 %.not.i.i1226, label %.invoke1520, label %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1227 -.invoke1523: ; preds = %256, %43, %241, %64 +.invoke1520: ; preds = %256, %43, %241, %64 %261 = call ptr @__cxa_allocate_exception(i64 8) #34 store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %261, align 8, !tbaa !24 invoke void @__cxa_throw(ptr nonnull %261, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #37 - to label %.cont1524 unwind label %.loopexit.split-lp + to label %.cont1521 unwind label %.loopexit.split-lp -.cont1524: ; preds = %.invoke1523 +.cont1521: ; preds = %.invoke1520 unreachable -_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1229: ; preds = %256 +_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1227: ; preds = %256 %262 = shl i64 %237, 2 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %260, ptr nonnull align 4 %244, i64 %262, i1 false) store ptr %260, ptr %6, align 8, !tbaa !3616 - store i64 %.0.i1227, ptr %10, align 8, !tbaa !3617 - %.not.i1230 = icmp eq ptr %244, %13 - br i1 %.not.i1230, label %.noexc262, label %263 + store i64 %.0.i1225, ptr %10, align 8, !tbaa !3617 + %.not.i1228 = icmp eq ptr %244, %13 + br i1 %.not.i1228, label %.noexc262, label %263 -263: ; preds = %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1229 +263: ; preds = %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1227 call void @free(ptr noundef nonnull %244) #34 %.pre.i.i260.pre = load i64, ptr %12, align 8, !tbaa !3626 %.pre.pre = load ptr, ptr %6, align 8, !tbaa !3616 br label %.noexc262 -.noexc262: ; preds = %263, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1229 - %.pre = phi ptr [ %.pre.pre, %263 ], [ %260, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1229 ] - %.pre.i.i260 = phi i64 [ %.pre.i.i260.pre, %263 ], [ %237, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1229 ] +.noexc262: ; preds = %263, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1227 + %.pre = phi ptr [ %.pre.pre, %263 ], [ %260, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1227 ] + %.pre.i.i260 = phi i64 [ %.pre.i.i260.pre, %263 ], [ %237, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1227 ] %.pre2.i.i261 = add i64 %.pre.i.i260, 1 br label %_ZN3fmt3v116detail6bufferIjE9push_backERKj.exit.i258 @@ -147243,11 +147243,10 @@ _ZN3fmt3v116detail6bufferIjE9push_backERKj.exit.i258: ; preds = %.noexc262, %254 store i64 %.pre-phi.i.i259, ptr %12, align 8, !tbaa !3626 %266 = getelementptr inbounds nuw i32, ptr %264, i64 %265 store i32 %250, ptr %266, align 4, !tbaa !202 - %.pre1036 = load i32, ptr %4, align 4, !tbaa !202 br label %_ZN3fmt3v116detail6bigintlSEi.exit263 _ZN3fmt3v116detail6bigintlSEi.exit263: ; preds = %_ZN3fmt3v116detail6bufferIjE9push_backERKj.exit.i258, %._crit_edge.i256 - %267 = phi i32 [ %.pre1036, %_ZN3fmt3v116detail6bufferIjE9push_backERKj.exit.i258 ], [ %104, %._crit_edge.i256 ] + %267 = load i32, ptr %4, align 4, !tbaa !202 invoke void @_ZN3fmt3v116detail6bigint12assign_pow10Ei(ptr noundef nonnull align 8 dereferenceable(172) %7, i32 noundef %267) to label %268 unwind label %.loopexit.split-lp @@ -246260,7 +246259,7 @@ attributes #20 = { mustprogress nounwind willreturn allockind("free") memory(arg attributes #21 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #22 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #23 = { inlinehint mustprogress noreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #24 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #24 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #25 = { mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } attributes #26 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #27 = { mustprogress noinline uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/freetype/optimized/ftsystem.ll b/bench/freetype/optimized/ftsystem.ll index 2739047f4a9..e643eb4cf11 100644 --- a/bench/freetype/optimized/ftsystem.ll +++ b/bench/freetype/optimized/ftsystem.ll @@ -14,13 +14,13 @@ define hidden range(i32 0, 82) i32 @FT_Stream_Open(ptr noundef captures(address_ br i1 %.not, label %47, label %4 4: ; preds = %2 - %5 = tail call i32 (ptr, i32, ...) @open(ptr noundef %1, i32 noundef 0) #15 + %5 = tail call i32 (ptr, i32, ...) @open(ptr noundef %1, i32 noundef 0) #16 %6 = icmp slt i32 %5, 0 br i1 %6, label %47, label %7 7: ; preds = %4 - %8 = tail call i32 (i32, i32, ...) @fcntl(i32 noundef %5, i32 noundef 2, i32 noundef 1) #15 - %9 = call i32 @fstat(i32 noundef %5, ptr noundef nonnull %3) #15 + %8 = tail call i32 (i32, i32, ...) @fcntl(i32 noundef %5, i32 noundef 2, i32 noundef 1) #16 + %9 = call i32 @fstat(i32 noundef %5, ptr noundef nonnull %3) #16 %10 = icmp slt i32 %9, 0 %11 = getelementptr inbounds nuw i8, ptr %3, i64 48 %12 = load i64, ptr %11, align 8 @@ -33,14 +33,14 @@ define hidden range(i32 0, 82) i32 @FT_Stream_Open(ptr noundef captures(address_ store i64 %12, ptr %15, align 8, !tbaa !3 %16 = getelementptr inbounds nuw i8, ptr %0, i64 16 store i64 0, ptr %16, align 8, !tbaa !11 - %17 = tail call ptr @mmap(ptr noundef null, i64 noundef %12, i32 noundef 1, i32 noundef 2, i32 noundef %5, i64 noundef 0) #15 + %17 = tail call ptr @mmap(ptr noundef null, i64 noundef %12, i32 noundef 1, i32 noundef 2, i32 noundef %5, i64 noundef 0) #16 store ptr %17, ptr %0, align 8, !tbaa !12 %.not55 = icmp eq ptr %17, inttoptr (i64 -1 to ptr) br i1 %.not55, label %18, label %.thread64 18: ; preds = %14 %19 = load i64, ptr %15, align 8, !tbaa !3 - %20 = tail call noalias noundef ptr @malloc(i64 noundef %19) #16 + %20 = tail call noalias noundef ptr @malloc(i64 noundef %19) #17 store ptr %20, ptr %0, align 8, !tbaa !12 %.not56 = icmp eq ptr %20, null br i1 %.not56, label %45, label %.preheader @@ -51,7 +51,7 @@ define hidden range(i32 0, 82) i32 @FT_Stream_Open(ptr noundef captures(address_ %22 = load ptr, ptr %0, align 8, !tbaa !12 %23 = getelementptr inbounds nuw i8, ptr %22, i64 %.047 %24 = sub i64 %21, %.047 - %25 = tail call i64 @read(i32 noundef %5, ptr noundef %23, i64 noundef %24) #15 + %25 = tail call i64 @read(i32 noundef %5, ptr noundef %23, i64 noundef %24) #16 %26 = icmp slt i64 %25, 1 br i1 %26, label %27, label %33 @@ -60,7 +60,7 @@ define hidden range(i32 0, 82) i32 @FT_Stream_Open(ptr noundef captures(address_ br i1 %28, label %29, label %43 29: ; preds = %27 - %30 = tail call ptr @__errno_location() #17 + %30 = tail call ptr @__errno_location() #18 %31 = load i32, ptr %30, align 4, !tbaa !13 %32 = icmp eq i32 %31, 4 br i1 %32, label %35, label %43 @@ -79,7 +79,7 @@ define hidden range(i32 0, 82) i32 @FT_Stream_Open(ptr noundef captures(address_ %ft_close_stream_by_free.sink = phi ptr [ @ft_close_stream_by_munmap, %14 ], [ @ft_close_stream_by_free, %35 ] %37 = getelementptr inbounds nuw i8, ptr %0, i64 48 store ptr %ft_close_stream_by_free.sink, ptr %37, align 8, !tbaa !17 - %38 = tail call i32 @close(i32 noundef %5) #15 + %38 = tail call i32 @close(i32 noundef %5) #16 %39 = load ptr, ptr %0, align 8, !tbaa !12 %40 = getelementptr inbounds nuw i8, ptr %0, i64 24 store ptr %39, ptr %40, align 8, !tbaa !18 @@ -91,11 +91,11 @@ define hidden range(i32 0, 82) i32 @FT_Stream_Open(ptr noundef captures(address_ 43: ; preds = %27, %29 %44 = load ptr, ptr %0, align 8, !tbaa !12 - tail call void @free(ptr noundef %44) #15 + tail call void @free(ptr noundef %44) #16 br label %45 45: ; preds = %18, %7, %43 - %46 = tail call i32 @close(i32 noundef %5) #15 + %46 = tail call i32 @close(i32 noundef %5) #16 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) br label %47 @@ -122,15 +122,15 @@ define internal void @ft_close_stream_by_munmap(ptr noundef captures(none) initi %3 = load ptr, ptr %2, align 8, !tbaa !18 %4 = getelementptr inbounds nuw i8, ptr %0, i64 8 %5 = load i64, ptr %4, align 8, !tbaa !3 - %6 = tail call i32 @munmap(ptr noundef %3, i64 noundef %5) #15 + %6 = tail call i32 @munmap(ptr noundef %3, i64 noundef %5) #16 store ptr null, ptr %2, align 8, !tbaa !18 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) ret void } -; Function Attrs: mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite) uwtable +; Function Attrs: mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite, errnomem: write) uwtable define internal noalias noundef ptr @ft_alloc(ptr readnone captures(none) %0, i64 noundef %1) #5 { - %3 = tail call noalias ptr @malloc(i64 noundef %1) #16 + %3 = tail call noalias ptr @malloc(i64 noundef %1) #17 ret ptr %3 } @@ -144,7 +144,7 @@ declare ptr @__errno_location() local_unnamed_addr #6 define internal void @ft_close_stream_by_free(ptr noundef captures(none) initializes((0, 16)) %0) #7 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 24 %3 = load ptr, ptr %2, align 8, !tbaa !18 - tail call void @free(ptr noundef %3) #15 + tail call void @free(ptr noundef %3) #16 store ptr null, ptr %2, align 8, !tbaa !18 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) ret void @@ -154,13 +154,13 @@ declare i32 @close(i32 noundef) local_unnamed_addr #2 ; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable define internal void @ft_free(ptr readnone captures(none) %0, ptr noundef captures(none) %1) #8 { - tail call void @free(ptr noundef %1) #15 + tail call void @free(ptr noundef %1) #16 ret void } ; Function Attrs: mustprogress nofree nounwind willreturn memory(write, argmem: none, inaccessiblemem: readwrite) uwtable define hidden noalias noundef ptr @FT_New_Memory() local_unnamed_addr #9 { - %1 = tail call noalias dereferenceable_or_null(32) ptr @malloc(i64 noundef 32) #16 + %1 = tail call noalias dereferenceable_or_null(32) ptr @malloc(i64 noundef 32) #17 %.not = icmp eq ptr %1, null br i1 %.not, label %6, label %2 @@ -178,12 +178,12 @@ define hidden noalias noundef ptr @FT_New_Memory() local_unnamed_addr #9 { ret ptr %1 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #10 -; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable -define internal noalias noundef ptr @ft_realloc(ptr readnone captures(none) %0, i64 %1, i64 noundef %2, ptr noundef captures(none) %3) #8 { - %5 = tail call ptr @realloc(ptr noundef %3, i64 noundef %2) #18 +; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable +define internal noalias noundef ptr @ft_realloc(ptr readnone captures(none) %0, i64 %1, i64 noundef %2, ptr noundef captures(none) %3) #11 { + %5 = tail call ptr @realloc(ptr noundef %3, i64 noundef %2) #19 ret ptr %5 } @@ -191,7 +191,7 @@ define internal noalias noundef ptr @ft_realloc(ptr readnone captures(none) %0, define hidden void @FT_Done_Memory(ptr noundef %0) local_unnamed_addr #0 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 16 %3 = load ptr, ptr %2, align 8, !tbaa !24 - tail call void %3(ptr noundef %0, ptr noundef %0) #15 + tail call void %3(ptr noundef %0, ptr noundef %0) #16 ret void } @@ -199,39 +199,40 @@ define hidden void @FT_Done_Memory(ptr noundef %0) local_unnamed_addr #0 { declare i32 @munmap(ptr noundef, i64 noundef) local_unnamed_addr #4 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) -declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #11 +declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #12 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) -declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #12 +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) +declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #13 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(ptr captures(none)) #13 +declare void @llvm.lifetime.start.p0(ptr captures(none)) #14 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(ptr captures(none)) #13 +declare void @llvm.lifetime.end.p0(ptr captures(none)) #14 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #14 +declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #15 attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nofree "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite, errnomem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nounwind willreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nofree nounwind willreturn memory(write, argmem: none, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #14 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #15 = { nounwind } -attributes #16 = { nounwind allocsize(0) } -attributes #17 = { nounwind willreturn memory(none) } -attributes #18 = { nounwind allocsize(1) } +attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #12 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #13 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #14 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +attributes #15 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #16 = { nounwind } +attributes #17 = { nounwind allocsize(0) } +attributes #18 = { nounwind willreturn memory(none) } +attributes #19 = { nounwind allocsize(1) } !llvm.module.flags = !{!0, !1, !2} diff --git a/bench/git/optimized/submodule--helper.ll b/bench/git/optimized/submodule--helper.ll index eec1bb7ae6c..1b1b2a6352d 100644 --- a/bench/git/optimized/submodule--helper.ll +++ b/bench/git/optimized/submodule--helper.ll @@ -9356,9 +9356,9 @@ define internal void @submodule_summary_callback(ptr noundef readonly captures(n %8 = getelementptr inbounds nuw i8, ptr %2, i64 8 br label %9 -9: ; preds = %.lr.ph, %55 - %10 = phi i32 [ %5, %.lr.ph ], [ %56, %55 ] - %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %55 ] +9: ; preds = %.lr.ph, %61 + %10 = phi i32 [ %5, %.lr.ph ], [ %62, %61 ] + %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %61 ] %11 = load ptr, ptr %0, align 8, !tbaa !301 %12 = getelementptr inbounds nuw ptr, ptr %11, i64 %indvars.iv %13 = load ptr, ptr %12, align 8, !tbaa !302 @@ -9369,87 +9369,92 @@ define internal void @submodule_summary_callback(ptr noundef readonly captures(n %18 = icmp eq i16 %17, -8192 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %13, i64 8 %.pre = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !311 - %.phi.trans.insert40 = getelementptr inbounds nuw i8, ptr %.pre, i64 80 - %.pre41 = load i16, ptr %.phi.trans.insert40, align 8, !tbaa !308 - %19 = and i16 %.pre41, -4096 - %20 = icmp eq i16 %19, -8192 - %or.cond = select i1 %18, i1 true, i1 %20 - br i1 %or.cond, label %._crit_edge39, label %55 - -._crit_edge39: ; preds = %9 - %21 = tail call noalias dereferenceable_or_null(96) ptr @malloc(i64 noundef 96) #25 - %22 = zext i16 %16 to i32 - store i32 %22, ptr %21, align 8, !tbaa !312 - %23 = getelementptr inbounds nuw i8, ptr %13, i64 8 - %24 = zext i16 %.pre41 to i32 - %25 = getelementptr inbounds nuw i8, ptr %21, i64 4 - store i32 %24, ptr %25, align 4, !tbaa !313 - %26 = getelementptr inbounds nuw i8, ptr %21, i64 8 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(36) %26, ptr noundef nonnull align 8 dereferenceable(36) %14, i64 36, i1 false), !tbaa.struct !314 - %27 = getelementptr inbounds nuw i8, ptr %21, i64 44 - %28 = load ptr, ptr %23, align 8, !tbaa !311 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %27, ptr noundef nonnull align 8 dereferenceable(36) %28, i64 36, i1 false), !tbaa.struct !314 - %29 = getelementptr inbounds nuw i8, ptr %13, i64 18 - %30 = load i8, ptr %29, align 2, !tbaa !315 - %31 = getelementptr inbounds nuw i8, ptr %21, i64 80 - store i8 %30, ptr %31, align 8, !tbaa !241 - %32 = load ptr, ptr %13, align 8, !tbaa !304 - %33 = getelementptr inbounds nuw i8, ptr %32, i64 40 - %34 = load ptr, ptr %33, align 8, !tbaa !316 - %35 = tail call ptr @xstrdup(ptr noundef %34) #20 - %36 = getelementptr inbounds nuw i8, ptr %21, i64 88 - store ptr %35, ptr %36, align 8, !tbaa !243 - %37 = load i32, ptr %7, align 4, !tbaa !235 - %38 = load i32, ptr %8, align 8, !tbaa !317 - %.not = icmp slt i32 %37, %38 - br i1 %.not, label %._crit_edge42, label %39 - -._crit_edge42: ; preds = %._crit_edge39 - %.pre43 = load ptr, ptr %2, align 8, !tbaa !238 - br label %49 + br i1 %18, label %._crit_edge39, label %19 + +19: ; preds = %9 + %20 = getelementptr inbounds nuw i8, ptr %.pre, i64 80 + %21 = load i16, ptr %20, align 8, !tbaa !308 + %22 = and i16 %21, -4096 + %23 = icmp eq i16 %22, -8192 + br i1 %23, label %._crit_edge39, label %61 + +._crit_edge39: ; preds = %9, %19 + %24 = tail call noalias dereferenceable_or_null(96) ptr @malloc(i64 noundef 96) #25 + %25 = load i16, ptr %15, align 8, !tbaa !308 + %26 = zext i16 %25 to i32 + store i32 %26, ptr %24, align 8, !tbaa !312 + %27 = getelementptr inbounds nuw i8, ptr %13, i64 8 + %28 = getelementptr inbounds nuw i8, ptr %.pre, i64 80 + %29 = load i16, ptr %28, align 8, !tbaa !308 + %30 = zext i16 %29 to i32 + %31 = getelementptr inbounds nuw i8, ptr %24, i64 4 + store i32 %30, ptr %31, align 4, !tbaa !313 + %32 = getelementptr inbounds nuw i8, ptr %24, i64 8 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(36) %32, ptr noundef nonnull align 8 dereferenceable(36) %14, i64 36, i1 false), !tbaa.struct !314 + %33 = getelementptr inbounds nuw i8, ptr %24, i64 44 + %34 = load ptr, ptr %27, align 8, !tbaa !311 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %33, ptr noundef nonnull align 8 dereferenceable(36) %34, i64 36, i1 false), !tbaa.struct !314 + %35 = getelementptr inbounds nuw i8, ptr %13, i64 18 + %36 = load i8, ptr %35, align 2, !tbaa !315 + %37 = getelementptr inbounds nuw i8, ptr %24, i64 80 + store i8 %36, ptr %37, align 8, !tbaa !241 + %38 = load ptr, ptr %13, align 8, !tbaa !304 + %39 = getelementptr inbounds nuw i8, ptr %38, i64 40 + %40 = load ptr, ptr %39, align 8, !tbaa !316 + %41 = tail call ptr @xstrdup(ptr noundef %40) #20 + %42 = getelementptr inbounds nuw i8, ptr %24, i64 88 + store ptr %41, ptr %42, align 8, !tbaa !243 + %43 = load i32, ptr %7, align 4, !tbaa !235 + %44 = load i32, ptr %8, align 8, !tbaa !317 + %.not = icmp slt i32 %43, %44 + br i1 %.not, label %._crit_edge40, label %45 + +._crit_edge40: ; preds = %._crit_edge39 + %.pre41 = load ptr, ptr %2, align 8, !tbaa !238 + br label %55 -39: ; preds = %._crit_edge39 - %40 = add nsw i32 %37, 1 - %41 = mul i32 %38, 3 - %42 = add i32 %41, 48 - %43 = sdiv i32 %42, 2 - %. = tail call i32 @llvm.smax.i32(i32 %43, i32 %40) +45: ; preds = %._crit_edge39 + %46 = add nsw i32 %43, 1 + %47 = mul i32 %44, 3 + %48 = add i32 %47, 48 + %49 = sdiv i32 %48, 2 + %. = tail call i32 @llvm.smax.i32(i32 %49, i32 %46) store i32 %., ptr %8, align 8, !tbaa !317 - %44 = sext i32 %. to i64 + %50 = sext i32 %. to i64 %mul.ov.i = icmp slt i32 %., 0 - br i1 %mul.ov.i, label %45, label %st_mult.exit + br i1 %mul.ov.i, label %51, label %st_mult.exit -45: ; preds = %39 - tail call void (ptr, ...) @die(ptr noundef nonnull @.str.168, i64 noundef 8, i64 noundef range(i64 -2147483648, 2147483648) %44) #21 +51: ; preds = %45 + tail call void (ptr, ...) @die(ptr noundef nonnull @.str.168, i64 noundef 8, i64 noundef range(i64 -2147483648, 2147483648) %50) #21 unreachable -st_mult.exit: ; preds = %39 - %46 = load ptr, ptr %2, align 8, !tbaa !238 - %47 = shl nuw nsw i64 %44, 3 - %48 = tail call ptr @xrealloc(ptr noundef %46, i64 noundef %47) #20 - store ptr %48, ptr %2, align 8, !tbaa !238 - %.pre44 = load i32, ptr %7, align 4, !tbaa !235 - br label %49 - -49: ; preds = %._crit_edge42, %st_mult.exit - %50 = phi i32 [ %37, %._crit_edge42 ], [ %.pre44, %st_mult.exit ] - %51 = phi ptr [ %.pre43, %._crit_edge42 ], [ %48, %st_mult.exit ] - %52 = add nsw i32 %50, 1 - store i32 %52, ptr %7, align 4, !tbaa !235 - %53 = sext i32 %50 to i64 - %54 = getelementptr inbounds ptr, ptr %51, i64 %53 - store ptr %21, ptr %54, align 8, !tbaa !239 - %.pre45 = load i32, ptr %4, align 4, !tbaa !298 +st_mult.exit: ; preds = %45 + %52 = load ptr, ptr %2, align 8, !tbaa !238 + %53 = shl nuw nsw i64 %50, 3 + %54 = tail call ptr @xrealloc(ptr noundef %52, i64 noundef %53) #20 + store ptr %54, ptr %2, align 8, !tbaa !238 + %.pre42 = load i32, ptr %7, align 4, !tbaa !235 br label %55 -55: ; preds = %9, %49 - %56 = phi i32 [ %.pre45, %49 ], [ %10, %9 ] +55: ; preds = %._crit_edge40, %st_mult.exit + %56 = phi i32 [ %43, %._crit_edge40 ], [ %.pre42, %st_mult.exit ] + %57 = phi ptr [ %.pre41, %._crit_edge40 ], [ %54, %st_mult.exit ] + %58 = add nsw i32 %56, 1 + store i32 %58, ptr %7, align 4, !tbaa !235 + %59 = sext i32 %56 to i64 + %60 = getelementptr inbounds ptr, ptr %57, i64 %59 + store ptr %24, ptr %60, align 8, !tbaa !239 + %.pre43 = load i32, ptr %4, align 4, !tbaa !298 + br label %61 + +61: ; preds = %19, %55 + %62 = phi i32 [ %10, %19 ], [ %.pre43, %55 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %57 = sext i32 %56 to i64 - %58 = icmp slt i64 %indvars.iv.next, %57 - br i1 %58, label %9, label %._crit_edge, !llvm.loop !318 + %63 = sext i32 %62 to i64 + %64 = icmp slt i64 %indvars.iv.next, %63 + br i1 %64, label %9, label %._crit_edge, !llvm.loop !318 -._crit_edge: ; preds = %55, %3 +._crit_edge: ; preds = %61, %3 ret void } @@ -9460,7 +9465,7 @@ declare void @perror(ptr noundef readonly captures(none)) local_unnamed_addr #8 declare void @run_diff_index(ptr noundef, i32 noundef) local_unnamed_addr #3 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #12 ; Function Attrs: nounwind uwtable @@ -9987,7 +9992,7 @@ attributes #8 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buf attributes #9 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #10 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #11 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #12 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #13 = { nofree "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #14 = { mustprogress nocallback nofree nounwind willreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #15 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } diff --git a/bench/graphviz/optimized/cvt.ll b/bench/graphviz/optimized/cvt.ll index 1658121ec29..8287059aea0 100644 --- a/bench/graphviz/optimized/cvt.ll +++ b/bench/graphviz/optimized/cvt.ll @@ -159,13 +159,13 @@ define noundef ptr @Pobsopen(ptr noundef readonly captures(none) %0, i32 noundef ret ptr %.068 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #2 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #3 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) @@ -253,41 +253,43 @@ gv_calloc.exit: ; preds = %21 store double %4, ptr %29, align 8, !tbaa !27 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %29, i64 8 store double %5, ptr %.sroa.4.0..sroa_idx, align 8, !tbaa !27 - %30 = sext i32 %13 to i64 + %30 = load i32, ptr %12, align 4, !tbaa !22 + %31 = sext i32 %30 to i64 + %32 = add nsw i32 %30, 1 %.049 = add nsw i64 %.046, -1 - %.1.in50 = getelementptr inbounds i32, ptr %11, i64 %30 + %.1.in50 = getelementptr inbounds i32, ptr %11, i64 %31 %.151 = load i32, ptr %.1.in50, align 4, !tbaa !24 - %.not4852 = icmp eq i32 %.151, %14 + %.not4852 = icmp eq i32 %.151, %32 br i1 %.not4852, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %gv_calloc.exit - %31 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %32 = load ptr, ptr %31, align 8, !tbaa !14 - br label %33 - -33: ; preds = %.lr.ph, %33 - %.154 = phi i32 [ %.151, %.lr.ph ], [ %.1, %33 ] - %.053 = phi i64 [ %.049, %.lr.ph ], [ %.0, %33 ] - %34 = getelementptr inbounds nuw %struct.Pxy_t, ptr %23, i64 %.053 - %35 = sext i32 %.154 to i64 - %36 = getelementptr inbounds %struct.Pxy_t, ptr %32, i64 %35 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 8 dereferenceable(16) %36, i64 16, i1 false), !tbaa.struct !26 + %33 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %34 = load ptr, ptr %33, align 8, !tbaa !14 + br label %35 + +35: ; preds = %.lr.ph, %35 + %.154 = phi i32 [ %.151, %.lr.ph ], [ %.1, %35 ] + %.053 = phi i64 [ %.049, %.lr.ph ], [ %.0, %35 ] + %36 = getelementptr inbounds nuw %struct.Pxy_t, ptr %23, i64 %.053 + %37 = sext i32 %.154 to i64 + %38 = getelementptr inbounds %struct.Pxy_t, ptr %34, i64 %37 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 8 dereferenceable(16) %38, i64 16, i1 false), !tbaa.struct !26 %.0 = add i64 %.053, -1 - %.1.in = getelementptr inbounds i32, ptr %11, i64 %35 + %.1.in = getelementptr inbounds i32, ptr %11, i64 %37 %.1 = load i32, ptr %.1.in, align 4, !tbaa !24 - %.not48 = icmp eq i32 %.1, %14 - br i1 %.not48, label %._crit_edge, label %33, !llvm.loop !37 - -._crit_edge: ; preds = %33, %gv_calloc.exit - %.0.lcssa = phi i64 [ %.049, %gv_calloc.exit ], [ %.0, %33 ] - %37 = getelementptr inbounds nuw %struct.Pxy_t, ptr %23, i64 %.0.lcssa - store double %1, ptr %37, align 8, !tbaa !27 - %.sroa.443.0..sroa_idx = getelementptr inbounds nuw i8, ptr %37, i64 8 + %.not48 = icmp eq i32 %.1, %32 + br i1 %.not48, label %._crit_edge, label %35, !llvm.loop !37 + +._crit_edge: ; preds = %35, %gv_calloc.exit + %.0.lcssa = phi i64 [ %.049, %gv_calloc.exit ], [ %.0, %35 ] + %39 = getelementptr inbounds nuw %struct.Pxy_t, ptr %23, i64 %.0.lcssa + store double %1, ptr %39, align 8, !tbaa !27 + %.sroa.443.0..sroa_idx = getelementptr inbounds nuw i8, ptr %39, i64 8 store double %2, ptr %.sroa.443.0..sroa_idx, align 8, !tbaa !27 tail call void @free(ptr noundef %9) #11 tail call void @free(ptr noundef %10) #11 - %38 = getelementptr inbounds nuw i8, ptr %7, i64 8 - store i64 %16, ptr %38, align 8, !tbaa !8 + %40 = getelementptr inbounds nuw i8, ptr %7, i64 8 + store i64 %16, ptr %40, align 8, !tbaa !8 store ptr %23, ptr %7, align 8, !tbaa !25 tail call void @free(ptr noundef nonnull %11) #11 ret void @@ -310,9 +312,9 @@ define internal fastcc void @graphviz_exit() unnamed_addr #8 { declare void @exit(i32 noundef) local_unnamed_addr #9 attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #1 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nounwind willreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/graphviz/optimized/gvpack.ll b/bench/graphviz/optimized/gvpack.ll index 429c54f3571..84518b7b2da 100644 --- a/bench/graphviz/optimized/gvpack.ll +++ b/bench/graphviz/optimized/gvpack.ll @@ -3102,33 +3102,34 @@ define internal fastcc void @_ZL16cloneClusterTreeP8Agraph_sS0_(ptr noundef read _ZL9gv_callocmm.exit: ; preds = %22 %30 = getelementptr inbounds nuw i8, ptr %14, i64 240 store ptr %24, ptr %30, align 8, !tbaa !128 - %.not1820 = icmp slt i32 %16, 1 + %31 = load i32, ptr %11, align 4, !tbaa !85 + %.not1820 = icmp slt i32 %31, 1 br i1 %.not1820, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %_ZL9gv_callocmm.exit, %.lr.ph %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 1, %_ZL9gv_callocmm.exit ] - %31 = phi ptr [ %45, %.lr.ph ], [ %10, %_ZL9gv_callocmm.exit ] - %32 = getelementptr inbounds nuw i8, ptr %31, i64 240 - %33 = load ptr, ptr %32, align 8, !tbaa !128 - %34 = getelementptr inbounds nuw ptr, ptr %33, i64 %indvars.iv - %35 = load ptr, ptr %34, align 8, !tbaa !65 - %36 = getelementptr inbounds nuw i8, ptr %35, i64 16 - %37 = load ptr, ptr %36, align 8, !tbaa !81 - %38 = getelementptr inbounds nuw i8, ptr %37, i64 160 - %39 = load ptr, ptr %38, align 8, !tbaa !129 - %40 = load ptr, ptr %4, align 8, !tbaa !81 - %41 = getelementptr inbounds nuw i8, ptr %40, i64 240 - %42 = load ptr, ptr %41, align 8, !tbaa !128 - %43 = getelementptr inbounds nuw ptr, ptr %42, i64 %indvars.iv - store ptr %39, ptr %43, align 8, !tbaa !65 - %44 = load ptr, ptr %34, align 8, !tbaa !65 - tail call fastcc void @_ZL16cloneClusterTreeP8Agraph_sS0_(ptr noundef %44, ptr noundef %39) + %32 = phi ptr [ %46, %.lr.ph ], [ %10, %_ZL9gv_callocmm.exit ] + %33 = getelementptr inbounds nuw i8, ptr %32, i64 240 + %34 = load ptr, ptr %33, align 8, !tbaa !128 + %35 = getelementptr inbounds nuw ptr, ptr %34, i64 %indvars.iv + %36 = load ptr, ptr %35, align 8, !tbaa !65 + %37 = getelementptr inbounds nuw i8, ptr %36, i64 16 + %38 = load ptr, ptr %37, align 8, !tbaa !81 + %39 = getelementptr inbounds nuw i8, ptr %38, i64 160 + %40 = load ptr, ptr %39, align 8, !tbaa !129 + %41 = load ptr, ptr %4, align 8, !tbaa !81 + %42 = getelementptr inbounds nuw i8, ptr %41, i64 240 + %43 = load ptr, ptr %42, align 8, !tbaa !128 + %44 = getelementptr inbounds nuw ptr, ptr %43, i64 %indvars.iv + store ptr %40, ptr %44, align 8, !tbaa !65 + %45 = load ptr, ptr %35, align 8, !tbaa !65 + tail call fastcc void @_ZL16cloneClusterTreeP8Agraph_sS0_(ptr noundef %45, ptr noundef %40) %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %45 = load ptr, ptr %3, align 8, !tbaa !81 - %46 = getelementptr inbounds nuw i8, ptr %45, i64 236 - %47 = load i32, ptr %46, align 4, !tbaa !85 - %48 = sext i32 %47 to i64 - %.not18.not = icmp slt i64 %indvars.iv, %48 + %46 = load ptr, ptr %3, align 8, !tbaa !81 + %47 = getelementptr inbounds nuw i8, ptr %46, i64 236 + %48 = load i32, ptr %47, align 4, !tbaa !85 + %49 = sext i32 %48 to i64 + %.not18.not = icmp slt i64 %indvars.iv, %49 br i1 %.not18.not, label %.lr.ph, label %.loopexit, !llvm.loop !174 .loopexit: ; preds = %.lr.ph, %_ZL9gv_callocmm.exit, %2 @@ -4321,7 +4322,7 @@ declare ptr @agedge(ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noun declare ptr @agattr_html(ptr noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #0 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #23 ; Function Attrs: mustprogress uwtable @@ -4418,7 +4419,7 @@ attributes #19 = { mustprogress nofree nounwind uwtable "min-legal-vector-width" attributes #20 = { inlinehint mustprogress norecurse nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #21 = { mustprogress nofree nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #22 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #23 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #23 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #24 = { uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #25 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #26 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } diff --git a/bench/hdf5/optimized/H5Rint.ll b/bench/hdf5/optimized/H5Rint.ll index f85aec5e575..56565bf5f25 100644 --- a/bench/hdf5/optimized/H5Rint.ll +++ b/bench/hdf5/optimized/H5Rint.ll @@ -578,7 +578,7 @@ define range(i32 -1, 1) i32 @H5R__create_attr(ptr noundef readonly captures(none %9 = trunc nuw i8 %8 to i1 %10 = xor i1 %9, true %11 = select i1 %7, i1 true, i1 %10 - br i1 %11, label %12, label %46, !prof !9 + br i1 %11, label %12, label %54, !prof !9 12: ; preds = %4 %13 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %2) #16 @@ -599,7 +599,7 @@ define range(i32 -1, 1) i32 @H5R__create_attr(ptr noundef readonly captures(none %23 = getelementptr inbounds nuw i8, ptr %3, i64 24 store ptr %22, ptr %23, align 8, !tbaa !10 %24 = icmp eq ptr %22, null - br i1 %24, label %25, label %H5R__set_obj_token.exit + br i1 %24, label %25, label %29 25: ; preds = %20 %26 = load i64, ptr @H5E_REFERENCE_g, align 8, !tbaa !17 @@ -607,41 +607,53 @@ define range(i32 -1, 1) i32 @H5R__create_attr(ptr noundef readonly captures(none %28 = tail call i32 (ptr, ptr, i32, i64, i64, ptr, ...) @H5E_printf_stack(ptr noundef nonnull @.str, ptr noundef nonnull @__func__.H5R__create_attr, i32 noundef 286, i64 noundef %26, i64 noundef %27, ptr noundef nonnull @.str.5) #15 br label %.critedge -H5R__set_obj_token.exit: ; preds = %20 - %29 = getelementptr inbounds nuw i8, ptr %3, i64 32 - store i64 -1, ptr %29, align 8, !tbaa !11 - %30 = getelementptr inbounds nuw i8, ptr %3, i64 44 - store i8 4, ptr %30, align 4, !tbaa !15 +29: ; preds = %20 + %30 = getelementptr inbounds nuw i8, ptr %3, i64 32 + store i64 -1, ptr %30, align 8, !tbaa !11 + %31 = getelementptr inbounds nuw i8, ptr %3, i64 44 + store i8 4, ptr %31, align 4, !tbaa !15 + %32 = load i8, ptr @H5R_init_g, align 1, !tbaa !3, !range !7, !noundef !8 + %33 = trunc nuw i8 %32 to i1 + %34 = load i8, ptr @H5_libterm_g, align 1, !range !7 + %35 = trunc nuw i8 %34 to i1 + %36 = xor i1 %35, true + %37 = select i1 %33, i1 true, i1 %36 + br i1 %37, label %38, label %H5R__set_obj_token.exit, !prof !9 + +38: ; preds = %29 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %3, ptr readonly align 1 %0, i64 %1, i1 false) - %31 = trunc i64 %1 to i8 - %32 = getelementptr inbounds nuw i8, ptr %3, i64 45 - store i8 %31, ptr %32, align 1, !tbaa !16 - %33 = call i32 @H5R__encode(ptr noundef null, ptr noundef nonnull %3, ptr noundef null, ptr noundef nonnull %5, i32 noundef 0) - %34 = icmp slt i32 %33, 0 - br i1 %34, label %35, label %39 - -35: ; preds = %H5R__set_obj_token.exit - %36 = load i64, ptr @H5E_REFERENCE_g, align 8, !tbaa !17 - %37 = load i64, ptr @H5E_CANTENCODE_g, align 8, !tbaa !17 - %38 = tail call i32 (ptr, ptr, i32, i64, i64, ptr, ...) @H5E_printf_stack(ptr noundef nonnull @.str, ptr noundef nonnull @__func__.H5R__create_attr, i32 noundef 295, i64 noundef %36, i64 noundef %37, ptr noundef nonnull @.str.2) #15 - br label %.critedge + %39 = trunc i64 %1 to i8 + %40 = getelementptr inbounds nuw i8, ptr %3, i64 45 + store i8 %39, ptr %40, align 1, !tbaa !16 + br label %H5R__set_obj_token.exit -39: ; preds = %H5R__set_obj_token.exit - %40 = load i64, ptr %5, align 8, !tbaa !17 - %41 = trunc i64 %40 to i32 - %42 = getelementptr inbounds nuw i8, ptr %3, i64 40 - store i32 %41, ptr %42, align 8, !tbaa !18 - br label %46 +H5R__set_obj_token.exit: ; preds = %29, %38 + %41 = call i32 @H5R__encode(ptr noundef null, ptr noundef nonnull %3, ptr noundef null, ptr noundef nonnull %5, i32 noundef 0) + %42 = icmp slt i32 %41, 0 + br i1 %42, label %43, label %47 -.critedge: ; preds = %35, %25, %15 - %43 = getelementptr inbounds nuw i8, ptr %3, i64 24 - %44 = load ptr, ptr %43, align 8, !tbaa !10 - %45 = tail call ptr @H5MM_xfree(ptr noundef %44) #15 - store ptr null, ptr %43, align 8, !tbaa !10 - br label %46 +43: ; preds = %H5R__set_obj_token.exit + %44 = load i64, ptr @H5E_REFERENCE_g, align 8, !tbaa !17 + %45 = load i64, ptr @H5E_CANTENCODE_g, align 8, !tbaa !17 + %46 = tail call i32 (ptr, ptr, i32, i64, i64, ptr, ...) @H5E_printf_stack(ptr noundef nonnull @.str, ptr noundef nonnull @__func__.H5R__create_attr, i32 noundef 295, i64 noundef %44, i64 noundef %45, ptr noundef nonnull @.str.2) #15 + br label %.critedge -46: ; preds = %39, %.critedge, %4 - %.0 = phi i32 [ -1, %.critedge ], [ 0, %39 ], [ 0, %4 ] +47: ; preds = %H5R__set_obj_token.exit + %48 = load i64, ptr %5, align 8, !tbaa !17 + %49 = trunc i64 %48 to i32 + %50 = getelementptr inbounds nuw i8, ptr %3, i64 40 + store i32 %49, ptr %50, align 8, !tbaa !18 + br label %54 + +.critedge: ; preds = %43, %25, %15 + %51 = getelementptr inbounds nuw i8, ptr %3, i64 24 + %52 = load ptr, ptr %51, align 8, !tbaa !10 + %53 = tail call ptr @H5MM_xfree(ptr noundef %52) #15 + store ptr null, ptr %51, align 8, !tbaa !10 + br label %54 + +54: ; preds = %47, %.critedge, %4 + %.0 = phi i32 [ -1, %.critedge ], [ 0, %47 ], [ 0, %4 ] call void @llvm.lifetime.end.p0(ptr nonnull %5) ret i32 %.0 } @@ -649,7 +661,7 @@ H5R__set_obj_token.exit: ; preds = %20 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: read) declare i64 @strlen(ptr noundef captures(none)) local_unnamed_addr #4 -; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias ptr @strdup(ptr noundef readonly captures(none)) local_unnamed_addr #5 declare ptr @H5MM_xfree(ptr noundef) local_unnamed_addr #3 @@ -2282,7 +2294,7 @@ declare ptr @H5S_create(i32 noundef) local_unnamed_addr #3 declare i32 @H5S_set_extent_simple(ptr noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #3 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #11 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -2302,13 +2314,13 @@ attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-mat attributes #2 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, argmem: readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #8 = { mustprogress nofree norecurse nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #10 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #12 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #13 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #14 = { nocallback nofree nounwind willreturn memory(argmem: read) } diff --git a/bench/hdf5/optimized/h5diff_array.ll b/bench/hdf5/optimized/h5diff_array.ll index 0bba77269d7..9ba8554ca1c 100644 --- a/bench/hdf5/optimized/h5diff_array.ll +++ b/bench/hdf5/optimized/h5diff_array.ll @@ -7492,7 +7492,7 @@ define internal fastcc void @get_member_types(i64 noundef %0, ptr noundef captur %or.cond3 = icmp ult i32 %7, 2 br i1 %or.cond3, label %8, label %11 -common.ret50: ; preds = %13, %11, %2, %.lr.ph, %8 +common.ret50: ; preds = %13, %11, %2, %16, %.lr.ph, %8 ret void 8: ; preds = %5 @@ -7508,48 +7508,54 @@ common.ret50: ; preds = %13, %11, %2, %.lr.p 13: ; preds = %11 %14 = tail call i32 @H5Tget_nmembers(i64 noundef %0) #15 %15 = icmp sgt i32 %14, 0 - br i1 %15, label %.lr.ph.preheader, label %common.ret50 + br i1 %15, label %16, label %common.ret50 -.lr.ph.preheader: ; preds = %13 +16: ; preds = %13 store i32 %14, ptr %1, align 8, !tbaa !61 - %16 = zext nneg i32 %14 to i64 - %17 = tail call noalias ptr @calloc(i64 noundef %16, i64 noundef 8) #18 - %18 = getelementptr inbounds nuw i8, ptr %1, i64 8 - store ptr %17, ptr %18, align 8, !tbaa !66 - %19 = tail call noalias ptr @calloc(i64 noundef %16, i64 noundef 8) #18 - %20 = getelementptr inbounds nuw i8, ptr %1, i64 16 - store ptr %19, ptr %20, align 8, !tbaa !65 - %21 = tail call noalias ptr @calloc(i64 noundef %16, i64 noundef 8) #18 - %22 = getelementptr inbounds nuw i8, ptr %1, i64 24 - store ptr %21, ptr %22, align 8, !tbaa !67 - br label %.lr.ph - -.lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph - %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ] - %23 = trunc nuw i64 %indvars.iv to i32 - %24 = tail call i64 @H5Tget_member_type(i64 noundef %0, i32 noundef %23) #15 - %25 = load ptr, ptr %18, align 8, !tbaa !66 - %26 = getelementptr inbounds nuw i64, ptr %25, i64 %indvars.iv - store i64 %24, ptr %26, align 8, !tbaa !15 - %27 = tail call i64 @H5Tget_member_offset(i64 noundef %0, i32 noundef %23) #15 - %28 = load ptr, ptr %20, align 8, !tbaa !65 - %29 = getelementptr inbounds nuw i64, ptr %28, i64 %indvars.iv - store i64 %27, ptr %29, align 8, !tbaa !15 - %30 = tail call noalias dereferenceable_or_null(32) ptr @malloc(i64 noundef 32) #19 - %31 = load ptr, ptr %22, align 8, !tbaa !67 - %32 = getelementptr inbounds nuw ptr, ptr %31, i64 %indvars.iv - store ptr %30, ptr %32, align 8, !tbaa !68 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %30, i8 0, i64 32, i1 false) - %33 = load ptr, ptr %18, align 8, !tbaa !66 - %34 = getelementptr inbounds nuw i64, ptr %33, i64 %indvars.iv - %35 = load i64, ptr %34, align 8, !tbaa !15 - %36 = load ptr, ptr %32, align 8, !tbaa !68 - tail call fastcc void @get_member_types(i64 noundef %35, ptr noundef %36) + %17 = zext nneg i32 %14 to i64 + %18 = tail call noalias ptr @calloc(i64 noundef %17, i64 noundef 8) #18 + %19 = getelementptr inbounds nuw i8, ptr %1, i64 8 + store ptr %18, ptr %19, align 8, !tbaa !66 + %20 = load i32, ptr %1, align 8, !tbaa !61 + %21 = zext i32 %20 to i64 + %22 = tail call noalias ptr @calloc(i64 noundef %21, i64 noundef 8) #18 + %23 = getelementptr inbounds nuw i8, ptr %1, i64 16 + store ptr %22, ptr %23, align 8, !tbaa !65 + %24 = load i32, ptr %1, align 8, !tbaa !61 + %25 = zext i32 %24 to i64 + %26 = tail call noalias ptr @calloc(i64 noundef %25, i64 noundef 8) #18 + %27 = getelementptr inbounds nuw i8, ptr %1, i64 24 + store ptr %26, ptr %27, align 8, !tbaa !67 + %28 = load i32, ptr %1, align 8, !tbaa !61 + %.not = icmp eq i32 %28, 0 + br i1 %.not, label %common.ret50, label %.lr.ph + +.lr.ph: ; preds = %16, %.lr.ph + %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %16 ] + %29 = trunc nuw i64 %indvars.iv to i32 + %30 = tail call i64 @H5Tget_member_type(i64 noundef %0, i32 noundef %29) #15 + %31 = load ptr, ptr %19, align 8, !tbaa !66 + %32 = getelementptr inbounds nuw i64, ptr %31, i64 %indvars.iv + store i64 %30, ptr %32, align 8, !tbaa !15 + %33 = tail call i64 @H5Tget_member_offset(i64 noundef %0, i32 noundef %29) #15 + %34 = load ptr, ptr %23, align 8, !tbaa !65 + %35 = getelementptr inbounds nuw i64, ptr %34, i64 %indvars.iv + store i64 %33, ptr %35, align 8, !tbaa !15 + %36 = tail call noalias dereferenceable_or_null(32) ptr @malloc(i64 noundef 32) #19 + %37 = load ptr, ptr %27, align 8, !tbaa !67 + %38 = getelementptr inbounds nuw ptr, ptr %37, i64 %indvars.iv + store ptr %36, ptr %38, align 8, !tbaa !68 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %36, i8 0, i64 32, i1 false) + %39 = load ptr, ptr %19, align 8, !tbaa !66 + %40 = getelementptr inbounds nuw i64, ptr %39, i64 %indvars.iv + %41 = load i64, ptr %40, align 8, !tbaa !15 + %42 = load ptr, ptr %38, align 8, !tbaa !68 + tail call fastcc void @get_member_types(i64 noundef %41, ptr noundef %42) %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %37 = load i32, ptr %1, align 8, !tbaa !61 - %38 = zext i32 %37 to i64 - %39 = icmp samesign ult i64 %indvars.iv.next, %38 - br i1 %39, label %.lr.ph, label %common.ret50, !llvm.loop !88 + %43 = load i32, ptr %1, align 8, !tbaa !61 + %44 = zext i32 %43 to i64 + %45 = icmp samesign ult i64 %indvars.iv.next, %44 + br i1 %45, label %.lr.ph, label %common.ret50, !llvm.loop !88 } ; Function Attrs: nounwind uwtable @@ -9029,7 +9035,7 @@ declare i64 @H5Sget_select_hyper_nblocks(i64 noundef) local_unnamed_addr #1 declare i64 @H5Sget_select_elem_npoints(i64 noundef) local_unnamed_addr #1 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #8 declare i32 @H5Sget_select_hyper_blocklist(i64 noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #1 @@ -11273,7 +11279,7 @@ define internal fastcc void @ull2float(i64 noundef %0, ptr noundef nonnull write declare i64 @H5Pcreate(i64 noundef) local_unnamed_addr #1 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #10 declare i32 @H5Tconvert(i64 noundef, i64 noundef, i64 noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #1 @@ -11327,9 +11333,9 @@ attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argm attributes #5 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #8 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #11 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #12 = { nocallback nofree nounwind willreturn memory(argmem: read) } attributes #13 = { nofree nounwind } diff --git a/bench/hdf5/optimized/h5tools_str.ll b/bench/hdf5/optimized/h5tools_str.ll index 50fb081f571..87a94c054f4 100644 --- a/bench/hdf5/optimized/h5tools_str.ll +++ b/bench/hdf5/optimized/h5tools_str.ll @@ -301,10 +301,10 @@ declare noundef i32 @vsnprintf(ptr noundef captures(none), i64 noundef, ptr noun ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn declare void @llvm.va_end.p0(ptr) #7 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #9 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #10 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) uwtable @@ -3071,7 +3071,7 @@ define ptr @h5tools_str_replace(ptr noundef readonly captures(none) %0, ptr noun br i1 %.not58, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %7, %17 - %9 = phi ptr [ %32, %17 ], [ %8, %7 ] + %9 = phi ptr [ %34, %17 ], [ %8, %7 ] %.04759 = phi ptr [ %16, %17 ], [ %6, %7 ] %10 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.04759) #24 %11 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #24 @@ -3093,22 +3093,24 @@ define ptr @h5tools_str_replace(ptr noundef readonly captures(none) %0, ptr noun %20 = sub i64 %18, %19 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %16, ptr nonnull align 1 %.04759, i64 %20, i1 false) %21 = getelementptr inbounds i8, ptr %16, i64 %20 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %21, ptr nonnull align 1 %2, i64 %12, i1 false) - %22 = getelementptr inbounds nuw i8, ptr %21, i64 %12 - %23 = getelementptr inbounds nuw i8, ptr %9, i64 %11 - %24 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.04759) #24 - %25 = add i64 %11, %20 - %26 = sub i64 %24, %25 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %22, ptr nonnull align 1 %23, i64 %26, i1 false) - %27 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.04759) #24 - %28 = getelementptr inbounds nuw i8, ptr %16, i64 %27 - %29 = sub i64 0, %11 - %30 = getelementptr inbounds i8, ptr %28, i64 %29 - %31 = getelementptr inbounds nuw i8, ptr %30, i64 %12 - store i8 0, ptr %31, align 1 + %22 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %2) #24 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %21, ptr nonnull align 1 %2, i64 %22, i1 false) + %23 = getelementptr inbounds nuw i8, ptr %21, i64 %22 + %24 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #24 + %25 = getelementptr inbounds nuw i8, ptr %9, i64 %24 + %26 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.04759) #24 + %27 = add i64 %24, %20 + %28 = sub i64 %26, %27 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %23, ptr nonnull align 1 %25, i64 %28, i1 false) + %29 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.04759) #24 + %30 = getelementptr inbounds nuw i8, ptr %16, i64 %29 + %31 = sub i64 0, %24 + %32 = getelementptr inbounds i8, ptr %30, i64 %31 + %33 = getelementptr inbounds nuw i8, ptr %32, i64 %22 + store i8 0, ptr %33, align 1 tail call void @free(ptr noundef nonnull %.04759) #21 - %32 = tail call ptr @strstr(ptr noundef nonnull dereferenceable(1) %22, ptr noundef nonnull dereferenceable(1) %1) #24 - %.not = icmp eq ptr %32, null + %34 = tail call ptr @strstr(ptr noundef nonnull dereferenceable(1) %23, ptr noundef nonnull dereferenceable(1) %1) #24 + %.not = icmp eq ptr %34, null br i1 %.not, label %.loopexit, label %.lr.ph, !llvm.loop !122 .loopexit: ; preds = %17, %3, %7, %.thread @@ -3116,7 +3118,7 @@ define ptr @h5tools_str_replace(ptr noundef readonly captures(none) %0, ptr noun ret ptr %.0 } -; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias ptr @strdup(ptr noundef readonly captures(none)) local_unnamed_addr #16 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: read) @@ -3155,14 +3157,14 @@ attributes #5 = { mustprogress nofree nounwind willreturn memory(write, argmem: attributes #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nocallback nofree nosync nounwind willreturn } attributes #8 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #11 = { mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #12 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #13 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #14 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #15 = { nofree nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #16 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #16 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #17 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #18 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #19 = { nofree nounwind } diff --git a/bench/hermes/optimized/CSE.ll b/bench/hermes/optimized/CSE.ll index 44fbdb29f2f..4a8b4aa4600 100644 --- a/bench/hermes/optimized/CSE.ll +++ b/bench/hermes/optimized/CSE.ll @@ -372,11 +372,11 @@ if.end.i.i.i.i.i.i.i.i.i.i: ; preds = %cond.false.i.i.i.i. if.then.i.i.i.i.i.i.i.i.i.i.i.i.i: ; preds = %if.end.i.i.i.i.i.i.i.i.i.i call void @_ZN4llvh22report_bad_alloc_errorEPKcb(ptr noundef nonnull @.str, i1 noundef zeroext true) #10 - %.pre.i16.i.i.i.i.i.i.i.i.i.i = load i32, ptr %Size.i.i13.i.i.i.i.i.i.i.i.i.i, align 8 + %.pre = load i32, ptr %Size.i.i13.i.i.i.i.i.i.i.i.i.i, align 8 br label %_ZN4llvh15MallocAllocator8AllocateEmm.exit.i.i.i.i.i.i.i.i.i.i.i _ZN4llvh15MallocAllocator8AllocateEmm.exit.i.i.i.i.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i.i.i.i.i.i, %if.end.i.i.i.i.i.i.i.i.i.i - %33 = phi i32 [ %31, %if.end.i.i.i.i.i.i.i.i.i.i ], [ %.pre.i16.i.i.i.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i.i.i.i.i.i.i.i ] + %33 = phi i32 [ %.pre, %if.then.i.i.i.i.i.i.i.i.i.i.i.i.i ], [ %31, %if.end.i.i.i.i.i.i.i.i.i.i ] %34 = load i32, ptr %Capacity2.i.i.i.i.i.i.i.i4.i, align 4 %cmp.not.i.i.i.i.i.i.i.i.i.i.i.i = icmp ult i32 %33, %34 br i1 %cmp.not.i.i.i.i.i.i.i.i.i.i.i.i, label %_ZN4llvh20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096EE12StartNewSlabEv.exit.i.i.i.i.i.i.i.i.i.i, label %if.then.i.i14.i.i.i.i.i.i.i.i.i.i @@ -398,9 +398,9 @@ _ZN4llvh20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096EE12StartNewSla store i32 %add.i.i15.i.i.i.i.i.i.i.i.i.i, ptr %Size.i.i13.i.i.i.i.i.i.i.i.i.i, align 8 %add.ptr.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %mul.i.i.i.i.i.i.i.i.i.i.i.i store ptr %add.ptr.i.i.i.i.i.i.i.i.i.i.i, ptr %End.i.i.i.i.i.i.i.i.i.i, align 8 - %sub.i18.i.i.i.i.i.i.i.i.i.i = add i64 %37, 7 - %and.i20.i.i.i.i.i.i.i.i.i.i = and i64 %sub.i18.i.i.i.i.i.i.i.i.i.i, -8 - %39 = inttoptr i64 %and.i20.i.i.i.i.i.i.i.i.i.i to ptr + %sub.i17.i.i.i.i.i.i.i.i.i.i = add i64 %37, 7 + %and.i19.i.i.i.i.i.i.i.i.i.i = and i64 %sub.i17.i.i.i.i.i.i.i.i.i.i, -8 + %39 = inttoptr i64 %and.i19.i.i.i.i.i.i.i.i.i.i to ptr %add.ptr19.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %39, i64 32 store ptr %add.ptr19.i.i.i.i.i.i.i.i.i.i, ptr %Allocator.i.i.i.i.i.i.i.i, align 8 br label %_ZN4llvh15ScopedHashTableIN12_GLOBAL__N_18CSEValueEPN6hermes5ValueENS_12DenseMapInfoIS2_EENS_18RecyclingAllocatorINS_20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096EEENS_18ScopedHashTableValIS2_S5_EELm32ELm8EEEE6insertERKS2_RKS5_.exit.i.i.i.i @@ -937,11 +937,10 @@ if.end.i.i.i.i: ; preds = %cond.false.i.i.i if.then.i.i.i.i.i.i.i: ; preds = %if.end.i.i.i.i tail call void @_ZN4llvh22report_bad_alloc_errorEPKcb(ptr noundef nonnull @.str, i1 noundef zeroext true) #10 - %.pre.i16.i.i.i.i = load i32, ptr %Size.i.i13.i.i.i.i, align 8 br label %_ZN4llvh15MallocAllocator8AllocateEmm.exit.i.i.i.i.i _ZN4llvh15MallocAllocator8AllocateEmm.exit.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i, %if.end.i.i.i.i - %8 = phi i32 [ %6, %if.end.i.i.i.i ], [ %.pre.i16.i.i.i.i, %if.then.i.i.i.i.i.i.i ] + %8 = load i32, ptr %Size.i.i13.i.i.i.i, align 8 %Capacity.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %this, i64 36 %9 = load i32, ptr %Capacity.i.i.i.i.i.i.i, align 4 %cmp.not.i.i.i.i.i.i = icmp ult i32 %8, %9 @@ -965,9 +964,9 @@ _ZN4llvh20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096EE12StartNewSla store i32 %add.i.i15.i.i.i.i, ptr %Size.i.i13.i.i.i.i, align 8 %add.ptr.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call.i.i.i.i.i.i.i, i64 %mul.i.i.i.i.i.i store ptr %add.ptr.i.i.i.i.i, ptr %End.i.i.i.i, align 8 - %sub.i18.i.i.i.i = add i64 %12, 7 - %and.i20.i.i.i.i = and i64 %sub.i18.i.i.i.i, -8 - %14 = inttoptr i64 %and.i20.i.i.i.i to ptr + %sub.i17.i.i.i.i = add i64 %12, 7 + %and.i19.i.i.i.i = and i64 %sub.i17.i.i.i.i, -8 + %14 = inttoptr i64 %and.i19.i.i.i.i to ptr %add.ptr19.i.i.i.i = getelementptr inbounds nuw i8, ptr %14, i64 56 store ptr %add.ptr19.i.i.i.i, ptr %Allocator.i, align 8 br label %_ZN4llvh18RecyclingAllocatorINS_20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096EEEN12_GLOBAL__N_19StackNodeELm56ELm8EE8AllocateEv.exit @@ -998,7 +997,7 @@ _ZN4llvh18RecyclingAllocatorINS_20BumpPtrAllocatorImplINS_15MallocAllocatorELm40 declare void @_ZN4llvh15SmallVectorBase8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, i64 noundef, i64 noundef) local_unnamed_addr #1 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #4 declare void @_ZN4llvh22report_bad_alloc_errorEPKcb(ptr noundef, i1 noundef zeroext) local_unnamed_addr #1 @@ -1503,7 +1502,7 @@ attributes #0 = { mustprogress nounwind uwtable "frame-pointer"="all" "min-legal attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #3 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } diff --git a/bench/hermes/optimized/FoldingSet.ll b/bench/hermes/optimized/FoldingSet.ll index 74383a7278b..eb79bdb5509 100644 --- a/bench/hermes/optimized/FoldingSet.ll +++ b/bench/hermes/optimized/FoldingSet.ll @@ -1479,7 +1479,7 @@ entry: declare void @__cxa_pure_virtual() unnamed_addr -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #13 declare void @_ZN4llvh22report_bad_alloc_errorEPKcb(ptr noundef, i1 noundef zeroext) local_unnamed_addr #14 @@ -2082,11 +2082,10 @@ if.end14: ; preds = %if.end if.then.i.i.i: ; preds = %if.end14 tail call void @_ZN4llvh22report_bad_alloc_errorEPKcb(ptr noundef nonnull @.str, i1 noundef zeroext true) #22 - %.pre.i16 = load i32, ptr %Size.i.i13, align 8 br label %_ZN4llvh15MallocAllocator8AllocateEmm.exit.i _ZN4llvh15MallocAllocator8AllocateEmm.exit.i: ; preds = %if.then.i.i.i, %if.end14 - %13 = phi i32 [ %11, %if.end14 ], [ %.pre.i16, %if.then.i.i.i ] + %13 = load i32, ptr %Size.i.i13, align 8 %Capacity.i.i.i = getelementptr inbounds nuw i8, ptr %this, i64 28 %14 = load i32, ptr %Capacity.i.i.i, align 4 %cmp.not.i.i = icmp ult i32 %13, %14 @@ -2110,9 +2109,9 @@ _ZN4llvh20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096EE12StartNewSla store i32 %add.i.i15, ptr %Size.i.i13, align 8 %add.ptr.i = getelementptr inbounds nuw i8, ptr %call.i.i.i, i64 %mul.i.i store ptr %add.ptr.i, ptr %End, align 8 - %sub.i18 = add i64 %add.i.i, %17 - %and.i20 = and i64 %sub.i18, %not.i.i - %19 = inttoptr i64 %and.i20 to ptr + %sub.i17 = add i64 %add.i.i, %17 + %and.i19 = and i64 %sub.i17, %not.i.i + %19 = inttoptr i64 %and.i19 to ptr %add.ptr19 = getelementptr inbounds i8, ptr %19, i64 %Size store ptr %add.ptr19, ptr %this, align 8 br label %return @@ -2122,7 +2121,7 @@ return: ; preds = %_ZN4llvh20BumpPtrAl ret ptr %retval.0 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #17 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) @@ -2159,11 +2158,11 @@ attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argm attributes #10 = { mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #11 = { mustprogress nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #12 = { mustprogress nofree norecurse nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #13 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #14 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #15 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #16 = { nofree nounwind } -attributes #17 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #17 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #18 = { nocallback nofree nounwind willreturn memory(argmem: read) } attributes #19 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #20 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } diff --git a/bench/hermes/optimized/Lowering.ll b/bench/hermes/optimized/Lowering.ll index a5fd33a6034..eeab404ba1b 100644 --- a/bench/hermes/optimized/Lowering.ll +++ b/bench/hermes/optimized/Lowering.ll @@ -3983,11 +3983,10 @@ if.end.i.i.i.i: ; preds = %cond.false.i.i.i if.then.i.i.i.i.i.i.i: ; preds = %if.end.i.i.i.i tail call void @_ZN4llvh22report_bad_alloc_errorEPKcb(ptr noundef nonnull @.str, i1 noundef zeroext true) #13 - %.pre.i16.i.i.i.i = load i32, ptr %Size.i.i13.i.i.i.i, align 8 br label %_ZN4llvh15MallocAllocator8AllocateEmm.exit.i.i.i.i.i _ZN4llvh15MallocAllocator8AllocateEmm.exit.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i, %if.end.i.i.i.i - %8 = phi i32 [ %6, %if.end.i.i.i.i ], [ %.pre.i16.i.i.i.i, %if.then.i.i.i.i.i.i.i ] + %8 = load i32, ptr %Size.i.i13.i.i.i.i, align 8 %Capacity.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %this, i64 36 %9 = load i32, ptr %Capacity.i.i.i.i.i.i.i, align 4 %cmp.not.i.i.i.i.i.i = icmp ult i32 %8, %9 @@ -4011,9 +4010,9 @@ _ZN4llvh20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096EE12StartNewSla store i32 %add.i.i15.i.i.i.i, ptr %Size.i.i13.i.i.i.i, align 8 %add.ptr.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call.i.i.i.i.i.i.i, i64 %mul.i.i.i.i.i.i store ptr %add.ptr.i.i.i.i.i, ptr %End.i.i.i.i, align 8 - %sub.i18.i.i.i.i = add i64 %12, 7 - %and.i20.i.i.i.i = and i64 %sub.i18.i.i.i.i, -8 - %14 = inttoptr i64 %and.i20.i.i.i.i to ptr + %sub.i17.i.i.i.i = add i64 %12, 7 + %and.i19.i.i.i.i = and i64 %sub.i17.i.i.i.i, -8 + %14 = inttoptr i64 %and.i19.i.i.i.i to ptr %add.ptr19.i.i.i.i = getelementptr inbounds nuw i8, ptr %14, i64 32 store ptr %add.ptr19.i.i.i.i, ptr %Allocator.i, align 8 br label %"_ZN4llvh18RecyclingAllocatorINS_20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096EEEN6hermes10DomTreeDFS9StackNodeIZL22orderBlocksByDominanceIZNS4_16LowerAllocObject13collectStoresEPNS4_15AllocObjectInstERKNS_8DenseMapIPNS4_10BasicBlockENS_11SmallVectorIPNS4_23StoreNewOwnPropertyInstELj4EEENS_12DenseMapInfoISD_EENS_6detail12DenseMapPairISD_SH_EEEERKNS4_13DominanceInfoEE3$_0ENSE_ISD_Lj4EEESS_SD_OT_E18OrderBlocksContextEELm32ELm8EE8AllocateEv.exit" @@ -4032,7 +4031,7 @@ _ZN4llvh20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096EE12StartNewSla ret ptr %cond.i.i.i } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #8 declare void @_ZN4llvh22report_bad_alloc_errorEPKcb(ptr noundef, i1 noundef zeroext) local_unnamed_addr #1 @@ -5253,7 +5252,7 @@ attributes #4 = { mustprogress nofree norecurse nosync nounwind willreturn memor attributes #5 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #10 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #11 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } diff --git a/bench/hwloc/optimized/bitmap.ll b/bench/hwloc/optimized/bitmap.ll index 748a8db2395..38b81485fcd 100644 --- a/bench/hwloc/optimized/bitmap.ll +++ b/bench/hwloc/optimized/bitmap.ll @@ -50,7 +50,7 @@ define noalias noundef ptr @hwloc_bitmap_alloc() local_unnamed_addr #0 { ret ptr %.0 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) @@ -204,19 +204,20 @@ define noalias noundef ptr @hwloc_bitmap_dup(ptr noundef readonly captures(addre br label %hwloc_bitmap_tma_dup.exit 12: ; preds = %4 - %13 = getelementptr inbounds nuw i8, ptr %3, i64 4 - store i32 %6, ptr %13, align 4, !tbaa !10 - %14 = load i32, ptr %0, align 8, !tbaa !3 - store i32 %14, ptr %3, align 8, !tbaa !3 - %15 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %16 = load ptr, ptr %15, align 8, !tbaa !11 - %17 = zext i32 %14 to i64 - %18 = shl nuw nsw i64 %17, 3 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %9, ptr align 8 %16, i64 %18, i1 false) - %19 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %20 = load i32, ptr %19, align 8, !tbaa !14 - %21 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store i32 %20, ptr %21, align 8, !tbaa !14 + %13 = load i32, ptr %5, align 4, !tbaa !10 + %14 = getelementptr inbounds nuw i8, ptr %3, i64 4 + store i32 %13, ptr %14, align 4, !tbaa !10 + %15 = load i32, ptr %0, align 8, !tbaa !3 + store i32 %15, ptr %3, align 8, !tbaa !3 + %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %17 = load ptr, ptr %16, align 8, !tbaa !11 + %18 = zext i32 %15 to i64 + %19 = shl nuw nsw i64 %18, 3 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %9, ptr align 8 %17, i64 %19, i1 false) + %20 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %21 = load i32, ptr %20, align 8, !tbaa !14 + %22 = getelementptr inbounds nuw i8, ptr %3, i64 16 + store i32 %21, ptr %22, align 8, !tbaa !14 br label %hwloc_bitmap_tma_dup.exit hwloc_bitmap_tma_dup.exit: ; preds = %1, %2, %11, %12 @@ -5115,7 +5116,7 @@ define i32 @hwloc_bitmap_compare_inclusion(ptr noundef readonly captures(none) % ret i32 %.2 } -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #13 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) @@ -5140,7 +5141,7 @@ declare i32 @llvm.smax.i32(i32, i32) #15 declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #16 attributes #0 = { mustprogress nounwind willreturn memory(readwrite, argmem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #1 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nounwind willreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -5152,7 +5153,7 @@ attributes #9 = { mustprogress nocallback nofree nounwind willreturn "no-trappin attributes #10 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #11 = { nofree norecurse nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #12 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #13 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #13 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #14 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #15 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #16 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/bench/hwloc/optimized/memattrs.ll b/bench/hwloc/optimized/memattrs.ll index d2e3434e074..25d26812ebd 100644 --- a/bench/hwloc/optimized/memattrs.ll +++ b/bench/hwloc/optimized/memattrs.ll @@ -158,7 +158,7 @@ define hidden void @hwloc_internal_memattrs_prepare(ptr noundef writeonly captur ret void } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable @@ -626,7 +626,7 @@ define range(i32 -1, 1) i32 @hwloc_memattr_register(ptr noundef captures(none) % 5: ; preds = %4 %6 = tail call ptr @__errno_location() #32 store i32 22, ptr %6, align 4, !tbaa !60 - br label %43 + br label %44 7: ; preds = %4 %8 = and i64 %2, 3 @@ -638,12 +638,12 @@ define range(i32 -1, 1) i32 @hwloc_memattr_register(ptr noundef captures(none) % 9: ; preds = %7 %10 = tail call ptr @__errno_location() #32 store i32 22, ptr %10, align 4, !tbaa !60 - br label %43 + br label %44 11: ; preds = %7 %12 = tail call ptr @__errno_location() #32 store i32 22, ptr %12, align 4, !tbaa !60 - br label %43 + br label %44 13: ; preds = %7 %.not33 = icmp eq ptr %1, null @@ -652,8 +652,8 @@ define range(i32 -1, 1) i32 @hwloc_memattr_register(ptr noundef captures(none) % .preheader: ; preds = %13 %14 = getelementptr inbounds nuw i8, ptr %0, i64 748 %15 = load i32, ptr %14, align 4, !tbaa !3 - %.not41 = icmp eq i32 %15, 0 - br i1 %.not41, label %._crit_edge, label %.lr.ph + %.not39 = icmp eq i32 %15, 0 + br i1 %.not39, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %.preheader %16 = getelementptr inbounds nuw i8, ptr %0, i64 752 @@ -664,7 +664,7 @@ define range(i32 -1, 1) i32 @hwloc_memattr_register(ptr noundef captures(none) % 18: ; preds = %13 %19 = tail call ptr @__errno_location() #32 store i32 22, ptr %19, align 4, !tbaa !60 - br label %43 + br label %44 20: ; preds = %21 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 @@ -682,52 +682,53 @@ define range(i32 -1, 1) i32 @hwloc_memattr_register(ptr noundef captures(none) % 25: ; preds = %21 %26 = tail call ptr @__errno_location() #32 store i32 16, ptr %26, align 4, !tbaa !60 - br label %43 + br label %44 ._crit_edge: ; preds = %20, %.preheader %27 = tail call noalias ptr @strdup(ptr noundef nonnull %1) #30 %.not34 = icmp eq ptr %27, null - br i1 %.not34, label %43, label %28 + br i1 %.not34, label %44, label %28 28: ; preds = %._crit_edge %29 = getelementptr inbounds nuw i8, ptr %0, i64 752 %30 = load ptr, ptr %29, align 8, !tbaa !31 - %31 = add i32 %15, 1 - %32 = zext i32 %31 to i64 - %33 = shl nuw nsw i64 %32, 5 - %34 = tail call ptr @realloc(ptr noundef %30, i64 noundef %33) #33 - %.not35 = icmp eq ptr %34, null - br i1 %.not35, label %35, label %36 - -35: ; preds = %28 - tail call void @free(ptr noundef nonnull %27) #30 - br label %43 + %31 = load i32, ptr %14, align 4, !tbaa !3 + %32 = add i32 %31, 1 + %33 = zext i32 %32 to i64 + %34 = shl nuw nsw i64 %33, 5 + %35 = tail call ptr @realloc(ptr noundef %30, i64 noundef %34) #33 + %.not35 = icmp eq ptr %35, null + br i1 %.not35, label %36, label %37 36: ; preds = %28 - %37 = load i32, ptr %14, align 4, !tbaa !3 - %38 = zext i32 %37 to i64 - %39 = getelementptr inbounds nuw %struct.hwloc_internal_memattr_s, ptr %34, i64 %38 - store ptr %27, ptr %39, align 8, !tbaa !32 - %40 = getelementptr inbounds nuw i8, ptr %39, i64 8 - store i64 %2, ptr %40, align 8, !tbaa !36 - %41 = getelementptr inbounds nuw i8, ptr %39, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %41, i8 0, i64 16, i1 false) - store i32 2, ptr %41, align 8, !tbaa !37 - store i32 %37, ptr %3, align 4, !tbaa !60 - %42 = add i32 %37, 1 - store i32 %42, ptr %14, align 4, !tbaa !3 - store ptr %34, ptr %29, align 8, !tbaa !31 - br label %43 + tail call void @free(ptr noundef nonnull %27) #30 + br label %44 + +37: ; preds = %28 + %38 = load i32, ptr %14, align 4, !tbaa !3 + %39 = zext i32 %38 to i64 + %40 = getelementptr inbounds nuw %struct.hwloc_internal_memattr_s, ptr %35, i64 %39 + store ptr %27, ptr %40, align 8, !tbaa !32 + %41 = getelementptr inbounds nuw i8, ptr %40, i64 8 + store i64 %2, ptr %41, align 8, !tbaa !36 + %42 = getelementptr inbounds nuw i8, ptr %40, i64 16 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %42, i8 0, i64 16, i1 false) + store i32 2, ptr %42, align 8, !tbaa !37 + store i32 %38, ptr %3, align 4, !tbaa !60 + %43 = add i32 %38, 1 + store i32 %43, ptr %14, align 4, !tbaa !3 + store ptr %35, ptr %29, align 8, !tbaa !31 + br label %44 -43: ; preds = %._crit_edge, %36, %35, %25, %18, %11, %9, %5 - %.027 = phi i32 [ -1, %5 ], [ -1, %11 ], [ -1, %25 ], [ 0, %36 ], [ -1, %35 ], [ -1, %18 ], [ -1, %9 ], [ -1, %._crit_edge ] +44: ; preds = %._crit_edge, %37, %36, %25, %18, %11, %9, %5 + %.027 = phi i32 [ -1, %5 ], [ -1, %11 ], [ -1, %25 ], [ 0, %37 ], [ -1, %36 ], [ -1, %18 ], [ -1, %9 ], [ -1, %._crit_edge ] ret i32 %.027 } -; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias ptr @strdup(ptr noundef readonly captures(none)) local_unnamed_addr #11 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #12 ; Function Attrs: nounwind uwtable @@ -4725,7 +4726,7 @@ declare ptr @strchr(ptr noundef, i32 noundef) local_unnamed_addr #8 declare noalias ptr @hwloc_bitmap_alloc() local_unnamed_addr #6 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #21 declare i32 @hwloc_bitmap_sscanf(ptr noundef, ptr noundef) local_unnamed_addr #6 @@ -4801,7 +4802,7 @@ declare i64 @llvm.umax.i64(i64, i64) #28 attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress nofree nounwind willreturn memory(write, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } @@ -4810,8 +4811,8 @@ attributes #7 = { nofree nounwind memory(readwrite, inaccessiblemem: none) uwtab attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #10 = { mustprogress nofree nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #12 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #13 = { nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #14 = { nofree nounwind memory(readwrite, inaccessiblemem: read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #15 = { nofree "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -4820,7 +4821,7 @@ attributes #17 = { mustprogress nofree nounwind willreturn memory(read) "no-trap attributes #18 = { nofree nounwind memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #19 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #20 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #21 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #21 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #22 = { mustprogress nocallback nofree nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #23 = { mustprogress nocallback nofree nounwind willreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #24 = { cold nofree noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/hwloc/optimized/topology-linux.ll b/bench/hwloc/optimized/topology-linux.ll index 11182b6fc64..6e1669cda03 100644 --- a/bench/hwloc/optimized/topology-linux.ll +++ b/bench/hwloc/optimized/topology-linux.ll @@ -2440,10 +2440,10 @@ declare i64 @sysconf(i32 noundef) local_unnamed_addr #4 declare i32 @close(i32 noundef) local_unnamed_addr #6 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #10 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #11 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) @@ -3407,7 +3407,7 @@ define internal fastcc void @warn_preferred_many_fallback(ptr noundef readonly % ; Function Attrs: mustprogress nofree nounwind willreturn memory(read) declare i32 @hwloc_bitmap_isfull(ptr noundef) local_unnamed_addr #2 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #15 ; Function Attrs: mustprogress nofree nounwind willreturn memory(read) @@ -3461,47 +3461,43 @@ hwloc__alloc_read_path_as_cpulist.exit.thread: ; preds = %hwloc__alloc_read_p %14 = sext i32 %13 to i64 %15 = shl nsw i64 %14, 3 %16 = tail call noalias ptr @malloc(i64 noundef %15) #29 - %.not176 = icmp eq ptr %16, null - br i1 %.not176, label %.thread.sink.split, label %.lr.ph + %.not175 = icmp eq ptr %16, null + br i1 %.not175, label %.thread.sink.split, label %.lr.ph -.lr.ph: ; preds = %hwloc__alloc_read_path_as_cpulist.exit.thread, %27 - %17 = phi ptr [ %33, %27 ], [ %16, %hwloc__alloc_read_path_as_cpulist.exit.thread ] - %18 = phi i32 [ %29, %27 ], [ %12, %hwloc__alloc_read_path_as_cpulist.exit.thread ] +.lr.ph: ; preds = %hwloc__alloc_read_path_as_cpulist.exit.thread, %25 + %17 = phi ptr [ %31, %25 ], [ %16, %hwloc__alloc_read_path_as_cpulist.exit.thread ] + %18 = load i32, ptr @hwloc_linux_find_kernel_max_numnodes.max_numnodes, align 4, !tbaa !3 %19 = sext i32 %18 to i64 %20 = call i64 (i64, ...) @syscall(i64 noundef 239, ptr noundef nonnull %1, ptr noundef nonnull %17, i64 noundef %19, ptr noundef null, i32 noundef 0) #28 call void @free(ptr noundef nonnull %17) #28 %21 = and i64 %20, 4294967295 %.not18 = icmp eq i64 %21, 0 - br i1 %.not18, label %25, label %22 + br i1 %.not18, label %.thread.sink.split, label %22 22: ; preds = %.lr.ph %23 = tail call ptr @__errno_location() #32 %24 = load i32, ptr %23, align 4, !tbaa !3 %.not19 = icmp eq i32 %24, 22 - br i1 %.not19, label %27, label %25 + br i1 %.not19, label %25, label %.thread.sink.split -25: ; preds = %22, %.lr.ph +25: ; preds = %22 %26 = load i32, ptr @hwloc_linux_find_kernel_max_numnodes.max_numnodes, align 4, !tbaa !3 - br label %.thread.sink.split - -27: ; preds = %22 - %28 = load i32, ptr @hwloc_linux_find_kernel_max_numnodes.max_numnodes, align 4, !tbaa !3 - %29 = shl nsw i32 %28, 1 - store i32 %29, ptr @hwloc_linux_find_kernel_max_numnodes.max_numnodes, align 4, !tbaa !3 - %30 = sdiv i32 %28, 32 - %31 = sext i32 %30 to i64 - %32 = shl nsw i64 %31, 3 - %33 = call noalias ptr @malloc(i64 noundef %32) #29 - %.not17 = icmp eq ptr %33, null + %27 = shl nsw i32 %26, 1 + store i32 %27, ptr @hwloc_linux_find_kernel_max_numnodes.max_numnodes, align 4, !tbaa !3 + %28 = sdiv i32 %26, 32 + %29 = sext i32 %28 to i64 + %30 = shl nsw i64 %29, 3 + %31 = call noalias ptr @malloc(i64 noundef %30) #29 + %.not17 = icmp eq ptr %31, null br i1 %.not17, label %.thread.sink.split, label %.lr.ph -.thread.sink.split: ; preds = %27, %hwloc__alloc_read_path_as_cpulist.exit.thread, %25 - %.lcssa.sink = phi i32 [ %26, %25 ], [ %12, %hwloc__alloc_read_path_as_cpulist.exit.thread ], [ %29, %27 ] - store i32 %.lcssa.sink, ptr @hwloc_linux_find_kernel_max_numnodes._max_numnodes, align 4, !tbaa !3 +.thread.sink.split: ; preds = %.lr.ph, %22, %25, %hwloc__alloc_read_path_as_cpulist.exit.thread + %32 = load i32, ptr @hwloc_linux_find_kernel_max_numnodes.max_numnodes, align 4, !tbaa !3 + store i32 %32, ptr @hwloc_linux_find_kernel_max_numnodes._max_numnodes, align 4, !tbaa !3 br label %.thread .thread: ; preds = %.thread.sink.split, %0 - %.0 = phi i32 [ %2, %0 ], [ %.lcssa.sink, %.thread.sink.split ] + %.0 = phi i32 [ %2, %0 ], [ %32, %.thread.sink.split ] call void @llvm.lifetime.end.p0(ptr nonnull %1) ret i32 %.0 } @@ -4043,7 +4039,7 @@ hwloc_admin_disable_set_from_cgroup.exit21: ; preds = %174, %177 declare i32 @hwloc__replace_infos(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6 -; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias ptr @strdup(ptr noundef readonly captures(none)) local_unnamed_addr #17 ; Function Attrs: nounwind @@ -16989,14 +16985,14 @@ attributes #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "t attributes #7 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { nofree nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #12 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #13 = { nofree "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #14 = { mustprogress nocallback nofree nounwind willreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #15 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #15 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #16 = { nofree nounwind memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #17 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #17 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #18 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #19 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #20 = { mustprogress nocallback nofree nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/icu/optimized/uwmsg.ll b/bench/icu/optimized/uwmsg.ll index 2724adcfb66..94ed3f84c3f 100644 --- a/bench/icu/optimized/uwmsg.ll +++ b/bench/icu/optimized/uwmsg.ll @@ -225,7 +225,7 @@ fetchErrorName.exit: ; preds = %7, %10 %.0.in.i = select i1 %17, ptr %16, ptr %13 %.0.i = load ptr, ptr %.0.in.i, align 8, !tbaa !11 %.not = icmp eq ptr %.0.i, null - br i1 %.not, label %18, label %48 + br i1 %.not, label %18, label %49 18: ; preds = %fetchErrorName.exit %19 = load ptr, ptr @gBundle, align 8, !tbaa !8 @@ -244,7 +244,7 @@ fetchErrorName.exit: ; preds = %7, %10 %27 = icmp sgt i32 %26, 0 %28 = icmp eq ptr %25, null %or.cond = select i1 %27, i1 true, i1 %28 - br i1 %or.cond, label %.thread, label %39 + br i1 %or.cond, label %.thread, label %40 .thread: ; preds = %23, %21, %18 call void @llvm.lifetime.start.p0(ptr nonnull %4) @@ -262,32 +262,33 @@ fetchErrorName.exit: ; preds = %7, %10 %34 = shl i64 %33, 1 %35 = add i64 %34, 2 %36 = call noalias ptr @malloc(i64 noundef %35) #10 - %37 = trunc i64 %33 to i32 - %38 = add i32 %37, 1 - call void @u_charsToUChars_77(ptr noundef nonnull %.020, ptr noundef %36, i32 noundef %38) #8 + %37 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.020) #9 + %38 = trunc i64 %37 to i32 + %39 = add i32 %38, 1 + call void @u_charsToUChars_77(ptr noundef nonnull %.020, ptr noundef %36, i32 noundef %39) #8 call void @llvm.lifetime.end.p0(ptr nonnull %4) - br label %39 + br label %40 -39: ; preds = %23, %32 +40: ; preds = %23, %32 %.2 = phi ptr [ %36, %32 ], [ %25, %23 ] - %40 = icmp sgt i32 %0, -1 - br i1 %40, label %41, label %44 - -41: ; preds = %39 - %42 = load ptr, ptr @gErrMessages, align 8, !tbaa !17 - %43 = getelementptr inbounds nuw ptr, ptr %42, i64 %12 - store ptr %.2, ptr %43, align 8, !tbaa !11 - br label %48 - -44: ; preds = %39 - %45 = load ptr, ptr @gInfoMessages, align 8, !tbaa !17 - %46 = getelementptr ptr, ptr %45, i64 %14 - %47 = getelementptr i8, ptr %46, i64 1024 - store ptr %.2, ptr %47, align 8, !tbaa !11 - br label %48 - -48: ; preds = %41, %44, %fetchErrorName.exit - %.0 = phi ptr [ %.0.i, %fetchErrorName.exit ], [ %.2, %44 ], [ %.2, %41 ] + %41 = icmp sgt i32 %0, -1 + br i1 %41, label %42, label %45 + +42: ; preds = %40 + %43 = load ptr, ptr @gErrMessages, align 8, !tbaa !17 + %44 = getelementptr inbounds nuw ptr, ptr %43, i64 %12 + store ptr %.2, ptr %44, align 8, !tbaa !11 + br label %49 + +45: ; preds = %40 + %46 = load ptr, ptr @gInfoMessages, align 8, !tbaa !17 + %47 = getelementptr ptr, ptr %46, i64 %14 + %48 = getelementptr i8, ptr %47, i64 1024 + store ptr %.2, ptr %48, align 8, !tbaa !11 + br label %49 + +49: ; preds = %42, %45, %fetchErrorName.exit + %.0 = phi ptr [ %.0.i, %fetchErrorName.exit ], [ %.2, %45 ], [ %.2, %42 ] call void @llvm.lifetime.end.p0(ptr nonnull %3) call void @llvm.lifetime.end.p0(ptr nonnull %2) ret ptr %.0 @@ -298,7 +299,7 @@ declare ptr @u_errorName_77(i32 noundef) local_unnamed_addr #1 ; Function Attrs: nofree nounwind declare noundef i32 @sprintf(ptr noalias noundef writeonly captures(none), ptr noundef readonly captures(none), ...) local_unnamed_addr #3 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #4 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: read) @@ -321,17 +322,17 @@ declare void @llvm.lifetime.start.p0(ptr captures(none)) #6 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(ptr captures(none)) #6 -; Function Attrs: nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #7 attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nocallback nofree nosync nounwind willreturn } attributes #3 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #7 = { nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" } +attributes #7 = { nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" } attributes #8 = { nounwind } attributes #9 = { nounwind willreturn memory(read) } attributes #10 = { nounwind allocsize(0) } diff --git a/bench/jq/optimized/st.ll b/bench/jq/optimized/st.ll index 65824da143e..f9d76438494 100644 --- a/bench/jq/optimized/st.ll +++ b/bench/jq/optimized/st.ll @@ -60,10 +60,10 @@ new_size.exit.thread: ; preds = %5, %16, %13, %new_s ret ptr %.0 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #1 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #2 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) @@ -497,7 +497,11 @@ new_size.exit.i: ; preds = %53 %64 = and i64 %60, 2147483647 %65 = tail call noalias ptr @calloc(i64 noundef %64, i64 noundef 8) #11 %66 = icmp eq ptr %65, null - br i1 %66, label %rehash.exit, label %.preheader.i + br i1 %66, label %.rehash.exit_crit_edge, label %.preheader.i + +.rehash.exit_crit_edge: ; preds = %63 + %.pre = load i32, ptr %8, align 8, !tbaa !17 + br label %rehash.exit .preheader.i: ; preds = %63 %67 = icmp sgt i32 %48, 0 @@ -540,8 +544,8 @@ new_size.exit.i: ; preds = %53 store ptr %65, ptr %11, align 8, !tbaa !18 br label %rehash.exit -rehash.exit: ; preds = %55, %new_size.exit.i, %63, %._crit_edge34.i - %79 = phi i32 [ %48, %new_size.exit.i ], [ %48, %63 ], [ %61, %._crit_edge34.i ], [ %48, %55 ] +rehash.exit: ; preds = %55, %.rehash.exit_crit_edge, %new_size.exit.i, %._crit_edge34.i + %79 = phi i32 [ %.pre, %.rehash.exit_crit_edge ], [ %48, %new_size.exit.i ], [ %61, %._crit_edge34.i ], [ %48, %55 ] %80 = urem i32 %7, %79 br label %81 @@ -622,7 +626,11 @@ new_size.exit.i: ; preds = %16 %27 = and i64 %23, 2147483647 %28 = tail call noalias ptr @calloc(i64 noundef %27, i64 noundef 8) #11 %29 = icmp eq ptr %28, null - br i1 %29, label %rehash.exit, label %.preheader.i + br i1 %29, label %.rehash.exit_crit_edge, label %.preheader.i + +.rehash.exit_crit_edge: ; preds = %26 + %.pre = load i32, ptr %8, align 8, !tbaa !17 + br label %rehash.exit .preheader.i: ; preds = %26 %30 = icmp sgt i32 %9, 0 @@ -666,8 +674,8 @@ new_size.exit.i: ; preds = %16 store ptr %28, ptr %31, align 8, !tbaa !18 br label %rehash.exit -rehash.exit: ; preds = %18, %._crit_edge34.i, %26, %new_size.exit.i, %3 - %.pn = phi i32 [ %9, %3 ], [ %9, %new_size.exit.i ], [ %9, %26 ], [ %24, %._crit_edge34.i ], [ %9, %18 ] +rehash.exit: ; preds = %18, %._crit_edge34.i, %new_size.exit.i, %.rehash.exit_crit_edge, %3 + %.pn = phi i32 [ %9, %3 ], [ %.pre, %.rehash.exit_crit_edge ], [ %9, %new_size.exit.i ], [ %24, %._crit_edge34.i ], [ %9, %18 ] %43 = tail call noalias dereferenceable_or_null(32) ptr @malloc(i64 noundef 32) #10 %44 = icmp eq ptr %43, null br i1 %44, label %56, label %45 @@ -1219,8 +1227,8 @@ define internal i32 @strhash(ptr noundef readonly captures(none) %0) #9 { } attributes #0 = { nounwind memory(readwrite, argmem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #1 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nounwind willreturn memory(readwrite, argmem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/jq/optimized/unicode.ll b/bench/jq/optimized/unicode.ll index 89d84061f64..6d41507a779 100644 --- a/bench/jq/optimized/unicode.ll +++ b/bench/jq/optimized/unicode.ll @@ -3078,19 +3078,15 @@ define dso_local range(i32 -2147483648, 1) i32 @onig_unicode_define_user_propert %29 = tail call ptr @onig_st_init_strend_table_with_size(i32 noundef 10) #10 store ptr %29, ptr @UserDefinedPropertyTable, align 8, !tbaa !70 %30 = icmp eq ptr %29, null - br i1 %30, label %31, label %._crit_edge47 - -._crit_edge47: ; preds = %28 - %.pre = load i32, ptr @UserDefinedPropertyNum, align 4, !tbaa !17 - br label %32 + br i1 %30, label %31, label %32 31: ; preds = %28 tail call void @free(ptr noundef nonnull %12) #10 br label %45 -32: ; preds = %._crit_edge47, %._crit_edge - %33 = phi ptr [ %29, %._crit_edge47 ], [ %26, %._crit_edge ] - %34 = phi i32 [ %.pre, %._crit_edge47 ], [ %3, %._crit_edge ] +32: ; preds = %28, %._crit_edge + %33 = phi ptr [ %29, %28 ], [ %26, %._crit_edge ] + %34 = load i32, ptr @UserDefinedPropertyNum, align 4, !tbaa !17 %35 = sext i32 %34 to i64 %36 = getelementptr inbounds %struct.UserDefinedPropertyValue, ptr @UserDefinedPropertyRanges, i64 %35 %37 = add nsw i32 %34, 606 @@ -3116,7 +3112,7 @@ define dso_local range(i32 -2147483648, 1) i32 @onig_unicode_define_user_propert ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: read) declare i64 @strlen(ptr noundef captures(none)) local_unnamed_addr #3 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #4 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) @@ -3453,7 +3449,7 @@ attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-mat attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { nofree norecurse nosync nounwind memory(none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, argmem: readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } diff --git a/bench/libigl/optimized/kkt_inverse.ll b/bench/libigl/optimized/kkt_inverse.ll index a1c47043010..396bfcdc5e1 100644 --- a/bench/libigl/optimized/kkt_inverse.ll +++ b/bench/libigl/optimized/kkt_inverse.ll @@ -974,7 +974,7 @@ _ZN5Eigen14DiagonalMatrixIdLin1ELin1EEC2INS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEER _ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i: ; preds = %207 %209 = shl nuw i64 %.pr, 3 - %210 = call noalias ptr @malloc(i64 noundef %209) #21 + %210 = call noalias ptr @malloc(i64 noundef %209) #21, !noalias !72 %211 = icmp eq ptr %210, null br i1 %211, label %.invoke159, label %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i @@ -998,7 +998,7 @@ _ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i: ; preds call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %210, ptr align 8 %214, i64 %209, i1 false), !noalias !72 call void @llvm.experimental.noalias.scope.decl(metadata !78) store ptr %170, ptr %21, align 8, !tbaa !22, !alias.scope !78 - %215 = call noalias ptr @malloc(i64 noundef %209) #21 + %215 = call noalias ptr @malloc(i64 noundef %209) #21, !noalias !78 %216 = icmp eq ptr %215, null br i1 %216, label %217, label %219 @@ -1016,7 +1016,7 @@ _ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i: ; preds store ptr %215, ptr %220, align 8, !tbaa !69, !alias.scope !78 %221 = getelementptr inbounds nuw i8, ptr %21, i64 16 store i64 %.pr, ptr %221, align 8, !tbaa !70, !alias.scope !78 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %215, ptr align 8 %214, i64 %209, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %215, ptr nonnull align 8 %210, i64 %209, i1 false), !noalias !78 br label %222 222: ; preds = %219, %_ZN5Eigen8internal28conditional_aligned_new_autoIdLb1EEEPT_m.exit.i.i.i.i.i.i.thread.i @@ -2464,7 +2464,7 @@ declare void @_ZNSt9bad_allocD1Ev(ptr noundef nonnull align 8 dereferenceable(8) ; Function Attrs: cold noreturn declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr #6 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #7 ; Function Attrs: inlinehint mustprogress uwtable @@ -21978,7 +21978,7 @@ define linkonce_odr dso_local void @_ZN5Eigen8internal20generic_product_implINS_ _ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i: ; preds = %49 %60 = shl nuw i64 %13, 3 - %61 = tail call noalias ptr @malloc(i64 noundef %60) #21 + %61 = tail call noalias ptr @malloc(i64 noundef %60) #21, !noalias !965 %62 = icmp eq ptr %61, null br i1 %62, label %63, label %_ZNK5Eigen9DenseBaseINS_7ProductINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_14DiagonalMatrixIdLin1ELin1EEELi1EEEE3rowEl.exit @@ -22186,7 +22186,7 @@ _ZN5Eigen8internal28conditional_aligned_new_autoIdLb1EEEPT_m.exit.i.i.i.i.i.i.th _ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i: ; preds = %13 %17 = shl nuw i64 %11, 3 - %18 = tail call noalias ptr @malloc(i64 noundef %17) #21 + %18 = tail call noalias ptr @malloc(i64 noundef %17) #21, !noalias !971 %19 = icmp eq ptr %18, null br i1 %19, label %20, label %22 @@ -22568,7 +22568,7 @@ _ZN5Eigen8internal28conditional_aligned_new_autoIdLb1EEEPT_m.exit.i.i.i.i.i.i.i. _ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i: ; preds = %20 %24 = shl nuw i64 %18, 3 - %25 = tail call noalias ptr @malloc(i64 noundef %24) #21 + %25 = tail call noalias ptr @malloc(i64 noundef %24) #21, !noalias !989 %26 = icmp eq ptr %25, null br i1 %26, label %27, label %29 @@ -22899,88 +22899,113 @@ define linkonce_odr dso_local void @_ZN5Eigen8internal19gemv_dense_selectorILi2E %.sroa.527.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 24 %.sroa.527.0.copyload = load ptr, ptr %.sroa.527.0..sroa_idx, align 8 %7 = getelementptr inbounds nuw i8, ptr %.sroa.527.0.copyload, i64 8 - %8 = load i64, ptr %7, align 8, !tbaa !4 - %9 = load ptr, ptr %0, align 8, !tbaa !936, !noalias !1007 - %10 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %12 = load i64, ptr %11, align 8, !tbaa !70, !noalias !1007 - %13 = icmp ult i64 %12, 2305843009213693952 - %14 = shl nuw i64 %12, 3 - %15 = load ptr, ptr %10, align 8 - %16 = load ptr, ptr %2, align 8 - %17 = getelementptr inbounds nuw i8, ptr %2, i64 24 - %18 = load ptr, ptr %17, align 8 - %19 = getelementptr inbounds nuw i8, ptr %18, i64 16 - %20 = getelementptr inbounds nuw i8, ptr %2, i64 8 - %21 = load i64, ptr %20, align 8 - %.fr49 = freeze i64 %21 - %22 = icmp sgt i64 %.fr49, 0 - %23 = getelementptr inbounds nuw i8, ptr %9, i64 8 - br i1 %22, label %.lr.ph.split.us, label %.lr.ph.split + %8 = load ptr, ptr %0, align 8, !tbaa !936, !noalias !1007 + %9 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %10 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %11 = load i64, ptr %10, align 8, !tbaa !70, !noalias !1007 + %12 = icmp ult i64 %11, 2305843009213693952 + %13 = shl nuw i64 %11, 3 + %14 = load ptr, ptr %9, align 8 + %15 = load ptr, ptr %2, align 8 + %16 = getelementptr inbounds nuw i8, ptr %2, i64 24 + %17 = load ptr, ptr %16, align 8 + %18 = getelementptr inbounds nuw i8, ptr %17, i64 16 + %19 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %20 = load i64, ptr %19, align 8 + %.fr49 = freeze i64 %20 + %21 = icmp sgt i64 %.fr49, 0 + %22 = getelementptr inbounds nuw i8, ptr %8, i64 8 + br i1 %21, label %.lr.ph.split.us, label %.lr.ph.split .lr.ph.split.us: ; preds = %.lr.ph - br i1 %13, label %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us, label %.split.us + br i1 %12, label %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us.preheader, label %.split.us -_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us: ; preds = %.lr.ph.split.us, %_ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINS8_18scalar_constant_opIdEEKNS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS1_IKNS_7ProductINS2_IdLin1ELin1ELi0ELin1ELin1EEENS_14DiagonalMatrixIdLin1ELin1EEELi1EEELin1ELi1ELb1EEEEEEERS4_RKNS0_IT_EE.exit.loopexit.us - %.01240.us = phi i64 [ %46, %_ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINS8_18scalar_constant_opIdEEKNS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS1_IKNS_7ProductINS2_IdLin1ELin1ELi0ELin1ELin1EEENS_14DiagonalMatrixIdLin1ELin1EEELi1EEELin1ELi1ELb1EEEEEEERS4_RKNS0_IT_EE.exit.loopexit.us ], [ 0, %.lr.ph.split.us ] - %24 = load double, ptr %3, align 8, !tbaa !44 - %25 = mul nsw i64 %8, %.01240.us - %26 = getelementptr inbounds double, ptr %.sroa.025.0.copyload, i64 %25 - %27 = load double, ptr %26, align 8, !tbaa !44 - %28 = fmul double %24, %27 - %29 = tail call noalias ptr @malloc(i64 noundef %14) #21 - %30 = icmp eq ptr %29, null - br i1 %30, label %.split44.us, label %_ZN5Eigen8internal28conditional_aligned_new_autoIdLb1EEEPT_m.exit.i.i.i.i.i.i.us - -_ZN5Eigen8internal28conditional_aligned_new_autoIdLb1EEEPT_m.exit.i.i.i.i.i.i.us: ; preds = %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %29, ptr align 8 %15, i64 %14, i1 false) - %31 = load i64, ptr %19, align 8, !tbaa !772 - %32 = load i64, ptr %23, align 8, !tbaa !4 - %33 = load ptr, ptr %9, align 8, !tbaa !13 - %34 = mul nsw i64 %32, %.01240.us - %invariant.gep.i.i.i.i.i.i.us = getelementptr double, ptr %33, i64 %34 - %35 = getelementptr inbounds nuw double, ptr %29, i64 %.01240.us - %36 = load double, ptr %35, align 8, !tbaa !44 - br label %37 +_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us.preheader: ; preds = %.lr.ph.split.us + %.pre = load i64, ptr %7, align 8, !tbaa !4 + br label %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us -37: ; preds = %37, %_ZN5Eigen8internal28conditional_aligned_new_autoIdLb1EEEPT_m.exit.i.i.i.i.i.i.us - %.05.i.i.i.i.i.i.us = phi i64 [ 0, %_ZN5Eigen8internal28conditional_aligned_new_autoIdLb1EEEPT_m.exit.i.i.i.i.i.i.us ], [ %45, %37 ] - %38 = mul nsw i64 %.05.i.i.i.i.i.i.us, %31 - %39 = getelementptr inbounds double, ptr %16, i64 %38 +_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us: ; preds = %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us.preheader, %_ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINS8_18scalar_constant_opIdEEKNS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS1_IKNS_7ProductINS2_IdLin1ELin1ELi0ELin1ELin1EEENS_14DiagonalMatrixIdLin1ELin1EEELi1EEELin1ELi1ELb1EEEEEEERS4_RKNS0_IT_EE.exit.loopexit.us + %.01240.us = phi i64 [ %47, %_ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINS8_18scalar_constant_opIdEEKNS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS1_IKNS_7ProductINS2_IdLin1ELin1ELi0ELin1ELin1EEENS_14DiagonalMatrixIdLin1ELin1EEELi1EEELin1ELi1ELb1EEEEEEERS4_RKNS0_IT_EE.exit.loopexit.us ], [ 0, %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us.preheader ] + %23 = load double, ptr %3, align 8, !tbaa !44 + %24 = mul nsw i64 %.pre, %.01240.us + %25 = getelementptr inbounds double, ptr %.sroa.025.0.copyload, i64 %24 + %26 = load double, ptr %25, align 8, !tbaa !44 + %27 = fmul double %23, %26 + %28 = tail call noalias ptr @malloc(i64 noundef %13) #21, !noalias !1007 + %29 = icmp eq ptr %28, null + br i1 %29, label %.split42.us, label %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.us + +_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.us: ; preds = %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %28, ptr align 8 %14, i64 %13, i1 false), !noalias !1007 + %30 = tail call noalias ptr @malloc(i64 noundef %13) #21 + %31 = icmp eq ptr %30, null + br i1 %31, label %.split44.us, label %_ZN5Eigen8internal28conditional_aligned_new_autoIdLb1EEEPT_m.exit.i.i.i.i.i.i.us + +_ZN5Eigen8internal28conditional_aligned_new_autoIdLb1EEEPT_m.exit.i.i.i.i.i.i.us: ; preds = %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.us + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %30, ptr nonnull align 8 %28, i64 %13, i1 false) + %32 = load i64, ptr %18, align 8, !tbaa !772 + %33 = load i64, ptr %22, align 8, !tbaa !4 + %34 = load ptr, ptr %8, align 8, !tbaa !13 + %35 = mul nsw i64 %33, %.01240.us + %invariant.gep.i.i.i.i.i.i.us = getelementptr double, ptr %34, i64 %35 + %36 = getelementptr inbounds nuw double, ptr %30, i64 %.01240.us + %37 = load double, ptr %36, align 8, !tbaa !44 + br label %38 + +38: ; preds = %38, %_ZN5Eigen8internal28conditional_aligned_new_autoIdLb1EEEPT_m.exit.i.i.i.i.i.i.us + %.05.i.i.i.i.i.i.us = phi i64 [ 0, %_ZN5Eigen8internal28conditional_aligned_new_autoIdLb1EEEPT_m.exit.i.i.i.i.i.i.us ], [ %46, %38 ] + %39 = mul nsw i64 %.05.i.i.i.i.i.i.us, %32 + %40 = getelementptr inbounds double, ptr %15, i64 %39 %gep.i.i.i.i.i.i.us = getelementptr double, ptr %invariant.gep.i.i.i.i.i.i.us, i64 %.05.i.i.i.i.i.i.us - %40 = load double, ptr %gep.i.i.i.i.i.i.us, align 8, !tbaa !44 - %41 = fmul double %40, %36 - %42 = fmul double %28, %41 - %43 = load double, ptr %39, align 8, !tbaa !44 - %44 = fadd double %43, %42 - store double %44, ptr %39, align 8, !tbaa !44 - %45 = add nuw nsw i64 %.05.i.i.i.i.i.i.us, 1 - %exitcond.not.i.i.i.i.i.i.us = icmp eq i64 %45, %.fr49 - br i1 %exitcond.not.i.i.i.i.i.i.us, label %_ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINS8_18scalar_constant_opIdEEKNS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS1_IKNS_7ProductINS2_IdLin1ELin1ELi0ELin1ELin1EEENS_14DiagonalMatrixIdLin1ELin1EEELi1EEELin1ELi1ELb1EEEEEEERS4_RKNS0_IT_EE.exit.loopexit.us, label %37, !llvm.loop !1010 - -_ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINS8_18scalar_constant_opIdEEKNS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS1_IKNS_7ProductINS2_IdLin1ELin1ELi0ELin1ELin1EEENS_14DiagonalMatrixIdLin1ELin1EEELi1EEELin1ELi1ELb1EEEEEEERS4_RKNS0_IT_EE.exit.loopexit.us: ; preds = %37 - tail call void @free(ptr noundef nonnull %29) #22 - %46 = add nuw nsw i64 %.01240.us, 1 - %exitcond57.not = icmp eq i64 %46, %5 + %41 = load double, ptr %gep.i.i.i.i.i.i.us, align 8, !tbaa !44 + %42 = fmul double %41, %37 + %43 = fmul double %27, %42 + %44 = load double, ptr %40, align 8, !tbaa !44 + %45 = fadd double %44, %43 + store double %45, ptr %40, align 8, !tbaa !44 + %46 = add nuw nsw i64 %.05.i.i.i.i.i.i.us, 1 + %exitcond.not.i.i.i.i.i.i.us = icmp eq i64 %46, %.fr49 + br i1 %exitcond.not.i.i.i.i.i.i.us, label %_ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINS8_18scalar_constant_opIdEEKNS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS1_IKNS_7ProductINS2_IdLin1ELin1ELi0ELin1ELin1EEENS_14DiagonalMatrixIdLin1ELin1EEELi1EEELin1ELi1ELb1EEEEEEERS4_RKNS0_IT_EE.exit.loopexit.us, label %38, !llvm.loop !1010 + +_ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINS8_18scalar_constant_opIdEEKNS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS1_IKNS_7ProductINS2_IdLin1ELin1ELi0ELin1ELin1EEENS_14DiagonalMatrixIdLin1ELin1EEELi1EEELin1ELi1ELb1EEEEEEERS4_RKNS0_IT_EE.exit.loopexit.us: ; preds = %38 + tail call void @free(ptr noundef nonnull %30) #22 + tail call void @free(ptr noundef nonnull %28) #22 + %47 = add nuw nsw i64 %.01240.us, 1 + %exitcond57.not = icmp eq i64 %47, %5 br i1 %exitcond57.not, label %._crit_edge, label %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us, !llvm.loop !1011 .lr.ph.split: ; preds = %.lr.ph - br i1 %13, label %._crit_edge, label %.split.us + br i1 %12, label %._crit_edge, label %.split.us ._crit_edge: ; preds = %_ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINS8_18scalar_constant_opIdEEKNS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS1_IKNS_7ProductINS2_IdLin1ELin1ELi0ELin1ELin1EEENS_14DiagonalMatrixIdLin1ELin1EEELi1EEELin1ELi1ELb1EEEEEEERS4_RKNS0_IT_EE.exit.loopexit.us, %.lr.ph.split, %4 ret void .split.us: ; preds = %.lr.ph.split, %.lr.ph.split.us - %47 = tail call ptr @__cxa_allocate_exception(i64 8) #22, !noalias !1007 - store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %47, align 8, !tbaa !11, !noalias !1007 - tail call void @__cxa_throw(ptr nonnull %47, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #23, !noalias !1007 + %48 = tail call ptr @__cxa_allocate_exception(i64 8) #22, !noalias !1007 + store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %48, align 8, !tbaa !11, !noalias !1007 + tail call void @__cxa_throw(ptr nonnull %48, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #23, !noalias !1007 unreachable -.split44.us: ; preds = %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us - %48 = tail call ptr @__cxa_allocate_exception(i64 8) #22 - store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %48, align 8, !tbaa !11 - tail call void @__cxa_throw(ptr nonnull %48, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #23 +.split42.us: ; preds = %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us + %49 = tail call ptr @__cxa_allocate_exception(i64 8) #22, !noalias !1007 + store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %49, align 8, !tbaa !11, !noalias !1007 + tail call void @__cxa_throw(ptr nonnull %49, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #23, !noalias !1007 unreachable + +.split44.us: ; preds = %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.us + %50 = tail call ptr @__cxa_allocate_exception(i64 8) #22 + store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %50, align 8, !tbaa !11 + invoke void @__cxa_throw(ptr nonnull %50, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #23 + to label %.noexc14 unwind label %51 + +.noexc14: ; preds = %.split44.us + unreachable + +51: ; preds = %.split44.us + %52 = landingpad { ptr, i32 } + cleanup + tail call void @free(ptr noundef nonnull %28) #22 + resume { ptr, i32 } %52 } ; Function Attrs: inlinehint mustprogress uwtable @@ -23042,7 +23067,7 @@ _ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i5: ; preds = unreachable _ZN5Eigen8internal28conditional_aligned_new_autoIdLb1EEEPT_m.exit.i.i.i.i.i.i6: ; preds = %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i5 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %20, ptr align 8 %18, i64 %13, i1 false) + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %20, ptr nonnull align 8 %14, i64 %13, i1 false) br label %24 24: ; preds = %_ZN5Eigen8internal28conditional_aligned_new_autoIdLb1EEEPT_m.exit.i.i.i.i.i.i6.thread, %_ZN5Eigen8internal28conditional_aligned_new_autoIdLb1EEEPT_m.exit.i.i.i.i.i.i6 @@ -24059,7 +24084,7 @@ attributes #3 = { mustprogress nounwind willreturn allockind("free") memory(argm attributes #4 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { cold noreturn } -attributes #7 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { inlinehint mustprogress uwtable "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #10 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } diff --git a/bench/libpng/optimized/pngmem.ll b/bench/libpng/optimized/pngmem.ll index 9f38ea37964..ffae34e934e 100644 --- a/bench/libpng/optimized/pngmem.ll +++ b/bench/libpng/optimized/pngmem.ll @@ -85,12 +85,14 @@ declare void @png_free_jmpbuf(ptr noundef) local_unnamed_addr #3 ; Function Attrs: nounwind uwtable define noalias ptr @png_calloc(ptr noalias noundef %0, i64 noundef %1) local_unnamed_addr #0 { + tail call void @llvm.experimental.noalias.scope.decl(metadata !43) %3 = icmp eq ptr %0, null br i1 %3, label %png_malloc.exit.thread, label %4 4: ; preds = %2 + tail call void @llvm.experimental.noalias.scope.decl(metadata !46) %5 = getelementptr inbounds nuw i8, ptr %0, i64 1064 - %6 = load ptr, ptr %5, align 8, !tbaa !43, !alias.scope !44 + %6 = load ptr, ptr %5, align 8, !tbaa !49, !alias.scope !50 %.not9.i.i = icmp eq ptr %6, null br i1 %.not9.i.i, label %9, label %7 @@ -99,7 +101,7 @@ define noalias ptr @png_calloc(ptr noalias noundef %0, i64 noundef %1) local_unn br label %png_malloc_base.exit.i 9: ; preds = %4 - %10 = tail call noalias ptr @malloc(i64 noundef %1) #14 + %10 = tail call noalias ptr @malloc(i64 noundef %1) #14, !noalias !50 br label %png_malloc_base.exit.i png_malloc_base.exit.i: ; preds = %9, %7 @@ -126,8 +128,9 @@ define noalias ptr @png_malloc(ptr noalias noundef %0, i64 noundef %1) local_unn br i1 %3, label %13, label %4 4: ; preds = %2 + tail call void @llvm.experimental.noalias.scope.decl(metadata !51) %5 = getelementptr inbounds nuw i8, ptr %0, i64 1064 - %6 = load ptr, ptr %5, align 8, !tbaa !43, !alias.scope !49 + %6 = load ptr, ptr %5, align 8, !tbaa !49, !alias.scope !51 %.not9.i = icmp eq ptr %6, null br i1 %.not9.i, label %9, label %7 @@ -136,7 +139,7 @@ define noalias ptr @png_malloc(ptr noalias noundef %0, i64 noundef %1) local_unn br label %png_malloc_base.exit 9: ; preds = %4 - %10 = tail call noalias ptr @malloc(i64 noundef %1) #14 + %10 = tail call noalias ptr @malloc(i64 noundef %1) #14, !noalias !51 br label %png_malloc_base.exit png_malloc_base.exit: ; preds = %7, %9 @@ -160,7 +163,7 @@ define noalias ptr @png_malloc_base(ptr noalias noundef %0, i64 noundef %1) loca 3: ; preds = %2 %4 = getelementptr inbounds nuw i8, ptr %0, i64 1064 - %5 = load ptr, ptr %4, align 8, !tbaa !43 + %5 = load ptr, ptr %4, align 8, !tbaa !49 %.not9 = icmp eq ptr %5, null br i1 %.not9, label %8, label %6 @@ -177,7 +180,7 @@ define noalias ptr @png_malloc_base(ptr noalias noundef %0, i64 noundef %1) loca ret ptr %.0 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #4 ; Function Attrs: nounwind uwtable @@ -192,6 +195,7 @@ define noalias ptr @png_malloc_array(ptr noalias noundef %0, i32 noundef %1, i64 unreachable 7: ; preds = %3 + tail call void @llvm.experimental.noalias.scope.decl(metadata !54) %8 = zext nneg i32 %1 to i64 %mul.i = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 range(i64 1, 0) %2, i64 %8) %mul.ov.i = extractvalue { i64, i1 } %mul.i, 1 @@ -199,12 +203,13 @@ define noalias ptr @png_malloc_array(ptr noalias noundef %0, i32 noundef %1, i64 9: ; preds = %7 %10 = mul i64 %2, %8 + tail call void @llvm.experimental.noalias.scope.decl(metadata !57) %.not.i.i = icmp eq ptr %0, null br i1 %.not.i.i, label %16, label %11 11: ; preds = %9 %12 = getelementptr inbounds nuw i8, ptr %0, i64 1064 - %13 = load ptr, ptr %12, align 8, !tbaa !43, !alias.scope !52 + %13 = load ptr, ptr %12, align 8, !tbaa !49, !alias.scope !60 %.not9.i.i = icmp eq ptr %13, null br i1 %.not9.i.i, label %16, label %14 @@ -213,7 +218,7 @@ define noalias ptr @png_malloc_array(ptr noalias noundef %0, i32 noundef %1, i64 br label %png_malloc_array_checked.exit 16: ; preds = %11, %9 - %17 = tail call noalias ptr @malloc(i64 noundef %10) #14 + %17 = tail call noalias ptr @malloc(i64 noundef %10) #14, !noalias !60 br label %png_malloc_array_checked.exit png_malloc_array_checked.exit: ; preds = %7, %14, %16 @@ -250,6 +255,7 @@ define noalias ptr @png_realloc_array(ptr noalias noundef %0, ptr noundef readon 15: ; preds = %13 %16 = add nuw nsw i32 %3, %2 + tail call void @llvm.experimental.noalias.scope.decl(metadata !61) %17 = zext nneg i32 %16 to i64 %mul.i = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 range(i64 1, 0) %4, i64 %17) %mul.ov.i = extractvalue { i64, i1 } %mul.i, 1 @@ -257,12 +263,13 @@ define noalias ptr @png_realloc_array(ptr noalias noundef %0, ptr noundef readon 18: ; preds = %15 %19 = mul i64 %4, %17 + tail call void @llvm.experimental.noalias.scope.decl(metadata !64) %.not.i.i = icmp eq ptr %0, null br i1 %.not.i.i, label %25, label %20 20: ; preds = %18 %21 = getelementptr inbounds nuw i8, ptr %0, i64 1064 - %22 = load ptr, ptr %21, align 8, !tbaa !43, !alias.scope !57 + %22 = load ptr, ptr %21, align 8, !tbaa !49, !alias.scope !67 %.not9.i.i = icmp eq ptr %22, null br i1 %.not9.i.i, label %25, label %23 @@ -271,7 +278,7 @@ define noalias ptr @png_realloc_array(ptr noalias noundef %0, ptr noundef readon br label %png_malloc_array_checked.exit 25: ; preds = %20, %18 - %26 = tail call noalias ptr @malloc(i64 noundef %19) #14 + %26 = tail call noalias ptr @malloc(i64 noundef %19) #14, !noalias !67 br label %png_malloc_array_checked.exit png_malloc_array_checked.exit: ; preds = %23, %25 @@ -307,7 +314,7 @@ define noalias noundef ptr @png_malloc_default(ptr noalias noundef %0, i64 nound br i1 %3, label %8, label %4 4: ; preds = %2 - %5 = tail call noalias ptr @malloc(i64 noundef %1) #14 + %5 = tail call noalias ptr @malloc(i64 noundef %1) #14, !noalias !68 %6 = icmp eq ptr %5, null br i1 %6, label %7, label %8 @@ -326,8 +333,9 @@ define noalias ptr @png_malloc_warn(ptr noalias noundef %0, i64 noundef %1) loca br i1 %.not, label %10, label %3 3: ; preds = %2 + tail call void @llvm.experimental.noalias.scope.decl(metadata !71) %4 = getelementptr inbounds nuw i8, ptr %0, i64 1064 - %5 = load ptr, ptr %4, align 8, !tbaa !43, !alias.scope !62 + %5 = load ptr, ptr %4, align 8, !tbaa !49, !alias.scope !71 %.not9.i = icmp eq ptr %5, null br i1 %.not9.i, label %8, label %6 @@ -336,7 +344,7 @@ define noalias ptr @png_malloc_warn(ptr noalias noundef %0, i64 noundef %1) loca br label %png_malloc_base.exit 8: ; preds = %3 - %9 = tail call noalias ptr @malloc(i64 noundef %1) #14 + %9 = tail call noalias ptr @malloc(i64 noundef %1) #14, !noalias !71 br label %png_malloc_base.exit png_malloc_base.exit: ; preds = %6, %8 @@ -380,9 +388,9 @@ define void @png_set_mem_fn(ptr noalias noundef writeonly captures(address_is_nu 5: ; preds = %4 %6 = getelementptr inbounds nuw i8, ptr %0, i64 1056 - store ptr %1, ptr %6, align 8, !tbaa !65 + store ptr %1, ptr %6, align 8, !tbaa !74 %7 = getelementptr inbounds nuw i8, ptr %0, i64 1064 - store ptr %2, ptr %7, align 8, !tbaa !43 + store ptr %2, ptr %7, align 8, !tbaa !49 %8 = getelementptr inbounds nuw i8, ptr %0, i64 1072 store ptr %3, ptr %8, align 8, !tbaa !30 br label %9 @@ -398,7 +406,7 @@ define ptr @png_get_mem_ptr(ptr noalias noundef readonly captures(address_is_nul 3: ; preds = %1 %4 = getelementptr inbounds nuw i8, ptr %0, i64 1056 - %5 = load ptr, ptr %4, align 8, !tbaa !65 + %5 = load ptr, ptr %4, align 8, !tbaa !74 br label %6 6: ; preds = %1, %3 @@ -422,7 +430,7 @@ attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-mat attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -480,26 +488,35 @@ attributes #15 = { noreturn nounwind } !40 = !{!41} !41 = distinct !{!41, !42, !"png_free_default: argument 0"} !42 = distinct !{!42, !"png_free_default"} -!43 = !{!31, !8, i64 1064} -!44 = !{!45, !47} -!45 = distinct !{!45, !46, !"png_malloc_base: argument 0"} -!46 = distinct !{!46, !"png_malloc_base"} -!47 = distinct !{!47, !48, !"png_malloc: argument 0"} -!48 = distinct !{!48, !"png_malloc"} -!49 = !{!50} -!50 = distinct !{!50, !51, !"png_malloc_base: argument 0"} -!51 = distinct !{!51, !"png_malloc_base"} -!52 = !{!53, !55} -!53 = distinct !{!53, !54, !"png_malloc_base: argument 0"} -!54 = distinct !{!54, !"png_malloc_base"} +!43 = !{!44} +!44 = distinct !{!44, !45, !"png_malloc: argument 0"} +!45 = distinct !{!45, !"png_malloc"} +!46 = !{!47} +!47 = distinct !{!47, !48, !"png_malloc_base: argument 0"} +!48 = distinct !{!48, !"png_malloc_base"} +!49 = !{!31, !8, i64 1064} +!50 = !{!47, !44} +!51 = !{!52} +!52 = distinct !{!52, !53, !"png_malloc_base: argument 0"} +!53 = distinct !{!53, !"png_malloc_base"} +!54 = !{!55} !55 = distinct !{!55, !56, !"png_malloc_array_checked: argument 0"} !56 = distinct !{!56, !"png_malloc_array_checked"} -!57 = !{!58, !60} +!57 = !{!58} !58 = distinct !{!58, !59, !"png_malloc_base: argument 0"} !59 = distinct !{!59, !"png_malloc_base"} -!60 = distinct !{!60, !61, !"png_malloc_array_checked: argument 0"} -!61 = distinct !{!61, !"png_malloc_array_checked"} -!62 = !{!63} -!63 = distinct !{!63, !64, !"png_malloc_base: argument 0"} -!64 = distinct !{!64, !"png_malloc_base"} -!65 = !{!31, !8, i64 1056} +!60 = !{!58, !55} +!61 = !{!62} +!62 = distinct !{!62, !63, !"png_malloc_array_checked: argument 0"} +!63 = distinct !{!63, !"png_malloc_array_checked"} +!64 = !{!65} +!65 = distinct !{!65, !66, !"png_malloc_base: argument 0"} +!66 = distinct !{!66, !"png_malloc_base"} +!67 = !{!65, !62} +!68 = !{!69} +!69 = distinct !{!69, !70, !"png_malloc_base: argument 0"} +!70 = distinct !{!70, !"png_malloc_base"} +!71 = !{!72} +!72 = distinct !{!72, !73, !"png_malloc_base: argument 0"} +!73 = distinct !{!73, !"png_malloc_base"} +!74 = !{!31, !8, i64 1056} diff --git a/bench/libquic/optimized/a_utctm.ll b/bench/libquic/optimized/a_utctm.ll index 228ed07fb27..005592457e7 100644 --- a/bench/libquic/optimized/a_utctm.ll +++ b/bench/libquic/optimized/a_utctm.ll @@ -456,13 +456,12 @@ define hidden ptr @ASN1_UTCTIME_adj(ptr noundef %0, i64 noundef %1, i32 noundef 35: ; preds = %.thread52 call void @free(ptr noundef nonnull %24) #6 - %.pre.pre = load i32, ptr %19, align 4, !tbaa !22 br label %36 36: ; preds = %29, %35 - %.pre = phi i32 [ %.pre.pre, %35 ], [ %20, %29 ] %37 = phi ptr [ %32, %35 ], [ %30, %29 ] store ptr %37, ptr %23, align 8, !tbaa !15 + %.pre = load i32, ptr %19, align 4, !tbaa !22 br label %38 38: ; preds = %36, %26 @@ -504,7 +503,7 @@ declare ptr @ASN1_STRING_type_new(i32 noundef) local_unnamed_addr #1 declare ptr @OPENSSL_gmtime(ptr noundef, ptr noundef) local_unnamed_addr #1 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #3 declare void @ERR_put_error(i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #1 @@ -581,7 +580,7 @@ declare void @llvm.lifetime.end.p0(ptr captures(none)) #5 attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #6 = { nounwind } diff --git a/bench/libquic/optimized/cipher.ll b/bench/libquic/optimized/cipher.ll index c0c5bdf15ca..ce7c900cf35 100644 --- a/bench/libquic/optimized/cipher.ll +++ b/bench/libquic/optimized/cipher.ll @@ -83,13 +83,13 @@ define hidden void @EVP_CIPHER_CTX_init(ptr noundef writeonly captures(none) ini ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #3 -; Function Attrs: mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite) uwtable +; Function Attrs: mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite, errnomem: write) uwtable define hidden noalias noundef ptr @EVP_CIPHER_CTX_new() local_unnamed_addr #4 { %calloc = tail call dereferenceable_or_null(152) ptr @calloc(i64 1, i64 152) ret ptr %calloc } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #5 ; Function Attrs: nounwind uwtable @@ -186,7 +186,7 @@ define hidden i32 @EVP_CIPHER_CTX_copy(ptr noundef %0, ptr noundef %1) local_unn 7: ; preds = %4, %2 tail call void @ERR_put_error(i32 noundef 30, i32 noundef 0, i32 noundef 108, ptr noundef nonnull @.str, i32 noundef 124) #14 - br label %42 + br label %44 8: ; preds = %4 %9 = load ptr, ptr %0, align 8, !tbaa !6 @@ -224,13 +224,13 @@ EVP_CIPHER_CTX_cleanup.exit: ; preds = %8, %14 %24 = load ptr, ptr %23, align 8, !tbaa !15 %.not = icmp eq ptr %24, null %.pre = load ptr, ptr %1, align 8, !tbaa !6 - br i1 %.not, label %34, label %25 + br i1 %.not, label %36, label %25 25: ; preds = %EVP_CIPHER_CTX_cleanup.exit %26 = getelementptr inbounds nuw i8, ptr %.pre, i64 16 %27 = load i32, ptr %26, align 8, !tbaa !16 %.not20 = icmp eq i32 %27, 0 - br i1 %.not20, label %34, label %28 + br i1 %.not20, label %36, label %28 28: ; preds = %25 %29 = zext i32 %27 to i64 @@ -241,28 +241,30 @@ EVP_CIPHER_CTX_cleanup.exit: ; preds = %8, %14 31: ; preds = %28 tail call void @ERR_put_error(i32 noundef 30, i32 noundef 0, i32 noundef 65, ptr noundef nonnull @.str, i32 noundef 134) #14 - br label %42 + br label %44 32: ; preds = %28 %33 = load ptr, ptr %23, align 8, !tbaa !15 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %30, ptr align 1 %33, i64 %29, i1 false) - br label %34 - -34: ; preds = %32, %25, %EVP_CIPHER_CTX_cleanup.exit - %35 = getelementptr inbounds nuw i8, ptr %.pre, i64 20 - %36 = load i32, ptr %35, align 4, !tbaa !17 - %37 = and i32 %36, 4096 - %.not22 = icmp eq i32 %37, 0 - br i1 %.not22, label %42, label %38 - -38: ; preds = %34 - %39 = getelementptr inbounds nuw i8, ptr %.pre, i64 56 - %40 = load ptr, ptr %39, align 8, !tbaa !18 - %41 = tail call i32 %40(ptr noundef nonnull %1, i32 noundef 8, i32 noundef 0, ptr noundef nonnull %0) #14 - br label %42 - -42: ; preds = %34, %38, %31, %7 - %.0 = phi i32 [ 0, %7 ], [ %41, %38 ], [ 0, %31 ], [ 1, %34 ] + %34 = load i32, ptr %26, align 8, !tbaa !16 + %35 = zext i32 %34 to i64 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %30, ptr align 1 %33, i64 %35, i1 false) + br label %36 + +36: ; preds = %32, %25, %EVP_CIPHER_CTX_cleanup.exit + %37 = getelementptr inbounds nuw i8, ptr %.pre, i64 20 + %38 = load i32, ptr %37, align 4, !tbaa !17 + %39 = and i32 %38, 4096 + %.not22 = icmp eq i32 %39, 0 + br i1 %.not22, label %44, label %40 + +40: ; preds = %36 + %41 = getelementptr inbounds nuw i8, ptr %.pre, i64 56 + %42 = load ptr, ptr %41, align 8, !tbaa !18 + %43 = tail call i32 %42(ptr noundef nonnull %1, i32 noundef 8, i32 noundef 0, ptr noundef nonnull %0) #14 + br label %44 + +44: ; preds = %36, %40, %31, %7 + %.0 = phi i32 [ 0, %7 ], [ %43, %40 ], [ 0, %31 ], [ 1, %36 ] ret i32 %.0 } @@ -1438,7 +1440,7 @@ declare ptr @EVP_aes_128_ecb() local_unnamed_addr #1 declare ptr @EVP_aes_256_ecb() local_unnamed_addr #1 -; Function Attrs: nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #12 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) @@ -1448,15 +1450,15 @@ attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-mat attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #4 = { mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite, errnomem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #8 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #10 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #11 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" } +attributes #12 = { nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" } attributes #13 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #14 = { nounwind } attributes #15 = { nounwind allocsize(0) } diff --git a/bench/libquic/optimized/e_aes.ll b/bench/libquic/optimized/e_aes.ll index 6deb28bcf8d..d05e856b1c7 100644 --- a/bench/libquic/optimized/e_aes.ll +++ b/bench/libquic/optimized/e_aes.ll @@ -801,7 +801,7 @@ define internal void @aes_gcm_cleanup(ptr noundef readonly captures(address) %0) define internal range(i32 -1, 2) i32 @aes_gcm_ctrl(ptr noundef %0, i32 noundef %1, i32 noundef %2, ptr noundef %3) #2 { %5 = getelementptr inbounds nuw i8, ptr %0, i64 16 %6 = load ptr, ptr %5, align 8, !tbaa !10 - switch i32 %1, label %165 [ + switch i32 %1, label %167 [ i32 0, label %7 i32 9, label %18 i32 17, label %36 @@ -829,11 +829,11 @@ define internal range(i32 -1, 2) i32 @aes_gcm_ctrl(ptr noundef %0, i32 noundef % store i32 -1, ptr %16, align 4, !tbaa !33 %17 = getelementptr inbounds nuw i8, ptr %6, i64 656 store i32 0, ptr %17, align 8, !tbaa !35 - br label %165 + br label %167 18: ; preds = %4 %19 = icmp slt i32 %2, 1 - br i1 %19, label %165, label %20 + br i1 %19, label %167, label %20 20: ; preds = %18 %21 = icmp samesign ugt i32 %2, 16 @@ -861,23 +861,23 @@ define internal range(i32 -1, 2) i32 @aes_gcm_ctrl(ptr noundef %0, i32 noundef % %33 = tail call noalias ptr @malloc(i64 noundef %32) #11 store ptr %33, ptr %27, align 8, !tbaa !30 %.not111 = icmp eq ptr %33, null - br i1 %.not111, label %165, label %34 + br i1 %.not111, label %167, label %34 34: ; preds = %31, %22, %20 %35 = getelementptr inbounds nuw i8, ptr %6, i64 648 store i32 %2, ptr %35, align 8, !tbaa !31 - br label %165 + br label %167 36: ; preds = %4 %37 = add i32 %2, -17 %or.cond = icmp ult i32 %37, -16 - br i1 %or.cond, label %165, label %38 + br i1 %or.cond, label %167, label %38 38: ; preds = %36 %39 = getelementptr inbounds nuw i8, ptr %0, i64 28 %40 = load i32, ptr %39, align 4, !tbaa !21 %.not109 = icmp eq i32 %40, 0 - br i1 %.not109, label %41, label %165 + br i1 %.not109, label %41, label %167 41: ; preds = %38 %42 = getelementptr inbounds nuw i8, ptr %0, i64 68 @@ -885,30 +885,30 @@ define internal range(i32 -1, 2) i32 @aes_gcm_ctrl(ptr noundef %0, i32 noundef % tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %42, ptr align 1 %3, i64 %43, i1 false) %44 = getelementptr inbounds nuw i8, ptr %6, i64 652 store i32 %2, ptr %44, align 4, !tbaa !33 - br label %165 + br label %167 45: ; preds = %4 %46 = add i32 %2, -17 %or.cond3 = icmp ult i32 %46, -16 - br i1 %or.cond3, label %165, label %47 + br i1 %or.cond3, label %167, label %47 47: ; preds = %45 %48 = getelementptr inbounds nuw i8, ptr %0, i64 28 %49 = load i32, ptr %48, align 4, !tbaa !21 %.not108 = icmp eq i32 %49, 0 - br i1 %.not108, label %165, label %50 + br i1 %.not108, label %167, label %50 50: ; preds = %47 %51 = getelementptr inbounds nuw i8, ptr %6, i64 652 %52 = load i32, ptr %51, align 4, !tbaa !33 %53 = icmp slt i32 %52, 0 - br i1 %53, label %165, label %54 + br i1 %53, label %167, label %54 54: ; preds = %50 %55 = getelementptr inbounds nuw i8, ptr %0, i64 68 %56 = zext nneg i32 %2 to i64 tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %3, ptr nonnull align 4 %55, i64 %56, i1 false) - br label %165 + br label %167 57: ; preds = %4 %58 = icmp eq i32 %2, -1 @@ -923,18 +923,18 @@ define internal range(i32 -1, 2) i32 @aes_gcm_ctrl(ptr noundef %0, i32 noundef % tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %61, ptr align 1 %3, i64 %64, i1 false) %65 = getelementptr inbounds nuw i8, ptr %6, i64 656 store i32 1, ptr %65, align 8, !tbaa !35 - br label %165 + br label %167 66: ; preds = %57 %67 = icmp slt i32 %2, 4 - br i1 %67, label %165, label %68 + br i1 %67, label %167, label %68 68: ; preds = %66 %69 = getelementptr inbounds nuw i8, ptr %6, i64 648 %70 = load i32, ptr %69, align 8, !tbaa !31 %71 = sub nsw i32 %70, %2 %72 = icmp slt i32 %71, 8 - br i1 %72, label %165, label %73 + br i1 %72, label %167, label %73 73: ; preds = %68 %74 = getelementptr inbounds nuw i8, ptr %6, i64 640 @@ -954,24 +954,24 @@ define internal range(i32 -1, 2) i32 @aes_gcm_ctrl(ptr noundef %0, i32 noundef % %84 = sext i32 %83 to i64 %85 = tail call i32 @RAND_bytes(ptr noundef nonnull %81, i64 noundef %84) #10 %.not107 = icmp eq i32 %85, 0 - br i1 %.not107, label %165, label %86 + br i1 %.not107, label %167, label %86 86: ; preds = %79, %73 %87 = getelementptr inbounds nuw i8, ptr %6, i64 656 store i32 1, ptr %87, align 8, !tbaa !35 - br label %165 + br label %167 88: ; preds = %4 %89 = getelementptr inbounds nuw i8, ptr %6, i64 656 %90 = load i32, ptr %89, align 8, !tbaa !35 %91 = icmp eq i32 %90, 0 - br i1 %91, label %165, label %92 + br i1 %91, label %167, label %92 92: ; preds = %88 %93 = getelementptr inbounds nuw i8, ptr %6, i64 248 %94 = load i32, ptr %93, align 8, !tbaa !32 %95 = icmp eq i32 %94, 0 - br i1 %95, label %165, label %96 + br i1 %95, label %167, label %96 96: ; preds = %92 %97 = getelementptr inbounds nuw i8, ptr %6, i64 256 @@ -1014,25 +1014,25 @@ define internal range(i32 -1, 2) i32 @aes_gcm_ctrl(ptr noundef %0, i32 noundef % ctr64_inc.exit: ; preds = %116 %120 = getelementptr inbounds nuw i8, ptr %6, i64 252 store i32 1, ptr %120, align 4, !tbaa !29 - br label %165 + br label %167 121: ; preds = %4 %122 = getelementptr inbounds nuw i8, ptr %6, i64 656 %123 = load i32, ptr %122, align 8, !tbaa !35 %124 = icmp eq i32 %123, 0 - br i1 %124, label %165, label %125 + br i1 %124, label %167, label %125 125: ; preds = %121 %126 = getelementptr inbounds nuw i8, ptr %6, i64 248 %127 = load i32, ptr %126, align 8, !tbaa !32 %128 = icmp eq i32 %127, 0 - br i1 %128, label %165, label %129 + br i1 %128, label %167, label %129 129: ; preds = %125 %130 = getelementptr inbounds nuw i8, ptr %0, i64 28 %131 = load i32, ptr %130, align 4, !tbaa !21 %.not105 = icmp eq i32 %131, 0 - br i1 %.not105, label %132, label %165 + br i1 %.not105, label %132, label %167 132: ; preds = %129 %133 = getelementptr inbounds nuw i8, ptr %6, i64 640 @@ -1052,7 +1052,7 @@ ctr64_inc.exit: ; preds = %116 tail call void @CRYPTO_gcm128_setiv(ptr noundef nonnull %142, ptr noundef nonnull %6, ptr noundef %143, i64 noundef %145) #10 %146 = getelementptr inbounds nuw i8, ptr %6, i64 252 store i32 1, ptr %146, align 4, !tbaa !29 - br label %165 + br label %167 147: ; preds = %4 %148 = getelementptr inbounds nuw i8, ptr %3, i64 16 @@ -1067,7 +1067,7 @@ ctr64_inc.exit: ; preds = %116 %155 = getelementptr inbounds nuw i8, ptr %3, i64 52 %156 = getelementptr inbounds nuw i8, ptr %149, i64 640 store ptr %155, ptr %156, align 8, !tbaa !30 - br label %165 + br label %167 157: ; preds = %147 %158 = getelementptr inbounds nuw i8, ptr %6, i64 648 @@ -1077,14 +1077,16 @@ ctr64_inc.exit: ; preds = %116 %162 = getelementptr inbounds nuw i8, ptr %149, i64 640 store ptr %161, ptr %162, align 8, !tbaa !30 %.not = icmp eq ptr %161, null - br i1 %.not, label %165, label %163 + br i1 %.not, label %167, label %163 163: ; preds = %157 %164 = load ptr, ptr %150, align 8, !tbaa !30 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %161, ptr align 1 %164, i64 %160, i1 false) - br label %165 + %165 = load i32, ptr %158, align 8, !tbaa !31 + %166 = sext i32 %165 to i64 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %161, ptr align 1 %164, i64 %166, i1 false) + br label %167 -165: ; preds = %4, %157, %163, %154, %121, %125, %129, %88, %92, %79, %66, %68, %45, %47, %50, %36, %38, %31, %18, %132, %ctr64_inc.exit, %86, %59, %54, %41, %34, %7 +167: ; preds = %4, %157, %163, %154, %121, %125, %129, %88, %92, %79, %66, %68, %45, %47, %50, %36, %38, %31, %18, %132, %ctr64_inc.exit, %86, %59, %54, %41, %34, %7 %.0 = phi i32 [ 1, %7 ], [ 1, %34 ], [ 1, %41 ], [ 1, %54 ], [ 1, %59 ], [ 1, %86 ], [ 1, %ctr64_inc.exit ], [ 1, %132 ], [ 0, %18 ], [ 0, %31 ], [ 0, %38 ], [ 0, %36 ], [ 0, %50 ], [ 0, %47 ], [ 0, %45 ], [ 0, %68 ], [ 0, %66 ], [ 0, %79 ], [ 0, %92 ], [ 0, %88 ], [ 0, %129 ], [ 0, %125 ], [ 0, %121 ], [ 0, %157 ], [ 1, %163 ], [ 1, %154 ], [ -1, %4 ] ret i32 %.0 } @@ -1115,7 +1117,7 @@ declare void @OPENSSL_cleanse(ptr noundef, i64 noundef) local_unnamed_addr #3 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #5 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #6 declare i32 @RAND_bytes(ptr noundef, i64 noundef) local_unnamed_addr #3 @@ -2193,7 +2195,7 @@ attributes #2 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-mat attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #5 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #6 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #8 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #9 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } diff --git a/bench/libquic/optimized/rsa_impl.ll b/bench/libquic/optimized/rsa_impl.ll index f4879b8f402..5da55dd7814 100644 --- a/bench/libquic/optimized/rsa_impl.ll +++ b/bench/libquic/optimized/rsa_impl.ll @@ -183,7 +183,7 @@ declare void @BN_CTX_start(ptr noundef) local_unnamed_addr #1 declare ptr @BN_CTX_get(ptr noundef) local_unnamed_addr #1 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #2 declare i32 @RSA_padding_add_PKCS1_type_2(ptr noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #1 @@ -803,7 +803,7 @@ define internal fastcc ptr @rsa_blinding_get(ptr noundef %0, ptr noundef nonnull 20: ; preds = %13 tail call void @CRYPTO_MUTEX_unlock(ptr noundef nonnull %3) #8 - br label %51 + br label %56 thread-pre-split: ; preds = %13 %.pr = load i32, ptr %4, align 8, !tbaa !34 @@ -814,7 +814,7 @@ thread-pre-split: ; preds = %13 tail call void @CRYPTO_MUTEX_unlock(ptr noundef nonnull %3) #8 %22 = tail call ptr @BN_BLINDING_new() #8 %23 = icmp eq ptr %22, null - br i1 %23, label %51, label %24 + br i1 %23, label %56, label %24 24: ; preds = %.thread %25 = icmp ugt i32 %21, 1023 @@ -822,7 +822,7 @@ thread-pre-split: ; preds = %13 26: ; preds = %24 store i32 1024, ptr %1, align 4, !tbaa !24 - br label %51 + br label %56 27: ; preds = %24 tail call void @CRYPTO_MUTEX_lock_write(ptr noundef nonnull %3) #8 @@ -832,49 +832,54 @@ thread-pre-split: ; preds = %13 %31 = shl nuw nsw i64 %30, 3 %32 = tail call noalias ptr @malloc(i64 noundef %31) #9 %33 = icmp eq ptr %32, null - br i1 %33, label %50, label %34 + br i1 %33, label %55, label %34 34: ; preds = %27 %35 = getelementptr inbounds nuw i8, ptr %0, i64 184 %36 = load ptr, ptr %35, align 8, !tbaa !37 - %37 = zext i32 %28 to i64 - %38 = shl nuw nsw i64 %37, 3 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %32, ptr align 8 %36, i64 %38, i1 false) - %39 = getelementptr inbounds nuw ptr, ptr %32, i64 %37 - store ptr %22, ptr %39, align 8, !tbaa !38 - %40 = tail call noalias ptr @malloc(i64 noundef %30) #9 - %41 = icmp eq ptr %40, null - br i1 %41, label %49, label %42 - -42: ; preds = %34 - %43 = getelementptr inbounds nuw i8, ptr %0, i64 192 - %44 = load ptr, ptr %43, align 8, !tbaa !32 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %40, ptr align 1 %44, i64 %37, i1 false) - %45 = getelementptr inbounds nuw i8, ptr %40, i64 %37 - store i8 1, ptr %45, align 1, !tbaa !33 - store i32 %28, ptr %1, align 4, !tbaa !24 + %37 = load i32, ptr %4, align 8, !tbaa !34 + %38 = zext i32 %37 to i64 + %39 = shl nuw nsw i64 %38, 3 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %32, ptr align 8 %36, i64 %39, i1 false) + %40 = getelementptr inbounds nuw ptr, ptr %32, i64 %38 + store ptr %22, ptr %40, align 8, !tbaa !38 + %41 = add i32 %37, 1 + %42 = zext i32 %41 to i64 + %43 = tail call noalias ptr @malloc(i64 noundef %42) #9 + %44 = icmp eq ptr %43, null + br i1 %44, label %54, label %45 + +45: ; preds = %34 + %46 = getelementptr inbounds nuw i8, ptr %0, i64 192 + %47 = load ptr, ptr %46, align 8, !tbaa !32 + %48 = load i32, ptr %4, align 8, !tbaa !34 + %49 = zext i32 %48 to i64 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %43, ptr align 1 %47, i64 %49, i1 false) + %50 = getelementptr inbounds nuw i8, ptr %43, i64 %49 + store i8 1, ptr %50, align 1, !tbaa !33 + store i32 %48, ptr %1, align 4, !tbaa !24 tail call void @free(ptr noundef %36) #8 store ptr %32, ptr %35, align 8, !tbaa !37 - %46 = load ptr, ptr %43, align 8, !tbaa !32 - tail call void @free(ptr noundef %46) #8 - store ptr %40, ptr %43, align 8, !tbaa !32 - %47 = load i32, ptr %4, align 8, !tbaa !34 - %48 = add i32 %47, 1 - store i32 %48, ptr %4, align 8, !tbaa !34 + %51 = load ptr, ptr %46, align 8, !tbaa !32 + tail call void @free(ptr noundef %51) #8 + store ptr %43, ptr %46, align 8, !tbaa !32 + %52 = load i32, ptr %4, align 8, !tbaa !34 + %53 = add i32 %52, 1 + store i32 %53, ptr %4, align 8, !tbaa !34 tail call void @CRYPTO_MUTEX_unlock(ptr noundef nonnull %3) #8 - br label %51 + br label %56 -49: ; preds = %34 +54: ; preds = %34 tail call void @free(ptr noundef nonnull %32) #8 - br label %50 + br label %55 -50: ; preds = %27, %49 +55: ; preds = %27, %54 tail call void @CRYPTO_MUTEX_unlock(ptr noundef nonnull %3) #8 tail call void @BN_BLINDING_free(ptr noundef nonnull %22) #8 - br label %51 + br label %56 -51: ; preds = %.thread, %50, %42, %26, %20 - %.051 = phi ptr [ %19, %20 ], [ %22, %26 ], [ null, %50 ], [ %22, %42 ], [ null, %.thread ] +56: ; preds = %.thread, %55, %45, %26, %20 + %.051 = phi ptr [ %19, %20 ], [ %22, %26 ], [ null, %55 ], [ %22, %45 ], [ null, %.thread ] ret ptr %.051 } @@ -1955,17 +1960,17 @@ declare void @llvm.lifetime.end.p0(ptr captures(none)) #5 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smax.i32(i32, i32) #6 -; Function Attrs: nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #7 attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #5 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #7 = { nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" } +attributes #7 = { nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" } attributes #8 = { nounwind } attributes #9 = { nounwind allocsize(0) } diff --git a/bench/libzmq/optimized/msg.ll b/bench/libzmq/optimized/msg.ll index f4e500555f2..07580982224 100644 --- a/bench/libzmq/optimized/msg.ll +++ b/bench/libzmq/optimized/msg.ll @@ -289,13 +289,13 @@ define noundef range(i32 -1, 1) i32 @_ZN3zmq5msg_t9init_dataEPvmPFvS1_S1_ES1_(pt store ptr null, ptr %0, align 8, !tbaa !3 %15 = getelementptr inbounds nuw i8, ptr %0, i64 42 %16 = getelementptr inbounds nuw i8, ptr %0, i64 43 - %17 = getelementptr inbounds nuw i8, ptr %0, i64 8 - br i1 %14, label %18, label %23 + br i1 %14, label %17, label %23 -18: ; preds = %13 +17: ; preds = %13 store i8 104, ptr %15, align 2, !tbaa !3 store i8 0, ptr %16, align 1, !tbaa !3 - store ptr %1, ptr %17, align 8, !tbaa !3 + %18 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store ptr %1, ptr %18, align 8, !tbaa !3 %19 = getelementptr inbounds nuw i8, ptr %0, i64 16 store i64 %2, ptr %19, align 8, !tbaa !3 %20 = getelementptr inbounds nuw i8, ptr %0, i64 48 @@ -304,35 +304,36 @@ define noundef range(i32 -1, 1) i32 @_ZN3zmq5msg_t9init_dataEPvmPFvS1_S1_ES1_(pt store i8 0, ptr %20, align 8, !tbaa !3 %22 = getelementptr inbounds nuw i8, ptr %0, i64 44 store i32 0, ptr %22, align 4, !tbaa !3 - br label %32 + br label %33 23: ; preds = %13 store i8 102, ptr %15, align 2, !tbaa !3 - %24 = tail call noalias dereferenceable_or_null(40) ptr @malloc(i64 noundef 40) #20 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %16, i8 0, i64 7, i1 false) - store ptr %24, ptr %17, align 8, !tbaa !3 + %24 = tail call noalias dereferenceable_or_null(40) ptr @malloc(i64 noundef 40) #20 + %25 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store ptr %24, ptr %25, align 8, !tbaa !3 %.not = icmp eq ptr %24, null - br i1 %.not, label %25, label %27 + br i1 %.not, label %26, label %28 -25: ; preds = %23 - %26 = tail call ptr @__errno_location() #21 - store i32 12, ptr %26, align 4, !tbaa !22 - br label %32 +26: ; preds = %23 + %27 = tail call ptr @__errno_location() #21 + store i32 12, ptr %27, align 4, !tbaa !22 + br label %33 -27: ; preds = %23 +28: ; preds = %23 store ptr %1, ptr %24, align 8, !tbaa !10 - %28 = getelementptr inbounds nuw i8, ptr %24, i64 8 - store i64 %2, ptr %28, align 8, !tbaa !17 - %29 = getelementptr inbounds nuw i8, ptr %24, i64 16 - store ptr %3, ptr %29, align 8, !tbaa !18 - %30 = getelementptr inbounds nuw i8, ptr %24, i64 24 - store ptr %4, ptr %30, align 8, !tbaa !19 - %31 = getelementptr inbounds nuw i8, ptr %24, i64 32 - store i32 0, ptr %31, align 8, !tbaa !20 - br label %32 - -32: ; preds = %18, %27, %25 - %.0 = phi i32 [ -1, %25 ], [ 0, %27 ], [ 0, %18 ] + %29 = getelementptr inbounds nuw i8, ptr %24, i64 8 + store i64 %2, ptr %29, align 8, !tbaa !17 + %30 = getelementptr inbounds nuw i8, ptr %24, i64 16 + store ptr %3, ptr %30, align 8, !tbaa !18 + %31 = getelementptr inbounds nuw i8, ptr %24, i64 24 + store ptr %4, ptr %31, align 8, !tbaa !19 + %32 = getelementptr inbounds nuw i8, ptr %24, i64 32 + store i32 0, ptr %32, align 8, !tbaa !20 + br label %33 + +33: ; preds = %17, %28, %26 + %.0 = phi i32 [ -1, %26 ], [ 0, %28 ], [ 0, %17 ] ret i32 %.0 } @@ -348,7 +349,7 @@ define noundef i32 @_ZN3zmq5msg_t4initEv(ptr noundef nonnull writeonly align 8 c ret i32 0 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #5 ; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none) @@ -460,7 +461,7 @@ define noundef range(i32 -1, 1) i32 @_ZN3zmq5msg_t14init_subscribeEmPKh(ptr noun store ptr null, ptr %0, align 8, !tbaa !3 %5 = getelementptr inbounds nuw i8, ptr %0, i64 42 %6 = getelementptr inbounds nuw i8, ptr %0, i64 43 - br i1 %4, label %17, label %7 + br i1 %4, label %19, label %7 7: ; preds = %3 store i8 102, ptr %5, align 2, !tbaa !3 @@ -484,36 +485,38 @@ define noundef range(i32 -1, 1) i32 @_ZN3zmq5msg_t14init_subscribeEmPKh(ptr noun store i64 %1, ptr %14, align 8, !tbaa !17 %15 = getelementptr inbounds nuw i8, ptr %12, i64 16 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %15, i8 0, i64 20, i1 false) - store i8 12, ptr %6, align 1, !tbaa !3 - br label %23 + %16 = load i8, ptr %6, align 1, !tbaa !3 + %17 = or i8 %16, 12 + store i8 %17, ptr %6, align 1, !tbaa !3 + br label %25 _ZN3zmq5msg_t9init_sizeEm.exit: ; preds = %7, %10 - %16 = tail call ptr @__errno_location() #21 - store i32 12, ptr %16, align 4, !tbaa !22 - br label %25 + %18 = tail call ptr @__errno_location() #21 + store i32 12, ptr %18, align 4, !tbaa !22 + br label %27 -17: ; preds = %3 +19: ; preds = %3 store i8 101, ptr %5, align 2, !tbaa !3 - %18 = trunc nuw nsw i64 %1 to i8 - %19 = getelementptr inbounds nuw i8, ptr %0, i64 41 - store i8 %18, ptr %19, align 1, !tbaa !3 - %20 = getelementptr inbounds nuw i8, ptr %0, i64 48 - %21 = getelementptr inbounds nuw i8, ptr %0, i64 49 - store i8 0, ptr %21, align 1, !tbaa !3 - store i8 0, ptr %20, align 8, !tbaa !3 - %22 = getelementptr inbounds nuw i8, ptr %0, i64 44 - store i32 0, ptr %22, align 4, !tbaa !3 + %20 = trunc nuw nsw i64 %1 to i8 + %21 = getelementptr inbounds nuw i8, ptr %0, i64 41 + store i8 %20, ptr %21, align 1, !tbaa !3 + %22 = getelementptr inbounds nuw i8, ptr %0, i64 48 + %23 = getelementptr inbounds nuw i8, ptr %0, i64 49 + store i8 0, ptr %23, align 1, !tbaa !3 + store i8 0, ptr %22, align 8, !tbaa !3 + %24 = getelementptr inbounds nuw i8, ptr %0, i64 44 + store i32 0, ptr %24, align 4, !tbaa !3 store i8 12, ptr %6, align 1, !tbaa !3 %.not = icmp eq i64 %1, 0 - br i1 %.not, label %25, label %23 + br i1 %.not, label %27, label %25 -23: ; preds = %.thread, %17 - %24 = tail call noundef ptr @_ZN3zmq5msg_t4dataEv(ptr noundef nonnull align 8 dereferenceable(64) %0) - tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %24, ptr align 1 %2, i64 %1, i1 false) - br label %25 +25: ; preds = %.thread, %19 + %26 = tail call noundef ptr @_ZN3zmq5msg_t4dataEv(ptr noundef nonnull align 8 dereferenceable(64) %0) + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %26, ptr align 1 %2, i64 %1, i1 false) + br label %27 -25: ; preds = %_ZN3zmq5msg_t9init_sizeEm.exit, %17, %23 - %.0.i7 = phi i32 [ 0, %17 ], [ 0, %23 ], [ -1, %_ZN3zmq5msg_t9init_sizeEm.exit ] +27: ; preds = %_ZN3zmq5msg_t9init_sizeEm.exit, %19, %25 + %.0.i7 = phi i32 [ 0, %19 ], [ 0, %25 ], [ -1, %_ZN3zmq5msg_t9init_sizeEm.exit ] ret i32 %.0.i7 } @@ -532,7 +535,7 @@ define noundef range(i32 -1, 1) i32 @_ZN3zmq5msg_t11init_cancelEmPKh(ptr noundef store ptr null, ptr %0, align 8, !tbaa !3 %5 = getelementptr inbounds nuw i8, ptr %0, i64 42 %6 = getelementptr inbounds nuw i8, ptr %0, i64 43 - br i1 %4, label %17, label %7 + br i1 %4, label %19, label %7 7: ; preds = %3 store i8 102, ptr %5, align 2, !tbaa !3 @@ -556,36 +559,38 @@ define noundef range(i32 -1, 1) i32 @_ZN3zmq5msg_t11init_cancelEmPKh(ptr noundef store i64 %1, ptr %14, align 8, !tbaa !17 %15 = getelementptr inbounds nuw i8, ptr %12, i64 16 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %15, i8 0, i64 20, i1 false) - store i8 16, ptr %6, align 1, !tbaa !3 - br label %23 + %16 = load i8, ptr %6, align 1, !tbaa !3 + %17 = or i8 %16, 16 + store i8 %17, ptr %6, align 1, !tbaa !3 + br label %25 _ZN3zmq5msg_t9init_sizeEm.exit: ; preds = %7, %10 - %16 = tail call ptr @__errno_location() #21 - store i32 12, ptr %16, align 4, !tbaa !22 - br label %25 + %18 = tail call ptr @__errno_location() #21 + store i32 12, ptr %18, align 4, !tbaa !22 + br label %27 -17: ; preds = %3 +19: ; preds = %3 store i8 101, ptr %5, align 2, !tbaa !3 - %18 = trunc nuw nsw i64 %1 to i8 - %19 = getelementptr inbounds nuw i8, ptr %0, i64 41 - store i8 %18, ptr %19, align 1, !tbaa !3 - %20 = getelementptr inbounds nuw i8, ptr %0, i64 48 - %21 = getelementptr inbounds nuw i8, ptr %0, i64 49 - store i8 0, ptr %21, align 1, !tbaa !3 - store i8 0, ptr %20, align 8, !tbaa !3 - %22 = getelementptr inbounds nuw i8, ptr %0, i64 44 - store i32 0, ptr %22, align 4, !tbaa !3 + %20 = trunc nuw nsw i64 %1 to i8 + %21 = getelementptr inbounds nuw i8, ptr %0, i64 41 + store i8 %20, ptr %21, align 1, !tbaa !3 + %22 = getelementptr inbounds nuw i8, ptr %0, i64 48 + %23 = getelementptr inbounds nuw i8, ptr %0, i64 49 + store i8 0, ptr %23, align 1, !tbaa !3 + store i8 0, ptr %22, align 8, !tbaa !3 + %24 = getelementptr inbounds nuw i8, ptr %0, i64 44 + store i32 0, ptr %24, align 4, !tbaa !3 store i8 16, ptr %6, align 1, !tbaa !3 %.not = icmp eq i64 %1, 0 - br i1 %.not, label %25, label %23 + br i1 %.not, label %27, label %25 -23: ; preds = %.thread, %17 - %24 = tail call noundef ptr @_ZN3zmq5msg_t4dataEv(ptr noundef nonnull align 8 dereferenceable(64) %0) - tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %24, ptr align 1 %2, i64 %1, i1 false) - br label %25 +25: ; preds = %.thread, %19 + %26 = tail call noundef ptr @_ZN3zmq5msg_t4dataEv(ptr noundef nonnull align 8 dereferenceable(64) %0) + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %26, ptr align 1 %2, i64 %1, i1 false) + br label %27 -25: ; preds = %_ZN3zmq5msg_t9init_sizeEm.exit, %17, %23 - %.0.i7 = phi i32 [ 0, %17 ], [ 0, %23 ], [ -1, %_ZN3zmq5msg_t9init_sizeEm.exit ] +27: ; preds = %_ZN3zmq5msg_t9init_sizeEm.exit, %19, %25 + %.0.i7 = phi i32 [ 0, %19 ], [ 0, %25 ], [ -1, %_ZN3zmq5msg_t9init_sizeEm.exit ] ret i32 %.0.i7 } @@ -1781,7 +1786,7 @@ attributes #1 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping attributes #2 = { mustprogress nofree nounwind willreturn memory(write, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #4 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/libzmq/optimized/xpub.ll b/bench/libzmq/optimized/xpub.ll index b070185a49a..877ea83c7de 100644 --- a/bench/libzmq/optimized/xpub.ll +++ b/bench/libzmq/optimized/xpub.ll @@ -2216,11 +2216,11 @@ _ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backE ._crit_edge335: ; preds = %271 %.pre336 = load i16, ptr %101, align 2, !tbaa !208 - %.pre340 = zext i16 %.pre336 to i32 + %.pre339 = zext i16 %.pre336 to i32 br label %276 276: ; preds = %._crit_edge335, %264 - %.pre-phi = phi i32 [ %.pre340, %._crit_edge335 ], [ %269, %264 ] + %.pre-phi = phi i32 [ %.pre339, %._crit_edge335 ], [ %269, %264 ] %277 = zext i8 %.sroa.70.1 to i32 %reass.sub = sub nsw i32 %266, %277 %278 = add nsw i32 %reass.sub, 1 @@ -2258,20 +2258,19 @@ _ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backE ._crit_edge337: ; preds = %292 %.pre338 = load ptr, ptr %122, align 8, !tbaa !174 - %.pre339 = load i16, ptr %101, align 2, !tbaa !208 - %.pre341 = zext i16 %.pre339 to i64 - %.pre343 = shl nuw nsw i64 %.pre341, 3 br label %297 297: ; preds = %._crit_edge337, %284 - %.pre-phi344 = phi i64 [ %.pre343, %._crit_edge337 ], [ %290, %284 ] %298 = phi ptr [ %.pre338, %._crit_edge337 ], [ %291, %284 ] %299 = zext i8 %.sroa.70.1 to i64 %300 = load i8, ptr %223, align 8, !tbaa !209 %301 = zext i8 %300 to i64 %302 = sub nsw i64 %299, %301 %303 = getelementptr inbounds ptr, ptr %242, i64 %302 - call void @llvm.memmove.p0.p0.i64(ptr align 8 %298, ptr align 8 %303, i64 %.pre-phi344, i1 false) + %304 = load i16, ptr %101, align 2, !tbaa !208 + %305 = zext i16 %304 to i64 + %306 = shl nuw nsw i64 %305, 3 + call void @llvm.memmove.p0.p0.i64(ptr align 8 %298, ptr align 8 %303, i64 %306, i1 false) call void @free(ptr noundef %242) #23 store i8 %.sroa.70.1, ptr %223, align 8, !tbaa !209 br label %.outer @@ -2279,23 +2278,23 @@ _ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backE .outer: ; preds = %100, %112, %116, %107, %226, %297, %220, %177, %50, %65, %93, %78 %.219 = phi i64 [ %.017.ph256, %297 ], [ %.017.ph256, %226 ], [ %.017.ph256, %177 ], [ %.017.ph256, %220 ], [ %.017.ph256, %116 ], [ %.017.ph256, %112 ], [ %.017.ph256, %107 ], [ %.118, %93 ], [ %.118, %78 ], [ %.118, %50 ], [ %.118, %65 ], [ %.017.ph256, %100 ] %.2 = phi ptr [ %.0.ph257, %297 ], [ %.0.ph257, %226 ], [ %.0.ph257, %177 ], [ %.0.ph257, %220 ], [ %.0.ph257, %116 ], [ %.0.ph257, %112 ], [ %.0.ph257, %107 ], [ %.1, %93 ], [ %.1, %78 ], [ %.1, %50 ], [ %.1, %65 ], [ %.0.ph257, %100 ] - %304 = load ptr, ptr %7, align 8, !tbaa !195 - %305 = icmp eq ptr %304, %7 - br i1 %305, label %.outer._crit_edge, label %.lr.ph, !llvm.loop !211 + %307 = load ptr, ptr %7, align 8, !tbaa !195 + %308 = icmp eq ptr %307, %7 + br i1 %308, label %.outer._crit_edge, label %.lr.ph, !llvm.loop !211 .outer._crit_edge: ; preds = %.outer, %_ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backERKS5_.exit54, %_ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backERKS5_.exit %.0.ph.lcssa254 = phi ptr [ null, %_ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backERKS5_.exit ], [ %.0.ph257, %_ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backERKS5_.exit54 ], [ %.2, %.outer ] call void @free(ptr noundef %.0.ph.lcssa254) #23 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.103) - %306 = load ptr, ptr %7, align 8, !tbaa !195 - %.not8.i.i = icmp eq ptr %306, %7 + %309 = load ptr, ptr %7, align 8, !tbaa !195 + %.not8.i.i = icmp eq ptr %309, %7 br i1 %.not8.i.i, label %_ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit, label %.lr.ph.i.i .lr.ph.i.i: ; preds = %.outer._crit_edge, %.lr.ph.i.i - %.09.i.i = phi ptr [ %307, %.lr.ph.i.i ], [ %306, %.outer._crit_edge ] - %307 = load ptr, ptr %.09.i.i, align 8, !tbaa !195 + %.09.i.i = phi ptr [ %310, %.lr.ph.i.i ], [ %309, %.outer._crit_edge ] + %310 = load ptr, ptr %.09.i.i, align 8, !tbaa !195 call void @_ZdlPv(ptr noundef nonnull %.09.i.i) #24 - %.not.i.i = icmp eq ptr %307, %7 + %.not.i.i = icmp eq ptr %310, %7 br i1 %.not.i.i, label %_ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit, label %.lr.ph.i.i, !llvm.loop !212 _ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit: ; preds = %.lr.ph.i.i, %.outer._crit_edge @@ -2305,15 +2304,15 @@ _ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev .loopexit: ; preds = %.loopexit.split-lp, %.loopexit.loopexit.split-lp, %.loopexit.loopexit, %256, %218, %98, %70 %.pn = phi { ptr, i32 } [ %257, %256 ], [ %219, %218 ], [ %99, %98 ], [ %71, %70 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ], [ %lpad.loopexit210, %.loopexit.loopexit ], [ %lpad.loopexit.split-lp211, %.loopexit.loopexit.split-lp ] call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.103) - %308 = load ptr, ptr %7, align 8, !tbaa !195 - %.not8.i.i55 = icmp eq ptr %308, %7 + %311 = load ptr, ptr %7, align 8, !tbaa !195 + %.not8.i.i55 = icmp eq ptr %311, %7 br i1 %.not8.i.i55, label %_ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit59, label %.lr.ph.i.i56 .lr.ph.i.i56: ; preds = %.loopexit, %.lr.ph.i.i56 - %.09.i.i57 = phi ptr [ %309, %.lr.ph.i.i56 ], [ %308, %.loopexit ] - %309 = load ptr, ptr %.09.i.i57, align 8, !tbaa !195 + %.09.i.i57 = phi ptr [ %312, %.lr.ph.i.i56 ], [ %311, %.loopexit ] + %312 = load ptr, ptr %.09.i.i57, align 8, !tbaa !195 call void @_ZdlPv(ptr noundef nonnull %.09.i.i57) #24 - %.not.i.i58 = icmp eq ptr %309, %7 + %.not.i.i58 = icmp eq ptr %312, %7 br i1 %.not.i.i58, label %_ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit59, label %.lr.ph.i.i56, !llvm.loop !212 _ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit59: ; preds = %.lr.ph.i.i56, %.loopexit @@ -3184,11 +3183,11 @@ _ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backE ._crit_edge335: ; preds = %271 %.pre336 = load i16, ptr %101, align 2, !tbaa !208 - %.pre340 = zext i16 %.pre336 to i32 + %.pre339 = zext i16 %.pre336 to i32 br label %276 276: ; preds = %._crit_edge335, %264 - %.pre-phi = phi i32 [ %.pre340, %._crit_edge335 ], [ %269, %264 ] + %.pre-phi = phi i32 [ %.pre339, %._crit_edge335 ], [ %269, %264 ] %277 = zext i8 %.sroa.70.1 to i32 %reass.sub = sub nsw i32 %266, %277 %278 = add nsw i32 %reass.sub, 1 @@ -3226,20 +3225,19 @@ _ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backE ._crit_edge337: ; preds = %292 %.pre338 = load ptr, ptr %122, align 8, !tbaa !174 - %.pre339 = load i16, ptr %101, align 2, !tbaa !208 - %.pre341 = zext i16 %.pre339 to i64 - %.pre343 = shl nuw nsw i64 %.pre341, 3 br label %297 297: ; preds = %._crit_edge337, %284 - %.pre-phi344 = phi i64 [ %.pre343, %._crit_edge337 ], [ %290, %284 ] %298 = phi ptr [ %.pre338, %._crit_edge337 ], [ %291, %284 ] %299 = zext i8 %.sroa.70.1 to i64 %300 = load i8, ptr %223, align 8, !tbaa !209 %301 = zext i8 %300 to i64 %302 = sub nsw i64 %299, %301 %303 = getelementptr inbounds ptr, ptr %242, i64 %302 - call void @llvm.memmove.p0.p0.i64(ptr align 8 %298, ptr align 8 %303, i64 %.pre-phi344, i1 false) + %304 = load i16, ptr %101, align 2, !tbaa !208 + %305 = zext i16 %304 to i64 + %306 = shl nuw nsw i64 %305, 3 + call void @llvm.memmove.p0.p0.i64(ptr align 8 %298, ptr align 8 %303, i64 %306, i1 false) call void @free(ptr noundef %242) #23 store i8 %.sroa.70.1, ptr %223, align 8, !tbaa !209 br label %.outer @@ -3247,23 +3245,23 @@ _ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backE .outer: ; preds = %100, %112, %116, %107, %226, %297, %220, %177, %50, %65, %93, %78 %.219 = phi i64 [ %.017.ph256, %297 ], [ %.017.ph256, %226 ], [ %.017.ph256, %177 ], [ %.017.ph256, %220 ], [ %.017.ph256, %116 ], [ %.017.ph256, %112 ], [ %.017.ph256, %107 ], [ %.118, %93 ], [ %.118, %78 ], [ %.118, %50 ], [ %.118, %65 ], [ %.017.ph256, %100 ] %.2 = phi ptr [ %.0.ph257, %297 ], [ %.0.ph257, %226 ], [ %.0.ph257, %177 ], [ %.0.ph257, %220 ], [ %.0.ph257, %116 ], [ %.0.ph257, %112 ], [ %.0.ph257, %107 ], [ %.1, %93 ], [ %.1, %78 ], [ %.1, %50 ], [ %.1, %65 ], [ %.0.ph257, %100 ] - %304 = load ptr, ptr %7, align 8, !tbaa !195 - %305 = icmp eq ptr %304, %7 - br i1 %305, label %.outer._crit_edge, label %.lr.ph, !llvm.loop !213 + %307 = load ptr, ptr %7, align 8, !tbaa !195 + %308 = icmp eq ptr %307, %7 + br i1 %308, label %.outer._crit_edge, label %.lr.ph, !llvm.loop !213 .outer._crit_edge: ; preds = %.outer, %_ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backERKS5_.exit54, %_ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backERKS5_.exit %.0.ph.lcssa254 = phi ptr [ null, %_ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backERKS5_.exit ], [ %.0.ph257, %_ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backERKS5_.exit54 ], [ %.2, %.outer ] call void @free(ptr noundef %.0.ph.lcssa254) #23 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.103) - %306 = load ptr, ptr %7, align 8, !tbaa !195 - %.not8.i.i = icmp eq ptr %306, %7 + %309 = load ptr, ptr %7, align 8, !tbaa !195 + %.not8.i.i = icmp eq ptr %309, %7 br i1 %.not8.i.i, label %_ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit, label %.lr.ph.i.i .lr.ph.i.i: ; preds = %.outer._crit_edge, %.lr.ph.i.i - %.09.i.i = phi ptr [ %307, %.lr.ph.i.i ], [ %306, %.outer._crit_edge ] - %307 = load ptr, ptr %.09.i.i, align 8, !tbaa !195 + %.09.i.i = phi ptr [ %310, %.lr.ph.i.i ], [ %309, %.outer._crit_edge ] + %310 = load ptr, ptr %.09.i.i, align 8, !tbaa !195 call void @_ZdlPv(ptr noundef nonnull %.09.i.i) #24 - %.not.i.i = icmp eq ptr %307, %7 + %.not.i.i = icmp eq ptr %310, %7 br i1 %.not.i.i, label %_ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit, label %.lr.ph.i.i, !llvm.loop !212 _ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit: ; preds = %.lr.ph.i.i, %.outer._crit_edge @@ -3273,15 +3271,15 @@ _ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev .loopexit: ; preds = %.loopexit.split-lp, %.loopexit.loopexit.split-lp, %.loopexit.loopexit, %256, %218, %98, %70 %.pn = phi { ptr, i32 } [ %257, %256 ], [ %219, %218 ], [ %99, %98 ], [ %71, %70 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ], [ %lpad.loopexit210, %.loopexit.loopexit ], [ %lpad.loopexit.split-lp211, %.loopexit.loopexit.split-lp ] call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.103) - %308 = load ptr, ptr %7, align 8, !tbaa !195 - %.not8.i.i55 = icmp eq ptr %308, %7 + %311 = load ptr, ptr %7, align 8, !tbaa !195 + %.not8.i.i55 = icmp eq ptr %311, %7 br i1 %.not8.i.i55, label %_ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit59, label %.lr.ph.i.i56 .lr.ph.i.i56: ; preds = %.loopexit, %.lr.ph.i.i56 - %.09.i.i57 = phi ptr [ %309, %.lr.ph.i.i56 ], [ %308, %.loopexit ] - %309 = load ptr, ptr %.09.i.i57, align 8, !tbaa !195 + %.09.i.i57 = phi ptr [ %312, %.lr.ph.i.i56 ], [ %311, %.loopexit ] + %312 = load ptr, ptr %.09.i.i57, align 8, !tbaa !195 call void @_ZdlPv(ptr noundef nonnull %.09.i.i57) #24 - %.not.i.i58 = icmp eq ptr %309, %7 + %.not.i.i58 = icmp eq ptr %312, %7 br i1 %.not.i.i58, label %_ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit59, label %.lr.ph.i.i56, !llvm.loop !212 _ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit59: ; preds = %.lr.ph.i.i56, %.loopexit @@ -4463,7 +4461,7 @@ _ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S ret void } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #17 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) @@ -5168,7 +5166,7 @@ _ZSt4copyIPPhS1_ET0_T_S3_S2_.exit: ; preds = %32, %31, %28, %27, declare noundef i32 @_ZN3zmq13do_getsockoptEPvPmPKvm(ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #1 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #19 declare noundef zeroext i1 @_ZNK3zmq15generic_mtrie_tINS_6pipe_tEE12is_redundantEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 @@ -5702,9 +5700,9 @@ attributes #13 = { mustprogress nofree norecurse nosync nounwind willreturn memo attributes #14 = { uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #15 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #16 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #17 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #17 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #18 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #19 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #19 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #20 = { mustprogress nofree nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #21 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #22 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } diff --git a/bench/llama.cpp/optimized/ggml-alloc.ll b/bench/llama.cpp/optimized/ggml-alloc.ll index faa0e463253..0fd2d94bdf4 100644 --- a/bench/llama.cpp/optimized/ggml-alloc.ll +++ b/bench/llama.cpp/optimized/ggml-alloc.ll @@ -221,7 +221,7 @@ define noalias nonnull ptr @ggml_gallocr_new_n(ptr noundef readonly captures(non br i1 %exitcond56.not, label %._crit_edge, label %.lr.ph48, !llvm.loop !42 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #3 declare i64 @ggml_backend_buft_get_alignment(ptr noundef) local_unnamed_addr #1 @@ -1142,14 +1142,18 @@ ggml_gallocr_alloc_graph_impl.exit: ; preds = %180, %.preheader122 %403 = call noalias ptr @calloc(i64 noundef %402, i64 noundef 264) #14 store ptr %403, ptr %399, align 8, !tbaa !44 %.not167 = icmp eq ptr %403, null - br i1 %.not167, label %404, label %405 + br i1 %.not167, label %404, label %._crit_edge496 + +._crit_edge496: ; preds = %398 + %.pre = load i32, ptr %6, align 4, !tbaa !49 + br label %405 404: ; preds = %398 call void (ptr, i32, ptr, ...) @ggml_abort(ptr noundef nonnull @.str.1, i32 noundef 701, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.10) #13 unreachable -405: ; preds = %398, %ggml_gallocr_alloc_graph_impl.exit - %406 = phi i32 [ %401, %398 ], [ %387, %ggml_gallocr_alloc_graph_impl.exit ] +405: ; preds = %._crit_edge496, %ggml_gallocr_alloc_graph_impl.exit + %406 = phi i32 [ %.pre, %._crit_edge496 ], [ %387, %ggml_gallocr_alloc_graph_impl.exit ] store i32 %406, ptr %388, align 8, !tbaa !93 %407 = icmp sgt i32 %406, 0 br i1 %407, label %.lr.ph335, label %._crit_edge336 @@ -1365,10 +1369,10 @@ ggml_gallocr_hash_get.exit185: ; preds = %509, %504 br label %532 532: ; preds = %ggml_gallocr_hash_get.exit185, %487 - %.sink662 = phi i64 [ %531, %ggml_gallocr_hash_get.exit185 ], [ 0, %487 ] + %.sink666 = phi i64 [ %531, %ggml_gallocr_hash_get.exit185 ], [ 0, %487 ] %533 = getelementptr inbounds nuw %struct.tensor_alloc, ptr %473, i64 %indvars.iv478 %534 = getelementptr inbounds nuw i8, ptr %533, i64 16 - store i64 %.sink662, ptr %534, align 8, !tbaa !105 + store i64 %.sink666, ptr %534, align 8, !tbaa !105 %indvars.iv.next479 = add nuw nsw i64 %indvars.iv478, 1 %exitcond481.not = icmp eq i64 %indvars.iv.next479, 10 br i1 %exitcond481.not, label %474, label %478, !llvm.loop !106 @@ -1382,14 +1386,18 @@ ggml_gallocr_hash_get.exit185: ; preds = %509, %504 %540 = call noalias ptr @calloc(i64 noundef %539, i64 noundef 24) #14 store ptr %540, ptr %536, align 8, !tbaa !45 %.not168 = icmp eq ptr %540, null - br i1 %.not168, label %541, label %542 + br i1 %.not168, label %541, label %._crit_edge497 + +._crit_edge497: ; preds = %535 + %.pre498 = load i32, ptr %8, align 8, !tbaa !51 + br label %542 541: ; preds = %535 call void (ptr, i32, ptr, ...) @ggml_abort(ptr noundef nonnull @.str.1, i32 noundef 734, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.11) #13 unreachable -542: ; preds = %535, %._crit_edge336 - %543 = phi i32 [ %538, %535 ], [ %414, %._crit_edge336 ] +542: ; preds = %._crit_edge497, %._crit_edge336 + %543 = phi i32 [ %.pre498, %._crit_edge497 ], [ %414, %._crit_edge336 ] store i32 %543, ptr %412, align 8, !tbaa !95 %544 = icmp sgt i32 %543, 0 br i1 %544, label %.lr.ph340, label %.preheader198 @@ -1472,18 +1480,18 @@ ggml_gallocr_hash_get.exit190: ; preds = %574, %569 br i1 %.not171, label %588, label %ggml_gallocr_hash_get.exit190._crit_edge ggml_gallocr_hash_get.exit190._crit_edge: ; preds = %ggml_gallocr_hash_get.exit190 - %.pre = load ptr, ptr %548, align 8, !tbaa !45 + %.pre499 = load ptr, ptr %548, align 8, !tbaa !45 br label %591 588: ; preds = %ggml_gallocr_hash_get.exit190 %589 = getelementptr inbounds nuw i8, ptr %555, i64 248 %590 = load ptr, ptr %589, align 8, !tbaa !96 %.not172 = icmp eq ptr %590, null - %.pre496 = load ptr, ptr %548, align 8, !tbaa !45 + %.pre500 = load ptr, ptr %548, align 8, !tbaa !45 br i1 %.not172, label %595, label %591 591: ; preds = %ggml_gallocr_hash_get.exit190._crit_edge, %588 - %592 = phi ptr [ %.pre, %ggml_gallocr_hash_get.exit190._crit_edge ], [ %.pre496, %588 ] + %592 = phi ptr [ %.pre499, %ggml_gallocr_hash_get.exit190._crit_edge ], [ %.pre500, %588 ] %593 = getelementptr inbounds nuw %struct.leaf_alloc, ptr %592, i64 %indvars.iv485 store i32 -1, ptr %593, align 8, !tbaa !107 %594 = getelementptr inbounds nuw i8, ptr %593, i64 8 @@ -1493,7 +1501,7 @@ ggml_gallocr_hash_get.exit190._crit_edge: ; preds = %ggml_gallocr_hash_g 595: ; preds = %588 %596 = getelementptr inbounds nuw i8, ptr %585, i64 8 %597 = load i32, ptr %596, align 8, !tbaa !83 - %598 = getelementptr inbounds nuw %struct.leaf_alloc, ptr %.pre496, i64 %indvars.iv485 + %598 = getelementptr inbounds nuw %struct.leaf_alloc, ptr %.pre500, i64 %indvars.iv485 store i32 %597, ptr %598, align 8, !tbaa !107 %599 = getelementptr inbounds nuw i8, ptr %585, i64 16 %600 = load i64, ptr %599, align 8, !tbaa !82 @@ -1509,10 +1517,10 @@ ggml_gallocr_hash_get.exit190._crit_edge: ; preds = %ggml_gallocr_hash_g 608: ; preds = %595, %591 %609 = phi ptr [ %607, %595 ], [ %592, %591 ] - %.sink665 = phi i64 [ %606, %595 ], [ 0, %591 ] + %.sink669 = phi i64 [ %606, %595 ], [ 0, %591 ] %610 = getelementptr inbounds nuw %struct.leaf_alloc, ptr %609, i64 %indvars.iv485 %611 = getelementptr inbounds nuw i8, ptr %610, i64 16 - store i64 %.sink665, ptr %611, align 8, !tbaa !110 + store i64 %.sink669, ptr %611, align 8, !tbaa !110 %indvars.iv.next486 = add nuw nsw i64 %indvars.iv485, 1 %612 = load i32, ptr %8, align 8, !tbaa !51 %613 = sext i32 %612 to i64 @@ -1559,11 +1567,11 @@ ggml_gallocr_hash_get.exit190._crit_edge: ; preds = %ggml_gallocr_hash_g 631: ; preds = %.loopexit %632 = call i64 @ggml_backend_buffer_get_size(ptr noundef nonnull %630) #12 - %.pre497.pre = load ptr, ptr %551, align 8, !tbaa !26 + %.pre501.pre = load ptr, ptr %551, align 8, !tbaa !26 br label %633 633: ; preds = %.loopexit, %631 - %.pre497 = phi ptr [ %.pre497.pre, %631 ], [ %628, %.loopexit ] + %.pre501 = phi ptr [ %.pre501.pre, %631 ], [ %628, %.loopexit ] %634 = phi i64 [ %632, %631 ], [ 0, %.loopexit ] %635 = load ptr, ptr %550, align 8, !tbaa !27 %636 = getelementptr inbounds nuw ptr, ptr %635, i64 %indvars.iv493 @@ -1571,16 +1579,16 @@ ggml_gallocr_hash_get.exit190._crit_edge: ; preds = %ggml_gallocr_hash_g %638 = getelementptr i8, ptr %637, i64 4112 %.val = load i64, ptr %638, align 8, !tbaa !41 %639 = icmp ugt i64 %.val, %634 - %.phi.trans.insert = getelementptr inbounds nuw ptr, ptr %.pre497, i64 %indvars.iv493 - %.pre499 = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !31 - br i1 %639, label %._crit_edge498, label %640 + %.phi.trans.insert = getelementptr inbounds nuw ptr, ptr %.pre501, i64 %indvars.iv493 + %.pre503 = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !31 + br i1 %639, label %._crit_edge502, label %640 640: ; preds = %633 - %641 = icmp eq ptr %.pre499, null - br i1 %641, label %._crit_edge498, label %655 + %641 = icmp eq ptr %.pre503, null + br i1 %641, label %._crit_edge502, label %655 -._crit_edge498: ; preds = %633, %640 - %642 = phi ptr [ null, %640 ], [ %.pre499, %633 ] +._crit_edge502: ; preds = %633, %640 + %642 = phi ptr [ null, %640 ], [ %.pre503, %633 ] call void @ggml_backend_buffer_free(ptr noundef %642) #12 %643 = load ptr, ptr %0, align 8, !tbaa !13 %644 = getelementptr inbounds nuw ptr, ptr %643, i64 %indvars.iv493 @@ -1592,7 +1600,7 @@ ggml_gallocr_hash_get.exit190._crit_edge: ; preds = %ggml_gallocr_hash_g %649 = icmp eq ptr %646, null br i1 %649, label %.critedge, label %654 -.critedge: ; preds = %._crit_edge498 +.critedge: ; preds = %._crit_edge502 %650 = load ptr, ptr %0, align 8, !tbaa !13 %651 = getelementptr inbounds nuw ptr, ptr %650, i64 %indvars.iv493 %652 = load ptr, ptr %651, align 8, !tbaa !29 @@ -1600,7 +1608,7 @@ ggml_gallocr_hash_get.exit190._crit_edge: ; preds = %ggml_gallocr_hash_g call void (i32, ptr, ...) @ggml_log_internal(i32 noundef 4, ptr noundef nonnull @.str.12, ptr noundef nonnull @__func__.ggml_gallocr_reserve_n, ptr noundef %653, i64 noundef %.val) #12 br label %.critedge179 -654: ; preds = %._crit_edge498 +654: ; preds = %._crit_edge502 call void @ggml_backend_buffer_set_usage(ptr noundef nonnull %646, i32 noundef 2) #12 br label %655 @@ -1621,7 +1629,7 @@ declare void @ggml_hash_set_new(ptr dead_on_unwind writable sret(%struct.ggml_ha ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #5 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #6 ; Function Attrs: nounwind uwtable @@ -2848,7 +2856,7 @@ ggml_gallocr_is_allocated.exit.thread: ; preds = %ggml_gallocr_hash_g declare void @ggml_backend_view_init(ptr noundef) local_unnamed_addr #1 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #8 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -2866,12 +2874,12 @@ declare void @llvm.experimental.noalias.scope.decl(metadata) #11 attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #6 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #8 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #10 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #11 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } diff --git a/bench/llvm/optimized/ASTWriter.ll b/bench/llvm/optimized/ASTWriter.ll index ea018680e9e..cc8053af296 100644 --- a/bench/llvm/optimized/ASTWriter.ll +++ b/bench/llvm/optimized/ASTWriter.ll @@ -43834,7 +43834,7 @@ declare void @_ZNK5clang6Module17getFullModuleNameB5cxx11Eb(ptr dead_on_unwind w declare void @_ZN4llvm3sys4path6appendERNS_15SmallVectorImplIcEERKNS_5TwineES7_S7_S7_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(34), ptr noundef nonnull align 8 dereferenceable(34), ptr noundef nonnull align 8 dereferenceable(34), ptr noundef nonnull align 8 dereferenceable(34)) local_unnamed_addr #2 -; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias ptr @strdup(ptr noundef readonly captures(none)) local_unnamed_addr #5 declare noundef i32 @_ZN5clang9ModuleMap16headerKindToRoleENS_6Module10HeaderKindE(i32 noundef) local_unnamed_addr #2 @@ -61897,7 +61897,6 @@ _ZN4llvm31OnDiskChainedHashTableGeneratorIN12_GLOBAL__N_118ASTMethodPoolTraitEEC 63: ; preds = %_ZN4llvm31OnDiskChainedHashTableGeneratorIN12_GLOBAL__N_118ASTMethodPoolTraitEEC2Ev.exit %64 = sub nuw nsw i64 %54, %61 call void @_ZNSt6vectorIjSaIjEE17_M_default_appendEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %64) - %.pre = load i32, ptr %32, align 8, !tbaa !42 br label %_ZNSt6vectorIjSaIjEE6resizeEm.exit 65: ; preds = %_ZN4llvm31OnDiskChainedHashTableGeneratorIN12_GLOBAL__N_118ASTMethodPoolTraitEEC2Ev.exit @@ -61914,14 +61913,14 @@ _ZN4llvm31OnDiskChainedHashTableGeneratorIN12_GLOBAL__N_118ASTMethodPoolTraitEEC br label %_ZNSt6vectorIjSaIjEE6resizeEm.exit _ZNSt6vectorIjSaIjEE6resizeEm.exit: ; preds = %63, %65, %67, %69 - %70 = phi i32 [ %.pre, %63 ], [ %33, %65 ], [ %33, %67 ], [ %33, %69 ] - %71 = getelementptr inbounds nuw i8, ptr %0, i64 1096 - %72 = getelementptr inbounds nuw i8, ptr %0, i64 1120 - %73 = load ptr, ptr %72, align 8, !tbaa !45 - %74 = zext i32 %70 to i64 + %70 = getelementptr inbounds nuw i8, ptr %0, i64 1096 + %71 = getelementptr inbounds nuw i8, ptr %0, i64 1120 + %72 = load ptr, ptr %71, align 8, !tbaa !45 + %73 = load i32, ptr %32, align 8, !tbaa !42 + %74 = zext i32 %73 to i64 %.idx = shl nuw nsw i64 %74, 4 - %75 = getelementptr inbounds nuw i8, ptr %73, i64 %.idx - %.not253 = icmp eq i32 %70, 0 + %75 = getelementptr inbounds nuw i8, ptr %72, i64 %.idx + %.not253 = icmp eq i32 %73, 0 br i1 %.not253, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %_ZNSt6vectorIjSaIjEE6resizeEm.exit @@ -62224,7 +62223,7 @@ _ZN12_GLOBAL__N_118ASTMethodPoolTrait17EmitKeyDataLengthERN4llvm11raw_ostreamEN5 %229 = add i64 %224, %227 %230 = sub i64 %229, %228 %231 = trunc i64 %230 to i32 - %232 = load ptr, ptr %71, align 8, !tbaa !1815, !noalias !1816 + %232 = load ptr, ptr %70, align 8, !tbaa !1815, !noalias !1816 %233 = load i32, ptr %109, align 8, !tbaa !1819, !noalias !1816 %234 = icmp eq i32 %233, 0 br i1 %234, label %_ZN4llvm12DenseMapBaseINS_8DenseMapIN5clang8SelectorEjNS_12DenseMapInfoIS3_vEENS_6detail12DenseMapPairIS3_jEEEES3_jS5_S8_E15LookupBucketForIS3_EEbRKT_RPS8_.exit.i.i, label %235 @@ -62293,8 +62292,8 @@ _ZN4llvm12DenseMapBaseINS_8DenseMapIN5clang8SelectorEjNS_12DenseMapInfoIS3_vEENS .sink.split.i.i.i75.i: ; preds = %260, %258 %.sink.i.i.i76.i = phi i32 [ %259, %258 ], [ %253, %260 ] - call void @_ZN4llvm8DenseMapIN5clang8SelectorEjNS_12DenseMapInfoIS2_vEENS_6detail12DenseMapPairIS2_jEEE4growEj(ptr noundef nonnull align 8 dereferenceable(40) %71, i32 noundef %.sink.i.i.i76.i), !noalias !1816 - %264 = load ptr, ptr %71, align 8, !tbaa !1815, !noalias !1816 + call void @_ZN4llvm8DenseMapIN5clang8SelectorEjNS_12DenseMapInfoIS2_vEENS_6detail12DenseMapPairIS2_jEEE4growEj(ptr noundef nonnull align 8 dereferenceable(40) %70, i32 noundef %.sink.i.i.i76.i), !noalias !1816 + %264 = load ptr, ptr %70, align 8, !tbaa !1815, !noalias !1816 %265 = load i32, ptr %109, align 8, !tbaa !1819, !noalias !1816 %266 = icmp eq i32 %265, 0 br i1 %266, label %_ZN4llvm12DenseMapBaseINS_8DenseMapIN5clang8SelectorEjNS_12DenseMapInfoIS3_vEENS_6detail12DenseMapPairIS3_jEEEES3_jS5_S8_E15LookupBucketForIS3_EEbRKT_RPS8_.exit.i, label %267 @@ -62376,13 +62375,13 @@ _ZN4llvm12DenseMapBaseINS_8DenseMapIN5clang8SelectorEjNS_12DenseMapInfoIS3_vEENS 300: ; preds = %296 %301 = zext i32 %298 to i64 %302 = add nuw nsw i64 %301, 1 - call void @_ZN4llvm15SmallVectorBaseIjE8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16) %72, ptr noundef nonnull %48, i64 noundef %302, i64 noundef 16) #35 + call void @_ZN4llvm15SmallVectorBaseIjE8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16) %71, ptr noundef nonnull %48, i64 noundef %302, i64 noundef 16) #35 %.pre.i.i.i.i.i = load i32, ptr %32, align 8, !tbaa !42 br label %_ZN4llvm23SmallVectorTemplateBaseISt4pairIN5clang8SelectorEjELb1EE9push_backES4_.exit.i.i.i.i _ZN4llvm23SmallVectorTemplateBaseISt4pairIN5clang8SelectorEjELb1EE9push_backES4_.exit.i.i.i.i: ; preds = %300, %296 %303 = phi i32 [ %298, %296 ], [ %.pre.i.i.i.i.i, %300 ] - %304 = load ptr, ptr %72, align 8, !tbaa !45 + %304 = load ptr, ptr %71, align 8, !tbaa !45 %305 = zext i32 %303 to i64 %306 = getelementptr inbounds nuw %"struct.std::pair.2517", ptr %304, i64 %305 store i64 %.sroa.08.0.copyload.i, ptr %306, align 1 @@ -62397,7 +62396,7 @@ _ZN4llvm23SmallVectorTemplateBaseISt4pairIN5clang8SelectorEjELb1EE9push_backES4_ _ZN4llvm9MapVectorIN5clang8SelectorEjNS_8DenseMapIS2_jNS_12DenseMapInfoIS2_vEENS_6detail12DenseMapPairIS2_jEEEENS_11SmallVectorISt4pairIS2_jELj0EEEEixERKS2_.exit.i.i.i: ; preds = %_ZN4llvm23SmallVectorTemplateBaseISt4pairIN5clang8SelectorEjELb1EE9push_backES4_.exit.i.i.i.i, %._crit_edge.i.i.i.i %309 = phi i32 [ %.pre.i.i.i.i, %._crit_edge.i.i.i.i ], [ %307, %_ZN4llvm23SmallVectorTemplateBaseISt4pairIN5clang8SelectorEjELb1EE9push_backES4_.exit.i.i.i.i ] %310 = zext i32 %309 to i64 - %311 = load ptr, ptr %72, align 8, !tbaa !45 + %311 = load ptr, ptr %71, align 8, !tbaa !45 %312 = getelementptr inbounds nuw %"struct.std::pair.2517", ptr %311, i64 %310 %313 = getelementptr inbounds nuw i8, ptr %312, i64 8 %314 = load i32, ptr %313, align 4, !tbaa !9 @@ -63174,7 +63173,7 @@ _ZN4llvm13BitCodeAbbrev3AddERKNS_15BitCodeAbbrevOpE.exit78: ; preds = %.lr.ph89. %.sroa.2.0..sroa_idx.i.i70 = getelementptr inbounds nuw i8, ptr %671, i64 72 store i64 2, ptr %.sroa.2.0..sroa_idx.i.i70, align 8 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %0, i64 16 - %.pre298 = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !79 + %.pre = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !79 %681 = getelementptr inbounds nuw i8, ptr %671, i64 80 store i64 0, ptr %681, align 8 %.sroa.2.0..sroa_idx.i.i77 = getelementptr inbounds nuw i8, ptr %671, i64 88 @@ -63184,11 +63183,11 @@ _ZN4llvm13BitCodeAbbrev3AddERKNS_15BitCodeAbbrevOpE.exit78: ; preds = %.lr.ph89. store ptr %674, ptr %23, align 8, !tbaa !244 %683 = getelementptr inbounds nuw i8, ptr %23, i64 8 store ptr %671, ptr %683, align 8, !tbaa !249 - call void @_ZN4llvm15BitstreamWriter12EncodeAbbrevERKNS_13BitCodeAbbrevE(ptr noundef nonnull align 8 dereferenceable(152) %.pre298, ptr noundef nonnull align 8 dereferenceable(528) %674) - %684 = getelementptr inbounds nuw i8, ptr %.pre298, i64 64 - %685 = getelementptr inbounds nuw i8, ptr %.pre298, i64 72 + call void @_ZN4llvm15BitstreamWriter12EncodeAbbrevERKNS_13BitCodeAbbrevE(ptr noundef nonnull align 8 dereferenceable(152) %.pre, ptr noundef nonnull align 8 dereferenceable(528) %674) + %684 = getelementptr inbounds nuw i8, ptr %.pre, i64 64 + %685 = getelementptr inbounds nuw i8, ptr %.pre, i64 72 %686 = load ptr, ptr %685, align 8, !tbaa !250 - %687 = getelementptr inbounds nuw i8, ptr %.pre298, i64 80 + %687 = getelementptr inbounds nuw i8, ptr %.pre, i64 80 %688 = load ptr, ptr %687, align 8, !tbaa !253 %.not.i.i.i79 = icmp eq ptr %686, %688 br i1 %.not.i.i.i79, label %694, label %689 @@ -63306,7 +63305,7 @@ _ZN4llvm13BitCodeAbbrev3AddERKNS_15BitCodeAbbrevOpE.exit117: ; preds = %_ZN4llvm store i64 32, ptr %740, align 8 %.sroa.2.0..sroa_idx.i.i109 = getelementptr inbounds nuw i8, ptr %731, i64 72 store i64 2, ptr %.sroa.2.0..sroa_idx.i.i109, align 8 - %.pre299 = load ptr, ptr %682, align 8, !tbaa !79 + %.pre298 = load ptr, ptr %682, align 8, !tbaa !79 %741 = getelementptr inbounds nuw i8, ptr %731, i64 80 store i64 0, ptr %741, align 8 %.sroa.2.0..sroa_idx.i.i116 = getelementptr inbounds nuw i8, ptr %731, i64 88 @@ -63315,11 +63314,11 @@ _ZN4llvm13BitCodeAbbrev3AddERKNS_15BitCodeAbbrevOpE.exit117: ; preds = %_ZN4llvm store ptr %734, ptr %25, align 8, !tbaa !244 %742 = getelementptr inbounds nuw i8, ptr %25, i64 8 store ptr %731, ptr %742, align 8, !tbaa !249 - call void @_ZN4llvm15BitstreamWriter12EncodeAbbrevERKNS_13BitCodeAbbrevE(ptr noundef nonnull align 8 dereferenceable(152) %.pre299, ptr noundef nonnull align 8 dereferenceable(528) %734) - %743 = getelementptr inbounds nuw i8, ptr %.pre299, i64 64 - %744 = getelementptr inbounds nuw i8, ptr %.pre299, i64 72 + call void @_ZN4llvm15BitstreamWriter12EncodeAbbrevERKNS_13BitCodeAbbrevE(ptr noundef nonnull align 8 dereferenceable(152) %.pre298, ptr noundef nonnull align 8 dereferenceable(528) %734) + %743 = getelementptr inbounds nuw i8, ptr %.pre298, i64 64 + %744 = getelementptr inbounds nuw i8, ptr %.pre298, i64 72 %745 = load ptr, ptr %744, align 8, !tbaa !250 - %746 = getelementptr inbounds nuw i8, ptr %.pre299, i64 80 + %746 = getelementptr inbounds nuw i8, ptr %.pre298, i64 80 %747 = load ptr, ptr %746, align 8, !tbaa !253 %.not.i.i.i118 = icmp eq ptr %745, %747 br i1 %.not.i.i.i118, label %753, label %748 @@ -63455,7 +63454,7 @@ _ZN4llvm20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096ELm128EE26Deall store i32 0, ptr %42, align 8, !tbaa !42 %809 = load i32, ptr %38, align 8, !tbaa !42 %.not.i1.i.i.i.i = icmp eq i32 %809, 0 - %.pre301 = load ptr, ptr %36, align 8, !tbaa !45 + %.pre300 = load ptr, ptr %36, align 8, !tbaa !45 br i1 %.not.i1.i.i.i.i, label %_ZN4llvm20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096ELm128EE15DeallocateSlabsEPPvS4_.exit.i.thread, label %811 _ZN4llvm20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096ELm128EE15DeallocateSlabsEPPvS4_.exit.i.thread: ; preds = %_ZN4llvm20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096ELm128EE26DeallocateCustomSizedSlabsEv.exit.i.i.i.i @@ -63464,19 +63463,19 @@ _ZN4llvm20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096ELm128EE15Deall 811: ; preds = %_ZN4llvm20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096ELm128EE26DeallocateCustomSizedSlabsEv.exit.i.i.i.i store i64 0, ptr %41, align 8, !tbaa !1193 - %812 = load ptr, ptr %.pre301, align 8, !tbaa !8 + %812 = load ptr, ptr %.pre300, align 8, !tbaa !8 store ptr %812, ptr %35, align 8, !tbaa !1194 %813 = getelementptr inbounds nuw i8, ptr %812, i64 4096 %814 = getelementptr inbounds nuw i8, ptr %19, i64 16 store ptr %813, ptr %814, align 8, !tbaa !1195 %815 = zext i32 %809 to i64 %.idx.i.i.i.i = shl nuw nsw i64 %815, 3 - %816 = getelementptr inbounds nuw i8, ptr %.pre301, i64 %.idx.i.i.i.i + %816 = getelementptr inbounds nuw i8, ptr %.pre300, i64 %.idx.i.i.i.i %.not6.i.i.i.i.i = icmp eq i32 %809, 1 br i1 %.not6.i.i.i.i.i, label %.lr.ph.i.i149.preheader, label %.lr.ph.i2.preheader.i.i.i.i .lr.ph.i2.preheader.i.i.i.i: ; preds = %811 - %817 = getelementptr inbounds nuw i8, ptr %.pre301, i64 8 + %817 = getelementptr inbounds nuw i8, ptr %.pre300, i64 8 br label %.lr.ph.i2.i.i.i.i .lr.ph.i2.i.i.i.i: ; preds = %.lr.ph.i2.i.i.i.i, %.lr.ph.i2.preheader.i.i.i.i @@ -63498,14 +63497,14 @@ _ZN4llvm20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096ELm128EE15Deall br i1 %.not.i3.i.i.i.i, label %_ZN4llvm15SmallVectorImplIPvE5eraseEPKS1_S4_.exit.i.i.i.i.loopexit, label %.lr.ph.i2.i.i.i.i, !llvm.loop !1327 _ZN4llvm15SmallVectorImplIPvE5eraseEPKS1_S4_.exit.i.i.i.i.loopexit: ; preds = %.lr.ph.i2.i.i.i.i - %.pre300.pre = load ptr, ptr %36, align 8, !tbaa !45 + %.pre299.pre = load ptr, ptr %36, align 8, !tbaa !45 br label %.lr.ph.i.i149.preheader .lr.ph.i.i149.preheader: ; preds = %_ZN4llvm15SmallVectorImplIPvE5eraseEPKS1_S4_.exit.i.i.i.i.loopexit, %811 - %.pre300 = phi ptr [ %.pre300.pre, %_ZN4llvm15SmallVectorImplIPvE5eraseEPKS1_S4_.exit.i.i.i.i.loopexit ], [ %.pre301, %811 ] + %.pre299 = phi ptr [ %.pre299.pre, %_ZN4llvm15SmallVectorImplIPvE5eraseEPKS1_S4_.exit.i.i.i.i.loopexit ], [ %.pre300, %811 ] store i32 1, ptr %38, align 8, !tbaa !42 %828 = load ptr, ptr %36, align 8, !tbaa !45 - %829 = ptrtoint ptr %.pre300 to i64 + %829 = ptrtoint ptr %.pre299 to i64 %830 = ptrtoint ptr %828 to i64 %831 = sub i64 %829, %830 %sum.shift.i.i = lshr i64 %831, 10 @@ -63514,7 +63513,7 @@ _ZN4llvm15SmallVectorImplIPvE5eraseEPKS1_S4_.exit.i.i.i.i.loopexit: ; preds = %. %834 = call i32 @llvm.umin.i32(i32 %833, i32 30) %.sroa.speculated.i.i.i = zext nneg i32 %834 to i64 %835 = shl nuw nsw i64 4096, %.sroa.speculated.i.i.i - %836 = load ptr, ptr %.pre300, align 8, !tbaa !8 + %836 = load ptr, ptr %.pre299, align 8, !tbaa !8 call void @_ZN4llvm17deallocate_bufferEPvmm(ptr noundef %836, i64 noundef %835, i64 noundef 16) #35 %.pr = load i32, ptr %42, align 8, !tbaa !42 %837 = load ptr, ptr %40, align 8, !tbaa !45 @@ -63562,7 +63561,7 @@ _ZN4llvm20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096ELm128EED2Ev.ex 850: ; preds = %.lr.ph, %979 %.0255 = phi i32 [ 0, %.lr.ph ], [ %.1, %979 ] - %.037254 = phi ptr [ %73, %.lr.ph ], [ %980, %979 ] + %.037254 = phi ptr [ %72, %.lr.ph ], [ %980, %979 ] %851 = load i64, ptr %.037254, align 8, !tbaa !50 %852 = getelementptr inbounds nuw i8, ptr %.037254, i64 8 %853 = load i32, ptr %852, align 8, !tbaa !1851 @@ -146803,13 +146802,13 @@ _ZN4llvm12DenseMapBaseINS_8DenseMapIPKN5clang9FileEntryEjNS_12DenseMapInfoIS5_vE ret void } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #26 ; Function Attrs: noreturn declare void @_ZN4llvm22report_bad_alloc_errorEPKcb(ptr noundef, i1 noundef zeroext) local_unnamed_addr #16 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #27 ; Function Attrs: mustprogress nounwind uwtable @@ -162575,7 +162574,7 @@ attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argm attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #4 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -162596,8 +162595,8 @@ attributes #22 = { mustprogress nofree nosync nounwind willreturn memory(none) " attributes #23 = { mustprogress nofree nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #24 = { mustprogress nofree nounwind memory(readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #25 = { mustprogress nofree norecurse nounwind memory(read, argmem: readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #26 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #27 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #26 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #27 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #28 = { nobuiltin nounwind allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #29 = { nofree "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #30 = { mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/llvm/optimized/LiveIntervalUnion.ll b/bench/llvm/optimized/LiveIntervalUnion.ll index ed7c6b2ffb4..21d225279a9 100644 --- a/bench/llvm/optimized/LiveIntervalUnion.ll +++ b/bench/llvm/optimized/LiveIntervalUnion.ll @@ -1769,11 +1769,7 @@ _ZN4llvm17LiveIntervalUnion5Array5clearEv.exit: ; preds = %6, %._crit_edge.i 27: ; preds = %25 %28 = tail call noalias dereferenceable_or_null(1) ptr @malloc(i64 noundef 1) #14 %29 = icmp eq ptr %28, null - br i1 %29, label %30, label %_ZN4llvm11safe_mallocEm.exit.thread - -_ZN4llvm11safe_mallocEm.exit.thread: ; preds = %27 - store ptr %28, ptr %7, align 8, !tbaa !96 - br label %.loopexit + br i1 %29, label %30, label %_ZN4llvm11safe_mallocEm.exit 30: ; preds = %27 tail call void @_ZN4llvm22report_bad_alloc_errorEPKcb(ptr noundef nonnull @.str.3, i1 noundef zeroext true) #13 @@ -1783,31 +1779,33 @@ _ZN4llvm11safe_mallocEm.exit.thread: ; preds = %27 tail call void @_ZN4llvm22report_bad_alloc_errorEPKcb(ptr noundef nonnull @.str.3, i1 noundef zeroext true) #13 unreachable -_ZN4llvm11safe_mallocEm.exit: ; preds = %_ZN4llvm17LiveIntervalUnion5Array5clearEv.exit - store ptr %23, ptr %7, align 8, !tbaa !96 - %.not8 = icmp eq i32 %2, 0 +_ZN4llvm11safe_mallocEm.exit: ; preds = %_ZN4llvm17LiveIntervalUnion5Array5clearEv.exit, %27 + %.0.i = phi ptr [ %23, %_ZN4llvm17LiveIntervalUnion5Array5clearEv.exit ], [ %28, %27 ] + store ptr %.0.i, ptr %7, align 8, !tbaa !96 + %32 = load i32, ptr %0, align 8, !tbaa !94 + %.not8 = icmp eq i32 %32, 0 br i1 %.not8, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %_ZN4llvm11safe_mallocEm.exit, %.lr.ph - %.09 = phi i32 [ %39, %.lr.ph ], [ 0, %_ZN4llvm11safe_mallocEm.exit ] - %32 = load ptr, ptr %7, align 8, !tbaa !96 - %33 = zext i32 %.09 to i64 - %34 = getelementptr inbounds nuw %"class.llvm::LiveIntervalUnion", ptr %32, i64 %33 - store i32 0, ptr %34, align 8, !tbaa !9 - %35 = getelementptr inbounds nuw i8, ptr %34, i64 8 - %36 = getelementptr inbounds nuw i8, ptr %34, i64 200 - store i32 0, ptr %36, align 8, !tbaa !28 - %37 = getelementptr inbounds nuw i8, ptr %34, i64 204 - store i32 0, ptr %37, align 4, !tbaa !29 - %38 = getelementptr inbounds nuw i8, ptr %34, i64 208 - store ptr %1, ptr %38, align 8, !tbaa !98 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(208) %35, i8 0, i64 192, i1 false) - %39 = add i32 %.09, 1 - %40 = load i32, ptr %0, align 8, !tbaa !94 - %.not = icmp eq i32 %39, %40 + %.09 = phi i32 [ %40, %.lr.ph ], [ 0, %_ZN4llvm11safe_mallocEm.exit ] + %33 = load ptr, ptr %7, align 8, !tbaa !96 + %34 = zext i32 %.09 to i64 + %35 = getelementptr inbounds nuw %"class.llvm::LiveIntervalUnion", ptr %33, i64 %34 + store i32 0, ptr %35, align 8, !tbaa !9 + %36 = getelementptr inbounds nuw i8, ptr %35, i64 8 + %37 = getelementptr inbounds nuw i8, ptr %35, i64 200 + store i32 0, ptr %37, align 8, !tbaa !28 + %38 = getelementptr inbounds nuw i8, ptr %35, i64 204 + store i32 0, ptr %38, align 4, !tbaa !29 + %39 = getelementptr inbounds nuw i8, ptr %35, i64 208 + store ptr %1, ptr %39, align 8, !tbaa !98 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(208) %36, i8 0, i64 192, i1 false) + %40 = add i32 %.09, 1 + %41 = load i32, ptr %0, align 8, !tbaa !94 + %.not = icmp eq i32 %40, %41 br i1 %.not, label %.loopexit, label %.lr.ph, !llvm.loop !99 -.loopexit: ; preds = %.lr.ph, %_ZN4llvm11safe_mallocEm.exit.thread, %_ZN4llvm11safe_mallocEm.exit, %3 +.loopexit: ; preds = %.lr.ph, %_ZN4llvm11safe_mallocEm.exit, %3 ret void } @@ -1876,7 +1874,7 @@ declare void @_ZNK4llvm9SlotIndex5printERNS_11raw_ostreamE(ptr noundef nonnull a declare noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostream5writeEh(ptr noundef nonnull align 8 dereferenceable(48), i8 noundef zeroext) local_unnamed_addr #2 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #6 ; Function Attrs: noreturn @@ -6065,7 +6063,7 @@ attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "t attributes #3 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #6 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #8 = { mustprogress noinline nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } diff --git a/bench/llvm/optimized/NestedNameSpecifier.ll b/bench/llvm/optimized/NestedNameSpecifier.ll index c27dffb98a4..2347d56bb5a 100644 --- a/bench/llvm/optimized/NestedNameSpecifier.ll +++ b/bench/llvm/optimized/NestedNameSpecifier.ll @@ -2163,7 +2163,7 @@ define dso_local void @_ZN5clang29NestedNameSpecifierLocBuilderC2ERKS0_(ptr noun ; Function Attrs: mustprogress nounwind uwtable define internal fastcc void @_ZL6AppendPcS_RS_RjS1_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull align 8 captures(none) dereferenceable(8) %2, ptr noundef nonnull align 4 captures(none) dereferenceable(4) %3, ptr noundef nonnull align 4 captures(none) dereferenceable(4) %4) unnamed_addr #0 { %6 = icmp eq ptr %0, %1 - br i1 %6, label %51, label %7 + br i1 %6, label %53, label %7 7: ; preds = %5 %8 = load i32, ptr %3, align 4, !tbaa !514 @@ -2180,7 +2180,7 @@ define internal fastcc void @_ZL6AppendPcS_RS_RjS1_(ptr noundef %0, ptr noundef ._crit_edge: ; preds = %7 %.pre = load ptr, ptr %2, align 8, !tbaa !515 %.pre42 = trunc i64 %12 to i32 - br label %46 + br label %48 17: ; preds = %7 %.not = icmp eq i32 %14, 0 @@ -2189,7 +2189,7 @@ define internal fastcc void @_ZL6AppendPcS_RS_RjS1_(ptr noundef %0, ptr noundef %19 = trunc i64 %12 to i32 %20 = add i32 %8, %19 %.sroa.speculated = tail call i32 @llvm.umax.i32(i32 %spec.select, i32 %20) - br i1 %.not, label %21, label %34 + br i1 %.not, label %21, label %36 21: ; preds = %17 %22 = zext i32 %.sroa.speculated to i64 @@ -2221,53 +2221,55 @@ _ZN4llvm11safe_mallocEm.exit: ; preds = %21, %27 br i1 %.not35, label %_ZN4llvm12safe_reallocEPvm.exit, label %33 33: ; preds = %_ZN4llvm11safe_mallocEm.exit - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %.0.i, ptr nonnull align 1 %32, i64 %9, i1 false) + %34 = load i32, ptr %3, align 4, !tbaa !514 + %35 = zext i32 %34 to i64 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %.0.i, ptr nonnull align 1 %32, i64 %35, i1 false) br label %_ZN4llvm12safe_reallocEPvm.exit -34: ; preds = %17 - %35 = load ptr, ptr %2, align 8, !tbaa !515 - %36 = zext i32 %.sroa.speculated to i64 - %37 = tail call ptr @realloc(ptr noundef %35, i64 noundef %36) #20 - %38 = icmp eq ptr %37, null - br i1 %38, label %39, label %_ZN4llvm12safe_reallocEPvm.exit +36: ; preds = %17 + %37 = load ptr, ptr %2, align 8, !tbaa !515 + %38 = zext i32 %.sroa.speculated to i64 + %39 = tail call ptr @realloc(ptr noundef %37, i64 noundef %38) #20 + %40 = icmp eq ptr %39, null + br i1 %40, label %41, label %_ZN4llvm12safe_reallocEPvm.exit -39: ; preds = %34 - %40 = icmp eq i32 %.sroa.speculated, 0 - br i1 %40, label %41, label %45 +41: ; preds = %36 + %42 = icmp eq i32 %.sroa.speculated, 0 + br i1 %42, label %43, label %47 -41: ; preds = %39 - %42 = tail call noalias dereferenceable_or_null(1) ptr @malloc(i64 noundef 1) #18 - %43 = icmp eq ptr %42, null - br i1 %43, label %44, label %_ZN4llvm12safe_reallocEPvm.exit +43: ; preds = %41 + %44 = tail call noalias dereferenceable_or_null(1) ptr @malloc(i64 noundef 1) #18 + %45 = icmp eq ptr %44, null + br i1 %45, label %46, label %_ZN4llvm12safe_reallocEPvm.exit -44: ; preds = %41 +46: ; preds = %43 tail call void @_ZN4llvm22report_bad_alloc_errorEPKcb(ptr noundef nonnull @.str.4, i1 noundef zeroext true) #19 unreachable -45: ; preds = %39 +47: ; preds = %41 tail call void @_ZN4llvm22report_bad_alloc_errorEPKcb(ptr noundef nonnull @.str.4, i1 noundef zeroext true) #19 unreachable -_ZN4llvm12safe_reallocEPvm.exit: ; preds = %41, %34, %_ZN4llvm11safe_mallocEm.exit, %33 - %storemerge = phi ptr [ %.0.i, %33 ], [ %.0.i, %_ZN4llvm11safe_mallocEm.exit ], [ %37, %34 ], [ %42, %41 ] +_ZN4llvm12safe_reallocEPvm.exit: ; preds = %43, %36, %_ZN4llvm11safe_mallocEm.exit, %33 + %storemerge = phi ptr [ %.0.i, %33 ], [ %.0.i, %_ZN4llvm11safe_mallocEm.exit ], [ %39, %36 ], [ %44, %43 ] store ptr %storemerge, ptr %2, align 8, !tbaa !515 store i32 %.sroa.speculated, ptr %4, align 4, !tbaa !514 %.pre40 = load i32, ptr %3, align 4, !tbaa !514 %.pre41 = zext i32 %.pre40 to i64 - br label %46 + br label %48 -46: ; preds = %._crit_edge, %_ZN4llvm12safe_reallocEPvm.exit +48: ; preds = %._crit_edge, %_ZN4llvm12safe_reallocEPvm.exit %.pre-phi43 = phi i32 [ %.pre42, %._crit_edge ], [ %19, %_ZN4llvm12safe_reallocEPvm.exit ] %.pre-phi = phi i64 [ %9, %._crit_edge ], [ %.pre41, %_ZN4llvm12safe_reallocEPvm.exit ] - %47 = phi ptr [ %.pre, %._crit_edge ], [ %storemerge, %_ZN4llvm12safe_reallocEPvm.exit ] - %48 = getelementptr inbounds nuw i8, ptr %47, i64 %.pre-phi - tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %48, ptr align 1 %0, i64 %12, i1 false) - %49 = load i32, ptr %3, align 4, !tbaa !514 - %50 = add i32 %49, %.pre-phi43 - store i32 %50, ptr %3, align 4, !tbaa !514 - br label %51 - -51: ; preds = %5, %46 + %49 = phi ptr [ %.pre, %._crit_edge ], [ %storemerge, %_ZN4llvm12safe_reallocEPvm.exit ] + %50 = getelementptr inbounds nuw i8, ptr %49, i64 %.pre-phi + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %50, ptr align 1 %0, i64 %12, i1 false) + %51 = load i32, ptr %3, align 4, !tbaa !514 + %52 = add i32 %51, %.pre-phi43 + store i32 %52, ptr %3, align 4, !tbaa !514 + br label %53 + +53: ; preds = %5, %48 ret void } @@ -3032,13 +3034,13 @@ _ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S ret void } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #11 ; Function Attrs: noreturn declare void @_ZN4llvm22report_bad_alloc_errorEPKcb(ptr noundef, i1 noundef zeroext) local_unnamed_addr #12 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #13 ; Function Attrs: mustprogress noinline nounwind uwtable @@ -3647,9 +3649,9 @@ attributes #7 = { mustprogress nofree nounwind willreturn memory(read) uwtable " attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #9 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #10 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #12 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #13 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #14 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #15 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #16 = { nounwind } diff --git a/bench/llvm/optimized/SmallPtrSet.ll b/bench/llvm/optimized/SmallPtrSet.ll index c1b652b562a..5ed9fa3d612 100644 --- a/bench/llvm/optimized/SmallPtrSet.ll +++ b/bench/llvm/optimized/SmallPtrSet.ll @@ -47,7 +47,10 @@ define dso_local void @_ZN4llvm19SmallPtrSetImplBase16shrink_and_clearEv(ptr nou _ZN4llvm11safe_mallocEm.exit: ; preds = %14 store ptr %19, ptr %0, align 8, !tbaa !3 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %19, i8 -1, i64 %18, i1 false) + %22 = load i32, ptr %16, align 8, !tbaa !12 + %23 = zext i32 %22 to i64 + %24 = shl nuw nsw i64 %23, 3 + tail call void @llvm.memset.p0.i64(ptr nonnull align 8 %19, i8 -1, i64 %24, i1 false) ret void } @@ -277,16 +280,15 @@ _ZNK4llvm19SmallPtrSetImplBase13FindBucketForEPKv.exit: ; preds = %.lr.ph.i, %._ 52: ; preds = %._crit_edge tail call void @free(ptr noundef %3) #13 - %.pre = load i32, ptr %7, align 4, !tbaa !10 br label %53 53: ; preds = %52, %._crit_edge - %54 = phi i32 [ %.pre, %52 ], [ %8, %._crit_edge ] - %55 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %56 = load i32, ptr %55, align 8, !tbaa !11 - %57 = sub i32 %54, %56 + %54 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %55 = load i32, ptr %54, align 8, !tbaa !11 + %56 = load i32, ptr %7, align 4, !tbaa !10 + %57 = sub i32 %56, %55 store i32 %57, ptr %7, align 4, !tbaa !10 - store i32 0, ptr %55, align 8, !tbaa !11 + store i32 0, ptr %54, align 8, !tbaa !11 store i8 0, ptr %4, align 4, !tbaa !20 ret void } @@ -396,62 +398,65 @@ define dso_local void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvRKS0_(ptr noundef non %6 = trunc nuw i8 %5 to i1 %7 = getelementptr inbounds nuw i8, ptr %0, i64 20 store i8 %5, ptr %7, align 4, !tbaa !20 - %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %2, i64 8 - %.pre = load i32, ptr %.phi.trans.insert, align 8, !tbaa !12 br i1 %6, label %_ZN4llvm11safe_mallocEm.exit, label %8 8: ; preds = %3 - %9 = zext i32 %.pre to i64 - %10 = shl nuw nsw i64 %9, 3 - %11 = tail call noalias ptr @malloc(i64 noundef %10) #14 - %12 = icmp eq ptr %11, null - br i1 %12, label %13, label %_ZN4llvm11safe_mallocEm.exit - -13: ; preds = %8 - %14 = icmp eq i32 %.pre, 0 - br i1 %14, label %15, label %19 - -15: ; preds = %13 - %16 = tail call noalias dereferenceable_or_null(1) ptr @malloc(i64 noundef 1) #14 - %17 = icmp eq ptr %16, null - br i1 %17, label %18, label %_ZN4llvm11safe_mallocEm.exit - -18: ; preds = %15 + %9 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %10 = load i32, ptr %9, align 8, !tbaa !12 + %11 = zext i32 %10 to i64 + %12 = shl nuw nsw i64 %11, 3 + %13 = tail call noalias ptr @malloc(i64 noundef %12) #14 + %14 = icmp eq ptr %13, null + br i1 %14, label %15, label %_ZN4llvm11safe_mallocEm.exit + +15: ; preds = %8 + %16 = icmp eq i32 %10, 0 + br i1 %16, label %17, label %21 + +17: ; preds = %15 + %18 = tail call noalias dereferenceable_or_null(1) ptr @malloc(i64 noundef 1) #14 + %19 = icmp eq ptr %18, null + br i1 %19, label %20, label %_ZN4llvm11safe_mallocEm.exit + +20: ; preds = %17 tail call void @_ZN4llvm22report_bad_alloc_errorEPKcb(ptr noundef nonnull @.str, i1 noundef zeroext true) #15 unreachable -19: ; preds = %13 +21: ; preds = %15 tail call void @_ZN4llvm22report_bad_alloc_errorEPKcb(ptr noundef nonnull @.str, i1 noundef zeroext true) #15 unreachable -_ZN4llvm11safe_mallocEm.exit: ; preds = %3, %15, %8 - %20 = phi i32 [ %.pre, %8 ], [ 0, %15 ], [ %.pre, %3 ] - %storemerge = phi ptr [ %11, %8 ], [ %16, %15 ], [ %1, %3 ] +_ZN4llvm11safe_mallocEm.exit: ; preds = %17, %8, %3 + %storemerge = phi ptr [ %1, %3 ], [ %13, %8 ], [ %18, %17 ] store ptr %storemerge, ptr %0, align 8, !tbaa !3 - %21 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i32 %20, ptr %21, align 8, !tbaa !12 - %22 = getelementptr inbounds nuw i8, ptr %2, i64 12 - %23 = load i32, ptr %22, align 4 - %.v.v.i.i = select i1 %6, i32 %23, i32 %20 + %22 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %23 = load i32, ptr %22, align 8, !tbaa !12 + %24 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i32 %23, ptr %24, align 8, !tbaa !12 + %25 = load i8, ptr %4, align 4, !tbaa !20, !range !21, !noundef !22 + %26 = trunc nuw i8 %25 to i1 + %27 = getelementptr inbounds nuw i8, ptr %2, i64 12 + %28 = load i32, ptr %27, align 4 + %.v.v.i.i = select i1 %26, i32 %28, i32 %23 %.not.i.i.i.i.i.i = icmp eq i32 %.v.v.i.i, 0 - br i1 %.not.i.i.i.i.i.i, label %_ZN4llvm19SmallPtrSetImplBase10copyHelperERKS0_.exit, label %24 + br i1 %.not.i.i.i.i.i.i, label %_ZN4llvm19SmallPtrSetImplBase10copyHelperERKS0_.exit, label %29 -24: ; preds = %_ZN4llvm11safe_mallocEm.exit +29: ; preds = %_ZN4llvm11safe_mallocEm.exit %.v.i.i = zext i32 %.v.v.i.i to i64 - %25 = load ptr, ptr %2, align 8, !tbaa !3 + %30 = load ptr, ptr %2, align 8, !tbaa !3 %.idx.i = shl nuw nsw i64 %.v.i.i, 3 - tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %storemerge, ptr align 8 %25, i64 %.idx.i, i1 false) - %.pre.i = load i32, ptr %22, align 4, !tbaa !10 + tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %storemerge, ptr align 8 %30, i64 %.idx.i, i1 false) + %.pre.i = load i32, ptr %27, align 4, !tbaa !10 br label %_ZN4llvm19SmallPtrSetImplBase10copyHelperERKS0_.exit -_ZN4llvm19SmallPtrSetImplBase10copyHelperERKS0_.exit: ; preds = %_ZN4llvm11safe_mallocEm.exit, %24 - %26 = phi i32 [ %23, %_ZN4llvm11safe_mallocEm.exit ], [ %.pre.i, %24 ] - %27 = getelementptr inbounds nuw i8, ptr %0, i64 12 - store i32 %26, ptr %27, align 4, !tbaa !10 - %28 = getelementptr inbounds nuw i8, ptr %2, i64 16 - %29 = load i32, ptr %28, align 8, !tbaa !11 - %30 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i32 %29, ptr %30, align 8, !tbaa !11 +_ZN4llvm19SmallPtrSetImplBase10copyHelperERKS0_.exit: ; preds = %_ZN4llvm11safe_mallocEm.exit, %29 + %31 = phi i32 [ %28, %_ZN4llvm11safe_mallocEm.exit ], [ %.pre.i, %29 ] + %32 = getelementptr inbounds nuw i8, ptr %0, i64 12 + store i32 %31, ptr %32, align 4, !tbaa !10 + %33 = getelementptr inbounds nuw i8, ptr %2, i64 16 + %34 = load i32, ptr %33, align 8, !tbaa !11 + %35 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store i32 %34, ptr %35, align 8, !tbaa !11 ret void } @@ -978,13 +983,13 @@ _ZSt4copyIPPKvS2_ET0_T_S4_S3_.exit45: ; preds = %89, %87, %80 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.ctlz.i32(i32, i1 immarg) #7 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #8 ; Function Attrs: noreturn declare void @_ZN4llvm22report_bad_alloc_errorEPKcb(ptr noundef, i1 noundef zeroext) local_unnamed_addr #9 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #10 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) @@ -1004,9 +1009,9 @@ attributes #4 = { mustprogress nofree norecurse nosync nounwind willreturn memor attributes #5 = { mustprogress nounwind willreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #8 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #11 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #12 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #13 = { nounwind } diff --git a/bench/lvgl/optimized/lv_sdl_window.ll b/bench/lvgl/optimized/lv_sdl_window.ll index 0e989b7f03c..dddca4c83f6 100644 --- a/bench/lvgl/optimized/lv_sdl_window.ll +++ b/bench/lvgl/optimized/lv_sdl_window.ll @@ -574,41 +574,40 @@ define internal fastcc void @texture_resize(ptr noundef %0) unnamed_addr #0 { 13: ; preds = %1 tail call void @free(ptr noundef nonnull %8) #6 - %.pre = load i32, ptr %9, align 4, !tbaa !32 - %.pre26 = mul i32 %.pre, %5 - %.pre27 = zext i32 %.pre26 to i64 br label %sdl_draw_buf_realloc_aligned.exit sdl_draw_buf_realloc_aligned.exit: ; preds = %1, %13 - %.pre-phi28 = phi i64 [ %12, %1 ], [ %.pre27, %13 ] %14 = add nuw nsw i64 %12, 7 %15 = and i64 %14, 8589934584 %16 = tail call noalias noundef align 8 ptr @aligned_alloc(i64 noundef 8, i64 noundef %15) #8 store ptr %16, ptr %7, align 8, !tbaa !35 - tail call void @lv_memset(ptr noundef %16, i8 noundef zeroext 0, i64 noundef range(i64 0, 4294967296) %.pre-phi28) #6 - %17 = load ptr, ptr %7, align 8, !tbaa !35 - %18 = getelementptr inbounds nuw i8, ptr %6, i64 32 - %19 = load ptr, ptr %18, align 8, !tbaa !36 - %20 = load i32, ptr %9, align 4, !tbaa !32 - %21 = mul i32 %20, %5 - tail call void @lv_display_set_buffers(ptr noundef nonnull %0, ptr noundef %17, ptr noundef %19, i32 noundef %21, i32 noundef 1) #6 - %22 = getelementptr inbounds nuw i8, ptr %6, i64 16 - %23 = load ptr, ptr %22, align 8, !tbaa !41 - %.not = icmp eq ptr %23, null - br i1 %.not, label %25, label %24 - -24: ; preds = %sdl_draw_buf_realloc_aligned.exit - tail call void @SDL_DestroyTexture(ptr noundef nonnull %23) #6 - br label %25 - -25: ; preds = %24, %sdl_draw_buf_realloc_aligned.exit - %26 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %27 = load ptr, ptr %26, align 8, !tbaa !34 - %28 = load i32, ptr %0, align 8, !tbaa !16 - %29 = load i32, ptr %9, align 4, !tbaa !32 - %30 = tail call ptr @SDL_CreateTexture(ptr noundef %27, i32 noundef 353701890, i32 noundef 0, i32 noundef %28, i32 noundef %29) #6 - store ptr %30, ptr %22, align 8, !tbaa !41 - %31 = tail call i32 @SDL_SetTextureBlendMode(ptr noundef %30, i32 noundef 1) #6 + %17 = load i32, ptr %9, align 4, !tbaa !32 + %18 = mul i32 %17, %5 + %19 = zext i32 %18 to i64 + tail call void @lv_memset(ptr noundef %16, i8 noundef zeroext 0, i64 noundef range(i64 0, 4294967296) %19) #6 + %20 = load ptr, ptr %7, align 8, !tbaa !35 + %21 = getelementptr inbounds nuw i8, ptr %6, i64 32 + %22 = load ptr, ptr %21, align 8, !tbaa !36 + %23 = load i32, ptr %9, align 4, !tbaa !32 + %24 = mul i32 %23, %5 + tail call void @lv_display_set_buffers(ptr noundef nonnull %0, ptr noundef %20, ptr noundef %22, i32 noundef %24, i32 noundef 1) #6 + %25 = getelementptr inbounds nuw i8, ptr %6, i64 16 + %26 = load ptr, ptr %25, align 8, !tbaa !41 + %.not = icmp eq ptr %26, null + br i1 %.not, label %28, label %27 + +27: ; preds = %sdl_draw_buf_realloc_aligned.exit + tail call void @SDL_DestroyTexture(ptr noundef nonnull %26) #6 + br label %28 + +28: ; preds = %27, %sdl_draw_buf_realloc_aligned.exit + %29 = getelementptr inbounds nuw i8, ptr %6, i64 8 + %30 = load ptr, ptr %29, align 8, !tbaa !34 + %31 = load i32, ptr %0, align 8, !tbaa !16 + %32 = load i32, ptr %9, align 4, !tbaa !32 + %33 = tail call ptr @SDL_CreateTexture(ptr noundef %30, i32 noundef 353701890, i32 noundef 0, i32 noundef %31, i32 noundef %32) #6 + store ptr %33, ptr %25, align 8, !tbaa !41 + %34 = tail call i32 @SDL_SetTextureBlendMode(ptr noundef %33, i32 noundef 1) #6 ret void } @@ -622,7 +621,7 @@ declare ptr @SDL_CreateTexture(ptr noundef, i32 noundef, i32 noundef, i32 nounde declare i32 @SDL_SetTextureBlendMode(ptr noundef, i32 noundef) local_unnamed_addr #1 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized,aligned") allocsize(1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized,aligned") allocsize(1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @aligned_alloc(i64 allocalign noundef, i64 noundef) local_unnamed_addr #4 declare ptr @lv_event_get_current_target(ptr noundef) local_unnamed_addr #1 @@ -643,7 +642,7 @@ attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-mat attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { nofree noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized,aligned") allocsize(1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized,aligned") allocsize(1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #6 = { nounwind } attributes #7 = { noreturn nounwind } diff --git a/bench/lz4/optimized/lorem.ll b/bench/lz4/optimized/lorem.ll index 402214b7c76..11064edfe9d 100644 --- a/bench/lz4/optimized/lorem.ll +++ b/bench/lz4/optimized/lorem.ll @@ -4,6 +4,7 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80: target triple = "x86_64-pc-linux-gnu" @g_ptr = internal unnamed_addr global ptr null, align 8 +@g_randRoot = internal unnamed_addr global i32 0, align 4 @g_distribCount = internal unnamed_addr global i32 0, align 4 @kWords = internal unnamed_addr constant [255 x ptr] [ptr @.str, ptr @.str.1, ptr @.str.2, ptr @.str.3, ptr @.str.4, ptr @.str.5, ptr @.str.6, ptr @.str.7, ptr @.str.8, ptr @.str.9, ptr @.str.10, ptr @.str.11, ptr @.str.12, ptr @.str.13, ptr @.str.14, ptr @.str.15, ptr @.str.16, ptr @.str.17, ptr @.str.18, ptr @.str.19, ptr @.str.20, ptr @.str.21, ptr @.str.22, ptr @.str.23, ptr @.str.24, ptr @.str.25, ptr @.str.26, ptr @.str.27, ptr @.str.28, ptr @.str.29, ptr @.str.30, ptr @.str.31, ptr @.str.32, ptr @.str.33, ptr @.str.34, ptr @.str.35, ptr @.str.36, ptr @.str.37, ptr @.str.38, ptr @.str.39, ptr @.str.40, ptr @.str.41, ptr @.str.42, ptr @.str.43, ptr @.str.44, ptr @.str.45, ptr @.str.46, ptr @.str.47, ptr @.str.48, ptr @.str.49, ptr @.str.50, ptr @.str.51, ptr @.str.52, ptr @.str.53, ptr @.str.54, ptr @.str.55, ptr @.str.56, ptr @.str.57, ptr @.str.58, ptr @.str.59, ptr @.str.60, ptr @.str.61, ptr @.str.62, ptr @.str.63, ptr @.str.64, ptr @.str.65, ptr @.str.66, ptr @.str.67, ptr @.str.68, ptr @.str.69, ptr @.str.70, ptr @.str.71, ptr @.str.72, ptr @.str.73, ptr @.str.74, ptr @.str.75, ptr @.str.76, ptr @.str.77, ptr @.str.78, ptr @.str.79, ptr @.str.80, ptr @.str.81, ptr @.str.82, ptr @.str.83, ptr @.str.84, ptr @.str.85, ptr @.str.86, ptr @.str.87, ptr @.str.88, ptr @.str.89, ptr @.str.90, ptr @.str.91, ptr @.str.92, ptr @.str.93, ptr @.str.94, ptr @.str.95, ptr @.str.96, ptr @.str.97, ptr @.str.98, ptr @.str.99, ptr @.str.100, ptr @.str.101, ptr @.str.102, ptr @.str.103, ptr @.str.104, ptr @.str.105, ptr @.str.106, ptr @.str.107, ptr @.str.108, ptr @.str.109, ptr @.str.110, ptr @.str.111, ptr @.str.112, ptr @.str.113, ptr @.str.114, ptr @.str.115, ptr @.str.116, ptr @.str.117, ptr @.str.118, ptr @.str.119, ptr @.str.120, ptr @.str.121, ptr @.str.122, ptr @.str.123, ptr @.str.124, ptr @.str.125, ptr @.str.126, ptr @.str.127, ptr @.str.128, ptr @.str.129, ptr @.str.130, ptr @.str.131, ptr @.str.132, ptr @.str.133, ptr @.str.134, ptr @.str.135, ptr @.str.136, ptr @.str.137, ptr @.str.138, ptr @.str.139, ptr @.str.140, ptr @.str.141, ptr @.str.142, ptr @.str.143, ptr @.str.144, ptr @.str.145, ptr @.str.146, ptr @.str.147, ptr @.str.148, ptr @.str.149, ptr @.str.150, ptr @.str.151, ptr @.str.152, ptr @.str.153, ptr @.str.154, ptr @.str.155, ptr @.str.156, ptr @.str.157, ptr @.str.158, ptr @.str.159, ptr @.str.160, ptr @.str.161, ptr @.str.162, ptr @.str.163, ptr @.str.164, ptr @.str.165, ptr @.str.166, ptr @.str.167, ptr @.str.168, ptr @.str.169, ptr @.str.170, ptr @.str.171, ptr @.str.172, ptr @.str.173, ptr @.str.174, ptr @.str.175, ptr @.str.176, ptr @.str.177, ptr @.str.178, ptr @.str.179, ptr @.str.180, ptr @.str.181, ptr @.str.182, ptr @.str.183, ptr @.str.184, ptr @.str.185, ptr @.str.186, ptr @.str.187, ptr @.str.188, ptr @.str.189, ptr @.str.190, ptr @.str.191, ptr @.str.192, ptr @.str.193, ptr @.str.194, ptr @.str.195, ptr @.str.196, ptr @.str.197, ptr @.str.198, ptr @.str.199, ptr @.str.200, ptr @.str.201, ptr @.str.202, ptr @.str.203, ptr @.str.204, ptr @.str.205, ptr @.str.206, ptr @.str.207, ptr @.str.208, ptr @.str.209, ptr @.str.210, ptr @.str.211, ptr @.str.212, ptr @.str.213, ptr @.str.214, ptr @.str.215, ptr @.str.216, ptr @.str.217, ptr @.str.218, ptr @.str.219, ptr @.str.220, ptr @.str.221, ptr @.str.222, ptr @.str.223, ptr @.str.224, ptr @.str.225, ptr @.str.226, ptr @.str.227, ptr @.str.228, ptr @.str.229, ptr @.str.230, ptr @.str.231, ptr @.str.232, ptr @.str.233, ptr @.str.234, ptr @.str.235, ptr @.str.236, ptr @.str.237, ptr @.str.238, ptr @.str.239, ptr @.str.240, ptr @.str.241, ptr @.str.242, ptr @.str.243, ptr @.str.244, ptr @.str.245, ptr @.str.246, ptr @.str.247, ptr @.str.248, ptr @.str.249, ptr @.str.250, ptr @.str.251, ptr @.str.252, ptr @.str.253, ptr @.str.254], align 16 @g_wordLen = internal unnamed_addr global [255 x i32] zeroinitializer, align 16 @@ -270,6 +271,7 @@ target triple = "x86_64-pc-linux-gnu" ; Function Attrs: nofree nounwind uwtable define dso_local i64 @LOREM_genBlock(ptr noundef %0, i64 noundef %1, i32 noundef %2, i32 noundef %3, i32 noundef %4) local_unnamed_addr #0 { store ptr %0, ptr @g_ptr, align 8, !tbaa !4 + store i32 %2, ptr @g_randRoot, align 4, !tbaa !9 %6 = load i32, ptr @g_distribCount, align 4, !tbaa !9 %7 = icmp eq i32 %6, 0 br i1 %7, label %.preheader, label %init_word_distrib.exit @@ -567,6 +569,7 @@ writeLastCharacters.exit.sink.split.sink.split.i.i14.i: ; preds = %writeLastChar generateFirstSentence.exit: ; preds = %128, %137, %writeLastCharacters.exit.sink.split.sink.split.i.i14.i, %143, %130, %122, %init_word_distrib.exit %g_nbChars.promoted = phi i64 [ %1, %130 ], [ %g_nbChars.promoted33, %122 ], [ 0, %init_word_distrib.exit ], [ %147, %143 ], [ %1, %writeLastCharacters.exit.sink.split.sink.split.i.i14.i ], [ %1, %137 ], [ %1, %128 ] + %g_randRoot.promoted = load i32, ptr @g_randRoot, align 4 %148 = zext i32 %50 to i64 %149 = getelementptr i8, ptr %0, i64 %1 %150 = getelementptr i8, ptr %149, i64 -1 @@ -575,7 +578,7 @@ generateFirstSentence.exit: ; preds = %128, %137, %writeLa 151: ; preds = %generateParagraph.exit, %generateFirstSentence.exit %152 = phi i64 [ %319, %generateParagraph.exit ], [ %g_nbChars.promoted, %generateFirstSentence.exit ] - %.lcssa.lcssa23 = phi i32 [ %240, %generateParagraph.exit ], [ %2, %generateFirstSentence.exit ] + %.lcssa.lcssa23 = phi i32 [ %240, %generateParagraph.exit ], [ %g_randRoot.promoted, %generateFirstSentence.exit ] %153 = phi i64 [ %320, %generateParagraph.exit ], [ %g_nbChars.promoted, %generateFirstSentence.exit ] %154 = icmp ult i64 %153, %1 br i1 %154, label %155, label %321 @@ -591,6 +594,7 @@ generateFirstSentence.exit: ; preds = %128, %137, %writeLa %163 = mul i32 %158, -1640531535 %164 = xor i32 %163, -2048144777 %165 = tail call i32 @llvm.fshl.i32(i32 %164, i32 %164, i32 13) + store i32 %165, ptr @g_randRoot, align 4, !tbaa !9 %166 = zext i32 %165 to i64 %167 = mul nuw nsw i64 %166, 7 %168 = lshr i64 %167, 32 @@ -794,6 +798,7 @@ generateSentence.exit.i: ; preds = %generateWord.exit.i br i1 %exitcond.not.i15, label %._crit_edge.i16, label %172, !llvm.loop !21 ._crit_edge.i16: ; preds = %generateSentence.exit.i + store i32 %240, ptr @g_randRoot, align 4, !tbaa !9 %307 = icmp ult i64 %302, %1 br i1 %307, label %308, label %311 @@ -835,7 +840,7 @@ define dso_local void @LOREM_genBuffer(ptr noundef %0, i64 noundef %1, i32 nound ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: read) declare i64 @strlen(ptr noundef captures(none)) local_unnamed_addr #1 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #2 ; Function Attrs: cold nofree noreturn nounwind @@ -861,7 +866,7 @@ declare i32 @llvm.smax.i32(i32, i32) #6 attributes #0 = { nofree nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { cold nofree noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/bench/memcached/optimized/assoc.ll b/bench/memcached/optimized/assoc.ll index 0db118b5553..004bdeb1aa2 100644 --- a/bench/memcached/optimized/assoc.ll +++ b/bench/memcached/optimized/assoc.ll @@ -72,7 +72,7 @@ define dso_local void @assoc_init(i32 noundef %0) local_unnamed_addr #0 { ret void } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #1 ; Function Attrs: nofree nounwind @@ -355,7 +355,7 @@ define internal noalias noundef ptr @assoc_maintenance_thread(ptr readnone captu %.not25 = icmp eq i32 %3, 0 br i1 %.not25, label %._crit_edge26, label %.preheader -.preheader: ; preds = %1, %87 +.preheader: ; preds = %1, %89 %4 = load i32, ptr @hash_bulk_move, align 4, !tbaa !4 %5 = icmp sgt i32 %4, 0 %.b21 = load i1, ptr @expanding, align 1 @@ -471,13 +471,13 @@ define internal noalias noundef ptr @assoc_maintenance_thread(ptr readnone captu ._crit_edge24: ; preds = %59, %.preheader %.b.lcssa = phi i1 [ %.b21, %.preheader ], [ %.b, %59 ] - br i1 %.b.lcssa, label %87, label %64 + br i1 %.b.lcssa, label %89, label %64 64: ; preds = %._crit_edge24 %65 = tail call i32 @pthread_cond_wait(ptr noundef nonnull @maintenance_cond, ptr noundef nonnull @maintenance_lock) #18 %66 = load volatile i32, ptr @do_run_maintenance_thread, align 4, !tbaa !4 %.not15 = icmp eq i32 %66, 0 - br i1 %.not15, label %87, label %67 + br i1 %.not15, label %89, label %67 67: ; preds = %64 tail call void @pause_threads(i32 noundef 1) #18 @@ -490,7 +490,7 @@ define internal noalias noundef ptr @assoc_maintenance_thread(ptr readnone captu %73 = tail call noalias ptr @calloc(i64 noundef %72, i64 noundef 8) #15 store ptr %73, ptr @primary_hashtable, align 8, !tbaa !8 %.not.i = icmp eq ptr %73, null - br i1 %.not.i, label %86, label %74 + br i1 %.not.i, label %88, label %74 74: ; preds = %67 %75 = load i32, ptr getelementptr inbounds nuw (i8, ptr @settings, i64 32), align 8, !tbaa !31 @@ -500,42 +500,41 @@ define internal noalias noundef ptr @assoc_maintenance_thread(ptr readnone captu 77: ; preds = %74 %78 = load ptr, ptr @stderr, align 8, !tbaa !11 %79 = tail call i64 @fwrite(ptr nonnull @.str.5, i64 30, i64 1, ptr %78) #16 - %.pre.i = load i32, ptr @hashpower, align 4, !tbaa !4 - %.pre1.i = add i32 %.pre.i, 1 br label %80 80: ; preds = %77, %74 - %.pre-phi.i = phi i32 [ %.pre1.i, %77 ], [ %70, %74 ] - store i32 %.pre-phi.i, ptr @hashpower, align 4, !tbaa !4 + %81 = load i32, ptr @hashpower, align 4, !tbaa !4 + %82 = add i32 %81, 1 + store i32 %82, ptr @hashpower, align 4, !tbaa !4 store i1 true, ptr @expanding, align 1 store i64 0, ptr @expand_bucket, align 8, !tbaa !19 tail call void @STATS_LOCK() #18 - %81 = load i32, ptr @hashpower, align 4, !tbaa !4 - store i32 %81, ptr getelementptr inbounds nuw (i8, ptr @stats_state, i64 44), align 4, !tbaa !13 - %82 = zext nneg i32 %81 to i64 - %83 = shl i64 8, %82 - %84 = load i64, ptr getelementptr inbounds nuw (i8, ptr @stats_state, i64 24), align 8, !tbaa !18 - %85 = add i64 %84, %83 - store i64 %85, ptr getelementptr inbounds nuw (i8, ptr @stats_state, i64 24), align 8, !tbaa !18 + %83 = load i32, ptr @hashpower, align 4, !tbaa !4 + store i32 %83, ptr getelementptr inbounds nuw (i8, ptr @stats_state, i64 44), align 4, !tbaa !13 + %84 = zext nneg i32 %83 to i64 + %85 = shl i64 8, %84 + %86 = load i64, ptr getelementptr inbounds nuw (i8, ptr @stats_state, i64 24), align 8, !tbaa !18 + %87 = add i64 %86, %85 + store i64 %87, ptr getelementptr inbounds nuw (i8, ptr @stats_state, i64 24), align 8, !tbaa !18 store i8 1, ptr getelementptr inbounds nuw (i8, ptr @stats_state, i64 52), align 4, !tbaa !30 tail call void @STATS_UNLOCK() #18 br label %assoc_expand.exit -86: ; preds = %67 +88: ; preds = %67 store ptr %68, ptr @primary_hashtable, align 8, !tbaa !8 br label %assoc_expand.exit -assoc_expand.exit: ; preds = %80, %86 +assoc_expand.exit: ; preds = %80, %88 tail call void @pause_threads(i32 noundef 2) #18 - br label %87 + br label %89 -87: ; preds = %64, %assoc_expand.exit, %._crit_edge24 - %88 = load volatile i32, ptr @do_run_maintenance_thread, align 4, !tbaa !4 - %.not = icmp eq i32 %88, 0 +89: ; preds = %64, %assoc_expand.exit, %._crit_edge24 + %90 = load volatile i32, ptr @do_run_maintenance_thread, align 4, !tbaa !4 + %.not = icmp eq i32 %90, 0 br i1 %.not, label %._crit_edge26, label %.preheader, !llvm.loop !37 -._crit_edge26: ; preds = %87, %1 - %89 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull @maintenance_lock) #18 +._crit_edge26: ; preds = %89, %1 + %91 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull @maintenance_lock) #18 ret ptr null } @@ -705,7 +704,7 @@ declare i32 @bcmp(ptr captures(none), ptr captures(none), i64) local_unnamed_add declare i32 @llvm.umax.i32(i32, i32) #14 attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #1 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { nofree noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/mold/optimized/rust-demangle.ll b/bench/mold/optimized/rust-demangle.ll index 8793c5c327e..5363065f780 100644 --- a/bench/mold/optimized/rust-demangle.ll +++ b/bench/mold/optimized/rust-demangle.ll @@ -2154,13 +2154,13 @@ define internal fastcc void @print_ident(ptr noundef nonnull captures(none) %0, %3 = getelementptr inbounds nuw i8, ptr %0, i64 40 %4 = load i8, ptr %3, align 8, !tbaa !15, !range !24, !noundef !25 %5 = trunc nuw i8 %4 to i1 - br i1 %5, label %143, label %6 + br i1 %5, label %149, label %6 6: ; preds = %2 %7 = getelementptr inbounds nuw i8, ptr %0, i64 41 %8 = load i8, ptr %7, align 1, !tbaa !16, !range !24, !noundef !25 %9 = trunc nuw i8 %8 to i1 - br i1 %9, label %143, label %10 + br i1 %9, label %149, label %10 10: ; preds = %6 %11 = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -2182,7 +2182,7 @@ print_str.exit: ; preds = %10 %20 = getelementptr inbounds nuw i8, ptr %0, i64 16 %21 = load ptr, ptr %20, align 8, !tbaa !12 tail call void %19(ptr noundef %15, i64 noundef %17, ptr noundef %21) #12 - br label %143 + br label %149 22: ; preds = %.preheader204, %24 %.0156 = phi i64 [ %25, %24 ], [ 4, %.preheader204 ] @@ -2196,7 +2196,7 @@ print_str.exit: ; preds = %10 27: ; preds = %24 store i8 1, ptr %3, align 8, !tbaa !15 - br label %143 + br label %149 28: ; preds = %22 %29 = shl nuw i64 %.0156, 2 @@ -2214,7 +2214,7 @@ print_str.exit: ; preds = %10 32: ; preds = %28 store i8 1, ptr %3, align 8, !tbaa !15 - br label %143 + br label %149 .preheader202: ; preds = %35, %.preheader203 %33 = getelementptr inbounds nuw i8, ptr %1, i64 24 @@ -2438,19 +2438,29 @@ print_str.exit: ; preds = %10 ._crit_edge236: ; preds = %137, %.thread192 %.0.lcssa = phi i64 [ 0, %.thread192 ], [ %.1, %137 ] - %139 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %140 = load ptr, ptr %139, align 8, !tbaa !13 - %141 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %142 = load ptr, ptr %141, align 8, !tbaa !12 - tail call void %140(ptr noundef nonnull %.1163, i64 noundef %.0.lcssa, ptr noundef %142) #12 + %139 = load i8, ptr %3, align 8, !tbaa !15, !range !24, !noundef !25 + %140 = trunc nuw i8 %139 to i1 + br i1 %140, label %print_str.exit182, label %141 + +141: ; preds = %._crit_edge236 + %142 = load i8, ptr %7, align 1, !tbaa !16, !range !24, !noundef !25 + %143 = trunc nuw i8 %142 to i1 + br i1 %143, label %print_str.exit182, label %144 + +144: ; preds = %141 + %145 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %146 = load ptr, ptr %145, align 8, !tbaa !13 + %147 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %148 = load ptr, ptr %147, align 8, !tbaa !12 + tail call void %146(ptr noundef nonnull %.1163, i64 noundef %.0.lcssa, ptr noundef %148) #12 br label %print_str.exit182 -print_str.exit182: ; preds = %83, %49, %59, %77, %79, %._crit_edge236 - %.4 = phi ptr [ %.1163, %._crit_edge236 ], [ %.0162220, %79 ], [ %.0162220, %77 ], [ %.0162220, %59 ], [ %.0162220, %49 ], [ %.0162220, %83 ] +print_str.exit182: ; preds = %83, %49, %59, %77, %79, %144, %141, %._crit_edge236 + %.4 = phi ptr [ %.1163, %._crit_edge236 ], [ %.1163, %141 ], [ %.1163, %144 ], [ %.0162220, %79 ], [ %.0162220, %77 ], [ %.0162220, %59 ], [ %.0162220, %49 ], [ %.0162220, %83 ] tail call void @free(ptr noundef %.4) #12 - br label %143 + br label %149 -143: ; preds = %27, %print_str.exit182, %32, %2, %6, %print_str.exit +149: ; preds = %27, %print_str.exit182, %32, %2, %6, %print_str.exit ret void } @@ -3569,10 +3579,10 @@ next.exit: ; preds = %peek.exit.i35 ret i64 %.027 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #6 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #7 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) @@ -6020,8 +6030,8 @@ attributes #2 = { mustprogress nounwind willreturn allockind("free") memory(argm attributes #3 = { nofree norecurse nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #5 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #6 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #9 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #10 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } diff --git a/bench/nanobind/optimized/common.ll b/bench/nanobind/optimized/common.ll index 931855fda77..167660d1efb 100644 --- a/bench/nanobind/optimized/common.ll +++ b/bench/nanobind/optimized/common.ll @@ -459,20 +459,21 @@ define void @_ZN8nanobind6detail12cleanup_list6expandEv(ptr noundef nonnull alig %13 = zext i32 %12 to i64 %14 = shl nuw nsw i64 %13, 3 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %7, ptr align 8 %11, i64 %14, i1 false) - %.not5 = icmp eq i32 %3, 6 - br i1 %.not5, label %16, label %15 + %15 = load i32, ptr %2, align 4 + %.not5 = icmp eq i32 %15, 6 + br i1 %.not5, label %17, label %16 -15: ; preds = %9 +16: ; preds = %9 tail call void @free(ptr noundef %11) #27 - br label %16 + br label %17 -16: ; preds = %15, %9 +17: ; preds = %16, %9 store ptr %7, ptr %10, align 8 store i32 %4, ptr %2, align 4 ret void } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #17 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) @@ -6131,7 +6132,7 @@ attributes #13 = { mustprogress noreturn uwtable "min-legal-vector-width"="0" "n attributes #14 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #15 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #16 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #17 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #17 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #18 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #19 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #20 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/nuttx/optimized/lib_setvbuf.ll b/bench/nuttx/optimized/lib_setvbuf.ll index 9796cc90455..f1dccf087b0 100644 --- a/bench/nuttx/optimized/lib_setvbuf.ll +++ b/bench/nuttx/optimized/lib_setvbuf.ll @@ -6,13 +6,13 @@ target triple = "x86_64-pc-linux-gnu" ; Function Attrs: nounwind uwtable define range(i32 -1, 1) i32 @setvbuf(ptr noundef captures(none) %0, ptr noundef %1, i32 noundef %2, i64 noundef %3) local_unnamed_addr #0 { %or.cond3 = icmp ugt i32 %2, 2 - br i1 %or.cond3, label %46, label %5 + br i1 %or.cond3, label %48, label %5 5: ; preds = %4 %6 = icmp ne ptr %1, null %7 = icmp eq i64 %3, 0 %or.cond5 = and i1 %6, %7 - br i1 %or.cond5, label %46, label %8 + br i1 %or.cond5, label %48, label %8 8: ; preds = %5 %or.cond7 = icmp ne i32 %2, 2 @@ -40,7 +40,7 @@ define range(i32 -1, 1) i32 @setvbuf(ptr noundef captures(none) %0, ptr noundef %18 = getelementptr inbounds nuw i8, ptr %0, i64 96 %19 = load ptr, ptr %18, align 8 %.not = icmp eq ptr %17, %19 - br i1 %.not, label %20, label %45 + br i1 %.not, label %20, label %47 20: ; preds = %15 %21 = getelementptr inbounds nuw i8, ptr %0, i64 194 @@ -71,62 +71,65 @@ define range(i32 -1, 1) i32 @setvbuf(ptr noundef captures(none) %0, ptr noundef 30: ; preds = %27 %31 = tail call noalias ptr @malloc(i64 noundef %.053) #5 %32 = icmp eq ptr %31, null - br i1 %32, label %45, label %36 + br i1 %32, label %47, label %36 33: ; preds = %26 %34 = and i8 %22, 8 %35 = or i8 %.050, %34 - br label %44 + br label %46 36: ; preds = %20, %30, %28 %.052 = phi ptr [ %.055, %28 ], [ %31, %30 ], [ null, %20 ] %.2 = phi i8 [ %29, %28 ], [ %.050, %30 ], [ %23, %20 ] - %.not60 = icmp ne ptr %17, null - %37 = and i8 %22, 8 - %38 = icmp eq i8 %37, 0 - %or.cond = select i1 %.not60, i1 %38, i1 false - br i1 %or.cond, label %39, label %40 + %.not60 = icmp eq ptr %17, null + br i1 %.not60, label %42, label %37 + +37: ; preds = %36 + %38 = load i8, ptr %21, align 2 + %39 = and i8 %38, 8 + %40 = icmp eq i8 %39, 0 + br i1 %40, label %41, label %42 -39: ; preds = %36 +41: ; preds = %37 tail call void @free(ptr noundef nonnull %19) - br label %40 + br label %42 -40: ; preds = %39, %36 +42: ; preds = %41, %37, %36 store ptr %.052, ptr %18, align 8 store ptr %.052, ptr %16, align 8 - %41 = getelementptr inbounds nuw i8, ptr %0, i64 120 - store ptr %.052, ptr %41, align 8 - %42 = getelementptr inbounds i8, ptr %.052, i64 %.053 - %43 = getelementptr inbounds nuw i8, ptr %0, i64 104 - store ptr %42, ptr %43, align 8 - br label %44 - -44: ; preds = %40, %33 - %.151 = phi i8 [ %.2, %40 ], [ %35, %33 ] + %43 = getelementptr inbounds nuw i8, ptr %0, i64 120 + store ptr %.052, ptr %43, align 8 + %44 = getelementptr inbounds i8, ptr %.052, i64 %.053 + %45 = getelementptr inbounds nuw i8, ptr %0, i64 104 + store ptr %44, ptr %45, align 8 + br label %46 + +46: ; preds = %42, %33 + %.151 = phi i8 [ %.2, %42 ], [ %35, %33 ] store i8 %.151, ptr %21, align 2 tail call void @funlockfile(ptr noundef nonnull %0) - br label %48 + br label %50 -45: ; preds = %30, %15 +47: ; preds = %30, %15 %.0 = phi i32 [ 16, %15 ], [ 12, %30 ] tail call void @funlockfile(ptr noundef nonnull %0) - br label %46 - -46: ; preds = %5, %4, %45 - %.1 = phi i32 [ %.0, %45 ], [ 22, %4 ], [ 22, %5 ] - %47 = tail call ptr @__errno() #6 - store i32 %.1, ptr %47, align 4 br label %48 -48: ; preds = %46, %44 - %.054 = phi i32 [ -1, %46 ], [ 0, %44 ] +48: ; preds = %5, %4, %47 + %.1 = phi i32 [ %.0, %47 ], [ 22, %4 ], [ 22, %5 ] + %49 = tail call ptr @__errno() #6 + store i32 %.1, ptr %49, align 4 + br label %50 + +50: ; preds = %48, %46 + %.054 = phi i32 [ -1, %48 ], [ 0, %46 ] ret i32 %.054 } ; Function Attrs: nofree nounwind declare void @flockfile(ptr noundef captures(none)) local_unnamed_addr #1 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #2 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) @@ -139,7 +142,7 @@ declare ptr @__errno() local_unnamed_addr #4 attributes #0 = { nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+rdrnd,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nofree nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+rdrnd,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+rdrnd,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+rdrnd,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+rdrnd,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+rdrnd,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { allocsize(0) } diff --git a/bench/opencv/optimized/ar_hmdb_benchmark.ll b/bench/opencv/optimized/ar_hmdb_benchmark.ll index 1a0e1837371..1670cbe4b0a 100644 --- a/bench/opencv/optimized/ar_hmdb_benchmark.ll +++ b/bench/opencv/optimized/ar_hmdb_benchmark.ll @@ -12223,7 +12223,6 @@ _ZN7cvflann10load_valueIiEEvP8_IO_FILERT_m.exit: ; preds = %52 %86 = load ptr, ptr @stderr, align 8, !tbaa !245 %87 = tail call i64 @fwrite(ptr nonnull @.str.48, i64 27, i64 1, ptr %86) #39 %.pre = load ptr, ptr %2, align 8, !tbaa !238 - %.pre27 = load i32, ptr %70, align 8, !tbaa !230 br label %_ZN7cvflann15PooledAllocator8allocateIPNS_11KMeansIndexINS_2L2IfEEE10KMeansNodeEEEPT_m.exit 88: ; preds = %77 @@ -12250,12 +12249,12 @@ _ZN7cvflann10load_valueIiEEvP8_IO_FILERT_m.exit: ; preds = %52 br label %_ZN7cvflann15PooledAllocator8allocateIPNS_11KMeansIndexINS_2L2IfEEE10KMeansNodeEEEPT_m.exit _ZN7cvflann15PooledAllocator8allocateIPNS_11KMeansIndexINS_2L2IfEEE10KMeansNodeEEEPT_m.exit: ; preds = %.thread.i.i24, %94 - %101 = phi i32 [ %71, %94 ], [ %.pre27, %.thread.i.i24 ] - %102 = phi ptr [ %48, %94 ], [ %.pre, %.thread.i.i24 ] + %101 = phi ptr [ %48, %94 ], [ %.pre, %.thread.i.i24 ] %.1.i.i22 = phi ptr [ %96, %94 ], [ null, %.thread.i.i24 ] - %103 = getelementptr inbounds nuw i8, ptr %102, i64 24 - store ptr %.1.i.i22, ptr %103, align 8, !tbaa !329 - %104 = icmp sgt i32 %101, 0 + %102 = getelementptr inbounds nuw i8, ptr %101, i64 24 + store ptr %.1.i.i22, ptr %102, align 8, !tbaa !329 + %103 = load i32, ptr %70, align 8, !tbaa !230 + %104 = icmp sgt i32 %103, 0 br i1 %104, label %.lr.ph, label %.loopexit .lr.ph: ; preds = %_ZN7cvflann15PooledAllocator8allocateIPNS_11KMeansIndexINS_2L2IfEEE10KMeansNodeEEEPT_m.exit, %.lr.ph @@ -12316,7 +12315,7 @@ define linkonce_odr hidden void @_ZN7cvflann11KMeansIndexINS_2L2IfEEE12free_cent ; Function Attrs: nofree nounwind declare noundef i64 @fread(ptr noundef writeonly captures(none), i64 noundef, i64 noundef, ptr noundef captures(none)) local_unnamed_addr #6 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #24 ; Function Attrs: mustprogress uwtable @@ -17780,7 +17779,7 @@ attributes #20 = { cold noreturn nounwind memory(inaccessiblemem: write) } attributes #21 = { nofree nosync nounwind memory(none) } attributes #22 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #23 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } -attributes #24 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } +attributes #24 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } attributes #25 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #26 = { mustprogress nocallback nofree nosync nounwind willreturn } attributes #27 = { uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } diff --git a/bench/opencv/optimized/calibinit.ll b/bench/opencv/optimized/calibinit.ll index 49df1ef9b32..473f2898ed8 100644 --- a/bench/opencv/optimized/calibinit.ll +++ b/bench/opencv/optimized/calibinit.ll @@ -22140,7 +22140,7 @@ _ZN7cvflann17KDTreeSingleIndexINS_9L2_SimpleIfEEE13computeMinMaxEPiiiRfS5_.exit7 br i1 %exitcond99.not, label %._crit_edge97, label %.lr.ph96.split, !llvm.loop !608 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #28 ; Function Attrs: mustprogress nounwind uwtable @@ -31826,7 +31826,6 @@ _ZN7cvflann10load_valueIiEEvP8_IO_FILERT_m.exit: ; preds = %52 %86 = load ptr, ptr @stderr, align 8, !tbaa !447 %87 = tail call i64 @fwrite(ptr nonnull @.str.73, i64 27, i64 1, ptr %86) #43 %.pre = load ptr, ptr %2, align 8, !tbaa !517 - %.pre27 = load i32, ptr %70, align 8, !tbaa !508 br label %_ZN7cvflann15PooledAllocator8allocateIPNS_11KMeansIndexINS_9L2_SimpleIfEEE10KMeansNodeEEEPT_m.exit 88: ; preds = %77 @@ -31853,12 +31852,12 @@ _ZN7cvflann10load_valueIiEEvP8_IO_FILERT_m.exit: ; preds = %52 br label %_ZN7cvflann15PooledAllocator8allocateIPNS_11KMeansIndexINS_9L2_SimpleIfEEE10KMeansNodeEEEPT_m.exit _ZN7cvflann15PooledAllocator8allocateIPNS_11KMeansIndexINS_9L2_SimpleIfEEE10KMeansNodeEEEPT_m.exit: ; preds = %.thread.i.i24, %94 - %101 = phi i32 [ %71, %94 ], [ %.pre27, %.thread.i.i24 ] - %102 = phi ptr [ %48, %94 ], [ %.pre, %.thread.i.i24 ] + %101 = phi ptr [ %48, %94 ], [ %.pre, %.thread.i.i24 ] %.1.i.i22 = phi ptr [ %96, %94 ], [ null, %.thread.i.i24 ] - %103 = getelementptr inbounds nuw i8, ptr %102, i64 24 - store ptr %.1.i.i22, ptr %103, align 8, !tbaa !754 - %104 = icmp sgt i32 %101, 0 + %102 = getelementptr inbounds nuw i8, ptr %101, i64 24 + store ptr %.1.i.i22, ptr %102, align 8, !tbaa !754 + %103 = load i32, ptr %70, align 8, !tbaa !508 + %104 = icmp sgt i32 %103, 0 br i1 %104, label %.lr.ph, label %.loopexit .lr.ph: ; preds = %_ZN7cvflann15PooledAllocator8allocateIPNS_11KMeansIndexINS_9L2_SimpleIfEEE10KMeansNodeEEEPT_m.exit, %.lr.ph @@ -43730,7 +43729,6 @@ _ZN7cvflann10load_valueIiEEvP8_IO_FILERT_m.exit: ; preds = %38 %72 = load ptr, ptr @stderr, align 8, !tbaa !447 %73 = tail call i64 @fwrite(ptr nonnull @.str.73, i64 27, i64 1, ptr %72) #43 %.pre = load ptr, ptr %2, align 8, !tbaa !547 - %.pre23 = load i32, ptr %56, align 4, !tbaa !540 br label %_ZN7cvflann15PooledAllocator8allocateIPNS_27HierarchicalClusteringIndexINS_9L2_SimpleIfEEE4NodeEEEPT_m.exit 74: ; preds = %63 @@ -43757,12 +43755,12 @@ _ZN7cvflann10load_valueIiEEvP8_IO_FILERT_m.exit: ; preds = %38 br label %_ZN7cvflann15PooledAllocator8allocateIPNS_27HierarchicalClusteringIndexINS_9L2_SimpleIfEEE4NodeEEEPT_m.exit _ZN7cvflann15PooledAllocator8allocateIPNS_27HierarchicalClusteringIndexINS_9L2_SimpleIfEEE4NodeEEEPT_m.exit: ; preds = %.thread.i.i20, %80 - %87 = phi i32 [ %57, %80 ], [ %.pre23, %.thread.i.i20 ] - %88 = phi ptr [ %34, %80 ], [ %.pre, %.thread.i.i20 ] + %87 = phi ptr [ %34, %80 ], [ %.pre, %.thread.i.i20 ] %.1.i.i18 = phi ptr [ %82, %80 ], [ null, %.thread.i.i20 ] - %89 = getelementptr inbounds nuw i8, ptr %88, i64 8 - store ptr %.1.i.i18, ptr %89, align 8, !tbaa !1050 - %90 = icmp sgt i32 %87, 0 + %88 = getelementptr inbounds nuw i8, ptr %87, i64 8 + store ptr %.1.i.i18, ptr %88, align 8, !tbaa !1050 + %89 = load i32, ptr %56, align 4, !tbaa !540 + %90 = icmp sgt i32 %89, 0 br i1 %90, label %.lr.ph, label %.loopexit .lr.ph: ; preds = %_ZN7cvflann15PooledAllocator8allocateIPNS_27HierarchicalClusteringIndexINS_9L2_SimpleIfEEE4NodeEEEPT_m.exit, %.lr.ph @@ -49202,7 +49200,7 @@ attributes #24 = { cold noreturn nounwind memory(inaccessiblemem: write) } attributes #25 = { cold noreturn } attributes #26 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } attributes #27 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } -attributes #28 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } +attributes #28 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } attributes #29 = { mustprogress noinline nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } attributes #30 = { mustprogress nocallback nofree nosync nounwind willreturn } attributes #31 = { uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } diff --git a/bench/openexr/optimized/ImfIDManifest.ll b/bench/openexr/optimized/ImfIDManifest.ll index be0dc28d514..e5f1153f87d 100644 --- a/bench/openexr/optimized/ImfIDManifest.ll +++ b/bench/openexr/optimized/ImfIDManifest.ll @@ -7658,7 +7658,7 @@ define void @_ZN7Imf_3_420CompressedIDManifestC2Ev(ptr noundef nonnull writeonly } ; Function Attrs: mustprogress nofree nounwind willreturn uwtable -define void @_ZN7Imf_3_420CompressedIDManifestC2ERKS0_(ptr noundef nonnull writeonly align 8 captures(none) dereferenceable(24) initializes((0, 4), (8, 24)) %0, ptr noundef nonnull readonly align 8 captures(none) dereferenceable(24) %1) unnamed_addr #13 align 2 { +define void @_ZN7Imf_3_420CompressedIDManifestC2ERKS0_(ptr noundef nonnull align 8 captures(none) dereferenceable(24) initializes((0, 4), (8, 24)) %0, ptr noundef nonnull readonly align 8 captures(none) dereferenceable(24) %1) unnamed_addr #13 align 2 { %3 = load i32, ptr %1, align 8, !tbaa !104 store i32 %3, ptr %0, align 8, !tbaa !104 %4 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -7671,17 +7671,19 @@ define void @_ZN7Imf_3_420CompressedIDManifestC2ERKS0_(ptr noundef nonnull write store ptr %9, ptr %7, align 8, !tbaa !105 %10 = getelementptr inbounds nuw i8, ptr %1, i64 16 %11 = load ptr, ptr %10, align 8, !tbaa !105 - tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %9, ptr align 1 %11, i64 %8, i1 false) + %12 = load i32, ptr %0, align 8, !tbaa !104 + %13 = sext i32 %12 to i64 + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %9, ptr align 1 %11, i64 %13, i1 false) ret void } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #14 ; Function Attrs: mustprogress nounwind willreturn uwtable define noundef nonnull align 8 dereferenceable(24) ptr @_ZN7Imf_3_420CompressedIDManifestaSERKS0_(ptr noundef nonnull returned align 8 captures(address, ret: address, provenance) dereferenceable(24) %0, ptr noundef nonnull readonly align 8 captures(address) dereferenceable(24) %1) local_unnamed_addr #15 align 2 { %.not = icmp eq ptr %0, %1 - br i1 %.not, label %16, label %3 + br i1 %.not, label %18, label %3 3: ; preds = %2 %4 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -7698,17 +7700,19 @@ define noundef nonnull align 8 dereferenceable(24) ptr @_ZN7Imf_3_420CompressedI %9 = sext i32 %8 to i64 %10 = tail call noalias ptr @malloc(i64 noundef %9) #40 store ptr %10, ptr %4, align 8, !tbaa !105 - store i32 %8, ptr %0, align 8, !tbaa !104 - %11 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %12 = load i64, ptr %11, align 8, !tbaa !102 - %13 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 %12, ptr %13, align 8, !tbaa !102 - %14 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %15 = load ptr, ptr %14, align 8, !tbaa !105 - tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %10, ptr align 1 %15, i64 %9, i1 false) - br label %16 + %11 = load i32, ptr %1, align 8, !tbaa !104 + store i32 %11, ptr %0, align 8, !tbaa !104 + %12 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %13 = load i64, ptr %12, align 8, !tbaa !102 + %14 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 %13, ptr %14, align 8, !tbaa !102 + %15 = getelementptr inbounds nuw i8, ptr %1, i64 16 + %16 = load ptr, ptr %15, align 8, !tbaa !105 + %17 = sext i32 %11 to i64 + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %10, ptr align 1 %16, i64 %17, i1 false) + br label %18 -16: ; preds = %7, %2 +18: ; preds = %7, %2 ret ptr %0 } @@ -7854,7 +7858,7 @@ declare i64 @exr_compress_max_buffer_size(i64 noundef) local_unnamed_addr #0 declare i32 @exr_compress_buffer(ptr noundef, i32 noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #17 ; Function Attrs: mustprogress uwtable @@ -15834,10 +15838,10 @@ attributes #10 = { mustprogress nofree norecurse nosync nounwind willreturn memo attributes #11 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #12 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #13 = { mustprogress nofree nounwind willreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #14 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #14 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #15 = { mustprogress nounwind willreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #16 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #17 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #17 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #18 = { mustprogress nofree norecurse nounwind willreturn memory(read, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #19 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #20 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/openjdk/optimized/AccelGlyphCache.ll b/bench/openjdk/optimized/AccelGlyphCache.ll index 07b75b53d84..30207dc92e1 100644 --- a/bench/openjdk/optimized/AccelGlyphCache.ll +++ b/bench/openjdk/optimized/AccelGlyphCache.ll @@ -35,7 +35,7 @@ define hidden noalias noundef ptr @AccelGlyphCache_Init(i32 noundef %0, i32 noun ret ptr %6 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #1 declare void @J2dTraceImpl(i32 noundef, i8 noundef zeroext, ptr noundef, ...) local_unnamed_addr #2 @@ -141,36 +141,35 @@ define hidden ptr @AccelGlyphCache_AddGlyph(ptr noundef %0, ptr noundef %1) loca %67 = fadd float %59, %66 %68 = getelementptr inbounds nuw i8, ptr %40, i64 64 store float %67, ptr %68, align 8 - br i1 %21, label %.thread129, label %71 + br i1 %21, label %69, label %70 -.thread129: ; preds = %42 +69: ; preds = %42 store ptr %40, ptr %0, align 8 - %69 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %40, ptr %69, align 8 - %70 = getelementptr inbounds nuw i8, ptr %40, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %70, i8 0, i64 16, i1 false) - br label %139 - -71: ; preds = %42 - %72 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %73 = load ptr, ptr %72, align 8 - %74 = getelementptr inbounds nuw i8, ptr %73, i64 16 - store ptr %40, ptr %74, align 8 - %.pr110.pre = load i8, ptr %17, align 4 - %75 = icmp eq i8 %.pr110.pre, 0 - %76 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %40, ptr %76, align 8 - %77 = getelementptr inbounds nuw i8, ptr %40, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %77, i8 0, i64 16, i1 false) - br i1 %75, label %139, label %.preheader - -.preheader: ; preds = %16, %.thread106, %71 - %.090128 = phi ptr [ %40, %71 ], [ null, %.thread106 ], [ null, %16 ] + br label %74 + +70: ; preds = %42 + %71 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %72 = load ptr, ptr %71, align 8 + %73 = getelementptr inbounds nuw i8, ptr %72, i64 16 + store ptr %40, ptr %73, align 8 + br label %74 + +74: ; preds = %69, %70 + %75 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store ptr %40, ptr %75, align 8 + %76 = getelementptr inbounds nuw i8, ptr %40, i64 16 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %76, i8 0, i64 16, i1 false) + %.pr110 = load i8, ptr %17, align 4 + %77 = icmp eq i8 %.pr110, 0 + br i1 %77, label %139, label %.preheader + +.preheader: ; preds = %16, %.thread106, %74 + %.090127 = phi ptr [ %40, %74 ], [ null, %.thread106 ], [ null, %16 ] %78 = getelementptr inbounds nuw i8, ptr %0, i64 8 br label %79 79: ; preds = %.preheader, %89 - %.2 = phi ptr [ null, %89 ], [ %.090128, %.preheader ] + %.2 = phi ptr [ null, %89 ], [ %.090127, %.preheader ] %80 = load ptr, ptr %0, align 8 %81 = getelementptr inbounds nuw i8, ptr %80, i64 8 %82 = load ptr, ptr %81, align 8 @@ -281,8 +280,8 @@ AccelGlyphCache_RemoveCellInfo.exit: ; preds = %.lr.ph.i, %116, %96 store float %137, ptr %138, align 8 br label %139 -139: ; preds = %.thread129, %AccelGlyphCache_RemoveCellInfo.exit, %71 - %.1 = phi ptr [ %.3, %AccelGlyphCache_RemoveCellInfo.exit ], [ %40, %71 ], [ %40, %.thread129 ] +139: ; preds = %AccelGlyphCache_RemoveCellInfo.exit, %74 + %.1 = phi ptr [ %.3, %AccelGlyphCache_RemoveCellInfo.exit ], [ %40, %74 ] %140 = getelementptr inbounds nuw i8, ptr %.1, i64 8 store ptr %1, ptr %140, align 8 %141 = getelementptr inbounds nuw i8, ptr %1, i64 24 @@ -573,7 +572,7 @@ define hidden noundef ptr @AccelGlyphCache_GetCellInfoForCache(ptr noundef reado declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #7 attributes #0 = { nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #1 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/openjdk/optimized/PLATFORM_API_LinuxOS_ALSA_MidiUtils.ll b/bench/openjdk/optimized/PLATFORM_API_LinuxOS_ALSA_MidiUtils.ll index 2b017febbc3..e7fda81d9eb 100644 --- a/bench/openjdk/optimized/PLATFORM_API_LinuxOS_ALSA_MidiUtils.ll +++ b/bench/openjdk/optimized/PLATFORM_API_LinuxOS_ALSA_MidiUtils.ll @@ -306,25 +306,28 @@ define internal fastcc i32 @iterateRawmidiDevices(i32 noundef %0, ptr noundef re ret i32 %.735 } -; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: write, inaccessiblemem: readwrite) uwtable -define hidden noundef range(i32 -11115, 1) i32 @initMIDIDeviceDescription(ptr noundef writeonly captures(none) initializes((0, 8), (16, 32)) %0, i32 noundef %1) local_unnamed_addr #2 { +; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable +define hidden noundef range(i32 -11115, 1) i32 @initMIDIDeviceDescription(ptr noundef captures(none) initializes((0, 8), (16, 32)) %0, i32 noundef %1) local_unnamed_addr #2 { store i32 %1, ptr %0, align 8 %3 = getelementptr inbounds nuw i8, ptr %0, i64 4 store i32 200, ptr %3, align 4 %4 = tail call noalias dereferenceable_or_null(201) ptr @calloc(i64 noundef 201, i64 noundef 1) #13 %5 = getelementptr inbounds nuw i8, ptr %0, i64 16 store ptr %4, ptr %5, align 8 - %6 = tail call noalias dereferenceable_or_null(201) ptr @calloc(i64 noundef 201, i64 noundef 1) #13 - %7 = getelementptr inbounds nuw i8, ptr %0, i64 24 - store ptr %6, ptr %7, align 8 + %6 = load i32, ptr %3, align 4 + %7 = add nsw i32 %6, 1 + %8 = sext i32 %7 to i64 + %9 = tail call noalias ptr @calloc(i64 noundef %8, i64 noundef 1) #13 + %10 = getelementptr inbounds nuw i8, ptr %0, i64 24 + store ptr %9, ptr %10, align 8 %.not = icmp eq ptr %4, null - %.not9 = icmp eq ptr %6, null + %.not9 = icmp eq ptr %9, null %or.cond = or i1 %.not, %.not9 %.0 = select i1 %or.cond, i32 -11115, i32 0 ret i32 %.0 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #3 ; Function Attrs: mustprogress nounwind willreturn uwtable @@ -858,8 +861,8 @@ declare void @llvm.lifetime.end.p0(ptr captures(none)) #11 attributes #0 = { nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #2 = { mustprogress nofree nounwind willreturn memory(argmem: write, inaccessiblemem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nounwind willreturn uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/openjdk/optimized/img_colors.ll b/bench/openjdk/optimized/img_colors.ll index 10ef45bb2bb..42a5ff5c2de 100644 --- a/bench/openjdk/optimized/img_colors.ll +++ b/bench/openjdk/optimized/img_colors.ll @@ -381,7 +381,6 @@ init_primaries.exit: ; preds = %171 %188 = tail call ptr @JNU_GetEnv(ptr noundef %187, i32 noundef 65538) #11 tail call void @JNU_ThrowOutOfMemoryError(ptr noundef %188, ptr noundef nonnull @.str) #11 %.pre245.pre = load ptr, ptr @virt_cmap, align 8 - %.pre247.pre = load i32, ptr @num_virt_cmap_entries, align 4 br label %init_virt_cmap.exit .lr.ph.i: ; preds = %207, %.lr.ph.preheader.i @@ -479,10 +478,11 @@ init_primaries.exit: ; preds = %171 %224 = getelementptr inbounds nuw float, ptr @Utab, i64 %222 %225 = getelementptr inbounds nuw float, ptr @Vtab, i64 %222 %wide.trip.count189.i = zext nneg i32 %2 to i64 + %.pre191.pre.pre.i = load i32, ptr @num_virt_cmap_entries, align 4 br label %.lr.ph161.us.i .lr.ph161.us.i: ; preds = %._crit_edge162.split.us.us.i, %.lr.ph166.i - %.pre191196.i = phi i32 [ %.pre191192.i, %._crit_edge162.split.us.us.i ], [ %179, %.lr.ph166.i ] + %.pre191.pre.i = phi i32 [ %.pre191.pre196.i, %._crit_edge162.split.us.us.i ], [ %.pre191.pre.pre.i, %.lr.ph166.i ] %indvars.iv186.i = phi i64 [ %indvars.iv.next187.i, %._crit_edge162.split.us.us.i ], [ 0, %.lr.ph166.i ] %.0117164.us.i = phi ptr [ %.3120.us.us.i, %._crit_edge162.split.us.us.i ], [ %182, %.lr.ph166.i ] %226 = trunc nuw nsw i64 %indvars.iv186.i to i32 @@ -500,7 +500,8 @@ init_primaries.exit: ; preds = %171 br label %.lr.ph155.us.us.i .lr.ph155.us.us.i: ; preds = %._crit_edge156.us.us.i, %.lr.ph161.us.i - %.pre191.i = phi i32 [ %.pre191192.i, %._crit_edge156.us.us.i ], [ %.pre191196.i, %.lr.ph161.us.i ] + %.pre191.pre199.i = phi i32 [ %.pre191.pre196.i, %._crit_edge156.us.us.i ], [ %.pre191.pre.i, %.lr.ph161.us.i ] + %.pre191.i = phi i32 [ %.pre191192.i, %._crit_edge156.us.us.i ], [ %.pre191.pre.i, %.lr.ph161.us.i ] %indvars.iv181.i = phi i64 [ %indvars.iv.next182.i, %._crit_edge156.us.us.i ], [ 0, %.lr.ph161.us.i ] %.1118158.us.us.i = phi ptr [ %.3120.us.us.i, %._crit_edge156.us.us.i ], [ %.0117164.us.i, %.lr.ph161.us.i ] %238 = trunc nuw nsw i64 %indvars.iv181.i to i32 @@ -519,6 +520,7 @@ init_primaries.exit: ; preds = %171 br label %250 250: ; preds = %358, %.lr.ph155.us.us.i + %.pre191.pre198.i = phi i32 [ %.pre191.pre196.i, %358 ], [ %.pre191.pre199.i, %.lr.ph155.us.us.i ] %.pre191194.i = phi i32 [ %.pre191192.i, %358 ], [ %.pre191.i, %.lr.ph155.us.us.i ] %251 = phi i32 [ %359, %358 ], [ %.pre191.i, %.lr.ph155.us.us.i ] %indvars.iv176.i = phi i64 [ %indvars.iv.next177.i, %358 ], [ 0, %.lr.ph155.us.us.i ] @@ -609,6 +611,7 @@ init_primaries.exit: ; preds = %171 br label %LUV_convert.exit.us.us.i LUV_convert.exit.us.us.i: ; preds = %304, %303, %289 + %.pre191.pre197.i = phi i32 [ %.pre.i, %304 ], [ %.pre.i, %303 ], [ %.pre191.pre198.i, %289 ] %.pre191193.i = phi i32 [ %.pre.i, %304 ], [ %.pre.i, %303 ], [ %.pre191194.i, %289 ] %314 = phi float [ %311, %304 ], [ 0.000000e+00, %303 ], [ 0.000000e+00, %289 ] %315 = phi float [ %storemerge.i.us.us.i, %304 ], [ %storemerge.i.us.us.i, %303 ], [ 0.000000e+00, %289 ] @@ -687,6 +690,7 @@ LUV_convert.exit.us.us.i: ; preds = %304, %303, %289 br label %358 358: ; preds = %351, %339, %250 + %.pre191.pre196.i = phi i32 [ %.pre191.pre198.i, %250 ], [ %.pre191.pre197.i, %351 ], [ %.pre191.pre197.i, %339 ] %.pre191192.i = phi i32 [ %.pre191194.i, %250 ], [ %.pre191193.i, %351 ], [ %.pre191193.i, %339 ] %359 = phi i32 [ %251, %250 ], [ %316, %351 ], [ %316, %339 ] %.3120.us.us.i = phi ptr [ %.2119151.us.us.i, %250 ], [ %357, %351 ], [ %341, %339 ] @@ -716,15 +720,15 @@ LUV_convert.exit.us.us.i: ; preds = %304, %303, %289 %365 = getelementptr inbounds nuw i32, ptr @nexttest, i64 %indvars.iv173.i store i32 %spec.select.i, ptr %365, align 4 %indvars.iv.next174.i = add nsw i64 %indvars.iv173.i, -1 - %.not203.i = icmp eq i64 %indvars.iv173.i, 0 - br i1 %.not203.i, label %.lr.ph166.i, label %.lr.ph150.i, !llvm.loop !20 + %.not207.i = icmp eq i64 %indvars.iv173.i, 0 + br i1 %.not207.i, label %.lr.ph166.i, label %.lr.ph150.i, !llvm.loop !20 init_virt_cmap.exit: ; preds = %._crit_edge162.split.us.us.i, %186, %._crit_edge144.i - %.pre247 = phi i32 [ %.pre247.pre, %186 ], [ %179, %._crit_edge144.i ], [ %.pre191192.i, %._crit_edge162.split.us.us.i ] %.pre245 = phi ptr [ %.pre245.pre, %186 ], [ %182, %._crit_edge144.i ], [ %182, %._crit_edge162.split.us.us.i ] call void @llvm.lifetime.end.p0(ptr nonnull %12) %366 = load i32, ptr @total, align 4 %367 = icmp slt i32 %366, %0 + %.pre247 = load i32, ptr @num_virt_cmap_entries, align 4 br i1 %367, label %.lr.ph186, label %._crit_edge187 .lr.ph186: ; preds = %init_virt_cmap.exit @@ -739,16 +743,16 @@ handle_biggest_offenders.exit.us: ; preds = %handle_biggest_offe br label %handle_biggest_offenders.exit.us .lr.ph186.split: ; preds = %.lr.ph186, %handle_biggest_offenders.exit - %369 = phi i32 [ %782, %handle_biggest_offenders.exit ], [ %366, %.lr.ph186 ] + %369 = phi i32 [ %.pr, %handle_biggest_offenders.exit ], [ %.pre247, %.lr.ph186 ] + %370 = phi i32 [ %782, %handle_biggest_offenders.exit ], [ %366, %.lr.ph186 ] store i32 0, ptr @num_offenders, align 4 - %370 = load i32, ptr @num_virt_cmap_entries, align 4 - %371 = icmp sgt i32 %370, 0 + %371 = icmp sgt i32 %369, 0 br i1 %371, label %.lr.ph.preheader.i125, label %handle_biggest_offenders.exit .lr.ph.preheader.i125: ; preds = %.lr.ph186.split %372 = load float, ptr @Lscale, align 4 %373 = load float, ptr @Weight, align 4 - %wide.trip.count.i144 = zext nneg i32 %369 to i64 + %wide.trip.count.i144 = zext nneg i32 %370 to i64 br label %.lr.ph.i126 .lr.ph.i126: ; preds = %insert_in_list.exit.i, %.lr.ph.preheader.i125 @@ -791,7 +795,7 @@ handle_biggest_offenders.exit.us: ; preds = %handle_biggest_offe 398: ; preds = %394 %399 = getelementptr inbounds nuw i8, ptr %.03247.i, i64 20 - %400 = icmp slt i32 %377, %369 + %400 = icmp slt i32 %377, %370 br i1 %400, label %.lr.ph82.i158, label %find_nearest.exit167 .lr.ph82.i158: ; preds = %398 @@ -851,7 +855,7 @@ handle_biggest_offenders.exit.us: ; preds = %handle_biggest_offe %431 = getelementptr inbounds nuw i8, ptr %.03247.i, i64 16 %432 = load float, ptr %431, align 4 %433 = getelementptr inbounds nuw i8, ptr %.03247.i, i64 20 - %434 = icmp slt i32 %377, %369 + %434 = icmp slt i32 %377, %370 br i1 %434, label %.lr.ph.i150, label %find_nearest.exit167 .lr.ph.i150: ; preds = %428 @@ -904,7 +908,7 @@ handle_biggest_offenders.exit.us: ; preds = %handle_biggest_offe find_nearest.exit167: ; preds = %463, %426, %428, %398 %465 = phi float [ %383, %428 ], [ %383, %398 ], [ %427, %426 ], [ %464, %463 ] - store i32 %369, ptr %376, align 4 + store i32 %370, ptr %376, align 4 br label %.lr.ph.preheader.i.i 466: ; preds = %379 @@ -924,7 +928,7 @@ find_nearest.exit167: ; preds = %463, %426, %428, %3 477: ; preds = %473 %478 = getelementptr inbounds nuw i8, ptr %.03247.i, i64 20 - %479 = icmp slt i32 %377, %369 + %479 = icmp slt i32 %377, %370 br i1 %479, label %.lr.ph82.i, label %find_nearest.exit .lr.ph82.i: ; preds = %477 @@ -983,7 +987,7 @@ find_nearest.exit167: ; preds = %463, %426, %428, %3 %509 = getelementptr inbounds nuw i8, ptr %.03247.i, i64 16 %510 = load float, ptr %509, align 4 %511 = getelementptr inbounds nuw i8, ptr %.03247.i, i64 20 - %512 = icmp slt i32 %377, %369 + %512 = icmp slt i32 %377, %370 br i1 %512, label %.lr.ph.i143, label %find_nearest.exit .lr.ph.i143: ; preds = %506 @@ -1034,7 +1038,7 @@ find_nearest.exit167: ; preds = %463, %426, %428, %3 br i1 %exitcond.not.i147, label %find_nearest.exit, label %519, !llvm.loop !22 find_nearest.exit: ; preds = %541, %505, %506, %477 - store i32 %369, ptr %376, align 4 + store i32 %370, ptr %376, align 4 %542 = icmp sgt i32 %375, 0 br i1 %542, label %find_nearest.exit..lr.ph.preheader.i.i_crit_edge, label %._crit_edge.thread.i.i @@ -1092,7 +1096,7 @@ insert_in_list.exit.i: ; preds = %558, %._crit_edge.i %561 = phi i32 [ %559, %558 ], [ %375, %._crit_edge.i.i ], [ 32, %381 ], [ %375, %.lr.ph.i126 ] %562 = add nuw nsw i32 %.049.i, 1 %563 = getelementptr inbounds nuw i8, ptr %.03247.i, i64 32 - %exitcond.not.i127 = icmp eq i32 %562, %370 + %exitcond.not.i127 = icmp eq i32 %562, %369 br i1 %exitcond.not.i127, label %._crit_edge.i128, label %.lr.ph.i126, !llvm.loop !24 ._crit_edge.i128: ; preds = %insert_in_list.exit.i @@ -1109,11 +1113,11 @@ insert_in_list.exit.i: ; preds = %558, %._crit_edge.i br label %.lr.ph55.i .lr.ph55.i: ; preds = %565, %.loopexit.i - %572 = phi i32 [ %775, %.loopexit.i ], [ %369, %565 ] - %.pre.i134244 = phi i32 [ %.pre.i134243, %.loopexit.i ], [ %369, %565 ] + %572 = phi i32 [ %775, %.loopexit.i ], [ %370, %565 ] + %.pre.i134244 = phi i32 [ %.pre.i134243, %.loopexit.i ], [ %370, %565 ] %.pre66.i172239 = phi i32 [ %.pre66.i172240, %.loopexit.i ], [ %560, %565 ] %573 = phi i32 [ %776, %.loopexit.i ], [ %560, %565 ] - %574 = phi i32 [ %777, %.loopexit.i ], [ %369, %565 ] + %574 = phi i32 [ %777, %.loopexit.i ], [ %370, %565 ] %indvars.iv62.i = phi i64 [ %indvars.iv.next63.i, %.loopexit.i ], [ 0, %565 ] %indvars.iv.i129 = phi i64 [ %indvars.iv.next.i131, %.loopexit.i ], [ 1, %565 ] %575 = getelementptr inbounds nuw ptr, ptr @offenders, i64 %indvars.iv62.i @@ -1468,17 +1472,14 @@ find_nearest.exit.i: ; preds = %._crit_edge.i42.i, br i1 %781, label %.lr.ph55.i, label %handle_biggest_offenders.exit, !llvm.loop !26 handle_biggest_offenders.exit: ; preds = %.loopexit.i, %.lr.ph186.split, %._crit_edge.i128 - %782 = phi i32 [ %369, %.lr.ph186.split ], [ %369, %._crit_edge.i128 ], [ %775, %.loopexit.i ] + %782 = phi i32 [ %370, %.lr.ph186.split ], [ %370, %._crit_edge.i128 ], [ %775, %.loopexit.i ] %783 = icmp slt i32 %782, %0 - br i1 %783, label %.lr.ph186.split, label %._crit_edge187.loopexit, !llvm.loop !27 + %.pr = load i32, ptr @num_virt_cmap_entries, align 4 + br i1 %783, label %.lr.ph186.split, label %._crit_edge187, !llvm.loop !27 -._crit_edge187.loopexit: ; preds = %handle_biggest_offenders.exit - %.pre246 = load i32, ptr @num_virt_cmap_entries, align 4 - br label %._crit_edge187 - -._crit_edge187: ; preds = %._crit_edge187.loopexit, %init_virt_cmap.exit - %784 = phi i32 [ %.pre247, %init_virt_cmap.exit ], [ %.pre246, %._crit_edge187.loopexit ] - %.lcssa184 = phi i32 [ %366, %init_virt_cmap.exit ], [ %782, %._crit_edge187.loopexit ] +._crit_edge187: ; preds = %handle_biggest_offenders.exit, %init_virt_cmap.exit + %784 = phi i32 [ %.pre247, %init_virt_cmap.exit ], [ %.pr, %handle_biggest_offenders.exit ] + %.lcssa184 = phi i32 [ %366, %init_virt_cmap.exit ], [ %782, %handle_biggest_offenders.exit ] %785 = sext i32 %0 to i64 tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %7, ptr nonnull align 16 @cmap_r, i64 %785, i1 false) tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %8, ptr nonnull align 16 @cmap_g, i64 %785, i1 false) @@ -1960,7 +1961,7 @@ declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #5 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(errnomem: write) declare double @pow(double noundef, double noundef) local_unnamed_addr #6 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #7 declare ptr @JNU_GetEnv(ptr noundef, i32 noundef) local_unnamed_addr #8 @@ -1986,7 +1987,7 @@ attributes #3 = { nofree norecurse nosync nounwind memory(read, argmem: readwrit attributes #4 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #5 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nocallback nofree nounwind willreturn memory(errnomem: write) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #10 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } diff --git a/bench/openjdk/optimized/os.ll b/bench/openjdk/optimized/os.ll index d3929dadbf2..3601798d9d1 100644 --- a/bench/openjdk/optimized/os.ll +++ b/bench/openjdk/optimized/os.ll @@ -1552,7 +1552,7 @@ define hidden noundef ptr @_ZN2os6mallocEm8MEMFLAGSRK15NativeCallStack(i64 nound %20 = load i32, ptr @_ZN10NMTPreInit16_num_mallocs_preE, align 4 %21 = add i32 %20, 1 store i32 %21, ptr @_ZN10NMTPreInit16_num_mallocs_preE, align 4 - br label %67 + br label %69 _ZN10NMTPreInit13handle_mallocEPPvm.exit: ; preds = %3 %22 = icmp sgt i32 %4, 1 @@ -1576,18 +1576,18 @@ _ZN10NMTPreInit13handle_mallocEPPvm.exit: ; preds = %3 %34 = add i64 %33, %5 %35 = load i64, ptr @_ZN18MallocLimitHandler7_limitsE, align 8 %36 = icmp ugt i64 %34, %35 - br i1 %36, label %37, label %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.threadthread-pre-split + br i1 %36, label %37, label %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread 37: ; preds = %27 %38 = tail call noundef zeroext i1 @_ZN19MallocMemorySummary19total_limit_reachedEmmPK11malloclimit(i64 noundef %5, i64 noundef %33, ptr noundef nonnull @_ZN18MallocLimitHandler7_limitsE) #28 - br i1 %38, label %67, label %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.threadthread-pre-split + br i1 %38, label %69, label %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread 39: ; preds = %25 %40 = zext i8 %1 to i64 %41 = getelementptr inbounds nuw %struct.malloclimit, ptr getelementptr inbounds nuw (i8, ptr @_ZN18MallocLimitHandler7_limitsE, i64 16), i64 %40 %42 = load i64, ptr %41, align 8 %.not19.i.i.i = icmp eq i64 %42, 0 - br i1 %.not19.i.i.i, label %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.threadthread-pre-split, label %43 + br i1 %.not19.i.i.i, label %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread, label %43 43: ; preds = %39 %44 = getelementptr inbounds nuw %class.MallocMemory, ptr @_ZN19MallocMemorySummary9_snapshotE, i64 %40 @@ -1598,54 +1598,52 @@ _ZN10NMTPreInit13handle_mallocEPPvm.exit: ; preds = %3 %49 = add i64 %48, %46 %50 = add i64 %49, %5 %51 = icmp ugt i64 %50, %42 - br i1 %51, label %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit, label %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.threadthread-pre-split + br i1 %51, label %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit, label %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread _ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit: ; preds = %43 %52 = tail call noundef zeroext i1 @_ZN19MallocMemorySummary22category_limit_reachedE8MEMFLAGSmmPK11malloclimit(i8 noundef zeroext %1, i64 noundef %5, i64 noundef %49, ptr noundef nonnull %41) #28 - br i1 %52, label %67, label %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.threadthread-pre-split - -_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.threadthread-pre-split: ; preds = %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit, %37, %27, %43, %39 - %.pr = load i32, ptr @_ZN10MemTracker15_tracking_levelE, align 4 - br label %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread + br i1 %52, label %69, label %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread -_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread: ; preds = %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.threadthread-pre-split, %_ZN10NMTPreInit13handle_mallocEPPvm.exit - %53 = phi i32 [ %.pr, %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.threadthread-pre-split ], [ %4, %_ZN10NMTPreInit13handle_mallocEPPvm.exit ] +_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread: ; preds = %39, %43, %27, %_ZN10NMTPreInit13handle_mallocEPPvm.exit, %37, %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit + %53 = load i32, ptr @_ZN10MemTracker15_tracking_levelE, align 4 %54 = icmp sgt i32 %53, 1 %55 = select i1 %54, i64 18, i64 0 %56 = add i64 %55, %5 %57 = icmp ult i64 %56, %5 - br i1 %57, label %67, label %58 + br i1 %57, label %69, label %58 58: ; preds = %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread %59 = tail call noalias ptr @malloc(i64 noundef %56) #31 %60 = icmp eq ptr %59, null - br i1 %60, label %67, label %61 + br i1 %60, label %69, label %61 61: ; preds = %58 - br i1 %54, label %62, label %_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit + %62 = load i32, ptr @_ZN10MemTracker15_tracking_levelE, align 4 + %63 = icmp sgt i32 %62, 1 + br i1 %63, label %64, label %_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit -62: ; preds = %61 - %63 = tail call noundef ptr @_ZN13MallocTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack(ptr noundef nonnull %59, i64 noundef %5, i8 noundef zeroext %1, ptr noundef nonnull align 8 dereferenceable(32) %2) #28 +64: ; preds = %61 + %65 = tail call noundef ptr @_ZN13MallocTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack(ptr noundef nonnull %59, i64 noundef %5, i8 noundef zeroext %1, ptr noundef nonnull align 8 dereferenceable(32) %2) #28 br label %_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit -_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit: ; preds = %61, %62 - %.0.i19 = phi ptr [ %63, %62 ], [ %59, %61 ] - %64 = load i8, ptr @_ZN9CDSConfig26_is_dumping_static_archiveE, align 1 - %65 = trunc i8 %64 to i1 - br i1 %65, label %66, label %67 +_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit: ; preds = %61, %64 + %.0.i19 = phi ptr [ %65, %64 ], [ %59, %61 ] + %66 = load i8, ptr @_ZN9CDSConfig26_is_dumping_static_archiveE, align 1 + %67 = trunc i8 %66 to i1 + br i1 %67, label %68, label %69 -66: ; preds = %_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit +68: ; preds = %_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %.0.i19, i8 0, i64 %5, i1 false) - br label %67 + br label %69 -67: ; preds = %37, %66, %_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit, %58, %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread, %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit, %11 - %.0 = phi ptr [ %19, %11 ], [ null, %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit ], [ null, %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread ], [ null, %58 ], [ %.0.i19, %_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit ], [ %.0.i19, %66 ], [ null, %37 ] +69: ; preds = %37, %68, %_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit, %58, %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread, %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit, %11 + %.0 = phi ptr [ %19, %11 ], [ null, %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit ], [ null, %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread ], [ null, %58 ], [ %.0.i19, %_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit ], [ %.0.i19, %68 ], [ null, %37 ] ret ptr %.0 } declare void @_ZN15NativeCallStackC1Ei(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #4 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #9 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) @@ -1937,7 +1935,7 @@ _ZN10NMTPreInit13handle_mallocEPPvm.exit: ; preds = %57, %_ZN10NMTPreIni ret i1 %.0 } -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #11 ; Function Attrs: mustprogress nounwind uwtable @@ -5836,9 +5834,9 @@ attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argm attributes #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #10 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #11 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #12 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #13 = { mustprogress nofree norecurse nounwind memory(readwrite, argmem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #14 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/openjdk/optimized/splashscreen_sys.ll b/bench/openjdk/optimized/splashscreen_sys.ll index a7813626d0f..1eae33a025c 100644 --- a/bench/openjdk/optimized/splashscreen_sys.ll +++ b/bench/openjdk/optimized/splashscreen_sys.ll @@ -129,7 +129,7 @@ declare ptr @iconv_open(ptr noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: read) declare i64 @strlen(ptr noundef captures(none)) local_unnamed_addr #3 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #4 declare i64 @iconv(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2 @@ -198,7 +198,7 @@ define hidden void @SplashInitFrameShape(ptr noundef %0, i32 noundef %1) local_u .thread52: ; preds = %39 store ptr null, ptr %8, align 8 - br label %47 + br label %50 42: ; preds = %39 %43 = zext nneg i32 %40 to i64 @@ -206,17 +206,20 @@ define hidden void @SplashInitFrameShape(ptr noundef %0, i32 noundef %1) local_u %45 = call noalias ptr @malloc(i64 noundef %44) #18 store ptr %45, ptr %8, align 8 %.not49 = icmp eq ptr %45, null - br i1 %.not49, label %47, label %46 + br i1 %.not49, label %50, label %46 46: ; preds = %42 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 2 %45, ptr nonnull align 2 %38, i64 %44, i1 false) - br label %47 + %47 = load i32, ptr %9, align 8 + %48 = sext i32 %47 to i64 + %49 = shl nsw i64 %48, 3 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 2 %45, ptr nonnull align 2 %38, i64 %49, i1 false) + br label %50 -47: ; preds = %.thread52, %46, %42 +50: ; preds = %.thread52, %46, %42 call void @free(ptr noundef nonnull %38) #16 br label %.thread -.thread: ; preds = %32, %15, %29, %2, %47 +.thread: ; preds = %32, %15, %29, %2, %50 ret void } @@ -1903,7 +1906,7 @@ attributes #0 = { nounwind uwtable "frame-pointer"="all" "min-legal-vector-width attributes #1 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #7 = { nofree nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/openmpi/optimized/pmix_mca_base_open.ll b/bench/openmpi/optimized/pmix_mca_base_open.ll index eb53e549763..0a725987fa0 100644 --- a/bench/openmpi/optimized/pmix_mca_base_open.ll +++ b/bench/openmpi/optimized/pmix_mca_base_open.ll @@ -88,20 +88,22 @@ define i32 @pmix_mca_base_open(ptr noundef %0) local_unnamed_addr #0 { 12: ; preds = %9 %13 = tail call noalias ptr @strdup(ptr noundef nonnull %0) #10 - store ptr %13, ptr @pmix_mca_base_component_path, align 8, !tbaa !10 - br label %18 + br label %.sink.split 14: ; preds = %9 %15 = call i32 (ptr, ptr, ...) @pmix_asprintf(ptr noundef nonnull %3, ptr noundef nonnull @.str, ptr noundef nonnull %0, ptr noundef nonnull %10) #10 %16 = load ptr, ptr @pmix_mca_base_component_path, align 8, !tbaa !10 call void @free(ptr noundef %16) #10 %17 = load ptr, ptr %3, align 8, !tbaa !10 - store ptr %17, ptr @pmix_mca_base_component_path, align 8, !tbaa !10 - %.pre = load i32, ptr @pmix_mca_base_opened, align 4, !tbaa !8 + br label %.sink.split + +.sink.split: ; preds = %14, %12 + %.sink = phi ptr [ %13, %12 ], [ %17, %14 ] + store ptr %.sink, ptr @pmix_mca_base_component_path, align 8, !tbaa !10 br label %18 -18: ; preds = %12, %14, %8 - %19 = phi i32 [ %6, %12 ], [ %.pre, %14 ], [ %6, %8 ] +18: ; preds = %.sink.split, %8 + %19 = load i32, ptr @pmix_mca_base_opened, align 4, !tbaa !8 %20 = add nsw i32 %19, 1 store i32 %20, ptr @pmix_mca_base_opened, align 4, !tbaa !8 br label %148 @@ -394,7 +396,7 @@ set_defaults.exit: ; preds = %.lr.ph.i.i, %122 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #1 -; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias ptr @strdup(ptr noundef readonly captures(none)) local_unnamed_addr #2 declare i32 @pmix_asprintf(ptr noundef, ptr noundef, ...) local_unnamed_addr #3 @@ -456,7 +458,7 @@ declare void @llvm.lifetime.end.p0(ptr captures(none)) #9 attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #2 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/openmpi/optimized/pmix_mca_base_var.ll b/bench/openmpi/optimized/pmix_mca_base_var.ll index f926dff6e69..613abbd7be4 100644 --- a/bench/openmpi/optimized/pmix_mca_base_var.ll +++ b/bench/openmpi/optimized/pmix_mca_base_var.ll @@ -486,7 +486,7 @@ define range(i32 -29, 1) i32 @pmix_mca_base_var_generate_full_name4(ptr noundef ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: read) declare i64 @strlen(ptr noundef captures(none)) local_unnamed_addr #4 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #5 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) @@ -830,7 +830,7 @@ declare ptr @pmix_home_directory(i32 noundef) local_unnamed_addr #7 ; Function Attrs: nounwind declare i32 @geteuid() local_unnamed_addr #8 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #9 ; Function Attrs: nounwind @@ -838,7 +838,7 @@ declare ptr @getcwd(ptr noundef, i64 noundef) local_unnamed_addr #8 declare void @pmix_output(i32 noundef, ptr noundef, ...) local_unnamed_addr #7 -; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias ptr @strdup(ptr noundef readonly captures(none)) local_unnamed_addr #10 ; Function Attrs: nofree nounwind memory(read) @@ -3224,7 +3224,6 @@ var_get.exit33: ; preds = %pmix_pointer_array_ %75 = icmp slt i32 %.0.i34, 0 %76 = load ptr, ptr %9, align 8 %.010.i = select i1 %75, ptr null, ptr %76 - %.pre = load i32, ptr %58, align 4, !tbaa !70 br label %source_name.exit 77: ; preds = %60 @@ -3243,10 +3242,10 @@ var_get.exit33: ; preds = %pmix_pointer_array_ br label %source_name.exit source_name.exit: ; preds = %74, %79, %81 - %86 = phi i32 [ %.pre, %74 ], [ %59, %79 ], [ %59, %81 ] %.1.i = phi ptr [ %.010.i, %74 ], [ %80, %79 ], [ %85, %81 ] call void @llvm.lifetime.end.p0(ptr nonnull %9) call void @llvm.lifetime.start.p0(ptr nonnull %8) + %86 = load i32, ptr %58, align 4, !tbaa !70 switch i32 %86, label %103 [ i32 3, label %87 i32 5, label %87 @@ -4721,7 +4720,7 @@ declare i32 @strcasecmp(ptr noundef captures(none), ptr noundef captures(none)) ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #22 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #23 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -4735,12 +4734,12 @@ attributes #1 = { mustprogress nofree norecurse nosync nounwind willreturn memor attributes #2 = { mustprogress nounwind willreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { nofree nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #11 = { nofree nounwind memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #12 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #13 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, argmem: readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -4753,7 +4752,7 @@ attributes #19 = { mustprogress nofree norecurse nounwind willreturn memory(argm attributes #20 = { mustprogress nocallback nofree nounwind willreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #21 = { mustprogress nocallback nofree nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #22 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #23 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #23 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #24 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #25 = { nounwind } attributes #26 = { nounwind allocsize(1) } diff --git a/bench/openmpi/optimized/unpack.ll b/bench/openmpi/optimized/unpack.ll index 32d54bee628..bf48f1de730 100644 --- a/bench/openmpi/optimized/unpack.ll +++ b/bench/openmpi/optimized/unpack.ll @@ -725,7 +725,7 @@ pmix_pointer_array_get_item.exit188: ; preds = %155 ret i32 %.0 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #2 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) @@ -1782,7 +1782,7 @@ pmix_pointer_array_get_item.exit34: ; preds = %31 ret i32 %.0 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #5 ; Function Attrs: nounwind uwtable @@ -4858,8 +4858,8 @@ define i32 @pmix20_bfrop_unpack_darray(ptr noundef %0, ptr noundef %1, ptr nound %wide.trip.count = zext nneg i32 %17 to i64 br label %21 -21: ; preds = %.lr.ph, %51 - %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %51 ] +21: ; preds = %.lr.ph, %52 + %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %52 ] %22 = getelementptr inbounds nuw %struct.pmix_data_array, ptr %2, i64 %indvars.iv call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %22, i8 0, i64 24, i1 false) store i32 1, ptr %6, align 4, !tbaa !3 @@ -4891,12 +4891,12 @@ pmix20_bfrop_unpack_datatype.exit: ; preds = %pmix_pointer_array_ 34: ; preds = %31 %35 = load i64, ptr %32, align 8, !tbaa !74 %36 = icmp eq i64 %35, 0 - br i1 %36, label %51, label %37 + br i1 %36, label %52, label %37 37: ; preds = %34 %38 = load i16, ptr %22, align 8, !tbaa !72 %39 = icmp eq i16 %38, 0 - br i1 %39, label %51, label %40 + br i1 %39, label %52, label %40 40: ; preds = %37 %41 = trunc i64 %35 to i32 @@ -4925,17 +4925,18 @@ switch.lookup: ; preds = %switch.hole_check br i1 %48, label %pmix20_bfrop_unpack_datatype.exit.thread, label %49 49: ; preds = %switch.lookup - %50 = call i32 @pmix20_bfrop_unpack_buffer(ptr noundef nonnull %0, ptr noundef %1, ptr noundef nonnull %46, ptr noundef nonnull %6, i16 noundef zeroext %38) - %.not46 = icmp eq i32 %50, 0 - br i1 %.not46, label %51, label %pmix20_bfrop_unpack_datatype.exit.thread + %50 = load i16, ptr %22, align 8, !tbaa !72 + %51 = call i32 @pmix20_bfrop_unpack_buffer(ptr noundef nonnull %0, ptr noundef %1, ptr noundef nonnull %46, ptr noundef nonnull %6, i16 noundef zeroext %50) + %.not46 = icmp eq i32 %51, 0 + br i1 %.not46, label %52, label %pmix20_bfrop_unpack_datatype.exit.thread -51: ; preds = %49, %34, %37 +52: ; preds = %49, %34, %37 %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 %pmix20_bfrop_unpack_datatype.exit.thread, label %21, !llvm.loop !119 -pmix20_bfrop_unpack_datatype.exit.thread: ; preds = %pmix20_bfrop_unpack_datatype.exit, %31, %switch.lookup, %49, %51, %pmix_pointer_array_get_item.exit.i, %21, %40, %switch.hole_check, %16 - %.037 = phi i32 [ 0, %16 ], [ -47, %switch.hole_check ], [ -16, %21 ], [ -16, %pmix_pointer_array_get_item.exit.i ], [ 0, %51 ], [ %50, %49 ], [ -32, %switch.lookup ], [ -47, %40 ], [ %33, %31 ], [ %30, %pmix20_bfrop_unpack_datatype.exit ] +pmix20_bfrop_unpack_datatype.exit.thread: ; preds = %pmix20_bfrop_unpack_datatype.exit, %31, %switch.lookup, %49, %52, %pmix_pointer_array_get_item.exit.i, %21, %40, %switch.hole_check, %16 + %.037 = phi i32 [ 0, %16 ], [ -47, %switch.hole_check ], [ -16, %21 ], [ -16, %pmix_pointer_array_get_item.exit.i ], [ 0, %52 ], [ %51, %49 ], [ -32, %switch.lookup ], [ -47, %40 ], [ %33, %31 ], [ %30, %pmix20_bfrop_unpack_datatype.exit ] call void @llvm.lifetime.end.p0(ptr nonnull %6) ret i32 %.037 } @@ -5328,10 +5329,10 @@ declare i64 @llvm.bswap.i64(i64) #9 attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #5 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nocallback nofree nounwind willreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #8 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } diff --git a/bench/openusd/optimized/drawModeStandin.ll b/bench/openusd/optimized/drawModeStandin.ll index e9ebebd2cd4..105dd2125e7 100644 --- a/bench/openusd/optimized/drawModeStandin.ll +++ b/bench/openusd/optimized/drawModeStandin.ll @@ -3982,7 +3982,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver14 ret void } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #15 declare void @__cxa_rethrow() local_unnamed_addr @@ -8410,7 +8410,7 @@ define linkonce_odr void @_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorIN %6 = load i32, ptr %5, align 4 %7 = icmp eq i32 %4, %6 %.pre = load ptr, ptr %0, align 8 - br i1 %7, label %8, label %30 + br i1 %7, label %8, label %33 8: ; preds = %2 %9 = zext i32 %4 to i64 @@ -8419,26 +8419,29 @@ define linkonce_odr void @_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorIN %12 = add nuw nsw i64 %11, %10 %13 = mul nuw nsw i64 %12, 464 %14 = tail call noalias noundef ptr @malloc(i64 noundef %13) #34 - %15 = icmp ult i32 %4, 17 - %spec.select.i.i.i = select i1 %15, ptr %0, ptr %.pre - %16 = getelementptr inbounds nuw %"struct.pxrInternal_v0_24__pxrReserved__::HdSceneIndexObserver::DirtiedPrimEntry", ptr %spec.select.i.i.i, i64 %9 - %17 = tail call noundef ptr @_ZSt16__do_uninit_copyISt13move_iteratorIPN32pxrInternal_v0_24__pxrReserved__20HdSceneIndexObserver16DirtiedPrimEntryEES4_ET0_T_S7_S6_(ptr %spec.select.i.i.i, ptr %16, ptr noundef %14) - %18 = load i32, ptr %5, align 4 - %19 = icmp ult i32 %18, 17 - %20 = load ptr, ptr %0, align 8 - %spec.select.i.i.i.i = select i1 %19, ptr %0, ptr %20 - %21 = load i32, ptr %3, align 8 - %22 = zext i32 %21 to i64 - %.idx.i.i = mul nuw nsw i64 %22, 464 - %23 = getelementptr inbounds nuw i8, ptr %spec.select.i.i.i.i, i64 %.idx.i.i - %.not7.i.i = icmp eq i32 %21, 0 + %15 = load i32, ptr %5, align 4 + %16 = icmp ult i32 %15, 17 + %spec.select.i.i.i = select i1 %16, ptr %0, ptr %.pre + %17 = load i32, ptr %3, align 8 + %18 = zext i32 %17 to i64 + %19 = getelementptr inbounds nuw %"struct.pxrInternal_v0_24__pxrReserved__::HdSceneIndexObserver::DirtiedPrimEntry", ptr %spec.select.i.i.i, i64 %18 + %20 = tail call noundef ptr @_ZSt16__do_uninit_copyISt13move_iteratorIPN32pxrInternal_v0_24__pxrReserved__20HdSceneIndexObserver16DirtiedPrimEntryEES4_ET0_T_S7_S6_(ptr %spec.select.i.i.i, ptr %19, ptr noundef %14) + %21 = load i32, ptr %5, align 4 + %22 = icmp ult i32 %21, 17 + %23 = load ptr, ptr %0, align 8 + %spec.select.i.i.i.i = select i1 %22, ptr %0, ptr %23 + %24 = load i32, ptr %3, align 8 + %25 = zext i32 %24 to i64 + %.idx.i.i = mul nuw nsw i64 %25, 464 + %26 = getelementptr inbounds nuw i8, ptr %spec.select.i.i.i.i, i64 %.idx.i.i + %.not7.i.i = icmp eq i32 %24, 0 br i1 %.not7.i.i, label %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.i, label %.lr.ph.i.i .lr.ph.i.i: ; preds = %8, %.lr.ph.i.i - %.08.i.i = phi ptr [ %24, %.lr.ph.i.i ], [ %spec.select.i.i.i.i, %8 ] + %.08.i.i = phi ptr [ %27, %.lr.ph.i.i ], [ %spec.select.i.i.i.i, %8 ] tail call void @_ZN32pxrInternal_v0_24__pxrReserved__20HdSceneIndexObserver16DirtiedPrimEntryD2Ev(ptr noundef nonnull align 8 dereferenceable(464) %.08.i.i) #29 - %24 = getelementptr inbounds nuw i8, ptr %.08.i.i, i64 464 - %.not.i.i = icmp eq ptr %24, %23 + %27 = getelementptr inbounds nuw i8, ptr %.08.i.i, i64 464 + %.not.i.i = icmp eq ptr %27, %26 br i1 %.not.i.i, label %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.loopexit.i, label %.lr.ph.i.i, !llvm.loop !44 _ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.loopexit.i: ; preds = %.lr.ph.i.i @@ -8446,53 +8449,53 @@ _ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16 br label %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.i _ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.i: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.loopexit.i, %8 - %25 = phi i32 [ %.pre.i, %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.loopexit.i ], [ %18, %8 ] - %26 = icmp ult i32 %25, 17 - br i1 %26, label %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit, label %27 + %28 = phi i32 [ %.pre.i, %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.loopexit.i ], [ %21, %8 ] + %29 = icmp ult i32 %28, 17 + br i1 %29, label %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit, label %30 -27: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.i - %28 = load ptr, ptr %0, align 8 - tail call void @free(ptr noundef %28) #29 +30: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.i + %31 = load ptr, ptr %0, align 8 + tail call void @free(ptr noundef %31) #29 br label %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit -_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.i, %27 +_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.i, %30 store ptr %14, ptr %0, align 8 - %29 = trunc i64 %12 to i32 - store i32 %29, ptr %5, align 4 + %32 = trunc i64 %12 to i32 + store i32 %32, ptr %5, align 4 %.pre2 = load i32, ptr %3, align 8 - br label %30 + br label %33 -30: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit, %2 - %31 = phi i32 [ %.pre2, %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit ], [ %4, %2 ] - %32 = phi ptr [ %14, %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit ], [ %.pre, %2 ] - %33 = phi i32 [ %29, %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit ], [ %6, %2 ] - %34 = icmp ult i32 %33, 17 - %spec.select.i.i = select i1 %34, ptr %0, ptr %32 - %35 = zext i32 %31 to i64 - %36 = getelementptr inbounds nuw %"struct.pxrInternal_v0_24__pxrReserved__::HdSceneIndexObserver::DirtiedPrimEntry", ptr %spec.select.i.i, i64 %35 - %37 = load i32, ptr %1, align 8 - store i32 %37, ptr %36, align 4 +33: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit, %2 + %34 = phi i32 [ %.pre2, %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit ], [ %4, %2 ] + %35 = phi ptr [ %14, %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit ], [ %.pre, %2 ] + %36 = phi i32 [ %32, %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit ], [ %6, %2 ] + %37 = icmp ult i32 %36, 17 + %spec.select.i.i = select i1 %37, ptr %0, ptr %35 + %38 = zext i32 %34 to i64 + %39 = getelementptr inbounds nuw %"struct.pxrInternal_v0_24__pxrReserved__::HdSceneIndexObserver::DirtiedPrimEntry", ptr %spec.select.i.i, i64 %38 + %40 = load i32, ptr %1, align 8 + store i32 %40, ptr %39, align 4 store i32 0, ptr %1, align 8 - %38 = getelementptr inbounds nuw i8, ptr %36, i64 4 - %39 = getelementptr inbounds nuw i8, ptr %1, i64 4 - %40 = load i32, ptr %39, align 4 - store i32 %40, ptr %38, align 4 - store i32 0, ptr %39, align 4 - %41 = getelementptr inbounds nuw i8, ptr %36, i64 8 - %42 = getelementptr inbounds nuw i8, ptr %1, i64 8 - invoke void @_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_19HdDataSourceLocatorELj8EEC2EOS2_(ptr noundef nonnull align 8 dereferenceable(456) %41, ptr noundef nonnull align 8 dereferenceable(456) %42) - to label %_ZN32pxrInternal_v0_24__pxrReserved__20HdSceneIndexObserver16DirtiedPrimEntryC2EOS1_.exit unwind label %43 - -43: ; preds = %30 - %44 = landingpad { ptr, i32 } + %41 = getelementptr inbounds nuw i8, ptr %39, i64 4 + %42 = getelementptr inbounds nuw i8, ptr %1, i64 4 + %43 = load i32, ptr %42, align 4 + store i32 %43, ptr %41, align 4 + store i32 0, ptr %42, align 4 + %44 = getelementptr inbounds nuw i8, ptr %39, i64 8 + %45 = getelementptr inbounds nuw i8, ptr %1, i64 8 + invoke void @_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_19HdDataSourceLocatorELj8EEC2EOS2_(ptr noundef nonnull align 8 dereferenceable(456) %44, ptr noundef nonnull align 8 dereferenceable(456) %45) + to label %_ZN32pxrInternal_v0_24__pxrReserved__20HdSceneIndexObserver16DirtiedPrimEntryC2EOS1_.exit unwind label %46 + +46: ; preds = %33 + %47 = landingpad { ptr, i32 } cleanup - tail call void @_ZN32pxrInternal_v0_24__pxrReserved__7SdfPathD2Ev(ptr noundef nonnull align 8 dereferenceable(464) %36) #29 - resume { ptr, i32 } %44 + tail call void @_ZN32pxrInternal_v0_24__pxrReserved__7SdfPathD2Ev(ptr noundef nonnull align 8 dereferenceable(464) %39) #29 + resume { ptr, i32 } %47 -_ZN32pxrInternal_v0_24__pxrReserved__20HdSceneIndexObserver16DirtiedPrimEntryC2EOS1_.exit: ; preds = %30 - %45 = load i32, ptr %3, align 8 - %46 = add i32 %45, 1 - store i32 %46, ptr %3, align 8 +_ZN32pxrInternal_v0_24__pxrReserved__20HdSceneIndexObserver16DirtiedPrimEntryC2EOS1_.exit: ; preds = %33 + %48 = load i32, ptr %3, align 8 + %49 = add i32 %48, 1 + store i32 %49, ptr %3, align 8 ret void } @@ -58272,7 +58275,7 @@ attributes #11 = { mustprogress nocallback nofree nounwind willreturn memory(arg attributes #12 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #13 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #14 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #15 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #15 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #16 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #17 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #18 = { mustprogress nofree norecurse nounwind willreturn memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/php/optimized/shared_alloc_shm.ll b/bench/php/optimized/shared_alloc_shm.ll index 33442a27f51..c5598a9267c 100644 --- a/bench/php/optimized/shared_alloc_shm.ll +++ b/bench/php/optimized/shared_alloc_shm.ll @@ -68,82 +68,84 @@ define internal range(i32 0, 2) i32 @create_segments(i64 noundef %0, ptr noundef br label %.loopexit 28: ; preds = %18 - %29 = shl nsw i64 %24, 3 - %30 = getelementptr inbounds nuw i8, ptr %26, i64 %29 - %31 = icmp ult i32 %22, 2147483647 - br i1 %31, label %.lr.ph89.preheader, label %.loopexit + %29 = load i32, ptr %2, align 4, !tbaa !9 + %30 = sext i32 %29 to i64 + %31 = shl nsw i64 %30, 3 + %32 = getelementptr inbounds nuw i8, ptr %26, i64 %31 + %33 = icmp sgt i32 %29, 0 + br i1 %33, label %.lr.ph89.preheader, label %.loopexit .lr.ph89.preheader: ; preds = %28 - %wide.trip.count = zext nneg i32 %23 to i64 + %wide.trip.count = zext nneg i32 %29 to i64 br label %.lr.ph89 .lr.ph92: ; preds = %.lr.ph89 - %32 = getelementptr inbounds nuw i8, ptr %30, i64 32 - br label %36 + %34 = getelementptr inbounds nuw i8, ptr %32, i64 32 + br label %38 .lr.ph89: ; preds = %.lr.ph89.preheader, %.lr.ph89 %indvars.iv = phi i64 [ 0, %.lr.ph89.preheader ], [ %indvars.iv.next, %.lr.ph89 ] - %33 = getelementptr inbounds nuw %struct.zend_shared_segment_shm, ptr %30, i64 %indvars.iv - %34 = load ptr, ptr %1, align 8, !tbaa !11 - %35 = getelementptr inbounds nuw ptr, ptr %34, i64 %indvars.iv - store ptr %33, ptr %35, align 8, !tbaa !11 + %35 = getelementptr inbounds nuw %struct.zend_shared_segment_shm, ptr %32, i64 %indvars.iv + %36 = load ptr, ptr %1, align 8, !tbaa !11 + %37 = getelementptr inbounds nuw ptr, ptr %36, i64 %indvars.iv + store ptr %35, ptr %37, align 8, !tbaa !11 %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 %.lr.ph92, label %.lr.ph89 -36: ; preds = %.lr.ph92, %55 - %indvars.iv99 = phi i64 [ 0, %.lr.ph92 ], [ %indvars.iv.next100, %55 ] - %.07590 = phi i64 [ %0, %.lr.ph92 ], [ %59, %55 ] - %37 = call i64 @llvm.umin.i64(i64 %.07590, i64 %.17486) +38: ; preds = %.lr.ph92, %57 + %indvars.iv99 = phi i64 [ 0, %.lr.ph92 ], [ %indvars.iv.next100, %57 ] + %.07590 = phi i64 [ %0, %.lr.ph92 ], [ %61, %57 ] + %39 = call i64 @llvm.umin.i64(i64 %.07590, i64 %.17486) %.not81 = icmp eq i64 %indvars.iv99, 0 - br i1 %.not81, label %42, label %38 - -38: ; preds = %36 - %39 = call i32 @shmget(i32 noundef 0, i64 noundef %37, i32 noundef 1920) #6 - %40 = getelementptr inbounds nuw %struct.zend_shared_segment_shm, ptr %30, i64 %indvars.iv99 - %41 = getelementptr inbounds nuw i8, ptr %40, i64 32 - store i32 %39, ptr %41, align 8, !tbaa !12 - br label %43 - -42: ; preds = %36 - store i32 %14, ptr %32, align 8, !tbaa !12 - br label %43 - -43: ; preds = %42, %38 - %44 = phi i32 [ %14, %42 ], [ %39, %38 ] - %45 = getelementptr inbounds nuw %struct.zend_shared_segment_shm, ptr %30, i64 %indvars.iv99 - %46 = getelementptr inbounds nuw i8, ptr %45, i64 32 - %47 = icmp eq i32 %44, -1 - br i1 %47, label %.loopexit, label %48 - -48: ; preds = %43 - %49 = call ptr @shmat(i32 noundef %44, ptr noundef null, i32 noundef 0) #6 - %50 = getelementptr inbounds nuw i8, ptr %45, i64 24 - store ptr %49, ptr %50, align 8, !tbaa !16 - %51 = icmp eq ptr %49, inttoptr (i64 -1 to ptr) - br i1 %51, label %52, label %55 - -52: ; preds = %48 + br i1 %.not81, label %44, label %40 + +40: ; preds = %38 + %41 = call i32 @shmget(i32 noundef 0, i64 noundef %39, i32 noundef 1920) #6 + %42 = getelementptr inbounds nuw %struct.zend_shared_segment_shm, ptr %32, i64 %indvars.iv99 + %43 = getelementptr inbounds nuw i8, ptr %42, i64 32 + store i32 %41, ptr %43, align 8, !tbaa !12 + br label %45 + +44: ; preds = %38 + store i32 %14, ptr %34, align 8, !tbaa !12 + br label %45 + +45: ; preds = %44, %40 + %46 = phi i32 [ %14, %44 ], [ %41, %40 ] + %47 = getelementptr inbounds nuw %struct.zend_shared_segment_shm, ptr %32, i64 %indvars.iv99 + %48 = getelementptr inbounds nuw i8, ptr %47, i64 32 + %49 = icmp eq i32 %46, -1 + br i1 %49, label %.loopexit, label %50 + +50: ; preds = %45 + %51 = call ptr @shmat(i32 noundef %46, ptr noundef null, i32 noundef 0) #6 + %52 = getelementptr inbounds nuw i8, ptr %47, i64 24 + store ptr %51, ptr %52, align 8, !tbaa !16 + %53 = icmp eq ptr %51, inttoptr (i64 -1 to ptr) + br i1 %53, label %54, label %57 + +54: ; preds = %50 store ptr @.str.2, ptr %3, align 8, !tbaa !4 - %53 = load i32, ptr %46, align 8, !tbaa !12 - %54 = call i32 @shmctl(i32 noundef %53, i32 noundef 0, ptr noundef nonnull %5) #6 + %55 = load i32, ptr %48, align 8, !tbaa !12 + %56 = call i32 @shmctl(i32 noundef %55, i32 noundef 0, ptr noundef nonnull %5) #6 br label %.loopexit -55: ; preds = %48 - %56 = load i32, ptr %46, align 8, !tbaa !12 - %57 = call i32 @shmctl(i32 noundef %56, i32 noundef 0, ptr noundef nonnull %5) #6 - %58 = getelementptr inbounds nuw i8, ptr %45, i64 16 - store i64 0, ptr %58, align 8, !tbaa !17 - store i64 %37, ptr %45, align 8, !tbaa !18 - %59 = sub i64 %.07590, %37 +57: ; preds = %50 + %58 = load i32, ptr %48, align 8, !tbaa !12 + %59 = call i32 @shmctl(i32 noundef %58, i32 noundef 0, ptr noundef nonnull %5) #6 + %60 = getelementptr inbounds nuw i8, ptr %47, i64 16 + store i64 0, ptr %60, align 8, !tbaa !17 + store i64 %39, ptr %47, align 8, !tbaa !18 + %61 = sub i64 %.07590, %39 %indvars.iv.next100 = add nuw nsw i64 %indvars.iv99, 1 - %60 = load i32, ptr %2, align 4, !tbaa !9 - %61 = sext i32 %60 to i64 - %62 = icmp slt i64 %indvars.iv.next100, %61 - br i1 %62, label %36, label %.loopexit + %62 = load i32, ptr %2, align 4, !tbaa !9 + %63 = sext i32 %62 to i64 + %64 = icmp slt i64 %indvars.iv.next100, %63 + br i1 %64, label %38, label %.loopexit -.loopexit: ; preds = %43, %55, %28, %52, %27, %._crit_edge - %.0 = phi i32 [ 0, %._crit_edge ], [ 0, %52 ], [ 0, %27 ], [ 1, %28 ], [ 0, %43 ], [ 1, %55 ] +.loopexit: ; preds = %45, %57, %28, %54, %27, %._crit_edge + %.0 = phi i32 [ 0, %._crit_edge ], [ 0, %54 ], [ 0, %27 ], [ 1, %28 ], [ 0, %45 ], [ 1, %57 ] call void @llvm.lifetime.end.p0(ptr nonnull %5) ret i32 %.0 } @@ -164,7 +166,7 @@ define internal noundef i64 @segment_type_size() #1 { ; Function Attrs: nounwind declare i32 @shmget(i32 noundef, i64 noundef, i32 noundef) local_unnamed_addr #2 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #3 ; Function Attrs: nounwind @@ -191,7 +193,7 @@ declare i64 @llvm.cttz.i64(i64, i1 immarg) #5 attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #6 = { nounwind } diff --git a/bench/php/optimized/zend.ll b/bench/php/optimized/zend.ll index c1f5134444b..4ff9188750b 100644 --- a/bench/php/optimized/zend.ll +++ b/bench/php/optimized/zend.ll @@ -2076,10 +2076,10 @@ declare i32 @zend_gc_collect_cycles() #2 declare void @zend_vm_init() local_unnamed_addr #2 -; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias ptr @strdup(ptr noundef readonly captures(none)) local_unnamed_addr #5 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #6 declare void @_zend_hash_init(ptr noundef, i32 noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #2 @@ -2369,13 +2369,15 @@ define dso_local void @zend_append_version_info(ptr noundef readonly captures(no %22 = tail call i32 (ptr, i64, ptr, ...) @ap_php_snprintf(ptr noundef %20, i64 noundef %21, ptr noundef nonnull @.str.7, ptr noundef nonnull %2, ptr noundef nonnull %6, ptr noundef nonnull %10, ptr noundef nonnull %14) #33 %23 = load ptr, ptr @zend_version_info, align 8, !tbaa !14 %24 = load i32, ptr @zend_version_info_length, align 4, !tbaa !58 - %25 = add i32 %24, %17 - %26 = add i32 %25, 1 + %25 = add i32 %17, 1 + %26 = add i32 %25, %24 %27 = zext i32 %26 to i64 %28 = tail call ptr @realloc(ptr noundef %23, i64 noundef %27) #34 store ptr %28, ptr @zend_version_info, align 8, !tbaa !14 %29 = tail call ptr @strncat(ptr noundef nonnull dereferenceable(1) %28, ptr noundef %20, i64 noundef %21) #33 - store i32 %25, ptr @zend_version_info_length, align 4, !tbaa !58 + %30 = load i32, ptr @zend_version_info_length, align 4, !tbaa !58 + %31 = add i32 %30, %17 + store i32 %31, ptr @zend_version_info_length, align 4, !tbaa !58 tail call void @free(ptr noundef %20) #33 ret void } @@ -2385,7 +2387,7 @@ declare i64 @strlen(ptr noundef captures(none)) local_unnamed_addr #16 declare i32 @ap_php_snprintf(ptr noundef, i64 noundef, ptr noundef, ...) local_unnamed_addr #2 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #17 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) @@ -5162,8 +5164,8 @@ attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argm attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn } attributes #4 = { nofree nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #6 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nounwind willreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -5174,7 +5176,7 @@ attributes #13 = { nofree noreturn nounwind "no-trapping-math"="true" "stack-pro attributes #14 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #15 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #16 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #17 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #17 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #18 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #19 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, argmem: none, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #20 = { nounwind returns_twice "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/postgres/optimized/fe-cancel.ll b/bench/postgres/optimized/fe-cancel.ll index 228fb2bd019..e52fc563e4e 100644 --- a/bench/postgres/optimized/fe-cancel.ll +++ b/bench/postgres/optimized/fe-cancel.ll @@ -29,7 +29,7 @@ target triple = "x86_64-pc-linux-gnu" define ptr @PQcancelCreate(ptr noundef %0) local_unnamed_addr #0 { %2 = tail call ptr @pqMakeEmptyPGconn() #16 %3 = icmp eq ptr %2, null - br i1 %3, label %60, label %4 + br i1 %3, label %62, label %4 4: ; preds = %1 %.not = icmp eq ptr %0, null @@ -37,7 +37,7 @@ define ptr @PQcancelCreate(ptr noundef %0) local_unnamed_addr #0 { 5: ; preds = %4 tail call void (ptr, ptr, ...) @libpq_append_conn_error(ptr noundef nonnull %2, ptr noundef nonnull @.str) #16 - br label %60 + br label %62 6: ; preds = %4 %7 = getelementptr inbounds nuw i8, ptr %0, i64 520 @@ -47,17 +47,17 @@ define ptr @PQcancelCreate(ptr noundef %0) local_unnamed_addr #0 { 10: ; preds = %6 tail call void (ptr, ptr, ...) @libpq_append_conn_error(ptr noundef nonnull %2, ptr noundef nonnull @.str.1) #16 - br label %60 + br label %62 11: ; preds = %6 %12 = getelementptr inbounds nuw i8, ptr %2, i64 344 store i8 1, ptr %12, align 8 %13 = tail call zeroext i1 @pqCopyPGconn(ptr noundef nonnull %0, ptr noundef nonnull %2) #16 - br i1 %13, label %14, label %60 + br i1 %13, label %14, label %62 14: ; preds = %11 %15 = tail call zeroext i1 @pqConnectOptions2(ptr noundef nonnull %2) #16 - br i1 %15, label %16, label %60 + br i1 %15, label %16, label %62 16: ; preds = %14 %17 = getelementptr inbounds nuw i8, ptr %0, i64 936 @@ -77,7 +77,7 @@ define ptr @PQcancelCreate(ptr noundef %0) local_unnamed_addr #0 { %26 = getelementptr inbounds nuw i8, ptr %2, i64 480 store ptr %25, ptr %26, align 8 %.not53 = icmp eq ptr %25, null - br i1 %.not53, label %58, label %27 + br i1 %.not53, label %60, label %27 27: ; preds = %16 %28 = getelementptr inbounds nuw i8, ptr %0, i64 480 @@ -102,7 +102,7 @@ define ptr @PQcancelCreate(ptr noundef %0) local_unnamed_addr #0 { %36 = getelementptr inbounds nuw i8, ptr %25, i64 8 store ptr %35, ptr %36, align 8 %.not55 = icmp eq ptr %35, null - br i1 %.not55, label %58, label %37 + br i1 %.not55, label %60, label %37 37: ; preds = %34, %27 %.not56 = icmp eq ptr %.sroa.5.0.copyload, null @@ -113,7 +113,7 @@ define ptr @PQcancelCreate(ptr noundef %0) local_unnamed_addr #0 { %40 = getelementptr inbounds nuw i8, ptr %25, i64 16 store ptr %39, ptr %40, align 8 %.not57 = icmp eq ptr %39, null - br i1 %.not57, label %58, label %41 + br i1 %.not57, label %60, label %41 41: ; preds = %38, %37 %.not58 = icmp eq ptr %.sroa.7.0.copyload, null @@ -124,7 +124,7 @@ define ptr @PQcancelCreate(ptr noundef %0) local_unnamed_addr #0 { %44 = getelementptr inbounds nuw i8, ptr %25, i64 24 store ptr %43, ptr %44, align 8 %.not59 = icmp eq ptr %43, null - br i1 %.not59, label %58, label %45 + br i1 %.not59, label %60, label %45 45: ; preds = %42, %41 %.not60 = icmp eq ptr %.sroa.9.0.copyload, null @@ -135,33 +135,35 @@ define ptr @PQcancelCreate(ptr noundef %0) local_unnamed_addr #0 { %48 = getelementptr inbounds nuw i8, ptr %25, i64 32 store ptr %47, ptr %48, align 8 %.not61 = icmp eq ptr %47, null - br i1 %.not61, label %58, label %49 + br i1 %.not61, label %60, label %49 49: ; preds = %46, %45 - %50 = tail call noalias dereferenceable_or_null(144) ptr @calloc(i64 noundef 1, i64 noundef 144) #17 - %51 = getelementptr inbounds nuw i8, ptr %2, i64 888 - store ptr %50, ptr %51, align 8 - %.not62 = icmp eq ptr %50, null - br i1 %.not62, label %58, label %52 - -52: ; preds = %49 - %53 = getelementptr inbounds nuw i8, ptr %50, i64 8 - %54 = getelementptr inbounds nuw i8, ptr %0, i64 664 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %53, ptr noundef nonnull align 8 dereferenceable(136) %54, i64 136, i1 false) - %55 = load i16, ptr %54, align 8 - %56 = zext i16 %55 to i32 - store i32 %56, ptr %50, align 8 - %57 = getelementptr inbounds nuw i8, ptr %2, i64 416 - store i32 14, ptr %57, align 8 - br label %60 - -58: ; preds = %49, %46, %42, %38, %34, %16 + %50 = load i32, ptr %24, align 8 + %51 = sext i32 %50 to i64 + %52 = tail call noalias ptr @calloc(i64 noundef %51, i64 noundef 144) #17 + %53 = getelementptr inbounds nuw i8, ptr %2, i64 888 + store ptr %52, ptr %53, align 8 + %.not62 = icmp eq ptr %52, null + br i1 %.not62, label %60, label %54 + +54: ; preds = %49 + %55 = getelementptr inbounds nuw i8, ptr %52, i64 8 + %56 = getelementptr inbounds nuw i8, ptr %0, i64 664 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %55, ptr noundef nonnull align 8 dereferenceable(136) %56, i64 136, i1 false) + %57 = load i16, ptr %56, align 8 + %58 = zext i16 %57 to i32 + store i32 %58, ptr %52, align 8 %59 = getelementptr inbounds nuw i8, ptr %2, i64 416 - store i32 1, ptr %59, align 8 + store i32 14, ptr %59, align 8 + br label %62 + +60: ; preds = %49, %46, %42, %38, %34, %16 + %61 = getelementptr inbounds nuw i8, ptr %2, i64 416 + store i32 1, ptr %61, align 8 tail call void (ptr, ptr, ...) @libpq_append_conn_error(ptr noundef nonnull %2, ptr noundef nonnull @.str.2) #16 - br label %60 + br label %62 -60: ; preds = %14, %11, %1, %58, %52, %10, %5 +62: ; preds = %14, %11, %1, %60, %54, %10, %5 ret ptr %2 } @@ -175,13 +177,13 @@ declare zeroext i1 @pqConnectOptions2(ptr noundef) local_unnamed_addr #1 declare void @pqReleaseConnHosts(ptr noundef) local_unnamed_addr #1 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #2 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #3 -; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias ptr @strdup(ptr noundef readonly captures(none)) local_unnamed_addr #4 ; Function Attrs: nounwind uwtable @@ -443,7 +445,7 @@ define noundef ptr @PQgetCancel(ptr noundef %0) local_unnamed_addr #0 { ret ptr %.0 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #6 declare zeroext i1 @pqParseIntParam(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1 @@ -721,11 +723,11 @@ declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immar attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #4 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #6 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { nofree "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/raylib/optimized/utils.ll b/bench/raylib/optimized/utils.ll index 1a8eab5bf6a..be5dd98fb76 100644 --- a/bench/raylib/optimized/utils.ll +++ b/bench/raylib/optimized/utils.ll @@ -101,7 +101,7 @@ define void @TraceLog(i32 noundef %0, ptr noundef %1, ...) local_unnamed_addr #1 br i1 %.not, label %10, label %9 9: ; preds = %7 - call void %8(i32 noundef %0, ptr noundef %1, ptr noundef nonnull %3) #18 + call void %8(i32 noundef %0, ptr noundef %1, ptr noundef nonnull %3) #19 call void @llvm.va_end.p0(ptr nonnull %3) br label %31 @@ -126,11 +126,11 @@ define void @TraceLog(i32 noundef %0, ptr noundef %1, ...) local_unnamed_addr #1 br label %17 13: ; preds = %10 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(7) %4, ptr noundef nonnull align 1 dereferenceable(7) @.str.2, i64 7, i1 false) #18 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(7) %4, ptr noundef nonnull align 1 dereferenceable(7) @.str.2, i64 7, i1 false) #19 br label %17 14: ; preds = %10 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(10) %4, ptr noundef nonnull align 1 dereferenceable(10) @.str.3, i64 10, i1 false) #18 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(10) %4, ptr noundef nonnull align 1 dereferenceable(10) @.str.3, i64 10, i1 false) #19 br label %17 15: ; preds = %10 @@ -142,9 +142,9 @@ define void @TraceLog(i32 noundef %0, ptr noundef %1, ...) local_unnamed_addr #1 br label %17 17: ; preds = %10, %16, %15, %14, %13, %12, %11 - %18 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #19 + %18 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #20 %19 = trunc i64 %18 to i32 - %20 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %4) #19 + %20 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %4) #20 %21 = getelementptr inbounds nuw i8, ptr %4, i64 %20 %22 = call i32 @llvm.umin.i32(i32 %19, i32 244) %23 = zext nneg i32 %22 to i64 @@ -153,7 +153,7 @@ define void @TraceLog(i32 noundef %0, ptr noundef %1, ...) local_unnamed_addr #1 %endptr = getelementptr inbounds i8, ptr %4, i64 %strlen store i16 10, ptr %endptr, align 1 %24 = load ptr, ptr @stdout, align 8, !noalias !3 - %25 = call i32 @vfprintf(ptr noundef %24, ptr noundef nonnull %4, ptr noundef nonnull %3) #18 + %25 = call i32 @vfprintf(ptr noundef %24, ptr noundef nonnull %4, ptr noundef nonnull %3) #19 %26 = load ptr, ptr @stdout, align 8 %27 = call i32 @fflush(ptr noundef %26) call void @llvm.va_end.p0(ptr nonnull %3) @@ -161,7 +161,7 @@ define void @TraceLog(i32 noundef %0, ptr noundef %1, ...) local_unnamed_addr #1 br i1 %28, label %29, label %30 29: ; preds = %17 - call void @exit(i32 noundef 1) #20 + call void @exit(i32 noundef 1) #21 unreachable 30: ; preds = %17 @@ -200,34 +200,34 @@ declare noundef i32 @fflush(ptr noundef captures(none)) local_unnamed_addr #7 ; Function Attrs: nofree noreturn nounwind declare void @exit(i32 noundef) local_unnamed_addr #8 -; Function Attrs: mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite) uwtable +; Function Attrs: mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite, errnomem: write) uwtable define noalias noundef ptr @MemAlloc(i32 noundef %0) local_unnamed_addr #9 { %2 = zext i32 %0 to i64 - %3 = tail call noalias ptr @calloc(i64 noundef %2, i64 noundef 1) #21 + %3 = tail call noalias ptr @calloc(i64 noundef %2, i64 noundef 1) #22 ret ptr %3 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #10 -; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable +; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable define noalias noundef ptr @MemRealloc(ptr noundef captures(none) %0, i32 noundef %1) local_unnamed_addr #11 { %3 = zext i32 %1 to i64 - %4 = tail call ptr @realloc(ptr noundef %0, i64 noundef %3) #22 + %4 = tail call ptr @realloc(ptr noundef %0, i64 noundef %3) #23 ret ptr %4 } -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #12 ; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable -define void @MemFree(ptr noundef captures(none) %0) local_unnamed_addr #11 { - tail call void @free(ptr noundef %0) #18 +define void @MemFree(ptr noundef captures(none) %0) local_unnamed_addr #13 { + tail call void @free(ptr noundef %0) #19 ret void } ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) -declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #13 +declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #14 ; Function Attrs: nounwind uwtable define ptr @LoadFileData(ptr noundef %0, ptr noundef initializes((0, 4)) %1) local_unnamed_addr #1 { @@ -241,7 +241,7 @@ define ptr @LoadFileData(ptr noundef %0, ptr noundef initializes((0, 4)) %1) loc br i1 %.not40, label %7, label %5 5: ; preds = %3 - %6 = tail call ptr %4(ptr noundef nonnull %0, ptr noundef nonnull %1) #18 + %6 = tail call ptr %4(ptr noundef nonnull %0, ptr noundef nonnull %1) #19 br label %32 7: ; preds = %3 @@ -259,7 +259,7 @@ define ptr @LoadFileData(ptr noundef %0, ptr noundef initializes((0, 4)) %1) loc 15: ; preds = %9 %16 = and i64 %11, 2147483647 - %17 = tail call noalias ptr @malloc(i64 noundef %16) #23 + %17 = tail call noalias ptr @malloc(i64 noundef %16) #24 %.not42 = icmp eq ptr %17, null br i1 %.not42, label %26, label %18 @@ -270,7 +270,7 @@ define ptr @LoadFileData(ptr noundef %0, ptr noundef initializes((0, 4)) %1) loc 21: ; preds = %18 tail call void (i32, ptr, ...) @TraceLog(i32 noundef 4, ptr noundef nonnull @.str.8, ptr noundef nonnull %0) - tail call void @free(ptr noundef nonnull %17) #18 + tail call void @free(ptr noundef nonnull %17) #19 br label %28 22: ; preds = %18 @@ -322,8 +322,8 @@ declare noundef i32 @fseek(ptr noundef captures(none), i64 noundef, i32 noundef) ; Function Attrs: nofree nounwind declare noundef i64 @ftell(ptr noundef captures(none)) local_unnamed_addr #7 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) -declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #14 +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) +declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #15 ; Function Attrs: nofree nounwind declare noundef i64 @fread(ptr noundef writeonly captures(none), i64 noundef, i64 noundef, ptr noundef captures(none)) local_unnamed_addr #7 @@ -332,8 +332,8 @@ declare noundef i64 @fread(ptr noundef writeonly captures(none), i64 noundef, i6 declare noundef i32 @fclose(ptr noundef captures(none)) local_unnamed_addr #7 ; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable -define void @UnloadFileData(ptr noundef captures(none) %0) local_unnamed_addr #11 { - tail call void @free(ptr noundef %0) #18 +define void @UnloadFileData(ptr noundef captures(none) %0) local_unnamed_addr #13 { + tail call void @free(ptr noundef %0) #19 ret void } @@ -348,7 +348,7 @@ define zeroext i1 @SaveFileData(ptr noundef %0, ptr noundef %1, i32 noundef %2) br i1 %.not24, label %8, label %6 6: ; preds = %4 - %7 = tail call zeroext i1 %5(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %2) #18 + %7 = tail call zeroext i1 %5(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %2) #19 br label %24 8: ; preds = %4 @@ -406,7 +406,7 @@ define noundef zeroext i1 @ExportDataAsCode(ptr noundef readonly captures(none) %5 = mul nsw i32 %1, 6 %6 = add nsw i32 %5, 2000 %7 = sext i32 %6 to i64 - %8 = tail call noalias ptr @calloc(i64 noundef %7, i64 noundef 1) #21 + %8 = tail call noalias ptr @calloc(i64 noundef %7, i64 noundef 1) #22 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(90) %8, ptr noundef nonnull align 1 dereferenceable(90) @.str.19, i64 89, i1 false) %9 = getelementptr inbounds nuw i8, ptr %8, i64 89 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(90) %9, ptr noundef nonnull align 1 dereferenceable(90) @.str.20, i64 89, i1 false) @@ -428,19 +428,19 @@ define noundef zeroext i1 @ExportDataAsCode(ptr noundef readonly captures(none) tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(91) %17, ptr noundef nonnull align 1 dereferenceable(91) @.str.25, i64 91, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %4) call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(256) %4, i8 0, i64 256, i1 false) - %18 = tail call ptr @GetFileNameWithoutExt(ptr noundef %2) #18 - %19 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %4, ptr noundef nonnull dereferenceable(1) %18) #18 + %18 = tail call ptr @GetFileNameWithoutExt(ptr noundef %2) #19 + %19 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %4, ptr noundef nonnull dereferenceable(1) %18) #19 %20 = load i8, ptr %4, align 16 %.not76 = icmp eq i8 %20, 0 br i1 %.not76, label %._crit_edge, label %.lr.ph ._crit_edge: ; preds = %35, %3 %21 = getelementptr inbounds nuw i8, ptr %8, i64 891 - %22 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %21, ptr noundef nonnull dereferenceable(1) @.str.26, ptr noundef nonnull %4, i32 noundef %1) #18 + %22 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %21, ptr noundef nonnull dereferenceable(1) @.str.26, ptr noundef nonnull %4, i32 noundef %1) #19 %23 = add nsw i32 %22, 891 %24 = sext i32 %23 to i64 %25 = getelementptr inbounds i8, ptr %8, i64 %24 - %26 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %25, ptr noundef nonnull dereferenceable(1) @.str.27, ptr noundef nonnull %4, ptr noundef nonnull %4) #18 + %26 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %25, ptr noundef nonnull dereferenceable(1) @.str.27, ptr noundef nonnull %4, ptr noundef nonnull %4) #19 %27 = add nsw i32 %23, %26 %28 = add i32 %1, -1 %29 = icmp sgt i32 %1, 1 @@ -491,9 +491,9 @@ define noundef zeroext i1 @ExportDataAsCode(ptr noundef readonly captures(none) %41 = getelementptr inbounds i8, ptr %0, i64 %40 %42 = load i8, ptr %41, align 1 %43 = zext i8 %42 to i32 - %44 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %39, ptr noundef nonnull dereferenceable(1) @.str.30, i32 noundef %43) #18 + %44 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %39, ptr noundef nonnull dereferenceable(1) @.str.30, i32 noundef %43) #19 %45 = call zeroext i1 @SaveFileText(ptr noundef %2, ptr noundef nonnull %8) - call void @free(ptr noundef nonnull %8) #18 + call void @free(ptr noundef nonnull %8) #19 br i1 %45, label %57, label %58 .lr.ph81: ; preds = %.lr.ph81.preheader, %.lr.ph81 @@ -508,7 +508,7 @@ define noundef zeroext i1 @ExportDataAsCode(ptr noundef readonly captures(none) %52 = getelementptr inbounds nuw i8, ptr %0, i64 %indvars.iv84 %53 = load i8, ptr %52, align 1 %54 = zext i8 %53 to i32 - %55 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %47, ptr noundef nonnull dereferenceable(1) %51, i32 noundef %54) #18 + %55 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %47, ptr noundef nonnull dereferenceable(1) %51, i32 noundef %54) #19 %56 = add nsw i32 %55, %.07278 %indvars.iv.next85 = add nuw nsw i64 %indvars.iv84, 1 %exitcond.not = icmp eq i64 %indvars.iv.next85, %wide.trip.count @@ -530,7 +530,7 @@ define noundef zeroext i1 @ExportDataAsCode(ptr noundef readonly captures(none) ; Function Attrs: nofree nounwind declare noundef i32 @sprintf(ptr noalias noundef writeonly captures(none), ptr noundef readonly captures(none), ...) local_unnamed_addr #7 -declare ptr @GetFileNameWithoutExt(ptr noundef) local_unnamed_addr #15 +declare ptr @GetFileNameWithoutExt(ptr noundef) local_unnamed_addr #16 ; Function Attrs: nounwind uwtable define zeroext i1 @SaveFileText(ptr noundef %0, ptr noundef %1) local_unnamed_addr #1 { @@ -543,7 +543,7 @@ define zeroext i1 @SaveFileText(ptr noundef %0, ptr noundef %1) local_unnamed_ad br i1 %.not18, label %7, label %5 5: ; preds = %3 - %6 = tail call zeroext i1 %4(ptr noundef nonnull %0, ptr noundef %1) #18 + %6 = tail call zeroext i1 %4(ptr noundef nonnull %0, ptr noundef %1) #19 br label %19 7: ; preds = %3 @@ -552,7 +552,7 @@ define zeroext i1 @SaveFileText(ptr noundef %0, ptr noundef %1) local_unnamed_ad br i1 %.not19, label %17, label %9 9: ; preds = %7 - %10 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %8, ptr noundef nonnull @.str.38, ptr noundef %1) #18 + %10 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %8, ptr noundef nonnull @.str.38, ptr noundef %1) #19 %11 = icmp slt i32 %10, 0 br i1 %11, label %12, label %13 @@ -593,7 +593,7 @@ define ptr @LoadFileText(ptr noundef %0) local_unnamed_addr #1 { br i1 %.not34, label %6, label %4 4: ; preds = %2 - %5 = tail call ptr %3(ptr noundef nonnull %0) #18 + %5 = tail call ptr %3(ptr noundef nonnull %0) #19 br label %35 6: ; preds = %2 @@ -612,7 +612,7 @@ define ptr @LoadFileText(ptr noundef %0) local_unnamed_addr #1 { 13: ; preds = %8 %14 = add i64 %10, 1 %15 = and i64 %14, 4294967295 - %16 = tail call noalias ptr @malloc(i64 noundef %15) #23 + %16 = tail call noalias ptr @malloc(i64 noundef %15) #24 %.not37 = icmp eq ptr %16, null br i1 %.not37, label %29, label %17 @@ -626,7 +626,7 @@ define ptr @LoadFileText(ptr noundef %0) local_unnamed_addr #1 { 22: ; preds = %17 %23 = add i64 %19, 1 %24 = and i64 %23, 4294967295 - %25 = tail call ptr @realloc(ptr noundef nonnull %16, i64 noundef %24) #22 + %25 = tail call ptr @realloc(ptr noundef nonnull %16, i64 noundef %24) #23 br label %26 26: ; preds = %22, %17 @@ -664,8 +664,8 @@ define ptr @LoadFileText(ptr noundef %0) local_unnamed_addr #1 { } ; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable -define void @UnloadFileText(ptr noundef captures(none) %0) local_unnamed_addr #11 { - tail call void @free(ptr noundef %0) #18 +define void @UnloadFileText(ptr noundef captures(none) %0) local_unnamed_addr #13 { + tail call void @free(ptr noundef %0) #19 ret void } @@ -676,13 +676,13 @@ declare noundef i32 @fprintf(ptr noundef captures(none), ptr noundef readonly ca declare noundef i32 @vfprintf(ptr noundef captures(none), ptr noundef readonly captures(none), ptr noundef) local_unnamed_addr #7 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(ptr captures(none)) #16 +declare void @llvm.lifetime.start.p0(ptr captures(none)) #17 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(ptr captures(none)) #16 +declare void @llvm.lifetime.end.p0(ptr captures(none)) #17 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umin.i32(i32, i32) #17 +declare i32 @llvm.umin.i32(i32, i32) #18 attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: none, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -693,21 +693,22 @@ attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argm attributes #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #7 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { nofree noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #14 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #15 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #16 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #17 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #18 = { nounwind } -attributes #19 = { nounwind willreturn memory(read) } -attributes #20 = { cold noreturn nounwind } -attributes #21 = { nounwind allocsize(0,1) } -attributes #22 = { nounwind allocsize(1) } -attributes #23 = { nounwind allocsize(0) } +attributes #9 = { mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite, errnomem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #12 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #13 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #14 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #15 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #16 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #17 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +attributes #18 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #19 = { nounwind } +attributes #20 = { nounwind willreturn memory(read) } +attributes #21 = { cold noreturn nounwind } +attributes #22 = { nounwind allocsize(0,1) } +attributes #23 = { nounwind allocsize(1) } +attributes #24 = { nounwind allocsize(0) } !llvm.module.flags = !{!0, !1, !2} diff --git a/bench/redis/optimized/fpconv.ll b/bench/redis/optimized/fpconv.ll index b26637f32c4..c3ff14557b0 100644 --- a/bench/redis/optimized/fpconv.ll +++ b/bench/redis/optimized/fpconv.ll @@ -21,7 +21,7 @@ define dso_local double @fpconv_strtod(ptr noundef %0, ptr noundef captures(none 7: ; preds = %2 %8 = tail call double @strtod(ptr noundef %0, ptr noundef %1) #11 - br label %42 + br label %43 .preheader: ; preds = %2, %valid_number_character.exit.thread.i %.0.i = phi ptr [ %14, %valid_number_character.exit.thread.i ], [ %0, %2 ] @@ -57,7 +57,7 @@ strtod_buffer_size.exit: ; preds = %valid_number_charac 19: ; preds = %strtod_buffer_size.exit store ptr %0, ptr %1, align 8, !tbaa !9 - br label %42 + br label %43 20: ; preds = %strtod_buffer_size.exit %21 = icmp sgt i32 %18, 31 @@ -85,28 +85,29 @@ strtod_buffer_size.exit: ; preds = %valid_number_charac store i8 0, ptr %31, align 1, !tbaa !4 %32 = call ptr @strchr(ptr noundef nonnull dereferenceable(1) %.024, i32 noundef 46) #15 %.not29 = icmp eq ptr %32, null - br i1 %.not29, label %34, label %33 + br i1 %.not29, label %35, label %33 33: ; preds = %29 - store i8 %5, ptr %32, align 1, !tbaa !4 - br label %34 - -34: ; preds = %33, %29 - %35 = call double @strtod(ptr noundef nonnull %.024, ptr noundef nonnull %4) #11 - %36 = load ptr, ptr %4, align 8, !tbaa !9 - %37 = ptrtoint ptr %36 to i64 - %38 = ptrtoint ptr %.024 to i64 - %39 = sub i64 %37, %38 - %40 = getelementptr inbounds i8, ptr %0, i64 %39 - store ptr %40, ptr %1, align 8, !tbaa !9 - br i1 %21, label %41, label %42 - -41: ; preds = %34 + %34 = load i8, ptr @locale_decimal_point, align 1, !tbaa !4 + store i8 %34, ptr %32, align 1, !tbaa !4 + br label %35 + +35: ; preds = %33, %29 + %36 = call double @strtod(ptr noundef nonnull %.024, ptr noundef nonnull %4) #11 + %37 = load ptr, ptr %4, align 8, !tbaa !9 + %38 = ptrtoint ptr %37 to i64 + %39 = ptrtoint ptr %.024 to i64 + %40 = sub i64 %38, %39 + %41 = getelementptr inbounds i8, ptr %0, i64 %40 + store ptr %41, ptr %1, align 8, !tbaa !9 + br i1 %21, label %42, label %43 + +42: ; preds = %35 call void @free(ptr noundef nonnull %.024) #11 - br label %42 + br label %43 -42: ; preds = %34, %41, %19, %7 - %.0 = phi double [ %8, %7 ], [ 0.000000e+00, %19 ], [ %35, %41 ], [ %35, %34 ] +43: ; preds = %35, %42, %19, %7 + %.0 = phi double [ %8, %7 ], [ 0.000000e+00, %19 ], [ %36, %42 ], [ %36, %35 ] call void @llvm.lifetime.end.p0(ptr nonnull %4) call void @llvm.lifetime.end.p0(ptr nonnull %3) ret double %.0 @@ -115,7 +116,7 @@ strtod_buffer_size.exit: ; preds = %valid_number_charac ; Function Attrs: mustprogress nocallback nofree nounwind willreturn declare double @strtod(ptr noundef readonly, ptr noundef captures(none)) local_unnamed_addr #1 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #2 ; Function Attrs: cold nofree noreturn nounwind @@ -239,7 +240,7 @@ declare noundef i64 @fwrite(ptr noundef readonly captures(none), i64 noundef, i6 attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress nocallback nofree nounwind willreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { cold nofree noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/ruby/optimized/util.ll b/bench/ruby/optimized/util.ll index 4bce676ec76..336bf347619 100644 --- a/bench/ruby/optimized/util.ll +++ b/bench/ruby/optimized/util.ll @@ -5884,7 +5884,7 @@ define internal fastcc noundef ptr @nrv_alloc(ptr noundef readonly captures(none ret ptr %4 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #13 ; Function Attrs: nounwind sspstrong uwtable @@ -6261,7 +6261,7 @@ cmp.exit.thread84: ; preds = %58, %cmp.exit, %.cr } ; Function Attrs: nofree nounwind sspstrong uwtable -define hidden noundef ptr @ruby_hdtoa(double noundef %0, ptr noundef readonly captures(none) %1, i32 noundef %2, ptr noundef writeonly captures(none) initializes((0, 4)) %3, ptr noundef writeonly captures(none) initializes((0, 4)) %4, ptr noundef writeonly captures(address_is_null) %5) local_unnamed_addr #11 { +define hidden noundef ptr @ruby_hdtoa(double noundef %0, ptr noundef readonly captures(none) %1, i32 noundef %2, ptr noundef captures(none) initializes((0, 4)) %3, ptr noundef writeonly captures(none) initializes((0, 4)) %4, ptr noundef writeonly captures(address_is_null) %5) local_unnamed_addr #11 { %7 = bitcast double %0 to i64 %.not = icmp slt i64 %7, 0 %8 = tail call double @llvm.fabs.f64(double %0) @@ -6335,7 +6335,7 @@ define hidden noundef ptr @ruby_hdtoa(double noundef %0, ptr noundef readonly ca ._crit_edge102: ; preds = %21 %.pre103 = bitcast double %.sroa.0.1 to i64 - br label %46 + br label %47 32: ; preds = %21 %33 = shl nuw nsw i32 %spec.store.select, 2 @@ -6356,22 +6356,23 @@ define hidden noundef ptr @ruby_hdtoa(double noundef %0, ptr noundef readonly ca %42 = bitcast double %41 to i64 %sum.shift86 = lshr i64 %42, 52 %43 = trunc nuw nsw i64 %sum.shift86 to i32 - %reass.sub = sub nsw i32 %26, %33 + %reass.sub = sub nsw i32 %43, %33 %44 = add nsw i32 %reass.sub, -967 - %45 = add nsw i32 %44, %43 - store i32 %45, ptr %3, align 4, !tbaa !15 - br label %46 + %45 = load i32, ptr %3, align 4, !tbaa !15 + %46 = add i32 %44, %45 + store i32 %46, ptr %3, align 4, !tbaa !15 + br label %47 -46: ; preds = %._crit_edge102, %32 +47: ; preds = %._crit_edge102, %32 %.pre-phi104 = phi i64 [ %.pre103, %._crit_edge102 ], [ %42, %32 ] store i8 49, ptr %31, align 1, !tbaa !7 - %47 = zext nneg i32 %28 to i64 - %48 = getelementptr i8, ptr %31, i64 %47 + %48 = zext nneg i32 %28 to i64 + %49 = getelementptr i8, ptr %31, i64 %48 %.08196 = getelementptr i8, ptr %31, i64 1 - %49 = icmp ult ptr %.08196, %48 - br i1 %49, label %.lr.ph.preheader, label %._crit_edge + %50 = icmp ult ptr %.08196, %49 + br i1 %50, label %.lr.ph.preheader, label %._crit_edge -.lr.ph.preheader: ; preds = %46 +.lr.ph.preheader: ; preds = %47 %.sroa.0.0.extract.trunc = trunc i64 %.pre-phi104 to i32 %.sroa.0.4.extract.shift47 = lshr i64 %.pre-phi104, 32 %.sroa.0.4.extract.trunc48 = trunc nuw i64 %.sroa.0.4.extract.shift47 to i32 @@ -6379,47 +6380,47 @@ define hidden noundef ptr @ruby_hdtoa(double noundef %0, ptr noundef readonly ca .lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph %.08199 = phi ptr [ %.081, %.lr.ph ], [ %.08196, %.lr.ph.preheader ] - %.07998 = phi i32 [ %56, %.lr.ph ], [ %.sroa.0.0.extract.trunc, %.lr.ph.preheader ] - %.08097 = phi i32 [ %55, %.lr.ph ], [ %.sroa.0.4.extract.trunc48, %.lr.ph.preheader ] - %50 = lshr i32 %.08097, 16 - %51 = and i32 %50, 15 - %52 = zext nneg i32 %51 to i64 - %53 = getelementptr i8, ptr %1, i64 %52 - %54 = load i8, ptr %53, align 1, !tbaa !7 - store i8 %54, ptr %.08199, align 1, !tbaa !7 - %55 = tail call i32 @llvm.fshl.i32(i32 %.08097, i32 %.07998, i32 4) - %56 = shl i32 %.07998, 4 + %.07998 = phi i32 [ %57, %.lr.ph ], [ %.sroa.0.0.extract.trunc, %.lr.ph.preheader ] + %.08097 = phi i32 [ %56, %.lr.ph ], [ %.sroa.0.4.extract.trunc48, %.lr.ph.preheader ] + %51 = lshr i32 %.08097, 16 + %52 = and i32 %51, 15 + %53 = zext nneg i32 %52 to i64 + %54 = getelementptr i8, ptr %1, i64 %53 + %55 = load i8, ptr %54, align 1, !tbaa !7 + store i8 %55, ptr %.08199, align 1, !tbaa !7 + %56 = tail call i32 @llvm.fshl.i32(i32 %.08097, i32 %.07998, i32 4) + %57 = shl i32 %.07998, 4 %.081 = getelementptr i8, ptr %.08199, i64 1 - %exitcond.not = icmp eq ptr %.081, %48 + %exitcond.not = icmp eq ptr %.081, %49 br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !83 -._crit_edge: ; preds = %.lr.ph, %46 - %57 = icmp slt i32 %spec.store.select, 0 - br i1 %57, label %.preheader, label %.loopexit +._crit_edge: ; preds = %.lr.ph, %47 + %58 = icmp slt i32 %spec.store.select, 0 + br i1 %58, label %.preheader, label %.loopexit .preheader: ; preds = %._crit_edge, %.preheader - %.1 = phi i32 [ %58, %.preheader ], [ 15, %._crit_edge ] - %58 = add i32 %.1, -1 - %59 = sext i32 %58 to i64 - %60 = getelementptr i8, ptr %31, i64 %59 - %61 = load i8, ptr %60, align 1, !tbaa !7 - %62 = icmp eq i8 %61, 48 - br i1 %62, label %.preheader, label %.loopexit, !llvm.loop !84 + %.1 = phi i32 [ %59, %.preheader ], [ 15, %._crit_edge ] + %59 = add i32 %.1, -1 + %60 = sext i32 %59 to i64 + %61 = getelementptr i8, ptr %31, i64 %60 + %62 = load i8, ptr %61, align 1, !tbaa !7 + %63 = icmp eq i8 %62, 48 + br i1 %63, label %.preheader, label %.loopexit, !llvm.loop !84 .loopexit: ; preds = %.preheader, %._crit_edge %.078 = phi i32 [ %spec.store.select, %._crit_edge ], [ %.1, %.preheader ] - %63 = sext i32 %.078 to i64 - %64 = getelementptr i8, ptr %31, i64 %63 - store i8 0, ptr %64, align 1, !tbaa !7 + %64 = sext i32 %.078 to i64 + %65 = getelementptr i8, ptr %31, i64 %64 + store i8 0, ptr %65, align 1, !tbaa !7 %.not87 = icmp eq ptr %5, null - br i1 %.not87, label %nrv_alloc.exit, label %65 + br i1 %.not87, label %nrv_alloc.exit, label %66 -65: ; preds = %.loopexit - store ptr %64, ptr %5, align 8, !tbaa !19 +66: ; preds = %.loopexit + store ptr %65, ptr %5, align 8, !tbaa !19 br label %nrv_alloc.exit -nrv_alloc.exit: ; preds = %20, %.lr.ph.i88, %11, %._crit_edge.i, %.loopexit, %65, %14 - %.0 = phi ptr [ %15, %14 ], [ %31, %65 ], [ %31, %.loopexit ], [ %10, %._crit_edge.i ], [ %10, %11 ], [ %18, %.lr.ph.i88 ], [ %18, %20 ] +nrv_alloc.exit: ; preds = %20, %.lr.ph.i88, %11, %._crit_edge.i, %.loopexit, %66, %14 + %.0 = phi ptr [ %15, %14 ], [ %31, %66 ], [ %31, %.loopexit ], [ %10, %._crit_edge.i ], [ %10, %11 ], [ %18, %.lr.ph.i88 ], [ %18, %20 ] ret ptr %.0 } @@ -6478,7 +6479,7 @@ attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(errn attributes #10 = { mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } attributes #11 = { nofree nounwind sspstrong uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #12 = { nofree nounwind sspstrong memory(write, argmem: readwrite, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #13 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #14 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #15 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #16 = { nocallback nofree nounwind willreturn memory(argmem: read) } diff --git a/bench/sdl/optimized/SDL_malloc.ll b/bench/sdl/optimized/SDL_malloc.ll index fe9bb375265..8f4bbcb679f 100644 --- a/bench/sdl/optimized/SDL_malloc.ll +++ b/bench/sdl/optimized/SDL_malloc.ll @@ -50,32 +50,32 @@ define hidden void @SDL_GetOriginalMemoryFunctions_REAL(ptr noundef writeonly ca ret void } -; Function Attrs: mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite) uwtable +; Function Attrs: mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite, errnomem: write) uwtable define internal noalias noundef ptr @real_malloc(i64 noundef %0) #1 { - %2 = tail call noalias ptr @malloc(i64 noundef %0) #14 + %2 = tail call noalias ptr @malloc(i64 noundef %0) #15 ret ptr %2 } -; Function Attrs: mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite) uwtable +; Function Attrs: mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite, errnomem: write) uwtable define internal noalias noundef ptr @real_calloc(i64 noundef %0, i64 noundef %1) #1 { - %3 = tail call noalias ptr @calloc(i64 noundef %0, i64 noundef %1) #15 + %3 = tail call noalias ptr @calloc(i64 noundef %0, i64 noundef %1) #16 ret ptr %3 } -; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable +; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable define internal noalias noundef ptr @real_realloc(ptr noundef captures(none) %0, i64 noundef %1) #2 { - %3 = tail call ptr @realloc(ptr noundef %0, i64 noundef %1) #16 + %3 = tail call ptr @realloc(ptr noundef %0, i64 noundef %1) #17 ret ptr %3 } ; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable -define internal void @real_free(ptr noundef captures(none) %0) #2 { - tail call void @free(ptr noundef %0) #17 +define internal void @real_free(ptr noundef captures(none) %0) #3 { + tail call void @free(ptr noundef %0) #18 ret void } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, argmem: write, inaccessiblemem: none) uwtable -define hidden void @SDL_GetMemoryFunctions_REAL(ptr noundef writeonly captures(address_is_null) %0, ptr noundef writeonly captures(address_is_null) %1, ptr noundef writeonly captures(address_is_null) %2, ptr noundef writeonly captures(address_is_null) %3) local_unnamed_addr #3 { +define hidden void @SDL_GetMemoryFunctions_REAL(ptr noundef writeonly captures(address_is_null) %0, ptr noundef writeonly captures(address_is_null) %1, ptr noundef writeonly captures(address_is_null) %2, ptr noundef writeonly captures(address_is_null) %3) local_unnamed_addr #4 { %.not = icmp eq ptr %0, null br i1 %.not, label %7, label %5 @@ -116,12 +116,12 @@ define hidden void @SDL_GetMemoryFunctions_REAL(ptr noundef writeonly captures(a } ; Function Attrs: nounwind uwtable -define hidden zeroext i1 @SDL_SetMemoryFunctions_REAL(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3) local_unnamed_addr #4 { +define hidden zeroext i1 @SDL_SetMemoryFunctions_REAL(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3) local_unnamed_addr #5 { %.not = icmp eq ptr %0, null br i1 %.not, label %5, label %7 5: ; preds = %4 - %6 = tail call zeroext i1 (ptr, ...) @SDL_SetError_REAL(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #17 + %6 = tail call zeroext i1 (ptr, ...) @SDL_SetError_REAL(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #18 br label %17 7: ; preds = %4 @@ -129,7 +129,7 @@ define hidden zeroext i1 @SDL_SetMemoryFunctions_REAL(ptr noundef %0, ptr nounde br i1 %.not13, label %8, label %10 8: ; preds = %7 - %9 = tail call zeroext i1 (ptr, ...) @SDL_SetError_REAL(ptr noundef nonnull @.str, ptr noundef nonnull @.str.2) #17 + %9 = tail call zeroext i1 (ptr, ...) @SDL_SetError_REAL(ptr noundef nonnull @.str, ptr noundef nonnull @.str.2) #18 br label %17 10: ; preds = %7 @@ -137,7 +137,7 @@ define hidden zeroext i1 @SDL_SetMemoryFunctions_REAL(ptr noundef %0, ptr nounde br i1 %.not14, label %11, label %13 11: ; preds = %10 - %12 = tail call zeroext i1 (ptr, ...) @SDL_SetError_REAL(ptr noundef nonnull @.str, ptr noundef nonnull @.str.3) #17 + %12 = tail call zeroext i1 (ptr, ...) @SDL_SetError_REAL(ptr noundef nonnull @.str, ptr noundef nonnull @.str.3) #18 br label %17 13: ; preds = %10 @@ -145,7 +145,7 @@ define hidden zeroext i1 @SDL_SetMemoryFunctions_REAL(ptr noundef %0, ptr nounde br i1 %.not15, label %14, label %16 14: ; preds = %13 - %15 = tail call zeroext i1 (ptr, ...) @SDL_SetError_REAL(ptr noundef nonnull @.str, ptr noundef nonnull @.str.4) #17 + %15 = tail call zeroext i1 (ptr, ...) @SDL_SetError_REAL(ptr noundef nonnull @.str, ptr noundef nonnull @.str.4) #18 br label %17 16: ; preds = %13 @@ -160,45 +160,45 @@ define hidden zeroext i1 @SDL_SetMemoryFunctions_REAL(ptr noundef %0, ptr nounde ret i1 %.0 } -declare zeroext i1 @SDL_SetError_REAL(ptr noundef, ...) local_unnamed_addr #5 +declare zeroext i1 @SDL_SetError_REAL(ptr noundef, ...) local_unnamed_addr #6 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable -define hidden noundef i32 @SDL_GetNumAllocations_REAL() local_unnamed_addr #6 { +define hidden noundef i32 @SDL_GetNumAllocations_REAL() local_unnamed_addr #7 { ret i32 -1 } ; Function Attrs: nounwind uwtable -define hidden noalias ptr @SDL_malloc_REAL(i64 noundef %0) local_unnamed_addr #4 { +define hidden noalias ptr @SDL_malloc_REAL(i64 noundef %0) local_unnamed_addr #5 { %spec.store.select = tail call i64 @llvm.umax.i64(i64 %0, i64 1) %2 = load ptr, ptr @s_mem.0, align 8 - %3 = tail call ptr %2(i64 noundef %spec.store.select) #17 + %3 = tail call ptr %2(i64 noundef %spec.store.select) #18 %.not = icmp eq ptr %3, null br i1 %.not, label %4, label %6 4: ; preds = %1 - %5 = tail call zeroext i1 @SDL_OutOfMemory_REAL() #17 + %5 = tail call zeroext i1 @SDL_OutOfMemory_REAL() #18 br label %6 6: ; preds = %1, %4 ret ptr %3 } -declare zeroext i1 @SDL_OutOfMemory_REAL() local_unnamed_addr #5 +declare zeroext i1 @SDL_OutOfMemory_REAL() local_unnamed_addr #6 ; Function Attrs: nounwind allocsize(0,1) uwtable -define hidden noalias ptr @SDL_calloc_REAL(i64 noundef %0, i64 noundef %1) local_unnamed_addr #7 { +define hidden noalias ptr @SDL_calloc_REAL(i64 noundef %0, i64 noundef %1) local_unnamed_addr #8 { %3 = icmp ne i64 %0, 0 %4 = icmp ne i64 %1, 0 %or.cond = and i1 %3, %4 %spec.select = select i1 %or.cond, i64 %1, i64 1 %spec.select9 = select i1 %or.cond, i64 %0, i64 1 %5 = load ptr, ptr @s_mem.1, align 8 - %6 = tail call ptr %5(i64 noundef %spec.select9, i64 noundef %spec.select) #17 + %6 = tail call ptr %5(i64 noundef %spec.select9, i64 noundef %spec.select) #18 %.not = icmp eq ptr %6, null br i1 %.not, label %7, label %9 7: ; preds = %2 - %8 = tail call zeroext i1 @SDL_OutOfMemory_REAL() #17 + %8 = tail call zeroext i1 @SDL_OutOfMemory_REAL() #18 br label %9 9: ; preds = %2, %7 @@ -206,15 +206,15 @@ define hidden noalias ptr @SDL_calloc_REAL(i64 noundef %0, i64 noundef %1) local } ; Function Attrs: nounwind allocsize(1) uwtable -define hidden ptr @SDL_realloc_REAL(ptr noundef %0, i64 noundef %1) local_unnamed_addr #8 { +define hidden ptr @SDL_realloc_REAL(ptr noundef %0, i64 noundef %1) local_unnamed_addr #9 { %spec.store.select = tail call i64 @llvm.umax.i64(i64 %1, i64 1) %3 = load ptr, ptr @s_mem.2, align 8 - %4 = tail call ptr %3(ptr noundef %0, i64 noundef %spec.store.select) #17 + %4 = tail call ptr %3(ptr noundef %0, i64 noundef %spec.store.select) #18 %.not = icmp eq ptr %4, null br i1 %.not, label %5, label %7 5: ; preds = %2 - %6 = tail call zeroext i1 @SDL_OutOfMemory_REAL() #17 + %6 = tail call zeroext i1 @SDL_OutOfMemory_REAL() #18 br label %7 7: ; preds = %5, %2 @@ -222,52 +222,53 @@ define hidden ptr @SDL_realloc_REAL(ptr noundef %0, i64 noundef %1) local_unname } ; Function Attrs: nounwind uwtable -define hidden void @SDL_free_REAL(ptr noundef %0) local_unnamed_addr #4 { +define hidden void @SDL_free_REAL(ptr noundef %0) local_unnamed_addr #5 { %.not = icmp eq ptr %0, null br i1 %.not, label %4, label %2 2: ; preds = %1 %3 = load ptr, ptr @s_mem.3, align 8 - tail call void %3(ptr noundef nonnull %0) #17 + tail call void %3(ptr noundef nonnull %0) #18 br label %4 4: ; preds = %1, %2 ret void } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) -declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #9 +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) +declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #10 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) -declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #10 +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) +declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #11 -; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) -declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #11 +; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) +declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #12 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) -declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #12 +declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #13 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umax.i64(i64, i64) #13 +declare i64 @llvm.umax.i64(i64, i64) #14 attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #1 = { mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #2 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, argmem: write, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #6 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { nounwind allocsize(0,1) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { nounwind allocsize(1) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #14 = { nounwind allocsize(0) } -attributes #15 = { nounwind allocsize(0,1) } -attributes #16 = { nounwind allocsize(1) } -attributes #17 = { nounwind } +attributes #1 = { mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite, errnomem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, argmem: write, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { nounwind allocsize(0,1) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { nounwind allocsize(1) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #12 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #13 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #14 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #15 = { nounwind allocsize(0) } +attributes #16 = { nounwind allocsize(0,1) } +attributes #17 = { nounwind allocsize(1) } +attributes #18 = { nounwind } !llvm.module.flags = !{!0, !1, !2} diff --git a/bench/sundials/optimized/arkode_lsrkstep.ll b/bench/sundials/optimized/arkode_lsrkstep.ll index 8916ec89e42..2b041c52e15 100644 --- a/bench/sundials/optimized/arkode_lsrkstep.ll +++ b/bench/sundials/optimized/arkode_lsrkstep.ll @@ -545,7 +545,7 @@ define range(i32 0, 2) i32 @lsrkStep_CheckNVector(ptr noundef readonly captures( declare ptr @arkCreate(ptr noundef) local_unnamed_addr #1 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #4 declare void @ARKodeFree(ptr noundef) local_unnamed_addr #1 @@ -559,12 +559,12 @@ define range(i32 -49, 1) i32 @lsrkStep_Init(ptr noundef %0, double %1, i32 nound lsrkStep_AccessStepMem.exit: ; preds = %3 tail call void (ptr, i32, i32, ptr, ptr, ptr, ...) @arkProcessError(ptr noundef nonnull %0, i32 noundef -21, i32 noundef 2160, ptr noundef nonnull @__func__.lsrkStep_Init, ptr noundef nonnull @.str, ptr noundef nonnull @.str.39) #13 - br label %56 + br label %60 7: ; preds = %3 %8 = add i32 %2, -1 %or.cond = icmp ult i32 %8, 2 - br i1 %or.cond, label %56, label %9 + br i1 %or.cond, label %60, label %9 9: ; preds = %7 %10 = getelementptr inbounds nuw i8, ptr %0, i64 768 @@ -599,13 +599,13 @@ lsrkStep_AccessStepMem.exit: ; preds = %3 25: ; preds = %21 tail call void (ptr, i32, i32, ptr, ptr, ptr, ...) @arkProcessError(ptr noundef nonnull %0, i32 noundef -49, i32 noundef 339, ptr noundef nonnull @__func__.lsrkStep_Init, ptr noundef nonnull @.str, ptr noundef nonnull @.str.10) #13 - br label %56 + br label %60 26: ; preds = %21, %18 %27 = getelementptr inbounds nuw i8, ptr %5, i64 144 %28 = load ptr, ptr %27, align 8, !tbaa !17 %29 = icmp eq ptr %28, null - br i1 %29, label %30, label %40 + br i1 %29, label %30, label %42 30: ; preds = %26 %31 = getelementptr inbounds nuw i8, ptr %5, i64 160 @@ -614,44 +614,48 @@ lsrkStep_AccessStepMem.exit: ; preds = %3 %34 = tail call noalias ptr @calloc(i64 noundef %33, i64 noundef 8) #14 store ptr %34, ptr %27, align 8, !tbaa !17 %35 = icmp eq ptr %34, null - br i1 %35, label %56, label %36 + br i1 %35, label %60, label %36 36: ; preds = %30 - %37 = getelementptr inbounds nuw i8, ptr %0, i64 872 - %38 = load i64, ptr %37, align 8, !tbaa !22 - %39 = add nsw i64 %38, %33 - store i64 %39, ptr %37, align 8, !tbaa !22 - br label %40 - -40: ; preds = %36, %26 - %41 = getelementptr inbounds nuw i8, ptr %5, i64 152 - %42 = load ptr, ptr %41, align 8, !tbaa !23 - %43 = icmp eq ptr %42, null - br i1 %43, label %44, label %54 - -44: ; preds = %40 - %45 = getelementptr inbounds nuw i8, ptr %5, i64 160 - %46 = load i32, ptr %45, align 8, !tbaa !21 - %47 = sext i32 %46 to i64 - %48 = tail call noalias ptr @calloc(i64 noundef %47, i64 noundef 8) #14 - store ptr %48, ptr %41, align 8, !tbaa !23 - %49 = icmp eq ptr %48, null - br i1 %49, label %56, label %50 - -50: ; preds = %44 - %51 = getelementptr inbounds nuw i8, ptr %0, i64 880 - %52 = load i64, ptr %51, align 8, !tbaa !24 - %53 = add nsw i64 %52, %47 - store i64 %53, ptr %51, align 8, !tbaa !24 - br label %54 - -54: ; preds = %50, %40 - %55 = getelementptr inbounds nuw i8, ptr %0, i64 980 - store i32 1, ptr %55, align 4, !tbaa !61 - br label %56 - -56: ; preds = %lsrkStep_AccessStepMem.exit, %44, %30, %7, %54, %25 - %.0 = phi i32 [ 0, %54 ], [ -49, %25 ], [ -21, %lsrkStep_AccessStepMem.exit ], [ 0, %7 ], [ -20, %30 ], [ -20, %44 ] + %37 = load i32, ptr %31, align 8, !tbaa !21 + %38 = sext i32 %37 to i64 + %39 = getelementptr inbounds nuw i8, ptr %0, i64 872 + %40 = load i64, ptr %39, align 8, !tbaa !22 + %41 = add nsw i64 %40, %38 + store i64 %41, ptr %39, align 8, !tbaa !22 + br label %42 + +42: ; preds = %36, %26 + %43 = getelementptr inbounds nuw i8, ptr %5, i64 152 + %44 = load ptr, ptr %43, align 8, !tbaa !23 + %45 = icmp eq ptr %44, null + br i1 %45, label %46, label %58 + +46: ; preds = %42 + %47 = getelementptr inbounds nuw i8, ptr %5, i64 160 + %48 = load i32, ptr %47, align 8, !tbaa !21 + %49 = sext i32 %48 to i64 + %50 = tail call noalias ptr @calloc(i64 noundef %49, i64 noundef 8) #14 + store ptr %50, ptr %43, align 8, !tbaa !23 + %51 = icmp eq ptr %50, null + br i1 %51, label %60, label %52 + +52: ; preds = %46 + %53 = load i32, ptr %47, align 8, !tbaa !21 + %54 = sext i32 %53 to i64 + %55 = getelementptr inbounds nuw i8, ptr %0, i64 880 + %56 = load i64, ptr %55, align 8, !tbaa !24 + %57 = add nsw i64 %56, %54 + store i64 %57, ptr %55, align 8, !tbaa !24 + br label %58 + +58: ; preds = %52, %42 + %59 = getelementptr inbounds nuw i8, ptr %0, i64 980 + store i32 1, ptr %59, align 4, !tbaa !61 + br label %60 + +60: ; preds = %lsrkStep_AccessStepMem.exit, %46, %30, %7, %58, %25 + %.0 = phi i32 [ 0, %58 ], [ -49, %25 ], [ -21, %lsrkStep_AccessStepMem.exit ], [ 0, %7 ], [ -20, %30 ], [ -20, %46 ] ret i32 %.0 } @@ -3278,7 +3282,7 @@ attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-mat attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nounwind willreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #6 = { mustprogress nocallback nofree nounwind willreturn memory(errnomem: write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/sundials/optimized/sundials_hashmap.ll b/bench/sundials/optimized/sundials_hashmap.ll index 164e12815d6..25f271e547e 100644 --- a/bench/sundials/optimized/sundials_hashmap.ll +++ b/bench/sundials/optimized/sundials_hashmap.ll @@ -31,7 +31,7 @@ define range(i32 -9997, 1) i32 @SUNHashMap_New(i32 noundef %0, ptr noundef write ret i32 %.017 } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) @@ -367,7 +367,7 @@ define range(i32 -9999, 1) i32 @SUNHashMap_Sort(ptr noundef readonly captures(ad %4 = icmp ne ptr %0, null %5 = icmp ne ptr %2, null %or.cond = and i1 %4, %5 - br i1 %or.cond, label %6, label %19 + br i1 %or.cond, label %6, label %21 6: ; preds = %3 %7 = getelementptr inbounds nuw i8, ptr %0, i64 4 @@ -377,33 +377,35 @@ define range(i32 -9999, 1) i32 @SUNHashMap_Sort(ptr noundef readonly captures(ad %11 = tail call noalias ptr @malloc(i64 noundef %10) #9 store ptr %11, ptr %1, align 8, !tbaa !22 %.not = icmp eq ptr %11, null - br i1 %.not, label %19, label %.preheader + br i1 %.not, label %21, label %.preheader .preheader: ; preds = %6 - %12 = icmp sgt i32 %8, 0 - br i1 %12, label %.lr.ph, label %._crit_edge + %12 = load i32, ptr %7, align 4, !tbaa !12 + %13 = icmp sgt i32 %12, 0 + br i1 %13, label %.lr.ph, label %._crit_edge .lr.ph: ; preds = %.preheader - %13 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %14 = load ptr, ptr %13, align 8, !tbaa !13 - %wide.trip.count = zext nneg i32 %8 to i64 - br label %15 - -15: ; preds = %.lr.ph, %15 - %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %15 ] - %16 = getelementptr inbounds nuw ptr, ptr %14, i64 %indvars.iv - %17 = load ptr, ptr %16, align 8, !tbaa !14 - %18 = getelementptr inbounds nuw ptr, ptr %11, i64 %indvars.iv - store ptr %17, ptr %18, align 8, !tbaa !14 + %14 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %15 = load ptr, ptr %14, align 8, !tbaa !13 + %wide.trip.count = zext nneg i32 %12 to i64 + br label %16 + +16: ; preds = %.lr.ph, %16 + %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %16 ] + %17 = getelementptr inbounds nuw ptr, ptr %15, i64 %indvars.iv + %18 = load ptr, ptr %17, align 8, !tbaa !14 + %19 = getelementptr inbounds nuw ptr, ptr %11, i64 %indvars.iv + store ptr %18, ptr %19, align 8, !tbaa !14 %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 %15 + br i1 %exitcond.not, label %._crit_edge, label %16 -._crit_edge: ; preds = %15, %.preheader - tail call void @qsort(ptr noundef nonnull %11, i64 noundef %9, i64 noundef 8, ptr noundef nonnull %2) #10 - br label %19 +._crit_edge: ; preds = %16, %.preheader + %20 = sext i32 %12 to i64 + tail call void @qsort(ptr noundef nonnull %11, i64 noundef %20, i64 noundef 8, ptr noundef nonnull %2) #10 + br label %21 -19: ; preds = %6, %3, %._crit_edge +21: ; preds = %6, %3, %._crit_edge %.016 = phi i32 [ 0, %._crit_edge ], [ -9999, %3 ], [ -9988, %6 ] ret i32 %.016 } @@ -411,18 +413,18 @@ define range(i32 -9999, 1) i32 @SUNHashMap_Sort(ptr noundef readonly captures(ad ; Function Attrs: nofree declare void @qsort(ptr noundef, i64 noundef, i64 noundef, ptr noundef captures(none)) local_unnamed_addr #7 -; Function Attrs: nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #8 attributes #0 = { mustprogress nounwind willreturn memory(readwrite, argmem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #1 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { nofree nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { nofree norecurse nounwind memory(read, argmem: readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { nofree "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" } +attributes #8 = { nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" } attributes #9 = { nounwind allocsize(0) } attributes #10 = { nounwind } attributes #11 = { nounwind willreturn memory(read) } diff --git a/bench/sundials/optimized/sundials_nvector_senswrapper.ll b/bench/sundials/optimized/sundials_nvector_senswrapper.ll index 972d8003d77..19cbb16e5d7 100644 --- a/bench/sundials/optimized/sundials_nvector_senswrapper.ll +++ b/bench/sundials/optimized/sundials_nvector_senswrapper.ll @@ -143,19 +143,19 @@ define noundef ptr @N_VClone_SensWrapper(ptr noundef readonly captures(address_i ; Function Attrs: mustprogress nounwind willreturn memory(readwrite, argmem: read) uwtable define noalias noundef ptr @N_VCloneEmpty_SensWrapper(ptr noundef readonly captures(address_is_null) %0) #2 { %2 = icmp eq ptr %0, null - br i1 %2, label %140, label %3 + br i1 %2, label %141, label %3 3: ; preds = %1 %4 = load ptr, ptr %0, align 8, !tbaa !39 %5 = getelementptr inbounds nuw i8, ptr %4, i64 8 %6 = load i32, ptr %5, align 8, !tbaa !33 %7 = icmp slt i32 %6, 1 - br i1 %7, label %140, label %8 + br i1 %7, label %141, label %8 8: ; preds = %3 %9 = tail call noalias dereferenceable_or_null(24) ptr @malloc(i64 noundef 24) #8 %10 = icmp eq ptr %9, null - br i1 %10, label %140, label %11 + br i1 %10, label %141, label %11 11: ; preds = %8 %12 = tail call noalias dereferenceable_or_null(448) ptr @malloc(i64 noundef 448) #8 @@ -164,7 +164,7 @@ define noalias noundef ptr @N_VCloneEmpty_SensWrapper(ptr noundef readonly captu 14: ; preds = %11 tail call void @free(ptr noundef nonnull %9) #7 - br label %140 + br label %141 15: ; preds = %11 %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -318,45 +318,46 @@ define noalias noundef ptr @N_VCloneEmpty_SensWrapper(ptr noundef readonly captu 126: ; preds = %15 tail call void @free(ptr noundef nonnull %12) #7 tail call void @free(ptr noundef nonnull %9) #7 - br label %140 + br label %141 127: ; preds = %15 - %128 = getelementptr inbounds nuw i8, ptr %124, i64 8 - store i32 %6, ptr %128, align 8, !tbaa !33 - %129 = getelementptr inbounds nuw i8, ptr %124, i64 12 - store i32 0, ptr %129, align 4, !tbaa !37 - %130 = load i32, ptr %5, align 8, !tbaa !33 - %131 = sext i32 %130 to i64 + %128 = load i32, ptr %5, align 8, !tbaa !33 + %129 = getelementptr inbounds nuw i8, ptr %124, i64 8 + store i32 %128, ptr %129, align 8, !tbaa !33 + %130 = getelementptr inbounds nuw i8, ptr %124, i64 12 + store i32 0, ptr %130, align 4, !tbaa !37 + %131 = sext i32 %128 to i64 %132 = shl nsw i64 %131, 3 %133 = tail call noalias ptr @malloc(i64 noundef %132) #8 store ptr %133, ptr %124, align 8, !tbaa !38 %134 = icmp eq ptr %133, null - br i1 %134, label %138, label %.preheader + br i1 %134, label %139, label %.preheader .preheader: ; preds = %127 - %135 = icmp sgt i32 %130, 0 - br i1 %135, label %.lr.ph.preheader, label %._crit_edge + %135 = load i32, ptr %5, align 8, !tbaa !33 + %136 = icmp sgt i32 %135, 0 + br i1 %136, label %.lr.ph.preheader, label %._crit_edge .lr.ph.preheader: ; preds = %.preheader - %136 = zext nneg i32 %130 to i64 - %137 = shl nuw nsw i64 %136, 3 - tail call void @llvm.memset.p0.i64(ptr nonnull align 8 %133, i8 0, i64 %137, i1 false), !tbaa !40 + %137 = zext nneg i32 %135 to i64 + %138 = shl nuw nsw i64 %137, 3 + tail call void @llvm.memset.p0.i64(ptr nonnull align 8 %133, i8 0, i64 %138, i1 false), !tbaa !40 br label %._crit_edge -138: ; preds = %127 +139: ; preds = %127 tail call void @free(ptr noundef nonnull %12) #7 tail call void @free(ptr noundef nonnull %9) #7 tail call void @free(ptr noundef nonnull %124) #7 - br label %140 + br label %141 ._crit_edge: ; preds = %.lr.ph.preheader, %.preheader store ptr %124, ptr %9, align 8, !tbaa !39 - %139 = getelementptr inbounds nuw i8, ptr %9, i64 8 - store ptr %12, ptr %139, align 8, !tbaa !3 - br label %140 + %140 = getelementptr inbounds nuw i8, ptr %9, i64 8 + store ptr %12, ptr %140, align 8, !tbaa !3 + br label %141 -140: ; preds = %8, %3, %1, %._crit_edge, %138, %126, %14 - %.0100 = phi ptr [ null, %14 ], [ null, %126 ], [ null, %138 ], [ %9, %._crit_edge ], [ null, %1 ], [ null, %3 ], [ null, %8 ] +141: ; preds = %8, %3, %1, %._crit_edge, %139, %126, %14 + %.0100 = phi ptr [ null, %14 ], [ null, %126 ], [ null, %139 ], [ %9, %._crit_edge ], [ null, %1 ], [ null, %3 ], [ null, %8 ] ret ptr %.0100 } @@ -1058,7 +1059,7 @@ define double @N_VMinQuotient_SensWrapper(ptr noundef readonly captures(none) %0 ret double %.012.lcssa } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #3 declare void @N_VFreeEmpty(ptr noundef) local_unnamed_addr #1 @@ -1162,16 +1163,16 @@ declare double @N_VMinQuotient(ptr noundef, ptr noundef) local_unnamed_addr #1 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #5 -; Function Attrs: nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #6 attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nounwind willreturn memory(readwrite, argmem: read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #6 = { nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" } +attributes #6 = { nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" } attributes #7 = { nounwind } attributes #8 = { nounwind allocsize(0) } diff --git a/bench/velox/optimized/CompactRowSerializer.ll b/bench/velox/optimized/CompactRowSerializer.ll index b4365d81855..058e2270f0f 100644 --- a/bench/velox/optimized/CompactRowSerializer.ll +++ b/bench/velox/optimized/CompactRowSerializer.ll @@ -1283,78 +1283,78 @@ if.then.i: ; preds = %_ZNSt10shared_ptrIN unreachable for.body.i: ; preds = %for.cond.preheader.i, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i - %.pr16.i = phi i32 [ %.pr.i, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i ], [ %17, %for.cond.preheader.i ] + %19 = phi i32 [ %24, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i ], [ %17, %for.cond.preheader.i ] %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i ], [ 0, %for.cond.preheader.i ] - %19 = load ptr, ptr %scratch, align 8 - %arrayidx.i = getelementptr inbounds nuw %"class.facebook::velox::raw_vector", ptr %19, i64 %indvars.iv.i - %20 = load ptr, ptr %arrayidx.i, align 8 - %tobool.not.i.i.i = icmp eq ptr %20, null + %20 = load ptr, ptr %scratch, align 8 + %arrayidx.i = getelementptr inbounds nuw %"class.facebook::velox::raw_vector", ptr %20, i64 %indvars.iv.i + %21 = load ptr, ptr %arrayidx.i, align 8 + %tobool.not.i.i.i = icmp eq ptr %21, null br i1 %tobool.not.i.i.i, label %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i, label %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i _ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i: ; preds = %for.body.i - %21 = ptrtoint ptr %20 to i64 - %add.i.i.i.i.i8 = add i64 %21, -32 - %22 = inttoptr i64 %add.i.i.i.i.i8 to ptr - call void @free(ptr noundef %22) #23 - %.pr.pre.i = load i32, ptr %fill_.i, align 8 + %22 = ptrtoint ptr %21 to i64 + %add.i.i.i.i.i8 = add i64 %22, -32 + %23 = inttoptr i64 %add.i.i.i.i.i8 to ptr + call void @free(ptr noundef %23) #23 + %.pre.i = load i32, ptr %fill_.i, align 8 br label %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i _ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i: ; preds = %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i, %for.body.i - %.pr.i = phi i32 [ %.pr16.i, %for.body.i ], [ %.pr.pre.i, %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i ] + %24 = phi i32 [ %19, %for.body.i ], [ %.pre.i, %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i ] %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %23 = sext i32 %.pr.i to i64 - %cmp3.i = icmp slt i64 %indvars.iv.next.i, %23 + %25 = sext i32 %24 to i64 + %cmp3.i = icmp slt i64 %indvars.iv.next.i, %25 br i1 %cmp3.i, label %for.body.i, label %for.end.loopexit.i, !llvm.loop !24 for.end.loopexit.i: ; preds = %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i - %.pre.i = load i32, ptr %capacity_.i, align 4 + %.pre16.i = load i32, ptr %capacity_.i, align 4 br label %for.end.i for.end.i: ; preds = %for.end.loopexit.i, %for.cond.preheader.i - %24 = phi i32 [ %18, %for.cond.preheader.i ], [ %.pre.i, %for.end.loopexit.i ] - %.lcssa.i = phi i32 [ %17, %for.cond.preheader.i ], [ %.pr.i, %for.end.loopexit.i ] - %cmp5.i = icmp slt i32 %24, 0 + %26 = phi i32 [ %24, %for.end.loopexit.i ], [ %17, %for.cond.preheader.i ] + %27 = phi i32 [ %.pre16.i, %for.end.loopexit.i ], [ %18, %for.cond.preheader.i ] + %cmp5.i = icmp slt i32 %27, 0 %.pre = load ptr, ptr %scratch, align 8 br i1 %cmp5.i, label %if.then6.i, label %_ZN8facebook5velox7ScratchD2Ev.exit if.then6.i: ; preds = %for.end.i %call.i = call noalias ptr @malloc(i64 noundef 0) #26 - %cmp8.i = icmp sgt i32 %.lcssa.i, 0 + %cmp8.i = icmp sgt i32 %26, 0 br i1 %cmp8.i, label %if.then9.i, label %if.end14.i if.then9.i: ; preds = %if.then6.i - %conv12.i = zext nneg i32 %.lcssa.i to i64 + %conv12.i = zext nneg i32 %26 to i64 %mul13.i = shl nuw nsw i64 %conv12.i, 4 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %call.i, ptr align 8 %.pre, i64 %mul13.i, i1 false) br label %if.end14.i if.end14.i: ; preds = %if.then9.i, %if.then6.i - %idx.ext.i = sext i32 %.lcssa.i to i64 + %idx.ext.i = sext i32 %26 to i64 %add.ptr.i = getelementptr inbounds %"class.facebook::velox::raw_vector", ptr %call.i, i64 %idx.ext.i - %sub.i = sub nsw i32 0, %.lcssa.i + %sub.i = sub nsw i32 0, %26 %conv17.i = sext i32 %sub.i to i64 %mul18.i = shl nsw i64 %conv17.i, 4 call void @llvm.memset.p0.i64(ptr align 8 %add.ptr.i, i8 0, i64 %mul18.i, i1 false) call void @free(ptr noundef %.pre) #23 store ptr %call.i, ptr %scratch, align 8 store i32 0, ptr %capacity_.i, align 4 - %.pre19.i = load i32, ptr %fill_.i, align 8 + %.pre18.i = load i32, ptr %fill_.i, align 8 br label %_ZN8facebook5velox7ScratchD2Ev.exit _ZN8facebook5velox7ScratchD2Ev.exit: ; preds = %if.end14.i, %for.end.i - %25 = phi ptr [ %call.i, %if.end14.i ], [ %.pre, %for.end.i ] - %26 = phi i32 [ %.pre19.i, %if.end14.i ], [ %.lcssa.i, %for.end.i ] - %.sroa.speculated.i = call i32 @llvm.smin.i32(i32 %26, i32 0) + %28 = phi ptr [ %call.i, %if.end14.i ], [ %.pre, %for.end.i ] + %29 = phi i32 [ %.pre18.i, %if.end14.i ], [ %26, %for.end.i ] + %.sroa.speculated.i = call i32 @llvm.smin.i32(i32 %29, i32 0) store i32 %.sroa.speculated.i, ptr %fill_.i, align 8 - call void @free(ptr noundef %25) #23 + call void @free(ptr noundef %28) #23 ret void lpad: ; preds = %_ZNSt10shared_ptrIN8facebook5velox10BaseVectorEEC2ERKS3_.exit - %27 = landingpad { ptr, i32 } + %30 = landingpad { ptr, i32 } cleanup call void @_ZNSt10shared_ptrIN8facebook5velox10BaseVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp) #23 call void @_ZN8facebook5velox7ScratchD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %scratch) #23 - resume { ptr, i32 } %27 + resume { ptr, i32 } %30 } ; Function Attrs: mustprogress nounwind uwtable @@ -1630,69 +1630,70 @@ if.then: ; preds = %entry unreachable for.body: ; preds = %for.body.preheader, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit - %.pr16 = phi i32 [ %0, %for.body.preheader ], [ %.pr, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit ] + %3 = phi i32 [ %0, %for.body.preheader ], [ %8, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit ] %indvars.iv = phi i64 [ %2, %for.body.preheader ], [ %indvars.iv.next, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit ] - %3 = load ptr, ptr %this, align 8 - %arrayidx = getelementptr inbounds %"class.facebook::velox::raw_vector", ptr %3, i64 %indvars.iv - %4 = load ptr, ptr %arrayidx, align 8 - %tobool.not.i.i = icmp eq ptr %4, null + %4 = load ptr, ptr %this, align 8 + %arrayidx = getelementptr inbounds %"class.facebook::velox::raw_vector", ptr %4, i64 %indvars.iv + %5 = load ptr, ptr %arrayidx, align 8 + %tobool.not.i.i = icmp eq ptr %5, null br i1 %tobool.not.i.i, label %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit, label %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i _ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i: ; preds = %for.body - %5 = ptrtoint ptr %4 to i64 - %add.i.i.i.i = add i64 %5, -32 - %6 = inttoptr i64 %add.i.i.i.i to ptr - tail call void @free(ptr noundef %6) #23 - %.pr.pre = load i32, ptr %fill_, align 8 + %6 = ptrtoint ptr %5 to i64 + %add.i.i.i.i = add i64 %6, -32 + %7 = inttoptr i64 %add.i.i.i.i to ptr + tail call void @free(ptr noundef %7) #23 + %.pre = load i32, ptr %fill_, align 8 br label %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit _ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit: ; preds = %for.body, %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i - %.pr = phi i32 [ %.pr16, %for.body ], [ %.pr.pre, %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i ] + %8 = phi i32 [ %3, %for.body ], [ %.pre, %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i ] %indvars.iv.next = add nsw i64 %indvars.iv, 1 - %7 = sext i32 %.pr to i64 - %cmp3 = icmp slt i64 %indvars.iv.next, %7 + %9 = sext i32 %8 to i64 + %cmp3 = icmp slt i64 %indvars.iv.next, %9 br i1 %cmp3, label %for.body, label %for.end.loopexit, !llvm.loop !24 for.end.loopexit: ; preds = %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit - %.pre = load i32, ptr %capacity_, align 4 + %.pre16 = load i32, ptr %capacity_, align 4 br label %for.end for.end: ; preds = %for.end.loopexit, %for.cond.preheader - %8 = phi i32 [ %1, %for.cond.preheader ], [ %.pre, %for.end.loopexit ] - %.lcssa = phi i32 [ %0, %for.cond.preheader ], [ %.pr, %for.end.loopexit ] - %cmp5 = icmp sgt i32 %newCapacity, %8 + %10 = phi i32 [ %8, %for.end.loopexit ], [ %0, %for.cond.preheader ] + %11 = phi i32 [ %.pre16, %for.end.loopexit ], [ %1, %for.cond.preheader ] + %cmp5 = icmp sgt i32 %newCapacity, %11 br i1 %cmp5, label %if.then6, label %if.end22 if.then6: ; preds = %for.end %conv = sext i32 %newCapacity to i64 %mul = shl nsw i64 %conv, 4 %call = tail call noalias ptr @malloc(i64 noundef %mul) #26 - %cmp8 = icmp sgt i32 %.lcssa, 0 - %.pre18 = load ptr, ptr %this, align 8 + %12 = load i32, ptr %fill_, align 8 + %cmp8 = icmp sgt i32 %12, 0 + %.pre17 = load ptr, ptr %this, align 8 br i1 %cmp8, label %if.then9, label %if.end14 if.then9: ; preds = %if.then6 - %conv12 = zext nneg i32 %.lcssa to i64 + %conv12 = zext nneg i32 %12 to i64 %mul13 = shl nuw nsw i64 %conv12, 4 - tail call void @llvm.memcpy.p0.p0.i64(ptr align 8 %call, ptr align 8 %.pre18, i64 %mul13, i1 false) + tail call void @llvm.memcpy.p0.p0.i64(ptr align 8 %call, ptr align 8 %.pre17, i64 %mul13, i1 false) br label %if.end14 if.end14: ; preds = %if.then9, %if.then6 - %idx.ext = sext i32 %.lcssa to i64 + %idx.ext = sext i32 %12 to i64 %add.ptr = getelementptr inbounds %"class.facebook::velox::raw_vector", ptr %call, i64 %idx.ext - %sub = sub nsw i32 %newCapacity, %.lcssa + %sub = sub nsw i32 %newCapacity, %12 %conv17 = sext i32 %sub to i64 %mul18 = shl nsw i64 %conv17, 4 tail call void @llvm.memset.p0.i64(ptr align 8 %add.ptr, i8 0, i64 %mul18, i1 false) - tail call void @free(ptr noundef %.pre18) #23 + tail call void @free(ptr noundef %.pre17) #23 store ptr %call, ptr %this, align 8 store i32 %newCapacity, ptr %capacity_, align 4 - %.pre19 = load i32, ptr %fill_, align 8 + %.pre18 = load i32, ptr %fill_, align 8 br label %if.end22 if.end22: ; preds = %if.end14, %for.end - %9 = phi i32 [ %.pre19, %if.end14 ], [ %.lcssa, %for.end ] - %.sroa.speculated = tail call i32 @llvm.smin.i32(i32 %newCapacity, i32 %9) + %13 = phi i32 [ %.pre18, %if.end14 ], [ %10, %for.end ] + %.sroa.speculated = tail call i32 @llvm.smin.i32(i32 %newCapacity, i32 %13) store i32 %.sroa.speculated, ptr %fill_, align 8 ret void } @@ -1700,7 +1701,7 @@ if.end22: ; preds = %if.end14, %for.end ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #10 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #11 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) @@ -2462,77 +2463,77 @@ if.then.i: ; preds = %invoke.cont unreachable for.body.i: ; preds = %for.cond.preheader.i, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i - %.pr16.i = phi i32 [ %.pr.i, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i ], [ %1, %for.cond.preheader.i ] + %3 = phi i32 [ %8, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i ], [ %1, %for.cond.preheader.i ] %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i ], [ 0, %for.cond.preheader.i ] - %3 = load ptr, ptr %scratch, align 8 - %arrayidx.i = getelementptr inbounds nuw %"class.facebook::velox::raw_vector", ptr %3, i64 %indvars.iv.i - %4 = load ptr, ptr %arrayidx.i, align 8 - %tobool.not.i.i.i = icmp eq ptr %4, null + %4 = load ptr, ptr %scratch, align 8 + %arrayidx.i = getelementptr inbounds nuw %"class.facebook::velox::raw_vector", ptr %4, i64 %indvars.iv.i + %5 = load ptr, ptr %arrayidx.i, align 8 + %tobool.not.i.i.i = icmp eq ptr %5, null br i1 %tobool.not.i.i.i, label %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i, label %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i _ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i: ; preds = %for.body.i - %5 = ptrtoint ptr %4 to i64 - %add.i.i.i.i.i = add i64 %5, -32 - %6 = inttoptr i64 %add.i.i.i.i.i to ptr - call void @free(ptr noundef %6) #23 - %.pr.pre.i = load i32, ptr %fill_.i, align 8 + %6 = ptrtoint ptr %5 to i64 + %add.i.i.i.i.i = add i64 %6, -32 + %7 = inttoptr i64 %add.i.i.i.i.i to ptr + call void @free(ptr noundef %7) #23 + %.pre.i = load i32, ptr %fill_.i, align 8 br label %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i _ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i: ; preds = %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i, %for.body.i - %.pr.i = phi i32 [ %.pr16.i, %for.body.i ], [ %.pr.pre.i, %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i ] + %8 = phi i32 [ %3, %for.body.i ], [ %.pre.i, %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i ] %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %7 = sext i32 %.pr.i to i64 - %cmp3.i = icmp slt i64 %indvars.iv.next.i, %7 + %9 = sext i32 %8 to i64 + %cmp3.i = icmp slt i64 %indvars.iv.next.i, %9 br i1 %cmp3.i, label %for.body.i, label %for.end.loopexit.i, !llvm.loop !24 for.end.loopexit.i: ; preds = %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i - %.pre.i = load i32, ptr %capacity_.i, align 4 + %.pre16.i = load i32, ptr %capacity_.i, align 4 br label %for.end.i for.end.i: ; preds = %for.end.loopexit.i, %for.cond.preheader.i - %8 = phi i32 [ %2, %for.cond.preheader.i ], [ %.pre.i, %for.end.loopexit.i ] - %.lcssa.i = phi i32 [ %1, %for.cond.preheader.i ], [ %.pr.i, %for.end.loopexit.i ] - %cmp5.i = icmp slt i32 %8, 0 + %10 = phi i32 [ %8, %for.end.loopexit.i ], [ %1, %for.cond.preheader.i ] + %11 = phi i32 [ %.pre16.i, %for.end.loopexit.i ], [ %2, %for.cond.preheader.i ] + %cmp5.i = icmp slt i32 %11, 0 %.pre = load ptr, ptr %scratch, align 8 br i1 %cmp5.i, label %if.then6.i, label %_ZN8facebook5velox7ScratchD2Ev.exit if.then6.i: ; preds = %for.end.i %call.i = call noalias ptr @malloc(i64 noundef 0) #26 - %cmp8.i = icmp sgt i32 %.lcssa.i, 0 + %cmp8.i = icmp sgt i32 %10, 0 br i1 %cmp8.i, label %if.then9.i, label %if.end14.i if.then9.i: ; preds = %if.then6.i - %conv12.i = zext nneg i32 %.lcssa.i to i64 + %conv12.i = zext nneg i32 %10 to i64 %mul13.i = shl nuw nsw i64 %conv12.i, 4 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %call.i, ptr align 8 %.pre, i64 %mul13.i, i1 false) br label %if.end14.i if.end14.i: ; preds = %if.then9.i, %if.then6.i - %idx.ext.i = sext i32 %.lcssa.i to i64 + %idx.ext.i = sext i32 %10 to i64 %add.ptr.i = getelementptr inbounds %"class.facebook::velox::raw_vector", ptr %call.i, i64 %idx.ext.i - %sub.i = sub nsw i32 0, %.lcssa.i + %sub.i = sub nsw i32 0, %10 %conv17.i = sext i32 %sub.i to i64 %mul18.i = shl nsw i64 %conv17.i, 4 call void @llvm.memset.p0.i64(ptr align 8 %add.ptr.i, i8 0, i64 %mul18.i, i1 false) call void @free(ptr noundef %.pre) #23 store ptr %call.i, ptr %scratch, align 8 store i32 0, ptr %capacity_.i, align 4 - %.pre19.i = load i32, ptr %fill_.i, align 8 + %.pre18.i = load i32, ptr %fill_.i, align 8 br label %_ZN8facebook5velox7ScratchD2Ev.exit _ZN8facebook5velox7ScratchD2Ev.exit: ; preds = %if.end14.i, %for.end.i - %9 = phi ptr [ %call.i, %if.end14.i ], [ %.pre, %for.end.i ] - %10 = phi i32 [ %.pre19.i, %if.end14.i ], [ %.lcssa.i, %for.end.i ] - %.sroa.speculated.i = call i32 @llvm.smin.i32(i32 %10, i32 0) + %12 = phi ptr [ %call.i, %if.end14.i ], [ %.pre, %for.end.i ] + %13 = phi i32 [ %.pre18.i, %if.end14.i ], [ %10, %for.end.i ] + %.sroa.speculated.i = call i32 @llvm.smin.i32(i32 %13, i32 0) store i32 %.sroa.speculated.i, ptr %fill_.i, align 8 - call void @free(ptr noundef %9) #23 + call void @free(ptr noundef %12) #23 ret void lpad: ; preds = %entry - %11 = landingpad { ptr, i32 } + %14 = landingpad { ptr, i32 } cleanup call void @_ZN8facebook5velox7ScratchD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %scratch) #23 - resume { ptr, i32 } %11 + resume { ptr, i32 } %14 } ; Function Attrs: mustprogress nounwind uwtable @@ -3063,7 +3064,7 @@ attributes #7 = { noreturn nounwind uwtable "frame-pointer"="all" "no-trapping-m attributes #8 = { cold nofree noreturn } attributes #9 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi2,+cmov,+crc32,+cx8,+f16c,+fma,+fxsr,+lzcnt,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } attributes #10 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi2,+cmov,+crc32,+cx8,+f16c,+fma,+fxsr,+lzcnt,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #11 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi2,+cmov,+crc32,+cx8,+f16c,+fma,+fxsr,+lzcnt,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #11 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi2,+cmov,+crc32,+cx8,+f16c,+fma,+fxsr,+lzcnt,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } attributes #12 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #13 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #14 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi2,+cmov,+crc32,+cx8,+f16c,+fma,+fxsr,+lzcnt,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } diff --git a/bench/yalantinglibs/optimized/user_defined_serialization.ll b/bench/yalantinglibs/optimized/user_defined_serialization.ll index 2a26c96db5d..c808aa9d9d2 100644 --- a/bench/yalantinglibs/optimized/user_defined_serialization.ll +++ b/bench/yalantinglibs/optimized/user_defined_serialization.ll @@ -684,7 +684,7 @@ _ZNSt12_Vector_baseIN13my_name_space7array2DESaIS1_EE13_M_deallocateEPS1_m.exit: ret void } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #3 ; Function Attrs: noreturn @@ -938,6 +938,7 @@ if.end.i.i: ; preds = %_ZNSt6vectorIN13my_ %14 = load ptr, ptr %10, align 8 %add.ptr.i.i.i11 = getelementptr inbounds nuw i8, ptr %14, i64 4 store ptr %add.ptr.i.i.i11, ptr %10, align 8 + %y.i.i = getelementptr inbounds i8, ptr %9, i64 -12 %15 = load ptr, ptr %end.i.i.i, align 8 %sub.ptr.lhs.cast.i17.i.i = ptrtoint ptr %15 to i64 %sub.ptr.rhs.cast.i18.i.i = ptrtoint ptr %add.ptr.i.i.i11 to i64 @@ -946,7 +947,6 @@ if.end.i.i: ; preds = %_ZNSt6vectorIN13my_ br i1 %cmp.i20.i.i, label %if.end5.i.i, label %for.inc if.end5.i.i: ; preds = %if.end.i.i - %y.i.i = getelementptr inbounds i8, ptr %9, i64 -12 %16 = load i32, ptr %add.ptr.i.i.i11, align 1 store i32 %16, ptr %y.i.i, align 4 %17 = load ptr, ptr %10, align 8 @@ -969,17 +969,23 @@ if.end13.i.i: ; preds = %if.end5.i.i %call14.i.i = tail call noalias ptr @malloc(i64 noundef %mul10.i.i) #20 %p.i.i = getelementptr inbounds i8, ptr %9, i64 -8 store ptr %call14.i.i, ptr %p.i.i, align 8 - %21 = load ptr, ptr %end.i.i.i, align 8 - %22 = load ptr, ptr %10, align 8 - %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %21 to i64 - %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %22 to i64 + %21 = load i32, ptr %add.ptr.i.i, align 8 + %conv18.i.i = zext i32 %21 to i64 + %22 = load i32, ptr %y.i.i, align 4 + %conv21.i.i = zext i32 %22 to i64 + %mul22.i.i = shl nuw nsw i64 %conv18.i.i, 2 + %mul.i.i.i = mul i64 %mul22.i.i, %conv21.i.i + %23 = load ptr, ptr %end.i.i.i, align 8 + %24 = load ptr, ptr %10, align 8 + %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %23 to i64 + %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %24 to i64 %sub.ptr.sub.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i - %cmp.i.not.i.i.i = icmp ult i64 %sub.ptr.sub.i.i.i.i, %mul10.i.i + %cmp.i.not.i.i.i = icmp ult i64 %sub.ptr.sub.i.i.i.i, %mul.i.i.i br i1 %cmp.i.not.i.i.i, label %if.then25.i.i, label %_ZN11struct_pack4readINS_6detail13memory_readerEfEENS_4errcERT_PT0_m.exit.thread.i.i _ZN11struct_pack4readINS_6detail13memory_readerEfEENS_4errcERT_PT0_m.exit.thread.i.i: ; preds = %if.end13.i.i - tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %call14.i.i, ptr align 1 %22, i64 %mul10.i.i, i1 false) - %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %22, i64 %mul10.i.i + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %call14.i.i, ptr align 1 %24, i64 %mul.i.i.i, i1 false) + %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %24, i64 %mul.i.i.i store ptr %add.ptr.i.i.i.i, ptr %10, align 8 br label %for.inc @@ -1196,7 +1202,7 @@ _ZNSt12_Vector_baseIN13my_name_space7array2DESaIS1_EE13_M_deallocateEPS1_m.exit: ret void } -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #10 ; Function Attrs: mustprogress uwtable @@ -1320,6 +1326,7 @@ if.end.i.i: ; preds = %_ZNSt6vectorIN13my_ %15 = load ptr, ptr %11, align 8 %add.ptr.i.i.i27 = getelementptr inbounds nuw i8, ptr %15, i64 4 store ptr %add.ptr.i.i.i27, ptr %11, align 8 + %y.i.i = getelementptr inbounds i8, ptr %10, i64 -12 %16 = load ptr, ptr %end.i.i.i, align 8 %sub.ptr.lhs.cast.i17.i.i = ptrtoint ptr %16 to i64 %sub.ptr.rhs.cast.i18.i.i = ptrtoint ptr %add.ptr.i.i.i27 to i64 @@ -1328,7 +1335,6 @@ if.end.i.i: ; preds = %_ZNSt6vectorIN13my_ br i1 %cmp.i20.i.i, label %if.end5.i.i, label %for.inc if.end5.i.i: ; preds = %if.end.i.i - %y.i.i = getelementptr inbounds i8, ptr %10, i64 -12 %17 = load i32, ptr %add.ptr.i.i.i27, align 1 store i32 %17, ptr %y.i.i, align 4 %18 = load ptr, ptr %11, align 8 @@ -1351,17 +1357,23 @@ if.end13.i.i: ; preds = %if.end5.i.i %call14.i.i = tail call noalias ptr @malloc(i64 noundef %mul10.i.i) #20 %p.i.i = getelementptr inbounds i8, ptr %10, i64 -8 store ptr %call14.i.i, ptr %p.i.i, align 8 - %22 = load ptr, ptr %end.i.i.i, align 8 - %23 = load ptr, ptr %11, align 8 - %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %22 to i64 - %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %23 to i64 + %22 = load i32, ptr %add.ptr.i.i, align 8 + %conv18.i.i = zext i32 %22 to i64 + %23 = load i32, ptr %y.i.i, align 4 + %conv21.i.i = zext i32 %23 to i64 + %mul22.i.i = shl nuw nsw i64 %conv18.i.i, 2 + %mul.i.i.i = mul i64 %mul22.i.i, %conv21.i.i + %24 = load ptr, ptr %end.i.i.i, align 8 + %25 = load ptr, ptr %11, align 8 + %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %24 to i64 + %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %25 to i64 %sub.ptr.sub.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i - %cmp.i.not.i.i.i = icmp ult i64 %sub.ptr.sub.i.i.i.i, %mul10.i.i + %cmp.i.not.i.i.i = icmp ult i64 %sub.ptr.sub.i.i.i.i, %mul.i.i.i br i1 %cmp.i.not.i.i.i, label %if.then25.i.i, label %_ZN11struct_pack4readINS_6detail13memory_readerEfEENS_4errcERT_PT0_m.exit.thread.i.i _ZN11struct_pack4readINS_6detail13memory_readerEfEENS_4errcERT_PT0_m.exit.thread.i.i: ; preds = %if.end13.i.i - tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %call14.i.i, ptr align 1 %23, i64 %mul10.i.i, i1 false) - %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %23, i64 %mul10.i.i + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %call14.i.i, ptr align 1 %25, i64 %mul.i.i.i, i1 false) + %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %25, i64 %mul.i.i.i store ptr %add.ptr.i.i.i.i, ptr %11, align 8 br label %for.inc @@ -1400,14 +1412,14 @@ declare void @llvm.assume(i1 noundef) #14 attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #7 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #11 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #12 = { nocallback nofree nounwind willreturn memory(argmem: read) } attributes #13 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } diff --git a/bench/zlib/optimized/gzwrite.ll b/bench/zlib/optimized/gzwrite.ll index 2dd651e0059..37579e68523 100644 --- a/bench/zlib/optimized/gzwrite.ll +++ b/bench/zlib/optimized/gzwrite.ll @@ -676,72 +676,73 @@ define internal fastcc range(i32 -1, 1) i32 @gz_init(ptr noundef nonnull initial 10: ; preds = %1 tail call void @gz_error(ptr noundef nonnull %0, i32 noundef -4, ptr noundef nonnull @.str.3) #14 - br label %39 + br label %40 11: ; preds = %1 %12 = getelementptr inbounds nuw i8, ptr %0, i64 64 %13 = load i32, ptr %12, align 8, !tbaa !29 %.not = icmp eq i32 %13, 0 - br i1 %.not, label %15, label %.thread + %14 = load i32, ptr %3, align 4, !tbaa !28 + br i1 %.not, label %16, label %.thread .thread: ; preds = %11 - %14 = getelementptr inbounds nuw i8, ptr %0, i64 40 - store i32 %4, ptr %14, align 8, !tbaa !15 - br label %39 - -15: ; preds = %11 - %16 = zext i32 %4 to i64 - %17 = tail call noalias ptr @malloc(i64 noundef %16) #16 - %18 = getelementptr inbounds nuw i8, ptr %0, i64 56 - store ptr %17, ptr %18, align 8, !tbaa !30 - %19 = icmp eq ptr %17, null - br i1 %19, label %20, label %21 + %15 = getelementptr inbounds nuw i8, ptr %0, i64 40 + store i32 %14, ptr %15, align 8, !tbaa !15 + br label %40 -20: ; preds = %15 +16: ; preds = %11 + %17 = zext i32 %14 to i64 + %18 = tail call noalias ptr @malloc(i64 noundef %17) #16 + %19 = getelementptr inbounds nuw i8, ptr %0, i64 56 + store ptr %18, ptr %19, align 8, !tbaa !30 + %20 = icmp eq ptr %18, null + br i1 %20, label %21, label %22 + +21: ; preds = %16 tail call void @free(ptr noundef nonnull %7) #14 tail call void @gz_error(ptr noundef nonnull %0, i32 noundef -4, ptr noundef nonnull @.str.3) #14 - br label %39 + br label %40 -21: ; preds = %15 - %22 = getelementptr inbounds nuw i8, ptr %0, i64 192 - %23 = getelementptr inbounds nuw i8, ptr %0, i64 88 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %22, i8 0, i64 24, i1 false) - %24 = load i32, ptr %23, align 8, !tbaa !31 - %25 = getelementptr inbounds nuw i8, ptr %0, i64 92 - %26 = load i32, ptr %25, align 4, !tbaa !32 - %27 = tail call i32 @deflateInit2_(ptr noundef nonnull %2, i32 noundef %24, i32 noundef 8, i32 noundef 31, i32 noundef 8, i32 noundef %26, ptr noundef nonnull @.str.4, i32 noundef 112) #14 - %.not31 = icmp eq i32 %27, 0 - br i1 %.not31, label %31, label %28 - -28: ; preds = %21 - %29 = load ptr, ptr %18, align 8, !tbaa !30 - tail call void @free(ptr noundef %29) #14 - %30 = load ptr, ptr %8, align 8, !tbaa !21 +22: ; preds = %16 + %23 = getelementptr inbounds nuw i8, ptr %0, i64 192 + %24 = getelementptr inbounds nuw i8, ptr %0, i64 88 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %23, i8 0, i64 24, i1 false) + %25 = load i32, ptr %24, align 8, !tbaa !31 + %26 = getelementptr inbounds nuw i8, ptr %0, i64 92 + %27 = load i32, ptr %26, align 4, !tbaa !32 + %28 = tail call i32 @deflateInit2_(ptr noundef nonnull %2, i32 noundef %25, i32 noundef 8, i32 noundef 31, i32 noundef 8, i32 noundef %27, ptr noundef nonnull @.str.4, i32 noundef 112) #14 + %.not31 = icmp eq i32 %28, 0 + br i1 %.not31, label %32, label %29 + +29: ; preds = %22 + %30 = load ptr, ptr %19, align 8, !tbaa !30 tail call void @free(ptr noundef %30) #14 + %31 = load ptr, ptr %8, align 8, !tbaa !21 + tail call void @free(ptr noundef %31) #14 tail call void @gz_error(ptr noundef nonnull %0, i32 noundef -4, ptr noundef nonnull @.str.3) #14 - br label %39 + br label %40 -31: ; preds = %21 +32: ; preds = %22 store ptr null, ptr %2, align 8, !tbaa !22 %.pr = load i32, ptr %12, align 8, !tbaa !29 - %32 = load i32, ptr %3, align 4, !tbaa !28 - %33 = getelementptr inbounds nuw i8, ptr %0, i64 40 - store i32 %32, ptr %33, align 8, !tbaa !15 + %33 = load i32, ptr %3, align 4, !tbaa !28 + %34 = getelementptr inbounds nuw i8, ptr %0, i64 40 + store i32 %33, ptr %34, align 8, !tbaa !15 %.not32 = icmp eq i32 %.pr, 0 - br i1 %.not32, label %34, label %39 - -34: ; preds = %31 - %35 = getelementptr inbounds nuw i8, ptr %0, i64 160 - store i32 %32, ptr %35, align 8, !tbaa !33 - %36 = load ptr, ptr %18, align 8, !tbaa !30 - %37 = getelementptr inbounds nuw i8, ptr %0, i64 152 - store ptr %36, ptr %37, align 8, !tbaa !34 - %38 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %36, ptr %38, align 8, !tbaa !35 - br label %39 - -39: ; preds = %.thread, %31, %34, %28, %20, %10 - %.0 = phi i32 [ -1, %10 ], [ -1, %20 ], [ -1, %28 ], [ 0, %34 ], [ 0, %31 ], [ 0, %.thread ] + br i1 %.not32, label %35, label %40 + +35: ; preds = %32 + %36 = getelementptr inbounds nuw i8, ptr %0, i64 160 + store i32 %33, ptr %36, align 8, !tbaa !33 + %37 = load ptr, ptr %19, align 8, !tbaa !30 + %38 = getelementptr inbounds nuw i8, ptr %0, i64 152 + store ptr %37, ptr %38, align 8, !tbaa !34 + %39 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store ptr %37, ptr %39, align 8, !tbaa !35 + br label %40 + +40: ; preds = %.thread, %32, %35, %29, %21, %10 + %.0 = phi i32 [ -1, %10 ], [ -1, %21 ], [ -1, %29 ], [ 0, %35 ], [ 0, %32 ], [ 0, %.thread ] ret i32 %.0 } @@ -1398,7 +1399,7 @@ declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr no ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #7 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #8 declare i32 @deflateInit2_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #1 @@ -1442,7 +1443,7 @@ attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argm attributes #5 = { mustprogress nocallback nofree nosync nounwind willreturn } attributes #6 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #8 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { nofree "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #10 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #11 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/zstd/optimized/fastcover.ll b/bench/zstd/optimized/fastcover.ll index 12ab85ffc62..b71d7b223fe 100644 --- a/bench/zstd/optimized/fastcover.ll +++ b/bench/zstd/optimized/fastcover.ll @@ -523,7 +523,7 @@ FASTCOVER_computeFrequency.exit: ; preds = %.loopexit.i, %131, declare void @COVER_warnOnSmallCorpus(i64 noundef, i64 noundef, i32 noundef) local_unnamed_addr #4 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #5 ; Function Attrs: nounwind uwtable @@ -1230,7 +1230,7 @@ declare void @COVER_best_destroy(ptr noundef) local_unnamed_addr #4 declare void @POOL_free(ptr noundef) local_unnamed_addr #4 -; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) +; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #7 declare void @COVER_best_start(ptr noundef) local_unnamed_addr #4 @@ -1270,7 +1270,7 @@ define internal void @FASTCOVER_tryParameters(ptr noundef captures(none) %0) #0 22: ; preds = %1 %23 = load i32, ptr @g_displayLevel, align 4, !tbaa !10 %24 = icmp sgt i32 %23, 0 - br i1 %24, label %25, label %58 + br i1 %24, label %25, label %61 25: ; preds = %22 %26 = load ptr, ptr @stderr, align 8, !tbaa !20 @@ -1280,54 +1280,57 @@ define internal void @FASTCOVER_tryParameters(ptr noundef captures(none) %0) #0 28: ; preds = %1 %29 = getelementptr inbounds nuw i8, ptr %5, i64 56 %30 = load ptr, ptr %29, align 8, !tbaa !30 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %18, ptr align 4 %30, i64 %17, i1 false) + %31 = load i32, ptr %9, align 4, !tbaa !39 + %32 = zext nneg i32 %31 to i64 + %33 = shl i64 4, %32 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %18, ptr align 4 %30, i64 %33, i1 false) %.val = load i32, ptr %2, align 8, !tbaa !13 - %31 = getelementptr inbounds nuw i8, ptr %2, i64 4 - %.val43 = load i32, ptr %31, align 4 - %32 = call fastcc i64 @FASTCOVER_buildDictionary(ptr noundef nonnull %5, ptr noundef nonnull %18, ptr noundef nonnull %14, i64 noundef %8, i32 %.val, i32 %.val43, ptr noundef nonnull %13) - %33 = getelementptr inbounds nuw i8, ptr %5, i64 32 - %34 = load i64, ptr %33, align 8, !tbaa !31 - %35 = getelementptr inbounds nuw i8, ptr %5, i64 72 - %36 = load i32, ptr %35, align 8, !tbaa !32 - %37 = zext i32 %36 to i64 - %38 = mul i64 %34, %37 - %39 = udiv i64 %38, 100 - %40 = trunc i64 %39 to i32 + %34 = getelementptr inbounds nuw i8, ptr %2, i64 4 + %.val43 = load i32, ptr %34, align 4 + %35 = call fastcc i64 @FASTCOVER_buildDictionary(ptr noundef nonnull %5, ptr noundef nonnull %18, ptr noundef nonnull %14, i64 noundef %8, i32 %.val, i32 %.val43, ptr noundef nonnull %13) + %36 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %37 = load i64, ptr %36, align 8, !tbaa !31 + %38 = getelementptr inbounds nuw i8, ptr %5, i64 72 + %39 = load i32, ptr %38, align 8, !tbaa !32 + %40 = zext i32 %39 to i64 + %41 = mul i64 %37, %40 + %42 = udiv i64 %41, 100 + %43 = trunc i64 %42 to i32 call void @llvm.lifetime.start.p0(ptr nonnull %4) - %41 = getelementptr inbounds nuw i8, ptr %14, i64 %32 - %42 = sub i64 %8, %32 - %43 = load ptr, ptr %5, align 8, !tbaa !34 - %44 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %45 = load ptr, ptr %44, align 8, !tbaa !35 - %46 = getelementptr inbounds nuw i8, ptr %5, i64 24 - %47 = load i64, ptr %46, align 8, !tbaa !36 - %48 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %49 = load ptr, ptr %48, align 8, !tbaa !33 - call void @COVER_selectDict(ptr dead_on_unwind nonnull writable sret(%struct.COVER_dictSelection) align 8 %4, ptr noundef nonnull %41, i64 noundef %8, i64 noundef %42, ptr noundef %43, ptr noundef %45, i32 noundef %40, i64 noundef %34, i64 noundef %47, ptr noundef nonnull byval(%struct.ZDICT_cover_params_t) align 8 %2, ptr noundef %49, i64 noundef -1) #14 + %44 = getelementptr inbounds nuw i8, ptr %14, i64 %35 + %45 = sub i64 %8, %35 + %46 = load ptr, ptr %5, align 8, !tbaa !34 + %47 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %48 = load ptr, ptr %47, align 8, !tbaa !35 + %49 = getelementptr inbounds nuw i8, ptr %5, i64 24 + %50 = load i64, ptr %49, align 8, !tbaa !36 + %51 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %52 = load ptr, ptr %51, align 8, !tbaa !33 + call void @COVER_selectDict(ptr dead_on_unwind nonnull writable sret(%struct.COVER_dictSelection) align 8 %4, ptr noundef nonnull %44, i64 noundef %8, i64 noundef %45, ptr noundef %46, ptr noundef %48, i32 noundef %43, i64 noundef %37, i64 noundef %50, ptr noundef nonnull byval(%struct.ZDICT_cover_params_t) align 8 %2, ptr noundef %52, i64 noundef -1) #14 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %4, i64 24, i1 false), !tbaa.struct !78 call void @llvm.lifetime.end.p0(ptr nonnull %4) - %50 = call i32 @COVER_dictSelectionIsError(ptr noundef nonnull byval(%struct.COVER_dictSelection) align 8 %3) #14 - %.not = icmp ne i32 %50, 0 - %51 = load i32, ptr @g_displayLevel, align 4 - %52 = icmp sgt i32 %51, 0 - %or.cond42 = select i1 %.not, i1 %52, i1 false - br i1 %or.cond42, label %53, label %58 - -53: ; preds = %28 - %54 = load ptr, ptr @stderr, align 8, !tbaa !20 - %55 = call i64 @fwrite(ptr nonnull @.str.26, i64 28, i64 1, ptr %54) #12 + %53 = call i32 @COVER_dictSelectionIsError(ptr noundef nonnull byval(%struct.COVER_dictSelection) align 8 %3) #14 + %.not = icmp ne i32 %53, 0 + %54 = load i32, ptr @g_displayLevel, align 4 + %55 = icmp sgt i32 %54, 0 + %or.cond42 = select i1 %.not, i1 %55, i1 false + br i1 %or.cond42, label %56, label %61 + +56: ; preds = %28 + %57 = load ptr, ptr @stderr, align 8, !tbaa !20 + %58 = call i64 @fwrite(ptr nonnull @.str.26, i64 28, i64 1, ptr %57) #12 br label %.sink.split -.sink.split: ; preds = %25, %53 - %56 = load ptr, ptr @stderr, align 8, !tbaa !20 - %57 = call i32 @fflush(ptr noundef %56) - br label %58 +.sink.split: ; preds = %25, %56 + %59 = load ptr, ptr @stderr, align 8, !tbaa !20 + %60 = call i32 @fflush(ptr noundef %59) + br label %61 -58: ; preds = %.sink.split, %28, %22 +61: ; preds = %.sink.split, %28, %22 call void @free(ptr noundef %14) #14 - %59 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %60 = load ptr, ptr %59, align 8, !tbaa !60 - call void @COVER_best_finish(ptr noundef %60, ptr noundef nonnull byval(%struct.ZDICT_cover_params_t) align 8 %2, ptr noundef nonnull byval(%struct.COVER_dictSelection) align 8 %3) #14 + %62 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %63 = load ptr, ptr %62, align 8, !tbaa !60 + call void @COVER_best_finish(ptr noundef %63, ptr noundef nonnull byval(%struct.ZDICT_cover_params_t) align 8 %2, ptr noundef nonnull byval(%struct.COVER_dictSelection) align 8 %3) #14 call void @free(ptr noundef nonnull %0) #14 call void @free(ptr noundef %13) #14 call void @COVER_dictSelectionFree(ptr noundef nonnull byval(%struct.COVER_dictSelection) align 8 %3) #14 @@ -1379,9 +1382,9 @@ attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argm attributes #2 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #10 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } From 848e230de182fec20a1c166fbf6db3c84233bf77 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 21 Oct 2025 10:23:23 +0000 Subject: [PATCH 3/3] pre-commit: Remap --- bench/box2d/optimized/init.ll | 164 +++++++++--------- bench/bullet3/optimized/b3File.ll | 24 +-- bench/chibicc/optimized/parse.ll | 144 +++++++-------- bench/chibicc/optimized/tokenize.ll | 62 +++---- bench/clamav/optimized/unpack.ll | 136 +++++++-------- .../optimized/archive_read_disk_posix.ll | 10 +- .../archive_read_support_format_mtree.ll | 24 +-- .../optimized/Hacl_Hash_Blake2b_Simd256.ll | 76 ++++---- .../optimized/Hacl_Hash_Blake2s_Simd128.ll | 8 +- bench/darktable/optimized/film.ll | 4 +- .../optimized/introspection_colorzones.ll | 44 ++--- bench/duckdb/optimized/fastcover.ll | 58 +++---- bench/flac/optimized/options.ll | 28 +-- bench/flac/optimized/replaygain_analysis.ll | 78 ++++----- bench/fmt/optimized/chrono-test.ll | 48 ++--- bench/freetype/optimized/ftsystem.ll | 52 +++--- bench/git/optimized/submodule--helper.ll | 60 +++---- bench/graphviz/optimized/cvt.ll | 32 ++-- bench/graphviz/optimized/gvpack.ll | 42 ++--- bench/hdf5/optimized/H5Rint.ll | 28 +-- bench/hdf5/optimized/h5diff_array.ll | 24 +-- bench/hdf5/optimized/h5tools_str.ll | 6 +- bench/hermes/optimized/CSE.ll | 16 +- bench/hermes/optimized/FoldingSet.ll | 6 +- bench/hermes/optimized/Lowering.ll | 6 +- bench/hwloc/optimized/memattrs.ll | 24 +-- bench/hwloc/optimized/topology-linux.ll | 6 +- bench/icu/optimized/uwmsg.ll | 42 ++--- bench/libigl/optimized/kkt_inverse.ll | 38 ++-- bench/libquic/optimized/cipher.ll | 4 +- bench/libquic/optimized/e_aes.ll | 52 +++--- bench/libquic/optimized/rsa_impl.ll | 38 ++-- bench/libzmq/optimized/msg.ll | 120 ++++++------- bench/libzmq/optimized/xpub.ll | 60 +++---- bench/llama.cpp/optimized/ggml-alloc.ll | 38 ++-- bench/llvm/optimized/ASTWriter.ll | 36 ++-- bench/llvm/optimized/LiveIntervalUnion.ll | 32 ++-- bench/llvm/optimized/NestedNameSpecifier.ll | 62 +++---- bench/llvm/optimized/SmallPtrSet.ll | 40 ++--- bench/lvgl/optimized/lv_sdl_window.ll | 2 +- bench/memcached/optimized/assoc.ll | 38 ++-- bench/mold/optimized/rust-demangle.ll | 16 +- bench/nanobind/optimized/common.ll | 6 +- bench/nuttx/optimized/lib_setvbuf.ll | 34 ++-- bench/opencv/optimized/ar_hmdb_benchmark.ll | 4 +- bench/opencv/optimized/calibinit.ll | 8 +- bench/openexr/optimized/ImfIDManifest.ll | 4 +- bench/openjdk/optimized/AccelGlyphCache.ll | 8 +- bench/openjdk/optimized/img_colors.ll | 10 +- bench/openjdk/optimized/os.ll | 30 ++-- bench/openjdk/optimized/splashscreen_sys.ll | 8 +- bench/openmpi/optimized/unpack.ll | 10 +- bench/openusd/optimized/drawModeStandin.ll | 84 ++++----- bench/php/optimized/shared_alloc_shm.ll | 102 +++++------ bench/postgres/optimized/fe-cancel.ll | 16 +- bench/raylib/optimized/utils.ll | 74 ++++---- bench/redis/optimized/fpconv.ll | 10 +- bench/ruby/optimized/util.ll | 70 ++++---- bench/sdl/optimized/SDL_malloc.ll | 52 +++--- bench/sundials/optimized/arkode_lsrkstep.ll | 6 +- bench/sundials/optimized/sundials_hashmap.ll | 26 +-- .../optimized/sundials_nvector_senswrapper.ll | 30 ++-- bench/velox/optimized/CompactRowSerializer.ll | 148 ++++++++-------- bench/zlib/optimized/gzwrite.ll | 74 ++++---- bench/zstd/optimized/fastcover.ll | 80 ++++----- 65 files changed, 1361 insertions(+), 1361 deletions(-) diff --git a/bench/box2d/optimized/init.ll b/bench/box2d/optimized/init.ll index c812b6c81ef..24a86355e7a 100644 --- a/bench/box2d/optimized/init.ll +++ b/bench/box2d/optimized/init.ll @@ -172,7 +172,7 @@ define hidden range(i64 0, 5) i64 @_glfwEncodeUTF8(ptr noundef writeonly capture define hidden ptr @_glfwParseUriList(ptr noundef %0, ptr noundef captures(none) initializes((0, 4)) %1) local_unnamed_addr #1 { %3 = alloca [3 x i8], align 1 store i32 0, ptr %1, align 4, !tbaa !6 - %4 = tail call ptr @strtok(ptr noundef %0, ptr noundef nonnull @.str.1) #22 + %4 = tail call ptr @strtok(ptr noundef %0, ptr noundef nonnull @.str.1) #21 %.not47 = icmp eq ptr %4, null br i1 %.not47, label %._crit_edge, label %.lr.ph @@ -189,7 +189,7 @@ define hidden ptr @_glfwParseUriList(ptr noundef %0, ptr noundef captures(none) br i1 %10, label %.loopexit, label %11 11: ; preds = %7 - %12 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %8, ptr noundef nonnull dereferenceable(8) @.str, i64 noundef 7) #23 + %12 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %8, ptr noundef nonnull dereferenceable(8) @.str, i64 noundef 7) #22 %13 = icmp eq i32 %12, 0 br i1 %13, label %14, label %.loopexit43 @@ -209,7 +209,7 @@ define hidden ptr @_glfwParseUriList(ptr noundef %0, ptr noundef captures(none) %19 = load i32, ptr %1, align 4, !tbaa !6 %20 = add nsw i32 %19, 1 store i32 %20, ptr %1, align 4, !tbaa !6 - %21 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.030) #23 + %21 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.030) #22 %22 = add i64 %21, 1 %.not42 = icmp eq i64 %22, 0 br i1 %.not42, label %_glfw_calloc.exit, label %23 @@ -217,7 +217,7 @@ define hidden ptr @_glfwParseUriList(ptr noundef %0, ptr noundef captures(none) 23: ; preds = %.loopexit43 %24 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 8), align 8, !tbaa !8 %25 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - %26 = tail call ptr %24(i64 noundef %22, ptr noundef %25) #22 + %26 = tail call ptr %24(i64 noundef %22, ptr noundef %25) #21 %.not.i = icmp eq ptr %26, null br i1 %.not.i, label %28, label %27 @@ -242,7 +242,7 @@ _glfw_calloc.exit: ; preds = %.loopexit43, %27, % 34: ; preds = %_glfw_calloc.exit %35 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 16), align 8, !tbaa !96 %36 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - %37 = tail call ptr %35(ptr noundef nonnull %.03148, i64 noundef %31, ptr noundef %36) #22 + %37 = tail call ptr %35(ptr noundef nonnull %.03148, i64 noundef %31, ptr noundef %36) #21 %.not.i41 = icmp eq ptr %37, null br i1 %.not.i41, label %38, label %_glfw_realloc.exit @@ -256,14 +256,14 @@ _glfw_calloc.exit: ; preds = %.loopexit43, %27, % _glfw_free.exit.i: ; preds = %39 %40 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 24), align 8, !tbaa !97 %41 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - tail call void %40(ptr noundef nonnull %.03148, ptr noundef %41) #22 + tail call void %40(ptr noundef nonnull %.03148, ptr noundef %41) #21 unreachable 42: ; preds = %39 tail call void @llvm.assume(i1 %33) %43 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 8), align 8, !tbaa !8 %44 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - %45 = tail call ptr %43(i64 noundef %31, ptr noundef %44) #22 + %45 = tail call ptr %43(i64 noundef %31, ptr noundef %44) #21 %.not.i14.i = icmp eq ptr %45, null br i1 %.not.i14.i, label %47, label %46 @@ -310,7 +310,7 @@ _glfw_realloc.exit: ; preds = %34, %46 store i8 %56, ptr %3, align 1, !tbaa !3 store i8 %59, ptr %5, align 1, !tbaa !3 store i8 0, ptr %6, align 1, !tbaa !3 - %61 = call i64 @strtol(ptr noundef nonnull captures(none) %3, ptr noundef null, i32 noundef 16) #22 + %61 = call i64 @strtol(ptr noundef nonnull captures(none) %3, ptr noundef null, i32 noundef 16) #21 %62 = trunc i64 %61 to i8 store i8 %62, ptr %.0, align 1, !tbaa !3 call void @llvm.lifetime.end.p0(ptr nonnull %3) @@ -328,7 +328,7 @@ _glfw_realloc.exit: ; preds = %34, %46 .loopexit: ; preds = %52, %7 %.132 = phi ptr [ %.03148, %7 ], [ %.1.i40, %52 ] - %67 = tail call ptr @strtok(ptr noundef null, ptr noundef nonnull @.str.1) #22 + %67 = tail call ptr @strtok(ptr noundef null, ptr noundef nonnull @.str.1) #21 %.not = icmp eq ptr %67, null br i1 %.not, label %._crit_edge, label %7 @@ -366,7 +366,7 @@ define hidden ptr @_glfw_calloc(i64 noundef %0, i64 noundef %1) local_unnamed_ad %8 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 8), align 8, !tbaa !8 %9 = mul i64 %1, %0 %10 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - %11 = tail call ptr %8(i64 noundef %9, ptr noundef %10) #22 + %11 = tail call ptr %8(i64 noundef %9, ptr noundef %10) #21 %.not = icmp eq ptr %11, null br i1 %.not, label %13, label %12 @@ -393,7 +393,7 @@ define hidden ptr @_glfw_realloc(ptr noundef %0, i64 noundef %1) local_unnamed_a 5: ; preds = %2 %6 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 16), align 8, !tbaa !96 %7 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - %8 = tail call ptr %6(ptr noundef nonnull %0, i64 noundef %1, ptr noundef %7) #22 + %8 = tail call ptr %6(ptr noundef nonnull %0, i64 noundef %1, ptr noundef %7) #21 %.not = icmp eq ptr %8, null br i1 %.not, label %9, label %_glfw_calloc.exit @@ -407,7 +407,7 @@ define hidden ptr @_glfw_realloc(ptr noundef %0, i64 noundef %1) local_unnamed_a _glfw_free.exit: ; preds = %10 %11 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 24), align 8, !tbaa !97 %12 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - tail call void %11(ptr noundef nonnull %0, ptr noundef %12) #22 + tail call void %11(ptr noundef nonnull %0, ptr noundef %12) #21 br label %_glfw_calloc.exit 13: ; preds = %10 @@ -416,7 +416,7 @@ _glfw_free.exit: ; preds = %10 14: ; preds = %13 %15 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 8), align 8, !tbaa !8 %16 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - %17 = tail call ptr %15(i64 noundef %1, ptr noundef %16) #22 + %17 = tail call ptr %15(i64 noundef %1, ptr noundef %16) #21 %.not.i14 = icmp eq ptr %17, null br i1 %.not.i14, label %19, label %18 @@ -438,7 +438,7 @@ declare i64 @strtol(ptr noundef readonly, ptr noundef captures(none), i32 nounde ; Function Attrs: nounwind uwtable define hidden noundef ptr @_glfw_strdup(ptr noundef readonly captures(none) %0) local_unnamed_addr #1 { - %2 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %0) #23 + %2 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %0) #22 %3 = add i64 %2, 1 %.not = icmp eq i64 %3, 0 br i1 %.not, label %_glfw_calloc.exit, label %4 @@ -446,7 +446,7 @@ define hidden noundef ptr @_glfw_strdup(ptr noundef readonly captures(none) %0) 4: ; preds = %1 %5 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 8), align 8, !tbaa !8 %6 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - %7 = tail call ptr %5(i64 noundef %3, ptr noundef %6) #22 + %7 = tail call ptr %5(i64 noundef %3, ptr noundef %6) #21 %.not.i = icmp eq ptr %7, null br i1 %.not.i, label %9, label %8 @@ -460,7 +460,7 @@ define hidden noundef ptr @_glfw_strdup(ptr noundef readonly captures(none) %0) _glfw_calloc.exit: ; preds = %1, %8, %9 %.1.i = phi ptr [ %7, %8 ], [ null, %9 ], [ null, %1 ] - %10 = tail call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %.1.i, ptr noundef nonnull dereferenceable(1) %0) #22 + %10 = tail call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %.1.i, ptr noundef nonnull dereferenceable(1) %0) #21 ret ptr %.1.i } @@ -490,7 +490,7 @@ define hidden void @_glfwInputError(i32 noundef %0, ptr noundef readonly capture 5: ; preds = %2 call void @llvm.lifetime.start.p0(ptr nonnull %4) call void @llvm.va_start.p0(ptr nonnull %4) - %6 = call i32 @vsnprintf(ptr noundef nonnull %3, i64 noundef 1024, ptr noundef nonnull %1, ptr noundef nonnull %4) #22 + %6 = call i32 @vsnprintf(ptr noundef nonnull %3, i64 noundef 1024, ptr noundef nonnull %1, ptr noundef nonnull %4) #21 call void @llvm.va_end.p0(ptr nonnull %4) %7 = getelementptr inbounds nuw i8, ptr %3, i64 1023 store i8 0, ptr %7, align 1, !tbaa !3 @@ -516,63 +516,63 @@ define hidden void @_glfwInputError(i32 noundef %0, ptr noundef readonly capture ] 9: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(36) %3, ptr noundef nonnull align 1 dereferenceable(36) @.str.3, i64 36, i1 false) #22 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(36) %3, ptr noundef nonnull align 1 dereferenceable(36) @.str.3, i64 36, i1 false) #21 br label %24 10: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(28) %3, ptr noundef nonnull align 1 dereferenceable(28) @.str.4, i64 28, i1 false) #22 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(28) %3, ptr noundef nonnull align 1 dereferenceable(28) @.str.4, i64 28, i1 false) #21 br label %24 11: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(36) %3, ptr noundef nonnull align 1 dereferenceable(36) @.str.5, i64 36, i1 false) #22 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(36) %3, ptr noundef nonnull align 1 dereferenceable(36) @.str.5, i64 36, i1 false) #21 br label %24 12: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(28) %3, ptr noundef nonnull align 1 dereferenceable(28) @.str.6, i64 28, i1 false) #22 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(28) %3, ptr noundef nonnull align 1 dereferenceable(28) @.str.6, i64 28, i1 false) #21 br label %24 13: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(14) %3, ptr noundef nonnull align 1 dereferenceable(14) @.str.7, i64 14, i1 false) #22 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(14) %3, ptr noundef nonnull align 1 dereferenceable(14) @.str.7, i64 14, i1 false) #21 br label %24 14: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(33) %3, ptr noundef nonnull align 1 dereferenceable(33) @.str.8, i64 33, i1 false) #22 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(33) %3, ptr noundef nonnull align 1 dereferenceable(33) @.str.8, i64 33, i1 false) #21 br label %24 15: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(41) %3, ptr noundef nonnull align 1 dereferenceable(41) @.str.9, i64 41, i1 false) #22 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(41) %3, ptr noundef nonnull align 1 dereferenceable(41) @.str.9, i64 41, i1 false) #21 br label %24 16: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(35) %3, ptr noundef nonnull align 1 dereferenceable(35) @.str.10, i64 35, i1 false) #22 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(35) %3, ptr noundef nonnull align 1 dereferenceable(35) @.str.10, i64 35, i1 false) #21 br label %24 17: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(36) %3, ptr noundef nonnull align 1 dereferenceable(36) @.str.11, i64 36, i1 false) #22 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(36) %3, ptr noundef nonnull align 1 dereferenceable(36) @.str.11, i64 36, i1 false) #21 br label %24 18: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(36) %3, ptr noundef nonnull align 1 dereferenceable(36) @.str.12, i64 36, i1 false) #22 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(36) %3, ptr noundef nonnull align 1 dereferenceable(36) @.str.12, i64 36, i1 false) #21 br label %24 19: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(42) %3, ptr noundef nonnull align 1 dereferenceable(42) @.str.13, i64 42, i1 false) #22 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(42) %3, ptr noundef nonnull align 1 dereferenceable(42) @.str.13, i64 42, i1 false) #21 br label %24 20: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(62) %3, ptr noundef nonnull align 1 dereferenceable(62) @.str.14, i64 62, i1 false) #22 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(62) %3, ptr noundef nonnull align 1 dereferenceable(62) @.str.14, i64 62, i1 false) #21 br label %24 21: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(69) %3, ptr noundef nonnull align 1 dereferenceable(69) @.str.15, i64 69, i1 false) #22 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(69) %3, ptr noundef nonnull align 1 dereferenceable(69) @.str.15, i64 69, i1 false) #21 br label %24 22: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(38) %3, ptr noundef nonnull align 1 dereferenceable(38) @.str.16, i64 38, i1 false) #22 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(38) %3, ptr noundef nonnull align 1 dereferenceable(38) @.str.16, i64 38, i1 false) #21 br label %24 23: ; preds = %8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(26) %3, ptr noundef nonnull align 1 dereferenceable(26) @.str.17, i64 26, i1 false) #22 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(26) %3, ptr noundef nonnull align 1 dereferenceable(26) @.str.17, i64 26, i1 false) #21 br label %24 24: ; preds = %9, %11, %13, %15, %17, %19, %21, %23, %22, %20, %18, %16, %14, %12, %10, %5 @@ -581,14 +581,14 @@ define hidden void @_glfwInputError(i32 noundef %0, ptr noundef readonly capture br i1 %.not27, label %35, label %26 26: ; preds = %24 - %27 = call ptr @_glfwPlatformGetTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404)) #22 + %27 = call ptr @_glfwPlatformGetTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404)) #21 %.not28 = icmp eq ptr %27, null br i1 %.not28, label %28, label %35 28: ; preds = %26 %29 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 8), align 8, !tbaa !8 %30 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - %31 = call ptr %29(i64 noundef 1040, ptr noundef %30) #22 + %31 = call ptr %29(i64 noundef 1040, ptr noundef %30) #21 %.not.i = icmp eq ptr %31, null br i1 %.not.i, label %33, label %32 @@ -601,12 +601,12 @@ define hidden void @_glfwInputError(i32 noundef %0, ptr noundef readonly capture br label %_glfw_calloc.exit _glfw_calloc.exit: ; preds = %32, %33 - call void @_glfwPlatformSetTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404), ptr noundef %31) #22 - call void @_glfwPlatformLockMutex(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133424)) #22 + call void @_glfwPlatformSetTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404), ptr noundef %31) #21 + call void @_glfwPlatformLockMutex(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133424)) #21 %34 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 1896), align 8, !tbaa !100 store ptr %34, ptr %31, align 8, !tbaa !101 store ptr %31, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 1896), align 8, !tbaa !100 - call void @_glfwPlatformUnlockMutex(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133424)) #22 + call void @_glfwPlatformUnlockMutex(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133424)) #21 br label %35 35: ; preds = %24, %26, %_glfw_calloc.exit @@ -614,13 +614,13 @@ _glfw_calloc.exit: ; preds = %32, %33 %36 = getelementptr inbounds nuw i8, ptr %.0, i64 8 store i32 %0, ptr %36, align 8, !tbaa !103 %37 = getelementptr inbounds nuw i8, ptr %.0, i64 12 - %38 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %37, ptr noundef nonnull dereferenceable(1) %3) #22 + %38 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %37, ptr noundef nonnull dereferenceable(1) %3) #21 %39 = load ptr, ptr @_glfwErrorCallback, align 8, !tbaa !104 %.not29 = icmp eq ptr %39, null br i1 %.not29, label %41, label %40 40: ; preds = %35 - call void %39(i32 noundef %0, ptr noundef nonnull %3) #22 + call void %39(i32 noundef %0, ptr noundef nonnull %3) #21 br label %41 41: ; preds = %40, %35 @@ -639,7 +639,7 @@ define hidden void @_glfw_free(ptr noundef %0) local_unnamed_addr #1 { 2: ; preds = %1 %3 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 24), align 8, !tbaa !97 %4 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - tail call void %3(ptr noundef nonnull %0, ptr noundef %4) #22 + tail call void %3(ptr noundef nonnull %0, ptr noundef %4) #21 br label %5 5: ; preds = %2, %1 @@ -685,13 +685,13 @@ define range(i32 0, 2) i32 @glfwInit() local_unnamed_addr #1 { 5: ; preds = %4, %2 %6 = load i32, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 624), align 8, !tbaa !107 - %7 = tail call i32 @_glfwSelectPlatform(i32 noundef %6, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 40)) #22 + %7 = tail call i32 @_glfwSelectPlatform(i32 noundef %6, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 40)) #21 %.not2 = icmp eq i32 %7, 0 br i1 %.not2, label %21, label %8 8: ; preds = %5 %9 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 48), align 8, !tbaa !108 - %10 = tail call i32 %9() #22 + %10 = tail call i32 %9() #21 %.not3 = icmp eq i32 %10, 0 br i1 %.not3, label %11, label %12 @@ -700,17 +700,17 @@ define range(i32 0, 2) i32 @glfwInit() local_unnamed_addr #1 { br label %21 12: ; preds = %8 - %13 = tail call i32 @_glfwPlatformCreateMutex(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133424)) #22 + %13 = tail call i32 @_glfwPlatformCreateMutex(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133424)) #21 %.not4 = icmp eq i32 %13, 0 br i1 %.not4, label %18, label %14 14: ; preds = %12 - %15 = tail call i32 @_glfwPlatformCreateTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404)) #22 + %15 = tail call i32 @_glfwPlatformCreateTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404)) #21 %.not5 = icmp eq i32 %15, 0 br i1 %.not5, label %18, label %16 16: ; preds = %14 - %17 = tail call i32 @_glfwPlatformCreateTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133412)) #22 + %17 = tail call i32 @_glfwPlatformCreateTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133412)) #21 %.not6 = icmp eq i32 %17, 0 br i1 %.not6, label %18, label %19 @@ -719,13 +719,13 @@ define range(i32 0, 2) i32 @glfwInit() local_unnamed_addr #1 { br label %21 19: ; preds = %16 - tail call void @_glfwPlatformSetTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404), ptr noundef nonnull @_glfwMainThreadError) #22 - tail call void @_glfwInitGamepadMappings() #22 - tail call void @_glfwPlatformInitTimer() #22 - %20 = tail call i64 @_glfwPlatformGetTimerValue() #22 + tail call void @_glfwPlatformSetTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404), ptr noundef nonnull @_glfwMainThreadError) #21 + tail call void @_glfwInitGamepadMappings() #21 + tail call void @_glfwPlatformInitTimer() #21 + %20 = tail call i64 @_glfwPlatformGetTimerValue() #21 store i64 %20, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 133472), align 8, !tbaa !109 store i32 1, ptr @_glfw, align 8, !tbaa !99 - tail call void @glfwDefaultWindowHints() #22 + tail call void @glfwDefaultWindowHints() #21 br label %21 21: ; preds = %5, %0, %19, %18, %11 @@ -738,19 +738,19 @@ declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr no ; Function Attrs: mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite, errnomem: write) uwtable define internal noalias noundef ptr @defaultAllocate(i64 noundef %0, ptr readnone captures(none) %1) #11 { - %3 = tail call noalias ptr @malloc(i64 noundef %0) #24 + %3 = tail call noalias ptr @malloc(i64 noundef %0) #23 ret ptr %3 } ; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable define internal noalias noundef ptr @defaultReallocate(ptr noundef captures(none) %0, i64 noundef %1, ptr readnone captures(none) %2) #12 { - %4 = tail call ptr @realloc(ptr noundef %0, i64 noundef %1) #25 + %4 = tail call ptr @realloc(ptr noundef %0, i64 noundef %1) #24 ret ptr %4 } ; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable define internal void @defaultDeallocate(ptr noundef captures(none) %0, ptr readnone captures(none) %1) #13 { - tail call void @free(ptr noundef %0) #22 + tail call void @free(ptr noundef %0) #21 ret void } @@ -770,7 +770,7 @@ define internal fastcc void @terminate() unnamed_addr #1 { .lr.ph: ; preds = %0, %.lr.ph %3 = phi ptr [ %4, %.lr.ph ], [ %1, %0 ] - tail call void @glfwDestroyWindow(ptr noundef nonnull %3) #22 + tail call void @glfwDestroyWindow(ptr noundef nonnull %3) #21 %4 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 1912), align 8, !tbaa !110 %.not = icmp eq ptr %4, null br i1 %.not, label %.preheader18, label %.lr.ph @@ -782,7 +782,7 @@ define internal fastcc void @terminate() unnamed_addr #1 { .lr.ph21: ; preds = %.preheader18, %.lr.ph21 %7 = phi ptr [ %8, %.lr.ph21 ], [ %2, %.preheader18 ] - tail call void @glfwDestroyCursor(ptr noundef nonnull %7) #22 + tail call void @glfwDestroyCursor(ptr noundef nonnull %7) #21 %8 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 1904), align 8, !tbaa !111 %.not11 = icmp eq ptr %8, null br i1 %.not11, label %.preheader, label %.lr.ph21 @@ -800,11 +800,11 @@ define internal fastcc void @terminate() unnamed_addr #1 { 14: ; preds = %.lr.ph23 %15 = getelementptr inbounds nuw i8, ptr %11, i64 192 %16 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 264), align 8, !tbaa !126 - tail call void %16(ptr noundef nonnull %11, ptr noundef nonnull %15) #22 + tail call void %16(ptr noundef nonnull %11, ptr noundef nonnull %15) #21 br label %17 17: ; preds = %14, %.lr.ph23 - tail call void @_glfwFreeMonitor(ptr noundef nonnull %11) #22 + tail call void @_glfwFreeMonitor(ptr noundef nonnull %11) #21 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %18 = load i32, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 1928), align 8, !tbaa !112 %19 = sext i32 %18 to i64 @@ -819,7 +819,7 @@ define internal fastcc void @terminate() unnamed_addr #1 { 22: ; preds = %._crit_edge %23 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 24), align 8, !tbaa !97 %24 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - tail call void %23(ptr noundef nonnull %21, ptr noundef %24) #22 + tail call void %23(ptr noundef nonnull %21, ptr noundef %24) #21 br label %_glfw_free.exit _glfw_free.exit: ; preds = %._crit_edge, %22 @@ -832,17 +832,17 @@ _glfw_free.exit: ; preds = %._crit_edge, %22 26: ; preds = %_glfw_free.exit %27 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 24), align 8, !tbaa !97 %28 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - tail call void %27(ptr noundef nonnull %25, ptr noundef %28) #22 + tail call void %27(ptr noundef nonnull %25, ptr noundef %28) #21 br label %_glfw_free.exit15 _glfw_free.exit15: ; preds = %_glfw_free.exit, %26 store ptr null, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 133392), align 8, !tbaa !127 store i32 0, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 133400), align 8, !tbaa !128 - tail call void @_glfwTerminateVulkan() #22 + tail call void @_glfwTerminateVulkan() #21 %29 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 176), align 8, !tbaa !129 - tail call void %29() #22 + tail call void %29() #21 %30 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 56), align 8, !tbaa !130 - tail call void %30() #22 + tail call void %30() #21 store i32 0, ptr @_glfw, align 8, !tbaa !99 %31 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 1896), align 8, !tbaa !100 %.not1224 = icmp eq ptr %31, null @@ -854,15 +854,15 @@ _glfw_free.exit17: ; preds = %_glfw_free.exit15, store ptr %33, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 1896), align 8, !tbaa !100 %34 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 24), align 8, !tbaa !97 %35 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 32), align 8, !tbaa !95 - tail call void %34(ptr noundef nonnull %32, ptr noundef %35) #22 + tail call void %34(ptr noundef nonnull %32, ptr noundef %35) #21 %36 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_glfw, i64 1896), align 8, !tbaa !100 %.not12 = icmp eq ptr %36, null br i1 %.not12, label %._crit_edge25, label %_glfw_free.exit17 ._crit_edge25: ; preds = %_glfw_free.exit17, %_glfw_free.exit15 - tail call void @_glfwPlatformDestroyTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133412)) #22 - tail call void @_glfwPlatformDestroyTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404)) #22 - tail call void @_glfwPlatformDestroyMutex(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133424)) #22 + tail call void @_glfwPlatformDestroyTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133412)) #21 + tail call void @_glfwPlatformDestroyTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404)) #21 + tail call void @_glfwPlatformDestroyMutex(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133424)) #21 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(143664) @_glfw, i8 0, i64 143664, i1 false) ret void } @@ -1029,7 +1029,7 @@ define i32 @glfwGetError(ptr noundef writeonly captures(address_is_null) %0) loc br i1 %.not, label %.thread, label %6 6: ; preds = %4 - %7 = tail call ptr @_glfwPlatformGetTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404)) #22 + %7 = tail call ptr @_glfwPlatformGetTls(ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @_glfw, i64 133404)) #21 %.not13 = icmp eq ptr %7, null br i1 %.not13, label %13, label %.thread @@ -1060,13 +1060,13 @@ define ptr @glfwSetErrorCallback(ptr noundef %0) local_unnamed_addr #15 { } ; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) -declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #16 +declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #15 ; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) -declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #17 +declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #16 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) -declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #18 +declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #17 declare void @glfwDestroyWindow(ptr noundef) local_unnamed_addr #9 @@ -1081,22 +1081,22 @@ declare void @_glfwPlatformDestroyTls(ptr noundef) local_unnamed_addr #9 declare void @_glfwPlatformDestroyMutex(ptr noundef) local_unnamed_addr #9 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(ptr captures(none)) #19 +declare void @llvm.lifetime.start.p0(ptr captures(none)) #18 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(ptr captures(none)) #19 +declare void @llvm.lifetime.end.p0(ptr captures(none)) #18 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #20 +declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #19 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.smin.i32(i32, i32) #20 +declare i32 @llvm.smin.i32(i32, i32) #19 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.smax.i32(i32, i32) #20 +declare i32 @llvm.smax.i32(i32, i32) #19 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) -declare void @llvm.assume(i1 noundef) #21 +declare void @llvm.assume(i1 noundef) #20 attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -1111,12 +1111,12 @@ attributes #9 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "t attributes #10 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #11 = { mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite, errnomem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #12 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #14 = { mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: none, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #15 = { mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, argmem: none, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #16 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #17 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #18 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #13 = { mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: readwrite, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #14 = { mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, argmem: none, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #15 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: none, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #16 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #17 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #18 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #19 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #20 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #21 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } diff --git a/bench/bullet3/optimized/b3File.ll b/bench/bullet3/optimized/b3File.ll index 4deebd67379..8fbb8aecc0f 100644 --- a/bench/bullet3/optimized/b3File.ll +++ b/bench/bullet3/optimized/b3File.ll @@ -256,7 +256,7 @@ define dso_local void @_ZN6bParse5bFileC2EPKcS2_(ptr noundef nonnull align 8 der 71: ; preds = %73 %72 = tail call noalias ptr @fopen(ptr noundef %1, ptr noundef nonnull @.str) %.not = icmp eq ptr %72, null - br i1 %.not, label %100, label %77 + br i1 %.not, label %99, label %77 73: ; preds = %3, %73 %indvars.iv = phi i64 [ 0, %3 ], [ %indvars.iv.next, %73 ] @@ -288,24 +288,24 @@ define dso_local void @_ZN6bParse5bFileC2EPKcS2_(ptr noundef nonnull align 8 der invoke void %91(ptr noundef nonnull align 8 dereferenceable(540) %0) to label %100 unwind label %92 -92: ; preds = %77 +92:; preds = %77 %93 = landingpad { ptr, i32 } cleanup - %94 = getelementptr inbounds nuw i8, ptr %0, i64 408 - %95 = getelementptr inbounds nuw i8, ptr %0, i64 280 - %96 = getelementptr inbounds nuw i8, ptr %0, i64 248 - %97 = getelementptr inbounds nuw i8, ptr %0, i64 216 - %98 = getelementptr inbounds nuw i8, ptr %0, i64 184 - %99 = getelementptr inbounds nuw i8, ptr %0, i64 32 - tail call void @_ZN9b3HashMapI9b3HashPtrPN6bParse13bStructHandleEED2Ev(ptr noundef nonnull align 8 dereferenceable(128) %94) #32 - tail call void @_ZN9b3HashMapI9b3HashPtrN6bParse9bChunkIndEED2Ev(ptr noundef nonnull align 8 dereferenceable(128) %95) #32 - tail call void @_ZN20b3AlignedObjectArrayIN6bParse9bChunkIndEED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %96) #32 + %93 = getelementptr inbounds nuw i8, ptr %0, i64 408 + %94 = getelementptr inbounds nuw i8, ptr %0, i64 280 + %95 = getelementptr inbounds nuw i8, ptr %0, i64 248 + %96 = getelementptr inbounds nuw i8, ptr %0, i64 216 + %97 = getelementptr inbounds nuw i8, ptr %0, i64 184 + %98 = getelementptr inbounds nuw i8, ptr %0, i64 32 + tail call void @_ZN9b3HashMapI9b3HashPtrPN6bParse13bStructHandleEED2Ev(ptr noundef nonnull align 8 dereferenceable(128) %93) #32 + tail call void @_ZN9b3HashMapI9b3HashPtrN6bParse9bChunkIndEED2Ev(ptr noundef nonnull align 8 dereferenceable(128) %94) #32 + tail call void @_ZN20b3AlignedObjectArrayIN6bParse9bChunkIndEED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %95) #32 tail call void @_ZN20b3AlignedObjectArrayIPcED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %97) #32 tail call void @_ZN20b3AlignedObjectArrayIPcED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %98) #32 tail call void @_ZN9b3HashMapI9b3HashPtrPN6bParse13bStructHandleEED2Ev(ptr noundef nonnull align 8 dereferenceable(128) %99) #32 resume { ptr, i32 } %93 -100: ; preds = %77, %71 +99: ; preds = %77, %71 ret void } diff --git a/bench/chibicc/optimized/parse.ll b/bench/chibicc/optimized/parse.ll index a96890a5281..d3617816848 100644 --- a/bench/chibicc/optimized/parse.ll +++ b/bench/chibicc/optimized/parse.ll @@ -30588,8 +30588,8 @@ define internal fastcc noalias noundef ptr @new_initializer(ptr noundef %0, i1 n %5 = load i32, ptr %0, align 8, !tbaa !61 switch i32 %5, label %.loopexit [ i32 12, label %6 - i32 14, label %29 - i32 15, label %29 + i32 14, label %28 + i32 15, label %28 ] 6: ; preds = %2 @@ -30618,99 +30618,99 @@ define internal fastcc noalias noundef ptr @new_initializer(ptr noundef %0, i1 n br i1 %20, label %.lr.ph52, label %.loopexit .lr.ph52: ; preds = %13 - %21 = getelementptr inbounds nuw i8, ptr %0, i64 24 - br label %22 + %20 = getelementptr inbounds nuw i8, ptr %0, i64 24 + br label %21 -22: ; preds = %.lr.ph52, %22 +21: ; preds = %.lr.ph52, %21 %indvars.iv = phi i64 [ 0, %.lr.ph52 ], [ %indvars.iv.next, %22 ] - %23 = load ptr, ptr %21, align 8, !tbaa !123 - %24 = tail call fastcc ptr @new_initializer(ptr noundef %23, i1 noundef zeroext false) - %25 = getelementptr inbounds nuw ptr, ptr %17, i64 %indvars.iv - store ptr %24, ptr %25, align 8, !tbaa !171 + %22 = load ptr, ptr %20, align 8, !tbaa !123 + %23 = tail call fastcc ptr @new_initializer(ptr noundef %22, i1 noundef zeroext false) + %24 = getelementptr inbounds nuw ptr, ptr %17, i64 %indvars.iv + store ptr %23, ptr %24, align 8, !tbaa !171 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %26 = load i32, ptr %14, align 8, !tbaa !173 - %27 = sext i32 %26 to i64 - %28 = icmp slt i64 %indvars.iv.next, %27 - br i1 %28, label %22, label %.loopexit, !llvm.loop !192 + %25 = load i32, ptr %14, align 8, !tbaa !173 + %26 = sext i32 %25 to i64 + %27 = icmp slt i64 %indvars.iv.next, %26 + br i1 %27, label %21, label %.loopexit, !llvm.loop !192 -29: ; preds = %2, %2 - %30 = getelementptr inbounds nuw i8, ptr %0, i64 72 - br label %31 +28: ; preds = %2, %2 + %29 = getelementptr inbounds nuw i8, ptr %0, i64 72 + br label %30 -31: ; preds = %31, %29 - %.043 = phi i32 [ 0, %29 ], [ %32, %31 ] - %.042.in = phi ptr [ %30, %29 ], [ %.042, %31 ] +30: ; preds = %30, %28 + %.043 = phi i32 [ 0, %29 ], [ %31, %31 ] + %.042.in = phi ptr [ %29, %29 ], [ %.042, %31 ] %.042 = load ptr, ptr %.042.in, align 8, !tbaa !159 %.not = icmp eq ptr %.042, null - %32 = add nuw nsw i32 %.043, 1 - br i1 %.not, label %33, label %31, !llvm.loop !193 - -33: ; preds = %31 - %34 = zext nneg i32 %.043 to i64 - %35 = tail call noalias ptr @calloc(i64 noundef %34, i64 noundef 8) #14 - %36 = getelementptr inbounds nuw i8, ptr %3, i64 40 - store ptr %35, ptr %36, align 8, !tbaa !166 - %.04148 = load ptr, ptr %30, align 8, !tbaa !159 + %31 = add nuw nsw i32 %.043, 1 + br i1 %.not, label %32, label %30, !llvm.loop !193 + +32: ; preds = %30 + %33 = zext nneg i32 %.043 to i64 + %34 = tail call noalias ptr @calloc(i64 noundef %33, i64 noundef 8) #14 + %35 = getelementptr inbounds nuw i8, ptr %3, i64 40 + store ptr %34, ptr %35, align 8, !tbaa !166 + %.04148 = load ptr, ptr %29, align 8, !tbaa !159 %.not4549 = icmp eq ptr %.04148, null br i1 %.not4549, label %.loopexit, label %.lr.ph -.lr.ph: ; preds = %33 - %37 = getelementptr inbounds nuw i8, ptr %0, i64 80 +.lr.ph: ; preds = %32 + %36 = getelementptr inbounds nuw i8, ptr %0, i64 80 br i1 %1, label %.lr.ph.split.us, label %.lr.ph.split -.lr.ph.split.us: ; preds = %.lr.ph, %52 +.lr.ph.split.us: ; preds = %.lr.ph, %51 %.04150.us = phi ptr [ %.041.us, %52 ], [ %.04148, %.lr.ph ] - %38 = load i8, ptr %37, align 8, !tbaa !158, !range !58, !noundef !59 - %39 = trunc nuw i8 %38 to i1 - br i1 %39, label %40, label %42 - -40: ; preds = %.lr.ph.split.us - %41 = load ptr, ptr %.04150.us, align 8, !tbaa !160 - %.not46.us = icmp eq ptr %41, null - br i1 %.not46.us, label %46, label %42 - -42: ; preds = %40, %.lr.ph.split.us - %43 = getelementptr inbounds nuw i8, ptr %.04150.us, i64 8 - %44 = load ptr, ptr %43, align 8, !tbaa !157 - %45 = tail call fastcc ptr @new_initializer(ptr noundef %44, i1 noundef zeroext false) - br label %52 - -46: ; preds = %40 - %47 = tail call noalias dereferenceable_or_null(56) ptr @calloc(i64 noundef 1, i64 noundef 56) #14 - %48 = getelementptr inbounds nuw i8, ptr %.04150.us, i64 8 - %49 = load ptr, ptr %48, align 8, !tbaa !157 - %50 = getelementptr inbounds nuw i8, ptr %47, i64 8 - store ptr %49, ptr %50, align 8, !tbaa !172 - %51 = getelementptr inbounds nuw i8, ptr %47, i64 24 - store i8 1, ptr %51, align 8, !tbaa !191 - br label %52 - -52: ; preds = %46, %42 - %.sink = phi ptr [ %47, %46 ], [ %45, %42 ] - %53 = getelementptr inbounds nuw i8, ptr %.04150.us, i64 32 - %54 = load i32, ptr %53, align 8, !tbaa !170 - %55 = sext i32 %54 to i64 - %56 = getelementptr inbounds ptr, ptr %35, i64 %55 - store ptr %.sink, ptr %56, align 8, !tbaa !171 + %37 = load i8, ptr %36, align 8, !tbaa !158, !range !58, !noundef !59 + %38 = trunc nuw i8 %37 to i1 + br i1 %38, label %39, label %41 + +39: ; preds = %.lr.ph.split.us + %40 = load ptr, ptr %.04150.us, align 8, !tbaa !160 + %.not46.us = icmp eq ptr %40, null + br i1 %.not46.us, label %45, label %41 + +41: ; preds = %39, %.lr.ph.split.us + %42 = getelementptr inbounds nuw i8, ptr %.04150.us, i64 8 + %43 = load ptr, ptr %42, align 8, !tbaa !157 + %44 = tail call fastcc ptr @new_initializer(ptr noundef %43, i1 noundef zeroext false) + br label %51 + +45: ; preds = %39 + %46 = tail call noalias dereferenceable_or_null(56) ptr @calloc(i64 noundef 1, i64 noundef 56) #14 + %47 = getelementptr inbounds nuw i8, ptr %.04150.us, i64 8 + %48 = load ptr, ptr %47, align 8, !tbaa !157 + %49 = getelementptr inbounds nuw i8, ptr %46, i64 8 + store ptr %48, ptr %49, align 8, !tbaa !172 + %50 = getelementptr inbounds nuw i8, ptr %46, i64 24 + store i8 1, ptr %50, align 8, !tbaa !191 + br label %51 + +51: ; preds = %45, %41 + %.sink = phi ptr [ %46, %46 ], [ %44, %42 ] + %52 = getelementptr inbounds nuw i8, ptr %.04150.us, i64 32 + %53 = load i32, ptr %52, align 8, !tbaa !170 + %54 = sext i32 %53 to i64 + %55 = getelementptr inbounds ptr, ptr %34, i64 %54 + store ptr %.sink, ptr %55, align 8, !tbaa !171 %.041.us = load ptr, ptr %.04150.us, align 8, !tbaa !159 %.not45.us = icmp eq ptr %.041.us, null br i1 %.not45.us, label %.loopexit, label %.lr.ph.split.us, !llvm.loop !194 .lr.ph.split: ; preds = %.lr.ph, %.lr.ph.split %.04150 = phi ptr [ %.041, %.lr.ph.split ], [ %.04148, %.lr.ph ] - %57 = getelementptr inbounds nuw i8, ptr %.04150, i64 8 - %58 = load ptr, ptr %57, align 8, !tbaa !157 - %59 = tail call fastcc ptr @new_initializer(ptr noundef %58, i1 noundef zeroext false) - %60 = getelementptr inbounds nuw i8, ptr %.04150, i64 32 - %61 = load i32, ptr %60, align 8, !tbaa !170 - %62 = sext i32 %61 to i64 - %63 = getelementptr inbounds ptr, ptr %35, i64 %62 - store ptr %59, ptr %63, align 8, !tbaa !171 + %56 = getelementptr inbounds nuw i8, ptr %.04150, i64 8 + %57 = load ptr, ptr %56, align 8, !tbaa !157 + %58 = tail call fastcc ptr @new_initializer(ptr noundef %57, i1 noundef zeroext false) + %59 = getelementptr inbounds nuw i8, ptr %.04150, i64 32 + %60 = load i32, ptr %59, align 8, !tbaa !170 + %61 = sext i32 %60 to i64 + %62 = getelementptr inbounds ptr, ptr %34, i64 %61 + store ptr %58, ptr %62, align 8, !tbaa !171 %.041 = load ptr, ptr %.04150, align 8, !tbaa !159 %.not45 = icmp eq ptr %.041, null br i1 %.not45, label %.loopexit, label %.lr.ph.split, !llvm.loop !194 -.loopexit: ; preds = %.lr.ph.split, %52, %22, %33, %13, %2, %11 +.loopexit: ; preds = %.lr.ph.split, %51, %21, %32, %13, %2, %11 ret ptr %3 } diff --git a/bench/chibicc/optimized/tokenize.ll b/bench/chibicc/optimized/tokenize.ll index e42fd5addbe..245fc6f26c1 100644 --- a/bench/chibicc/optimized/tokenize.ll +++ b/bench/chibicc/optimized/tokenize.ll @@ -1122,7 +1122,7 @@ sub_0: ; preds = %1, %.backedge %45 = load i16, ptr %44, align 2, !tbaa !43 %46 = and i16 %45, 2048 %.not117 = icmp eq i16 %46, 0 - br i1 %.not117, label %.thread190, label %47 + br i1 %.not117, label %.thread192, label %47 47: ; preds = %40, %37 %48 = getelementptr inbounds nuw i8, ptr %.0157, i64 1 @@ -1239,7 +1239,7 @@ sub_1137: ; preds = %39 %106 = getelementptr inbounds nuw i8, ptr %.0157, i64 1 %107 = load i8, ptr %106, align 1 %108 = icmp eq i8 %107, 34 - br i1 %108, label %109, label %.thread190 + br i1 %108, label %109, label %.thread192 109: ; preds = %.tail139 %110 = getelementptr inbounds nuw i8, ptr %.0157, i64 1 @@ -1256,7 +1256,7 @@ sub_1137: ; preds = %39 %117 = getelementptr inbounds nuw i8, ptr %.0157, i64 1 %118 = load i8, ptr %117, align 1 %119 = icmp eq i8 %118, 34 - br i1 %119, label %120, label %.thread190 + br i1 %119, label %120, label %.thread192 120: ; preds = %.tail143 %121 = getelementptr inbounds nuw i8, ptr %.0157, i64 1 @@ -1274,7 +1274,7 @@ sub_1137: ; preds = %39 %129 = getelementptr inbounds nuw i8, ptr %.0157, i64 1 %130 = load i8, ptr %129, align 1 %131 = icmp eq i8 %130, 34 - br i1 %131, label %132, label %.thread190 + br i1 %131, label %132, label %.thread192 132: ; preds = %.tail147 %133 = getelementptr inbounds nuw i8, ptr %.0157, i64 1 @@ -1304,11 +1304,11 @@ sub_1137: ; preds = %39 %151 = getelementptr inbounds i8, ptr %.0157, i64 %150 br label %.backedge -.thread190: ; preds = %39, %.tail139, %40, %.tail143, %.tail147 +.thread192: ; preds = %39, %.tail139, %40, %.tail143, %.tail147 %152 = tail call fastcc zeroext i1 @startswith(ptr noundef nonnull %.0157, ptr noundef nonnull @.str.12) br i1 %152, label %153, label %165 -153: ; preds = %.thread190 +153: ; preds = %.thread192 %154 = getelementptr inbounds nuw i8, ptr %.0157, i64 1 %155 = load ptr, ptr @ty_ushort, align 8, !tbaa !45 %156 = tail call fastcc ptr @read_char_literal(ptr noundef nonnull %.0157, ptr noundef nonnull %154, ptr noundef %155) @@ -1324,7 +1324,7 @@ sub_1137: ; preds = %39 %164 = getelementptr inbounds i8, ptr %.0157, i64 %163 br label %.backedge -165: ; preds = %.thread190 +165: ; preds = %.thread192 %166 = tail call fastcc zeroext i1 @startswith(ptr noundef nonnull %.0157, ptr noundef nonnull @.str.13) br i1 %166, label %167, label %176 @@ -1371,11 +1371,11 @@ sub_1137: ; preds = %39 unreachable 192: ; preds = %189, %187 - %.sink199 = phi i32 [ %188, %187 ], [ %190, %189 ] - %.sink196 = phi i32 [ 0, %187 ], [ 1, %189 ] - %193 = sext i32 %.sink199 to i64 + %.sink201 = phi i32 [ %188, %187 ], [ %190, %189 ] + %.sink198 = phi i32 [ 0, %187 ], [ 1, %189 ] + %193 = sext i32 %.sink201 to i64 %194 = getelementptr inbounds i8, ptr %.0157, i64 %193 - %195 = tail call fastcc ptr @new_token(i32 noundef %.sink196, ptr noundef nonnull %.0157, ptr noundef nonnull %194) + %195 = tail call fastcc ptr @new_token(i32 noundef %.sink198, ptr noundef nonnull %.0157, ptr noundef nonnull %194) %196 = getelementptr inbounds nuw i8, ptr %.0107156, i64 8 store ptr %195, ptr %196, align 8, !tbaa !34 %.pn.in.in = getelementptr inbounds nuw i8, ptr %195, i64 56 @@ -1387,28 +1387,28 @@ sub_1137: ; preds = %39 ._crit_edge.loopexit: ; preds = %.backedge %.pre = load ptr, ptr @current_file, align 8, !tbaa !12 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %.pre, i64 16 - %.pre168 = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !13 + %.pre170 = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !13 br label %._crit_edge ._crit_edge: ; preds = %._crit_edge.loopexit, %1 - %197 = phi ptr [ %4, %1 ], [ %.pre168, %._crit_edge.loopexit ] - %198 = phi ptr [ %0, %1 ], [ %.pre, %._crit_edge.loopexit ] + %199 = phi ptr [ %4, %1 ], [ %.pre170, %._crit_edge.loopexit ] + %.b11.i131 = phi ptr [ %0, %1 ], [ %.pre, %._crit_edge.loopexit ] %.0107.lcssa = phi ptr [ %2, %1 ], [ %.0107.be, %._crit_edge.loopexit ] %.0.lcssa = phi ptr [ %4, %1 ], [ %.0.be, %._crit_edge.loopexit ] - %199 = tail call noalias dereferenceable_or_null(128) ptr @calloc(i64 noundef 1, i64 noundef 128) #32 - store i32 6, ptr %199, align 16, !tbaa !36 - %200 = getelementptr inbounds nuw i8, ptr %199, i64 48 - store ptr %.0.lcssa, ptr %200, align 16, !tbaa !32 - %201 = getelementptr inbounds nuw i8, ptr %199, i64 56 - store i32 0, ptr %201, align 8, !tbaa !33 - %202 = getelementptr inbounds nuw i8, ptr %199, i64 80 - store ptr %198, ptr %202, align 16, !tbaa !23 - %203 = getelementptr inbounds nuw i8, ptr %198, i64 24 - %204 = load ptr, ptr %203, align 8, !tbaa !56 - %205 = getelementptr inbounds nuw i8, ptr %199, i64 88 - store ptr %204, ptr %205, align 8, !tbaa !57 + %201 = tail call noalias dereferenceable_or_null(128) ptr @calloc(i64 noundef 1, i64 noundef 128) #32 + store i32 6, ptr %201, align 16, !tbaa !36 + %202 = getelementptr inbounds nuw i8, ptr %201, i64 48 + store ptr %.0.lcssa, ptr %202, align 16, !tbaa !32 + %203 = getelementptr inbounds nuw i8, ptr %201, i64 56 + store i32 0, ptr %203, align 8, !tbaa !33 + %204 = getelementptr inbounds nuw i8, ptr %201, i64 80 + store ptr %198, ptr %204, align 16, !tbaa !23 + %205 = getelementptr inbounds nuw i8, ptr %198, i64 24 + %206 = load ptr, ptr %205, align 8, !tbaa !56 + %207 = getelementptr inbounds nuw i8, ptr %201, i64 88 + store ptr %206, ptr %207, align 8, !tbaa !57 %.b.i130 = load i1, ptr @at_bol, align 1 - %206 = getelementptr inbounds nuw i8, ptr %199, i64 104 + %206 = getelementptr inbounds nuw i8, ptr %201, i64 104 %207 = zext i1 %.b.i130 to i8 store i8 %207, ptr %206, align 8, !tbaa !58 %.b11.i131 = load i1, ptr @has_space, align 1 @@ -1418,14 +1418,14 @@ sub_1137: ; preds = %39 store i1 false, ptr @has_space, align 1 store i1 false, ptr @at_bol, align 1 %210 = getelementptr inbounds nuw i8, ptr %.0107.lcssa, i64 8 - store ptr %199, ptr %210, align 8, !tbaa !34 + store ptr %201, ptr %210, align 8, !tbaa !34 %211 = getelementptr inbounds nuw i8, ptr %2, i64 8 %212 = load ptr, ptr %211, align 8, !tbaa !34 br label %213 213: ; preds = %221, %._crit_edge %.08.i = phi ptr [ %212, %._crit_edge ], [ %.19.i, %221 ] - %.07.i = phi ptr [ %197, %._crit_edge ], [ %225, %221 ] + %.07.i = phi ptr [ %199, %._crit_edge ], [ %225, %221 ] %.0.i = phi i32 [ 1, %._crit_edge ], [ %spec.select.i, %221 ] %214 = getelementptr inbounds nuw i8, ptr %.08.i, i64 48 %215 = load ptr, ptr %214, align 16, !tbaa !32 @@ -2162,8 +2162,8 @@ convert_universal_chars.exit: ; preds = %145, %remove_backsl store ptr %158, ptr @input_files, align 8, !tbaa !12 %159 = load i32, ptr @tokenize_file.file_no, align 4, !tbaa !62 %160 = sext i32 %159 to i64 - %161 = getelementptr inbounds ptr, ptr %158, i64 %160 - store ptr %149, ptr %161, align 8, !tbaa !12 + %160 = getelementptr inbounds ptr, ptr %158, i64 %160 + store ptr %149, ptr %160, align 8, !tbaa !12 %162 = getelementptr i8, ptr %161, i64 8 store ptr null, ptr %162, align 8, !tbaa !12 %163 = add nsw i32 %159, 1 diff --git a/bench/clamav/optimized/unpack.ll b/bench/clamav/optimized/unpack.ll index 717301ccbad..8beea39c4dd 100644 --- a/bench/clamav/optimized/unpack.ll +++ b/bench/clamav/optimized/unpack.ll @@ -15028,7 +15028,7 @@ define void @_ZN6Unpack4InitEmb(ptr noundef nonnull align 8 captures(none) deref %.not = icmp ule i64 %spec.store.select, %8 %9 = icmp ugt i64 %1, 4295032831 %or.cond35 = or i1 %9, %.not - br i1 %or.cond35, label %59, label %10 + br i1 %or.cond35, label %56, label %10 10: ; preds = %6 %spec.store.select1 = tail call i64 @llvm.umin.i64(i64 %spec.store.select, i64 1073741824) @@ -15057,40 +15057,40 @@ define void @_ZN6Unpack4InitEmb(ptr noundef nonnull align 8 captures(none) deref 20: ; preds = %17, %.thread %21 = phi i1 [ false, %.thread ], [ %.not28, %17 ] - %22 = tail call noalias ptr @malloc(i64 noundef %spec.store.select1) #25 - %23 = icmp eq ptr %22, null - br i1 %23, label %.thread38, label %33 + %calloc = tail call noalias ptr @malloc(i64 noundef %spec.store.select1) #25 + %22 = icmp eq ptr %calloc, null + br i1 %22, label %.thread38, label %32 .thread38: ; preds = %.thread, %20 - %24 = phi i1 [ %21, %20 ], [ false, %.thread ] - %25 = icmp samesign ult i64 %1, 16777216 - %or.cond = or i1 %25, %24 - br i1 %or.cond, label %26, label %28 - -26: ; preds = %.thread38 - %27 = tail call ptr @__cxa_allocate_exception(i64 8) #24 - store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %27, align 8, !tbaa !59 - tail call void @__cxa_throw(ptr nonnull %27, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #26 + %23 = phi i1 [ %21, %20 ], [ false, %.thread ] + %24 = icmp samesign ult i64 %1, 16777216 + %or.cond = or i1 %24, %23 + br i1 %or.cond, label %25, label %27 + +25: ; preds = %.thread38 + %26 = tail call ptr @__cxa_allocate_exception(i64 8) #24 + store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %26, align 8, !tbaa !59 + tail call void @__cxa_throw(ptr nonnull %26, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #26 unreachable -28: ; preds = %.thread38 - %29 = getelementptr inbounds nuw i8, ptr %0, i64 19312 - %30 = load ptr, ptr %29, align 8, !tbaa !161 - %.not29 = icmp eq ptr %30, null - br i1 %.not29, label %.thread45, label %31 +27: ; preds = %.thread38 + %28 = getelementptr inbounds nuw i8, ptr %0, i64 19312 + %29 = load ptr, ptr %28, align 8, !tbaa !161 + %.not29 = icmp eq ptr %29, null + br i1 %.not29, label %.thread45, label %30 -31: ; preds = %28 - tail call void @free(ptr noundef nonnull %30) #24 - store ptr null, ptr %29, align 8, !tbaa !161 +30: ; preds = %27 + tail call void @free(ptr noundef nonnull %29) #24 + store ptr null, ptr %28, align 8, !tbaa !161 br label %.thread45 -.thread45: ; preds = %28, %31 - %32 = getelementptr inbounds nuw i8, ptr %0, i64 19320 - tail call void @_ZN16FragmentedWindow4InitEm(ptr noundef nonnull align 8 dereferenceable(512) %32, i64 noundef %spec.store.select1) +.thread45: ; preds = %27, %30 + %31 = getelementptr inbounds nuw i8, ptr %0, i64 19320 + tail call void @_ZN16FragmentedWindow4InitEm(ptr noundef nonnull align 8 dereferenceable(512) %31, i64 noundef %spec.store.select1) store i8 1, ptr %11, align 8, !tbaa !280 - br label %56 + br label %53 -33: ; preds = %20 +32: ; preds = %20 %.pre = load i8, ptr %11, align 8, !tbaa !280, !range !207 %34 = trunc nuw i8 %.pre to i1 br i1 %34, label %56, label %35 @@ -15100,56 +15100,56 @@ define void @_ZN6Unpack4InitEmb(ptr noundef nonnull align 8 captures(none) deref br i1 %21, label %.preheader, label %.loopexit .preheader: ; preds = %35 - %36 = load i64, ptr %7, align 8, !tbaa !164 - %.not3039 = icmp eq i64 %36, 0 + %33 = load i64, ptr %7, align 8, !tbaa !164 + %.not3039 = icmp eq i64 %33, 0 br i1 %.not3039, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %.preheader - %37 = getelementptr inbounds nuw i8, ptr %0, i64 19312 - %38 = load ptr, ptr %37, align 8, !tbaa !161 - %39 = getelementptr inbounds nuw i8, ptr %0, i64 160 - %40 = load i64, ptr %39, align 8, !tbaa !157 - %41 = add i64 %36, -1 - %42 = add nsw i64 %spec.store.select1, -1 - %43 = add i64 %36, 1 - %umax = tail call i64 @llvm.umax.i64(i64 %43, i64 2) - br label %44 + %34 = getelementptr inbounds nuw i8, ptr %0, i64 19312 + %35 = load ptr, ptr %34, align 8, !tbaa !161 + %36 = getelementptr inbounds nuw i8, ptr %0, i64 160 + %37 = load i64, ptr %36, align 8, !tbaa !157 + %38 = add i64 %33, -1 + %39 = add nsw i64 %spec.store.select1, -1 + %40 = add i64 %33, 1 + %umax = tail call i64 @llvm.umax.i64(i64 %40, i64 2) + br label %41 -44: ; preds = %.lr.ph, %44 - %.040 = phi i64 [ 1, %.lr.ph ], [ %51, %44 ] - %45 = sub i64 %40, %.040 - %46 = and i64 %45, %41 - %47 = getelementptr inbounds nuw i8, ptr %38, i64 %46 - %48 = load i8, ptr %47, align 1, !tbaa !27 - %49 = and i64 %45, %42 - %50 = getelementptr inbounds nuw i8, ptr %22, i64 %49 - store i8 %48, ptr %50, align 1, !tbaa !27 - %51 = add nuw i64 %.040, 1 - %exitcond = icmp eq i64 %51, %umax - br i1 %exitcond, label %.loopexit, label %44, !llvm.loop !329 - -.loopexit: ; preds = %44, %.preheader, %35 - %52 = getelementptr inbounds nuw i8, ptr %0, i64 19312 - %53 = load ptr, ptr %52, align 8, !tbaa !161 - %.not31 = icmp eq ptr %53, null - br i1 %.not31, label %55, label %54 - -54: ; preds = %.loopexit - tail call void @free(ptr noundef nonnull %53) #24 - br label %55 +41: ; preds = %.lr.ph, %41 + %.040 = phi i64 [ 1, %.lr.ph ], [ %48, %44 ] + %42 = sub i64 %37, %.040 + %43 = and i64 %42, %38 + %44 = getelementptr inbounds nuw i8, ptr %35, i64 %43 + %45 = load i8, ptr %44, align 1, !tbaa !27 + %46 = and i64 %42, %39 + %47 = getelementptr inbounds nuw i8, ptr %calloc, i64 %46 + store i8 %45, ptr %47, align 1, !tbaa !27 + %48 = add nuw i64 %.040, 1 + %exitcond = icmp eq i64 %48, %umax + br i1 %exitcond, label %.loopexit, label %41, !llvm.loop !329 + +.loopexit: ; preds = %41, %.preheader, %35 + %49 = getelementptr inbounds nuw i8, ptr %0, i64 19312 + %50 = load ptr, ptr %49, align 8, !tbaa !161 + %.not31 = icmp eq ptr %50, null + br i1 %.not31, label %52, label %51 + +51: ; preds = %.loopexit + tail call void @free(ptr noundef nonnull %50) #24 + br label %52 -55: ; preds = %54, %.loopexit - store ptr %22, ptr %52, align 8, !tbaa !161 - br label %56 +52: ; preds = %51, %.loopexit + store ptr %calloc, ptr %49, align 8, !tbaa !161 + br label %53 -56: ; preds = %.thread45, %55, %33 +53: ; preds = %.thread45, %55, %32 store i64 %spec.store.select1, ptr %7, align 8, !tbaa !164 - %57 = add nsw i64 %spec.store.select1, -1 - %58 = getelementptr inbounds nuw i8, ptr %0, i64 59680 - store i64 %57, ptr %58, align 8, !tbaa !159 - br label %59 + %54 = add nsw i64 %spec.store.select1, -1 + %55 = getelementptr inbounds nuw i8, ptr %0, i64 59680 + store i64 %54, ptr %55, align 8, !tbaa !159 + br label %56 -59: ; preds = %6, %56 +56: ; preds = %6, %53 ret void } diff --git a/bench/cmake/optimized/archive_read_disk_posix.ll b/bench/cmake/optimized/archive_read_disk_posix.ll index 8c5e98e9466..ea1b487226b 100644 --- a/bench/cmake/optimized/archive_read_disk_posix.ll +++ b/bench/cmake/optimized/archive_read_disk_posix.ll @@ -2628,9 +2628,9 @@ archive_read_disk_gname.exit.thread.i: ; preds = %648, %archive_read_ %669 = load i32, ptr %13, align 8, !tbaa !96 %670 = call i32 @archive_read_disk_entry_from_file(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %669, ptr noundef nonnull %.0146.i) #17 %671 = icmp eq i32 %670, 0 - %.not217 = xor i1 %671, true - %brmerge = or i1 %.not217, %.not187.i - %.mux = select i1 %.not217, i32 %670, i32 0 + %.not216 = xor i1 %671, true + %brmerge = or i1 %.not216, %.not187.i + %.mux = select i1 %.not216, i32 %670, i32 0 br i1 %brmerge, label %674, label %672 672: ; preds = %668 @@ -2737,9 +2737,9 @@ tree_enter_initial_dir.exit: ; preds = %683, %687, %691 %720 = call noalias ptr @malloc(i64 noundef %719) #23 store ptr %720, ptr %714, align 8, !tbaa !105 %721 = icmp eq ptr %720, null - br i1 %721, label %setup_sparse.exit, label %._crit_edge38.i + br i1 %721, label %setup_sparse.exit, label %722 -._crit_edge38.i: ; preds = %713 +722: ; preds = %713 %.pre.i47 = load i32, ptr %710, align 8, !tbaa !151 br label %722 diff --git a/bench/cmake/optimized/archive_read_support_format_mtree.ll b/bench/cmake/optimized/archive_read_support_format_mtree.ll index 1cc808d43f0..8f57df373c5 100644 --- a/bench/cmake/optimized/archive_read_support_format_mtree.ll +++ b/bench/cmake/optimized/archive_read_support_format_mtree.ll @@ -1493,7 +1493,7 @@ define internal range(i32 -30, 2) i32 @read_data(ptr noundef %0, ptr noundef wri store ptr null, ptr %1, align 8, !tbaa !92 store i64 0, ptr %3, align 8, !tbaa !45 store i64 0, ptr %2, align 8, !tbaa !45 - br label %43 + br label %42 12: ; preds = %4 %13 = getelementptr inbounds nuw i8, ptr %7, i64 32 @@ -1515,13 +1515,13 @@ define internal range(i32 -30, 2) i32 @read_data(ptr noundef %0, ptr noundef wri 20: ; preds = %16 tail call void (ptr, i32, ptr, ...) @archive_set_error(ptr noundef nonnull %0, i32 noundef 12, ptr noundef nonnull @.str.45) #19 - br label %43 + br label %42 21: ; preds = %._crit_edge, %12 %22 = phi i32 [ %.pre, %._crit_edge ], [ %9, %12 ] %23 = phi ptr [ %18, %._crit_edge ], [ %14, %12 ] store ptr %23, ptr %1, align 8, !tbaa !92 - %24 = getelementptr inbounds nuw i8, ptr %7, i64 40 + %24 = getelementptr inbounds nuw i8, ptr %7, i64 39 %25 = load i64, ptr %24, align 8, !tbaa !91 store i64 %25, ptr %3, align 8, !tbaa !45 %26 = getelementptr inbounds nuw i8, ptr %7, i64 24 @@ -1535,28 +1535,28 @@ define internal range(i32 -30, 2) i32 @read_data(ptr noundef %0, ptr noundef wri %33 = icmp slt i64 %32, 0 br i1 %33, label %34, label %37 -34: ; preds = %21 +34:; preds = %21 %35 = tail call ptr @__errno_location() #22 %36 = load i32, ptr %35, align 4, !tbaa !67 tail call void (ptr, i32, ptr, ...) @archive_set_error(ptr noundef nonnull %0, i32 noundef %36, ptr noundef nonnull @.str.73) #19 br label %43 -37: ; preds = %21 +37:; preds = %21 %38 = icmp eq i64 %32, 0 br i1 %38, label %39, label %40 39: ; preds = %37 store i64 0, ptr %2, align 8, !tbaa !45 - br label %43 + br label %42 -40: ; preds = %37 - %41 = load i64, ptr %24, align 8, !tbaa !91 - %42 = add nsw i64 %41, %32 - store i64 %42, ptr %24, align 8, !tbaa !91 +39: ; preds = %37 + %40 = load i64, ptr %24, align 8, !tbaa !91 + %41 = add nsw i64 %40, %32 + store i64 %41, ptr %24, align 8, !tbaa !91 store i64 %32, ptr %2, align 8, !tbaa !45 - br label %43 + br label %42 -43: ; preds = %40, %39, %34, %20, %11 +42: ; preds = %39, %39, %34, %20, %11 %.0 = phi i32 [ 1, %11 ], [ -30, %20 ], [ -20, %34 ], [ 1, %39 ], [ 0, %40 ] ret i32 %.0 } diff --git a/bench/cpython/optimized/Hacl_Hash_Blake2b_Simd256.ll b/bench/cpython/optimized/Hacl_Hash_Blake2b_Simd256.ll index 2a7895859ed..630432ec2c1 100644 --- a/bench/cpython/optimized/Hacl_Hash_Blake2b_Simd256.ll +++ b/bench/cpython/optimized/Hacl_Hash_Blake2b_Simd256.ll @@ -1017,7 +1017,7 @@ define hidden noalias noundef ptr @python_hashlib_Hacl_Hash_Blake2b_Simd256_mall %10 = icmp eq i8 %9, 0 br i1 %10, label %malloc_raw.exit, label %11 -11: ; preds = %3 +11: ; preds = %3 %12 = zext i8 %9 to i64 tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %4, ptr readonly align 1 %2, i64 %12, i1 false) %13 = shl nuw nsw i64 %12, 8 @@ -1036,49 +1036,49 @@ malloc_raw.exit: ; preds = %3, %11 %.sroa.8.0.copyload.i = load i64, ptr %.sroa.8.0..sroa_idx.i, align 8, !tbaa !8 %.sroa.9.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 16 %.sroa.9.0.copyload.i = load i16, ptr %.sroa.9.0..sroa_idx.i, align 8 - %14 = zext i16 %.sroa.9.0.copyload.i to i64 + %12 = zext i16 %.sroa.9.0.copyload.i to i64 %.sroa.1169.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 24 %.sroa.1169.0.copyload.i = load ptr, ptr %.sroa.1169.0..sroa_idx.i, align 8, !tbaa !14 %.sroa.13.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 32 %.sroa.13.0.copyload.i = load ptr, ptr %.sroa.13.0..sroa_idx.i, align 8, !tbaa !14 - %15 = getelementptr i8, ptr %6, i64 32 - %16 = getelementptr i8, ptr %6, i64 64 - %17 = getelementptr i8, ptr %6, i64 96 - store <4 x i64> , ptr %16, align 32, !tbaa !3 - store <4 x i64> , ptr %17, align 32, !tbaa !3 + %13 = getelementptr i8, ptr %6, i64 32 + %14 = getelementptr i8, ptr %6, i64 64 + %15 = getelementptr i8, ptr %6, i64 96 + store <4 x i64> , ptr %14, align 32, !tbaa !3 + store <4 x i64> , ptr %15, align 32, !tbaa !3 %.sroa.1169.0.copyload.val.i = load i64, ptr %.sroa.1169.0.copyload.i, align 1 - %18 = getelementptr i8, ptr %.sroa.1169.0.copyload.i, i64 8 - %.val116.i = load i64, ptr %18, align 1 + %16 = getelementptr i8, ptr %.sroa.1169.0.copyload.i, i64 8 + %.val116.i = load i64, ptr %16, align 1 %.sroa.13.0.copyload.val.i = load i64, ptr %.sroa.13.0.copyload.i, align 1 - %19 = getelementptr i8, ptr %.sroa.13.0.copyload.i, i64 8 - %.val.i = load i64, ptr %19, align 1 - %20 = zext i8 %.sroa.0.0.copyload.i to i64 - %21 = zext i8 %.sroa.5.0.copyload.i to i64 - %22 = shl nuw nsw i64 %21, 16 - %23 = zext i8 %.sroa.6.0.copyload.i to i64 - %24 = shl nuw nsw i64 %23, 24 - %25 = zext i32 %.sroa.7.0.copyload.i to i64 - %26 = shl nuw i64 %25, 32 - %27 = or disjoint i64 %.pre-phi.i, %20 - %28 = add nuw nsw i64 %22, %27 - %29 = add nuw nsw i64 %28, %24 - %30 = add nuw nsw i64 %29, %26 - %31 = xor i64 %30, 7640891576956012808 - %32 = xor i64 %.sroa.8.0.copyload.i, -4942790177534073029 - %33 = xor i64 %14, 4354685564936845355 - %34 = xor i64 %.sroa.1169.0.copyload.val.i, 5840696475078001361 - %35 = xor i64 %.val116.i, -7276294671716946913 - %36 = xor i64 %.sroa.13.0.copyload.val.i, 2270897969802886507 - %37 = xor i64 %.val.i, 6620516959819538809 - %38 = insertelement <4 x i64> , i64 %31, i64 0 - %39 = insertelement <4 x i64> %38, i64 %32, i64 1 - %40 = insertelement <4 x i64> %39, i64 %33, i64 2 - store <4 x i64> %40, ptr %6, align 32, !tbaa !3 - %41 = insertelement <4 x i64> poison, i64 %34, i64 0 - %42 = insertelement <4 x i64> %41, i64 %35, i64 1 - %43 = insertelement <4 x i64> %42, i64 %36, i64 2 - %44 = insertelement <4 x i64> %43, i64 %37, i64 3 - store <4 x i64> %44, ptr %15, align 32, !tbaa !3 + %17 = getelementptr i8, ptr %.sroa.13.0.copyload.i, i64 8 + %.val.i = load i64, ptr %17, align 1 + %18 = zext i8 %.sroa.0.0.copyload.i to i64 + %19 = zext i8 %.sroa.5.0.copyload.i to i64 + %20 = shl nuw nsw i64 %19, 16 + %21 = zext i8 %.sroa.6.0.copyload.i to i64 + %22 = shl nuw nsw i64 %21, 24 + %23 = zext i32 %.sroa.7.0.copyload.i to i64 + %24 = shl nuw i64 %23, 32 + %25 = or disjoint i64 %.pre-phi.i, %18 + %26 = add nuw nsw i64 %20, %25 + %27 = add nuw nsw i64 %26, %22 + %28 = add nuw nsw i64 %27, %24 + %29 = xor i64 %28, 7640891576956012808 + %30 = xor i64 %.sroa.8.0.copyload.i, -4942790177534073029 + %31 = xor i64 %12, 4354685564936845355 + %32 = xor i64 %.sroa.1169.0.copyload.val.i, 5840696475078001361 + %33 = xor i64 %.val116.i, -7276294671716946913 + %34 = xor i64 %.sroa.13.0.copyload.val.i, 2270897969802886507 + %35 = xor i64 %.val.i, 6620516959819538809 + %36 = insertelement <4 x i64> , i64 %29, i64 0 + %37 = insertelement <4 x i64> %36, i64 %30, i64 1 + %38 = insertelement <4 x i64> %37, i64 %31, i64 2 + store <4 x i64> %38, ptr %6, align 32, !tbaa !3 + %39 = insertelement <4 x i64> poison, i64 %32, i64 0 + %40 = insertelement <4 x i64> %39, i64 %33, i64 1 + %41 = insertelement <4 x i64> %40, i64 %34, i64 2 + %42 = insertelement <4 x i64> %41, i64 %35, i64 3 + store <4 x i64> %42, ptr %13, align 32, !tbaa !3 ret ptr %8 } diff --git a/bench/cpython/optimized/Hacl_Hash_Blake2s_Simd128.ll b/bench/cpython/optimized/Hacl_Hash_Blake2s_Simd128.ll index 2bde321b51f..ef001ae2e3a 100644 --- a/bench/cpython/optimized/Hacl_Hash_Blake2s_Simd128.ll +++ b/bench/cpython/optimized/Hacl_Hash_Blake2s_Simd128.ll @@ -898,12 +898,12 @@ define hidden noalias noundef ptr @python_hashlib_Hacl_Hash_Blake2s_Simd128_mall %10 = icmp eq i8 %9, 0 br i1 %10, label %malloc_raw.exit, label %11 -11: ; preds = %3 +9: ; preds = %3 %12 = zext i8 %9 to i64 tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %4, ptr readonly align 1 %2, i64 %12, i1 false) br label %malloc_raw.exit -malloc_raw.exit: ; preds = %3, %11 +malloc_raw.exit: ; preds = %3, %9 %.sroa.0.0.copyload.i = load i8, ptr %0, align 8, !tbaa !3 %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 2 %.sroa.5.0.copyload.i = load i16, ptr %.sroa.5.0..sroa_idx.i, align 2 @@ -950,8 +950,8 @@ malloc_raw.exit: ; preds = %3, %11 %37 = xor i32 %.sroa.14.0.copyload.val.i, 528734635 %38 = xor i32 %.val.i, 1541459225 %39 = insertelement <4 x i32> poison, i32 %30, i64 0 - %40 = insertelement <4 x i32> %39, i32 %31, i64 1 - %41 = insertelement <4 x i32> %40, i32 %32, i64 2 + %39 = insertelement <4 x i32> %39, i32 %31, i64 1 + %40 = insertelement <4 x i32> %39, i32 %32, i64 2 %42 = insertelement <4 x i32> %41, i32 %34, i64 3 store <4 x i32> %42, ptr %6, align 16, !tbaa !3 %43 = insertelement <4 x i32> poison, i32 %35, i64 0 diff --git a/bench/darktable/optimized/film.ll b/bench/darktable/optimized/film.ll index 85cc0690ac5..a3599d0ed59 100644 --- a/bench/darktable/optimized/film.ll +++ b/bench/darktable/optimized/film.ll @@ -241,11 +241,11 @@ define noalias noundef ptr @dt_sqlite3_escape_wildcards(ptr noundef readonly cap 13: ; preds = %.preheader, %.preheader, %.preheader %14 = getelementptr inbounds nuw i8, ptr %.0, i64 1 store i8 126, ptr %.0, align 1, !tbaa !6 - %.pre = load i8, ptr %.028, align 1, !tbaa !6 + %.pre42 = load i8, ptr %.028, align 1, !tbaa !6 br label %15 15: ; preds = %.preheader, %13 - %16 = phi i8 [ %.pre, %13 ], [ %12, %.preheader ] + %16 = phi i8 [ %.pre42, %13 ], [ %12, %.preheader ] %.1 = phi ptr [ %14, %13 ], [ %.0, %.preheader ] %17 = getelementptr inbounds nuw i8, ptr %.1, i64 1 store i8 %16, ptr %.1, align 1, !tbaa !6 diff --git a/bench/darktable/optimized/introspection_colorzones.ll b/bench/darktable/optimized/introspection_colorzones.ll index cf6664b8542..0ab18aee3e0 100644 --- a/bench/darktable/optimized/introspection_colorzones.ll +++ b/bench/darktable/optimized/introspection_colorzones.ll @@ -7491,7 +7491,7 @@ define void @init_pipe(ptr noundef readonly captures(none) %0, ptr noundef readn %12 = getelementptr inbounds nuw i8, ptr %6, i64 4 br label %19 -13: ; preds = %41 +13: ; preds = %40 %14 = load i32, ptr %6, align 4, !tbaa !142 %15 = getelementptr inbounds nuw i8, ptr %4, i64 48 store i32 %14, ptr %15, align 8, !tbaa !69 @@ -7501,7 +7501,7 @@ define void @init_pipe(ptr noundef readonly captures(none) %0, ptr noundef readn store i32 %17, ptr %18, align 4, !tbaa !108 ret void -19: ; preds = %3, %41 +19: ; preds = %3, %40 %indvars.iv35 = phi i64 [ 0, %3 ], [ %indvars.iv.next36, %41 ] %20 = getelementptr inbounds nuw i32, ptr %8, i64 %indvars.iv35 %21 = load i32, ptr %20, align 4, !tbaa !19 @@ -7537,36 +7537,36 @@ define void @init_pipe(ptr noundef readonly captures(none) %0, ptr noundef readn br i1 %38, label %.lr.ph, label %41 .lr.ph: ; preds = %19 - %39 = getelementptr inbounds nuw [20 x %struct.dt_iop_colorzones_node_t], ptr %12, i64 %indvars.iv35 - %40 = getelementptr inbounds nuw i8, ptr %22, i64 24 + %38 = getelementptr inbounds nuw [20 x %struct.dt_iop_colorzones_node_t], ptr %12, i64 %indvars.iv35 + %39 = getelementptr inbounds nuw i8, ptr %22, i64 24 %wide.trip.count = zext nneg i32 %34 to i64 - br label %42 - -._crit_edge: ; preds = %42 - store i8 %51, ptr %27, align 4, !tbaa !162 br label %41 -41: ; preds = %._crit_edge, %19 +._crit_edge: ; preds = %41 + store i8 %50, ptr %27, align 4, !tbaa !162 + br label %40 + +40: ; preds = %._crit_edge, %19 %indvars.iv.next36 = add nuw nsw i64 %indvars.iv35, 1 %exitcond38.not = icmp eq i64 %indvars.iv.next36, 3 br i1 %exitcond38.not, label %13, label %19 -42: ; preds = %.lr.ph, %42 +41: ; preds = %.lr.ph, %41 %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %42 ] - %43 = phi i8 [ 0, %.lr.ph ], [ %51, %42 ] - %44 = getelementptr inbounds nuw %struct.dt_iop_colorzones_node_t, ptr %39, i64 %indvars.iv - %45 = load float, ptr %44, align 4, !tbaa !15 - %46 = getelementptr inbounds nuw i8, ptr %44, i64 4 - %47 = load float, ptr %46, align 4, !tbaa !17 - %48 = zext i8 %43 to i64 - %49 = getelementptr inbounds nuw %struct.CurveAnchorPoint, ptr %40, i64 %48 - store float %45, ptr %49, align 8, !tbaa !168 - %50 = getelementptr inbounds nuw i8, ptr %49, i64 4 - store float %47, ptr %50, align 4, !tbaa !170 - %51 = add i8 %43, 1 + %42 = phi i8 [ 0, %.lr.ph ], [ %50, %42 ] + %43 = getelementptr inbounds nuw %struct.dt_iop_colorzones_node_t, ptr %38, i64 %indvars.iv + %44 = load float, ptr %43, align 4, !tbaa !15 + %45 = getelementptr inbounds nuw i8, ptr %43, i64 4 + %46 = load float, ptr %45, align 4, !tbaa !17 + %47 = zext i8 %42 to i64 + %48 = getelementptr inbounds nuw %struct.CurveAnchorPoint, ptr %39, i64 %47 + store float %44, ptr %48, align 8, !tbaa !168 + %49 = getelementptr inbounds nuw i8, ptr %48, i64 4 + store float %46, ptr %49, align 4, !tbaa !170 + %50 = add i8 %42, 1 %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 %42 + br i1 %exitcond.not, label %._crit_edge, label %41 } ; Function Attrs: nounwind uwtable diff --git a/bench/duckdb/optimized/fastcover.ll b/bench/duckdb/optimized/fastcover.ll index 314ea48dc84..77f086e4321 100644 --- a/bench/duckdb/optimized/fastcover.ll +++ b/bench/duckdb/optimized/fastcover.ll @@ -1272,7 +1272,7 @@ define internal void @_ZN11duckdb_zstdL23FASTCOVER_tryParametersEPv(ptr noundef 22: ; preds = %1 %23 = load i32, ptr @_ZN11duckdb_zstdL14g_displayLevelE, align 4, !tbaa !10 %24 = icmp sgt i32 %23, 0 - br i1 %24, label %25, label %60 + br i1 %24, label %25, label %57 25: ; preds = %22 %26 = load ptr, ptr @stderr, align 8, !tbaa !13 @@ -1296,40 +1296,40 @@ define internal void @_ZN11duckdb_zstdL23FASTCOVER_tryParametersEPv(ptr noundef %41 = udiv i64 %40, 100 %42 = trunc i64 %41 to i32 call void @llvm.lifetime.start.p0(ptr nonnull %4) - %43 = getelementptr inbounds nuw i8, ptr %14, i64 %34 - %44 = sub i64 %8, %34 - %45 = load ptr, ptr %5, align 8, !tbaa !29 - %46 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %47 = load ptr, ptr %46, align 8, !tbaa !30 - %48 = getelementptr inbounds nuw i8, ptr %5, i64 24 - %49 = load i64, ptr %48, align 8, !tbaa !31 - %50 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %51 = load ptr, ptr %50, align 8, !tbaa !28 - call void @_ZN11duckdb_zstd16COVER_selectDictEPhmmPKhPKmjmmNS_20ZDICT_cover_params_tEPmm(ptr dead_on_unwind nonnull writable sret(%"struct.duckdb_zstd::COVER_dictSelection") align 8 %4, ptr noundef nonnull %43, i64 noundef %8, i64 noundef %44, ptr noundef %45, ptr noundef %47, i32 noundef %42, i64 noundef %36, i64 noundef %49, ptr noundef nonnull byval(%"struct.duckdb_zstd::ZDICT_cover_params_t") align 8 %2, ptr noundef %51, i64 noundef -1) + %40 = getelementptr inbounds nuw i8, ptr %14, i64 %34 + %41 = sub i64 %8, %34 + %42 = load ptr, ptr %5, align 8, !tbaa !29 + %43 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %44 = load ptr, ptr %43, align 8, !tbaa !30 + %45 = getelementptr inbounds nuw i8, ptr %5, i64 24 + %46 = load i64, ptr %45, align 8, !tbaa !31 + %47 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %48 = load ptr, ptr %47, align 8, !tbaa !28 + call void @_ZN11duckdb_zstd16COVER_selectDictEPhmmPKhPKmjmmNS_20ZDICT_cover_params_tEPmm(ptr dead_on_unwind nonnull writable sret(%"struct.duckdb_zstd::COVER_dictSelection") align 8 %4, ptr noundef nonnull %40, i64 noundef %8, i64 noundef %41, ptr noundef %42, ptr noundef %44, i32 noundef %42, i64 noundef %36, i64 noundef %46, ptr noundef nonnull byval(%"struct.duckdb_zstd::ZDICT_cover_params_t") align 8 %2, ptr noundef %48, i64 noundef -1) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %4, i64 24, i1 false), !tbaa.struct !72 call void @llvm.lifetime.end.p0(ptr nonnull %4) - %52 = call noundef i32 @_ZN11duckdb_zstd26COVER_dictSelectionIsErrorENS_19COVER_dictSelectionE(ptr noundef nonnull byval(%"struct.duckdb_zstd::COVER_dictSelection") align 8 %3) - %.not = icmp ne i32 %52, 0 - %53 = load i32, ptr @_ZN11duckdb_zstdL14g_displayLevelE, align 4 - %54 = icmp sgt i32 %53, 0 - %or.cond42 = select i1 %.not, i1 %54, i1 false - br i1 %or.cond42, label %55, label %60 - -55: ; preds = %28 - %56 = load ptr, ptr @stderr, align 8, !tbaa !13 - %57 = call i64 @fwrite(ptr nonnull @.str.26, i64 28, i64 1, ptr %56) #12 + %49 = call noundef i32 @_ZN11duckdb_zstd26COVER_dictSelectionIsErrorENS_19COVER_dictSelectionE(ptr noundef nonnull byval(%"struct.duckdb_zstd::COVER_dictSelection") align 8 %3) + %.not = icmp ne i32 %49, 0 + %50 = load i32, ptr @_ZN11duckdb_zstdL14g_displayLevelE, align 4 + %51 = icmp sgt i32 %50, 0 + %or.cond42 = select i1 %.not, i1 %51, i1 false + br i1 %or.cond42, label %52, label %57 + +52: ; preds = %28 + %53 = load ptr, ptr @stderr, align 8, !tbaa !13 + %54 = call i64 @fwrite(ptr nonnull @.str.26, i64 28, i64 1, ptr %53) #12 br label %.sink.split -.sink.split: ; preds = %25, %55 - %58 = load ptr, ptr @stderr, align 8, !tbaa !13 - %59 = call i32 @fflush(ptr noundef %58) - br label %60 +.sink.split: ; preds = %25, %52 + %55 = load ptr, ptr @stderr, align 8, !tbaa !13 + %56 = call i32 @fflush(ptr noundef %55) + br label %57 -60: ; preds = %.sink.split, %28, %22 +57: ; preds = %.sink.split, %28, %22 call void @free(ptr noundef %14) #15 - %61 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %62 = load ptr, ptr %61, align 8, !tbaa !57 - call void @_ZN11duckdb_zstd17COVER_best_finishEPNS_12COVER_best_sENS_20ZDICT_cover_params_tENS_19COVER_dictSelectionE(ptr noundef %62, ptr noundef nonnull byval(%"struct.duckdb_zstd::ZDICT_cover_params_t") align 8 %2, ptr noundef nonnull byval(%"struct.duckdb_zstd::COVER_dictSelection") align 8 %3) + %58 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %59 = load ptr, ptr %58, align 8, !tbaa !57 + call void @_ZN11duckdb_zstd17COVER_best_finishEPNS_12COVER_best_sENS_20ZDICT_cover_params_tENS_19COVER_dictSelectionE(ptr noundef %59, ptr noundef nonnull byval(%"struct.duckdb_zstd::ZDICT_cover_params_t") align 8 %2, ptr noundef nonnull byval(%"struct.duckdb_zstd::COVER_dictSelection") align 8 %3) call void @free(ptr noundef nonnull %0) #15 call void @free(ptr noundef %13) #15 call void @_ZN11duckdb_zstd23COVER_dictSelectionFreeENS_19COVER_dictSelectionE(ptr noundef nonnull byval(%"struct.duckdb_zstd::COVER_dictSelection") align 8 %3) diff --git a/bench/flac/optimized/options.ll b/bench/flac/optimized/options.ll index d3e7d75fb27..2e5da426be6 100644 --- a/bench/flac/optimized/options.ll +++ b/bench/flac/optimized/options.ll @@ -2285,7 +2285,7 @@ define internal fastcc ptr @append_argument(ptr noundef captures(none) %0, i32 n %.pre.i = load ptr, ptr %8, align 8, !tbaa !45 br label %11 -11: ; preds = %10, %6 +11:; preds = %10, %6 %12 = phi ptr [ %.pre.i, %10 ], [ %7, %6 ] %13 = load i32, ptr %3, align 4, !tbaa !62 %14 = zext i32 %13 to i64 @@ -2307,11 +2307,11 @@ define internal fastcc ptr @append_argument(ptr noundef captures(none) %0, i32 n 22: ; preds = %20 tail call void @die(ptr noundef nonnull @.str.97) #18 - %.pre22.i = load i32, ptr %3, align 4, !tbaa !62 + %.pre23.i = load i32, ptr %3, align 4, !tbaa !62 br label %23 23: ; preds = %22, %20 - %24 = phi i32 [ %.pre22.i, %22 ], [ %17, %20 ] + %24 = phi i32 [ %.pre23.i, %22 ], [ %17, %20 ] %25 = shl i32 %24, 1 store i32 %25, ptr %3, align 4, !tbaa !62 %26 = getelementptr inbounds nuw i8, ptr %0, i64 72 @@ -2343,11 +2343,11 @@ safe_realloc_mul_2op_.exit.i: ; preds = %23 35: ; preds = %safe_realloc_mul_2op_.exit.i, %safe_realloc_mul_2op_.exit.thread.i tail call void @die(ptr noundef nonnull @.str.97) #18 - %.pre23.i = load ptr, ptr %26, align 8, !tbaa !45 + %.pre24.i = load ptr, ptr %26, align 8, !tbaa !45 br label %36 36: ; preds = %35, %safe_realloc_mul_2op_.exit.i, %safe_realloc_mul_2op_.exit.thread20.i - %37 = phi ptr [ %31, %safe_realloc_mul_2op_.exit.thread20.i ], [ %.pre23.i, %35 ], [ %33, %safe_realloc_mul_2op_.exit.i ] + %37 = phi ptr [ %31, %safe_realloc_mul_2op_.exit.thread20.i ], [ %.pre24.i, %35 ], [ %33, %safe_realloc_mul_2op_.exit.i ] %38 = zext i32 %17 to i64 %39 = getelementptr inbounds nuw %struct.Argument, ptr %37, i64 %38 %40 = load i32, ptr %3, align 4, !tbaa !62 @@ -2355,11 +2355,11 @@ safe_realloc_mul_2op_.exit.i: ; preds = %23 %42 = zext i32 %41 to i64 %43 = mul nuw nsw i64 %42, 24 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 %39, i8 noundef 0, i64 noundef range(i64 0, 206158430161) %43, i1 noundef false) #18 - %.pre24.i = load i32, ptr %18, align 8, !tbaa !44 + %.pre25.i = load i32, ptr %18, align 8, !tbaa !44 br label %append_new_argument.exit append_new_argument.exit: ; preds = %16, %36 - %44 = phi i32 [ %.pre24.i, %36 ], [ %19, %16 ] + %44 = phi i32 [ %.pre25.i, %36 ], [ %19, %16 ] %45 = getelementptr inbounds nuw i8, ptr %0, i64 72 %46 = load ptr, ptr %45, align 8, !tbaa !45 %47 = add i32 %44, 1 @@ -2786,7 +2786,7 @@ define internal fastcc void @append_new_operation(ptr noundef captures(none) %0, %.pre = load ptr, ptr %3, align 8, !tbaa !34 br label %11 -11: ; preds = %10, %7 +11:; preds = %10, %7 %12 = phi ptr [ %.pre, %10 ], [ %8, %7 ] %13 = load i32, ptr %4, align 4, !tbaa !79 %14 = zext i32 %13 to i64 @@ -2808,11 +2808,11 @@ define internal fastcc void @append_new_operation(ptr noundef captures(none) %0, 22: ; preds = %20 tail call void @die(ptr noundef nonnull @.str.97) #18 - %.pre22 = load i32, ptr %4, align 4, !tbaa !79 + %.pre23 = load i32, ptr %4, align 4, !tbaa !79 br label %23 23: ; preds = %22, %20 - %24 = phi i32 [ %.pre22, %22 ], [ %17, %20 ] + %24 = phi i32 [ %.pre23, %22 ], [ %17, %20 ] %25 = shl i32 %24, 1 store i32 %25, ptr %4, align 4, !tbaa !79 %26 = load ptr, ptr %3, align 8, !tbaa !34 @@ -2843,11 +2843,11 @@ safe_realloc_mul_2op_.exit: ; preds = %23 34: ; preds = %safe_realloc_mul_2op_.exit.thread, %safe_realloc_mul_2op_.exit tail call void @die(ptr noundef nonnull @.str.97) #18 - %.pre23 = load ptr, ptr %3, align 8, !tbaa !34 + %.pre24 = load ptr, ptr %3, align 8, !tbaa !34 br label %35 35: ; preds = %safe_realloc_mul_2op_.exit.thread20, %34, %safe_realloc_mul_2op_.exit - %36 = phi ptr [ %30, %safe_realloc_mul_2op_.exit.thread20 ], [ %.pre23, %34 ], [ %32, %safe_realloc_mul_2op_.exit ] + %36 = phi ptr [ %30, %safe_realloc_mul_2op_.exit.thread20 ], [ %.pre24, %34 ], [ %32, %safe_realloc_mul_2op_.exit ] %37 = zext i32 %17 to i64 %38 = getelementptr inbounds nuw %struct.Operation, ptr %36, i64 %37 %39 = load i32, ptr %4, align 4, !tbaa !79 @@ -2855,11 +2855,11 @@ safe_realloc_mul_2op_.exit: ; preds = %23 %41 = zext i32 %40 to i64 %42 = mul nuw nsw i64 %41, 48 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 %38, i8 noundef 0, i64 noundef range(i64 0, 206158430161) %42, i1 noundef false) #18 - %.pre24 = load i32, ptr %18, align 8, !tbaa !33 + %.pre25 = load i32, ptr %18, align 8, !tbaa !33 br label %43 43: ; preds = %35, %16 - %44 = phi i32 [ %.pre24, %35 ], [ %19, %16 ] + %44 = phi i32 [ %.pre25, %35 ], [ %19, %16 ] %45 = load ptr, ptr %3, align 8, !tbaa !34 %46 = add i32 %44, 1 store i32 %46, ptr %18, align 8, !tbaa !33 diff --git a/bench/flac/optimized/replaygain_analysis.ll b/bench/flac/optimized/replaygain_analysis.ll index 01b6f12efa0..e786b1d9124 100644 --- a/bench/flac/optimized/replaygain_analysis.ll +++ b/bench/flac/optimized/replaygain_analysis.ll @@ -181,10 +181,10 @@ ReallocateWindowBuffer.exit17.thread.i: ; preds = %29 ReallocateWindowBuffer.exit17.i: ; preds = %29 store ptr %35, ptr @rstepbuf, align 8, !tbaa !21 - br i1 %37, label %ResetSampleFrequency.exit.thread, label %38 + br i1 %37, label %ResetSampleFrequency.exit.thread, label %33 -38: ; preds = %ReallocateWindowBuffer.exit17.i - %39 = load i32, ptr @sampleWindow, align 4, !tbaa !18 +33: ; preds = %ReallocateWindowBuffer.exit17.i + %34 = load i32, ptr @sampleWindow, align 4, !tbaa !18 %40 = load ptr, ptr @loutbuf, align 8, !tbaa !21 %41 = add i32 %39, 10 %42 = zext i32 %41 to i64 @@ -195,19 +195,19 @@ ReallocateWindowBuffer.exit17.i: ; preds = %29 %or.cond.i.i18.i = and i1 %45, %46 br i1 %or.cond.i.i18.i, label %ReallocateWindowBuffer.exit19.thread.i, label %ReallocateWindowBuffer.exit19.i -ReallocateWindowBuffer.exit19.thread.i: ; preds = %38 +ReallocateWindowBuffer.exit19.thread.i: ; preds = %33 tail call void @free(ptr noundef %40) #15 store ptr null, ptr @loutbuf, align 8, !tbaa !21 br label %ResetSampleFrequency.exit.thread -ReallocateWindowBuffer.exit19.i: ; preds = %38 +ReallocateWindowBuffer.exit19.i: ; preds = %33 store ptr %44, ptr @loutbuf, align 8, !tbaa !21 - br i1 %46, label %ResetSampleFrequency.exit.thread, label %47 + br i1 %46, label %ResetSampleFrequency.exit.thread, label %37 -47: ; preds = %ReallocateWindowBuffer.exit19.i - %48 = load i32, ptr @sampleWindow, align 4, !tbaa !18 +37: ; preds = %ReallocateWindowBuffer.exit19.i + %38 = load i32, ptr @sampleWindow, align 4, !tbaa !18 %49 = load ptr, ptr @routbuf, align 8, !tbaa !21 - %50 = add i32 %48, 10 + %50 = add i32 %38, 10 %51 = zext i32 %50 to i64 %52 = shl nuw nsw i64 %51, 2 %53 = tail call ptr @realloc(ptr noundef %49, i64 noundef range(i64 0, 17179869181) %52) #17 @@ -216,58 +216,58 @@ ReallocateWindowBuffer.exit19.i: ; preds = %38 %or.cond.i.i20.i = and i1 %54, %55 br i1 %or.cond.i.i20.i, label %ReallocateWindowBuffer.exit21.thread.i, label %ReallocateWindowBuffer.exit21.i -ReallocateWindowBuffer.exit21.thread.i: ; preds = %47 +ReallocateWindowBuffer.exit21.thread.i: ; preds = %37 tail call void @free(ptr noundef %49) #15 store ptr null, ptr @routbuf, align 8, !tbaa !21 br label %ResetSampleFrequency.exit.thread -ReallocateWindowBuffer.exit21.i: ; preds = %47 +ReallocateWindowBuffer.exit21.i: ; preds = %37 store ptr %53, ptr @routbuf, align 8, !tbaa !21 br i1 %55, label %ResetSampleFrequency.exit.thread, label %.preheader.i .preheader.i: ; preds = %ReallocateWindowBuffer.exit21.i - %56 = load ptr, ptr @rstepbuf, align 8, !tbaa !21 - %57 = load ptr, ptr @loutbuf, align 8, !tbaa !21 - %58 = load ptr, ptr @lstepbuf, align 8, !tbaa !21 - br label %59 + %41 = load ptr, ptr @rstepbuf, align 8, !tbaa !21 + %42 = load ptr, ptr @loutbuf, align 8, !tbaa !21 + %43 = load ptr, ptr @lstepbuf, align 8, !tbaa !21 + br label %44 -59: ; preds = %59, %.preheader.i +44: ; preds = %44, %.preheader.i %indvars.iv.i = phi i64 [ 0, %.preheader.i ], [ %indvars.iv.next.i, %59 ] - %60 = getelementptr inbounds nuw float, ptr %53, i64 %indvars.iv.i - store float 0.000000e+00, ptr %60, align 4, !tbaa !23 - %61 = getelementptr inbounds nuw float, ptr %56, i64 %indvars.iv.i - store float 0.000000e+00, ptr %61, align 4, !tbaa !23 - %62 = getelementptr inbounds nuw float, ptr @rinprebuf, i64 %indvars.iv.i - store float 0.000000e+00, ptr %62, align 4, !tbaa !23 - %63 = getelementptr inbounds nuw float, ptr %57, i64 %indvars.iv.i - store float 0.000000e+00, ptr %63, align 4, !tbaa !23 - %64 = getelementptr inbounds nuw float, ptr %58, i64 %indvars.iv.i - store float 0.000000e+00, ptr %64, align 4, !tbaa !23 - %65 = getelementptr inbounds nuw float, ptr @linprebuf, i64 %indvars.iv.i - store float 0.000000e+00, ptr %65, align 4, !tbaa !23 + %45 = getelementptr inbounds nuw float, ptr %53, i64 %indvars.iv.i + store float 0.000000e+00, ptr %45, align 4, !tbaa !23 + %46 = getelementptr inbounds nuw float, ptr %41, i64 %indvars.iv.i + store float 0.000000e+00, ptr %46, align 4, !tbaa !23 + %47 = getelementptr inbounds nuw float, ptr @rinprebuf, i64 %indvars.iv.i + store float 0.000000e+00, ptr %47, align 4, !tbaa !23 + %48 = getelementptr inbounds nuw float, ptr %42, i64 %indvars.iv.i + store float 0.000000e+00, ptr %48, align 4, !tbaa !23 + %49 = getelementptr inbounds nuw float, ptr %43, i64 %indvars.iv.i + store float 0.000000e+00, ptr %49, align 4, !tbaa !23 + %50 = getelementptr inbounds nuw float, ptr @linprebuf, i64 %indvars.iv.i + store float 0.000000e+00, ptr %50, align 4, !tbaa !23 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, 10 - br i1 %exitcond.not.i, label %66, label %59, !llvm.loop !25 + br i1 %exitcond.not.i, label %51, label %44, !llvm.loop !25 -66: ; preds = %59 +51: ; preds = %44 store double 0.000000e+00, ptr @lsum, align 8, !tbaa !26 store double 0.000000e+00, ptr @rsum, align 8, !tbaa !26 store i64 0, ptr @totsamp, align 8, !tbaa !17 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48000) @A, i8 noundef 0, i64 noundef 48000, i1 noundef false) #15 store ptr getelementptr inbounds nuw (i8, ptr @linprebuf, i64 40), ptr @linpre, align 8, !tbaa !21 store ptr getelementptr inbounds nuw (i8, ptr @rinprebuf, i64 40), ptr @rinpre, align 8, !tbaa !21 - %67 = getelementptr inbounds nuw i8, ptr %58, i64 40 - store ptr %67, ptr @lstep, align 8, !tbaa !21 - %68 = getelementptr inbounds nuw i8, ptr %56, i64 40 - store ptr %68, ptr @rstep, align 8, !tbaa !21 - %69 = getelementptr inbounds nuw i8, ptr %57, i64 40 - store ptr %69, ptr @lout, align 8, !tbaa !21 - %70 = getelementptr inbounds nuw i8, ptr %53, i64 40 - store ptr %70, ptr @rout, align 8, !tbaa !21 + %52 = getelementptr inbounds nuw i8, ptr %43, i64 40 + store ptr %52, ptr @lstep, align 8, !tbaa !21 + %53 = getelementptr inbounds nuw i8, ptr %41, i64 40 + store ptr %53, ptr @rstep, align 8, !tbaa !21 + %54 = getelementptr inbounds nuw i8, ptr %42, i64 40 + store ptr %54, ptr @lout, align 8, !tbaa !21 + %55 = getelementptr inbounds nuw i8, ptr %53, i64 40 + store ptr %55, ptr @rout, align 8, !tbaa !21 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48000) @B, i8 noundef 0, i64 noundef 48000, i1 noundef false) #15 br label %ResetSampleFrequency.exit.thread -ResetSampleFrequency.exit.thread: ; preds = %ReallocateWindowBuffer.exit21.thread.i, %ReallocateWindowBuffer.exit19.thread.i, %ReallocateWindowBuffer.exit17.thread.i, %ReallocateWindowBuffer.exit.thread.i, %CreateGainFilter.exit.thread.i, %ReallocateWindowBuffer.exit.i, %ReallocateWindowBuffer.exit17.i, %ReallocateWindowBuffer.exit19.i, %ReallocateWindowBuffer.exit21.i, %66 +ResetSampleFrequency.exit.thread: ; preds = %ReallocateWindowBuffer.exit21.thread.i, %ReallocateWindowBuffer.exit19.thread.i, %ReallocateWindowBuffer.exit17.thread.i, %ReallocateWindowBuffer.exit.thread.i, %CreateGainFilter.exit.thread.i, %ReallocateWindowBuffer.exit.i, %ReallocateWindowBuffer.exit17.i, %ReallocateWindowBuffer.exit19.i, %ReallocateWindowBuffer.exit21.i, %51 %.0 = phi i32 [ 1, %66 ], [ 0, %ReallocateWindowBuffer.exit21.i ], [ 0, %ReallocateWindowBuffer.exit19.i ], [ 0, %ReallocateWindowBuffer.exit17.i ], [ 0, %ReallocateWindowBuffer.exit.i ], [ 0, %CreateGainFilter.exit.thread.i ], [ 0, %ReallocateWindowBuffer.exit.thread.i ], [ 0, %ReallocateWindowBuffer.exit17.thread.i ], [ 0, %ReallocateWindowBuffer.exit19.thread.i ], [ 0, %ReallocateWindowBuffer.exit21.thread.i ] ret i32 %.0 } diff --git a/bench/fmt/optimized/chrono-test.ll b/bench/fmt/optimized/chrono-test.ll index 56eb5ec17b9..0c84143cedf 100644 --- a/bench/fmt/optimized/chrono-test.ll +++ b/bench/fmt/optimized/chrono-test.ll @@ -146607,7 +146607,7 @@ define linkonce_odr hidden void @_ZN3fmt3v116detail13format_dragonENS1_8basic_fp 43: ; preds = %42 %44 = call noalias dereferenceable_or_null(192) ptr @malloc(i64 noundef 192) #39 %.not.i.i926 = icmp eq ptr %44, null - br i1 %.not.i.i926, label %.invoke1520, label %.noexc + br i1 %.not.i.i926, label %.invoke1523, label %.noexc .noexc: ; preds = %43 store ptr %44, ptr %6, align 8, !tbaa !3616 @@ -146650,9 +146650,9 @@ define linkonce_odr hidden void @_ZN3fmt3v116detail13format_dragonENS1_8basic_fp 61: ; preds = %._crit_edge.i %62 = add nuw nsw i64 %48, 1 %.not577 = icmp samesign ult i64 %39, %47 - br i1 %.not577, label %_ZN3fmt3v116detail6bigintlSEi.exit.thread1165, label %64 + br i1 %.not577, label %_ZN3fmt3v116detail6bigintlSEi.exit.thread1167, label %64 -_ZN3fmt3v116detail6bigintlSEi.exit.thread1165: ; preds = %61 +_ZN3fmt3v116detail6bigintlSEi.exit.thread1167: ; preds = %61 store i64 %62, ptr %12, align 8, !tbaa !3626 %63 = getelementptr inbounds nuw i32, ptr %46, i64 %48 store i32 %57, ptr %63, align 4, !tbaa !202 @@ -146663,26 +146663,26 @@ _ZN3fmt3v116detail6bigintlSEi.exit.thread1165: ; preds = %61 %66 = add nuw nsw i64 %65, %47 %67 = shl nuw nsw i64 %66, 2 %68 = call noalias ptr @malloc(i64 noundef %67) #39 - %.not.i.i1222 = icmp eq ptr %68, null - br i1 %.not.i.i1222, label %.invoke1520, label %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i + %.not.i.i1224 = icmp eq ptr %68, null + br i1 %.not.i.i1224, label %.invoke1523, label %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i _ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i: ; preds = %64 %69 = shl nuw nsw i64 %48, 2 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %68, ptr noundef nonnull align 4 dereferenceable(1) %46, i64 %69, i1 false) store ptr %68, ptr %6, align 8, !tbaa !3616 store i64 %66, ptr %10, align 8, !tbaa !3617 - %.not.i1223 = icmp eq ptr %46, %13 - br i1 %.not.i1223, label %_ZN3fmt3v116detail6bigintlSEi.exit, label %70 + %.not.i1225 = icmp eq ptr %46, %13 + br i1 %.not.i1225, label %_ZN3fmt3v116detail6bigintlSEi.exit, label %70 70: ; preds = %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i call void @free(ptr noundef nonnull %46) #34 %.pre.i.i.pre = load i64, ptr %12, align 8, !tbaa !3626 %.pre708.pre = load ptr, ptr %6, align 8, !tbaa !3616 - %.pre1339 = add i64 %.pre.i.i.pre, 1 + %.pre1341 = add i64 %.pre.i.i.pre, 1 br label %_ZN3fmt3v116detail6bigintlSEi.exit _ZN3fmt3v116detail6bigintlSEi.exit: ; preds = %70, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i - %.pre2.i.i.pre-phi = phi i64 [ %.pre1339, %70 ], [ %62, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i ] + %.pre2.i.i.pre-phi = phi i64 [ %.pre1341, %70 ], [ %62, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i ] %.pre708 = phi ptr [ %.pre708.pre, %70 ], [ %68, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i ] %.pre.i.i = phi i64 [ %.pre.i.i.pre, %70 ], [ %48, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i ] store i64 %.pre2.i.i.pre-phi, ptr %12, align 8, !tbaa !3626 @@ -146690,7 +146690,7 @@ _ZN3fmt3v116detail6bigintlSEi.exit: ; preds = %70, %_ZN3fmt3v116de store i32 %57, ptr %71, align 4, !tbaa !202 br label %_ZN3fmt3v116detail6bigintlSEi.exit.thread -_ZN3fmt3v116detail6bigintlSEi.exit.thread: ; preds = %45, %._crit_edge.i, %_ZN3fmt3v116detail6bigintlSEi.exit, %_ZN3fmt3v116detail6bigintlSEi.exit.thread1165 +_ZN3fmt3v116detail6bigintlSEi.exit.thread: ; preds = %45, %._crit_edge.i, %_ZN3fmt3v116detail6bigintlSEi.exit, %_ZN3fmt3v116detail6bigintlSEi.exit.thread1167 store i32 1, ptr %23, align 8, !tbaa !202 store i64 1, ptr %22, align 8, !tbaa !3626 %72 = lshr i32 %33, 5 @@ -146727,7 +146727,7 @@ _ZN3fmt3v116detail6bigintlSEi.exit139: ; preds = %.lr.ph.i128, %_ZN3f cleanup br label %.body -.loopexit.split-lp: ; preds = %.invoke1520, %_ZN3fmt3v116detail6bigintlSEi.exit159, %106, %_ZN3fmt3v116detail6bigintlSEi.exit263, %98, %_ZN3fmt3v1119basic_memory_bufferIjLm32ENS0_6detail9allocatorIjEEE6resizeEm.exit.thread.i, %_ZN3fmt3v1119basic_memory_bufferIjLm32ENS0_6detail9allocatorIjEEE6resizeEm.exit.thread.i183, %153, %203, %210, %228, %290, %297, %306 +.loopexit.split-lp: ; preds = %.invoke1523, %_ZN3fmt3v116detail6bigintlSEi.exit159, %106, %_ZN3fmt3v116detail6bigintlSEi.exit263, %98, %_ZN3fmt3v1119basic_memory_bufferIjLm32ENS0_6detail9allocatorIjEEE6resizeEm.exit.thread.i, %_ZN3fmt3v1119basic_memory_bufferIjLm32ENS0_6detail9allocatorIjEEE6resizeEm.exit.thread.i183, %153, %203, %210, %228, %290, %297, %306 %lpad.loopexit.split-lp = landingpad { ptr, i32 } cleanup br label %.body @@ -147161,7 +147161,7 @@ _ZN3fmt3v116detail6bufferIjE9push_backERKj.exit.i234: ; preds = %.noexc238, %227 241: ; preds = %240 %242 = call noalias dereferenceable_or_null(192) ptr @malloc(i64 noundef 192) #39 %.not.i.i930 = icmp eq ptr %242, null - br i1 %.not.i.i930, label %.invoke1520, label %243 + br i1 %.not.i.i930, label %.invoke1523, label %243 243: ; preds = %241 store ptr %242, ptr %6, align 8, !tbaa !3616 @@ -147201,36 +147201,36 @@ _ZN3fmt3v116detail6bufferIjE9push_backERKj.exit.i234: ; preds = %.noexc238, %227 256: ; preds = %254 %257 = lshr exact i64 %245, 1 %258 = add nuw nsw i64 %257, %245 - %.0.i1225 = call i64 @llvm.umax.i64(i64 %255, i64 %258) - %259 = shl i64 %.0.i1225, 2 + %.0.i1227 = call i64 @llvm.umax.i64(i64 %255, i64 %258) + %259 = shl i64 %.0.i1227, 2 %260 = call noalias ptr @malloc(i64 noundef %259) #39 - %.not.i.i1226 = icmp eq ptr %260, null - br i1 %.not.i.i1226, label %.invoke1520, label %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1227 + %.not.i.i1228 = icmp eq ptr %260, null + br i1 %.not.i.i1228, label %.invoke1523, label %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1229 -.invoke1520: ; preds = %256, %43, %241, %64 +.invoke1523: ; preds = %256, %43, %241, %64 %261 = call ptr @__cxa_allocate_exception(i64 8) #34 store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %261, align 8, !tbaa !24 invoke void @__cxa_throw(ptr nonnull %261, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #37 to label %.cont1521 unwind label %.loopexit.split-lp -.cont1521: ; preds = %.invoke1520 +.cont1524: ; preds = %.invoke1523 unreachable -_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1227: ; preds = %256 +_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1229: ; preds = %256 %262 = shl i64 %237, 2 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %260, ptr nonnull align 4 %244, i64 %262, i1 false) store ptr %260, ptr %6, align 8, !tbaa !3616 - store i64 %.0.i1225, ptr %10, align 8, !tbaa !3617 - %.not.i1228 = icmp eq ptr %244, %13 - br i1 %.not.i1228, label %.noexc262, label %263 + store i64 %.0.i1227, ptr %10, align 8, !tbaa !3617 + %.not.i1230 = icmp eq ptr %244, %13 + br i1 %.not.i1230, label %.noexc262, label %263 -263: ; preds = %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1227 +263: ; preds = %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1229 call void @free(ptr noundef nonnull %244) #34 %.pre.i.i260.pre = load i64, ptr %12, align 8, !tbaa !3626 %.pre.pre = load ptr, ptr %6, align 8, !tbaa !3616 br label %.noexc262 -.noexc262: ; preds = %263, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1227 +.noexc262: ; preds = %263, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1229 %.pre = phi ptr [ %.pre.pre, %263 ], [ %260, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1227 ] %.pre.i.i260 = phi i64 [ %.pre.i.i260.pre, %263 ], [ %237, %_ZN3fmt3v116detail9allocatorIjE8allocateEm.exit.i1227 ] %.pre2.i.i261 = add i64 %.pre.i.i260, 1 diff --git a/bench/freetype/optimized/ftsystem.ll b/bench/freetype/optimized/ftsystem.ll index e643eb4cf11..be45ce7e614 100644 --- a/bench/freetype/optimized/ftsystem.ll +++ b/bench/freetype/optimized/ftsystem.ll @@ -14,13 +14,13 @@ define hidden range(i32 0, 82) i32 @FT_Stream_Open(ptr noundef captures(address_ br i1 %.not, label %47, label %4 4: ; preds = %2 - %5 = tail call i32 (ptr, i32, ...) @open(ptr noundef %1, i32 noundef 0) #16 + %5 = tail call i32 (ptr, i32, ...) @open(ptr noundef %1, i32 noundef 0) #15 %6 = icmp slt i32 %5, 0 br i1 %6, label %47, label %7 7: ; preds = %4 - %8 = tail call i32 (i32, i32, ...) @fcntl(i32 noundef %5, i32 noundef 2, i32 noundef 1) #16 - %9 = call i32 @fstat(i32 noundef %5, ptr noundef nonnull %3) #16 + %8 = tail call i32 (i32, i32, ...) @fcntl(i32 noundef %5, i32 noundef 2, i32 noundef 1) #15 + %9 = call i32 @fstat(i32 noundef %5, ptr noundef nonnull %3) #15 %10 = icmp slt i32 %9, 0 %11 = getelementptr inbounds nuw i8, ptr %3, i64 48 %12 = load i64, ptr %11, align 8 @@ -33,14 +33,14 @@ define hidden range(i32 0, 82) i32 @FT_Stream_Open(ptr noundef captures(address_ store i64 %12, ptr %15, align 8, !tbaa !3 %16 = getelementptr inbounds nuw i8, ptr %0, i64 16 store i64 0, ptr %16, align 8, !tbaa !11 - %17 = tail call ptr @mmap(ptr noundef null, i64 noundef %12, i32 noundef 1, i32 noundef 2, i32 noundef %5, i64 noundef 0) #16 + %17 = tail call ptr @mmap(ptr noundef null, i64 noundef %12, i32 noundef 1, i32 noundef 2, i32 noundef %5, i64 noundef 0) #15 store ptr %17, ptr %0, align 8, !tbaa !12 %.not55 = icmp eq ptr %17, inttoptr (i64 -1 to ptr) br i1 %.not55, label %18, label %.thread64 18: ; preds = %14 %19 = load i64, ptr %15, align 8, !tbaa !3 - %20 = tail call noalias noundef ptr @malloc(i64 noundef %19) #17 + %20 = tail call noalias noundef ptr @malloc(i64 noundef %19) #16 store ptr %20, ptr %0, align 8, !tbaa !12 %.not56 = icmp eq ptr %20, null br i1 %.not56, label %45, label %.preheader @@ -51,7 +51,7 @@ define hidden range(i32 0, 82) i32 @FT_Stream_Open(ptr noundef captures(address_ %22 = load ptr, ptr %0, align 8, !tbaa !12 %23 = getelementptr inbounds nuw i8, ptr %22, i64 %.047 %24 = sub i64 %21, %.047 - %25 = tail call i64 @read(i32 noundef %5, ptr noundef %23, i64 noundef %24) #16 + %25 = tail call i64 @read(i32 noundef %5, ptr noundef %23, i64 noundef %24) #15 %26 = icmp slt i64 %25, 1 br i1 %26, label %27, label %33 @@ -60,7 +60,7 @@ define hidden range(i32 0, 82) i32 @FT_Stream_Open(ptr noundef captures(address_ br i1 %28, label %29, label %43 29: ; preds = %27 - %30 = tail call ptr @__errno_location() #18 + %30 = tail call ptr @__errno_location() #17 %31 = load i32, ptr %30, align 4, !tbaa !13 %32 = icmp eq i32 %31, 4 br i1 %32, label %35, label %43 @@ -79,7 +79,7 @@ define hidden range(i32 0, 82) i32 @FT_Stream_Open(ptr noundef captures(address_ %ft_close_stream_by_free.sink = phi ptr [ @ft_close_stream_by_munmap, %14 ], [ @ft_close_stream_by_free, %35 ] %37 = getelementptr inbounds nuw i8, ptr %0, i64 48 store ptr %ft_close_stream_by_free.sink, ptr %37, align 8, !tbaa !17 - %38 = tail call i32 @close(i32 noundef %5) #16 + %38 = tail call i32 @close(i32 noundef %5) #15 %39 = load ptr, ptr %0, align 8, !tbaa !12 %40 = getelementptr inbounds nuw i8, ptr %0, i64 24 store ptr %39, ptr %40, align 8, !tbaa !18 @@ -91,11 +91,11 @@ define hidden range(i32 0, 82) i32 @FT_Stream_Open(ptr noundef captures(address_ 43: ; preds = %27, %29 %44 = load ptr, ptr %0, align 8, !tbaa !12 - tail call void @free(ptr noundef %44) #16 + tail call void @free(ptr noundef %44) #15 br label %45 45: ; preds = %18, %7, %43 - %46 = tail call i32 @close(i32 noundef %5) #16 + %46 = tail call i32 @close(i32 noundef %5) #15 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) br label %47 @@ -122,7 +122,7 @@ define internal void @ft_close_stream_by_munmap(ptr noundef captures(none) initi %3 = load ptr, ptr %2, align 8, !tbaa !18 %4 = getelementptr inbounds nuw i8, ptr %0, i64 8 %5 = load i64, ptr %4, align 8, !tbaa !3 - %6 = tail call i32 @munmap(ptr noundef %3, i64 noundef %5) #16 + %6 = tail call i32 @munmap(ptr noundef %3, i64 noundef %5) #15 store ptr null, ptr %2, align 8, !tbaa !18 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) ret void @@ -130,7 +130,7 @@ define internal void @ft_close_stream_by_munmap(ptr noundef captures(none) initi ; Function Attrs: mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite, errnomem: write) uwtable define internal noalias noundef ptr @ft_alloc(ptr readnone captures(none) %0, i64 noundef %1) #5 { - %3 = tail call noalias ptr @malloc(i64 noundef %1) #17 + %3 = tail call noalias ptr @malloc(i64 noundef %1) #16 ret ptr %3 } @@ -144,7 +144,7 @@ declare ptr @__errno_location() local_unnamed_addr #6 define internal void @ft_close_stream_by_free(ptr noundef captures(none) initializes((0, 16)) %0) #7 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 24 %3 = load ptr, ptr %2, align 8, !tbaa !18 - tail call void @free(ptr noundef %3) #16 + tail call void @free(ptr noundef %3) #15 store ptr null, ptr %2, align 8, !tbaa !18 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) ret void @@ -154,13 +154,13 @@ declare i32 @close(i32 noundef) local_unnamed_addr #2 ; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable define internal void @ft_free(ptr readnone captures(none) %0, ptr noundef captures(none) %1) #8 { - tail call void @free(ptr noundef %1) #16 + tail call void @free(ptr noundef %1) #15 ret void } ; Function Attrs: mustprogress nofree nounwind willreturn memory(write, argmem: none, inaccessiblemem: readwrite) uwtable define hidden noalias noundef ptr @FT_New_Memory() local_unnamed_addr #9 { - %1 = tail call noalias dereferenceable_or_null(32) ptr @malloc(i64 noundef 32) #17 + %1 = tail call noalias dereferenceable_or_null(32) ptr @malloc(i64 noundef 32) #16 %.not = icmp eq ptr %1, null br i1 %.not, label %6, label %2 @@ -183,7 +183,7 @@ declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #10 ; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable define internal noalias noundef ptr @ft_realloc(ptr readnone captures(none) %0, i64 %1, i64 noundef %2, ptr noundef captures(none) %3) #11 { - %5 = tail call ptr @realloc(ptr noundef %3, i64 noundef %2) #19 + %5 = tail call ptr @realloc(ptr noundef %3, i64 noundef %2) #18 ret ptr %5 } @@ -191,7 +191,7 @@ define internal noalias noundef ptr @ft_realloc(ptr readnone captures(none) %0, define hidden void @FT_Done_Memory(ptr noundef %0) local_unnamed_addr #0 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 16 %3 = load ptr, ptr %2, align 8, !tbaa !24 - tail call void %3(ptr noundef %0, ptr noundef %0) #16 + tail call void %3(ptr noundef %0, ptr noundef %0) #15 ret void } @@ -199,19 +199,19 @@ define hidden void @FT_Done_Memory(ptr noundef %0) local_unnamed_addr #0 { declare i32 @munmap(ptr noundef, i64 noundef) local_unnamed_addr #4 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) -declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #12 +declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #11 ; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) -declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #13 +declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #12 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(ptr captures(none)) #14 +declare void @llvm.lifetime.start.p0(ptr captures(none)) #13 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(ptr captures(none)) #14 +declare void @llvm.lifetime.end.p0(ptr captures(none)) #13 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #15 +declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #14 attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nofree "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -224,10 +224,10 @@ attributes #7 = { mustprogress nounwind willreturn uwtable "min-legal-vector-wid attributes #8 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nofree nounwind willreturn memory(write, argmem: none, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #14 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +attributes #11 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #12 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #13 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #14 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #15 = { nocallback nofree nounwind willreturn memory(argmem: write) } attributes #16 = { nounwind } attributes #17 = { nounwind allocsize(0) } diff --git a/bench/git/optimized/submodule--helper.ll b/bench/git/optimized/submodule--helper.ll index 1b1b2a6352d..345fafd3747 100644 --- a/bench/git/optimized/submodule--helper.ll +++ b/bench/git/optimized/submodule--helper.ll @@ -9371,41 +9371,41 @@ define internal void @submodule_summary_callback(ptr noundef readonly captures(n %.pre = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !311 br i1 %18, label %._crit_edge39, label %19 -19: ; preds = %9 +19: ; preds = %9 %20 = getelementptr inbounds nuw i8, ptr %.pre, i64 80 %21 = load i16, ptr %20, align 8, !tbaa !308 %22 = and i16 %21, -4096 %23 = icmp eq i16 %22, -8192 br i1 %23, label %._crit_edge39, label %61 -._crit_edge39: ; preds = %9, %19 +._crit_edge39:; preds = %9, %19 %24 = tail call noalias dereferenceable_or_null(96) ptr @malloc(i64 noundef 96) #25 %25 = load i16, ptr %15, align 8, !tbaa !308 - %26 = zext i16 %25 to i32 + %24 = zext i16 %25 to i32 store i32 %26, ptr %24, align 8, !tbaa !312 %27 = getelementptr inbounds nuw i8, ptr %13, i64 8 - %28 = getelementptr inbounds nuw i8, ptr %.pre, i64 80 + %26 = getelementptr inbounds nuw i8, ptr %.pre, i64 80 %29 = load i16, ptr %28, align 8, !tbaa !308 %30 = zext i16 %29 to i32 %31 = getelementptr inbounds nuw i8, ptr %24, i64 4 store i32 %30, ptr %31, align 4, !tbaa !313 - %32 = getelementptr inbounds nuw i8, ptr %24, i64 8 + %29 = getelementptr inbounds nuw i8, ptr %24, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(36) %32, ptr noundef nonnull align 8 dereferenceable(36) %14, i64 36, i1 false), !tbaa.struct !314 - %33 = getelementptr inbounds nuw i8, ptr %24, i64 44 + %31 = getelementptr inbounds nuw i8, ptr %24, i64 44 %34 = load ptr, ptr %27, align 8, !tbaa !311 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %33, ptr noundef nonnull align 8 dereferenceable(36) %34, i64 36, i1 false), !tbaa.struct !314 - %35 = getelementptr inbounds nuw i8, ptr %13, i64 18 - %36 = load i8, ptr %35, align 2, !tbaa !315 + %33 = getelementptr inbounds nuw i8, ptr %13, i64 18 + %34 = load i8, ptr %33, align 2, !tbaa !315 %37 = getelementptr inbounds nuw i8, ptr %24, i64 80 store i8 %36, ptr %37, align 8, !tbaa !241 %38 = load ptr, ptr %13, align 8, !tbaa !304 %39 = getelementptr inbounds nuw i8, ptr %38, i64 40 - %40 = load ptr, ptr %39, align 8, !tbaa !316 - %41 = tail call ptr @xstrdup(ptr noundef %40) #20 + %38 = load ptr, ptr %39, align 8, !tbaa !316 + %41 = tail call ptr @xstrdup(ptr noundef %38) #20 %42 = getelementptr inbounds nuw i8, ptr %24, i64 88 store ptr %41, ptr %42, align 8, !tbaa !243 %43 = load i32, ptr %7, align 4, !tbaa !235 - %44 = load i32, ptr %8, align 8, !tbaa !317 + %.pre43 = load i32, ptr %8, align 8, !tbaa !317 %.not = icmp slt i32 %43, %44 br i1 %.not, label %._crit_edge40, label %45 @@ -9413,27 +9413,27 @@ define internal void @submodule_summary_callback(ptr noundef readonly captures(n %.pre41 = load ptr, ptr %2, align 8, !tbaa !238 br label %55 -45: ; preds = %._crit_edge39 - %46 = add nsw i32 %43, 1 - %47 = mul i32 %44, 3 - %48 = add i32 %47, 48 - %49 = sdiv i32 %48, 2 - %. = tail call i32 @llvm.smax.i32(i32 %49, i32 %46) +39: ; preds = %._crit_edge39 + %40 = add nsw i32 %43, 1 + %41 = mul i32 %44, 3 + %42 = add i32 %41, 48 + %43 = sdiv i32 %42, 2 + %. = tail call i32 @llvm.smax.i32(i32 %43, i32 %40) store i32 %., ptr %8, align 8, !tbaa !317 - %50 = sext i32 %. to i64 + %44 = sext i32 %. to i64 %mul.ov.i = icmp slt i32 %., 0 - br i1 %mul.ov.i, label %51, label %st_mult.exit + br i1 %mul.ov.i, label %45, label %st_mult.exit -51: ; preds = %45 - tail call void (ptr, ...) @die(ptr noundef nonnull @.str.168, i64 noundef 8, i64 noundef range(i64 -2147483648, 2147483648) %50) #21 +45: ; preds = %39 + tail call void (ptr, ...) @die(ptr noundef nonnull @.str.168, i64 noundef 8, i64 noundef range(i64 -2147483648, 2147483648) %44) #21 unreachable -st_mult.exit: ; preds = %45 - %52 = load ptr, ptr %2, align 8, !tbaa !238 - %53 = shl nuw nsw i64 %50, 3 - %54 = tail call ptr @xrealloc(ptr noundef %52, i64 noundef %53) #20 - store ptr %54, ptr %2, align 8, !tbaa !238 - %.pre42 = load i32, ptr %7, align 4, !tbaa !235 +st_mult.exit: ; preds = %39 + %46 = load ptr, ptr %2, align 8, !tbaa !238 + %47 = shl nuw nsw i64 %44, 3 + %48 = tail call ptr @xrealloc(ptr noundef %46, i64 noundef %47) #20 + store ptr %48, ptr %2, align 8, !tbaa !238 + %.pre44 = load i32, ptr %7, align 4, !tbaa !235 br label %55 55: ; preds = %._crit_edge40, %st_mult.exit @@ -9450,9 +9450,9 @@ st_mult.exit: ; preds = %45 61: ; preds = %19, %55 %62 = phi i32 [ %10, %19 ], [ %.pre43, %55 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %63 = sext i32 %62 to i64 - %64 = icmp slt i64 %indvars.iv.next, %63 - br i1 %64, label %9, label %._crit_edge, !llvm.loop !318 + %57 = sext i32 %62 to i64 + %58 = icmp slt i64 %indvars.iv.next, %57 + br i1 %58, label %9, label %._crit_edge, !llvm.loop !318 ._crit_edge: ; preds = %61, %3 ret void diff --git a/bench/graphviz/optimized/cvt.ll b/bench/graphviz/optimized/cvt.ll index 8287059aea0..6f219252611 100644 --- a/bench/graphviz/optimized/cvt.ll +++ b/bench/graphviz/optimized/cvt.ll @@ -263,33 +263,33 @@ gv_calloc.exit: ; preds = %21 br i1 %.not4852, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %gv_calloc.exit - %33 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %34 = load ptr, ptr %33, align 8, !tbaa !14 - br label %35 + %31 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %32 = load ptr, ptr %31, align 8, !tbaa !14 + br label %33 -35: ; preds = %.lr.ph, %35 +33: ; preds = %.lr.ph, %33 %.154 = phi i32 [ %.151, %.lr.ph ], [ %.1, %35 ] %.053 = phi i64 [ %.049, %.lr.ph ], [ %.0, %35 ] - %36 = getelementptr inbounds nuw %struct.Pxy_t, ptr %23, i64 %.053 - %37 = sext i32 %.154 to i64 - %38 = getelementptr inbounds %struct.Pxy_t, ptr %34, i64 %37 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 8 dereferenceable(16) %38, i64 16, i1 false), !tbaa.struct !26 + %34 = getelementptr inbounds nuw %struct.Pxy_t, ptr %23, i64 %.053 + %35 = sext i32 %.154 to i64 + %36 = getelementptr inbounds %struct.Pxy_t, ptr %32, i64 %35 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 8 dereferenceable(16) %36, i64 16, i1 false), !tbaa.struct !26 %.0 = add i64 %.053, -1 - %.1.in = getelementptr inbounds i32, ptr %11, i64 %37 + %.1.in = getelementptr inbounds i32, ptr %11, i64 %35 %.1 = load i32, ptr %.1.in, align 4, !tbaa !24 %.not48 = icmp eq i32 %.1, %32 - br i1 %.not48, label %._crit_edge, label %35, !llvm.loop !37 + br i1 %.not48, label %._crit_edge, label %33, !llvm.loop !37 -._crit_edge: ; preds = %35, %gv_calloc.exit +._crit_edge: ; preds = %33, %gv_calloc.exit %.0.lcssa = phi i64 [ %.049, %gv_calloc.exit ], [ %.0, %35 ] - %39 = getelementptr inbounds nuw %struct.Pxy_t, ptr %23, i64 %.0.lcssa - store double %1, ptr %39, align 8, !tbaa !27 - %.sroa.443.0..sroa_idx = getelementptr inbounds nuw i8, ptr %39, i64 8 + %37 = getelementptr inbounds nuw %struct.Pxy_t, ptr %23, i64 %.0.lcssa + store double %1, ptr %37, align 8, !tbaa !27 + %.sroa.443.0..sroa_idx = getelementptr inbounds nuw i8, ptr %37, i64 8 store double %2, ptr %.sroa.443.0..sroa_idx, align 8, !tbaa !27 tail call void @free(ptr noundef %9) #11 tail call void @free(ptr noundef %10) #11 - %40 = getelementptr inbounds nuw i8, ptr %7, i64 8 - store i64 %16, ptr %40, align 8, !tbaa !8 + %38 = getelementptr inbounds nuw i8, ptr %7, i64 8 + store i64 %16, ptr %38, align 8, !tbaa !8 store ptr %23, ptr %7, align 8, !tbaa !25 tail call void @free(ptr noundef nonnull %11) #11 ret void diff --git a/bench/graphviz/optimized/gvpack.ll b/bench/graphviz/optimized/gvpack.ll index 84518b7b2da..30fb11189b9 100644 --- a/bench/graphviz/optimized/gvpack.ll +++ b/bench/graphviz/optimized/gvpack.ll @@ -3108,28 +3108,28 @@ _ZL9gv_callocmm.exit: ; preds = %22 .lr.ph: ; preds = %_ZL9gv_callocmm.exit, %.lr.ph %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 1, %_ZL9gv_callocmm.exit ] - %32 = phi ptr [ %46, %.lr.ph ], [ %10, %_ZL9gv_callocmm.exit ] - %33 = getelementptr inbounds nuw i8, ptr %32, i64 240 - %34 = load ptr, ptr %33, align 8, !tbaa !128 - %35 = getelementptr inbounds nuw ptr, ptr %34, i64 %indvars.iv - %36 = load ptr, ptr %35, align 8, !tbaa !65 - %37 = getelementptr inbounds nuw i8, ptr %36, i64 16 - %38 = load ptr, ptr %37, align 8, !tbaa !81 - %39 = getelementptr inbounds nuw i8, ptr %38, i64 160 - %40 = load ptr, ptr %39, align 8, !tbaa !129 - %41 = load ptr, ptr %4, align 8, !tbaa !81 - %42 = getelementptr inbounds nuw i8, ptr %41, i64 240 - %43 = load ptr, ptr %42, align 8, !tbaa !128 - %44 = getelementptr inbounds nuw ptr, ptr %43, i64 %indvars.iv - store ptr %40, ptr %44, align 8, !tbaa !65 - %45 = load ptr, ptr %35, align 8, !tbaa !65 - tail call fastcc void @_ZL16cloneClusterTreeP8Agraph_sS0_(ptr noundef %45, ptr noundef %40) + %31 = phi ptr [ %45, %.lr.ph ], [ %10, %_ZL9gv_callocmm.exit ] + %32 = getelementptr inbounds nuw i8, ptr %31, i64 240 + %33 = load ptr, ptr %32, align 8, !tbaa !128 + %34 = getelementptr inbounds nuw ptr, ptr %33, i64 %indvars.iv + %35 = load ptr, ptr %34, align 8, !tbaa !65 + %36 = getelementptr inbounds nuw i8, ptr %35, i64 16 + %37 = load ptr, ptr %36, align 8, !tbaa !81 + %38 = getelementptr inbounds nuw i8, ptr %37, i64 160 + %39 = load ptr, ptr %38, align 8, !tbaa !129 + %40 = load ptr, ptr %4, align 8, !tbaa !81 + %41 = getelementptr inbounds nuw i8, ptr %40, i64 240 + %42 = load ptr, ptr %41, align 8, !tbaa !128 + %43 = getelementptr inbounds nuw ptr, ptr %42, i64 %indvars.iv + store ptr %39, ptr %43, align 8, !tbaa !65 + %44 = load ptr, ptr %34, align 8, !tbaa !65 + tail call fastcc void @_ZL16cloneClusterTreeP8Agraph_sS0_(ptr noundef %44, ptr noundef %39) %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %46 = load ptr, ptr %3, align 8, !tbaa !81 - %47 = getelementptr inbounds nuw i8, ptr %46, i64 236 - %48 = load i32, ptr %47, align 4, !tbaa !85 - %49 = sext i32 %48 to i64 - %.not18.not = icmp slt i64 %indvars.iv, %49 + %45 = load ptr, ptr %3, align 8, !tbaa !81 + %46 = getelementptr inbounds nuw i8, ptr %45, i64 236 + %47 = load i32, ptr %46, align 4, !tbaa !85 + %48 = sext i32 %47 to i64 + %.not18.not = icmp slt i64 %indvars.iv, %48 br i1 %.not18.not, label %.lr.ph, label %.loopexit, !llvm.loop !174 .loopexit: ; preds = %.lr.ph, %_ZL9gv_callocmm.exit, %2 diff --git a/bench/hdf5/optimized/H5Rint.ll b/bench/hdf5/optimized/H5Rint.ll index 56565bf5f25..9c74efffe11 100644 --- a/bench/hdf5/optimized/H5Rint.ll +++ b/bench/hdf5/optimized/H5Rint.ll @@ -599,7 +599,7 @@ define range(i32 -1, 1) i32 @H5R__create_attr(ptr noundef readonly captures(none %23 = getelementptr inbounds nuw i8, ptr %3, i64 24 store ptr %22, ptr %23, align 8, !tbaa !10 %24 = icmp eq ptr %22, null - br i1 %24, label %25, label %29 + br i1 %24, label %25, label %H5R__set_obj_token.exit 25: ; preds = %20 %26 = load i64, ptr @H5E_REFERENCE_g, align 8, !tbaa !17 @@ -607,11 +607,11 @@ define range(i32 -1, 1) i32 @H5R__create_attr(ptr noundef readonly captures(none %28 = tail call i32 (ptr, ptr, i32, i64, i64, ptr, ...) @H5E_printf_stack(ptr noundef nonnull @.str, ptr noundef nonnull @__func__.H5R__create_attr, i32 noundef 286, i64 noundef %26, i64 noundef %27, ptr noundef nonnull @.str.5) #15 br label %.critedge -29: ; preds = %20 - %30 = getelementptr inbounds nuw i8, ptr %3, i64 32 - store i64 -1, ptr %30, align 8, !tbaa !11 - %31 = getelementptr inbounds nuw i8, ptr %3, i64 44 - store i8 4, ptr %31, align 4, !tbaa !15 +H5R__set_obj_token.exit: ; preds = %20 + %29 = getelementptr inbounds nuw i8, ptr %3, i64 32 + store i64 -1, ptr %29, align 8, !tbaa !11 + %30 = getelementptr inbounds nuw i8, ptr %3, i64 44 + store i8 4, ptr %30, align 4, !tbaa !15 %32 = load i8, ptr @H5R_init_g, align 1, !tbaa !3, !range !7, !noundef !8 %33 = trunc nuw i8 %32 to i1 %34 = load i8, ptr @H5_libterm_g, align 1, !range !7 @@ -622,23 +622,23 @@ define range(i32 -1, 1) i32 @H5R__create_attr(ptr noundef readonly captures(none 38: ; preds = %29 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %3, ptr readonly align 1 %0, i64 %1, i1 false) - %39 = trunc i64 %1 to i8 - %40 = getelementptr inbounds nuw i8, ptr %3, i64 45 - store i8 %39, ptr %40, align 1, !tbaa !16 + %31 = trunc i64 %1 to i8 + %32 = getelementptr inbounds nuw i8, ptr %3, i64 45 + store i8 %31, ptr %32, align 1, !tbaa !16 br label %H5R__set_obj_token.exit -H5R__set_obj_token.exit: ; preds = %29, %38 +39: ; preds = %H5R__set_obj_token.exit, %38 %41 = call i32 @H5R__encode(ptr noundef null, ptr noundef nonnull %3, ptr noundef null, ptr noundef nonnull %5, i32 noundef 0) %42 = icmp slt i32 %41, 0 br i1 %42, label %43, label %47 -43: ; preds = %H5R__set_obj_token.exit +.critedge: ; preds = %31 %44 = load i64, ptr @H5E_REFERENCE_g, align 8, !tbaa !17 - %45 = load i64, ptr @H5E_CANTENCODE_g, align 8, !tbaa !17 - %46 = tail call i32 (ptr, ptr, i32, i64, i64, ptr, ...) @H5E_printf_stack(ptr noundef nonnull @.str, ptr noundef nonnull @__func__.H5R__create_attr, i32 noundef 295, i64 noundef %44, i64 noundef %45, ptr noundef nonnull @.str.2) #15 + %44 = load i64, ptr @H5E_CANTENCODE_g, align 8, !tbaa !17 + %45 = tail call i32 (ptr, ptr, i32, i64, i64, ptr, ...) @H5E_printf_stack(ptr noundef nonnull @.str, ptr noundef nonnull @__func__.H5R__create_attr, i32 noundef 295, i64 noundef %44, i64 noundef %45, ptr noundef nonnull @.str.2) #15 br label %.critedge -47: ; preds = %H5R__set_obj_token.exit +46: ; preds = %39 %48 = load i64, ptr %5, align 8, !tbaa !17 %49 = trunc i64 %48 to i32 %50 = getelementptr inbounds nuw i8, ptr %3, i64 40 diff --git a/bench/hdf5/optimized/h5diff_array.ll b/bench/hdf5/optimized/h5diff_array.ll index 9ba8554ca1c..18b46fc7f38 100644 --- a/bench/hdf5/optimized/h5diff_array.ll +++ b/bench/hdf5/optimized/h5diff_array.ll @@ -7508,14 +7508,14 @@ common.ret50: ; preds = %13, %11, %2, %16, % 13: ; preds = %11 %14 = tail call i32 @H5Tget_nmembers(i64 noundef %0) #15 %15 = icmp sgt i32 %14, 0 - br i1 %15, label %16, label %common.ret50 + br i1 %15, label %.lr.ph.preheader, label %common.ret50 -16: ; preds = %13 +.lr.ph.preheader: ; preds = %13 store i32 %14, ptr %1, align 8, !tbaa !61 - %17 = zext nneg i32 %14 to i64 - %18 = tail call noalias ptr @calloc(i64 noundef %17, i64 noundef 8) #18 - %19 = getelementptr inbounds nuw i8, ptr %1, i64 8 - store ptr %18, ptr %19, align 8, !tbaa !66 + %16 = zext nneg i32 %14 to i64 + %17 = tail call noalias ptr @calloc(i64 noundef %16, i64 noundef 8) #18 + %18 = getelementptr inbounds nuw i8, ptr %1, i64 8 + store ptr %17, ptr %18, align 8, !tbaa !66 %20 = load i32, ptr %1, align 8, !tbaa !61 %21 = zext i32 %20 to i64 %22 = tail call noalias ptr @calloc(i64 noundef %21, i64 noundef 8) #18 @@ -7530,7 +7530,7 @@ common.ret50: ; preds = %13, %11, %2, %16, % %.not = icmp eq i32 %28, 0 br i1 %.not, label %common.ret50, label %.lr.ph -.lr.ph: ; preds = %16, %.lr.ph +.lr.ph: ; preds = %16, %.lr.ph %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %16 ] %29 = trunc nuw i64 %indvars.iv to i32 %30 = tail call i64 @H5Tget_member_type(i64 noundef %0, i32 noundef %29) #15 @@ -7542,7 +7542,7 @@ common.ret50: ; preds = %13, %11, %2, %16, % %35 = getelementptr inbounds nuw i64, ptr %34, i64 %indvars.iv store i64 %33, ptr %35, align 8, !tbaa !15 %36 = tail call noalias dereferenceable_or_null(32) ptr @malloc(i64 noundef 32) #19 - %37 = load ptr, ptr %27, align 8, !tbaa !67 + %35 = load ptr, ptr %27, align 8, !tbaa !67 %38 = getelementptr inbounds nuw ptr, ptr %37, i64 %indvars.iv store ptr %36, ptr %38, align 8, !tbaa !68 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %36, i8 0, i64 32, i1 false) @@ -7552,10 +7552,10 @@ common.ret50: ; preds = %13, %11, %2, %16, % %42 = load ptr, ptr %38, align 8, !tbaa !68 tail call fastcc void @get_member_types(i64 noundef %41, ptr noundef %42) %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %43 = load i32, ptr %1, align 8, !tbaa !61 - %44 = zext i32 %43 to i64 - %45 = icmp samesign ult i64 %indvars.iv.next, %44 - br i1 %45, label %.lr.ph, label %common.ret50, !llvm.loop !88 + %37 = load i32, ptr %1, align 8, !tbaa !61 + %38 = zext i32 %37 to i64 + %39 = icmp samesign ult i64 %indvars.iv.next, %38 + br i1 %39, label %.lr.ph, label %common.ret50, !llvm.loop !88 } ; Function Attrs: nounwind uwtable diff --git a/bench/hdf5/optimized/h5tools_str.ll b/bench/hdf5/optimized/h5tools_str.ll index 87a94c054f4..eea42f00f7a 100644 --- a/bench/hdf5/optimized/h5tools_str.ll +++ b/bench/hdf5/optimized/h5tools_str.ll @@ -3071,7 +3071,7 @@ define ptr @h5tools_str_replace(ptr noundef readonly captures(none) %0, ptr noun br i1 %.not58, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %7, %17 - %9 = phi ptr [ %34, %17 ], [ %8, %7 ] + %9 = phi ptr [ %32, %17 ], [ %8, %7 ] %.04759 = phi ptr [ %16, %17 ], [ %6, %7 ] %10 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.04759) #24 %11 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #24 @@ -3109,8 +3109,8 @@ define ptr @h5tools_str_replace(ptr noundef readonly captures(none) %0, ptr noun %33 = getelementptr inbounds nuw i8, ptr %32, i64 %22 store i8 0, ptr %33, align 1 tail call void @free(ptr noundef nonnull %.04759) #21 - %34 = tail call ptr @strstr(ptr noundef nonnull dereferenceable(1) %23, ptr noundef nonnull dereferenceable(1) %1) #24 - %.not = icmp eq ptr %34, null + %32 = tail call ptr @strstr(ptr noundef nonnull dereferenceable(1) %23, ptr noundef nonnull dereferenceable(1) %1) #24 + %.not = icmp eq ptr %32, null br i1 %.not, label %.loopexit, label %.lr.ph, !llvm.loop !122 .loopexit: ; preds = %17, %3, %7, %.thread diff --git a/bench/hermes/optimized/CSE.ll b/bench/hermes/optimized/CSE.ll index 4a8b4aa4600..4df365524a0 100644 --- a/bench/hermes/optimized/CSE.ll +++ b/bench/hermes/optimized/CSE.ll @@ -372,11 +372,11 @@ if.end.i.i.i.i.i.i.i.i.i.i: ; preds = %cond.false.i.i.i.i. if.then.i.i.i.i.i.i.i.i.i.i.i.i.i: ; preds = %if.end.i.i.i.i.i.i.i.i.i.i call void @_ZN4llvh22report_bad_alloc_errorEPKcb(ptr noundef nonnull @.str, i1 noundef zeroext true) #10 - %.pre = load i32, ptr %Size.i.i13.i.i.i.i.i.i.i.i.i.i, align 8 + %.pre.i16.i.i.i.i.i.i.i.i.i.i = load i32, ptr %Size.i.i13.i.i.i.i.i.i.i.i.i.i, align 8 br label %_ZN4llvh15MallocAllocator8AllocateEmm.exit.i.i.i.i.i.i.i.i.i.i.i _ZN4llvh15MallocAllocator8AllocateEmm.exit.i.i.i.i.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i.i.i.i.i.i, %if.end.i.i.i.i.i.i.i.i.i.i - %33 = phi i32 [ %.pre, %if.then.i.i.i.i.i.i.i.i.i.i.i.i.i ], [ %31, %if.end.i.i.i.i.i.i.i.i.i.i ] + %33 = phi i32 [ %.pre.i16.i.i.i.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i.i.i.i.i.i.i.i ], [ %31, %if.end.i.i.i.i.i.i.i.i.i.i ] %34 = load i32, ptr %Capacity2.i.i.i.i.i.i.i.i4.i, align 4 %cmp.not.i.i.i.i.i.i.i.i.i.i.i.i = icmp ult i32 %33, %34 br i1 %cmp.not.i.i.i.i.i.i.i.i.i.i.i.i, label %_ZN4llvh20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096EE12StartNewSlabEv.exit.i.i.i.i.i.i.i.i.i.i, label %if.then.i.i14.i.i.i.i.i.i.i.i.i.i @@ -398,9 +398,9 @@ _ZN4llvh20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096EE12StartNewSla store i32 %add.i.i15.i.i.i.i.i.i.i.i.i.i, ptr %Size.i.i13.i.i.i.i.i.i.i.i.i.i, align 8 %add.ptr.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %mul.i.i.i.i.i.i.i.i.i.i.i.i store ptr %add.ptr.i.i.i.i.i.i.i.i.i.i.i, ptr %End.i.i.i.i.i.i.i.i.i.i, align 8 - %sub.i17.i.i.i.i.i.i.i.i.i.i = add i64 %37, 7 - %and.i19.i.i.i.i.i.i.i.i.i.i = and i64 %sub.i17.i.i.i.i.i.i.i.i.i.i, -8 - %39 = inttoptr i64 %and.i19.i.i.i.i.i.i.i.i.i.i to ptr + %sub.i18.i.i.i.i.i.i.i.i.i.i = add i64 %37, 7 + %and.i20.i.i.i.i.i.i.i.i.i.i = and i64 %sub.i18.i.i.i.i.i.i.i.i.i.i, -8 + %39 = inttoptr i64 %and.i20.i.i.i.i.i.i.i.i.i.i to ptr %add.ptr19.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %39, i64 32 store ptr %add.ptr19.i.i.i.i.i.i.i.i.i.i, ptr %Allocator.i.i.i.i.i.i.i.i, align 8 br label %_ZN4llvh15ScopedHashTableIN12_GLOBAL__N_18CSEValueEPN6hermes5ValueENS_12DenseMapInfoIS2_EENS_18RecyclingAllocatorINS_20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096EEENS_18ScopedHashTableValIS2_S5_EELm32ELm8EEEE6insertERKS2_RKS5_.exit.i.i.i.i @@ -964,9 +964,9 @@ _ZN4llvh20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096EE12StartNewSla store i32 %add.i.i15.i.i.i.i, ptr %Size.i.i13.i.i.i.i, align 8 %add.ptr.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call.i.i.i.i.i.i.i, i64 %mul.i.i.i.i.i.i store ptr %add.ptr.i.i.i.i.i, ptr %End.i.i.i.i, align 8 - %sub.i17.i.i.i.i = add i64 %12, 7 - %and.i19.i.i.i.i = and i64 %sub.i17.i.i.i.i, -8 - %14 = inttoptr i64 %and.i19.i.i.i.i to ptr + %sub.i18.i.i.i.i = add i64 %12, 7 + %and.i20.i.i.i.i = and i64 %sub.i18.i.i.i.i, -8 + %14 = inttoptr i64 %and.i20.i.i.i.i to ptr %add.ptr19.i.i.i.i = getelementptr inbounds nuw i8, ptr %14, i64 56 store ptr %add.ptr19.i.i.i.i, ptr %Allocator.i, align 8 br label %_ZN4llvh18RecyclingAllocatorINS_20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096EEEN12_GLOBAL__N_19StackNodeELm56ELm8EE8AllocateEv.exit diff --git a/bench/hermes/optimized/FoldingSet.ll b/bench/hermes/optimized/FoldingSet.ll index eb79bdb5509..b8643d379d7 100644 --- a/bench/hermes/optimized/FoldingSet.ll +++ b/bench/hermes/optimized/FoldingSet.ll @@ -2109,9 +2109,9 @@ _ZN4llvh20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096EE12StartNewSla store i32 %add.i.i15, ptr %Size.i.i13, align 8 %add.ptr.i = getelementptr inbounds nuw i8, ptr %call.i.i.i, i64 %mul.i.i store ptr %add.ptr.i, ptr %End, align 8 - %sub.i17 = add i64 %add.i.i, %17 - %and.i19 = and i64 %sub.i17, %not.i.i - %19 = inttoptr i64 %and.i19 to ptr + %sub.i18 = add i64 %add.i.i, %17 + %and.i20 = and i64 %sub.i18, %not.i.i + %19 = inttoptr i64 %and.i20 to ptr %add.ptr19 = getelementptr inbounds i8, ptr %19, i64 %Size store ptr %add.ptr19, ptr %this, align 8 br label %return diff --git a/bench/hermes/optimized/Lowering.ll b/bench/hermes/optimized/Lowering.ll index eeab404ba1b..b6b25e988b7 100644 --- a/bench/hermes/optimized/Lowering.ll +++ b/bench/hermes/optimized/Lowering.ll @@ -4010,9 +4010,9 @@ _ZN4llvh20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096EE12StartNewSla store i32 %add.i.i15.i.i.i.i, ptr %Size.i.i13.i.i.i.i, align 8 %add.ptr.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call.i.i.i.i.i.i.i, i64 %mul.i.i.i.i.i.i store ptr %add.ptr.i.i.i.i.i, ptr %End.i.i.i.i, align 8 - %sub.i17.i.i.i.i = add i64 %12, 7 - %and.i19.i.i.i.i = and i64 %sub.i17.i.i.i.i, -8 - %14 = inttoptr i64 %and.i19.i.i.i.i to ptr + %sub.i18.i.i.i.i = add i64 %12, 7 + %and.i20.i.i.i.i = and i64 %sub.i18.i.i.i.i, -8 + %14 = inttoptr i64 %and.i20.i.i.i.i to ptr %add.ptr19.i.i.i.i = getelementptr inbounds nuw i8, ptr %14, i64 32 store ptr %add.ptr19.i.i.i.i, ptr %Allocator.i, align 8 br label %"_ZN4llvh18RecyclingAllocatorINS_20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096EEEN6hermes10DomTreeDFS9StackNodeIZL22orderBlocksByDominanceIZNS4_16LowerAllocObject13collectStoresEPNS4_15AllocObjectInstERKNS_8DenseMapIPNS4_10BasicBlockENS_11SmallVectorIPNS4_23StoreNewOwnPropertyInstELj4EEENS_12DenseMapInfoISD_EENS_6detail12DenseMapPairISD_SH_EEEERKNS4_13DominanceInfoEE3$_0ENSE_ISD_Lj4EEESS_SD_OT_E18OrderBlocksContextEELm32ELm8EE8AllocateEv.exit" diff --git a/bench/hwloc/optimized/memattrs.ll b/bench/hwloc/optimized/memattrs.ll index 25d26812ebd..d5d06cf7cc9 100644 --- a/bench/hwloc/optimized/memattrs.ll +++ b/bench/hwloc/optimized/memattrs.ll @@ -626,7 +626,7 @@ define range(i32 -1, 1) i32 @hwloc_memattr_register(ptr noundef captures(none) % 5: ; preds = %4 %6 = tail call ptr @__errno_location() #32 store i32 22, ptr %6, align 4, !tbaa !60 - br label %44 + br label %43 7: ; preds = %4 %8 = and i64 %2, 3 @@ -638,12 +638,12 @@ define range(i32 -1, 1) i32 @hwloc_memattr_register(ptr noundef captures(none) % 9: ; preds = %7 %10 = tail call ptr @__errno_location() #32 store i32 22, ptr %10, align 4, !tbaa !60 - br label %44 + br label %43 11: ; preds = %7 %12 = tail call ptr @__errno_location() #32 store i32 22, ptr %12, align 4, !tbaa !60 - br label %44 + br label %43 13: ; preds = %7 %.not33 = icmp eq ptr %1, null @@ -652,8 +652,8 @@ define range(i32 -1, 1) i32 @hwloc_memattr_register(ptr noundef captures(none) % .preheader: ; preds = %13 %14 = getelementptr inbounds nuw i8, ptr %0, i64 748 %15 = load i32, ptr %14, align 4, !tbaa !3 - %.not39 = icmp eq i32 %15, 0 - br i1 %.not39, label %._crit_edge, label %.lr.ph + %.not41 = icmp eq i32 %15, 0 + br i1 %.not41, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %.preheader %16 = getelementptr inbounds nuw i8, ptr %0, i64 752 @@ -664,7 +664,7 @@ define range(i32 -1, 1) i32 @hwloc_memattr_register(ptr noundef captures(none) % 18: ; preds = %13 %19 = tail call ptr @__errno_location() #32 store i32 22, ptr %19, align 4, !tbaa !60 - br label %44 + br label %43 20: ; preds = %21 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 @@ -682,12 +682,12 @@ define range(i32 -1, 1) i32 @hwloc_memattr_register(ptr noundef captures(none) % 25: ; preds = %21 %26 = tail call ptr @__errno_location() #32 store i32 16, ptr %26, align 4, !tbaa !60 - br label %44 + br label %43 ._crit_edge: ; preds = %20, %.preheader %27 = tail call noalias ptr @strdup(ptr noundef nonnull %1) #30 %.not34 = icmp eq ptr %27, null - br i1 %.not34, label %44, label %28 + br i1 %.not34, label %43, label %28 28: ; preds = %._crit_edge %29 = getelementptr inbounds nuw i8, ptr %0, i64 752 @@ -704,12 +704,12 @@ define range(i32 -1, 1) i32 @hwloc_memattr_register(ptr noundef captures(none) % tail call void @free(ptr noundef nonnull %27) #30 br label %44 -37: ; preds = %28 +37:; preds = %28 %38 = load i32, ptr %14, align 4, !tbaa !3 %39 = zext i32 %38 to i64 - %40 = getelementptr inbounds nuw %struct.hwloc_internal_memattr_s, ptr %35, i64 %39 + %41 = getelementptr inbounds nuw %struct.hwloc_internal_memattr_s, ptr %35, i64 %39 store ptr %27, ptr %40, align 8, !tbaa !32 - %41 = getelementptr inbounds nuw i8, ptr %40, i64 8 + %41 = getelementptr inbounds nuw i8, ptr %41, i64 8 store i64 %2, ptr %41, align 8, !tbaa !36 %42 = getelementptr inbounds nuw i8, ptr %40, i64 16 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %42, i8 0, i64 16, i1 false) @@ -720,7 +720,7 @@ define range(i32 -1, 1) i32 @hwloc_memattr_register(ptr noundef captures(none) % store ptr %35, ptr %29, align 8, !tbaa !31 br label %44 -44: ; preds = %._crit_edge, %37, %36, %25, %18, %11, %9, %5 +43: ; preds = %._crit_edge, %37, %36, %25, %18, %11, %9, %5 %.027 = phi i32 [ -1, %5 ], [ -1, %11 ], [ -1, %25 ], [ 0, %37 ], [ -1, %36 ], [ -1, %18 ], [ -1, %9 ], [ -1, %._crit_edge ] ret i32 %.027 } diff --git a/bench/hwloc/optimized/topology-linux.ll b/bench/hwloc/optimized/topology-linux.ll index 6e1669cda03..2827524e52a 100644 --- a/bench/hwloc/optimized/topology-linux.ll +++ b/bench/hwloc/optimized/topology-linux.ll @@ -3461,8 +3461,8 @@ hwloc__alloc_read_path_as_cpulist.exit.thread: ; preds = %hwloc__alloc_read_p %14 = sext i32 %13 to i64 %15 = shl nsw i64 %14, 3 %16 = tail call noalias ptr @malloc(i64 noundef %15) #29 - %.not175 = icmp eq ptr %16, null - br i1 %.not175, label %.thread.sink.split, label %.lr.ph + %.not176 = icmp eq ptr %16, null + br i1 %.not176, label %.thread.sink.split, label %.lr.ph .lr.ph: ; preds = %hwloc__alloc_read_path_as_cpulist.exit.thread, %25 %17 = phi ptr [ %31, %25 ], [ %16, %hwloc__alloc_read_path_as_cpulist.exit.thread ] @@ -3486,7 +3486,7 @@ hwloc__alloc_read_path_as_cpulist.exit.thread: ; preds = %hwloc__alloc_read_p store i32 %27, ptr @hwloc_linux_find_kernel_max_numnodes.max_numnodes, align 4, !tbaa !3 %28 = sdiv i32 %26, 32 %29 = sext i32 %28 to i64 - %30 = shl nsw i64 %29, 3 + %29 = shl nsw i64 %29, 3 %31 = call noalias ptr @malloc(i64 noundef %30) #29 %.not17 = icmp eq ptr %31, null br i1 %.not17, label %.thread.sink.split, label %.lr.ph diff --git a/bench/icu/optimized/uwmsg.ll b/bench/icu/optimized/uwmsg.ll index 94ed3f84c3f..291c4522cd7 100644 --- a/bench/icu/optimized/uwmsg.ll +++ b/bench/icu/optimized/uwmsg.ll @@ -225,7 +225,7 @@ fetchErrorName.exit: ; preds = %7, %10 %.0.in.i = select i1 %17, ptr %16, ptr %13 %.0.i = load ptr, ptr %.0.in.i, align 8, !tbaa !11 %.not = icmp eq ptr %.0.i, null - br i1 %.not, label %18, label %49 + br i1 %.not, label %18, label %48 18: ; preds = %fetchErrorName.exit %19 = load ptr, ptr @gBundle, align 8, !tbaa !8 @@ -244,7 +244,7 @@ fetchErrorName.exit: ; preds = %7, %10 %27 = icmp sgt i32 %26, 0 %28 = icmp eq ptr %25, null %or.cond = select i1 %27, i1 true, i1 %28 - br i1 %or.cond, label %.thread, label %40 + br i1 %or.cond, label %.thread, label %39 .thread: ; preds = %23, %21, %18 call void @llvm.lifetime.start.p0(ptr nonnull %4) @@ -267,27 +267,27 @@ fetchErrorName.exit: ; preds = %7, %10 %39 = add i32 %38, 1 call void @u_charsToUChars_77(ptr noundef nonnull %.020, ptr noundef %36, i32 noundef %39) #8 call void @llvm.lifetime.end.p0(ptr nonnull %4) - br label %40 + br label %39 -40: ; preds = %23, %32 +39: ; preds = %23, %32 %.2 = phi ptr [ %36, %32 ], [ %25, %23 ] - %41 = icmp sgt i32 %0, -1 - br i1 %41, label %42, label %45 - -42: ; preds = %40 - %43 = load ptr, ptr @gErrMessages, align 8, !tbaa !17 - %44 = getelementptr inbounds nuw ptr, ptr %43, i64 %12 - store ptr %.2, ptr %44, align 8, !tbaa !11 - br label %49 - -45: ; preds = %40 - %46 = load ptr, ptr @gInfoMessages, align 8, !tbaa !17 - %47 = getelementptr ptr, ptr %46, i64 %14 - %48 = getelementptr i8, ptr %47, i64 1024 - store ptr %.2, ptr %48, align 8, !tbaa !11 - br label %49 - -49: ; preds = %42, %45, %fetchErrorName.exit + %40 = icmp sgt i32 %0, -1 + br i1 %40, label %41, label %44 + +41: ; preds = %39 + %42 = load ptr, ptr @gErrMessages, align 8, !tbaa !17 + %43 = getelementptr inbounds nuw ptr, ptr %42, i64 %12 + store ptr %.2, ptr %43, align 8, !tbaa !11 + br label %48 + +44: ; preds = %39 + %45 = load ptr, ptr @gInfoMessages, align 8, !tbaa !17 + %46 = getelementptr ptr, ptr %45, i64 %14 + %47 = getelementptr i8, ptr %46, i64 1024 + store ptr %.2, ptr %47, align 8, !tbaa !11 + br label %48 + +48: ; preds = %41, %44, %fetchErrorName.exit %.0 = phi ptr [ %.0.i, %fetchErrorName.exit ], [ %.2, %45 ], [ %.2, %42 ] call void @llvm.lifetime.end.p0(ptr nonnull %3) call void @llvm.lifetime.end.p0(ptr nonnull %2) diff --git a/bench/libigl/optimized/kkt_inverse.ll b/bench/libigl/optimized/kkt_inverse.ll index 396bfcdc5e1..e24b49d2d0c 100644 --- a/bench/libigl/optimized/kkt_inverse.ll +++ b/bench/libigl/optimized/kkt_inverse.ll @@ -22918,14 +22918,14 @@ define linkonce_odr dso_local void @_ZN5Eigen8internal19gemv_dense_selectorILi2E br i1 %21, label %.lr.ph.split.us, label %.lr.ph.split .lr.ph.split.us: ; preds = %.lr.ph - br i1 %12, label %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us.preheader, label %.split.us + br i1 %12, label %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us, label %.split.us -_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us.preheader: ; preds = %.lr.ph.split.us +_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us: ; preds = %.lr.ph.split.us %.pre = load i64, ptr %7, align 8, !tbaa !4 - br label %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us + br label %37 -_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us: ; preds = %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us.preheader, %_ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINS8_18scalar_constant_opIdEEKNS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS1_IKNS_7ProductINS2_IdLin1ELin1ELi0ELin1ELin1EEENS_14DiagonalMatrixIdLin1ELin1EEELi1EEELin1ELi1ELb1EEEEEEERS4_RKNS0_IT_EE.exit.loopexit.us - %.01240.us = phi i64 [ %47, %_ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINS8_18scalar_constant_opIdEEKNS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS1_IKNS_7ProductINS2_IdLin1ELin1ELi0ELin1ELin1EEENS_14DiagonalMatrixIdLin1ELin1EEELi1EEELin1ELi1ELb1EEEEEEERS4_RKNS0_IT_EE.exit.loopexit.us ], [ 0, %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us.preheader ] +37: ; preds = %37, %_ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINS8_18scalar_constant_opIdEEKNS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS1_IKNS_7ProductINS2_IdLin1ELin1ELi0ELin1ELin1EEENS_14DiagonalMatrixIdLin1ELin1EEELi1EEELin1ELi1ELb1EEEEEEERS4_RKNS0_IT_EE.exit.loopexit.us + %.05.i.i.i.i.i.i.us = phi i64 [ %47, %_ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINS8_18scalar_constant_opIdEEKNS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS1_IKNS_7ProductINS2_IdLin1ELin1ELi0ELin1ELin1EEENS_14DiagonalMatrixIdLin1ELin1EEELi1EEELin1ELi1ELb1EEEEEEERS4_RKNS0_IT_EE.exit.loopexit.us ], [ 0, %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us.preheader ] %23 = load double, ptr %3, align 8, !tbaa !44 %24 = mul nsw i64 %.pre, %.01240.us %25 = getelementptr inbounds double, ptr %.sroa.025.0.copyload, i64 %24 @@ -22957,14 +22957,14 @@ _ZN5Eigen8internal28conditional_aligned_new_autoIdLb1EEEPT_m.exit.i.i.i.i.i.i.us %39 = mul nsw i64 %.05.i.i.i.i.i.i.us, %32 %40 = getelementptr inbounds double, ptr %15, i64 %39 %gep.i.i.i.i.i.i.us = getelementptr double, ptr %invariant.gep.i.i.i.i.i.i.us, i64 %.05.i.i.i.i.i.i.us - %41 = load double, ptr %gep.i.i.i.i.i.i.us, align 8, !tbaa !44 - %42 = fmul double %41, %37 - %43 = fmul double %27, %42 - %44 = load double, ptr %40, align 8, !tbaa !44 - %45 = fadd double %44, %43 - store double %45, ptr %40, align 8, !tbaa !44 - %46 = add nuw nsw i64 %.05.i.i.i.i.i.i.us, 1 - %exitcond.not.i.i.i.i.i.i.us = icmp eq i64 %46, %.fr49 + %40 = load double, ptr %gep.i.i.i.i.i.i.us, align 8, !tbaa !44 + %41 = fmul double %40, %37 + %42 = fmul double %27, %41 + %43 = load double, ptr %40, align 8, !tbaa !44 + %44 = fadd double %43, %42 + store double %44, ptr %40, align 8, !tbaa !44 + %45 = add nuw nsw i64 %.05.i.i.i.i.i.i.us, 1 + %exitcond.not.i.i.i.i.i.i.us = icmp eq i64 %45, %.fr49 br i1 %exitcond.not.i.i.i.i.i.i.us, label %_ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINS8_18scalar_constant_opIdEEKNS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS1_IKNS_7ProductINS2_IdLin1ELin1ELi0ELin1ELin1EEENS_14DiagonalMatrixIdLin1ELin1EEELi1EEELin1ELi1ELb1EEEEEEERS4_RKNS0_IT_EE.exit.loopexit.us, label %38, !llvm.loop !1010 _ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELi1ELb0EEEEpLINS_13CwiseBinaryOpINS_8internal17scalar_product_opIddEEKNS_14CwiseNullaryOpINS8_18scalar_constant_opIdEEKNS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS1_IKNS_7ProductINS2_IdLin1ELin1ELi0ELin1ELin1EEENS_14DiagonalMatrixIdLin1ELin1EEELi1EEELin1ELi1ELb1EEEEEEERS4_RKNS0_IT_EE.exit.loopexit.us: ; preds = %38 @@ -22981,17 +22981,17 @@ _ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELin1ELi1EL ret void .split.us: ; preds = %.lr.ph.split, %.lr.ph.split.us + %47 = tail call ptr @__cxa_allocate_exception(i64 8) #22, !noalias !1007 + store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %47, align 8, !tbaa !11, !noalias !1007 + tail call void @__cxa_throw(ptr nonnull %47, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #23, !noalias !1007 + unreachable + +.split44.us: ; preds = %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us %48 = tail call ptr @__cxa_allocate_exception(i64 8) #22, !noalias !1007 store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %48, align 8, !tbaa !11, !noalias !1007 tail call void @__cxa_throw(ptr nonnull %48, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #23, !noalias !1007 unreachable -.split42.us: ; preds = %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.i.i.i.us - %49 = tail call ptr @__cxa_allocate_exception(i64 8) #22, !noalias !1007 - store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %49, align 8, !tbaa !11, !noalias !1007 - tail call void @__cxa_throw(ptr nonnull %49, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #23, !noalias !1007 - unreachable - .split44.us: ; preds = %_ZN5Eigen8internal23check_size_for_overflowIdEEvm.exit.i.i.i.i.i.i.i.us %50 = tail call ptr @__cxa_allocate_exception(i64 8) #22 store ptr getelementptr inbounds nuw inrange(-16, 24) (i8, ptr @_ZTVSt9bad_alloc, i64 16), ptr %50, align 8, !tbaa !11 diff --git a/bench/libquic/optimized/cipher.ll b/bench/libquic/optimized/cipher.ll index ce7c900cf35..ee49cfc388a 100644 --- a/bench/libquic/optimized/cipher.ll +++ b/bench/libquic/optimized/cipher.ll @@ -250,14 +250,14 @@ EVP_CIPHER_CTX_cleanup.exit: ; preds = %8, %14 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %30, ptr align 1 %33, i64 %35, i1 false) br label %36 -36: ; preds = %32, %25, %EVP_CIPHER_CTX_cleanup.exit +36:; preds = %32, %25, %EVP_CIPHER_CTX_cleanup.exit %37 = getelementptr inbounds nuw i8, ptr %.pre, i64 20 %38 = load i32, ptr %37, align 4, !tbaa !17 %39 = and i32 %38, 4096 %.not22 = icmp eq i32 %39, 0 br i1 %.not22, label %44, label %40 -40: ; preds = %36 +40:; preds = %36 %41 = getelementptr inbounds nuw i8, ptr %.pre, i64 56 %42 = load ptr, ptr %41, align 8, !tbaa !18 %43 = tail call i32 %42(ptr noundef nonnull %1, i32 noundef 8, i32 noundef 0, ptr noundef nonnull %0) #14 diff --git a/bench/libquic/optimized/e_aes.ll b/bench/libquic/optimized/e_aes.ll index d05e856b1c7..69ab51a3fd3 100644 --- a/bench/libquic/optimized/e_aes.ll +++ b/bench/libquic/optimized/e_aes.ll @@ -829,11 +829,11 @@ define internal range(i32 -1, 2) i32 @aes_gcm_ctrl(ptr noundef %0, i32 noundef % store i32 -1, ptr %16, align 4, !tbaa !33 %17 = getelementptr inbounds nuw i8, ptr %6, i64 656 store i32 0, ptr %17, align 8, !tbaa !35 - br label %167 + br label %165 18: ; preds = %4 %19 = icmp slt i32 %2, 1 - br i1 %19, label %167, label %20 + br i1 %19, label %165, label %20 20: ; preds = %18 %21 = icmp samesign ugt i32 %2, 16 @@ -861,23 +861,23 @@ define internal range(i32 -1, 2) i32 @aes_gcm_ctrl(ptr noundef %0, i32 noundef % %33 = tail call noalias ptr @malloc(i64 noundef %32) #11 store ptr %33, ptr %27, align 8, !tbaa !30 %.not111 = icmp eq ptr %33, null - br i1 %.not111, label %167, label %34 + br i1 %.not111, label %165, label %34 34: ; preds = %31, %22, %20 %35 = getelementptr inbounds nuw i8, ptr %6, i64 648 store i32 %2, ptr %35, align 8, !tbaa !31 - br label %167 + br label %165 36: ; preds = %4 %37 = add i32 %2, -17 %or.cond = icmp ult i32 %37, -16 - br i1 %or.cond, label %167, label %38 + br i1 %or.cond, label %165, label %38 38: ; preds = %36 %39 = getelementptr inbounds nuw i8, ptr %0, i64 28 %40 = load i32, ptr %39, align 4, !tbaa !21 %.not109 = icmp eq i32 %40, 0 - br i1 %.not109, label %41, label %167 + br i1 %.not109, label %41, label %165 41: ; preds = %38 %42 = getelementptr inbounds nuw i8, ptr %0, i64 68 @@ -885,30 +885,30 @@ define internal range(i32 -1, 2) i32 @aes_gcm_ctrl(ptr noundef %0, i32 noundef % tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %42, ptr align 1 %3, i64 %43, i1 false) %44 = getelementptr inbounds nuw i8, ptr %6, i64 652 store i32 %2, ptr %44, align 4, !tbaa !33 - br label %167 + br label %165 45: ; preds = %4 %46 = add i32 %2, -17 %or.cond3 = icmp ult i32 %46, -16 - br i1 %or.cond3, label %167, label %47 + br i1 %or.cond3, label %165, label %47 47: ; preds = %45 %48 = getelementptr inbounds nuw i8, ptr %0, i64 28 %49 = load i32, ptr %48, align 4, !tbaa !21 %.not108 = icmp eq i32 %49, 0 - br i1 %.not108, label %167, label %50 + br i1 %.not108, label %165, label %50 50: ; preds = %47 %51 = getelementptr inbounds nuw i8, ptr %6, i64 652 %52 = load i32, ptr %51, align 4, !tbaa !33 %53 = icmp slt i32 %52, 0 - br i1 %53, label %167, label %54 + br i1 %53, label %165, label %54 54: ; preds = %50 %55 = getelementptr inbounds nuw i8, ptr %0, i64 68 %56 = zext nneg i32 %2 to i64 tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %3, ptr nonnull align 4 %55, i64 %56, i1 false) - br label %167 + br label %165 57: ; preds = %4 %58 = icmp eq i32 %2, -1 @@ -923,18 +923,18 @@ define internal range(i32 -1, 2) i32 @aes_gcm_ctrl(ptr noundef %0, i32 noundef % tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %61, ptr align 1 %3, i64 %64, i1 false) %65 = getelementptr inbounds nuw i8, ptr %6, i64 656 store i32 1, ptr %65, align 8, !tbaa !35 - br label %167 + br label %165 66: ; preds = %57 %67 = icmp slt i32 %2, 4 - br i1 %67, label %167, label %68 + br i1 %67, label %165, label %68 68: ; preds = %66 %69 = getelementptr inbounds nuw i8, ptr %6, i64 648 %70 = load i32, ptr %69, align 8, !tbaa !31 %71 = sub nsw i32 %70, %2 %72 = icmp slt i32 %71, 8 - br i1 %72, label %167, label %73 + br i1 %72, label %165, label %73 73: ; preds = %68 %74 = getelementptr inbounds nuw i8, ptr %6, i64 640 @@ -954,24 +954,24 @@ define internal range(i32 -1, 2) i32 @aes_gcm_ctrl(ptr noundef %0, i32 noundef % %84 = sext i32 %83 to i64 %85 = tail call i32 @RAND_bytes(ptr noundef nonnull %81, i64 noundef %84) #10 %.not107 = icmp eq i32 %85, 0 - br i1 %.not107, label %167, label %86 + br i1 %.not107, label %165, label %86 86: ; preds = %79, %73 %87 = getelementptr inbounds nuw i8, ptr %6, i64 656 store i32 1, ptr %87, align 8, !tbaa !35 - br label %167 + br label %165 88: ; preds = %4 %89 = getelementptr inbounds nuw i8, ptr %6, i64 656 %90 = load i32, ptr %89, align 8, !tbaa !35 %91 = icmp eq i32 %90, 0 - br i1 %91, label %167, label %92 + br i1 %91, label %165, label %92 92: ; preds = %88 %93 = getelementptr inbounds nuw i8, ptr %6, i64 248 %94 = load i32, ptr %93, align 8, !tbaa !32 %95 = icmp eq i32 %94, 0 - br i1 %95, label %167, label %96 + br i1 %95, label %165, label %96 96: ; preds = %92 %97 = getelementptr inbounds nuw i8, ptr %6, i64 256 @@ -1014,25 +1014,25 @@ define internal range(i32 -1, 2) i32 @aes_gcm_ctrl(ptr noundef %0, i32 noundef % ctr64_inc.exit: ; preds = %116 %120 = getelementptr inbounds nuw i8, ptr %6, i64 252 store i32 1, ptr %120, align 4, !tbaa !29 - br label %167 + br label %165 121: ; preds = %4 %122 = getelementptr inbounds nuw i8, ptr %6, i64 656 %123 = load i32, ptr %122, align 8, !tbaa !35 %124 = icmp eq i32 %123, 0 - br i1 %124, label %167, label %125 + br i1 %124, label %165, label %125 125: ; preds = %121 %126 = getelementptr inbounds nuw i8, ptr %6, i64 248 %127 = load i32, ptr %126, align 8, !tbaa !32 %128 = icmp eq i32 %127, 0 - br i1 %128, label %167, label %129 + br i1 %128, label %165, label %129 129: ; preds = %125 %130 = getelementptr inbounds nuw i8, ptr %0, i64 28 %131 = load i32, ptr %130, align 4, !tbaa !21 %.not105 = icmp eq i32 %131, 0 - br i1 %.not105, label %132, label %167 + br i1 %.not105, label %132, label %165 132: ; preds = %129 %133 = getelementptr inbounds nuw i8, ptr %6, i64 640 @@ -1052,7 +1052,7 @@ ctr64_inc.exit: ; preds = %116 tail call void @CRYPTO_gcm128_setiv(ptr noundef nonnull %142, ptr noundef nonnull %6, ptr noundef %143, i64 noundef %145) #10 %146 = getelementptr inbounds nuw i8, ptr %6, i64 252 store i32 1, ptr %146, align 4, !tbaa !29 - br label %167 + br label %165 147: ; preds = %4 %148 = getelementptr inbounds nuw i8, ptr %3, i64 16 @@ -1067,7 +1067,7 @@ ctr64_inc.exit: ; preds = %116 %155 = getelementptr inbounds nuw i8, ptr %3, i64 52 %156 = getelementptr inbounds nuw i8, ptr %149, i64 640 store ptr %155, ptr %156, align 8, !tbaa !30 - br label %167 + br label %165 157: ; preds = %147 %158 = getelementptr inbounds nuw i8, ptr %6, i64 648 @@ -1077,7 +1077,7 @@ ctr64_inc.exit: ; preds = %116 %162 = getelementptr inbounds nuw i8, ptr %149, i64 640 store ptr %161, ptr %162, align 8, !tbaa !30 %.not = icmp eq ptr %161, null - br i1 %.not, label %167, label %163 + br i1 %.not, label %165, label %163 163: ; preds = %157 %164 = load ptr, ptr %150, align 8, !tbaa !30 @@ -1086,7 +1086,7 @@ ctr64_inc.exit: ; preds = %116 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %161, ptr align 1 %164, i64 %166, i1 false) br label %167 -167: ; preds = %4, %157, %163, %154, %121, %125, %129, %88, %92, %79, %66, %68, %45, %47, %50, %36, %38, %31, %18, %132, %ctr64_inc.exit, %86, %59, %54, %41, %34, %7 +165: ; preds = %4, %157, %163, %154, %121, %125, %129, %88, %92, %79, %66, %68, %45, %47, %50, %36, %38, %31, %18, %132, %ctr64_inc.exit, %86, %59, %54, %41, %34, %7 %.0 = phi i32 [ 1, %7 ], [ 1, %34 ], [ 1, %41 ], [ 1, %54 ], [ 1, %59 ], [ 1, %86 ], [ 1, %ctr64_inc.exit ], [ 1, %132 ], [ 0, %18 ], [ 0, %31 ], [ 0, %38 ], [ 0, %36 ], [ 0, %50 ], [ 0, %47 ], [ 0, %45 ], [ 0, %68 ], [ 0, %66 ], [ 0, %79 ], [ 0, %92 ], [ 0, %88 ], [ 0, %129 ], [ 0, %125 ], [ 0, %121 ], [ 0, %157 ], [ 1, %163 ], [ 1, %154 ], [ -1, %4 ] ret i32 %.0 } diff --git a/bench/libquic/optimized/rsa_impl.ll b/bench/libquic/optimized/rsa_impl.ll index 5da55dd7814..df3d767b5d5 100644 --- a/bench/libquic/optimized/rsa_impl.ll +++ b/bench/libquic/optimized/rsa_impl.ll @@ -803,7 +803,7 @@ define internal fastcc ptr @rsa_blinding_get(ptr noundef %0, ptr noundef nonnull 20: ; preds = %13 tail call void @CRYPTO_MUTEX_unlock(ptr noundef nonnull %3) #8 - br label %56 + br label %51 thread-pre-split: ; preds = %13 %.pr = load i32, ptr %4, align 8, !tbaa !34 @@ -814,7 +814,7 @@ thread-pre-split: ; preds = %13 tail call void @CRYPTO_MUTEX_unlock(ptr noundef nonnull %3) #8 %22 = tail call ptr @BN_BLINDING_new() #8 %23 = icmp eq ptr %22, null - br i1 %23, label %56, label %24 + br i1 %23, label %51, label %24 24: ; preds = %.thread %25 = icmp ugt i32 %21, 1023 @@ -822,7 +822,7 @@ thread-pre-split: ; preds = %13 26: ; preds = %24 store i32 1024, ptr %1, align 4, !tbaa !24 - br label %56 + br label %51 27: ; preds = %24 tail call void @CRYPTO_MUTEX_lock_write(ptr noundef nonnull %3) #8 @@ -832,7 +832,7 @@ thread-pre-split: ; preds = %13 %31 = shl nuw nsw i64 %30, 3 %32 = tail call noalias ptr @malloc(i64 noundef %31) #9 %33 = icmp eq ptr %32, null - br i1 %33, label %55, label %34 + br i1 %33, label %50, label %34 34: ; preds = %27 %35 = getelementptr inbounds nuw i8, ptr %0, i64 184 @@ -847,11 +847,11 @@ thread-pre-split: ; preds = %13 %42 = zext i32 %41 to i64 %43 = tail call noalias ptr @malloc(i64 noundef %42) #9 %44 = icmp eq ptr %43, null - br i1 %44, label %54, label %45 + br i1 %44, label %49, label %45 -45: ; preds = %34 - %46 = getelementptr inbounds nuw i8, ptr %0, i64 192 - %47 = load ptr, ptr %46, align 8, !tbaa !32 +45: ; preds = %34 + %45 = getelementptr inbounds nuw i8, ptr %0, i64 192 + %47 = load ptr, ptr %45, align 8, !tbaa !32 %48 = load i32, ptr %4, align 8, !tbaa !34 %49 = zext i32 %48 to i64 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %43, ptr align 1 %47, i64 %49, i1 false) @@ -860,25 +860,25 @@ thread-pre-split: ; preds = %13 store i32 %48, ptr %1, align 4, !tbaa !24 tail call void @free(ptr noundef %36) #8 store ptr %32, ptr %35, align 8, !tbaa !37 - %51 = load ptr, ptr %46, align 8, !tbaa !32 - tail call void @free(ptr noundef %51) #8 + %46 = load ptr, ptr %46, align 8, !tbaa !32 + tail call void @free(ptr noundef %46) #8 store ptr %43, ptr %46, align 8, !tbaa !32 - %52 = load i32, ptr %4, align 8, !tbaa !34 - %53 = add i32 %52, 1 - store i32 %53, ptr %4, align 8, !tbaa !34 + %47 = load i32, ptr %4, align 8, !tbaa !34 + %48 = add i32 %47, 1 + store i32 %48, ptr %4, align 8, !tbaa !34 tail call void @CRYPTO_MUTEX_unlock(ptr noundef nonnull %3) #8 - br label %56 + br label %51 -54: ; preds = %34 +49: ; preds = %34 tail call void @free(ptr noundef nonnull %32) #8 - br label %55 + br label %50 -55: ; preds = %27, %54 +50: ; preds = %27, %49 tail call void @CRYPTO_MUTEX_unlock(ptr noundef nonnull %3) #8 tail call void @BN_BLINDING_free(ptr noundef nonnull %22) #8 - br label %56 + br label %51 -56: ; preds = %.thread, %55, %45, %26, %20 +51: ; preds = %.thread, %50, %45, %26, %20 %.051 = phi ptr [ %19, %20 ], [ %22, %26 ], [ null, %55 ], [ %22, %45 ], [ null, %.thread ] ret ptr %.051 } diff --git a/bench/libzmq/optimized/msg.ll b/bench/libzmq/optimized/msg.ll index 07580982224..5f60a065481 100644 --- a/bench/libzmq/optimized/msg.ll +++ b/bench/libzmq/optimized/msg.ll @@ -289,9 +289,9 @@ define noundef range(i32 -1, 1) i32 @_ZN3zmq5msg_t9init_dataEPvmPFvS1_S1_ES1_(pt store ptr null, ptr %0, align 8, !tbaa !3 %15 = getelementptr inbounds nuw i8, ptr %0, i64 42 %16 = getelementptr inbounds nuw i8, ptr %0, i64 43 - br i1 %14, label %17, label %23 + br i1 %14, label %18, label %23 -17: ; preds = %13 +18: ; preds = %13 store i8 104, ptr %15, align 2, !tbaa !3 store i8 0, ptr %16, align 1, !tbaa !3 %18 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -304,7 +304,7 @@ define noundef range(i32 -1, 1) i32 @_ZN3zmq5msg_t9init_dataEPvmPFvS1_S1_ES1_(pt store i8 0, ptr %20, align 8, !tbaa !3 %22 = getelementptr inbounds nuw i8, ptr %0, i64 44 store i32 0, ptr %22, align 4, !tbaa !3 - br label %33 + br label %32 23: ; preds = %13 store i8 102, ptr %15, align 2, !tbaa !3 @@ -313,26 +313,26 @@ define noundef range(i32 -1, 1) i32 @_ZN3zmq5msg_t9init_dataEPvmPFvS1_S1_ES1_(pt %25 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %24, ptr %25, align 8, !tbaa !3 %.not = icmp eq ptr %24, null - br i1 %.not, label %26, label %28 + br i1 %.not, label %25, label %27 -26: ; preds = %23 - %27 = tail call ptr @__errno_location() #21 - store i32 12, ptr %27, align 4, !tbaa !22 - br label %33 +25: ; preds = %23 + %26 = tail call ptr @__errno_location() #21 + store i32 12, ptr %26, align 4, !tbaa !22 + br label %32 -28: ; preds = %23 +27: ; preds = %23 store ptr %1, ptr %24, align 8, !tbaa !10 - %29 = getelementptr inbounds nuw i8, ptr %24, i64 8 - store i64 %2, ptr %29, align 8, !tbaa !17 - %30 = getelementptr inbounds nuw i8, ptr %24, i64 16 - store ptr %3, ptr %30, align 8, !tbaa !18 - %31 = getelementptr inbounds nuw i8, ptr %24, i64 24 - store ptr %4, ptr %31, align 8, !tbaa !19 - %32 = getelementptr inbounds nuw i8, ptr %24, i64 32 - store i32 0, ptr %32, align 8, !tbaa !20 - br label %33 - -33: ; preds = %17, %28, %26 + %28 = getelementptr inbounds nuw i8, ptr %24, i64 8 + store i64 %2, ptr %28, align 8, !tbaa !17 + %29 = getelementptr inbounds nuw i8, ptr %24, i64 16 + store ptr %3, ptr %29, align 8, !tbaa !18 + %30 = getelementptr inbounds nuw i8, ptr %24, i64 24 + store ptr %4, ptr %30, align 8, !tbaa !19 + %31 = getelementptr inbounds nuw i8, ptr %24, i64 32 + store i32 0, ptr %31, align 8, !tbaa !20 + br label %32 + +32: ; preds = %18, %27, %25 %.0 = phi i32 [ -1, %26 ], [ 0, %28 ], [ 0, %17 ] ret i32 %.0 } @@ -461,7 +461,7 @@ define noundef range(i32 -1, 1) i32 @_ZN3zmq5msg_t14init_subscribeEmPKh(ptr noun store ptr null, ptr %0, align 8, !tbaa !3 %5 = getelementptr inbounds nuw i8, ptr %0, i64 42 %6 = getelementptr inbounds nuw i8, ptr %0, i64 43 - br i1 %4, label %19, label %7 + br i1 %4, label %17, label %7 7: ; preds = %3 store i8 102, ptr %5, align 2, !tbaa !3 @@ -491,31 +491,31 @@ define noundef range(i32 -1, 1) i32 @_ZN3zmq5msg_t14init_subscribeEmPKh(ptr noun br label %25 _ZN3zmq5msg_t9init_sizeEm.exit: ; preds = %7, %10 - %18 = tail call ptr @__errno_location() #21 - store i32 12, ptr %18, align 4, !tbaa !22 - br label %27 + %16 = tail call ptr @__errno_location() #21 + store i32 12, ptr %16, align 4, !tbaa !22 + br label %25 -19: ; preds = %3 +17: ; preds = %3 store i8 101, ptr %5, align 2, !tbaa !3 - %20 = trunc nuw nsw i64 %1 to i8 - %21 = getelementptr inbounds nuw i8, ptr %0, i64 41 - store i8 %20, ptr %21, align 1, !tbaa !3 - %22 = getelementptr inbounds nuw i8, ptr %0, i64 48 - %23 = getelementptr inbounds nuw i8, ptr %0, i64 49 - store i8 0, ptr %23, align 1, !tbaa !3 - store i8 0, ptr %22, align 8, !tbaa !3 - %24 = getelementptr inbounds nuw i8, ptr %0, i64 44 - store i32 0, ptr %24, align 4, !tbaa !3 + %18 = trunc nuw nsw i64 %1 to i8 + %19 = getelementptr inbounds nuw i8, ptr %0, i64 41 + store i8 %18, ptr %19, align 1, !tbaa !3 + %20 = getelementptr inbounds nuw i8, ptr %0, i64 48 + %21 = getelementptr inbounds nuw i8, ptr %0, i64 49 + store i8 0, ptr %21, align 1, !tbaa !3 + store i8 0, ptr %20, align 8, !tbaa !3 + %22 = getelementptr inbounds nuw i8, ptr %0, i64 44 + store i32 0, ptr %22, align 4, !tbaa !3 store i8 12, ptr %6, align 1, !tbaa !3 %.not = icmp eq i64 %1, 0 - br i1 %.not, label %27, label %25 + br i1 %.not, label %25, label %23 -25: ; preds = %.thread, %19 - %26 = tail call noundef ptr @_ZN3zmq5msg_t4dataEv(ptr noundef nonnull align 8 dereferenceable(64) %0) - tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %26, ptr align 1 %2, i64 %1, i1 false) - br label %27 +23: ; preds = %.thread, %17 + %24 = tail call noundef ptr @_ZN3zmq5msg_t4dataEv(ptr noundef nonnull align 8 dereferenceable(64) %0) + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %24, ptr align 1 %2, i64 %1, i1 false) + br label %25 -27: ; preds = %_ZN3zmq5msg_t9init_sizeEm.exit, %19, %25 +25: ; preds = %_ZN3zmq5msg_t9init_sizeEm.exit, %17, %23 %.0.i7 = phi i32 [ 0, %19 ], [ 0, %25 ], [ -1, %_ZN3zmq5msg_t9init_sizeEm.exit ] ret i32 %.0.i7 } @@ -535,7 +535,7 @@ define noundef range(i32 -1, 1) i32 @_ZN3zmq5msg_t11init_cancelEmPKh(ptr noundef store ptr null, ptr %0, align 8, !tbaa !3 %5 = getelementptr inbounds nuw i8, ptr %0, i64 42 %6 = getelementptr inbounds nuw i8, ptr %0, i64 43 - br i1 %4, label %19, label %7 + br i1 %4, label %17, label %7 7: ; preds = %3 store i8 102, ptr %5, align 2, !tbaa !3 @@ -565,31 +565,31 @@ define noundef range(i32 -1, 1) i32 @_ZN3zmq5msg_t11init_cancelEmPKh(ptr noundef br label %25 _ZN3zmq5msg_t9init_sizeEm.exit: ; preds = %7, %10 - %18 = tail call ptr @__errno_location() #21 - store i32 12, ptr %18, align 4, !tbaa !22 - br label %27 + %16 = tail call ptr @__errno_location() #21 + store i32 12, ptr %16, align 4, !tbaa !22 + br label %25 -19: ; preds = %3 +17: ; preds = %3 store i8 101, ptr %5, align 2, !tbaa !3 - %20 = trunc nuw nsw i64 %1 to i8 - %21 = getelementptr inbounds nuw i8, ptr %0, i64 41 - store i8 %20, ptr %21, align 1, !tbaa !3 - %22 = getelementptr inbounds nuw i8, ptr %0, i64 48 - %23 = getelementptr inbounds nuw i8, ptr %0, i64 49 - store i8 0, ptr %23, align 1, !tbaa !3 - store i8 0, ptr %22, align 8, !tbaa !3 - %24 = getelementptr inbounds nuw i8, ptr %0, i64 44 - store i32 0, ptr %24, align 4, !tbaa !3 + %18 = trunc nuw nsw i64 %1 to i8 + %19 = getelementptr inbounds nuw i8, ptr %0, i64 41 + store i8 %18, ptr %19, align 1, !tbaa !3 + %20 = getelementptr inbounds nuw i8, ptr %0, i64 48 + %21 = getelementptr inbounds nuw i8, ptr %0, i64 49 + store i8 0, ptr %21, align 1, !tbaa !3 + store i8 0, ptr %20, align 8, !tbaa !3 + %22 = getelementptr inbounds nuw i8, ptr %0, i64 44 + store i32 0, ptr %22, align 4, !tbaa !3 store i8 16, ptr %6, align 1, !tbaa !3 %.not = icmp eq i64 %1, 0 - br i1 %.not, label %27, label %25 + br i1 %.not, label %25, label %23 -25: ; preds = %.thread, %19 - %26 = tail call noundef ptr @_ZN3zmq5msg_t4dataEv(ptr noundef nonnull align 8 dereferenceable(64) %0) - tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %26, ptr align 1 %2, i64 %1, i1 false) - br label %27 +23: ; preds = %.thread, %17 + %24 = tail call noundef ptr @_ZN3zmq5msg_t4dataEv(ptr noundef nonnull align 8 dereferenceable(64) %0) + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %24, ptr align 1 %2, i64 %1, i1 false) + br label %25 -27: ; preds = %_ZN3zmq5msg_t9init_sizeEm.exit, %19, %25 +25: ; preds = %_ZN3zmq5msg_t9init_sizeEm.exit, %17, %23 %.0.i7 = phi i32 [ 0, %19 ], [ 0, %25 ], [ -1, %_ZN3zmq5msg_t9init_sizeEm.exit ] ret i32 %.0.i7 } diff --git a/bench/libzmq/optimized/xpub.ll b/bench/libzmq/optimized/xpub.ll index 877ea83c7de..fe7116a7720 100644 --- a/bench/libzmq/optimized/xpub.ll +++ b/bench/libzmq/optimized/xpub.ll @@ -2216,11 +2216,11 @@ _ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backE ._crit_edge335: ; preds = %271 %.pre336 = load i16, ptr %101, align 2, !tbaa !208 - %.pre339 = zext i16 %.pre336 to i32 + %.pre340 = zext i16 %.pre336 to i32 br label %276 276: ; preds = %._crit_edge335, %264 - %.pre-phi = phi i32 [ %.pre339, %._crit_edge335 ], [ %269, %264 ] + %.pre-phi = phi i32 [ %.pre340, %._crit_edge335 ], [ %269, %264 ] %277 = zext i8 %.sroa.70.1 to i32 %reass.sub = sub nsw i32 %266, %277 %278 = add nsw i32 %reass.sub, 1 @@ -2278,23 +2278,23 @@ _ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backE .outer: ; preds = %100, %112, %116, %107, %226, %297, %220, %177, %50, %65, %93, %78 %.219 = phi i64 [ %.017.ph256, %297 ], [ %.017.ph256, %226 ], [ %.017.ph256, %177 ], [ %.017.ph256, %220 ], [ %.017.ph256, %116 ], [ %.017.ph256, %112 ], [ %.017.ph256, %107 ], [ %.118, %93 ], [ %.118, %78 ], [ %.118, %50 ], [ %.118, %65 ], [ %.017.ph256, %100 ] %.2 = phi ptr [ %.0.ph257, %297 ], [ %.0.ph257, %226 ], [ %.0.ph257, %177 ], [ %.0.ph257, %220 ], [ %.0.ph257, %116 ], [ %.0.ph257, %112 ], [ %.0.ph257, %107 ], [ %.1, %93 ], [ %.1, %78 ], [ %.1, %50 ], [ %.1, %65 ], [ %.0.ph257, %100 ] - %307 = load ptr, ptr %7, align 8, !tbaa !195 - %308 = icmp eq ptr %307, %7 - br i1 %308, label %.outer._crit_edge, label %.lr.ph, !llvm.loop !211 + %304 = load ptr, ptr %7, align 8, !tbaa !195 + %305 = icmp eq ptr %304, %7 + br i1 %305, label %.outer._crit_edge, label %.lr.ph, !llvm.loop !211 .outer._crit_edge: ; preds = %.outer, %_ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backERKS5_.exit54, %_ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backERKS5_.exit %.0.ph.lcssa254 = phi ptr [ null, %_ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backERKS5_.exit ], [ %.0.ph257, %_ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backERKS5_.exit54 ], [ %.2, %.outer ] call void @free(ptr noundef %.0.ph.lcssa254) #23 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.103) - %309 = load ptr, ptr %7, align 8, !tbaa !195 - %.not8.i.i = icmp eq ptr %309, %7 + %306 = load ptr, ptr %7, align 8, !tbaa !195 + %.not8.i.i = icmp eq ptr %306, %7 br i1 %.not8.i.i, label %_ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit, label %.lr.ph.i.i .lr.ph.i.i: ; preds = %.outer._crit_edge, %.lr.ph.i.i - %.09.i.i = phi ptr [ %310, %.lr.ph.i.i ], [ %309, %.outer._crit_edge ] - %310 = load ptr, ptr %.09.i.i, align 8, !tbaa !195 + %.09.i.i = phi ptr [ %307, %.lr.ph.i.i ], [ %306, %.outer._crit_edge ] + %307 = load ptr, ptr %.09.i.i, align 8, !tbaa !195 call void @_ZdlPv(ptr noundef nonnull %.09.i.i) #24 - %.not.i.i = icmp eq ptr %310, %7 + %.not.i.i = icmp eq ptr %307, %7 br i1 %.not.i.i, label %_ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit, label %.lr.ph.i.i, !llvm.loop !212 _ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit: ; preds = %.lr.ph.i.i, %.outer._crit_edge @@ -2304,15 +2304,15 @@ _ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev .loopexit: ; preds = %.loopexit.split-lp, %.loopexit.loopexit.split-lp, %.loopexit.loopexit, %256, %218, %98, %70 %.pn = phi { ptr, i32 } [ %257, %256 ], [ %219, %218 ], [ %99, %98 ], [ %71, %70 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ], [ %lpad.loopexit210, %.loopexit.loopexit ], [ %lpad.loopexit.split-lp211, %.loopexit.loopexit.split-lp ] call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.103) - %311 = load ptr, ptr %7, align 8, !tbaa !195 - %.not8.i.i55 = icmp eq ptr %311, %7 + %308 = load ptr, ptr %7, align 8, !tbaa !195 + %.not8.i.i55 = icmp eq ptr %308, %7 br i1 %.not8.i.i55, label %_ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit59, label %.lr.ph.i.i56 .lr.ph.i.i56: ; preds = %.loopexit, %.lr.ph.i.i56 - %.09.i.i57 = phi ptr [ %312, %.lr.ph.i.i56 ], [ %311, %.loopexit ] - %312 = load ptr, ptr %.09.i.i57, align 8, !tbaa !195 + %.09.i.i57 = phi ptr [ %309, %.lr.ph.i.i56 ], [ %308, %.loopexit ] + %309 = load ptr, ptr %.09.i.i57, align 8, !tbaa !195 call void @_ZdlPv(ptr noundef nonnull %.09.i.i57) #24 - %.not.i.i58 = icmp eq ptr %312, %7 + %.not.i.i58 = icmp eq ptr %309, %7 br i1 %.not.i.i58, label %_ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit59, label %.lr.ph.i.i56, !llvm.loop !212 _ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit59: ; preds = %.lr.ph.i.i56, %.loopexit @@ -3183,11 +3183,11 @@ _ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backE ._crit_edge335: ; preds = %271 %.pre336 = load i16, ptr %101, align 2, !tbaa !208 - %.pre339 = zext i16 %.pre336 to i32 + %.pre340 = zext i16 %.pre336 to i32 br label %276 276: ; preds = %._crit_edge335, %264 - %.pre-phi = phi i32 [ %.pre339, %._crit_edge335 ], [ %269, %264 ] + %.pre-phi = phi i32 [ %.pre340, %._crit_edge335 ], [ %269, %264 ] %277 = zext i8 %.sroa.70.1 to i32 %reass.sub = sub nsw i32 %266, %277 %278 = add nsw i32 %reass.sub, 1 @@ -3245,23 +3245,23 @@ _ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backE .outer: ; preds = %100, %112, %116, %107, %226, %297, %220, %177, %50, %65, %93, %78 %.219 = phi i64 [ %.017.ph256, %297 ], [ %.017.ph256, %226 ], [ %.017.ph256, %177 ], [ %.017.ph256, %220 ], [ %.017.ph256, %116 ], [ %.017.ph256, %112 ], [ %.017.ph256, %107 ], [ %.118, %93 ], [ %.118, %78 ], [ %.118, %50 ], [ %.118, %65 ], [ %.017.ph256, %100 ] %.2 = phi ptr [ %.0.ph257, %297 ], [ %.0.ph257, %226 ], [ %.0.ph257, %177 ], [ %.0.ph257, %220 ], [ %.0.ph257, %116 ], [ %.0.ph257, %112 ], [ %.0.ph257, %107 ], [ %.1, %93 ], [ %.1, %78 ], [ %.1, %50 ], [ %.1, %65 ], [ %.0.ph257, %100 ] - %307 = load ptr, ptr %7, align 8, !tbaa !195 - %308 = icmp eq ptr %307, %7 - br i1 %308, label %.outer._crit_edge, label %.lr.ph, !llvm.loop !213 + %304 = load ptr, ptr %7, align 8, !tbaa !195 + %305 = icmp eq ptr %304, %7 + br i1 %305, label %.outer._crit_edge, label %.lr.ph, !llvm.loop !213 .outer._crit_edge: ; preds = %.outer, %_ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backERKS5_.exit54, %_ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backERKS5_.exit %.0.ph.lcssa254 = phi ptr [ null, %_ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backERKS5_.exit ], [ %.0.ph257, %_ZNSt7__cxx114listIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EE9push_backERKS5_.exit54 ], [ %.2, %.outer ] call void @free(ptr noundef %.0.ph.lcssa254) #23 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.103) - %309 = load ptr, ptr %7, align 8, !tbaa !195 - %.not8.i.i = icmp eq ptr %309, %7 + %306 = load ptr, ptr %7, align 8, !tbaa !195 + %.not8.i.i = icmp eq ptr %306, %7 br i1 %.not8.i.i, label %_ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit, label %.lr.ph.i.i .lr.ph.i.i: ; preds = %.outer._crit_edge, %.lr.ph.i.i - %.09.i.i = phi ptr [ %310, %.lr.ph.i.i ], [ %309, %.outer._crit_edge ] - %310 = load ptr, ptr %.09.i.i, align 8, !tbaa !195 + %.09.i.i = phi ptr [ %307, %.lr.ph.i.i ], [ %306, %.outer._crit_edge ] + %307 = load ptr, ptr %.09.i.i, align 8, !tbaa !195 call void @_ZdlPv(ptr noundef nonnull %.09.i.i) #24 - %.not.i.i = icmp eq ptr %310, %7 + %.not.i.i = icmp eq ptr %307, %7 br i1 %.not.i.i, label %_ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit, label %.lr.ph.i.i, !llvm.loop !212 _ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit: ; preds = %.lr.ph.i.i, %.outer._crit_edge @@ -3271,15 +3271,15 @@ _ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev .loopexit: ; preds = %.loopexit.split-lp, %.loopexit.loopexit.split-lp, %.loopexit.loopexit, %256, %218, %98, %70 %.pn = phi { ptr, i32 } [ %257, %256 ], [ %219, %218 ], [ %99, %98 ], [ %71, %70 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ], [ %lpad.loopexit210, %.loopexit.loopexit ], [ %lpad.loopexit.split-lp211, %.loopexit.loopexit.split-lp ] call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.103) - %311 = load ptr, ptr %7, align 8, !tbaa !195 - %.not8.i.i55 = icmp eq ptr %311, %7 + %308 = load ptr, ptr %7, align 8, !tbaa !195 + %.not8.i.i55 = icmp eq ptr %308, %7 br i1 %.not8.i.i55, label %_ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit59, label %.lr.ph.i.i56 .lr.ph.i.i56: ; preds = %.loopexit, %.lr.ph.i.i56 - %.09.i.i57 = phi ptr [ %312, %.lr.ph.i.i56 ], [ %311, %.loopexit ] - %312 = load ptr, ptr %.09.i.i57, align 8, !tbaa !195 + %.09.i.i57 = phi ptr [ %309, %.lr.ph.i.i56 ], [ %308, %.loopexit ] + %309 = load ptr, ptr %.09.i.i57, align 8, !tbaa !195 call void @_ZdlPv(ptr noundef nonnull %.09.i.i57) #24 - %.not.i.i58 = icmp eq ptr %312, %7 + %.not.i.i58 = icmp eq ptr %309, %7 br i1 %.not.i.i58, label %_ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit59, label %.lr.ph.i.i56, !llvm.loop !212 _ZNSt7__cxx1110_List_baseIN3zmq15generic_mtrie_tINS1_6pipe_tEE4iterESaIS5_EED2Ev.exit59: ; preds = %.lr.ph.i.i56, %.loopexit diff --git a/bench/llama.cpp/optimized/ggml-alloc.ll b/bench/llama.cpp/optimized/ggml-alloc.ll index 0fd2d94bdf4..14b8e113287 100644 --- a/bench/llama.cpp/optimized/ggml-alloc.ll +++ b/bench/llama.cpp/optimized/ggml-alloc.ll @@ -1369,10 +1369,10 @@ ggml_gallocr_hash_get.exit185: ; preds = %509, %504 br label %532 532: ; preds = %ggml_gallocr_hash_get.exit185, %487 - %.sink666 = phi i64 [ %531, %ggml_gallocr_hash_get.exit185 ], [ 0, %487 ] + %.sink662 = phi i64 [ %531, %ggml_gallocr_hash_get.exit185 ], [ 0, %487 ] %533 = getelementptr inbounds nuw %struct.tensor_alloc, ptr %473, i64 %indvars.iv478 %534 = getelementptr inbounds nuw i8, ptr %533, i64 16 - store i64 %.sink666, ptr %534, align 8, !tbaa !105 + store i64 %.sink662, ptr %534, align 8, !tbaa !105 %indvars.iv.next479 = add nuw nsw i64 %indvars.iv478, 1 %exitcond481.not = icmp eq i64 %indvars.iv.next479, 10 br i1 %exitcond481.not, label %474, label %478, !llvm.loop !106 @@ -1480,18 +1480,18 @@ ggml_gallocr_hash_get.exit190: ; preds = %574, %569 br i1 %.not171, label %588, label %ggml_gallocr_hash_get.exit190._crit_edge ggml_gallocr_hash_get.exit190._crit_edge: ; preds = %ggml_gallocr_hash_get.exit190 - %.pre499 = load ptr, ptr %548, align 8, !tbaa !45 + %.pre = load ptr, ptr %548, align 8, !tbaa !45 br label %591 588: ; preds = %ggml_gallocr_hash_get.exit190 %589 = getelementptr inbounds nuw i8, ptr %555, i64 248 %590 = load ptr, ptr %589, align 8, !tbaa !96 %.not172 = icmp eq ptr %590, null - %.pre500 = load ptr, ptr %548, align 8, !tbaa !45 + %.pre496 = load ptr, ptr %548, align 8, !tbaa !45 br i1 %.not172, label %595, label %591 591: ; preds = %ggml_gallocr_hash_get.exit190._crit_edge, %588 - %592 = phi ptr [ %.pre499, %ggml_gallocr_hash_get.exit190._crit_edge ], [ %.pre500, %588 ] + %592 = phi ptr [ %.pre, %ggml_gallocr_hash_get.exit190._crit_edge ], [ %.pre496, %588 ] %593 = getelementptr inbounds nuw %struct.leaf_alloc, ptr %592, i64 %indvars.iv485 store i32 -1, ptr %593, align 8, !tbaa !107 %594 = getelementptr inbounds nuw i8, ptr %593, i64 8 @@ -1501,7 +1501,7 @@ ggml_gallocr_hash_get.exit190._crit_edge: ; preds = %ggml_gallocr_hash_g 595: ; preds = %588 %596 = getelementptr inbounds nuw i8, ptr %585, i64 8 %597 = load i32, ptr %596, align 8, !tbaa !83 - %598 = getelementptr inbounds nuw %struct.leaf_alloc, ptr %.pre500, i64 %indvars.iv485 + %598 = getelementptr inbounds nuw %struct.leaf_alloc, ptr %.pre496, i64 %indvars.iv485 store i32 %597, ptr %598, align 8, !tbaa !107 %599 = getelementptr inbounds nuw i8, ptr %585, i64 16 %600 = load i64, ptr %599, align 8, !tbaa !82 @@ -1517,10 +1517,10 @@ ggml_gallocr_hash_get.exit190._crit_edge: ; preds = %ggml_gallocr_hash_g 608: ; preds = %595, %591 %609 = phi ptr [ %607, %595 ], [ %592, %591 ] - %.sink669 = phi i64 [ %606, %595 ], [ 0, %591 ] + %.sink665 = phi i64 [ %606, %595 ], [ 0, %591 ] %610 = getelementptr inbounds nuw %struct.leaf_alloc, ptr %609, i64 %indvars.iv485 %611 = getelementptr inbounds nuw i8, ptr %610, i64 16 - store i64 %.sink669, ptr %611, align 8, !tbaa !110 + store i64 %.sink665, ptr %611, align 8, !tbaa !110 %indvars.iv.next486 = add nuw nsw i64 %indvars.iv485, 1 %612 = load i32, ptr %8, align 8, !tbaa !51 %613 = sext i32 %612 to i64 @@ -1567,11 +1567,11 @@ ggml_gallocr_hash_get.exit190._crit_edge: ; preds = %ggml_gallocr_hash_g 631: ; preds = %.loopexit %632 = call i64 @ggml_backend_buffer_get_size(ptr noundef nonnull %630) #12 - %.pre501.pre = load ptr, ptr %551, align 8, !tbaa !26 + %.pre497.pre = load ptr, ptr %551, align 8, !tbaa !26 br label %633 633: ; preds = %.loopexit, %631 - %.pre501 = phi ptr [ %.pre501.pre, %631 ], [ %628, %.loopexit ] + %.pre497 = phi ptr [ %.pre497.pre, %631 ], [ %628, %.loopexit ] %634 = phi i64 [ %632, %631 ], [ 0, %.loopexit ] %635 = load ptr, ptr %550, align 8, !tbaa !27 %636 = getelementptr inbounds nuw ptr, ptr %635, i64 %indvars.iv493 @@ -1579,16 +1579,16 @@ ggml_gallocr_hash_get.exit190._crit_edge: ; preds = %ggml_gallocr_hash_g %638 = getelementptr i8, ptr %637, i64 4112 %.val = load i64, ptr %638, align 8, !tbaa !41 %639 = icmp ugt i64 %.val, %634 - %.phi.trans.insert = getelementptr inbounds nuw ptr, ptr %.pre501, i64 %indvars.iv493 - %.pre503 = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !31 - br i1 %639, label %._crit_edge502, label %640 + %.phi.trans.insert = getelementptr inbounds nuw ptr, ptr %.pre497, i64 %indvars.iv493 + %.pre499 = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !31 + br i1 %639, label %._crit_edge498, label %640 640: ; preds = %633 - %641 = icmp eq ptr %.pre503, null - br i1 %641, label %._crit_edge502, label %655 + %641 = icmp eq ptr %.pre499, null + br i1 %641, label %._crit_edge498, label %655 -._crit_edge502: ; preds = %633, %640 - %642 = phi ptr [ null, %640 ], [ %.pre503, %633 ] +._crit_edge498: ; preds = %633, %640 + %642 = phi ptr [ null, %640 ], [ %.pre499, %633 ] call void @ggml_backend_buffer_free(ptr noundef %642) #12 %643 = load ptr, ptr %0, align 8, !tbaa !13 %644 = getelementptr inbounds nuw ptr, ptr %643, i64 %indvars.iv493 @@ -1600,7 +1600,7 @@ ggml_gallocr_hash_get.exit190._crit_edge: ; preds = %ggml_gallocr_hash_g %649 = icmp eq ptr %646, null br i1 %649, label %.critedge, label %654 -.critedge: ; preds = %._crit_edge502 +.critedge: ; preds = %._crit_edge498 %650 = load ptr, ptr %0, align 8, !tbaa !13 %651 = getelementptr inbounds nuw ptr, ptr %650, i64 %indvars.iv493 %652 = load ptr, ptr %651, align 8, !tbaa !29 @@ -1608,7 +1608,7 @@ ggml_gallocr_hash_get.exit190._crit_edge: ; preds = %ggml_gallocr_hash_g call void (i32, ptr, ...) @ggml_log_internal(i32 noundef 4, ptr noundef nonnull @.str.12, ptr noundef nonnull @__func__.ggml_gallocr_reserve_n, ptr noundef %653, i64 noundef %.val) #12 br label %.critedge179 -654: ; preds = %._crit_edge502 +654: ; preds = %._crit_edge498 call void @ggml_backend_buffer_set_usage(ptr noundef nonnull %646, i32 noundef 2) #12 br label %655 diff --git a/bench/llvm/optimized/ASTWriter.ll b/bench/llvm/optimized/ASTWriter.ll index cc8053af296..8598eaca3f6 100644 --- a/bench/llvm/optimized/ASTWriter.ll +++ b/bench/llvm/optimized/ASTWriter.ll @@ -63173,7 +63173,7 @@ _ZN4llvm13BitCodeAbbrev3AddERKNS_15BitCodeAbbrevOpE.exit78: ; preds = %.lr.ph89. %.sroa.2.0..sroa_idx.i.i70 = getelementptr inbounds nuw i8, ptr %671, i64 72 store i64 2, ptr %.sroa.2.0..sroa_idx.i.i70, align 8 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %0, i64 16 - %.pre = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !79 + %.pre298 = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !79 %681 = getelementptr inbounds nuw i8, ptr %671, i64 80 store i64 0, ptr %681, align 8 %.sroa.2.0..sroa_idx.i.i77 = getelementptr inbounds nuw i8, ptr %671, i64 88 @@ -63183,11 +63183,11 @@ _ZN4llvm13BitCodeAbbrev3AddERKNS_15BitCodeAbbrevOpE.exit78: ; preds = %.lr.ph89. store ptr %674, ptr %23, align 8, !tbaa !244 %683 = getelementptr inbounds nuw i8, ptr %23, i64 8 store ptr %671, ptr %683, align 8, !tbaa !249 - call void @_ZN4llvm15BitstreamWriter12EncodeAbbrevERKNS_13BitCodeAbbrevE(ptr noundef nonnull align 8 dereferenceable(152) %.pre, ptr noundef nonnull align 8 dereferenceable(528) %674) - %684 = getelementptr inbounds nuw i8, ptr %.pre, i64 64 - %685 = getelementptr inbounds nuw i8, ptr %.pre, i64 72 + call void @_ZN4llvm15BitstreamWriter12EncodeAbbrevERKNS_13BitCodeAbbrevE(ptr noundef nonnull align 8 dereferenceable(152) %.pre298, ptr noundef nonnull align 8 dereferenceable(528) %674) + %684 = getelementptr inbounds nuw i8, ptr %.pre298, i64 64 + %685 = getelementptr inbounds nuw i8, ptr %.pre298, i64 72 %686 = load ptr, ptr %685, align 8, !tbaa !250 - %687 = getelementptr inbounds nuw i8, ptr %.pre, i64 80 + %687 = getelementptr inbounds nuw i8, ptr %.pre298, i64 80 %688 = load ptr, ptr %687, align 8, !tbaa !253 %.not.i.i.i79 = icmp eq ptr %686, %688 br i1 %.not.i.i.i79, label %694, label %689 @@ -63305,7 +63305,7 @@ _ZN4llvm13BitCodeAbbrev3AddERKNS_15BitCodeAbbrevOpE.exit117: ; preds = %_ZN4llvm store i64 32, ptr %740, align 8 %.sroa.2.0..sroa_idx.i.i109 = getelementptr inbounds nuw i8, ptr %731, i64 72 store i64 2, ptr %.sroa.2.0..sroa_idx.i.i109, align 8 - %.pre298 = load ptr, ptr %682, align 8, !tbaa !79 + %.pre299 = load ptr, ptr %682, align 8, !tbaa !79 %741 = getelementptr inbounds nuw i8, ptr %731, i64 80 store i64 0, ptr %741, align 8 %.sroa.2.0..sroa_idx.i.i116 = getelementptr inbounds nuw i8, ptr %731, i64 88 @@ -63314,11 +63314,11 @@ _ZN4llvm13BitCodeAbbrev3AddERKNS_15BitCodeAbbrevOpE.exit117: ; preds = %_ZN4llvm store ptr %734, ptr %25, align 8, !tbaa !244 %742 = getelementptr inbounds nuw i8, ptr %25, i64 8 store ptr %731, ptr %742, align 8, !tbaa !249 - call void @_ZN4llvm15BitstreamWriter12EncodeAbbrevERKNS_13BitCodeAbbrevE(ptr noundef nonnull align 8 dereferenceable(152) %.pre298, ptr noundef nonnull align 8 dereferenceable(528) %734) - %743 = getelementptr inbounds nuw i8, ptr %.pre298, i64 64 - %744 = getelementptr inbounds nuw i8, ptr %.pre298, i64 72 + call void @_ZN4llvm15BitstreamWriter12EncodeAbbrevERKNS_13BitCodeAbbrevE(ptr noundef nonnull align 8 dereferenceable(152) %.pre299, ptr noundef nonnull align 8 dereferenceable(528) %734) + %743 = getelementptr inbounds nuw i8, ptr %.pre299, i64 64 + %744 = getelementptr inbounds nuw i8, ptr %.pre299, i64 72 %745 = load ptr, ptr %744, align 8, !tbaa !250 - %746 = getelementptr inbounds nuw i8, ptr %.pre298, i64 80 + %746 = getelementptr inbounds nuw i8, ptr %.pre299, i64 80 %747 = load ptr, ptr %746, align 8, !tbaa !253 %.not.i.i.i118 = icmp eq ptr %745, %747 br i1 %.not.i.i.i118, label %753, label %748 @@ -63454,7 +63454,7 @@ _ZN4llvm20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096ELm128EE26Deall store i32 0, ptr %42, align 8, !tbaa !42 %809 = load i32, ptr %38, align 8, !tbaa !42 %.not.i1.i.i.i.i = icmp eq i32 %809, 0 - %.pre300 = load ptr, ptr %36, align 8, !tbaa !45 + %.pre301 = load ptr, ptr %36, align 8, !tbaa !45 br i1 %.not.i1.i.i.i.i, label %_ZN4llvm20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096ELm128EE15DeallocateSlabsEPPvS4_.exit.i.thread, label %811 _ZN4llvm20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096ELm128EE15DeallocateSlabsEPPvS4_.exit.i.thread: ; preds = %_ZN4llvm20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096ELm128EE26DeallocateCustomSizedSlabsEv.exit.i.i.i.i @@ -63463,19 +63463,19 @@ _ZN4llvm20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096ELm128EE15Deall 811: ; preds = %_ZN4llvm20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096ELm128EE26DeallocateCustomSizedSlabsEv.exit.i.i.i.i store i64 0, ptr %41, align 8, !tbaa !1193 - %812 = load ptr, ptr %.pre300, align 8, !tbaa !8 + %812 = load ptr, ptr %.pre301, align 8, !tbaa !8 store ptr %812, ptr %35, align 8, !tbaa !1194 %813 = getelementptr inbounds nuw i8, ptr %812, i64 4096 %814 = getelementptr inbounds nuw i8, ptr %19, i64 16 store ptr %813, ptr %814, align 8, !tbaa !1195 %815 = zext i32 %809 to i64 %.idx.i.i.i.i = shl nuw nsw i64 %815, 3 - %816 = getelementptr inbounds nuw i8, ptr %.pre300, i64 %.idx.i.i.i.i + %816 = getelementptr inbounds nuw i8, ptr %.pre301, i64 %.idx.i.i.i.i %.not6.i.i.i.i.i = icmp eq i32 %809, 1 br i1 %.not6.i.i.i.i.i, label %.lr.ph.i.i149.preheader, label %.lr.ph.i2.preheader.i.i.i.i .lr.ph.i2.preheader.i.i.i.i: ; preds = %811 - %817 = getelementptr inbounds nuw i8, ptr %.pre300, i64 8 + %817 = getelementptr inbounds nuw i8, ptr %.pre301, i64 8 br label %.lr.ph.i2.i.i.i.i .lr.ph.i2.i.i.i.i: ; preds = %.lr.ph.i2.i.i.i.i, %.lr.ph.i2.preheader.i.i.i.i @@ -63497,14 +63497,14 @@ _ZN4llvm20BumpPtrAllocatorImplINS_15MallocAllocatorELm4096ELm4096ELm128EE15Deall br i1 %.not.i3.i.i.i.i, label %_ZN4llvm15SmallVectorImplIPvE5eraseEPKS1_S4_.exit.i.i.i.i.loopexit, label %.lr.ph.i2.i.i.i.i, !llvm.loop !1327 _ZN4llvm15SmallVectorImplIPvE5eraseEPKS1_S4_.exit.i.i.i.i.loopexit: ; preds = %.lr.ph.i2.i.i.i.i - %.pre299.pre = load ptr, ptr %36, align 8, !tbaa !45 + %.pre300.pre = load ptr, ptr %36, align 8, !tbaa !45 br label %.lr.ph.i.i149.preheader .lr.ph.i.i149.preheader: ; preds = %_ZN4llvm15SmallVectorImplIPvE5eraseEPKS1_S4_.exit.i.i.i.i.loopexit, %811 - %.pre299 = phi ptr [ %.pre299.pre, %_ZN4llvm15SmallVectorImplIPvE5eraseEPKS1_S4_.exit.i.i.i.i.loopexit ], [ %.pre300, %811 ] + %.pre300 = phi ptr [ %.pre300.pre, %_ZN4llvm15SmallVectorImplIPvE5eraseEPKS1_S4_.exit.i.i.i.i.loopexit ], [ %.pre301, %811 ] store i32 1, ptr %38, align 8, !tbaa !42 %828 = load ptr, ptr %36, align 8, !tbaa !45 - %829 = ptrtoint ptr %.pre299 to i64 + %829 = ptrtoint ptr %.pre300 to i64 %830 = ptrtoint ptr %828 to i64 %831 = sub i64 %829, %830 %sum.shift.i.i = lshr i64 %831, 10 @@ -63513,7 +63513,7 @@ _ZN4llvm15SmallVectorImplIPvE5eraseEPKS1_S4_.exit.i.i.i.i.loopexit: ; preds = %. %834 = call i32 @llvm.umin.i32(i32 %833, i32 30) %.sroa.speculated.i.i.i = zext nneg i32 %834 to i64 %835 = shl nuw nsw i64 4096, %.sroa.speculated.i.i.i - %836 = load ptr, ptr %.pre299, align 8, !tbaa !8 + %836 = load ptr, ptr %.pre300, align 8, !tbaa !8 call void @_ZN4llvm17deallocate_bufferEPvmm(ptr noundef %836, i64 noundef %835, i64 noundef 16) #35 %.pr = load i32, ptr %42, align 8, !tbaa !42 %837 = load ptr, ptr %40, align 8, !tbaa !45 diff --git a/bench/llvm/optimized/LiveIntervalUnion.ll b/bench/llvm/optimized/LiveIntervalUnion.ll index 21d225279a9..7457ba10fde 100644 --- a/bench/llvm/optimized/LiveIntervalUnion.ll +++ b/bench/llvm/optimized/LiveIntervalUnion.ll @@ -1787,22 +1787,22 @@ _ZN4llvm11safe_mallocEm.exit: ; preds = %_ZN4llvm17LiveInter br i1 %.not8, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %_ZN4llvm11safe_mallocEm.exit, %.lr.ph - %.09 = phi i32 [ %40, %.lr.ph ], [ 0, %_ZN4llvm11safe_mallocEm.exit ] - %33 = load ptr, ptr %7, align 8, !tbaa !96 - %34 = zext i32 %.09 to i64 - %35 = getelementptr inbounds nuw %"class.llvm::LiveIntervalUnion", ptr %33, i64 %34 - store i32 0, ptr %35, align 8, !tbaa !9 - %36 = getelementptr inbounds nuw i8, ptr %35, i64 8 - %37 = getelementptr inbounds nuw i8, ptr %35, i64 200 - store i32 0, ptr %37, align 8, !tbaa !28 - %38 = getelementptr inbounds nuw i8, ptr %35, i64 204 - store i32 0, ptr %38, align 4, !tbaa !29 - %39 = getelementptr inbounds nuw i8, ptr %35, i64 208 - store ptr %1, ptr %39, align 8, !tbaa !98 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(208) %36, i8 0, i64 192, i1 false) - %40 = add i32 %.09, 1 - %41 = load i32, ptr %0, align 8, !tbaa !94 - %.not = icmp eq i32 %40, %41 + %.09 = phi i32 [ %39, %.lr.ph ], [ 0, %_ZN4llvm11safe_mallocEm.exit ] + %32 = load ptr, ptr %7, align 8, !tbaa !96 + %33 = zext i32 %.09 to i64 + %34 = getelementptr inbounds nuw %"class.llvm::LiveIntervalUnion", ptr %32, i64 %33 + store i32 0, ptr %34, align 8, !tbaa !9 + %35 = getelementptr inbounds nuw i8, ptr %34, i64 8 + %36 = getelementptr inbounds nuw i8, ptr %34, i64 200 + store i32 0, ptr %36, align 8, !tbaa !28 + %37 = getelementptr inbounds nuw i8, ptr %34, i64 204 + store i32 0, ptr %37, align 4, !tbaa !29 + %38 = getelementptr inbounds nuw i8, ptr %34, i64 208 + store ptr %1, ptr %38, align 8, !tbaa !98 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(208) %35, i8 0, i64 192, i1 false) + %39 = add i32 %.09, 1 + %40 = load i32, ptr %0, align 8, !tbaa !94 + %.not = icmp eq i32 %39, %40 br i1 %.not, label %.loopexit, label %.lr.ph, !llvm.loop !99 .loopexit: ; preds = %.lr.ph, %_ZN4llvm11safe_mallocEm.exit, %3 diff --git a/bench/llvm/optimized/NestedNameSpecifier.ll b/bench/llvm/optimized/NestedNameSpecifier.ll index 2347d56bb5a..d8140143eb5 100644 --- a/bench/llvm/optimized/NestedNameSpecifier.ll +++ b/bench/llvm/optimized/NestedNameSpecifier.ll @@ -2163,7 +2163,7 @@ define dso_local void @_ZN5clang29NestedNameSpecifierLocBuilderC2ERKS0_(ptr noun ; Function Attrs: mustprogress nounwind uwtable define internal fastcc void @_ZL6AppendPcS_RS_RjS1_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull align 8 captures(none) dereferenceable(8) %2, ptr noundef nonnull align 4 captures(none) dereferenceable(4) %3, ptr noundef nonnull align 4 captures(none) dereferenceable(4) %4) unnamed_addr #0 { %6 = icmp eq ptr %0, %1 - br i1 %6, label %53, label %7 + br i1 %6, label %51, label %7 7: ; preds = %5 %8 = load i32, ptr %3, align 4, !tbaa !514 @@ -2180,7 +2180,7 @@ define internal fastcc void @_ZL6AppendPcS_RS_RjS1_(ptr noundef %0, ptr noundef ._crit_edge: ; preds = %7 %.pre = load ptr, ptr %2, align 8, !tbaa !515 %.pre42 = trunc i64 %12 to i32 - br label %48 + br label %46 17: ; preds = %7 %.not = icmp eq i32 %14, 0 @@ -2189,7 +2189,7 @@ define internal fastcc void @_ZL6AppendPcS_RS_RjS1_(ptr noundef %0, ptr noundef %19 = trunc i64 %12 to i32 %20 = add i32 %8, %19 %.sroa.speculated = tail call i32 @llvm.umax.i32(i32 %spec.select, i32 %20) - br i1 %.not, label %21, label %36 + br i1 %.not, label %21, label %34 21: ; preds = %17 %22 = zext i32 %.sroa.speculated to i64 @@ -2226,50 +2226,50 @@ _ZN4llvm11safe_mallocEm.exit: ; preds = %21, %27 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %.0.i, ptr nonnull align 1 %32, i64 %35, i1 false) br label %_ZN4llvm12safe_reallocEPvm.exit -36: ; preds = %17 - %37 = load ptr, ptr %2, align 8, !tbaa !515 - %38 = zext i32 %.sroa.speculated to i64 - %39 = tail call ptr @realloc(ptr noundef %37, i64 noundef %38) #20 - %40 = icmp eq ptr %39, null - br i1 %40, label %41, label %_ZN4llvm12safe_reallocEPvm.exit +34: ; preds = %17 + %35 = load ptr, ptr %2, align 8, !tbaa !515 + %36 = zext i32 %.sroa.speculated to i64 + %37 = tail call ptr @realloc(ptr noundef %35, i64 noundef %36) #20 + %38 = icmp eq ptr %37, null + br i1 %38, label %39, label %_ZN4llvm12safe_reallocEPvm.exit -41: ; preds = %36 - %42 = icmp eq i32 %.sroa.speculated, 0 - br i1 %42, label %43, label %47 +39: ; preds = %34 + %40 = icmp eq i32 %.sroa.speculated, 0 + br i1 %40, label %41, label %45 -43: ; preds = %41 - %44 = tail call noalias dereferenceable_or_null(1) ptr @malloc(i64 noundef 1) #18 - %45 = icmp eq ptr %44, null - br i1 %45, label %46, label %_ZN4llvm12safe_reallocEPvm.exit +41: ; preds = %39 + %42 = tail call noalias dereferenceable_or_null(1) ptr @malloc(i64 noundef 1) #18 + %43 = icmp eq ptr %42, null + br i1 %43, label %44, label %_ZN4llvm12safe_reallocEPvm.exit -46: ; preds = %43 +44: ; preds = %41 tail call void @_ZN4llvm22report_bad_alloc_errorEPKcb(ptr noundef nonnull @.str.4, i1 noundef zeroext true) #19 unreachable -47: ; preds = %41 +45: ; preds = %39 tail call void @_ZN4llvm22report_bad_alloc_errorEPKcb(ptr noundef nonnull @.str.4, i1 noundef zeroext true) #19 unreachable -_ZN4llvm12safe_reallocEPvm.exit: ; preds = %43, %36, %_ZN4llvm11safe_mallocEm.exit, %33 - %storemerge = phi ptr [ %.0.i, %33 ], [ %.0.i, %_ZN4llvm11safe_mallocEm.exit ], [ %39, %36 ], [ %44, %43 ] +_ZN4llvm12safe_reallocEPvm.exit: ; preds = %41, %34, %_ZN4llvm11safe_mallocEm.exit, %33 + %storemerge = phi ptr [ %.0.i, %33 ], [ %.0.i, %_ZN4llvm11safe_mallocEm.exit ], [ %37, %36 ], [ %42, %43 ] store ptr %storemerge, ptr %2, align 8, !tbaa !515 store i32 %.sroa.speculated, ptr %4, align 4, !tbaa !514 %.pre40 = load i32, ptr %3, align 4, !tbaa !514 %.pre41 = zext i32 %.pre40 to i64 - br label %48 + br label %46 -48: ; preds = %._crit_edge, %_ZN4llvm12safe_reallocEPvm.exit +46: ; preds = %._crit_edge, %_ZN4llvm12safe_reallocEPvm.exit %.pre-phi43 = phi i32 [ %.pre42, %._crit_edge ], [ %19, %_ZN4llvm12safe_reallocEPvm.exit ] %.pre-phi = phi i64 [ %9, %._crit_edge ], [ %.pre41, %_ZN4llvm12safe_reallocEPvm.exit ] - %49 = phi ptr [ %.pre, %._crit_edge ], [ %storemerge, %_ZN4llvm12safe_reallocEPvm.exit ] - %50 = getelementptr inbounds nuw i8, ptr %49, i64 %.pre-phi - tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %50, ptr align 1 %0, i64 %12, i1 false) - %51 = load i32, ptr %3, align 4, !tbaa !514 - %52 = add i32 %51, %.pre-phi43 - store i32 %52, ptr %3, align 4, !tbaa !514 - br label %53 - -53: ; preds = %5, %48 + %47 = phi ptr [ %.pre, %._crit_edge ], [ %storemerge, %_ZN4llvm12safe_reallocEPvm.exit ] + %48 = getelementptr inbounds nuw i8, ptr %47, i64 %.pre-phi + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %48, ptr align 1 %0, i64 %12, i1 false) + %49 = load i32, ptr %3, align 4, !tbaa !514 + %50 = add i32 %49, %.pre-phi43 + store i32 %50, ptr %3, align 4, !tbaa !514 + br label %51 + +51: ; preds = %5, %46 ret void } diff --git a/bench/llvm/optimized/SmallPtrSet.ll b/bench/llvm/optimized/SmallPtrSet.ll index 5ed9fa3d612..f95e5e45ad2 100644 --- a/bench/llvm/optimized/SmallPtrSet.ll +++ b/bench/llvm/optimized/SmallPtrSet.ll @@ -409,11 +409,11 @@ define dso_local void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvRKS0_(ptr noundef non %14 = icmp eq ptr %13, null br i1 %14, label %15, label %_ZN4llvm11safe_mallocEm.exit -15: ; preds = %8 +15:; preds = %8 %16 = icmp eq i32 %10, 0 br i1 %16, label %17, label %21 -17: ; preds = %15 +17:; preds = %15 %18 = tail call noalias dereferenceable_or_null(1) ptr @malloc(i64 noundef 1) #14 %19 = icmp eq ptr %18, null br i1 %19, label %20, label %_ZN4llvm11safe_mallocEm.exit @@ -422,41 +422,41 @@ define dso_local void @_ZN4llvm19SmallPtrSetImplBaseC2EPPKvRKS0_(ptr noundef non tail call void @_ZN4llvm22report_bad_alloc_errorEPKcb(ptr noundef nonnull @.str, i1 noundef zeroext true) #15 unreachable -21: ; preds = %15 +19: ; preds = %15 tail call void @_ZN4llvm22report_bad_alloc_errorEPKcb(ptr noundef nonnull @.str, i1 noundef zeroext true) #15 unreachable _ZN4llvm11safe_mallocEm.exit: ; preds = %17, %8, %3 - %storemerge = phi ptr [ %1, %3 ], [ %13, %8 ], [ %18, %17 ] + %20 = phi ptr [ %1, %3 ], [ %13, %8 ], [ %18, %17 ] store ptr %storemerge, ptr %0, align 8, !tbaa !3 - %22 = getelementptr inbounds nuw i8, ptr %2, i64 8 - %23 = load i32, ptr %22, align 8, !tbaa !12 - %24 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i32 %23, ptr %24, align 8, !tbaa !12 + %21 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %23 = load i32, ptr %21, align 8, !tbaa !12 + %22 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i32 %23, ptr %22, align 8, !tbaa !12 %25 = load i8, ptr %4, align 4, !tbaa !20, !range !21, !noundef !22 %26 = trunc nuw i8 %25 to i1 %27 = getelementptr inbounds nuw i8, ptr %2, i64 12 %28 = load i32, ptr %27, align 4 %.v.v.i.i = select i1 %26, i32 %28, i32 %23 %.not.i.i.i.i.i.i = icmp eq i32 %.v.v.i.i, 0 - br i1 %.not.i.i.i.i.i.i, label %_ZN4llvm19SmallPtrSetImplBase10copyHelperERKS0_.exit, label %29 + br i1 %.not.i.i.i.i.i.i, label %_ZN4llvm19SmallPtrSetImplBase10copyHelperERKS0_.exit, label %24 -29: ; preds = %_ZN4llvm11safe_mallocEm.exit +24: ; preds = %_ZN4llvm11safe_mallocEm.exit %.v.i.i = zext i32 %.v.v.i.i to i64 - %30 = load ptr, ptr %2, align 8, !tbaa !3 + %25 = load ptr, ptr %2, align 8, !tbaa !3 %.idx.i = shl nuw nsw i64 %.v.i.i, 3 - tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %storemerge, ptr align 8 %30, i64 %.idx.i, i1 false) + tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %storemerge, ptr align 8 %25, i64 %.idx.i, i1 false) %.pre.i = load i32, ptr %27, align 4, !tbaa !10 br label %_ZN4llvm19SmallPtrSetImplBase10copyHelperERKS0_.exit -_ZN4llvm19SmallPtrSetImplBase10copyHelperERKS0_.exit: ; preds = %_ZN4llvm11safe_mallocEm.exit, %29 - %31 = phi i32 [ %28, %_ZN4llvm11safe_mallocEm.exit ], [ %.pre.i, %29 ] - %32 = getelementptr inbounds nuw i8, ptr %0, i64 12 - store i32 %31, ptr %32, align 4, !tbaa !10 - %33 = getelementptr inbounds nuw i8, ptr %2, i64 16 - %34 = load i32, ptr %33, align 8, !tbaa !11 - %35 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i32 %34, ptr %35, align 8, !tbaa !11 +_ZN4llvm19SmallPtrSetImplBase10copyHelperERKS0_.exit: ; preds = %_ZN4llvm11safe_mallocEm.exit, %24 + %26 = phi i32 [ %28, %_ZN4llvm11safe_mallocEm.exit ], [ %.pre.i, %29 ] + %27 = getelementptr inbounds nuw i8, ptr %0, i64 12 + store i32 %26, ptr %27, align 4, !tbaa !10 + %28 = getelementptr inbounds nuw i8, ptr %2, i64 16 + %29 = load i32, ptr %28, align 8, !tbaa !11 + %30 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store i32 %29, ptr %30, align 8, !tbaa !11 ret void } diff --git a/bench/lvgl/optimized/lv_sdl_window.ll b/bench/lvgl/optimized/lv_sdl_window.ll index dddca4c83f6..63167fb1936 100644 --- a/bench/lvgl/optimized/lv_sdl_window.ll +++ b/bench/lvgl/optimized/lv_sdl_window.ll @@ -600,7 +600,7 @@ sdl_draw_buf_realloc_aligned.exit: ; preds = %1, %13 tail call void @SDL_DestroyTexture(ptr noundef nonnull %26) #6 br label %28 -28: ; preds = %27, %sdl_draw_buf_realloc_aligned.exit +28:; preds = %27, %sdl_draw_buf_realloc_aligned.exit %29 = getelementptr inbounds nuw i8, ptr %6, i64 8 %30 = load ptr, ptr %29, align 8, !tbaa !34 %31 = load i32, ptr %0, align 8, !tbaa !16 diff --git a/bench/memcached/optimized/assoc.ll b/bench/memcached/optimized/assoc.ll index 004bdeb1aa2..77ced60703b 100644 --- a/bench/memcached/optimized/assoc.ll +++ b/bench/memcached/optimized/assoc.ll @@ -355,7 +355,7 @@ define internal noalias noundef ptr @assoc_maintenance_thread(ptr readnone captu %.not25 = icmp eq i32 %3, 0 br i1 %.not25, label %._crit_edge26, label %.preheader -.preheader: ; preds = %1, %89 +.preheader: ; preds = %1, %87 %4 = load i32, ptr @hash_bulk_move, align 4, !tbaa !4 %5 = icmp sgt i32 %4, 0 %.b21 = load i1, ptr @expanding, align 1 @@ -471,13 +471,13 @@ define internal noalias noundef ptr @assoc_maintenance_thread(ptr readnone captu ._crit_edge24: ; preds = %59, %.preheader %.b.lcssa = phi i1 [ %.b21, %.preheader ], [ %.b, %59 ] - br i1 %.b.lcssa, label %89, label %64 + br i1 %.b.lcssa, label %87, label %64 64: ; preds = %._crit_edge24 %65 = tail call i32 @pthread_cond_wait(ptr noundef nonnull @maintenance_cond, ptr noundef nonnull @maintenance_lock) #18 %66 = load volatile i32, ptr @do_run_maintenance_thread, align 4, !tbaa !4 %.not15 = icmp eq i32 %66, 0 - br i1 %.not15, label %89, label %67 + br i1 %.not15, label %87, label %67 67: ; preds = %64 tail call void @pause_threads(i32 noundef 1) #18 @@ -490,7 +490,7 @@ define internal noalias noundef ptr @assoc_maintenance_thread(ptr readnone captu %73 = tail call noalias ptr @calloc(i64 noundef %72, i64 noundef 8) #15 store ptr %73, ptr @primary_hashtable, align 8, !tbaa !8 %.not.i = icmp eq ptr %73, null - br i1 %.not.i, label %88, label %74 + br i1 %.not.i, label %86, label %74 74: ; preds = %67 %75 = load i32, ptr getelementptr inbounds nuw (i8, ptr @settings, i64 32), align 8, !tbaa !31 @@ -509,32 +509,32 @@ define internal noalias noundef ptr @assoc_maintenance_thread(ptr readnone captu store i1 true, ptr @expanding, align 1 store i64 0, ptr @expand_bucket, align 8, !tbaa !19 tail call void @STATS_LOCK() #18 - %83 = load i32, ptr @hashpower, align 4, !tbaa !4 - store i32 %83, ptr getelementptr inbounds nuw (i8, ptr @stats_state, i64 44), align 4, !tbaa !13 - %84 = zext nneg i32 %83 to i64 - %85 = shl i64 8, %84 - %86 = load i64, ptr getelementptr inbounds nuw (i8, ptr @stats_state, i64 24), align 8, !tbaa !18 - %87 = add i64 %86, %85 - store i64 %87, ptr getelementptr inbounds nuw (i8, ptr @stats_state, i64 24), align 8, !tbaa !18 + %81 = load i32, ptr @hashpower, align 4, !tbaa !4 + store i32 %81, ptr getelementptr inbounds nuw (i8, ptr @stats_state, i64 44), align 4, !tbaa !13 + %82 = zext nneg i32 %81 to i64 + %83 = shl i64 8, %82 + %84 = load i64, ptr getelementptr inbounds nuw (i8, ptr @stats_state, i64 24), align 8, !tbaa !18 + %85 = add i64 %84, %83 + store i64 %85, ptr getelementptr inbounds nuw (i8, ptr @stats_state, i64 24), align 8, !tbaa !18 store i8 1, ptr getelementptr inbounds nuw (i8, ptr @stats_state, i64 52), align 4, !tbaa !30 tail call void @STATS_UNLOCK() #18 br label %assoc_expand.exit -88: ; preds = %67 +86: ; preds = %67 store ptr %68, ptr @primary_hashtable, align 8, !tbaa !8 br label %assoc_expand.exit -assoc_expand.exit: ; preds = %80, %88 +assoc_expand.exit: ; preds = %80, %86 tail call void @pause_threads(i32 noundef 2) #18 - br label %89 + br label %87 -89: ; preds = %64, %assoc_expand.exit, %._crit_edge24 - %90 = load volatile i32, ptr @do_run_maintenance_thread, align 4, !tbaa !4 - %.not = icmp eq i32 %90, 0 +87: ; preds = %64, %assoc_expand.exit, %._crit_edge24 + %88 = load volatile i32, ptr @do_run_maintenance_thread, align 4, !tbaa !4 + %.not = icmp eq i32 %88, 0 br i1 %.not, label %._crit_edge26, label %.preheader, !llvm.loop !37 -._crit_edge26: ; preds = %89, %1 - %91 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull @maintenance_lock) #18 +._crit_edge26: ; preds = %87, %1 + %89 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull @maintenance_lock) #18 ret ptr null } diff --git a/bench/mold/optimized/rust-demangle.ll b/bench/mold/optimized/rust-demangle.ll index 5363065f780..964e15b1fad 100644 --- a/bench/mold/optimized/rust-demangle.ll +++ b/bench/mold/optimized/rust-demangle.ll @@ -2154,13 +2154,13 @@ define internal fastcc void @print_ident(ptr noundef nonnull captures(none) %0, %3 = getelementptr inbounds nuw i8, ptr %0, i64 40 %4 = load i8, ptr %3, align 8, !tbaa !15, !range !24, !noundef !25 %5 = trunc nuw i8 %4 to i1 - br i1 %5, label %149, label %6 + br i1 %5, label %143, label %6 6: ; preds = %2 %7 = getelementptr inbounds nuw i8, ptr %0, i64 41 %8 = load i8, ptr %7, align 1, !tbaa !16, !range !24, !noundef !25 %9 = trunc nuw i8 %8 to i1 - br i1 %9, label %149, label %10 + br i1 %9, label %143, label %10 10: ; preds = %6 %11 = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -2182,7 +2182,7 @@ print_str.exit: ; preds = %10 %20 = getelementptr inbounds nuw i8, ptr %0, i64 16 %21 = load ptr, ptr %20, align 8, !tbaa !12 tail call void %19(ptr noundef %15, i64 noundef %17, ptr noundef %21) #12 - br label %149 + br label %143 22: ; preds = %.preheader204, %24 %.0156 = phi i64 [ %25, %24 ], [ 4, %.preheader204 ] @@ -2196,7 +2196,7 @@ print_str.exit: ; preds = %10 27: ; preds = %24 store i8 1, ptr %3, align 8, !tbaa !15 - br label %149 + br label %143 28: ; preds = %22 %29 = shl nuw i64 %.0156, 2 @@ -2214,7 +2214,7 @@ print_str.exit: ; preds = %10 32: ; preds = %28 store i8 1, ptr %3, align 8, !tbaa !15 - br label %149 + br label %143 .preheader202: ; preds = %35, %.preheader203 %33 = getelementptr inbounds nuw i8, ptr %1, i64 24 @@ -2442,7 +2442,7 @@ print_str.exit: ; preds = %10 %140 = trunc nuw i8 %139 to i1 br i1 %140, label %print_str.exit182, label %141 -141: ; preds = %._crit_edge236 +141:; preds = %._crit_edge236 %142 = load i8, ptr %7, align 1, !tbaa !16, !range !24, !noundef !25 %143 = trunc nuw i8 %142 to i1 br i1 %143, label %print_str.exit182, label %144 @@ -2458,9 +2458,9 @@ print_str.exit: ; preds = %10 print_str.exit182: ; preds = %83, %49, %59, %77, %79, %144, %141, %._crit_edge236 %.4 = phi ptr [ %.1163, %._crit_edge236 ], [ %.1163, %141 ], [ %.1163, %144 ], [ %.0162220, %79 ], [ %.0162220, %77 ], [ %.0162220, %59 ], [ %.0162220, %49 ], [ %.0162220, %83 ] tail call void @free(ptr noundef %.4) #12 - br label %149 + br label %143 -149: ; preds = %27, %print_str.exit182, %32, %2, %6, %print_str.exit +143: ; preds = %27, %print_str.exit182, %32, %2, %6, %print_str.exit ret void } diff --git a/bench/nanobind/optimized/common.ll b/bench/nanobind/optimized/common.ll index 167660d1efb..7973439ed67 100644 --- a/bench/nanobind/optimized/common.ll +++ b/bench/nanobind/optimized/common.ll @@ -463,11 +463,11 @@ define void @_ZN8nanobind6detail12cleanup_list6expandEv(ptr noundef nonnull alig %.not5 = icmp eq i32 %15, 6 br i1 %.not5, label %17, label %16 -16: ; preds = %9 +15: ; preds = %9 tail call void @free(ptr noundef %11) #27 - br label %17 + br label %16 -17: ; preds = %16, %9 +16: ; preds = %15, %9 store ptr %7, ptr %10, align 8 store i32 %4, ptr %2, align 4 ret void diff --git a/bench/nuttx/optimized/lib_setvbuf.ll b/bench/nuttx/optimized/lib_setvbuf.ll index f1dccf087b0..306c0e55a84 100644 --- a/bench/nuttx/optimized/lib_setvbuf.ll +++ b/bench/nuttx/optimized/lib_setvbuf.ll @@ -40,7 +40,7 @@ define range(i32 -1, 1) i32 @setvbuf(ptr noundef captures(none) %0, ptr noundef %18 = getelementptr inbounds nuw i8, ptr %0, i64 96 %19 = load ptr, ptr %18, align 8 %.not = icmp eq ptr %17, %19 - br i1 %.not, label %20, label %47 + br i1 %.not, label %20, label %45 20: ; preds = %15 %21 = getelementptr inbounds nuw i8, ptr %0, i64 194 @@ -71,12 +71,12 @@ define range(i32 -1, 1) i32 @setvbuf(ptr noundef captures(none) %0, ptr noundef 30: ; preds = %27 %31 = tail call noalias ptr @malloc(i64 noundef %.053) #5 %32 = icmp eq ptr %31, null - br i1 %32, label %47, label %36 + br i1 %32, label %45, label %36 33: ; preds = %26 %34 = and i8 %22, 8 %35 = or i8 %.050, %34 - br label %46 + br label %44 36: ; preds = %20, %30, %28 %.052 = phi ptr [ %.055, %28 ], [ %31, %30 ], [ null, %20 ] @@ -84,39 +84,39 @@ define range(i32 -1, 1) i32 @setvbuf(ptr noundef captures(none) %0, ptr noundef %.not60 = icmp eq ptr %17, null br i1 %.not60, label %42, label %37 -37: ; preds = %36 +37:; preds = %36 %38 = load i8, ptr %21, align 2 %39 = and i8 %38, 8 %40 = icmp eq i8 %39, 0 br i1 %40, label %41, label %42 -41: ; preds = %37 +39: ; preds = %37 tail call void @free(ptr noundef nonnull %19) - br label %42 + br label %40 -42: ; preds = %41, %37, %36 +40: ; preds = %39, %37, %36 store ptr %.052, ptr %18, align 8 store ptr %.052, ptr %16, align 8 - %43 = getelementptr inbounds nuw i8, ptr %0, i64 120 - store ptr %.052, ptr %43, align 8 - %44 = getelementptr inbounds i8, ptr %.052, i64 %.053 - %45 = getelementptr inbounds nuw i8, ptr %0, i64 104 - store ptr %44, ptr %45, align 8 - br label %46 - -46: ; preds = %42, %33 + %41 = getelementptr inbounds nuw i8, ptr %0, i64 120 + store ptr %.052, ptr %41, align 8 + %42 = getelementptr inbounds i8, ptr %.052, i64 %.053 + %43 = getelementptr inbounds nuw i8, ptr %0, i64 104 + store ptr %42, ptr %43, align 8 + br label %44 + +44: ; preds = %40, %33 %.151 = phi i8 [ %.2, %42 ], [ %35, %33 ] store i8 %.151, ptr %21, align 2 tail call void @funlockfile(ptr noundef nonnull %0) br label %50 -47: ; preds = %30, %15 +45: ; preds = %30, %15 %.0 = phi i32 [ 16, %15 ], [ 12, %30 ] tail call void @funlockfile(ptr noundef nonnull %0) br label %48 48: ; preds = %5, %4, %47 - %.1 = phi i32 [ %.0, %47 ], [ 22, %4 ], [ 22, %5 ] + %.054 = phi i32 [ %.0, %47 ], [ 22, %4 ], [ 22, %5 ] %49 = tail call ptr @__errno() #6 store i32 %.1, ptr %49, align 4 br label %50 diff --git a/bench/opencv/optimized/ar_hmdb_benchmark.ll b/bench/opencv/optimized/ar_hmdb_benchmark.ll index 1670cbe4b0a..0e3877ecb41 100644 --- a/bench/opencv/optimized/ar_hmdb_benchmark.ll +++ b/bench/opencv/optimized/ar_hmdb_benchmark.ll @@ -12251,8 +12251,8 @@ _ZN7cvflann10load_valueIiEEvP8_IO_FILERT_m.exit: ; preds = %52 _ZN7cvflann15PooledAllocator8allocateIPNS_11KMeansIndexINS_2L2IfEEE10KMeansNodeEEEPT_m.exit: ; preds = %.thread.i.i24, %94 %101 = phi ptr [ %48, %94 ], [ %.pre, %.thread.i.i24 ] %.1.i.i22 = phi ptr [ %96, %94 ], [ null, %.thread.i.i24 ] - %102 = getelementptr inbounds nuw i8, ptr %101, i64 24 - store ptr %.1.i.i22, ptr %102, align 8, !tbaa !329 + %103 = getelementptr inbounds nuw i8, ptr %101, i64 24 + store ptr %.1.i.i22, ptr %103, align 8, !tbaa !329 %103 = load i32, ptr %70, align 8, !tbaa !230 %104 = icmp sgt i32 %103, 0 br i1 %104, label %.lr.ph, label %.loopexit diff --git a/bench/opencv/optimized/calibinit.ll b/bench/opencv/optimized/calibinit.ll index 473f2898ed8..876133f0740 100644 --- a/bench/opencv/optimized/calibinit.ll +++ b/bench/opencv/optimized/calibinit.ll @@ -31854,8 +31854,8 @@ _ZN7cvflann10load_valueIiEEvP8_IO_FILERT_m.exit: ; preds = %52 _ZN7cvflann15PooledAllocator8allocateIPNS_11KMeansIndexINS_9L2_SimpleIfEEE10KMeansNodeEEEPT_m.exit: ; preds = %.thread.i.i24, %94 %101 = phi ptr [ %48, %94 ], [ %.pre, %.thread.i.i24 ] %.1.i.i22 = phi ptr [ %96, %94 ], [ null, %.thread.i.i24 ] - %102 = getelementptr inbounds nuw i8, ptr %101, i64 24 - store ptr %.1.i.i22, ptr %102, align 8, !tbaa !754 + %103 = getelementptr inbounds nuw i8, ptr %101, i64 24 + store ptr %.1.i.i22, ptr %103, align 8, !tbaa !754 %103 = load i32, ptr %70, align 8, !tbaa !508 %104 = icmp sgt i32 %103, 0 br i1 %104, label %.lr.ph, label %.loopexit @@ -43757,8 +43757,8 @@ _ZN7cvflann10load_valueIiEEvP8_IO_FILERT_m.exit: ; preds = %38 _ZN7cvflann15PooledAllocator8allocateIPNS_27HierarchicalClusteringIndexINS_9L2_SimpleIfEEE4NodeEEEPT_m.exit: ; preds = %.thread.i.i20, %80 %87 = phi ptr [ %34, %80 ], [ %.pre, %.thread.i.i20 ] %.1.i.i18 = phi ptr [ %82, %80 ], [ null, %.thread.i.i20 ] - %88 = getelementptr inbounds nuw i8, ptr %87, i64 8 - store ptr %.1.i.i18, ptr %88, align 8, !tbaa !1050 + %89 = getelementptr inbounds nuw i8, ptr %87, i64 8 + store ptr %.1.i.i18, ptr %89, align 8, !tbaa !1050 %89 = load i32, ptr %56, align 4, !tbaa !540 %90 = icmp sgt i32 %89, 0 br i1 %90, label %.lr.ph, label %.loopexit diff --git a/bench/openexr/optimized/ImfIDManifest.ll b/bench/openexr/optimized/ImfIDManifest.ll index e5f1153f87d..eb2fe02b7c6 100644 --- a/bench/openexr/optimized/ImfIDManifest.ll +++ b/bench/openexr/optimized/ImfIDManifest.ll @@ -7683,7 +7683,7 @@ declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #14 ; Function Attrs: mustprogress nounwind willreturn uwtable define noundef nonnull align 8 dereferenceable(24) ptr @_ZN7Imf_3_420CompressedIDManifestaSERKS0_(ptr noundef nonnull returned align 8 captures(address, ret: address, provenance) dereferenceable(24) %0, ptr noundef nonnull readonly align 8 captures(address) dereferenceable(24) %1) local_unnamed_addr #15 align 2 { %.not = icmp eq ptr %0, %1 - br i1 %.not, label %18, label %3 + br i1 %.not, label %16, label %3 3: ; preds = %2 %4 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -7712,7 +7712,7 @@ define noundef nonnull align 8 dereferenceable(24) ptr @_ZN7Imf_3_420CompressedI tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %10, ptr align 1 %16, i64 %17, i1 false) br label %18 -18: ; preds = %7, %2 +16: ; preds = %7, %2 ret ptr %0 } diff --git a/bench/openjdk/optimized/AccelGlyphCache.ll b/bench/openjdk/optimized/AccelGlyphCache.ll index 30207dc92e1..adcfe6f44f6 100644 --- a/bench/openjdk/optimized/AccelGlyphCache.ll +++ b/bench/openjdk/optimized/AccelGlyphCache.ll @@ -141,20 +141,20 @@ define hidden ptr @AccelGlyphCache_AddGlyph(ptr noundef %0, ptr noundef %1) loca %67 = fadd float %59, %66 %68 = getelementptr inbounds nuw i8, ptr %40, i64 64 store float %67, ptr %68, align 8 - br i1 %21, label %69, label %70 + br i1 %21, label %.thread129, label %70 -69: ; preds = %42 +.thread129: ; preds = %42 store ptr %40, ptr %0, align 8 br label %74 -70: ; preds = %42 +70: ; preds = %42 %71 = getelementptr inbounds nuw i8, ptr %0, i64 8 %72 = load ptr, ptr %71, align 8 %73 = getelementptr inbounds nuw i8, ptr %72, i64 16 store ptr %40, ptr %73, align 8 br label %74 -74: ; preds = %69, %70 +74: ; preds = %.thread129, %70 %75 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %40, ptr %75, align 8 %76 = getelementptr inbounds nuw i8, ptr %40, i64 16 diff --git a/bench/openjdk/optimized/img_colors.ll b/bench/openjdk/optimized/img_colors.ll index 42a5ff5c2de..ec3c7f09f58 100644 --- a/bench/openjdk/optimized/img_colors.ll +++ b/bench/openjdk/optimized/img_colors.ll @@ -482,7 +482,7 @@ init_primaries.exit: ; preds = %171 br label %.lr.ph161.us.i .lr.ph161.us.i: ; preds = %._crit_edge162.split.us.us.i, %.lr.ph166.i - %.pre191.pre.i = phi i32 [ %.pre191.pre196.i, %._crit_edge162.split.us.us.i ], [ %.pre191.pre.pre.i, %.lr.ph166.i ] + %.pre191196.i = phi i32 [ %.pre191.pre196.i, %._crit_edge162.split.us.us.i ], [ %.pre191.pre.pre.i, %.lr.ph166.i ] %indvars.iv186.i = phi i64 [ %indvars.iv.next187.i, %._crit_edge162.split.us.us.i ], [ 0, %.lr.ph166.i ] %.0117164.us.i = phi ptr [ %.3120.us.us.i, %._crit_edge162.split.us.us.i ], [ %182, %.lr.ph166.i ] %226 = trunc nuw nsw i64 %indvars.iv186.i to i32 @@ -500,7 +500,7 @@ init_primaries.exit: ; preds = %171 br label %.lr.ph155.us.us.i .lr.ph155.us.us.i: ; preds = %._crit_edge156.us.us.i, %.lr.ph161.us.i - %.pre191.pre199.i = phi i32 [ %.pre191.pre196.i, %._crit_edge156.us.us.i ], [ %.pre191.pre.i, %.lr.ph161.us.i ] + %.pre191.i = phi i32 [ %.pre191.pre196.i, %._crit_edge156.us.us.i ], [ %.pre191196.i, %.lr.ph161.us.i ] %.pre191.i = phi i32 [ %.pre191192.i, %._crit_edge156.us.us.i ], [ %.pre191.pre.i, %.lr.ph161.us.i ] %indvars.iv181.i = phi i64 [ %indvars.iv.next182.i, %._crit_edge156.us.us.i ], [ 0, %.lr.ph161.us.i ] %.1118158.us.us.i = phi ptr [ %.3120.us.us.i, %._crit_edge156.us.us.i ], [ %.0117164.us.i, %.lr.ph161.us.i ] @@ -720,8 +720,8 @@ LUV_convert.exit.us.us.i: ; preds = %304, %303, %289 %365 = getelementptr inbounds nuw i32, ptr @nexttest, i64 %indvars.iv173.i store i32 %spec.select.i, ptr %365, align 4 %indvars.iv.next174.i = add nsw i64 %indvars.iv173.i, -1 - %.not207.i = icmp eq i64 %indvars.iv173.i, 0 - br i1 %.not207.i, label %.lr.ph166.i, label %.lr.ph150.i, !llvm.loop !20 + %.not203.i = icmp eq i64 %indvars.iv173.i, 0 + br i1 %.not203.i, label %.lr.ph166.i, label %.lr.ph150.i, !llvm.loop !20 init_virt_cmap.exit: ; preds = %._crit_edge162.split.us.us.i, %186, %._crit_edge144.i %.pre245 = phi ptr [ %.pre245.pre, %186 ], [ %182, %._crit_edge144.i ], [ %182, %._crit_edge162.split.us.us.i ] @@ -1477,7 +1477,7 @@ handle_biggest_offenders.exit: ; preds = %.loopexit.i, %.lr.p %.pr = load i32, ptr @num_virt_cmap_entries, align 4 br i1 %783, label %.lr.ph186.split, label %._crit_edge187, !llvm.loop !27 -._crit_edge187: ; preds = %handle_biggest_offenders.exit, %init_virt_cmap.exit +._crit_edge187.loopexit: ; preds = %handle_biggest_offenders.exit, %init_virt_cmap.exit %784 = phi i32 [ %.pre247, %init_virt_cmap.exit ], [ %.pr, %handle_biggest_offenders.exit ] %.lcssa184 = phi i32 [ %366, %init_virt_cmap.exit ], [ %782, %handle_biggest_offenders.exit ] %785 = sext i32 %0 to i64 diff --git a/bench/openjdk/optimized/os.ll b/bench/openjdk/optimized/os.ll index 3601798d9d1..7526d80c473 100644 --- a/bench/openjdk/optimized/os.ll +++ b/bench/openjdk/optimized/os.ll @@ -1552,7 +1552,7 @@ define hidden noundef ptr @_ZN2os6mallocEm8MEMFLAGSRK15NativeCallStack(i64 nound %20 = load i32, ptr @_ZN10NMTPreInit16_num_mallocs_preE, align 4 %21 = add i32 %20, 1 store i32 %21, ptr @_ZN10NMTPreInit16_num_mallocs_preE, align 4 - br label %69 + br label %67 _ZN10NMTPreInit13handle_mallocEPPvm.exit: ; preds = %3 %22 = icmp sgt i32 %4, 1 @@ -1580,7 +1580,7 @@ _ZN10NMTPreInit13handle_mallocEPPvm.exit: ; preds = %3 37: ; preds = %27 %38 = tail call noundef zeroext i1 @_ZN19MallocMemorySummary19total_limit_reachedEmmPK11malloclimit(i64 noundef %5, i64 noundef %33, ptr noundef nonnull @_ZN18MallocLimitHandler7_limitsE) #28 - br i1 %38, label %69, label %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread + br i1 %38, label %67, label %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread 39: ; preds = %25 %40 = zext i8 %1 to i64 @@ -1602,7 +1602,7 @@ _ZN10NMTPreInit13handle_mallocEPPvm.exit: ; preds = %3 _ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit: ; preds = %43 %52 = tail call noundef zeroext i1 @_ZN19MallocMemorySummary22category_limit_reachedE8MEMFLAGSmmPK11malloclimit(i8 noundef zeroext %1, i64 noundef %5, i64 noundef %49, ptr noundef nonnull %41) #28 - br i1 %52, label %69, label %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread + br i1 %52, label %67, label %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread _ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread: ; preds = %39, %43, %27, %_ZN10NMTPreInit13handle_mallocEPPvm.exit, %37, %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit %53 = load i32, ptr @_ZN10MemTracker15_tracking_levelE, align 4 @@ -1610,33 +1610,33 @@ _ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread: ; preds = %39, %43, %55 = select i1 %54, i64 18, i64 0 %56 = add i64 %55, %5 %57 = icmp ult i64 %56, %5 - br i1 %57, label %69, label %58 + br i1 %57, label %67, label %58 58: ; preds = %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread %59 = tail call noalias ptr @malloc(i64 noundef %56) #31 %60 = icmp eq ptr %59, null - br i1 %60, label %69, label %61 + br i1 %60, label %67, label %61 61: ; preds = %58 %62 = load i32, ptr @_ZN10MemTracker15_tracking_levelE, align 4 %63 = icmp sgt i32 %62, 1 br i1 %63, label %64, label %_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit -64: ; preds = %61 - %65 = tail call noundef ptr @_ZN13MallocTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack(ptr noundef nonnull %59, i64 noundef %5, i8 noundef zeroext %1, ptr noundef nonnull align 8 dereferenceable(32) %2) #28 +62: ; preds = %61 + %63 = tail call noundef ptr @_ZN13MallocTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack(ptr noundef nonnull %59, i64 noundef %5, i8 noundef zeroext %1, ptr noundef nonnull align 8 dereferenceable(32) %2) #28 br label %_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit -_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit: ; preds = %61, %64 - %.0.i19 = phi ptr [ %65, %64 ], [ %59, %61 ] - %66 = load i8, ptr @_ZN9CDSConfig26_is_dumping_static_archiveE, align 1 - %67 = trunc i8 %66 to i1 - br i1 %67, label %68, label %69 +_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit: ; preds = %61, %62 + %.0.i19 = phi ptr [ %63, %64 ], [ %59, %61 ] + %64 = load i8, ptr @_ZN9CDSConfig26_is_dumping_static_archiveE, align 1 + %65 = trunc i8 %64 to i1 + br i1 %65, label %66, label %67 -68: ; preds = %_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit +66: ; preds = %_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %.0.i19, i8 0, i64 %5, i1 false) - br label %69 + br label %67 -69: ; preds = %37, %68, %_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit, %58, %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread, %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit, %11 +67: ; preds = %37, %66, %_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit, %58, %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread, %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit, %11 %.0 = phi ptr [ %19, %11 ], [ null, %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit ], [ null, %_ZN10MemTracker19check_exceeds_limitEm8MEMFLAGS.exit.thread ], [ null, %58 ], [ %.0.i19, %_ZN10MemTracker13record_mallocEPvm8MEMFLAGSRK15NativeCallStack.exit ], [ %.0.i19, %68 ], [ null, %37 ] ret ptr %.0 } diff --git a/bench/openjdk/optimized/splashscreen_sys.ll b/bench/openjdk/optimized/splashscreen_sys.ll index 1eae33a025c..4611d1cb5bd 100644 --- a/bench/openjdk/optimized/splashscreen_sys.ll +++ b/bench/openjdk/optimized/splashscreen_sys.ll @@ -198,7 +198,7 @@ define hidden void @SplashInitFrameShape(ptr noundef %0, i32 noundef %1) local_u .thread52: ; preds = %39 store ptr null, ptr %8, align 8 - br label %50 + br label %47 42: ; preds = %39 %43 = zext nneg i32 %40 to i64 @@ -206,7 +206,7 @@ define hidden void @SplashInitFrameShape(ptr noundef %0, i32 noundef %1) local_u %45 = call noalias ptr @malloc(i64 noundef %44) #18 store ptr %45, ptr %8, align 8 %.not49 = icmp eq ptr %45, null - br i1 %.not49, label %50, label %46 + br i1 %.not49, label %47, label %46 46: ; preds = %42 %47 = load i32, ptr %9, align 8 @@ -215,11 +215,11 @@ define hidden void @SplashInitFrameShape(ptr noundef %0, i32 noundef %1) local_u call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 2 %45, ptr nonnull align 2 %38, i64 %49, i1 false) br label %50 -50: ; preds = %.thread52, %46, %42 +47: ; preds = %.thread52, %46, %42 call void @free(ptr noundef nonnull %38) #16 br label %.thread -.thread: ; preds = %32, %15, %29, %2, %50 +.thread: ; preds = %32, %15, %29, %2, %47 ret void } diff --git a/bench/openmpi/optimized/unpack.ll b/bench/openmpi/optimized/unpack.ll index bf48f1de730..4cf60e0eb3c 100644 --- a/bench/openmpi/optimized/unpack.ll +++ b/bench/openmpi/optimized/unpack.ll @@ -4858,7 +4858,7 @@ define i32 @pmix20_bfrop_unpack_darray(ptr noundef %0, ptr noundef %1, ptr nound %wide.trip.count = zext nneg i32 %17 to i64 br label %21 -21: ; preds = %.lr.ph, %52 +21: ; preds = %.lr.ph, %51 %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %52 ] %22 = getelementptr inbounds nuw %struct.pmix_data_array, ptr %2, i64 %indvars.iv call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %22, i8 0, i64 24, i1 false) @@ -4891,12 +4891,12 @@ pmix20_bfrop_unpack_datatype.exit: ; preds = %pmix_pointer_array_ 34: ; preds = %31 %35 = load i64, ptr %32, align 8, !tbaa !74 %36 = icmp eq i64 %35, 0 - br i1 %36, label %52, label %37 + br i1 %36, label %51, label %37 37: ; preds = %34 %38 = load i16, ptr %22, align 8, !tbaa !72 %39 = icmp eq i16 %38, 0 - br i1 %39, label %52, label %40 + br i1 %39, label %51, label %40 40: ; preds = %37 %41 = trunc i64 %35 to i32 @@ -4930,12 +4930,12 @@ switch.lookup: ; preds = %switch.hole_check %.not46 = icmp eq i32 %51, 0 br i1 %.not46, label %52, label %pmix20_bfrop_unpack_datatype.exit.thread -52: ; preds = %49, %34, %37 +51: ; preds = %49, %34, %37 %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 %pmix20_bfrop_unpack_datatype.exit.thread, label %21, !llvm.loop !119 -pmix20_bfrop_unpack_datatype.exit.thread: ; preds = %pmix20_bfrop_unpack_datatype.exit, %31, %switch.lookup, %49, %52, %pmix_pointer_array_get_item.exit.i, %21, %40, %switch.hole_check, %16 +pmix20_bfrop_unpack_datatype.exit.thread: ; preds = %pmix20_bfrop_unpack_datatype.exit, %31, %switch.lookup, %49, %51, %pmix_pointer_array_get_item.exit.i, %21, %40, %switch.hole_check, %16 %.037 = phi i32 [ 0, %16 ], [ -47, %switch.hole_check ], [ -16, %21 ], [ -16, %pmix_pointer_array_get_item.exit.i ], [ 0, %52 ], [ %51, %49 ], [ -32, %switch.lookup ], [ -47, %40 ], [ %33, %31 ], [ %30, %pmix20_bfrop_unpack_datatype.exit ] call void @llvm.lifetime.end.p0(ptr nonnull %6) ret i32 %.037 diff --git a/bench/openusd/optimized/drawModeStandin.ll b/bench/openusd/optimized/drawModeStandin.ll index 105dd2125e7..8e31f27efac 100644 --- a/bench/openusd/optimized/drawModeStandin.ll +++ b/bench/openusd/optimized/drawModeStandin.ll @@ -8410,7 +8410,7 @@ define linkonce_odr void @_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorIN %6 = load i32, ptr %5, align 4 %7 = icmp eq i32 %4, %6 %.pre = load ptr, ptr %0, align 8 - br i1 %7, label %8, label %33 + br i1 %7, label %8, label %30 8: ; preds = %2 %9 = zext i32 %4 to i64 @@ -8438,10 +8438,10 @@ define linkonce_odr void @_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorIN br i1 %.not7.i.i, label %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.i, label %.lr.ph.i.i .lr.ph.i.i: ; preds = %8, %.lr.ph.i.i - %.08.i.i = phi ptr [ %27, %.lr.ph.i.i ], [ %spec.select.i.i.i.i, %8 ] + %.08.i.i = phi ptr [ %24, %.lr.ph.i.i ], [ %spec.select.i.i.i.i, %8 ] tail call void @_ZN32pxrInternal_v0_24__pxrReserved__20HdSceneIndexObserver16DirtiedPrimEntryD2Ev(ptr noundef nonnull align 8 dereferenceable(464) %.08.i.i) #29 - %27 = getelementptr inbounds nuw i8, ptr %.08.i.i, i64 464 - %.not.i.i = icmp eq ptr %27, %26 + %24 = getelementptr inbounds nuw i8, ptr %.08.i.i, i64 464 + %.not.i.i = icmp eq ptr %24, %26 br i1 %.not.i.i, label %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.loopexit.i, label %.lr.ph.i.i, !llvm.loop !44 _ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.loopexit.i: ; preds = %.lr.ph.i.i @@ -8449,53 +8449,53 @@ _ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16 br label %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.i _ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.i: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.loopexit.i, %8 - %28 = phi i32 [ %.pre.i, %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.loopexit.i ], [ %21, %8 ] - %29 = icmp ult i32 %28, 17 - br i1 %29, label %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit, label %30 + %25 = phi i32 [ %.pre.i, %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.loopexit.i ], [ %21, %8 ] + %26 = icmp ult i32 %25, 17 + br i1 %26, label %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit, label %27 -30: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.i - %31 = load ptr, ptr %0, align 8 - tail call void @free(ptr noundef %31) #29 +27: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.i + %28 = load ptr, ptr %0, align 8 + tail call void @free(ptr noundef %28) #29 br label %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit -_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.i, %30 +_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE9_DestructEv.exit.i, %27 store ptr %14, ptr %0, align 8 - %32 = trunc i64 %12 to i32 - store i32 %32, ptr %5, align 4 + %29 = trunc i64 %12 to i32 + store i32 %29, ptr %5, align 4 %.pre2 = load i32, ptr %3, align 8 - br label %33 + br label %30 -33: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit, %2 - %34 = phi i32 [ %.pre2, %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit ], [ %4, %2 ] - %35 = phi ptr [ %14, %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit ], [ %.pre, %2 ] - %36 = phi i32 [ %32, %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit ], [ %6, %2 ] - %37 = icmp ult i32 %36, 17 - %spec.select.i.i = select i1 %37, ptr %0, ptr %35 - %38 = zext i32 %34 to i64 - %39 = getelementptr inbounds nuw %"struct.pxrInternal_v0_24__pxrReserved__::HdSceneIndexObserver::DirtiedPrimEntry", ptr %spec.select.i.i, i64 %38 - %40 = load i32, ptr %1, align 8 - store i32 %40, ptr %39, align 4 +30: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit, %2 + %31 = phi i32 [ %.pre2, %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit ], [ %4, %2 ] + %32 = phi ptr [ %14, %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit ], [ %.pre, %2 ] + %33 = phi i32 [ %29, %_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_20HdSceneIndexObserver16DirtiedPrimEntryELj16EE12_GrowStorageEm.exit ], [ %6, %2 ] + %34 = icmp ult i32 %33, 17 + %spec.select.i.i = select i1 %34, ptr %0, ptr %32 + %35 = zext i32 %31 to i64 + %36 = getelementptr inbounds nuw %"struct.pxrInternal_v0_24__pxrReserved__::HdSceneIndexObserver::DirtiedPrimEntry", ptr %spec.select.i.i, i64 %35 + %37 = load i32, ptr %1, align 8 + store i32 %37, ptr %36, align 4 store i32 0, ptr %1, align 8 - %41 = getelementptr inbounds nuw i8, ptr %39, i64 4 - %42 = getelementptr inbounds nuw i8, ptr %1, i64 4 - %43 = load i32, ptr %42, align 4 - store i32 %43, ptr %41, align 4 - store i32 0, ptr %42, align 4 - %44 = getelementptr inbounds nuw i8, ptr %39, i64 8 - %45 = getelementptr inbounds nuw i8, ptr %1, i64 8 - invoke void @_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_19HdDataSourceLocatorELj8EEC2EOS2_(ptr noundef nonnull align 8 dereferenceable(456) %44, ptr noundef nonnull align 8 dereferenceable(456) %45) - to label %_ZN32pxrInternal_v0_24__pxrReserved__20HdSceneIndexObserver16DirtiedPrimEntryC2EOS1_.exit unwind label %46 - -46: ; preds = %33 - %47 = landingpad { ptr, i32 } + %38 = getelementptr inbounds nuw i8, ptr %36, i64 4 + %39 = getelementptr inbounds nuw i8, ptr %1, i64 4 + %40 = load i32, ptr %39, align 4 + store i32 %40, ptr %38, align 4 + store i32 0, ptr %39, align 4 + %41 = getelementptr inbounds nuw i8, ptr %36, i64 8 + %42 = getelementptr inbounds nuw i8, ptr %1, i64 8 + invoke void @_ZN32pxrInternal_v0_24__pxrReserved__13TfSmallVectorINS_19HdDataSourceLocatorELj8EEC2EOS2_(ptr noundef nonnull align 8 dereferenceable(456) %41, ptr noundef nonnull align 8 dereferenceable(456) %42) + to label %_ZN32pxrInternal_v0_24__pxrReserved__20HdSceneIndexObserver16DirtiedPrimEntryC2EOS1_.exit unwind label %43 + +43: ; preds = %30 + %44 = landingpad { ptr, i32 } cleanup - tail call void @_ZN32pxrInternal_v0_24__pxrReserved__7SdfPathD2Ev(ptr noundef nonnull align 8 dereferenceable(464) %39) #29 - resume { ptr, i32 } %47 + tail call void @_ZN32pxrInternal_v0_24__pxrReserved__7SdfPathD2Ev(ptr noundef nonnull align 8 dereferenceable(464) %36) #29 + resume { ptr, i32 } %44 -_ZN32pxrInternal_v0_24__pxrReserved__20HdSceneIndexObserver16DirtiedPrimEntryC2EOS1_.exit: ; preds = %33 - %48 = load i32, ptr %3, align 8 - %49 = add i32 %48, 1 - store i32 %49, ptr %3, align 8 +_ZN32pxrInternal_v0_24__pxrReserved__20HdSceneIndexObserver16DirtiedPrimEntryC2EOS1_.exit: ; preds = %30 + %45 = load i32, ptr %3, align 8 + %46 = add i32 %45, 1 + store i32 %46, ptr %3, align 8 ret void } diff --git a/bench/php/optimized/shared_alloc_shm.ll b/bench/php/optimized/shared_alloc_shm.ll index c5598a9267c..e82a532cfef 100644 --- a/bench/php/optimized/shared_alloc_shm.ll +++ b/bench/php/optimized/shared_alloc_shm.ll @@ -80,71 +80,71 @@ define internal range(i32 0, 2) i32 @create_segments(i64 noundef %0, ptr noundef br label %.lr.ph89 .lr.ph92: ; preds = %.lr.ph89 - %34 = getelementptr inbounds nuw i8, ptr %32, i64 32 - br label %38 + %32 = getelementptr inbounds nuw i8, ptr %32, i64 32 + br label %36 .lr.ph89: ; preds = %.lr.ph89.preheader, %.lr.ph89 %indvars.iv = phi i64 [ 0, %.lr.ph89.preheader ], [ %indvars.iv.next, %.lr.ph89 ] - %35 = getelementptr inbounds nuw %struct.zend_shared_segment_shm, ptr %32, i64 %indvars.iv - %36 = load ptr, ptr %1, align 8, !tbaa !11 - %37 = getelementptr inbounds nuw ptr, ptr %36, i64 %indvars.iv - store ptr %35, ptr %37, align 8, !tbaa !11 + %33 = getelementptr inbounds nuw %struct.zend_shared_segment_shm, ptr %32, i64 %indvars.iv + %34 = load ptr, ptr %1, align 8, !tbaa !11 + %35 = getelementptr inbounds nuw ptr, ptr %34, i64 %indvars.iv + store ptr %33, ptr %35, align 8, !tbaa !11 %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 %.lr.ph92, label %.lr.ph89 -38: ; preds = %.lr.ph92, %57 +36: ; preds = %.lr.ph92, %55 %indvars.iv99 = phi i64 [ 0, %.lr.ph92 ], [ %indvars.iv.next100, %57 ] - %.07590 = phi i64 [ %0, %.lr.ph92 ], [ %61, %57 ] - %39 = call i64 @llvm.umin.i64(i64 %.07590, i64 %.17486) + %.07590 = phi i64 [ %0, %.lr.ph92 ], [ %59, %57 ] + %37 = call i64 @llvm.umin.i64(i64 %.07590, i64 %.17486) %.not81 = icmp eq i64 %indvars.iv99, 0 - br i1 %.not81, label %44, label %40 - -40: ; preds = %38 - %41 = call i32 @shmget(i32 noundef 0, i64 noundef %39, i32 noundef 1920) #6 - %42 = getelementptr inbounds nuw %struct.zend_shared_segment_shm, ptr %32, i64 %indvars.iv99 - %43 = getelementptr inbounds nuw i8, ptr %42, i64 32 - store i32 %41, ptr %43, align 8, !tbaa !12 - br label %45 - -44: ; preds = %38 - store i32 %14, ptr %34, align 8, !tbaa !12 - br label %45 - -45: ; preds = %44, %40 - %46 = phi i32 [ %14, %44 ], [ %41, %40 ] - %47 = getelementptr inbounds nuw %struct.zend_shared_segment_shm, ptr %32, i64 %indvars.iv99 - %48 = getelementptr inbounds nuw i8, ptr %47, i64 32 - %49 = icmp eq i32 %46, -1 - br i1 %49, label %.loopexit, label %50 - -50: ; preds = %45 - %51 = call ptr @shmat(i32 noundef %46, ptr noundef null, i32 noundef 0) #6 - %52 = getelementptr inbounds nuw i8, ptr %47, i64 24 - store ptr %51, ptr %52, align 8, !tbaa !16 - %53 = icmp eq ptr %51, inttoptr (i64 -1 to ptr) - br i1 %53, label %54, label %57 - -54: ; preds = %50 + br i1 %.not81, label %42, label %38 + +38: ; preds = %36 + %39 = call i32 @shmget(i32 noundef 0, i64 noundef %37, i32 noundef 1920) #6 + %40 = getelementptr inbounds nuw %struct.zend_shared_segment_shm, ptr %32, i64 %indvars.iv99 + %41 = getelementptr inbounds nuw i8, ptr %40, i64 32 + store i32 %39, ptr %41, align 8, !tbaa !12 + br label %43 + +42: ; preds = %36 + store i32 %14, ptr %32, align 8, !tbaa !12 + br label %43 + +43: ; preds = %42, %38 + %44 = phi i32 [ %14, %44 ], [ %39, %40 ] + %45 = getelementptr inbounds nuw %struct.zend_shared_segment_shm, ptr %32, i64 %indvars.iv99 + %46 = getelementptr inbounds nuw i8, ptr %45, i64 32 + %47 = icmp eq i32 %44, -1 + br i1 %47, label %.loopexit, label %48 + +48: ; preds = %43 + %49 = call ptr @shmat(i32 noundef %44, ptr noundef null, i32 noundef 0) #6 + %50 = getelementptr inbounds nuw i8, ptr %45, i64 24 + store ptr %49, ptr %50, align 8, !tbaa !16 + %51 = icmp eq ptr %49, inttoptr (i64 -1 to ptr) + br i1 %51, label %52, label %55 + +52: ; preds = %48 store ptr @.str.2, ptr %3, align 8, !tbaa !4 - %55 = load i32, ptr %48, align 8, !tbaa !12 - %56 = call i32 @shmctl(i32 noundef %55, i32 noundef 0, ptr noundef nonnull %5) #6 + %53 = load i32, ptr %46, align 8, !tbaa !12 + %54 = call i32 @shmctl(i32 noundef %53, i32 noundef 0, ptr noundef nonnull %5) #6 br label %.loopexit -57: ; preds = %50 - %58 = load i32, ptr %48, align 8, !tbaa !12 - %59 = call i32 @shmctl(i32 noundef %58, i32 noundef 0, ptr noundef nonnull %5) #6 - %60 = getelementptr inbounds nuw i8, ptr %47, i64 16 - store i64 0, ptr %60, align 8, !tbaa !17 - store i64 %39, ptr %47, align 8, !tbaa !18 - %61 = sub i64 %.07590, %39 +55: ; preds = %48 + %56 = load i32, ptr %46, align 8, !tbaa !12 + %57 = call i32 @shmctl(i32 noundef %56, i32 noundef 0, ptr noundef nonnull %5) #6 + %58 = getelementptr inbounds nuw i8, ptr %45, i64 16 + store i64 0, ptr %58, align 8, !tbaa !17 + store i64 %37, ptr %45, align 8, !tbaa !18 + %59 = sub i64 %.07590, %37 %indvars.iv.next100 = add nuw nsw i64 %indvars.iv99, 1 - %62 = load i32, ptr %2, align 4, !tbaa !9 - %63 = sext i32 %62 to i64 - %64 = icmp slt i64 %indvars.iv.next100, %63 - br i1 %64, label %38, label %.loopexit + %60 = load i32, ptr %2, align 4, !tbaa !9 + %61 = sext i32 %60 to i64 + %62 = icmp slt i64 %indvars.iv.next100, %61 + br i1 %62, label %36, label %.loopexit -.loopexit: ; preds = %45, %57, %28, %54, %27, %._crit_edge +.loopexit: ; preds = %43, %55, %28, %52, %27, %._crit_edge %.0 = phi i32 [ 0, %._crit_edge ], [ 0, %54 ], [ 0, %27 ], [ 1, %28 ], [ 0, %45 ], [ 1, %57 ] call void @llvm.lifetime.end.p0(ptr nonnull %5) ret i32 %.0 diff --git a/bench/postgres/optimized/fe-cancel.ll b/bench/postgres/optimized/fe-cancel.ll index e52fc563e4e..96d34850885 100644 --- a/bench/postgres/optimized/fe-cancel.ll +++ b/bench/postgres/optimized/fe-cancel.ll @@ -29,7 +29,7 @@ target triple = "x86_64-pc-linux-gnu" define ptr @PQcancelCreate(ptr noundef %0) local_unnamed_addr #0 { %2 = tail call ptr @pqMakeEmptyPGconn() #16 %3 = icmp eq ptr %2, null - br i1 %3, label %62, label %4 + br i1 %3, label %60, label %4 4: ; preds = %1 %.not = icmp eq ptr %0, null @@ -37,7 +37,7 @@ define ptr @PQcancelCreate(ptr noundef %0) local_unnamed_addr #0 { 5: ; preds = %4 tail call void (ptr, ptr, ...) @libpq_append_conn_error(ptr noundef nonnull %2, ptr noundef nonnull @.str) #16 - br label %62 + br label %60 6: ; preds = %4 %7 = getelementptr inbounds nuw i8, ptr %0, i64 520 @@ -47,17 +47,17 @@ define ptr @PQcancelCreate(ptr noundef %0) local_unnamed_addr #0 { 10: ; preds = %6 tail call void (ptr, ptr, ...) @libpq_append_conn_error(ptr noundef nonnull %2, ptr noundef nonnull @.str.1) #16 - br label %62 + br label %60 11: ; preds = %6 %12 = getelementptr inbounds nuw i8, ptr %2, i64 344 store i8 1, ptr %12, align 8 %13 = tail call zeroext i1 @pqCopyPGconn(ptr noundef nonnull %0, ptr noundef nonnull %2) #16 - br i1 %13, label %14, label %62 + br i1 %13, label %14, label %60 14: ; preds = %11 %15 = tail call zeroext i1 @pqConnectOptions2(ptr noundef nonnull %2) #16 - br i1 %15, label %16, label %62 + br i1 %15, label %16, label %60 16: ; preds = %14 %17 = getelementptr inbounds nuw i8, ptr %0, i64 936 @@ -146,7 +146,7 @@ define ptr @PQcancelCreate(ptr noundef %0) local_unnamed_addr #0 { %.not62 = icmp eq ptr %52, null br i1 %.not62, label %60, label %54 -54: ; preds = %49 +54: ; preds = %49 %55 = getelementptr inbounds nuw i8, ptr %52, i64 8 %56 = getelementptr inbounds nuw i8, ptr %0, i64 664 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %55, ptr noundef nonnull align 8 dereferenceable(136) %56, i64 136, i1 false) @@ -161,9 +161,9 @@ define ptr @PQcancelCreate(ptr noundef %0) local_unnamed_addr #0 { %61 = getelementptr inbounds nuw i8, ptr %2, i64 416 store i32 1, ptr %61, align 8 tail call void (ptr, ptr, ...) @libpq_append_conn_error(ptr noundef nonnull %2, ptr noundef nonnull @.str.2) #16 - br label %62 + br label %60 -62: ; preds = %14, %11, %1, %60, %54, %10, %5 +60: ; preds = %14, %11, %1, %60, %54, %10, %5 ret ptr %2 } diff --git a/bench/raylib/optimized/utils.ll b/bench/raylib/optimized/utils.ll index be5dd98fb76..5a4c0ffad99 100644 --- a/bench/raylib/optimized/utils.ll +++ b/bench/raylib/optimized/utils.ll @@ -101,7 +101,7 @@ define void @TraceLog(i32 noundef %0, ptr noundef %1, ...) local_unnamed_addr #1 br i1 %.not, label %10, label %9 9: ; preds = %7 - call void %8(i32 noundef %0, ptr noundef %1, ptr noundef nonnull %3) #19 + call void %8(i32 noundef %0, ptr noundef %1, ptr noundef nonnull %3) #18 call void @llvm.va_end.p0(ptr nonnull %3) br label %31 @@ -126,11 +126,11 @@ define void @TraceLog(i32 noundef %0, ptr noundef %1, ...) local_unnamed_addr #1 br label %17 13: ; preds = %10 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(7) %4, ptr noundef nonnull align 1 dereferenceable(7) @.str.2, i64 7, i1 false) #19 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(7) %4, ptr noundef nonnull align 1 dereferenceable(7) @.str.2, i64 7, i1 false) #18 br label %17 14: ; preds = %10 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(10) %4, ptr noundef nonnull align 1 dereferenceable(10) @.str.3, i64 10, i1 false) #19 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(10) %4, ptr noundef nonnull align 1 dereferenceable(10) @.str.3, i64 10, i1 false) #18 br label %17 15: ; preds = %10 @@ -142,9 +142,9 @@ define void @TraceLog(i32 noundef %0, ptr noundef %1, ...) local_unnamed_addr #1 br label %17 17: ; preds = %10, %16, %15, %14, %13, %12, %11 - %18 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #20 + %18 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #19 %19 = trunc i64 %18 to i32 - %20 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %4) #20 + %20 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %4) #19 %21 = getelementptr inbounds nuw i8, ptr %4, i64 %20 %22 = call i32 @llvm.umin.i32(i32 %19, i32 244) %23 = zext nneg i32 %22 to i64 @@ -153,7 +153,7 @@ define void @TraceLog(i32 noundef %0, ptr noundef %1, ...) local_unnamed_addr #1 %endptr = getelementptr inbounds i8, ptr %4, i64 %strlen store i16 10, ptr %endptr, align 1 %24 = load ptr, ptr @stdout, align 8, !noalias !3 - %25 = call i32 @vfprintf(ptr noundef %24, ptr noundef nonnull %4, ptr noundef nonnull %3) #19 + %25 = call i32 @vfprintf(ptr noundef %24, ptr noundef nonnull %4, ptr noundef nonnull %3) #18 %26 = load ptr, ptr @stdout, align 8 %27 = call i32 @fflush(ptr noundef %26) call void @llvm.va_end.p0(ptr nonnull %3) @@ -161,7 +161,7 @@ define void @TraceLog(i32 noundef %0, ptr noundef %1, ...) local_unnamed_addr #1 br i1 %28, label %29, label %30 29: ; preds = %17 - call void @exit(i32 noundef 1) #21 + call void @exit(i32 noundef 1) #20 unreachable 30: ; preds = %17 @@ -203,7 +203,7 @@ declare void @exit(i32 noundef) local_unnamed_addr #8 ; Function Attrs: mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite, errnomem: write) uwtable define noalias noundef ptr @MemAlloc(i32 noundef %0) local_unnamed_addr #9 { %2 = zext i32 %0 to i64 - %3 = tail call noalias ptr @calloc(i64 noundef %2, i64 noundef 1) #22 + %3 = tail call noalias ptr @calloc(i64 noundef %2, i64 noundef 1) #21 ret ptr %3 } @@ -213,7 +213,7 @@ declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr ; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable define noalias noundef ptr @MemRealloc(ptr noundef captures(none) %0, i32 noundef %1) local_unnamed_addr #11 { %3 = zext i32 %1 to i64 - %4 = tail call ptr @realloc(ptr noundef %0, i64 noundef %3) #23 + %4 = tail call ptr @realloc(ptr noundef %0, i64 noundef %3) #22 ret ptr %4 } @@ -222,12 +222,12 @@ declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 no ; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable define void @MemFree(ptr noundef captures(none) %0) local_unnamed_addr #13 { - tail call void @free(ptr noundef %0) #19 + tail call void @free(ptr noundef %0) #18 ret void } ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) -declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #14 +declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #13 ; Function Attrs: nounwind uwtable define ptr @LoadFileData(ptr noundef %0, ptr noundef initializes((0, 4)) %1) local_unnamed_addr #1 { @@ -241,7 +241,7 @@ define ptr @LoadFileData(ptr noundef %0, ptr noundef initializes((0, 4)) %1) loc br i1 %.not40, label %7, label %5 5: ; preds = %3 - %6 = tail call ptr %4(ptr noundef nonnull %0, ptr noundef nonnull %1) #19 + %6 = tail call ptr %4(ptr noundef nonnull %0, ptr noundef nonnull %1) #18 br label %32 7: ; preds = %3 @@ -259,7 +259,7 @@ define ptr @LoadFileData(ptr noundef %0, ptr noundef initializes((0, 4)) %1) loc 15: ; preds = %9 %16 = and i64 %11, 2147483647 - %17 = tail call noalias ptr @malloc(i64 noundef %16) #24 + %17 = tail call noalias ptr @malloc(i64 noundef %16) #23 %.not42 = icmp eq ptr %17, null br i1 %.not42, label %26, label %18 @@ -270,7 +270,7 @@ define ptr @LoadFileData(ptr noundef %0, ptr noundef initializes((0, 4)) %1) loc 21: ; preds = %18 tail call void (i32, ptr, ...) @TraceLog(i32 noundef 4, ptr noundef nonnull @.str.8, ptr noundef nonnull %0) - tail call void @free(ptr noundef nonnull %17) #19 + tail call void @free(ptr noundef nonnull %17) #18 br label %28 22: ; preds = %18 @@ -323,7 +323,7 @@ declare noundef i32 @fseek(ptr noundef captures(none), i64 noundef, i32 noundef) declare noundef i64 @ftell(ptr noundef captures(none)) local_unnamed_addr #7 ; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) -declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #15 +declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #14 ; Function Attrs: nofree nounwind declare noundef i64 @fread(ptr noundef writeonly captures(none), i64 noundef, i64 noundef, ptr noundef captures(none)) local_unnamed_addr #7 @@ -333,7 +333,7 @@ declare noundef i32 @fclose(ptr noundef captures(none)) local_unnamed_addr #7 ; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable define void @UnloadFileData(ptr noundef captures(none) %0) local_unnamed_addr #13 { - tail call void @free(ptr noundef %0) #19 + tail call void @free(ptr noundef %0) #18 ret void } @@ -348,7 +348,7 @@ define zeroext i1 @SaveFileData(ptr noundef %0, ptr noundef %1, i32 noundef %2) br i1 %.not24, label %8, label %6 6: ; preds = %4 - %7 = tail call zeroext i1 %5(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %2) #19 + %7 = tail call zeroext i1 %5(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %2) #18 br label %24 8: ; preds = %4 @@ -406,7 +406,7 @@ define noundef zeroext i1 @ExportDataAsCode(ptr noundef readonly captures(none) %5 = mul nsw i32 %1, 6 %6 = add nsw i32 %5, 2000 %7 = sext i32 %6 to i64 - %8 = tail call noalias ptr @calloc(i64 noundef %7, i64 noundef 1) #22 + %8 = tail call noalias ptr @calloc(i64 noundef %7, i64 noundef 1) #21 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(90) %8, ptr noundef nonnull align 1 dereferenceable(90) @.str.19, i64 89, i1 false) %9 = getelementptr inbounds nuw i8, ptr %8, i64 89 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(90) %9, ptr noundef nonnull align 1 dereferenceable(90) @.str.20, i64 89, i1 false) @@ -428,19 +428,19 @@ define noundef zeroext i1 @ExportDataAsCode(ptr noundef readonly captures(none) tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(91) %17, ptr noundef nonnull align 1 dereferenceable(91) @.str.25, i64 91, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %4) call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(256) %4, i8 0, i64 256, i1 false) - %18 = tail call ptr @GetFileNameWithoutExt(ptr noundef %2) #19 - %19 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %4, ptr noundef nonnull dereferenceable(1) %18) #19 + %18 = tail call ptr @GetFileNameWithoutExt(ptr noundef %2) #18 + %19 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %4, ptr noundef nonnull dereferenceable(1) %18) #18 %20 = load i8, ptr %4, align 16 %.not76 = icmp eq i8 %20, 0 br i1 %.not76, label %._crit_edge, label %.lr.ph ._crit_edge: ; preds = %35, %3 %21 = getelementptr inbounds nuw i8, ptr %8, i64 891 - %22 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %21, ptr noundef nonnull dereferenceable(1) @.str.26, ptr noundef nonnull %4, i32 noundef %1) #19 + %22 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %21, ptr noundef nonnull dereferenceable(1) @.str.26, ptr noundef nonnull %4, i32 noundef %1) #18 %23 = add nsw i32 %22, 891 %24 = sext i32 %23 to i64 %25 = getelementptr inbounds i8, ptr %8, i64 %24 - %26 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %25, ptr noundef nonnull dereferenceable(1) @.str.27, ptr noundef nonnull %4, ptr noundef nonnull %4) #19 + %26 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %25, ptr noundef nonnull dereferenceable(1) @.str.27, ptr noundef nonnull %4, ptr noundef nonnull %4) #18 %27 = add nsw i32 %23, %26 %28 = add i32 %1, -1 %29 = icmp sgt i32 %1, 1 @@ -491,9 +491,9 @@ define noundef zeroext i1 @ExportDataAsCode(ptr noundef readonly captures(none) %41 = getelementptr inbounds i8, ptr %0, i64 %40 %42 = load i8, ptr %41, align 1 %43 = zext i8 %42 to i32 - %44 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %39, ptr noundef nonnull dereferenceable(1) @.str.30, i32 noundef %43) #19 + %44 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %39, ptr noundef nonnull dereferenceable(1) @.str.30, i32 noundef %43) #18 %45 = call zeroext i1 @SaveFileText(ptr noundef %2, ptr noundef nonnull %8) - call void @free(ptr noundef nonnull %8) #19 + call void @free(ptr noundef nonnull %8) #18 br i1 %45, label %57, label %58 .lr.ph81: ; preds = %.lr.ph81.preheader, %.lr.ph81 @@ -508,7 +508,7 @@ define noundef zeroext i1 @ExportDataAsCode(ptr noundef readonly captures(none) %52 = getelementptr inbounds nuw i8, ptr %0, i64 %indvars.iv84 %53 = load i8, ptr %52, align 1 %54 = zext i8 %53 to i32 - %55 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %47, ptr noundef nonnull dereferenceable(1) %51, i32 noundef %54) #19 + %55 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %47, ptr noundef nonnull dereferenceable(1) %51, i32 noundef %54) #18 %56 = add nsw i32 %55, %.07278 %indvars.iv.next85 = add nuw nsw i64 %indvars.iv84, 1 %exitcond.not = icmp eq i64 %indvars.iv.next85, %wide.trip.count @@ -530,7 +530,7 @@ define noundef zeroext i1 @ExportDataAsCode(ptr noundef readonly captures(none) ; Function Attrs: nofree nounwind declare noundef i32 @sprintf(ptr noalias noundef writeonly captures(none), ptr noundef readonly captures(none), ...) local_unnamed_addr #7 -declare ptr @GetFileNameWithoutExt(ptr noundef) local_unnamed_addr #16 +declare ptr @GetFileNameWithoutExt(ptr noundef) local_unnamed_addr #15 ; Function Attrs: nounwind uwtable define zeroext i1 @SaveFileText(ptr noundef %0, ptr noundef %1) local_unnamed_addr #1 { @@ -543,7 +543,7 @@ define zeroext i1 @SaveFileText(ptr noundef %0, ptr noundef %1) local_unnamed_ad br i1 %.not18, label %7, label %5 5: ; preds = %3 - %6 = tail call zeroext i1 %4(ptr noundef nonnull %0, ptr noundef %1) #19 + %6 = tail call zeroext i1 %4(ptr noundef nonnull %0, ptr noundef %1) #18 br label %19 7: ; preds = %3 @@ -552,7 +552,7 @@ define zeroext i1 @SaveFileText(ptr noundef %0, ptr noundef %1) local_unnamed_ad br i1 %.not19, label %17, label %9 9: ; preds = %7 - %10 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %8, ptr noundef nonnull @.str.38, ptr noundef %1) #19 + %10 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %8, ptr noundef nonnull @.str.38, ptr noundef %1) #18 %11 = icmp slt i32 %10, 0 br i1 %11, label %12, label %13 @@ -593,7 +593,7 @@ define ptr @LoadFileText(ptr noundef %0) local_unnamed_addr #1 { br i1 %.not34, label %6, label %4 4: ; preds = %2 - %5 = tail call ptr %3(ptr noundef nonnull %0) #19 + %5 = tail call ptr %3(ptr noundef nonnull %0) #18 br label %35 6: ; preds = %2 @@ -612,7 +612,7 @@ define ptr @LoadFileText(ptr noundef %0) local_unnamed_addr #1 { 13: ; preds = %8 %14 = add i64 %10, 1 %15 = and i64 %14, 4294967295 - %16 = tail call noalias ptr @malloc(i64 noundef %15) #24 + %16 = tail call noalias ptr @malloc(i64 noundef %15) #23 %.not37 = icmp eq ptr %16, null br i1 %.not37, label %29, label %17 @@ -626,7 +626,7 @@ define ptr @LoadFileText(ptr noundef %0) local_unnamed_addr #1 { 22: ; preds = %17 %23 = add i64 %19, 1 %24 = and i64 %23, 4294967295 - %25 = tail call ptr @realloc(ptr noundef nonnull %16, i64 noundef %24) #23 + %25 = tail call ptr @realloc(ptr noundef nonnull %16, i64 noundef %24) #22 br label %26 26: ; preds = %22, %17 @@ -665,7 +665,7 @@ define ptr @LoadFileText(ptr noundef %0) local_unnamed_addr #1 { ; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable define void @UnloadFileText(ptr noundef captures(none) %0) local_unnamed_addr #13 { - tail call void @free(ptr noundef %0) #19 + tail call void @free(ptr noundef %0) #18 ret void } @@ -676,13 +676,13 @@ declare noundef i32 @fprintf(ptr noundef captures(none), ptr noundef readonly ca declare noundef i32 @vfprintf(ptr noundef captures(none), ptr noundef readonly captures(none), ptr noundef) local_unnamed_addr #7 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(ptr captures(none)) #17 +declare void @llvm.lifetime.start.p0(ptr captures(none)) #16 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(ptr captures(none)) #17 +declare void @llvm.lifetime.end.p0(ptr captures(none)) #16 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umin.i32(i32, i32) #18 +declare i32 @llvm.umin.i32(i32, i32) #17 attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: none, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -697,8 +697,8 @@ attributes #9 = { mustprogress nofree nounwind willreturn memory(inaccessiblemem attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #11 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #12 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #14 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #13 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #14 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #15 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #16 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #17 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } diff --git a/bench/redis/optimized/fpconv.ll b/bench/redis/optimized/fpconv.ll index c3ff14557b0..1481244d1df 100644 --- a/bench/redis/optimized/fpconv.ll +++ b/bench/redis/optimized/fpconv.ll @@ -21,7 +21,7 @@ define dso_local double @fpconv_strtod(ptr noundef %0, ptr noundef captures(none 7: ; preds = %2 %8 = tail call double @strtod(ptr noundef %0, ptr noundef %1) #11 - br label %43 + br label %42 .preheader: ; preds = %2, %valid_number_character.exit.thread.i %.0.i = phi ptr [ %14, %valid_number_character.exit.thread.i ], [ %0, %2 ] @@ -57,7 +57,7 @@ strtod_buffer_size.exit: ; preds = %valid_number_charac 19: ; preds = %strtod_buffer_size.exit store ptr %0, ptr %1, align 8, !tbaa !9 - br label %43 + br label %42 20: ; preds = %strtod_buffer_size.exit %21 = icmp sgt i32 %18, 31 @@ -92,7 +92,7 @@ strtod_buffer_size.exit: ; preds = %valid_number_charac store i8 %34, ptr %32, align 1, !tbaa !4 br label %35 -35: ; preds = %33, %29 +35:; preds = %33, %29 %36 = call double @strtod(ptr noundef nonnull %.024, ptr noundef nonnull %4) #11 %37 = load ptr, ptr %4, align 8, !tbaa !9 %38 = ptrtoint ptr %37 to i64 @@ -104,9 +104,9 @@ strtod_buffer_size.exit: ; preds = %valid_number_charac 42: ; preds = %35 call void @free(ptr noundef nonnull %.024) #11 - br label %43 + br label %42 -43: ; preds = %35, %42, %19, %7 +42: ; preds = %35, %42, %19, %7 %.0 = phi double [ %8, %7 ], [ 0.000000e+00, %19 ], [ %36, %42 ], [ %36, %35 ] call void @llvm.lifetime.end.p0(ptr nonnull %4) call void @llvm.lifetime.end.p0(ptr nonnull %3) diff --git a/bench/ruby/optimized/util.ll b/bench/ruby/optimized/util.ll index 336bf347619..a2bfa694f47 100644 --- a/bench/ruby/optimized/util.ll +++ b/bench/ruby/optimized/util.ll @@ -6335,7 +6335,7 @@ define hidden noundef ptr @ruby_hdtoa(double noundef %0, ptr noundef readonly ca ._crit_edge102: ; preds = %21 %.pre103 = bitcast double %.sroa.0.1 to i64 - br label %47 + br label %46 32: ; preds = %21 %33 = shl nuw nsw i32 %spec.store.select, 2 @@ -6363,16 +6363,16 @@ define hidden noundef ptr @ruby_hdtoa(double noundef %0, ptr noundef readonly ca store i32 %46, ptr %3, align 4, !tbaa !15 br label %47 -47: ; preds = %._crit_edge102, %32 +46: ; preds = %._crit_edge102, %32 %.pre-phi104 = phi i64 [ %.pre103, %._crit_edge102 ], [ %42, %32 ] store i8 49, ptr %31, align 1, !tbaa !7 - %48 = zext nneg i32 %28 to i64 - %49 = getelementptr i8, ptr %31, i64 %48 + %47 = zext nneg i32 %28 to i64 + %48 = getelementptr i8, ptr %31, i64 %47 %.08196 = getelementptr i8, ptr %31, i64 1 - %50 = icmp ult ptr %.08196, %49 - br i1 %50, label %.lr.ph.preheader, label %._crit_edge + %49 = icmp ult ptr %.08196, %48 + br i1 %49, label %.lr.ph.preheader, label %._crit_edge -.lr.ph.preheader: ; preds = %47 +.lr.ph.preheader: ; preds = %46 %.sroa.0.0.extract.trunc = trunc i64 %.pre-phi104 to i32 %.sroa.0.4.extract.shift47 = lshr i64 %.pre-phi104, 32 %.sroa.0.4.extract.trunc48 = trunc nuw i64 %.sroa.0.4.extract.shift47 to i32 @@ -6380,46 +6380,46 @@ define hidden noundef ptr @ruby_hdtoa(double noundef %0, ptr noundef readonly ca .lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph %.08199 = phi ptr [ %.081, %.lr.ph ], [ %.08196, %.lr.ph.preheader ] - %.07998 = phi i32 [ %57, %.lr.ph ], [ %.sroa.0.0.extract.trunc, %.lr.ph.preheader ] - %.08097 = phi i32 [ %56, %.lr.ph ], [ %.sroa.0.4.extract.trunc48, %.lr.ph.preheader ] - %51 = lshr i32 %.08097, 16 - %52 = and i32 %51, 15 - %53 = zext nneg i32 %52 to i64 - %54 = getelementptr i8, ptr %1, i64 %53 - %55 = load i8, ptr %54, align 1, !tbaa !7 - store i8 %55, ptr %.08199, align 1, !tbaa !7 - %56 = tail call i32 @llvm.fshl.i32(i32 %.08097, i32 %.07998, i32 4) - %57 = shl i32 %.07998, 4 + %.07998 = phi i32 [ %56, %.lr.ph ], [ %.sroa.0.0.extract.trunc, %.lr.ph.preheader ] + %.08097 = phi i32 [ %55, %.lr.ph ], [ %.sroa.0.4.extract.trunc48, %.lr.ph.preheader ] + %50 = lshr i32 %.08097, 16 + %51 = and i32 %50, 15 + %52 = zext nneg i32 %51 to i64 + %53 = getelementptr i8, ptr %1, i64 %52 + %54 = load i8, ptr %53, align 1, !tbaa !7 + store i8 %54, ptr %.08199, align 1, !tbaa !7 + %55 = tail call i32 @llvm.fshl.i32(i32 %.08097, i32 %.07998, i32 4) + %56 = shl i32 %.07998, 4 %.081 = getelementptr i8, ptr %.08199, i64 1 - %exitcond.not = icmp eq ptr %.081, %49 + %exitcond.not = icmp eq ptr %.081, %48 br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !83 -._crit_edge: ; preds = %.lr.ph, %47 - %58 = icmp slt i32 %spec.store.select, 0 - br i1 %58, label %.preheader, label %.loopexit +._crit_edge: ; preds = %.lr.ph, %46 + %57 = icmp slt i32 %spec.store.select, 0 + br i1 %57, label %.preheader, label %.loopexit .preheader: ; preds = %._crit_edge, %.preheader - %.1 = phi i32 [ %59, %.preheader ], [ 15, %._crit_edge ] - %59 = add i32 %.1, -1 - %60 = sext i32 %59 to i64 - %61 = getelementptr i8, ptr %31, i64 %60 - %62 = load i8, ptr %61, align 1, !tbaa !7 - %63 = icmp eq i8 %62, 48 - br i1 %63, label %.preheader, label %.loopexit, !llvm.loop !84 + %.1 = phi i32 [ %58, %.preheader ], [ 15, %._crit_edge ] + %58 = add i32 %.1, -1 + %59 = sext i32 %58 to i64 + %60 = getelementptr i8, ptr %31, i64 %59 + %61 = load i8, ptr %60, align 1, !tbaa !7 + %62 = icmp eq i8 %61, 48 + br i1 %62, label %.preheader, label %.loopexit, !llvm.loop !84 .loopexit: ; preds = %.preheader, %._crit_edge %.078 = phi i32 [ %spec.store.select, %._crit_edge ], [ %.1, %.preheader ] - %64 = sext i32 %.078 to i64 - %65 = getelementptr i8, ptr %31, i64 %64 - store i8 0, ptr %65, align 1, !tbaa !7 + %63 = sext i32 %.078 to i64 + %64 = getelementptr i8, ptr %31, i64 %63 + store i8 0, ptr %64, align 1, !tbaa !7 %.not87 = icmp eq ptr %5, null - br i1 %.not87, label %nrv_alloc.exit, label %66 + br i1 %.not87, label %nrv_alloc.exit, label %65 -66: ; preds = %.loopexit - store ptr %65, ptr %5, align 8, !tbaa !19 +65: ; preds = %.loopexit + store ptr %64, ptr %5, align 8, !tbaa !19 br label %nrv_alloc.exit -nrv_alloc.exit: ; preds = %20, %.lr.ph.i88, %11, %._crit_edge.i, %.loopexit, %66, %14 +nrv_alloc.exit: ; preds = %20, %.lr.ph.i88, %11, %._crit_edge.i, %.loopexit, %65, %14 %.0 = phi ptr [ %15, %14 ], [ %31, %66 ], [ %31, %.loopexit ], [ %10, %._crit_edge.i ], [ %10, %11 ], [ %18, %.lr.ph.i88 ], [ %18, %20 ] ret ptr %.0 } diff --git a/bench/sdl/optimized/SDL_malloc.ll b/bench/sdl/optimized/SDL_malloc.ll index 8f4bbcb679f..ca5a2eb978d 100644 --- a/bench/sdl/optimized/SDL_malloc.ll +++ b/bench/sdl/optimized/SDL_malloc.ll @@ -52,25 +52,25 @@ define hidden void @SDL_GetOriginalMemoryFunctions_REAL(ptr noundef writeonly ca ; Function Attrs: mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite, errnomem: write) uwtable define internal noalias noundef ptr @real_malloc(i64 noundef %0) #1 { - %2 = tail call noalias ptr @malloc(i64 noundef %0) #15 + %2 = tail call noalias ptr @malloc(i64 noundef %0) #14 ret ptr %2 } ; Function Attrs: mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite, errnomem: write) uwtable define internal noalias noundef ptr @real_calloc(i64 noundef %0, i64 noundef %1) #1 { - %3 = tail call noalias ptr @calloc(i64 noundef %0, i64 noundef %1) #16 + %3 = tail call noalias ptr @calloc(i64 noundef %0, i64 noundef %1) #15 ret ptr %3 } ; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable define internal noalias noundef ptr @real_realloc(ptr noundef captures(none) %0, i64 noundef %1) #2 { - %3 = tail call ptr @realloc(ptr noundef %0, i64 noundef %1) #17 + %3 = tail call ptr @realloc(ptr noundef %0, i64 noundef %1) #16 ret ptr %3 } ; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable define internal void @real_free(ptr noundef captures(none) %0) #3 { - tail call void @free(ptr noundef %0) #18 + tail call void @free(ptr noundef %0) #17 ret void } @@ -121,7 +121,7 @@ define hidden zeroext i1 @SDL_SetMemoryFunctions_REAL(ptr noundef %0, ptr nounde br i1 %.not, label %5, label %7 5: ; preds = %4 - %6 = tail call zeroext i1 (ptr, ...) @SDL_SetError_REAL(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #18 + %6 = tail call zeroext i1 (ptr, ...) @SDL_SetError_REAL(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #17 br label %17 7: ; preds = %4 @@ -129,7 +129,7 @@ define hidden zeroext i1 @SDL_SetMemoryFunctions_REAL(ptr noundef %0, ptr nounde br i1 %.not13, label %8, label %10 8: ; preds = %7 - %9 = tail call zeroext i1 (ptr, ...) @SDL_SetError_REAL(ptr noundef nonnull @.str, ptr noundef nonnull @.str.2) #18 + %9 = tail call zeroext i1 (ptr, ...) @SDL_SetError_REAL(ptr noundef nonnull @.str, ptr noundef nonnull @.str.2) #17 br label %17 10: ; preds = %7 @@ -137,7 +137,7 @@ define hidden zeroext i1 @SDL_SetMemoryFunctions_REAL(ptr noundef %0, ptr nounde br i1 %.not14, label %11, label %13 11: ; preds = %10 - %12 = tail call zeroext i1 (ptr, ...) @SDL_SetError_REAL(ptr noundef nonnull @.str, ptr noundef nonnull @.str.3) #18 + %12 = tail call zeroext i1 (ptr, ...) @SDL_SetError_REAL(ptr noundef nonnull @.str, ptr noundef nonnull @.str.3) #17 br label %17 13: ; preds = %10 @@ -145,7 +145,7 @@ define hidden zeroext i1 @SDL_SetMemoryFunctions_REAL(ptr noundef %0, ptr nounde br i1 %.not15, label %14, label %16 14: ; preds = %13 - %15 = tail call zeroext i1 (ptr, ...) @SDL_SetError_REAL(ptr noundef nonnull @.str, ptr noundef nonnull @.str.4) #18 + %15 = tail call zeroext i1 (ptr, ...) @SDL_SetError_REAL(ptr noundef nonnull @.str, ptr noundef nonnull @.str.4) #17 br label %17 16: ; preds = %13 @@ -160,7 +160,7 @@ define hidden zeroext i1 @SDL_SetMemoryFunctions_REAL(ptr noundef %0, ptr nounde ret i1 %.0 } -declare zeroext i1 @SDL_SetError_REAL(ptr noundef, ...) local_unnamed_addr #6 +declare zeroext i1 @SDL_SetError_REAL(ptr noundef, ...) local_unnamed_addr #5 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable define hidden noundef i32 @SDL_GetNumAllocations_REAL() local_unnamed_addr #7 { @@ -171,19 +171,19 @@ define hidden noundef i32 @SDL_GetNumAllocations_REAL() local_unnamed_addr #7 { define hidden noalias ptr @SDL_malloc_REAL(i64 noundef %0) local_unnamed_addr #5 { %spec.store.select = tail call i64 @llvm.umax.i64(i64 %0, i64 1) %2 = load ptr, ptr @s_mem.0, align 8 - %3 = tail call ptr %2(i64 noundef %spec.store.select) #18 + %3 = tail call ptr %2(i64 noundef %spec.store.select) #17 %.not = icmp eq ptr %3, null br i1 %.not, label %4, label %6 4: ; preds = %1 - %5 = tail call zeroext i1 @SDL_OutOfMemory_REAL() #18 + %5 = tail call zeroext i1 @SDL_OutOfMemory_REAL() #17 br label %6 6: ; preds = %1, %4 ret ptr %3 } -declare zeroext i1 @SDL_OutOfMemory_REAL() local_unnamed_addr #6 +declare zeroext i1 @SDL_OutOfMemory_REAL() local_unnamed_addr #5 ; Function Attrs: nounwind allocsize(0,1) uwtable define hidden noalias ptr @SDL_calloc_REAL(i64 noundef %0, i64 noundef %1) local_unnamed_addr #8 { @@ -193,12 +193,12 @@ define hidden noalias ptr @SDL_calloc_REAL(i64 noundef %0, i64 noundef %1) local %spec.select = select i1 %or.cond, i64 %1, i64 1 %spec.select9 = select i1 %or.cond, i64 %0, i64 1 %5 = load ptr, ptr @s_mem.1, align 8 - %6 = tail call ptr %5(i64 noundef %spec.select9, i64 noundef %spec.select) #18 + %6 = tail call ptr %5(i64 noundef %spec.select9, i64 noundef %spec.select) #17 %.not = icmp eq ptr %6, null br i1 %.not, label %7, label %9 7: ; preds = %2 - %8 = tail call zeroext i1 @SDL_OutOfMemory_REAL() #18 + %8 = tail call zeroext i1 @SDL_OutOfMemory_REAL() #17 br label %9 9: ; preds = %2, %7 @@ -209,12 +209,12 @@ define hidden noalias ptr @SDL_calloc_REAL(i64 noundef %0, i64 noundef %1) local define hidden ptr @SDL_realloc_REAL(ptr noundef %0, i64 noundef %1) local_unnamed_addr #9 { %spec.store.select = tail call i64 @llvm.umax.i64(i64 %1, i64 1) %3 = load ptr, ptr @s_mem.2, align 8 - %4 = tail call ptr %3(ptr noundef %0, i64 noundef %spec.store.select) #18 + %4 = tail call ptr %3(ptr noundef %0, i64 noundef %spec.store.select) #17 %.not = icmp eq ptr %4, null br i1 %.not, label %5, label %7 5: ; preds = %2 - %6 = tail call zeroext i1 @SDL_OutOfMemory_REAL() #18 + %6 = tail call zeroext i1 @SDL_OutOfMemory_REAL() #17 br label %7 7: ; preds = %5, %2 @@ -228,7 +228,7 @@ define hidden void @SDL_free_REAL(ptr noundef %0) local_unnamed_addr #5 { 2: ; preds = %1 %3 = load ptr, ptr @s_mem.3, align 8 - tail call void %3(ptr noundef nonnull %0) #18 + tail call void %3(ptr noundef nonnull %0) #17 br label %4 4: ; preds = %1, %2 @@ -236,33 +236,33 @@ define hidden void @SDL_free_REAL(ptr noundef %0) local_unnamed_addr #5 { } ; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) -declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #10 +declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #9 ; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) -declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #11 +declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #10 ; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) -declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #12 +declare noalias noundef ptr @realloc(ptr allocptr noundef captures(none), i64 noundef) local_unnamed_addr #11 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) -declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #13 +declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #12 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umax.i64(i64, i64) #14 +declare i64 @llvm.umax.i64(i64, i64) #13 attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress nofree nounwind willreturn memory(inaccessiblemem: readwrite, errnomem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, argmem: readwrite, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, argmem: write, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { nounwind allocsize(0,1) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { nounwind allocsize(1) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #12 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite, errnomem: write) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #13 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #14 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #15 = { nounwind allocsize(0) } diff --git a/bench/sundials/optimized/arkode_lsrkstep.ll b/bench/sundials/optimized/arkode_lsrkstep.ll index 2b041c52e15..534b1807add 100644 --- a/bench/sundials/optimized/arkode_lsrkstep.ll +++ b/bench/sundials/optimized/arkode_lsrkstep.ll @@ -625,13 +625,13 @@ lsrkStep_AccessStepMem.exit: ; preds = %3 store i64 %41, ptr %39, align 8, !tbaa !22 br label %42 -42: ; preds = %36, %26 +42:; preds = %36, %26 %43 = getelementptr inbounds nuw i8, ptr %5, i64 152 %44 = load ptr, ptr %43, align 8, !tbaa !23 %45 = icmp eq ptr %44, null br i1 %45, label %46, label %58 -46: ; preds = %42 +46:; preds = %42 %47 = getelementptr inbounds nuw i8, ptr %5, i64 160 %48 = load i32, ptr %47, align 8, !tbaa !21 %49 = sext i32 %48 to i64 @@ -640,7 +640,7 @@ lsrkStep_AccessStepMem.exit: ; preds = %3 %51 = icmp eq ptr %50, null br i1 %51, label %60, label %52 -52: ; preds = %46 +52:; preds = %46 %53 = load i32, ptr %47, align 8, !tbaa !21 %54 = sext i32 %53 to i64 %55 = getelementptr inbounds nuw i8, ptr %0, i64 880 diff --git a/bench/sundials/optimized/sundials_hashmap.ll b/bench/sundials/optimized/sundials_hashmap.ll index 25f271e547e..84c651afb9a 100644 --- a/bench/sundials/optimized/sundials_hashmap.ll +++ b/bench/sundials/optimized/sundials_hashmap.ll @@ -367,7 +367,7 @@ define range(i32 -9999, 1) i32 @SUNHashMap_Sort(ptr noundef readonly captures(ad %4 = icmp ne ptr %0, null %5 = icmp ne ptr %2, null %or.cond = and i1 %4, %5 - br i1 %or.cond, label %6, label %21 + br i1 %or.cond, label %6, label %19 6: ; preds = %3 %7 = getelementptr inbounds nuw i8, ptr %0, i64 4 @@ -377,7 +377,7 @@ define range(i32 -9999, 1) i32 @SUNHashMap_Sort(ptr noundef readonly captures(ad %11 = tail call noalias ptr @malloc(i64 noundef %10) #9 store ptr %11, ptr %1, align 8, !tbaa !22 %.not = icmp eq ptr %11, null - br i1 %.not, label %21, label %.preheader + br i1 %.not, label %19, label %.preheader .preheader: ; preds = %6 %12 = load i32, ptr %7, align 4, !tbaa !12 @@ -385,27 +385,27 @@ define range(i32 -9999, 1) i32 @SUNHashMap_Sort(ptr noundef readonly captures(ad br i1 %13, label %.lr.ph, label %._crit_edge .lr.ph: ; preds = %.preheader - %14 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %15 = load ptr, ptr %14, align 8, !tbaa !13 + %13 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %14 = load ptr, ptr %13, align 8, !tbaa !13 %wide.trip.count = zext nneg i32 %12 to i64 - br label %16 + br label %15 -16: ; preds = %.lr.ph, %16 +15: ; preds = %.lr.ph, %15 %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %16 ] - %17 = getelementptr inbounds nuw ptr, ptr %15, i64 %indvars.iv - %18 = load ptr, ptr %17, align 8, !tbaa !14 - %19 = getelementptr inbounds nuw ptr, ptr %11, i64 %indvars.iv - store ptr %18, ptr %19, align 8, !tbaa !14 + %16 = getelementptr inbounds nuw ptr, ptr %14, i64 %indvars.iv + %17 = load ptr, ptr %16, align 8, !tbaa !14 + %18 = getelementptr inbounds nuw ptr, ptr %11, i64 %indvars.iv + store ptr %17, ptr %18, align 8, !tbaa !14 %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 %16 + br i1 %exitcond.not, label %._crit_edge, label %15 -._crit_edge: ; preds = %16, %.preheader +._crit_edge: ; preds = %15, %.preheader %20 = sext i32 %12 to i64 tail call void @qsort(ptr noundef nonnull %11, i64 noundef %20, i64 noundef 8, ptr noundef nonnull %2) #10 br label %21 -21: ; preds = %6, %3, %._crit_edge +19: ; preds = %6, %3, %._crit_edge %.016 = phi i32 [ 0, %._crit_edge ], [ -9999, %3 ], [ -9988, %6 ] ret i32 %.016 } diff --git a/bench/sundials/optimized/sundials_nvector_senswrapper.ll b/bench/sundials/optimized/sundials_nvector_senswrapper.ll index 19cbb16e5d7..8bd298c0924 100644 --- a/bench/sundials/optimized/sundials_nvector_senswrapper.ll +++ b/bench/sundials/optimized/sundials_nvector_senswrapper.ll @@ -143,19 +143,19 @@ define noundef ptr @N_VClone_SensWrapper(ptr noundef readonly captures(address_i ; Function Attrs: mustprogress nounwind willreturn memory(readwrite, argmem: read) uwtable define noalias noundef ptr @N_VCloneEmpty_SensWrapper(ptr noundef readonly captures(address_is_null) %0) #2 { %2 = icmp eq ptr %0, null - br i1 %2, label %141, label %3 + br i1 %2, label %140, label %3 3: ; preds = %1 %4 = load ptr, ptr %0, align 8, !tbaa !39 %5 = getelementptr inbounds nuw i8, ptr %4, i64 8 %6 = load i32, ptr %5, align 8, !tbaa !33 %7 = icmp slt i32 %6, 1 - br i1 %7, label %141, label %8 + br i1 %7, label %140, label %8 8: ; preds = %3 %9 = tail call noalias dereferenceable_or_null(24) ptr @malloc(i64 noundef 24) #8 %10 = icmp eq ptr %9, null - br i1 %10, label %141, label %11 + br i1 %10, label %140, label %11 11: ; preds = %8 %12 = tail call noalias dereferenceable_or_null(448) ptr @malloc(i64 noundef 448) #8 @@ -164,7 +164,7 @@ define noalias noundef ptr @N_VCloneEmpty_SensWrapper(ptr noundef readonly captu 14: ; preds = %11 tail call void @free(ptr noundef nonnull %9) #7 - br label %141 + br label %140 15: ; preds = %11 %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -318,7 +318,7 @@ define noalias noundef ptr @N_VCloneEmpty_SensWrapper(ptr noundef readonly captu 126: ; preds = %15 tail call void @free(ptr noundef nonnull %12) #7 tail call void @free(ptr noundef nonnull %9) #7 - br label %141 + br label %140 127: ; preds = %15 %128 = load i32, ptr %5, align 8, !tbaa !33 @@ -331,7 +331,7 @@ define noalias noundef ptr @N_VCloneEmpty_SensWrapper(ptr noundef readonly captu %133 = tail call noalias ptr @malloc(i64 noundef %132) #8 store ptr %133, ptr %124, align 8, !tbaa !38 %134 = icmp eq ptr %133, null - br i1 %134, label %139, label %.preheader + br i1 %134, label %138, label %.preheader .preheader: ; preds = %127 %135 = load i32, ptr %5, align 8, !tbaa !33 @@ -339,24 +339,24 @@ define noalias noundef ptr @N_VCloneEmpty_SensWrapper(ptr noundef readonly captu br i1 %136, label %.lr.ph.preheader, label %._crit_edge .lr.ph.preheader: ; preds = %.preheader - %137 = zext nneg i32 %135 to i64 - %138 = shl nuw nsw i64 %137, 3 - tail call void @llvm.memset.p0.i64(ptr nonnull align 8 %133, i8 0, i64 %138, i1 false), !tbaa !40 + %136 = zext nneg i32 %135 to i64 + %137 = shl nuw nsw i64 %136, 3 + tail call void @llvm.memset.p0.i64(ptr nonnull align 8 %133, i8 0, i64 %137, i1 false), !tbaa !40 br label %._crit_edge -139: ; preds = %127 +138: ; preds = %127 tail call void @free(ptr noundef nonnull %12) #7 tail call void @free(ptr noundef nonnull %9) #7 tail call void @free(ptr noundef nonnull %124) #7 - br label %141 + br label %140 ._crit_edge: ; preds = %.lr.ph.preheader, %.preheader store ptr %124, ptr %9, align 8, !tbaa !39 - %140 = getelementptr inbounds nuw i8, ptr %9, i64 8 - store ptr %12, ptr %140, align 8, !tbaa !3 - br label %141 + %139 = getelementptr inbounds nuw i8, ptr %9, i64 8 + store ptr %12, ptr %139, align 8, !tbaa !3 + br label %140 -141: ; preds = %8, %3, %1, %._crit_edge, %139, %126, %14 +140: ; preds = %8, %3, %1, %._crit_edge, %138, %126, %14 %.0100 = phi ptr [ null, %14 ], [ null, %126 ], [ null, %139 ], [ %9, %._crit_edge ], [ null, %1 ], [ null, %3 ], [ null, %8 ] ret ptr %.0100 } diff --git a/bench/velox/optimized/CompactRowSerializer.ll b/bench/velox/optimized/CompactRowSerializer.ll index 058e2270f0f..3463cad6d81 100644 --- a/bench/velox/optimized/CompactRowSerializer.ll +++ b/bench/velox/optimized/CompactRowSerializer.ll @@ -1283,36 +1283,36 @@ if.then.i: ; preds = %_ZNSt10shared_ptrIN unreachable for.body.i: ; preds = %for.cond.preheader.i, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i - %19 = phi i32 [ %24, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i ], [ %17, %for.cond.preheader.i ] + %.pr16.i = phi i32 [ %.pr.i, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i ], [ %17, %for.cond.preheader.i ] %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i ], [ 0, %for.cond.preheader.i ] - %20 = load ptr, ptr %scratch, align 8 - %arrayidx.i = getelementptr inbounds nuw %"class.facebook::velox::raw_vector", ptr %20, i64 %indvars.iv.i - %21 = load ptr, ptr %arrayidx.i, align 8 - %tobool.not.i.i.i = icmp eq ptr %21, null + %19 = load ptr, ptr %scratch, align 8 + %arrayidx.i = getelementptr inbounds nuw %"class.facebook::velox::raw_vector", ptr %19, i64 %indvars.iv.i + %20 = load ptr, ptr %arrayidx.i, align 8 + %tobool.not.i.i.i = icmp eq ptr %20, null br i1 %tobool.not.i.i.i, label %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i, label %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i _ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i: ; preds = %for.body.i - %22 = ptrtoint ptr %21 to i64 - %add.i.i.i.i.i8 = add i64 %22, -32 - %23 = inttoptr i64 %add.i.i.i.i.i8 to ptr - call void @free(ptr noundef %23) #23 - %.pre.i = load i32, ptr %fill_.i, align 8 + %21 = ptrtoint ptr %20 to i64 + %add.i.i.i.i.i8 = add i64 %21, -32 + %22 = inttoptr i64 %add.i.i.i.i.i8 to ptr + call void @free(ptr noundef %22) #23 + %.pr.pre.i = load i32, ptr %fill_.i, align 8 br label %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i _ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i: ; preds = %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i, %for.body.i - %24 = phi i32 [ %19, %for.body.i ], [ %.pre.i, %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i ] + %.pr.i = phi i32 [ %.pr16.i, %for.body.i ], [ %.pr.pre.i, %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i ] %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %25 = sext i32 %24 to i64 - %cmp3.i = icmp slt i64 %indvars.iv.next.i, %25 + %23 = sext i32 %.pr.i to i64 + %cmp3.i = icmp slt i64 %indvars.iv.next.i, %23 br i1 %cmp3.i, label %for.body.i, label %for.end.loopexit.i, !llvm.loop !24 for.end.loopexit.i: ; preds = %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i - %.pre16.i = load i32, ptr %capacity_.i, align 4 + %.pre.i = load i32, ptr %capacity_.i, align 4 br label %for.end.i for.end.i: ; preds = %for.end.loopexit.i, %for.cond.preheader.i - %26 = phi i32 [ %24, %for.end.loopexit.i ], [ %17, %for.cond.preheader.i ] - %27 = phi i32 [ %.pre16.i, %for.end.loopexit.i ], [ %18, %for.cond.preheader.i ] + %24 = phi i32 [ %.pr.i, %for.end.loopexit.i ], [ %17, %for.cond.preheader.i ] + %.lcssa.i = phi i32 [ %.pr.pre.i, %for.end.loopexit.i ], [ %18, %for.cond.preheader.i ] %cmp5.i = icmp slt i32 %27, 0 %.pre = load ptr, ptr %scratch, align 8 br i1 %cmp5.i, label %if.then6.i, label %_ZN8facebook5velox7ScratchD2Ev.exit @@ -1338,23 +1338,23 @@ if.end14.i: ; preds = %if.then9.i, %if.the call void @free(ptr noundef %.pre) #23 store ptr %call.i, ptr %scratch, align 8 store i32 0, ptr %capacity_.i, align 4 - %.pre18.i = load i32, ptr %fill_.i, align 8 + %.pre19.i = load i32, ptr %fill_.i, align 8 br label %_ZN8facebook5velox7ScratchD2Ev.exit _ZN8facebook5velox7ScratchD2Ev.exit: ; preds = %if.end14.i, %for.end.i - %28 = phi ptr [ %call.i, %if.end14.i ], [ %.pre, %for.end.i ] - %29 = phi i32 [ %.pre18.i, %if.end14.i ], [ %26, %for.end.i ] - %.sroa.speculated.i = call i32 @llvm.smin.i32(i32 %29, i32 0) + %25 = phi ptr [ %call.i, %if.end14.i ], [ %.pre, %for.end.i ] + %26 = phi i32 [ %.pre19.i, %if.end14.i ], [ %26, %for.end.i ] + %.sroa.speculated.i = call i32 @llvm.smin.i32(i32 %26, i32 0) store i32 %.sroa.speculated.i, ptr %fill_.i, align 8 - call void @free(ptr noundef %28) #23 + call void @free(ptr noundef %25) #23 ret void lpad: ; preds = %_ZNSt10shared_ptrIN8facebook5velox10BaseVectorEEC2ERKS3_.exit - %30 = landingpad { ptr, i32 } + %27 = landingpad { ptr, i32 } cleanup call void @_ZNSt10shared_ptrIN8facebook5velox10BaseVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp) #23 call void @_ZN8facebook5velox7ScratchD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %scratch) #23 - resume { ptr, i32 } %30 + resume { ptr, i32 } %27 } ; Function Attrs: mustprogress nounwind uwtable @@ -1630,36 +1630,36 @@ if.then: ; preds = %entry unreachable for.body: ; preds = %for.body.preheader, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit - %3 = phi i32 [ %0, %for.body.preheader ], [ %8, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit ] + %.pr16 = phi i32 [ %0, %for.body.preheader ], [ %.pr, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit ] %indvars.iv = phi i64 [ %2, %for.body.preheader ], [ %indvars.iv.next, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit ] - %4 = load ptr, ptr %this, align 8 - %arrayidx = getelementptr inbounds %"class.facebook::velox::raw_vector", ptr %4, i64 %indvars.iv - %5 = load ptr, ptr %arrayidx, align 8 - %tobool.not.i.i = icmp eq ptr %5, null + %3 = load ptr, ptr %this, align 8 + %arrayidx = getelementptr inbounds %"class.facebook::velox::raw_vector", ptr %3, i64 %indvars.iv + %4 = load ptr, ptr %arrayidx, align 8 + %tobool.not.i.i = icmp eq ptr %4, null br i1 %tobool.not.i.i, label %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit, label %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i _ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i: ; preds = %for.body - %6 = ptrtoint ptr %5 to i64 - %add.i.i.i.i = add i64 %6, -32 - %7 = inttoptr i64 %add.i.i.i.i to ptr - tail call void @free(ptr noundef %7) #23 - %.pre = load i32, ptr %fill_, align 8 + %5 = ptrtoint ptr %4 to i64 + %add.i.i.i.i = add i64 %5, -32 + %6 = inttoptr i64 %add.i.i.i.i to ptr + tail call void @free(ptr noundef %6) #23 + %.pr.pre = load i32, ptr %fill_, align 8 br label %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit _ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit: ; preds = %for.body, %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i - %8 = phi i32 [ %3, %for.body ], [ %.pre, %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i ] + %.pr = phi i32 [ %.pr16, %for.body ], [ %.pr.pre, %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i ] %indvars.iv.next = add nsw i64 %indvars.iv, 1 - %9 = sext i32 %8 to i64 - %cmp3 = icmp slt i64 %indvars.iv.next, %9 + %7 = sext i32 %.pr to i64 + %cmp3 = icmp slt i64 %indvars.iv.next, %7 br i1 %cmp3, label %for.body, label %for.end.loopexit, !llvm.loop !24 for.end.loopexit: ; preds = %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit - %.pre16 = load i32, ptr %capacity_, align 4 + %.pre = load i32, ptr %capacity_, align 4 br label %for.end for.end: ; preds = %for.end.loopexit, %for.cond.preheader - %10 = phi i32 [ %8, %for.end.loopexit ], [ %0, %for.cond.preheader ] - %11 = phi i32 [ %.pre16, %for.end.loopexit ], [ %1, %for.cond.preheader ] + %8 = phi i32 [ %8, %for.end.loopexit ], [ %0, %for.cond.preheader ] + %.lcssa = phi i32 [ %.pre, %for.end.loopexit ], [ %1, %for.cond.preheader ] %cmp5 = icmp sgt i32 %newCapacity, %11 br i1 %cmp5, label %if.then6, label %if.end22 @@ -1667,33 +1667,33 @@ if.then6: ; preds = %for.end %conv = sext i32 %newCapacity to i64 %mul = shl nsw i64 %conv, 4 %call = tail call noalias ptr @malloc(i64 noundef %mul) #26 - %12 = load i32, ptr %fill_, align 8 - %cmp8 = icmp sgt i32 %12, 0 + %9 = load i32, ptr %fill_, align 8 + %cmp8 = icmp sgt i32 %9, 0 %.pre17 = load ptr, ptr %this, align 8 br i1 %cmp8, label %if.then9, label %if.end14 if.then9: ; preds = %if.then6 - %conv12 = zext nneg i32 %12 to i64 + %conv12 = zext nneg i32 %9 to i64 %mul13 = shl nuw nsw i64 %conv12, 4 tail call void @llvm.memcpy.p0.p0.i64(ptr align 8 %call, ptr align 8 %.pre17, i64 %mul13, i1 false) br label %if.end14 if.end14: ; preds = %if.then9, %if.then6 - %idx.ext = sext i32 %12 to i64 + %idx.ext = sext i32 %9 to i64 %add.ptr = getelementptr inbounds %"class.facebook::velox::raw_vector", ptr %call, i64 %idx.ext - %sub = sub nsw i32 %newCapacity, %12 + %sub = sub nsw i32 %newCapacity, %9 %conv17 = sext i32 %sub to i64 %mul18 = shl nsw i64 %conv17, 4 tail call void @llvm.memset.p0.i64(ptr align 8 %add.ptr, i8 0, i64 %mul18, i1 false) tail call void @free(ptr noundef %.pre17) #23 store ptr %call, ptr %this, align 8 store i32 %newCapacity, ptr %capacity_, align 4 - %.pre18 = load i32, ptr %fill_, align 8 + %.pre19 = load i32, ptr %fill_, align 8 br label %if.end22 if.end22: ; preds = %if.end14, %for.end - %13 = phi i32 [ %.pre18, %if.end14 ], [ %10, %for.end ] - %.sroa.speculated = tail call i32 @llvm.smin.i32(i32 %newCapacity, i32 %13) + %9 = phi i32 [ %.pre19, %if.end14 ], [ %.pr, %for.end ] + %.sroa.speculated = tail call i32 @llvm.smin.i32(i32 %newCapacity, i32 %9) store i32 %.sroa.speculated, ptr %fill_, align 8 ret void } @@ -2463,77 +2463,77 @@ if.then.i: ; preds = %invoke.cont unreachable for.body.i: ; preds = %for.cond.preheader.i, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i - %3 = phi i32 [ %8, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i ], [ %1, %for.cond.preheader.i ] + %.pr16.i = phi i32 [ %.pr.i, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i ], [ %1, %for.cond.preheader.i ] %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i ], [ 0, %for.cond.preheader.i ] - %4 = load ptr, ptr %scratch, align 8 - %arrayidx.i = getelementptr inbounds nuw %"class.facebook::velox::raw_vector", ptr %4, i64 %indvars.iv.i - %5 = load ptr, ptr %arrayidx.i, align 8 - %tobool.not.i.i.i = icmp eq ptr %5, null + %3 = load ptr, ptr %scratch, align 8 + %arrayidx.i = getelementptr inbounds nuw %"class.facebook::velox::raw_vector", ptr %3, i64 %indvars.iv.i + %4 = load ptr, ptr %arrayidx.i, align 8 + %tobool.not.i.i.i = icmp eq ptr %4, null br i1 %tobool.not.i.i.i, label %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i, label %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i _ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i: ; preds = %for.body.i - %6 = ptrtoint ptr %5 to i64 - %add.i.i.i.i.i = add i64 %6, -32 - %7 = inttoptr i64 %add.i.i.i.i.i to ptr - call void @free(ptr noundef %7) #23 - %.pre.i = load i32, ptr %fill_.i, align 8 + %5 = ptrtoint ptr %4 to i64 + %add.i.i.i.i.i = add i64 %5, -32 + %6 = inttoptr i64 %add.i.i.i.i.i to ptr + call void @free(ptr noundef %6) #23 + %.pr.pre.i = load i32, ptr %fill_.i, align 8 br label %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i _ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i: ; preds = %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i, %for.body.i - %8 = phi i32 [ %3, %for.body.i ], [ %.pre.i, %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i ] + %.pr.i = phi i32 [ %.pr16.i, %for.body.i ], [ %.pr.pre.i, %_ZN8facebook5velox10raw_vectorIcE8freeDataEPc.exit.i.i.i ] %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %9 = sext i32 %8 to i64 - %cmp3.i = icmp slt i64 %indvars.iv.next.i, %9 + %7 = sext i32 %.pr.i to i64 + %cmp3.i = icmp slt i64 %indvars.iv.next.i, %7 br i1 %cmp3.i, label %for.body.i, label %for.end.loopexit.i, !llvm.loop !24 for.end.loopexit.i: ; preds = %_ZSt10destroy_atIN8facebook5velox10raw_vectorIcEEEvPT_.exit.i - %.pre16.i = load i32, ptr %capacity_.i, align 4 + %.pre.i = load i32, ptr %capacity_.i, align 4 br label %for.end.i for.end.i: ; preds = %for.end.loopexit.i, %for.cond.preheader.i - %10 = phi i32 [ %8, %for.end.loopexit.i ], [ %1, %for.cond.preheader.i ] - %11 = phi i32 [ %.pre16.i, %for.end.loopexit.i ], [ %2, %for.cond.preheader.i ] + %8 = phi i32 [ %.pr.i, %for.end.loopexit.i ], [ %1, %for.cond.preheader.i ] + %.lcssa.i = phi i32 [ %.pr.pre.i, %for.end.loopexit.i ], [ %2, %for.cond.preheader.i ] %cmp5.i = icmp slt i32 %11, 0 %.pre = load ptr, ptr %scratch, align 8 br i1 %cmp5.i, label %if.then6.i, label %_ZN8facebook5velox7ScratchD2Ev.exit if.then6.i: ; preds = %for.end.i %call.i = call noalias ptr @malloc(i64 noundef 0) #26 - %cmp8.i = icmp sgt i32 %10, 0 + %cmp8.i = icmp sgt i32 %.pr.i, 0 br i1 %cmp8.i, label %if.then9.i, label %if.end14.i if.then9.i: ; preds = %if.then6.i - %conv12.i = zext nneg i32 %10 to i64 + %conv12.i = zext nneg i32 %.pr.i to i64 %mul13.i = shl nuw nsw i64 %conv12.i, 4 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %call.i, ptr align 8 %.pre, i64 %mul13.i, i1 false) br label %if.end14.i if.end14.i: ; preds = %if.then9.i, %if.then6.i - %idx.ext.i = sext i32 %10 to i64 + %idx.ext.i = sext i32 %.pr.i to i64 %add.ptr.i = getelementptr inbounds %"class.facebook::velox::raw_vector", ptr %call.i, i64 %idx.ext.i - %sub.i = sub nsw i32 0, %10 + %sub.i = sub nsw i32 0, %.pr.i %conv17.i = sext i32 %sub.i to i64 %mul18.i = shl nsw i64 %conv17.i, 4 call void @llvm.memset.p0.i64(ptr align 8 %add.ptr.i, i8 0, i64 %mul18.i, i1 false) call void @free(ptr noundef %.pre) #23 store ptr %call.i, ptr %scratch, align 8 store i32 0, ptr %capacity_.i, align 4 - %.pre18.i = load i32, ptr %fill_.i, align 8 + %.pre19.i = load i32, ptr %fill_.i, align 8 br label %_ZN8facebook5velox7ScratchD2Ev.exit _ZN8facebook5velox7ScratchD2Ev.exit: ; preds = %if.end14.i, %for.end.i - %12 = phi ptr [ %call.i, %if.end14.i ], [ %.pre, %for.end.i ] - %13 = phi i32 [ %.pre18.i, %if.end14.i ], [ %10, %for.end.i ] - %.sroa.speculated.i = call i32 @llvm.smin.i32(i32 %13, i32 0) + %9 = phi ptr [ %call.i, %if.end14.i ], [ %.pre, %for.end.i ] + %10 = phi i32 [ %.pre19.i, %if.end14.i ], [ %.pr.i, %for.end.i ] + %.sroa.speculated.i = call i32 @llvm.smin.i32(i32 %10, i32 0) store i32 %.sroa.speculated.i, ptr %fill_.i, align 8 - call void @free(ptr noundef %12) #23 + call void @free(ptr noundef %9) #23 ret void lpad: ; preds = %entry - %14 = landingpad { ptr, i32 } + %11 = landingpad { ptr, i32 } cleanup call void @_ZN8facebook5velox7ScratchD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %scratch) #23 - resume { ptr, i32 } %14 + resume { ptr, i32 } %11 } ; Function Attrs: mustprogress nounwind uwtable diff --git a/bench/zlib/optimized/gzwrite.ll b/bench/zlib/optimized/gzwrite.ll index 37579e68523..81c2e4efe45 100644 --- a/bench/zlib/optimized/gzwrite.ll +++ b/bench/zlib/optimized/gzwrite.ll @@ -676,7 +676,7 @@ define internal fastcc range(i32 -1, 1) i32 @gz_init(ptr noundef nonnull initial 10: ; preds = %1 tail call void @gz_error(ptr noundef nonnull %0, i32 noundef -4, ptr noundef nonnull @.str.3) #14 - br label %40 + br label %39 11: ; preds = %1 %12 = getelementptr inbounds nuw i8, ptr %0, i64 64 @@ -686,11 +686,11 @@ define internal fastcc range(i32 -1, 1) i32 @gz_init(ptr noundef nonnull initial br i1 %.not, label %16, label %.thread .thread: ; preds = %11 - %15 = getelementptr inbounds nuw i8, ptr %0, i64 40 - store i32 %14, ptr %15, align 8, !tbaa !15 - br label %40 + %14 = getelementptr inbounds nuw i8, ptr %0, i64 40 + store i32 %14, ptr %14, align 8, !tbaa !15 + br label %39 -16: ; preds = %11 +20: ; preds = %11 %17 = zext i32 %14 to i64 %18 = tail call noalias ptr @malloc(i64 noundef %17) #16 %19 = getelementptr inbounds nuw i8, ptr %0, i64 56 @@ -701,47 +701,47 @@ define internal fastcc range(i32 -1, 1) i32 @gz_init(ptr noundef nonnull initial 21: ; preds = %16 tail call void @free(ptr noundef nonnull %7) #14 tail call void @gz_error(ptr noundef nonnull %0, i32 noundef -4, ptr noundef nonnull @.str.3) #14 - br label %40 + br label %39 -22: ; preds = %16 - %23 = getelementptr inbounds nuw i8, ptr %0, i64 192 - %24 = getelementptr inbounds nuw i8, ptr %0, i64 88 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %23, i8 0, i64 24, i1 false) - %25 = load i32, ptr %24, align 8, !tbaa !31 - %26 = getelementptr inbounds nuw i8, ptr %0, i64 92 - %27 = load i32, ptr %26, align 4, !tbaa !32 - %28 = tail call i32 @deflateInit2_(ptr noundef nonnull %2, i32 noundef %25, i32 noundef 8, i32 noundef 31, i32 noundef 8, i32 noundef %27, ptr noundef nonnull @.str.4, i32 noundef 112) #14 - %.not31 = icmp eq i32 %28, 0 - br i1 %.not31, label %32, label %29 - -29: ; preds = %22 - %30 = load ptr, ptr %19, align 8, !tbaa !30 +21: ; preds = %16 + %22 = getelementptr inbounds nuw i8, ptr %0, i64 192 + %23 = getelementptr inbounds nuw i8, ptr %0, i64 88 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %22, i8 0, i64 24, i1 false) + %24 = load i32, ptr %23, align 8, !tbaa !31 + %25 = getelementptr inbounds nuw i8, ptr %0, i64 92 + %26 = load i32, ptr %25, align 4, !tbaa !32 + %27 = tail call i32 @deflateInit2_(ptr noundef nonnull %2, i32 noundef %24, i32 noundef 8, i32 noundef 31, i32 noundef 8, i32 noundef %26, ptr noundef nonnull @.str.4, i32 noundef 112) #14 + %.not31 = icmp eq i32 %27, 0 + br i1 %.not31, label %31, label %28 + +28: ; preds = %21 + %29 = load ptr, ptr %19, align 8, !tbaa !30 tail call void @free(ptr noundef %30) #14 %31 = load ptr, ptr %8, align 8, !tbaa !21 tail call void @free(ptr noundef %31) #14 tail call void @gz_error(ptr noundef nonnull %0, i32 noundef -4, ptr noundef nonnull @.str.3) #14 - br label %40 + br label %39 -32: ; preds = %22 +31: ; preds = %21 store ptr null, ptr %2, align 8, !tbaa !22 %.pr = load i32, ptr %12, align 8, !tbaa !29 - %33 = load i32, ptr %3, align 4, !tbaa !28 - %34 = getelementptr inbounds nuw i8, ptr %0, i64 40 - store i32 %33, ptr %34, align 8, !tbaa !15 + %32 = load i32, ptr %3, align 4, !tbaa !28 + %33 = getelementptr inbounds nuw i8, ptr %0, i64 40 + store i32 %32, ptr %33, align 8, !tbaa !15 %.not32 = icmp eq i32 %.pr, 0 - br i1 %.not32, label %35, label %40 - -35: ; preds = %32 - %36 = getelementptr inbounds nuw i8, ptr %0, i64 160 - store i32 %33, ptr %36, align 8, !tbaa !33 - %37 = load ptr, ptr %19, align 8, !tbaa !30 - %38 = getelementptr inbounds nuw i8, ptr %0, i64 152 - store ptr %37, ptr %38, align 8, !tbaa !34 - %39 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %37, ptr %39, align 8, !tbaa !35 - br label %40 - -40: ; preds = %.thread, %32, %35, %29, %21, %10 + br i1 %.not32, label %34, label %39 + +34: ; preds = %31 + %35 = getelementptr inbounds nuw i8, ptr %0, i64 160 + store i32 %32, ptr %35, align 8, !tbaa !33 + %36 = load ptr, ptr %19, align 8, !tbaa !30 + %37 = getelementptr inbounds nuw i8, ptr %0, i64 152 + store ptr %36, ptr %37, align 8, !tbaa !34 + %38 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store ptr %36, ptr %38, align 8, !tbaa !35 + br label %39 + +39: ; preds = %.thread, %31, %34, %28, %21, %10 %.0 = phi i32 [ -1, %10 ], [ -1, %21 ], [ -1, %29 ], [ 0, %35 ], [ 0, %32 ], [ 0, %.thread ] ret i32 %.0 } diff --git a/bench/zstd/optimized/fastcover.ll b/bench/zstd/optimized/fastcover.ll index b71d7b223fe..fdc1736f95b 100644 --- a/bench/zstd/optimized/fastcover.ll +++ b/bench/zstd/optimized/fastcover.ll @@ -1270,7 +1270,7 @@ define internal void @FASTCOVER_tryParameters(ptr noundef captures(none) %0) #0 22: ; preds = %1 %23 = load i32, ptr @g_displayLevel, align 4, !tbaa !10 %24 = icmp sgt i32 %23, 0 - br i1 %24, label %25, label %61 + br i1 %24, label %25, label %58 25: ; preds = %22 %26 = load ptr, ptr @stderr, align 8, !tbaa !20 @@ -1285,52 +1285,52 @@ define internal void @FASTCOVER_tryParameters(ptr noundef captures(none) %0) #0 %33 = shl i64 4, %32 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %18, ptr align 4 %30, i64 %33, i1 false) %.val = load i32, ptr %2, align 8, !tbaa !13 - %34 = getelementptr inbounds nuw i8, ptr %2, i64 4 - %.val43 = load i32, ptr %34, align 4 - %35 = call fastcc i64 @FASTCOVER_buildDictionary(ptr noundef nonnull %5, ptr noundef nonnull %18, ptr noundef nonnull %14, i64 noundef %8, i32 %.val, i32 %.val43, ptr noundef nonnull %13) - %36 = getelementptr inbounds nuw i8, ptr %5, i64 32 - %37 = load i64, ptr %36, align 8, !tbaa !31 - %38 = getelementptr inbounds nuw i8, ptr %5, i64 72 - %39 = load i32, ptr %38, align 8, !tbaa !32 - %40 = zext i32 %39 to i64 - %41 = mul i64 %37, %40 - %42 = udiv i64 %41, 100 - %43 = trunc i64 %42 to i32 + %31 = getelementptr inbounds nuw i8, ptr %2, i64 4 + %.val43 = load i32, ptr %31, align 4 + %32 = call fastcc i64 @FASTCOVER_buildDictionary(ptr noundef nonnull %5, ptr noundef nonnull %18, ptr noundef nonnull %14, i64 noundef %8, i32 %.val, i32 %.val43, ptr noundef nonnull %13) + %33 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %34 = load i64, ptr %33, align 8, !tbaa !31 + %35 = getelementptr inbounds nuw i8, ptr %5, i64 72 + %36 = load i32, ptr %35, align 8, !tbaa !32 + %37 = zext i32 %36 to i64 + %38 = mul i64 %34, %37 + %39 = udiv i64 %38, 100 + %40 = trunc i64 %39 to i32 call void @llvm.lifetime.start.p0(ptr nonnull %4) - %44 = getelementptr inbounds nuw i8, ptr %14, i64 %35 - %45 = sub i64 %8, %35 - %46 = load ptr, ptr %5, align 8, !tbaa !34 - %47 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %48 = load ptr, ptr %47, align 8, !tbaa !35 - %49 = getelementptr inbounds nuw i8, ptr %5, i64 24 - %50 = load i64, ptr %49, align 8, !tbaa !36 - %51 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %52 = load ptr, ptr %51, align 8, !tbaa !33 - call void @COVER_selectDict(ptr dead_on_unwind nonnull writable sret(%struct.COVER_dictSelection) align 8 %4, ptr noundef nonnull %44, i64 noundef %8, i64 noundef %45, ptr noundef %46, ptr noundef %48, i32 noundef %43, i64 noundef %37, i64 noundef %50, ptr noundef nonnull byval(%struct.ZDICT_cover_params_t) align 8 %2, ptr noundef %52, i64 noundef -1) #14 + %41 = getelementptr inbounds nuw i8, ptr %14, i64 %32 + %42 = sub i64 %8, %32 + %43 = load ptr, ptr %5, align 8, !tbaa !34 + %44 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %45 = load ptr, ptr %44, align 8, !tbaa !35 + %46 = getelementptr inbounds nuw i8, ptr %5, i64 24 + %47 = load i64, ptr %46, align 8, !tbaa !36 + %48 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %49 = load ptr, ptr %48, align 8, !tbaa !33 + call void @COVER_selectDict(ptr dead_on_unwind nonnull writable sret(%struct.COVER_dictSelection) align 8 %4, ptr noundef nonnull %41, i64 noundef %8, i64 noundef %42, ptr noundef %43, ptr noundef %45, i32 noundef %40, i64 noundef %34, i64 noundef %47, ptr noundef nonnull byval(%struct.ZDICT_cover_params_t) align 8 %2, ptr noundef %49, i64 noundef -1) #14 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %4, i64 24, i1 false), !tbaa.struct !78 call void @llvm.lifetime.end.p0(ptr nonnull %4) - %53 = call i32 @COVER_dictSelectionIsError(ptr noundef nonnull byval(%struct.COVER_dictSelection) align 8 %3) #14 - %.not = icmp ne i32 %53, 0 - %54 = load i32, ptr @g_displayLevel, align 4 - %55 = icmp sgt i32 %54, 0 - %or.cond42 = select i1 %.not, i1 %55, i1 false - br i1 %or.cond42, label %56, label %61 - -56: ; preds = %28 - %57 = load ptr, ptr @stderr, align 8, !tbaa !20 - %58 = call i64 @fwrite(ptr nonnull @.str.26, i64 28, i64 1, ptr %57) #12 + %50 = call i32 @COVER_dictSelectionIsError(ptr noundef nonnull byval(%struct.COVER_dictSelection) align 8 %3) #14 + %.not = icmp ne i32 %50, 0 + %51 = load i32, ptr @g_displayLevel, align 4 + %52 = icmp sgt i32 %51, 0 + %or.cond42 = select i1 %.not, i1 %52, i1 false + br i1 %or.cond42, label %53, label %58 + +53: ; preds = %28 + %54 = load ptr, ptr @stderr, align 8, !tbaa !20 + %55 = call i64 @fwrite(ptr nonnull @.str.26, i64 28, i64 1, ptr %54) #12 br label %.sink.split -.sink.split: ; preds = %25, %56 - %59 = load ptr, ptr @stderr, align 8, !tbaa !20 - %60 = call i32 @fflush(ptr noundef %59) - br label %61 +.sink.split: ; preds = %25, %53 + %56 = load ptr, ptr @stderr, align 8, !tbaa !20 + %57 = call i32 @fflush(ptr noundef %56) + br label %58 -61: ; preds = %.sink.split, %28, %22 +58: ; preds = %.sink.split, %28, %22 call void @free(ptr noundef %14) #14 - %62 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %63 = load ptr, ptr %62, align 8, !tbaa !60 - call void @COVER_best_finish(ptr noundef %63, ptr noundef nonnull byval(%struct.ZDICT_cover_params_t) align 8 %2, ptr noundef nonnull byval(%struct.COVER_dictSelection) align 8 %3) #14 + %59 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %60 = load ptr, ptr %59, align 8, !tbaa !60 + call void @COVER_best_finish(ptr noundef %60, ptr noundef nonnull byval(%struct.ZDICT_cover_params_t) align 8 %2, ptr noundef nonnull byval(%struct.COVER_dictSelection) align 8 %3) #14 call void @free(ptr noundef nonnull %0) #14 call void @free(ptr noundef %13) #14 call void @COVER_dictSelectionFree(ptr noundef nonnull byval(%struct.COVER_dictSelection) align 8 %3) #14