Skip to content

Conversation

@zyw-bot
Copy link
Collaborator

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

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

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

zyw-bot commented Dec 17, 2025

Diff mode

runner: ariselab-64c-docker
baseline: llvm/llvm-project@f58d2f3
patch: llvm/llvm-project#172656
sha256: cea95f9ff7f9e788f8636b1ba14bbb464402c139dc421c71b215c8d986e20c12
commit: c3f1ed1

294 files changed, 128601 insertions(+), 128695 deletions(-)

Improvements:
  instcount.NumSelectInst 1784821 -> 1785053 +0.01%
  simplifycfg.NumHoistCommonCode 879000 -> 879010 +0.00%
  simplifycfg.NumHoistCommonInstrs 2507840 -> 2507868 +0.00%
  local.NumPHICSEs 185800 -> 185802 +0.00%
  correlated-value-propagation.NumCmps 270732 -> 270734 +0.00%
  bdce.NumRemoved 384163 -> 384165 +0.00%
  gvn.NumGVNEqProp 427638 -> 427640 +0.00%
  instcombine.NumSunkInst 3378701 -> 3378715 +0.00%
  simplifycfg.NumSpeculations 395963 -> 395964 +0.00%
  instsimplify.NumSimplified 2467387 -> 2467391 +0.00%
Regressions:
  instcombine.NumExpand 2675 -> 2649 -0.97%
  instcount.NumOrInst 1152007 -> 1151920 -0.01%
  instcount.NumXorInst 541469 -> 541431 -0.01%
  instcombine.NumFactor 45550 -> 45547 -0.01%
  instcount.NumAndInst 3894899 -> 3894718 -0.00%
  instcombine.NumDeadInst 41023613 -> 41022227 -0.00%
  instsimplify.NumExpand 292176 -> 292171 -0.00%
  instcombine.NumCombined 120633273 -> 120631610 -0.00%
  instcombine.NumReassoc 278314 -> 278311 -0.00%
  instcombine.NumConstProp 168159 -> 168158 -0.00%

+6 icu/decNumber.ll
+4 cpython/socketmodule.ll
+4 typst-rs/5z4no3nnr5v1s13.ll
+4 zed-rs/468j8mrahlfb4zd02cozu1ma6.ll
+3 mitsuba3/sphere.ll
+2 eastl/TestBitset.ll
+2 glslang/ParseHelper.ll
+2 libwebp/muxread.ll
+2 llvm/MIRCanonicalizerPass.ll
+2 typst-rs/3dimj4rf5dyrieyi.ll
+1 pola-rs/3ll6ckwmxs5b00p4hfj8q4ugk.ll
+1 sqlite/sqlite3.ll
+1 yosys/extract_counter.ll
+0 abc/abcExact.ll
+0 abc/cuddUtil.ll
+0 boost/test_codecvt.ll
+0 boost/to_chars.ll
+0 box2d/imgui.ll
+0 bullet3/b3GpuSapBroadphase.ll
+0 bullet3/btCompoundCompoundCollisionAlgorithm.ll
+0 bullet3/btQuantizedBvh.ll
+0 c3c/sema_decls.ll
+0 casadi/feasiblesqpmethod.ll
+0 clamav/dlp.ll
+0 cmake/archive_read_support_format_iso9660.ll
+0 cmake/http.ll
+0 curl/http.ll
+0 cxxopts/example.ll
+0 duckdb/zstdmt_compress.ll
+0 ffmpeg/motion_est.ll
+0 ffmpeg/vp9_metadata.ll
+0 flac/ogg_decoder_aspect.ll
+0 git/revision.ll
+0 graphviz/stress.ll
+0 hdf5/H5.ll
+0 libigl/edge_collapse_is_valid.ll
+0 libjpeg-turbo/jdsample.ll
+0 libpng/pngrutil.ll
+0 llama.cpp/llama-vocab.ll
+0 llvm/MCAsmStreamer.ll
+0 llvm/RustDemangle.ll
+0 meshlab/filter_isoparametrization.ll
+0 mitsuba3/cylinder.ll
+0 ncnn/deconvolutiondepthwise.ll
+0 ncnn/squeeze.ll
+0 nori/imagepanel.ll
+0 openblas/dgesvdq.ll
+0 opencv/tldDetector.ll
+0 opencv/tldUtils.ll
+0 openjdk/hb-ot-layout.ll
+0 openjdk/p11_mutex.ll
+0 openspiel/go_board.ll
+0 openspiel/phantom_go_board.ll
+0 openssl/curve448.ll
+0 openssl/exptest.ll
+0 openssl/hpke_test.ll
+0 openssl/quictestlib.ll
+0 openusd/fileIO.ll
+0 pbrt-v4/shapes.ll
+0 pocketpy/compiler.ll
+0 postgres/explain.ll
+0 proxygen/HTTP2PriorityQueue.ll
+0 proxygen/http_parser_cpp.ll
+0 recastnavigation/DetourTileCache.ll
+0 redis/db.ll
+0 redis/geohash_helper.ll
+0 ruby/gc.ll
+0 ruff-rs/cfxd69c6qnho6x36na7837ea7.ll
+0 slurm/job_mgr.ll
+0 stb/stb_voxel_render.ll
+0 typst-rs/2i78fvbm4wocuesi.ll
+0 typst-rs/3kgmqnxcsl3z3n0n.ll
+0 typst-rs/40w6rezair915kkd.ll
+0 uv-rs/5g6yctdy2fnldnaxoelkyitnd.ll
+0 yara-x-rs/ehd2m88swoa0hwh8k90dxhn2z.ll
+0 z3/seq_rewriter.ll
+0 zed-rs/8uq0kpgi8jqekwanrrlvbr0h1.ll
+0 zstd/zstdmt_compress.ll
-1 ffmpeg/url.ll
-1 nanobind/nb_internals.ll
-2 postgres/controldata.ll
-5 cmake/test_int_C.ll
-24 eastl/TestAtomicBasic.ll

@github-actions
Copy link
Contributor

This patch contains numerous localized LLVM IR transformations across many benchmarks, primarily focused on restructuring conditional logic and phi node operands. The major changes are:

  1. Conditional Logic Restructuring: Many instances replace chains of and/or instructions with cascaded select instructions (e.g., select i1 A, i1 B, i1 false followed by select i1 C, i1 D, i1 E). This improves readability and may enable better optimization downstream by expressing nested boolean logic more explicitly.

  2. Phi Node Operand Updates: Numerous phi nodes have their incoming block references updated—typically shifting from one predecessor (e.g., %189) to another (e.g., %188)—to reflect control-flow changes or loop restructuring. These are mechanical but critical correctness-preserving updates.

  3. Pointer Arithmetic & Load Simplification: Several files (e.g., cxxopts.ll, ffmpeg/url.ll, libigl/edge_collapse_is_valid.ll) replace ptrtoint + arithmetic + inttoptr sequences with direct pointer arithmetic or simplify address computations (e.g., using getelementptr instead of manual offset math).

  4. Redundant Comparison Elimination: In functions like imgui.ll and btQuantizedBvh.ll, repeated floating-point comparisons are factored into intermediate select-based booleans (e.g., %or.cond140 = select i1 %72, i1 true, i1 %73) to avoid recomputation and clarify intent.

  5. Error/Validation Path Refinement: Several test and validation routines (e.g., openssl/hpke_test.ll, boost/to_chars.ll, eastl/TestAtomicBasic.ll) restructure multi-level conditionals used in assertion or error checking—often converting flat and chains into hierarchical select trees for better short-circuiting semantics and debuggability.

No major algorithmic or structural changes are introduced; the patch reflects low-level IR canonicalization and cleanup, likely resulting from recent optimizer passes (e.g., InstCombine, SimplifyCFG, LoopSimplify) or manual tuning.

model: qwen-plus-latest
CompletionUsage(completion_tokens=452, prompt_tokens=113646, total_tokens=114098, 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