Skip to content

Conversation

@zyw-bot
Copy link
Collaborator

@zyw-bot zyw-bot commented Dec 21, 2025

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

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

zyw-bot commented Dec 21, 2025

Diff mode

runner: ariselab-64c-docker
baseline: llvm/llvm-project@3eee451
patch: llvm/llvm-project#173134
sha256: 338be5c0cc9b89a6d591b43eb599d9197e0e89912af9a122a280ae43cd20fb4c
commit: 63e03b9

704 files changed, 245886 insertions(+), 245885 deletions(-)

Improvements:
  correlated-value-propagation.NumPhiCommon 52041 -> 52884 +1.62%
  correlated-value-propagation.NumPhis 1237050 -> 1237907 +0.07%
  dse.NumRedundantStores 36288 -> 36309 +0.06%
  licm.NumLoadPromoted 80248 -> 80267 +0.02%
  instcombine.NumCombined 120654744 -> 120668013 +0.01%
  licm.NumPromotionCandidates 586442 -> 586499 +0.01%
  memcpyopt.NumMemSetInfer 360877 -> 360909 +0.01%
  aggressive-instcombine.NumInstrsReduced 44901 -> 44904 +0.01%
  aggressive-instcombine.NumExprsReduced 15545 -> 15546 +0.01%
  adce.NumRemoved 95993 -> 95998 +0.01%
Regressions:
  indvars.NumReplaced 69579 -> 67325 -3.24%
  gvn.NumGVNEqProp 427689 -> 416757 -2.56%
  simple-loop-unswitch.NumTrivial 3256 -> 3237 -0.58%
  loop-simplifycfg.NumLoopExitsDeleted 4226 -> 4207 -0.45%
  loop-simplifycfg.NumTerminatorsFolded 10829 -> 10809 -0.18%
  simple-loop-unswitch.NumCostMultiplierSkipped 17255 -> 17235 -0.12%
  gvn.NumGVNSimpl 4425749 -> 4423009 -0.06%
  memdep.NumCacheCompleteNonLocalPtr 5339776 -> 5337502 -0.04%
  simple-loop-unswitch.NumBranches 104887 -> 104848 -0.04%
  lcssa.NumLCSSA 15147718 -> 15143663 -0.03%

+14 llvm/CoverageMappingReader.ll
+10 arrow/diff.ll
+10 arrow/scalar_cast_string.ll
+6 ruff-rs/eflamytq0vbr5latbim0v068w.ll
+4 ruff-rs/9jp9cbp5emd24n0w99xw04urm.ll
+1 abc/ioReadPlaMo.ll
+1 coreutils-rs/3xc4e7mmntf4esc6.ll
+1 ockam-rs/2ngtaq92gcad4v6j.ll
+1 yosys/sim.ll
+0 abseil-cpp/inlined_vector_test.ll
+0 actix-rs/22x16e3cd4musvfe.ll
+0 arrow/file.ll
+0 cpython/lexer.ll
+0 delta-rs/47qjbhol909h8zu7.ll
+0 delta-rs/4say4x9grcidoih4.ll
+0 duckdb/format.ll
+0 entt/adjacency_matrix.ll
+0 ffmpeg/ffmetadec.ll
+0 ffmpeg/mpegvideo_enc.ll
+0 fish-rs/5o5xgybh9xo8acbeboom17uhq.ll
+0 fmt/format-impl-test.ll
+0 g2o/solver_pcg.ll
+0 git/config.ll
+0 hdf5/H5Shyper.ll
+0 libjpeg-turbo/rdswitch.ll
+0 libquic/inflate.ll
+0 libquic/vlog.ll
+0 lightgbm/linear_tree_learner.ll
+0 meshlab/cube_style_precomputation.ll
+0 mold/crc32.ll
+0 ockam-rs/u4cgd14nodyt386.ll
+0 pbrt-v4/shapes.ll
+0 php/iconv.ll
+0 pingora-rs/1u078lli1cyrvy3iacncgr0sz.ll
+0 pingora-rs/24oggy68gf6cx0i1vzuuyyts4.ll
+0 postgres/hashsearch.ll
+0 quiche-rs/dcln9cwp955y6zcrpmqhoqx85.ll
+0 quickjs/quickjs.ll
+0 recastnavigation/catch_amalgamated.ll
+0 regex-rs/11vfjke4utuj478u.ll
+0 sdl/SDL_blit_slow.ll
+0 spdlog/bundled_fmtlib_format.ll
+0 tev/Channel.ll
+0 tree-sitter-rs/2fq1z2kxn3lpndsy.ll
+0 wasmtime-rs/48myxw210mngc99c.ll
+0 wolfssl/internal.ll
-1 cpython/_testcapimodule.ll
-1 curl/var.ll
-1 hyperscan/mcclellancompile.ll
-1 hyperscan/ng_haig.ll
-1 llvm/TGParser.ll
-1 quantlib/blackkarasinski.ll
-1 rocksdb/db_impl.ll
-1 xgboost/comm.ll
-2 ceres/line_search_minimizer.ll
-2 hyperscan/limex_compile.ll
-2 libigl/orient_outward.ll
-2 open3d/NonRigidOptimizer.ll
-2 open3d/TriangleMeshDeformation.ll
-2 ozz-animation/sampling_job.ll
-2 postgres/spgscan.ll
-2 quantlib/mcpathbasketengine.ll
-2 quantlib/sparseilupreconditioner.ll
-3 openjdk/c1_MacroAssembler_x86.ll
-3 quantlib/svd.ll
-6 hwloc/topology.ll
-6 linux/syscall_user_dispatch.ll
-10 hermes/g_fmt.ll

@github-actions
Copy link
Contributor

Here's a concise summary of the major changes in this LLVM IR diff:

  1. Phi Node Simplification & Constant Folding: Several phi instructions were updated to use constant values (e.g., 0, 1, 9, 10, 30, 134217728) instead of variable operands, indicating improved constant propagation and simplification of control-flow merge points—especially in loops and exception-handling paths.

  2. Store-to-Memset Optimization: Multiple sequences of scalar stores (e.g., store i64 %x, ptr %p, store i64 %x, ptr %q) were replaced with llvm.memset.p0.i64 calls initializing memory regions (e.g., 16–25 bytes) to zero. This reflects aggressive dead-store elimination and memset lowering, notably in Eigen matrix initialization, Open3D, HWLOC, and libigl.

  3. TBAA Metadata Updates: Type-based alias analysis (TBAA) node definitions were reordered or corrected (e.g., swapping field offsets in !25/!28, updating !273/!275/!276), improving precision for memory access disambiguation across Eigen and Open3D code.

  4. Loop & Branch Target Fixups: Switch and branch targets were updated to reference correct predecessor blocks (e.g., .lr.ph387.preheader instead of .lr.ph388.preheader, %._crit_edge421 instead of %._crit_edge420), ensuring accurate CFG reconstruction after loop optimizations or block merging.

  5. Redundant Load/Store Elimination & Pointer Arithmetic Fixes: Stores of computed pointers (e.g., %84 = getelementptr ..., store i64 %23, ptr %84) were replaced with direct uses of getelementptr results; loads from incorrect offsets (e.g., %207%206) were fixed; and pointer arithmetic (e.g., shl vs add for scaling) was refined in ozz-animation and regex-rs, improving correctness and optimization potential.

These changes collectively reflect improvements in constant propagation, memory layout optimization, TBAA modeling, CFG maintenance, and low-level addressing logic—consistent with mature backend and middle-end optimizations.

model: qwen-plus-latest
CompletionUsage(completion_tokens=504, prompt_tokens=113156, total_tokens=113660, completion_tokens_details=None, prompt_tokens_details=None)

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