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

pre-commit: PR171195#3150

Closed
zyw-bot wants to merge 3 commits intomainfrom
test-run20144271154
Closed

pre-commit: PR171195#3150
zyw-bot wants to merge 3 commits intomainfrom
test-run20144271154

Conversation

@zyw-bot
Copy link
Copy Markdown
Collaborator

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

Link: llvm/llvm-project#171195
Requested by: @dtcxzyw

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

zyw-bot commented Dec 11, 2025

Diff mode

runner: ariselab-64c-docker
baseline: llvm/llvm-project@5eb2ec2
patch: llvm/llvm-project#171195
sha256: 53355c08352cbc624b1f31926f31d703499ef051f1ac38ffabd7fb4baad24407
commit: 93979c4

127 files changed, 40113 insertions(+), 39873 deletions(-)

Improvements:
  instsimplify.NumExpand 292176 -> 292656 +0.16%
  instsimplify.NumReassoc 801546 -> 802029 +0.06%
  correlated-value-propagation.NumAnd 44490 -> 44504 +0.03%
  simple-loop-unswitch.NumCostMultiplierSkipped 17253 -> 17255 +0.01%
  loop-simplifycfg.NumTerminatorsFolded 10829 -> 10830 +0.01%
  simplifycfg.NumSinkCommonCode 378256 -> 378281 +0.01%
  instcombine.NumSunkInst 3378701 -> 3378837 +0.00%
  instcombine.NumConstProp 168159 -> 168165 +0.00%
  simplifycfg.NumSinkCommonInstrs 828610 -> 828638 +0.00%
  correlated-value-propagation.NumPhiCommon 52041 -> 52042 +0.00%
Regressions:
  correlated-value-propagation.NumNUW 570815 -> 570737 -0.01%
  instcombine.NumFactor 45550 -> 45544 -0.01%
  loop-instsimplify.NumSimplified 182023 -> 182013 -0.01%
  local.NumPHICSEs 185800 -> 185794 -0.00%
  dse.NumCFGChecks 635323 -> 635303 -0.00%
  adce.NumRemoved 95574 -> 95572 -0.00%
  licm.NumSunk 268146 -> 268141 -0.00%
  reassociate.NumChanged 4978841 -> 4978762 -0.00%
  correlated-value-propagation.NumSelects 228013 -> 228010 -0.00%
  licm.NumPromotionCandidates 586481 -> 586475 -0.00%

+25 ruff-rs/b7bzulfx0416fsx8nur737ayt.ll
+24 typst-rs/59tuvc5m3xlovl3o.ll
+8 pingora-rs/6wibsd5gc0z7di4fjkaikq290.ll
+8 quinn-rs/8gvuf414c45p32pkedq2e8fh4.ll
+7 quiche-rs/3rbypq6qj9lh7j3fj709nruoz.ll
+4 quinn-rs/3uc0v1jwpmwvdnrw6zkwgvc43.ll
+4 uv-rs/2rwzo8eniyqblpi6p2dviozdb.ll
+4 wasmtime-rs/3qxuuvy9ipi9muus.ll
+1 delta-rs/3qvofkyb7k5flefa.ll
+1 pingora-rs/86gtuzsa8hmfthtp7wbav90h5.ll
+1 pingora-rs/9p340cni5ef4byzbq5uzx23g8.ll
+1 quiche-rs/bynr28msnaqitw2tznvu2fq05.ll
+0 actix-rs/1h6chd9qxbb3rt70.ll
+0 coreutils-rs/2fxrwnovw97v41kk.ll
+0 delta-rs/1rw3q64nilk4jthd.ll
+0 delta-rs/2n0ez5zuwgs53clg.ll
+0 delta-rs/3qkwqfk85qralejq.ll
+0 delta-rs/s2xrj2sh770tx8d.ll
+0 eastl/TestBitset.ll
+0 fish-rs/0gmdype6iqmr04uqdmt3mv74e.ll
+0 folly/StandardLogHandlerFactory.ll
+0 folly/json_patch.ll
+0 hermes/CodeBlock.ll
+0 image-rs/30755d6iao7ojcvl.ll
+0 image-rs/5ez7udly19o3uj1p.ll
+0 influxdb-rs/u7z03ejdn0bs7a8.ll
+0 jiff-rs/74pz6gzkyt3smdu0mmln4d620.ll
+0 llvm/DWARFFormValue.ll
+0 pola-rs/55d4mb2xubgpcc6e6wba386pp.ll
+0 pola-rs/56y0q1nttgdkjvspd2zn6v52v.ll
+0 proxygen/TraceEvent.ll
+0 regex-rs/11vfjke4utuj478u.ll
+0 ruff-rs/abz4enoi74elfoplai1nrzl05.ll
+0 rust-analyzer-rs/8q1esjraj83sh5t.ll
+0 typst-rs/1ru1rhojhbz2vfey.ll
+0 unicode-normalization-rs/kwscsepwptyv51i.ll
+0 uv-rs/6i7z62z7fv9d9snjurjns7wg7.ll
+0 uv-rs/7hquyjfu33ktlfqf4vsa7lk3p.ll
+0 uv-rs/7ti6afa5yiixvf7gep1srhf0f.ll
+0 wasmtime-rs/21g2sj3ridcu2juk.ll
+0 wasmtime-rs/rpltamrj260p6v4.ll
+0 zed-rs/8n2fsvz9zbnw9ojg9jkj0503g.ll
-1 openjdk/g1YoungCollector.ll
-1 openssl/f_generic.ll
-3 folly/ProgramOptions.ll
-3 openjdk/g1CollectedHeap.ll
-4 llvm/DIE.ll

@github-actions
Copy link
Copy Markdown
Contributor

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

  1. Replacement of trunc+icmp with and+icmp for zero-extension checks: Across multiple benchmarks (delta-rs, coreutils-rs, eastl, image-rs, jiff-rs, openjdk, etc.), patterns like trunc i128 %x to i64; icmp eq i64 %y, 1 are replaced with and i128 %x, MASK; icmp eq i128 %y, 1. This avoids truncation and preserves full-width comparison semantics, likely improving correctness for large integers.

  2. Refinement of switch statement default targets: In several switch i8 instructions (e.g., in actix-rs, delta-rs, influxdb-rs), the default target label is updated (e.g., from .thread26 to .thread34). This reflects internal control-flow restructuring, possibly due to loop optimizations or block reordering.

  3. Simplification of conditional logic using bitwise AND and OR: Complex select-based conditionals (e.g., select i1 %cond1, i1 true, i1 %cond2) are replaced with direct or/and operations (e.g., or i1 %cond1, %cond2). This reduces instruction count and exposes more optimization opportunities.

  4. Cleanup of dead or redundant truncations: Several instances of unnecessary trunc instructions (e.g., truncating i120, i48, i24 values before use) are removed, replaced by and masks to extract relevant bits—improving clarity and eliminating potential undefined behavior from overflow-prone truncations.

  5. Phi node and landing pad operand updates: In exception-handling regions (e.g., pingora-rs, quiche-rs), phi nodes and landing pad operands are updated to reference correct predecessor blocks (e.g., %17 instead of %16, %23 instead of %22). This ensures correct SSA form after control-flow graph modifications, maintaining exception safety and debuggability.

These changes collectively reflect ongoing improvements in LLVM’s integer handling, control-flow simplification, and exception-handling code generation—enhancing both correctness and performance across diverse Rust and C++ codebases.

model: qwen-plus-latest
CompletionUsage(completion_tokens=494, prompt_tokens=110139, total_tokens=110633, completion_tokens_details=None, prompt_tokens_details=None)

@dtcxzyw dtcxzyw closed this Jan 8, 2026
@dtcxzyw dtcxzyw deleted the test-run20144271154 branch January 8, 2026 16:02
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