Skip to content
This repository was archived by the owner on Mar 17, 2026. It is now read-only.

pre-commit: PR185124#3541

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

pre-commit: PR185124#3541
zyw-bot wants to merge 3 commits intomainfrom
test-run22784774549

Conversation

@zyw-bot
Copy link
Collaborator

@zyw-bot zyw-bot commented Mar 6, 2026

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

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

zyw-bot commented Mar 6, 2026

Diff mode

runner: ariselab-64c-docker
baseline: llvm/llvm-project@d34f179
patch: llvm/llvm-project#185124
sha256: fa24d2622003c1dfed1f1b122be7ce64621e0d90cbcb99a117700b13e277820b
commit: d952fd7

3315 files changed, 2977483 insertions(+), 2998883 deletions(-)

Improvements:
  correlated-value-propagation.NumCmpIntr 25 -> 34 +36.00%
  instcombine.NumExpand 2628 -> 2687 +2.25%
  loop-rotate.NumInstrsHoisted 1158 -> 1165 +0.60%
  simplifycfg.NumSpeculations 393029 -> 395200 +0.55%
  loop-rotate.NumNotRotatedDueToHeaderSize 5138 -> 5159 +0.41%
  licm.NumBOAssociationsHoisted 3412 -> 3421 +0.26%
  instcount.NumSelectInst 1781781 -> 1786002 +0.24%
  simple-loop-unswitch.NumSelects 2588 -> 2594 +0.23%
  function-attrs.NumNonNullReturn 24467 -> 24502 +0.14%
  dse.NumCFGSuccess 8324 -> 8334 +0.12%
Regressions:
  loop-simplifycfg.NumLoopBlocksDeleted 6906 -> 6777 -1.87%
  simplifycfg.NumLookupTablesHoles 2404 -> 2367 -1.54%
  instcount.NumFreezeInst 55942 -> 55665 -0.50%
  jump-threading.NumDupes 133660 -> 133020 -0.48%
  aggressive-instcombine.NumPopCountRecognized 235 -> 234 -0.43%
  loop-simplifycfg.NumLoopExitsDeleted 4227 -> 4212 -0.35%
  correlated-value-propagation.NumMinMax 10113 -> 10092 -0.21%
  adce.NumBranchesRemoved 23126 -> 23088 -0.16%
  jump-threading.NumThreads 2703117 -> 2698919 -0.16%
  simplifycfg.NumFoldBranchToCommonDest 750316 -> 749421 -0.12%

+10 cpython/hamt.ll
+10 curl/cfilters.ll
+10 openssl/bn_x931p.ll
+6 arrow/bignum.ll
+4 abc/cuddSubsetHB.ll
+4 typst-rs/avdrw26ojy6f9qt.ll
+3 hyperscan/nfa_api_dispatch.ll
+3 llvm/VPlanAnalysis.ll
+3 lua/lstrlib.ll
+3 luajit/minilua.ll
+3 meilisearch-rs/2d8gq047pqsnm94t.ll
+3 nori/colorwheel.ll
+3 uv-rs/7khc3ibab4pxgcl4we6absvwc.ll
+2 stat-rs/43fparx0v87xel0c.ll
+2 uv-rs/cytct23blftf7o2jvmn4wn2y4.ll
+2 z3/fm_tactic.ll
+1 coreutils-rs/jiqj5u7teuhb0o0.ll
+1 ffmpeg/utvideodec.ll
+1 ffmpeg/yadif_common.ll
+1 icu/stringpiece.ll
+1 openssl/statem_lib.ll
+1 postgres/parse_agg.ll
+1 qdrant-rs/1sx1pjpbst7gikiv.ll
+1 ruby/pm_integer.ll
+1 ruff-rs/4mw6pgpw5k6plov2wl753htkw.ll
+1 uv-rs/afb3uo40tnjfqrj7louv4l8in.ll
+1 yosys/ezsat.ll
-1 boost/buffer_with_strategies.ll
-1 darktable/introspection_denoiseprofile.ll
-1 folly/EpollBackend.ll
-1 hermes/Triple.ll
-1 libigl/incircle.ll
-1 libquic/quic_spdy_stream.ll
-1 nix/worker.ll
-1 postgres/stem_ISO_8859_1_dutch.ll
-1 postgres/stem_UTF_8_dutch.ll
-1 qemu/user.ll
-2 boost/calculate_point_order.ll
-2 cpython/pegen_errors.ll
-2 llama.cpp/llama-batch.ll
-2 memcached/proto_text.ll
-2 minetest/guiChatConsole.ll
-2 openspiel/chess_board.ll
-2 php/mime_sniff.ll
-2 php/php_date.ll
-2 pola-rs/d3td6wm725z0ntv4qctjf4t3y.ll
-2 pola-rs/dgtr4n6toyrs0lo6gtn8sd4wk.ll
-2 quinn-rs/4yxso253x2t3on66s8m9gjf1c.ll
-2 rocksdb/compaction.ll
-2 ruby/range.ll
-2 ruff-rs/0jxokf4xx9lz4dh6x5yfoh8sv.ll
-2 sdl/SDL_gpu_vulkan.ll
-3 actix-rs/34zqw30jnodxf0r6.ll
-3 git/sparse-checkout.ll
-3 gromacs/read_params.ll
-3 hyperscan/ng_limex_accel.ll
-3 lean4/object.ll
-3 redis/sds.ll
-3 rust-analyzer-rs/2w4lvnbcibp86ysy.ll
-3 smol-rs/42mrm3r913zsut0b.ll
-4 boost/area.ll
-4 llvm/TypedPointerType.ll
-4 openexr/ImfDeepTiledInputFile.ll
-4 quantlib/recoveryratequote.ll
-4 quinn-rs/8uwd9uga0xtfvdqnd2p3u31ot.ll
-5 chibicc/type.ll
-5 cmake/cmXcFramework.ll
-5 delta-rs/1x96nto90vd3u3mo.ll
-5 eastl/TestSmartPtr.ll
-5 graphviz/hedges.ll
-5 image-rs/5oy2v8fghrh79s8.ll
-5 libquic/spdy_utils.ll
-5 linux/addrconf.ll
-5 ockam-rs/3jggqsoeoucpes36.ll
-5 openusd/faceSurface.ll
-5 rustfmt-rs/4gk399kploc9gcsb.ll
-5 rustfmt-rs/4ns0rlx88oaf4rkk.ll
-5 zed-rs/8n2fsvz9zbnw9ojg9jkj0503g.ll
-6 box2d/broad_phase.ll
-6 cvc5/ceg_bv_instantiator.ll
-6 duckdb/ub_duckdb_transaction.ll
-6 eastl/TestIterator.ll
-6 graphviz/shapes.ll
-6 image-rs/1clnprdgqfw2q9lq.ll
-6 libwebp/image_enc.ll
-6 linux/mmap.ll
-6 meshlab/TexturePainter.ll
-6 mold/arena.ll
-6 ocio/CDLParser.ll
-6 openjdk/jvmtiImpl.ll
-6 pola-rs/90bdyry49xwqsl9ia2234gmqh.ll
-6 proj/log.ll
-6 ruby/dir.ll
-6 sdl/SDL_hidapi_wii.ll
-6 slurm/node_scheduler.ll
-6 zxing/ODDataBarCommon.ll
-7 openspiel/laser_tag.ll
-7 spike/csrs.ll
-7 verilator/V3AstNodes.ll
-8 hdf5/h5tools_ref.ll
-8 hermes/SimpleStackPromotion.ll
-8 lean4/name.ll
-8 opencv/persistence.ll
-8 openmpi/bfrop_base_macro_backers.ll
-8 postgres/int8.ll
-9 cmake/cmConditionEvaluator.ll
-9 curl/conncache.ll
-9 pbrt-v4/cameras.ll
-9 rocksdb/offpeak_time_info.ll
-10 clap-rs/46qpaucouebcxfrx.ll
-10 clap-rs/5651dp9k16h53y8x.ll
-10 darktable/view.ll
-10 lean4/Split.ll
-10 luau/Error.ll
-11 libigl/orient2D.ll
-12 csmith/CGOptions.ll
-12 llvm/InstCombineVectorOps.ll
-12 llvm/SanitizerArgs.ll
-12 meshlab/VisibilityCheck.ll
-12 mitsuba3/rectangle.ll
-12 nix/binary-cache-store.ll
-12 nori/textbox.ll
-12 velox/AsyncDataCache.ll
-14 sentencepiece/generated_enum_util.ll
-14 tokenizers-rs/1k9vblvd5jyd3qmf.ll
-16 regex-rs/v8mcpnwv4glojx2.ll
-19 stockfish/tbprobe.ll
-22 wireshark/interface_sort_filter_model.ll
-23 ruff-rs/5dfll5lkwchxw2w29zefsp7hh.ll
-30 wireshark/packet-at.ll

@github-actions
Copy link
Contributor

github-actions bot commented Mar 6, 2026

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

  1. Loop and Control Flow Simplification: Multiple functions now use select instructions instead of branching to compute condition results (e.g., icmp eq + select instead of icmp ne + br + phi). This eliminates unnecessary basic blocks like .thread, .critedge, and redundant phi nodes, flattening control flow.

  2. Critical Edge Splitting & Block Merging: Several cases replace explicit critical edge splits (e.g., .critedge, .thread) with direct select-based logic or merged successors (e.g., %_ZNK5boost8geometry6detail7overlay25traversal_switch_detector...exit.thread gaining new predecessors), reducing block count and improving CFG structure.

  3. Phi Node Reduction and Refinement: Phi nodes are simplified — often replacing multi-operand phis with select-driven values or removing dead/infeasible incoming edges (e.g., dropping %13, %85, or %12 from phi lists). Some phis now use undef for uninitialized paths where dominance ensures safety.

  4. Predicate Logic Refactoring: Boolean conditions are restructured using and, or, xor, and select to avoid redundant branches and improve canonicalization (e.g., %.not = icmp eq ...; %or.cond = select i1 ..., i1 ..., i1 false patterns), enhancing optimization opportunities.

  5. Exception Handling and Cleanup Path Updates: Landingpad and cleanup paths are updated to reflect new control flow — e.g., .body and resume blocks now include newly reachable predecessors (like %317 instead of %319), and resume phis are adjusted accordingly to maintain exception semantics.

These changes collectively improve IR canonicalization, reduce control-flow complexity, and support more effective downstream optimizations — all while preserving semantics.

model: qwen-plus-latest
CompletionUsage(completion_tokens=405, prompt_tokens=105388, total_tokens=105793, completion_tokens_details=None, prompt_tokens_details=None)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants