Skip to content

Conversation

@zyw-bot
Copy link
Collaborator

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

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

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

zyw-bot commented Jul 23, 2025

Diff mode

runner: ariselab-64c-docker
baseline: llvm/llvm-project@7e878aa
patch: llvm/llvm-project#146714
sha256: 11998782e090a39bb8e508f87e2a19b1cc69223a0120b45852de920d3e35e59f
commit: c88b9cc

2059 files changed, 1850402 insertions(+), 1861767 deletions(-)

Improvements:
  instsimplify.NumReassoc 839620 -> 865464 +3.08%
  licm.NumAddSubHoisted 1320 -> 1340 +1.52%
  loop-simplifycfg.NumLoopBlocksDeleted 6956 -> 6985 +0.42%
  instcombine.NumFactor 46711 -> 46897 +0.40%
  loop-simplifycfg.NumTerminatorsFolded 10613 -> 10643 +0.28%
  licm.NumIntAssociationsHoisted 4100 -> 4103 +0.07%
  instcombine.NumReassoc 286749 -> 286925 +0.06%
  instcombine.NegatorMaxInstructionsCreated 17172 -> 17181 +0.05%
  simplifycfg.NumLinearMaps 4156 -> 4157 +0.02%
  correlated-value-propagation.NumSICmps 64493 -> 64508 +0.02%
Regressions:
  reassociate.NumAnnihil 834 -> 832 -0.24%
  licm.NumGEPsHoisted 61079 -> 60965 -0.19%
  simple-loop-unswitch.NumTrivial 3543 -> 3539 -0.11%
  reassociate.NumFactor 3118 -> 3116 -0.06%
  instcombine.NumSunkInst 3566101 -> 3564060 -0.06%
  licm.NumSunk 281268 -> 281149 -0.04%
  instcombine.NumDeadInst 44262583 -> 44245058 -0.04%
  local.NumPHICSEs 204871 -> 204806 -0.03%
  instcombine.NegatorNumTreesNegated 51893 -> 51879 -0.03%
  instcombine.NegatorMaxDepthVisited 20673 -> 20669 -0.02%

15 14 bench/abc/optimized/acecRe.ll
12 10 bench/abc/optimized/giaIso2.ll
8 13 bench/abc/optimized/mvcUtils.ll
4 4 bench/abseil-cpp/optimized/exception_safety_testing_test.ll
3 4 bench/actix-rs/optimized/19s5ghr2x6s6bmh4.ll
16 16 bench/arrow/optimized/coo_converter.ll
7 11 bench/assimp/optimized/BlenderCustomData.ll
58 53 bench/assimp/optimized/BlenderLoader.ll
27 31 bench/assimp/optimized/MMDPmxParser.ll
7 6 bench/boost/optimized/area_geo.ll
27 28 bench/cmake/optimized/archive_read_support_format_7zip.ll
7 4 bench/cmake/optimized/cmList.ll
71 69 bench/coreutils-rs/optimized/4ws6541n7p4pbb05.ll
14 18 bench/cvc5/optimized/metakind.ll
12 8 bench/cvc5/optimized/trigger_term_info.ll
8 9 bench/darktable/optimized/fp_dng.ll
16 18 bench/darktable/optimized/imageop_math.ll
2 3 bench/darktable/optimized/introspection_liquify.ll
16 20 bench/diesel-rs/optimized/4dmkc4an6cvf22v6.ll
4 5 bench/draco/optimized/mesh_edgebreaker_decoder_impl.ll
4 5 bench/draco/optimized/mesh_edgebreaker_encoder_impl.ll
8 5 bench/eastl/optimized/TestExtra.ll
4 5 bench/eastl/optimized/TestRingBuffer.ll
15 21 bench/eastl/optimized/TestSegmentedVector.ll
9 10 bench/ffmpeg/optimized/dvbsub_parser.ll
2 1 bench/ffmpeg/optimized/mpeg.ll
50 54 bench/ffmpeg/optimized/rtpenc_h261.ll
11 12 bench/fish-rs/optimized/5o5xgybh9xo8acbeboom17uhq.ll
10 13 bench/fmt/optimized/base-test.ll
3 4 bench/fmt/optimized/color-test.ll
38 35 bench/foundations-rs/optimized/208outlkq19x3hykb3fof84u4.ll
4 5 bench/freetype/optimized/sfnt.ll
6 7 bench/git/optimized/color.ll
51 50 bench/git/optimized/packfile.ll
18 12 bench/graphviz/optimized/dthash.ll
20 15 bench/gromacs/optimized/lincs.ll
11 18 bench/gromacs/optimized/selvalue.ll
9 13 bench/grpc/optimized/legacy_channel_idle_filter.ll
23 24 bench/grpc/optimized/work_serializer.ll
15 12 bench/hermes/optimized/APInt.ll
8 12 bench/hermes/optimized/CodeBlock.ll
2 1 bench/hermes/optimized/HadesGC.ll
7 11 bench/hermes/optimized/JSONParser.ll
2 1 bench/hermes/optimized/RegExp.ll
13 11 bench/icu/optimized/datamap.ll
6 7 bench/icu/optimized/locavailable.ll
7 8 bench/icu/optimized/ulistformatter.ll
24 29 bench/jq/optimized/jv_dtoa.ll
43 40 bench/just-rs/optimized/bulvmt5gknxyhsd.ll
36 26 bench/lean4/optimized/expr.ll
1 1 bench/libuv/optimized/inet.ll
10 12 bench/lief/optimized/AArch64Feature.ll
5 6 bench/lief/optimized/DyldBindingInfo.ll
19 15 bench/lief/optimized/DynamicRelocationBase.ll
14 11 bench/lightgbm/optimized/network.ll
13 8 bench/lightgbm/optimized/sample_strategy.ll
8 10 bench/llvm/optimized/Decl.ll
13 8 bench/llvm/optimized/LoopLoadElimination.ll
12 11 bench/llvm/optimized/TemplateName.ll
14 11 bench/luajit/optimized/lj_opt_mem.ll
23 27 bench/luajit/optimized/lj_str.ll
15 13 bench/luau/optimized/lstrlib.ll
10 8 bench/meshlab/optimized/GLLogStream.ll
3 2 bench/meshlab/optimized/render_raster.ll
23 24 bench/mold/optimized/arch-arm32.ll
20 21 bench/mold/optimized/gc-sections.cc.X86_64.ll
16 17 bench/mold/optimized/input-sections.cc.X86_64.ll
18 22 bench/nanobind/optimized/test_functions.ll
24 16 bench/nanobind/optimized/test_stl_bind_vector.ll
8 10 bench/nix/optimized/attr-set.ll
8 9 bench/node/optimized/libnode.packet.ll
24 19 bench/openblas/optimized/dlaswp_ncopy.ll
16 13 bench/opencc/optimized/louds-trie.ll
5 4 bench/opencv/optimized/arg_layer.ll
8 7 bench/opencv/optimized/gather_layer.ll
12 11 bench/openjdk/optimized/barrierSetC2.ll
6 5 bench/openjdk/optimized/bytecodeStream.ll
13 17 bench/openjdk/optimized/handles.ll
42 38 bench/openjdk/optimized/shenandoahMark.ll
24 16 bench/openjdk/optimized/zMark.ll
9 8 bench/openspiel/optimized/leduc_poker.ll
2 2 bench/openssl/optimized/v3_utl.ll
6 8 bench/openvdb/optimized/Filter.ll
4 5 bench/openvdb/optimized/TopologyToLevelSet.ll
8 10 bench/php/optimized/ftp_fopen_wrapper.ll
8 12 bench/php/optimized/zend_inheritance.ll
7 8 bench/php/optimized/zend_ini.ll
30 38 bench/pola-rs/optimized/1qyqkb8vgycy6h5akbtqppixy.ll
15 19 bench/pola-rs/optimized/4uf3zemqcz1kz37kef2sjlzv9.ll
12 16 bench/pola-rs/optimized/5igj4k372mlhkf3aildnxq1ta.ll
6 7 bench/postgres/optimized/guc.ll
20 18 bench/postgres/optimized/ruleutils.ll
50 45 bench/proj/optimized/horner.ll
29 20 bench/protobuf/optimized/arena.ll
6 8 bench/protobuf/optimized/descriptor.ll
4 6 bench/proxygen/optimized/HTTPConnectorWithFizz.ll
12 8 bench/qemu/optimized/tcg.ll
23 25 bench/redis/optimized/ziplist.ll
9 10 bench/redis/optimized/zipmap.ll
9 29 bench/ripgrep-rs/optimized/3bctup5kmnkujhz5.ll
4 5 bench/rocksdb/optimized/compression_context_cache.ll
38 35 bench/ruff-rs/optimized/3962cj1utxtdqcwyobmnzow9t.ll
29 26 bench/ruff-rs/optimized/9ccn8a2meujd26g9852zxayje.ll
6 7 bench/rust-analyzer-rs/optimized/1213fy5h08xh684z.ll
20 21 bench/rust-analyzer-rs/optimized/59xtetyz59tgy0g8.ll
32 38 bench/salsa-rs/optimized/94dtk09x8ywmkbr4cvij0wkfj.ll
9 11 bench/sentencepiece/optimized/arena.ll
9 8 bench/slurm/optimized/numa.ll
38 36 bench/typst-rs/optimized/1ru1rhojhbz2vfey.ll
31 30 bench/uv-rs/optimized/32ql9ocq6kkdl5jg2dnp7csot.ll
44 41 bench/uv-rs/optimized/53w83c036esehszikh9jad1ng.ll
3 4 bench/wireshark/optimized/decode_as_model.ll
21 19 bench/z3/optimized/ddnf.ll
12 17 bench/z3/optimized/fix_dl_var_tactic.ll
24 14 bench/z3/optimized/nnf.ll
22 21 bench/z3/optimized/rlimit.ll
22 16 bench/z3/optimized/substitution_tree.ll
6 7 bench/zed-rs/optimized/0x2swxz4m93xo6c0jggy1zzvx.ll
11 13 bench/zed-rs/optimized/4q1bnadqr1o107uase7gmrd0k.ll
19 19 bench/zxing/optimized/BinaryBitmap.ll

@github-actions
Copy link
Contributor

The provided diff consists of multiple LLVM IR changes across various benchmarks. After filtering out non-interesting changes (such as formatting, comments, and renaming), the following are the major transformations observed:

  1. Pointer Arithmetic and GEP Simplification: Several functions replace complex pointer arithmetic using getelementptr (GEP) with simpler index calculations. For instance, in acecRe.ll, getelementptr with struct types is replaced by explicit index scaling (e.g., mul nsw i64 %21, 12), enabling more straightforward arithmetic comparisons using icmp eq i64 instead of pointer comparisons.

  2. Loop Phi Node Source Reordering: In multiple files (e.g., acecRe.ll, giaIso2.ll, mvcUtils.ll), the incoming block order in phi nodes within loops is reordered. This typically reflects loop optimization changes where the backedge predecessor is moved to the second position, aligning with canonical loop structures.

  3. Elimination of Pointer Comparisons in Loops: Pointer comparisons used as loop exit conditions are replaced with integer comparisons. For example, in arrow/coo_converter.ll, icmp eq ptr %74, %.0.i.i.i.i.i55104.ptr is changed to icmp eq i64 %.0.i.i.i.i.i55104.idx, 120, indicating a shift from pointer-based to index-based loop termination.

  4. Improved GEP Chaining and Invariant Code Motion: In assimp/BlenderLoader.ll and assimp/MMDPmxParser.ll, getelementptr chains are optimized by precomputing offsets and restructuring loops to reduce redundant GEP calculations. This includes hoisting invariant GEPs out of loops and using integer arithmetic to compute offsets.

  5. Refactoring of Exception Handling and Cleanup Blocks: In coreutils-rs/optimized/4ws6541n7p4pbb05.ll and just-rs/optimized/bulvmt5gknxyhsd.ll, cleanup blocks and landing pads are restructured to improve control flow, including reordering phi node entries and adjusting landing pad labels to match updated control flow.

These changes collectively suggest optimizations focused on simplifying pointer arithmetic, improving loop structure, and enhancing code motion, likely resulting from improved loop optimization, GEP simplification, and control flow normalization in the LLVM pipeline.

model: qwen-plus-latest
CompletionUsage(completion_tokens=510, prompt_tokens=106783, total_tokens=107293, completion_tokens_details=None, prompt_tokens_details=None)

@nikic
Copy link

nikic commented Jul 23, 2025

/close

This was against the wrong version of the patch, though it looks like that did not actually make a difference.

@github-actions github-actions bot closed this Jul 23, 2025
@dtcxzyw dtcxzyw deleted the test-run16466609292 branch July 29, 2025 18:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants