Skip to content

pre-commit: PR183145#3503

Open
zyw-bot wants to merge 3 commits intomainfrom
test-run22367207786
Open

pre-commit: PR183145#3503
zyw-bot wants to merge 3 commits intomainfrom
test-run22367207786

Conversation

@zyw-bot
Copy link
Collaborator

@zyw-bot zyw-bot commented Feb 24, 2026

@github-actions github-actions bot mentioned this pull request Feb 24, 2026
@zyw-bot
Copy link
Collaborator Author

zyw-bot commented Feb 24, 2026

Diff mode

runner: ariselab-64c-docker
baseline: llvm/llvm-project@796e7eb
patch: llvm/llvm-project#183145
sha256: aef2ac5bb5a7e49c695b99b573fb133837b907e591d7534b2e9ad9ab966d1f65
commit: 374d5eb

548 files changed, 315535 insertions(+), 315845 deletions(-)

Improvements:
  licm.NumAddSubHoisted 1907 -> 3515 +84.32%
  licm.NumHoisted 5264744 -> 5266600 +0.04%
  sccp.NumInstReplaced 131997 -> 132027 +0.02%
  correlated-value-propagation.NumAddNSW 215589 -> 215620 +0.01%
  correlated-value-propagation.NumNNeg 95915 -> 95926 +0.01%
  gvn.NumGVNEqProp 426001 -> 426047 +0.01%
  instcombine.NegatorNumTreesNegated 47836 -> 47841 +0.01%
  correlated-value-propagation.NumAnd 44240 -> 44244 +0.01%
  correlated-value-propagation.NumAddNW 426447 -> 426483 +0.01%
  instcombine.NegatorNumInstructionsNegatedSuccess 59297 -> 59302 +0.01%
Regressions:
  instsimplify.NumReassoc 813650 -> 799400 -1.75%
  instcombine.NegatorTotalNegationsAttempted 20572557 -> 20569277 -0.02%
  instcombine.NegatorNumValuesVisited 21488198 -> 21484937 -0.02%
  instcount.NumSubInst 1915424 -> 1915177 -0.01%
  instcount.NumPtrToIntInst 2995807 -> 2995486 -0.01%
  memdep.NumCacheNonLocal 19738 -> 19736 -0.01%
  gvn.NumGVNPRE 149385 -> 149375 -0.01%
  aggressive-instcombine.NumExprsReduced 15622 -> 15621 -0.01%
  aggressive-instcombine.NumInstrsReduced 45390 -> 45388 -0.00%
  instcount.NumAddInst 7317367 -> 7317141 -0.00%

+9 abc/wlcBlast.ll
+6 delta-rs/2ounwovke18sd889.ll
+6 rocksdb/block_cache_tier.ll
+6 rocksdb/histogram_windowing.ll
+6 zed-rs/13pr1pzdsvcd15h9bn5oaps4z.ll
+4 abc/cbaBlast.ll
+4 opencv/dwt.ll
+3 assimp/BlenderCustomData.ll
+3 assimp/MMDPmxParser.ll
+3 ceres/schur_eliminator_2_d_d.ll
+3 coreutils-rs/3x959pa9na58uqov.ll
+3 ffmpeg/dsp.ll
+3 folly/json.ll
+3 gromacs/selvalue.ll
+3 grpc/legacy_channel_idle_filter.ll
+3 icu/caniter.ll
+3 icu/coll.ll
+3 icu/measfmt.ll
+3 just-rs/bulvmt5gknxyhsd.ll
+3 llvm/CoverageMapping.ll
+3 luau/ltable.ll
+3 mitsuba3/jitallocator.ll
+3 rustfmt-rs/4gk399kploc9gcsb.ll
+3 slurm/bitstring.ll
+3 typst-rs/avdrw26ojy6f9qt.ll
+3 wireshark/packet-sip.ll
+3 z3/euf_bv_plugin.ll
+2 syn/2tga7oe2tfdpj05w.ll
+2 typst-rs/xrijsyrxk2ciyk9.ll
+1 fish-rs/8zxt2gjt68ikxu18thf3foa45.ll
+1 llvm/SemaTemplateDeduction.ll
+1 openmpi/pmix_mca_base_var.ll
+1 quiche-rs/7uu0743ctz557px8xpqxzn9zi.ll
+1 ruff-rs/bat91tmhz9zqtv9nbte3nknzg.ll
+1 zed-rs/dx9yxhk8z0nuczbnxw7yidd6v.ll
+0 darktable/collect.ll
+0 delta-rs/11f8x98axanecwnw.ll
+0 draco/mesh_edgebreaker_decoder_impl.ll
+0 draco/mesh_edgebreaker_encoder_impl.ll
+0 foundations-rs/208outlkq19x3hykb3fof84u4.ll
+0 g2o/solver_cholmod.ll
+0 git/commit.ll
+0 hermes/String.ll
+0 libquic/quic_stream_sequencer_buffer.ll
+0 lief/ssl_tls13_server.ll
+0 llvm/IVDescriptors.ll
+0 luau/BytecodeBuilder.ll
+0 minetest/voxelalgorithms.ll
+0 openvdb/Filter.ll
+0 openvdb/TopologyToLevelSet.ll
+0 quantlib/lfmprocess.ll
+0 regex-rs/6c2onrqlphpgxx0.ll
+0 rocksdb/statistics.ll
+0 rust-analyzer-rs/5a391sezfv8ojps9.ll
+0 tev/Common.ll
+0 uv-rs/afb3uo40tnjfqrj7louv4l8in.ll
+0 wasmtime-rs/37pex3k1sj15o95m.ll
+0 wireshark/range.ll
+0 zed-rs/9jkx32jki2vcljeo0xctxc8uw.ll
-1 abc/bmcMaj3.ll
-1 abc/sclLibScl.ll
-1 csmith/ArrayVariable.ll
-1 ffmpeg/magicyuvenc.ll
-1 hwloc/hwloc-calc.ll
-1 linux/pagelist.ll
-1 llvm/CGCleanup.ll
-1 lodepng/pngdetail.ll
-1 minetest/mapgen.ll
-1 openjdk/c1_LinearScan.ll
-1 openspiel/catch.ll
-1 pola-rs/eno41myg76h8nryc673zxzdw7.ll
-1 ruff-rs/3962cj1utxtdqcwyobmnzow9t.ll
-2 lvgl/lv_label.ll
-2 minetest/string.ll
-2 openjdk/instanceStackChunkKlass.ll
-2 quinn-rs/em94uyxz0wp9gccfab963606p.ll
-3 openspiel/breakthrough.ll
-4 boost/debug.ll
-4 openusd/pathPattern.ll
-4 pola-rs/bg2ex4k819k713rsl5rc2q2v3.ll
-5 openjdk/zRelocate.ll
-5 openspiel/cliff_walking.ll
-6 grpc/compression_internal.ll
-8 graphviz/emit.ll

@github-actions
Copy link
Contributor

This patch introduces several loop optimization improvements across multiple benchmarks, primarily focused on loop invariant code motion and loop condition simplification. The key changes are:

  1. Loop Invariant Code Motion: Introduces invariant.op variables to precompute loop termination conditions (e.g., %invariant.op = add i32 %4, -1) instead of recalculating them in each iteration. This replaces expressions like %624 = add nuw nsw i64 %.idx.i, 168; %625 = icmp eq i64 %624, %614 with %626 = icmp eq i64 %.idx.i, %invariant.op.i.

  2. Loop Condition Simplification: Converts loop exit conditions from icmp eq i64 %indvars.iv.next, %trip.count to icmp eq i64 %indvars.iv, %invariant.op, eliminating the need for increment operations before the comparison.

  3. Phi Node Updates: Adjusts phi node initial values and predecessor blocks to accommodate new loop structures, such as changing %indvars.iv71 = phi i64 [ 0, %.preheader.us.preheader ], [ %indvars.iv.next72, %._crit_edge.us ] to use %indvars.iv.next73.

  4. Pointer Arithmetic Optimization: Replaces pointer arithmetic sequences (e.g., ptrtoint + sub + icmp) with direct pointer comparisons using inttoptr and add, improving readability and potentially enabling further optimizations.

  5. Boolean Logic Refinement: Converts conditional selects (e.g., select i1 %.not54, i1 %69, i1 false) to more efficient boolean operations like and i1 %.not54, %69.

These changes collectively improve loop efficiency by reducing redundant computations and simplifying control flow, while maintaining functional equivalence.

model: qwen-plus-latest
CompletionUsage(completion_tokens=403, prompt_tokens=108078, total_tokens=108481, completion_tokens_details=None, prompt_tokens_details=None)

%54 = zext nneg i32 %invariant.op to i64
%54 = zext nneg i32 %invariant.op67 to i64
%wide.trip.count77 = zext nneg i32 %4 to i64
%wide.trip.count = zext nneg i32 %3 to i64
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regression

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.

3 participants