Skip to content

pre-commit: PR147263 #2551

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 3 commits into from
Closed

pre-commit: PR147263 #2551

wants to merge 3 commits into from

Conversation

zyw-bot
Copy link
Collaborator

@zyw-bot zyw-bot commented Jul 7, 2025

Link: llvm/llvm-project#147263
Requested by: @nikic

@github-actions github-actions bot mentioned this pull request Jul 7, 2025
@zyw-bot
Copy link
Collaborator Author

zyw-bot commented Jul 7, 2025

Diff mode

runner: ariselab-64c-docker
baseline: llvm/llvm-project@0860f7a
patch: llvm/llvm-project#147263
sha256: c395bcae56234f30b58a77c4cb298c90b8bf078e3b8dfa8fcc18b92bd49534e4
commit: d1c013a

1337 files changed, 183365 insertions(+), 186068 deletions(-)

Improvements:
Regressions:
  basicaa.SearchLimitReached 5088 -> 4572 -10.14%
  instcombine.NegatorNumTreesNegated 52532 -> 50019 -4.78%
  instcombine.NegatorNumInstructionsNegatedSuccess 64337 -> 61624 -4.22%
  instcombine.NegatorNumInstructionsCreatedTotal 69403 -> 66478 -4.21%
  correlated-value-propagation.NumCmpIntr 25 -> 24 -4.00%
  scalar-evolution.NumBruteForceTripCountsComputed 40440 -> 39114 -3.28%
  lower-is-constant-intrinsic.ObjectSizeIntrinsicsHandled 27957 -> 27164 -2.84%
  build-libcalls.NumWriteOnly 150 -> 146 -2.67%
  callsite-splitting.NumCallSiteSplit 8432 -> 8229 -2.41%
  loop-idiom.NumStrLen 631 -> 616 -2.38%

linux/decompress_unlzo.ll fail
abseil-cpp/charconv_bigint.ll fail
abseil-cpp/charconv.ll fail
abseil-cpp/charconv_bigint_test.ll fail
git/packfile.ll fail
git/apply.ll fail
gromacs/tng_io.ll fail
llvm/Reassociate.ll fail
llvm/AArch64CallLowering.ll fail
llvm/ScalarizeMaskedMemIntrin.ll fail
llvm/MemProfContextDisambiguation.ll fail
llvm/PredicateInfo.ll fail
llvm/ScalarEvolution.ll fail
cvc5/quant_split.ll fail
cvc5/circuit_propagator.ll fail
ruff-rs/4a0sesc153a050u04do7llz00.ll fail
boost/area.ll fail
ffmpeg/vmdvideo.ll fail
ffmpeg/hca.ll fail
ffmpeg/exr.ll fail
ffmpeg/gemdec.ll fail
wireshark/interface_sort_filter_model.ll fail
wireshark/main_application.ll fail
wireshark/proto_tree.ll fail
wireshark/sparkline_delegate.ll fail
wireshark/main_status_bar.ll fail
wireshark/rtp_analysis_dialog.ll fail
wireshark/traffic_types_list.ll fail
wireshark/traffic_tab.ll fail
wireshark/traffic_tree.ll fail
wireshark/wireshark_main_window.ll fail
wireshark/decode_as_model.ll fail
wireshark/traffic_table_dialog.ll fail
wireshark/wireless_timeline.ll fail
wireshark/io_graph_dialog.ll fail
wireshark/capture_info_dialog.ll fail
wireshark/uat_frame.ll fail
wireshark/funnel_statistics.ll fail
wireshark/expert_info_proxy_model.ll fail
wireshark/byte_view_tab.ll fail
wireshark/rtp_player_dialog.ll fail
wireshark/packet_diagram.ll fail
wireshark/simple_dialog.ll fail
wireshark/wireshark_main_window_slots.ll fail
wireshark/qcustomplot.ll fail
bullet3/btSoftBodyHelpers.ll fail
abc/giaMini.ll fail
icu/unames.ll fail
icu/ustring.ll fail
cmake/archive_read_support_format_iso9660.ll fail
lief/ecjpake.ll fail
clamav/petite.ll fail
clamav/upack.ll fail
clamav/mew.ll fail
ruby/bignum.ll fail
cpython/sre.ll fail
mitsuba3/x86rapass.ll fail
spike/fdt_rw.ll fail
fish-rs/8zxt2gjt68ikxu18thf3foa45.ll fail
pocketpy/vm.ll fail
eastl/TestStringView.ll fail
eastl/BenchmarkString.ll fail
eastl/TestString.ll fail
open3d/AdvancedIndexing.ll fail
open3d/size_vector.ll fail
open3d/ShapeUtil.ll fail

12 14 bench/abc/optimized/giaTransduction.ll
14 14 bench/abseil-cpp/optimized/container_test.ll
2 2 bench/abseil-cpp/optimized/parser_test.ll
4 4 bench/boost/optimized/algorithm.ll
27 22 bench/ceres/optimized/compressed_row_sparse_matrix.ll
22 22 bench/ceres/optimized/eigensparse.ll
10 10 bench/cmake/optimized/archive_read_support_format_mtree.ll
3 4 bench/cmake/optimized/cmOrderDirectories.ll
10 11 bench/coreutils-rs/optimized/4jcegsvljtrqsq46.ll
14 14 bench/darktable/optimized/imageop_math.ll
5 5 bench/duckdb/optimized/prog.ll
32 28 bench/duckdb/optimized/sds.ll
11 12 bench/eastl/optimized/BenchmarkAlgorithm.ll
2 4 bench/eastl/optimized/EAMemory.ll
4 6 bench/eastl/optimized/TestFixedString.ll
19 19 bench/ffmpeg/optimized/mpegtsenc.ll
21 22 bench/ffmpeg/optimized/rtpenc_aac.ll
50 59 bench/ffmpeg/optimized/rtpenc_amr.ll
36 38 bench/freetype/optimized/sfnt.ll
85 93 bench/freetype/optimized/type1.ll
11 11 bench/g2o/optimized/slam2d_linear.ll
16 16 bench/glog/optimized/signalhandler.ll
6 8 bench/grpc/optimized/slice.ll
74 72 bench/hdf5/optimized/H5Obtreek.ll
78 76 bench/hdf5/optimized/H5Odrvinfo.ll
48 45 bench/hdf5/optimized/H5Omtime.ll
45 41 bench/hdf5/optimized/H5Orefcount.ll
7 9 bench/hermes/optimized/DependencyExtractor.ll
82 85 bench/jq/optimized/decNumber.ll
56 57 bench/jq/optimized/jv_dtoa.ll
3 3 bench/libcxx/optimized/cxa_demangle.ll
34 36 bench/libigl/optimized/min_quad_with_fixed.2.ll
5 5 bench/libphonenumber/optimized/phonenumberutil.ll
29 31 bench/libsodium/optimized/shorthash_siphash24_ref.ll
39 41 bench/lief/optimized/rsa.ll
14 15 bench/linux/optimized/namei.ll
6 7 bench/linux/optimized/ndisc.ll
7 9 bench/linux/optimized/nf_nat_helper.ll
1 2 bench/llvm/optimized/BasicAliasAnalysis.ll
17 21 bench/llvm/optimized/DwarfDebug.ll
14 16 bench/llvm/optimized/Expr.ll
4 6 bench/llvm/optimized/IRSimilarityIdentifier.ll
14 16 bench/llvm/optimized/LazyCallGraph.ll
10 14 bench/llvm/optimized/MemProf.ll
8 11 bench/meshlab/optimized/additionalgui.ll
12 14 bench/meshlab/optimized/filter_mesh_booleans.ll
23 28 bench/meshlab/optimized/filter_voronoi.ll
9 10 bench/meshlab/optimized/io_collada.ll
19 20 bench/meshlab/optimized/mainwindow_Init.ll
16 22 bench/meshlab/optimized/multiViewer_Container.ll
18 19 bench/mini-lsm-rs/optimized/4c6shhrwpfde8fun.ll
17 19 bench/mold/optimized/input-files.cc.X86_64.ll
30 30 bench/nanobind/optimized/test_eigen.ll
12 13 bench/nghttp2/optimized/sfparse.ll
34 34 bench/oiio/optimized/deepdata.ll
15 19 bench/oiio/optimized/strutil.ll
11 12 bench/opencv/optimized/aruco_detector.ll
26 26 bench/opencv/optimized/emd.ll
37 35 bench/opencv/optimized/gemm_layer.ll
23 25 bench/openjdk/optimized/attachListener_posix.ll
16 17 bench/openjdk/optimized/klassVtable.ll
17 16 bench/openjdk/optimized/relocInfo_x86.ll
10 12 bench/openssl/optimized/bio_b64.ll
12 13 bench/openssl/optimized/siphash.ll
6 6 bench/openssl/optimized/stanza.ll
13 12 bench/openusd/optimized/pathExpressionEval.ll
11 14 bench/php/optimized/zend_generators.ll
69 70 bench/php/optimized/zend_strtod.ll
10 8 bench/pola-rs/optimized/40wah5zis7dsqiheha5veerhb.ll
9 9 bench/pola-rs/optimized/9e3hi5rinq7qrjv1lrpozyc63.ll
10 11 bench/qemu/optimized/fdt.ll
12 14 bench/quantlib/optimized/abcdatmvolcurve.ll
6 8 bench/quantlib/optimized/generalizedhullwhite.ll
3 3 bench/quantlib/optimized/tcopulapolicy.ll
8 8 bench/quickjs/optimized/quickjs.ll
45 47 bench/raylib/optimized/rtextures.ll
9 14 bench/recastnavigation/optimized/catch_amalgamated.ll
33 29 bench/redis/optimized/sds.ll
83 84 bench/ruby/optimized/random.ll
12 12 bench/ruff-rs/optimized/4y0unrlbgjyvysqyc1zrg4crs.ll
57 58 bench/ruff-rs/optimized/cf4d78dtw2y7jldih6lhmy5k5.ll
20 20 bench/spike/optimized/socketif.ll
13 15 bench/stb/optimized/stb_image_resize2.ll
4 5 bench/stockfish/optimized/search.ll
20 22 bench/tev/optimized/Image.ll
29 31 bench/tev/optimized/StbiLdrImageSaver.ll
20 22 bench/tev/optimized/main.ll
15 18 bench/uv-rs/optimized/bt5f6f08hvtjlcji6qu3dcjek.ll
14 22 bench/velox/optimized/ExprToSubfieldFilter.ll
27 37 bench/velox/optimized/Filter.ll
13 20 bench/velox/optimized/Type.ll
1 1 bench/zstd/optimized/huf_compress.ll
7 9 bench/zxing/optimized/ODCode128Reader.ll

Copy link
Contributor

github-actions bot commented Jul 7, 2025

Here is a high-level summary of up to 5 major changes in the provided LLVM IR diffs, focusing on significant transformations and ignoring non-interesting changes like formatting, comments, and reordering:

  1. Optimized Pointer Arithmetic Using or disjoint and Simplified Bounds Checks
    Several instances replace sequences involving getelementptr followed by complex address calculations with more compact uses of or disjoint, which helps express that certain pointer offsets do not overlap. This simplifies logic for array or struct field access and improves alias analysis.

  2. Improved GEP (GetElementPtr) Chaining and Offset Calculation
    In several functions (b2d, H5O__drvinfo_decode, etc.), the original code had multiple chained getelementptr instructions. These have been simplified into fewer steps, often using add directly on computed indices before applying the final getelementptr. This reduces instruction count and complexity in memory address computation.

  3. Simplified PHI Nodes and Loop Exit Conditions
    In various loop structures (e.g., _ZNSt6vectorIbSaIbEE15_M_copy_alignedE...), phi nodes are now cleaner and better reflect actual exit conditions, especially when handling bit iterator arithmetic. The condition checking if an offset equals zero has been simplified from comparing base pointers to just checking the calculated index.

  4. Refactored Memory Copy/Move Operations
    Some functions (decShiftToMost, T1_Read_PFM) refactor how memcpy/memmove destinations are computed. They consolidate pointer math and use intermediate values to compute size and destination addresses earlier, then pass them into llvm.memcpy/memmove. This likely improves optimization opportunities for the backend.

  5. Reduction in Conditional Selects and Use of Bitwise Or
    Functions like decSetSubnormal and jv_dtoa reduce the number of select instructions used for mask operations, replacing them with direct or operations after computing a single correct offset. This streamlines the logic and removes unnecessary branching in favor of bitwise manipulation.

Conclusion

The patch primarily focuses on improving pointer arithmetic, reducing redundant checks and selects, and making memory copy patterns more efficient and analyzable by the optimizer. These optimizations lead to cleaner, potentially faster code with better data dependencies and less control flow.

model: qwen-plus-latest
CompletionUsage(completion_tokens=485, prompt_tokens=113119, total_tokens=113604, completion_tokens_details=None, prompt_tokens_details=None)

@dtcxzyw dtcxzyw added the crash label Jul 7, 2025
@nikic
Copy link

nikic commented Jul 7, 2025

/close

@github-actions github-actions bot closed this Jul 7, 2025
@dtcxzyw dtcxzyw deleted the test-run16113318623 branch July 10, 2025 10:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants