Skip to content

pre-commit: PR174739#3516

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

pre-commit: PR174739#3516
zyw-bot wants to merge 3 commits intomainfrom
test-run22484340811

Conversation

@zyw-bot
Copy link
Collaborator

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

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

zyw-bot commented Feb 27, 2026

Diff mode

runner: ariselab-64c-docker
baseline: llvm/llvm-project@d6fcf47
patch: llvm/llvm-project#174739
sha256: 223159fa60bbc8ae95fe7759a85254f1d1921b649fbac84d5bb0e0fb430b47a3
commit: 45d13c5

90 files changed, 331849 insertions(+), 333158 deletions(-)

Improvements:
  memcpyopt.NumStackMove 123698 -> 123739 +0.03%
  capture-tracking.NumCapturedBefore 16155920 -> 16158978 +0.02%
  instcount.NumIntToPtrInst 371952 -> 371956 +0.00%
  licm.NumPromotionCandidates 583394 -> 583397 +0.00%
  correlated-value-propagation.NumPhis 1238129 -> 1238134 +0.00%
  simplifycfg.NumFoldValueComparisonIntoPredecessors 512362 -> 512364 +0.00%
  instcount.NumSwitchInst 623985 -> 623987 +0.00%
  instcombine.NumPHICSEs 2323108 -> 2323115 +0.00%
  globaldce.NumFunctions 347355 -> 347356 +0.00%
  simplifycfg.NumSinkCommonCode 375779 -> 375780 +0.00%
Regressions:
  capture-tracking.NumNotCapturedBefore 19317429 -> 19315691 -0.01%
  memcpyopt.NumCallSlot 1011065 -> 1010978 -0.01%
  simplifycfg.NumInvokeSetsFormed 53035 -> 53032 -0.01%
  instcount.NumFreezeInst 55879 -> 55876 -0.01%
  simplifycfg.NumInvokesMerged 144556 -> 144550 -0.00%
  instcombine.NumConstProp 155104 -> 155098 -0.00%
  memcpyopt.NumMemCpyInstr 1470866 -> 1470817 -0.00%
  gvn.IsValueFullyAvailableInBlockNumSpeculationsMax 600956 -> 600944 -0.00%
  instcount.NumSelectInst 1779718 -> 1779692 -0.00%
  scalar-evolution.NumExitCountsNotComputed 11926918 -> 11926744 -0.00%

+8 fish-rs/5o5xgybh9xo8acbeboom17uhq.ll
+8 pola-rs/4k9mmppgjee0j2w63yqma6wuu.ll
+8 wireshark/io_graph_dialog.ll
+7 pola-rs/9wkduw3zxryyte19eworhm0fy.ll
+6 zed-rs/9r3tgj00e2sbbyanbvf1oqgns.ll
+4 elfshaker-rs/3a1f053714hdbf2r1u9m19s6u.ll
+4 openssl/ecparam.ll
+4 openssl/pkey.ll
+4 openssl/provider_util.ll
+4 pola-rs/1nb2gyhm0tinqn6ey8ai4djfd.ll
+4 pola-rs/8eussl4v4il1ycklu8l0t5t0e.ll
+4 pola-rs/95o50twkejbrqkhqoqrezl4cq.ll
+4 pola-rs/d3td6wm725z0ntv4qctjf4t3y.ll
+4 pola-rs/eno41myg76h8nryc673zxzdw7.ll
+4 proj/gridshift.ll
+4 ruff-rs/4y0unrlbgjyvysqyc1zrg4crs.ll
+4 uv-rs/0kkhun51krlzy97ykgp5cqxt0.ll
+4 uv-rs/2ws55tyk3c2zn8byx2xtgrvt3.ll
+4 zed-rs/59wnsznecs6we2kopjyje48jo.ll
+4 zed-rs/7z2xfgroq6luy23s4a62wgt90.ll
+4 zed-rs/dd8ztmg64g4x9ypkzwkofy6vi.ll
+4 zed-rs/dm2ksdv5qc85lqu404cluyab5.ll
+2 uv-rs/7rdx96gsz2ozv37i6eyh3cq12.ll
+0 llvm/SemaConcept.ll
+0 openssl/ssl_lib.ll
+0 rust-analyzer-rs/28jcyytu5knrz2fd.ll
+0 zed-rs/d7h2r6mystjn2jzwcl5ofeoiz.ll
-2 actix-rs/3q3jkuswkinqn2en.ll
-4 fish-rs/e69mx4kebbw5h90l2bpw0bwyt.ll
-4 postgres/execIndexing.ll
-4 zed-rs/5x7hg1mlcao6i0r3jb3d14b77.ll
-4 zed-rs/9fdv7qxvc9ek9liffc7407f9x.ll
-7 rust-analyzer-rs/4nrj6o47dqd25wok.ll
-8 delta-rs/264wku5om6u5pdmz.ll
-10 rust-analyzer-rs/hf9vzunhg9aziex.ll
-12 zed-rs/9eq7uj5u4le9a0i68pyu9khnb.ll
-14 typst-rs/4m3ebbqd1xx21e5m.ll
-20 coreutils-rs/n5dhracig0q9az4.ll
-35 meilisearch-rs/3f4k2xees4fvt0r.ll
-83 ockam-rs/2whckd326lu2ah2i.ll

@github-actions
Copy link
Contributor

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

  1. Removal of Redundant lifetime.start/end Intrinsics: Several functions (e.g., in actix-rs, coreutils-rs, delta-rs, elfshaker-rs) eliminate unnecessary @llvm.lifetime.start.p0 and @llvm.lifetime.end.p0 calls, often replacing them with direct memory operations or reusing existing stack slots—improving code size and eliminating spurious lifetime markers.

  2. Stack Slot Reallocation & SROA Refinements: In multiple benchmarks (coreutils-rs, delta-rs, elfshaker-rs, fish-rs, ockam-rs), alloca instructions are reordered or resized (e.g., swapping [40 x i8][24 x i8]), and SROA (Scalar Replacement of Aggregates) is refined—e.g., merging or relocating .sroa.* fields into larger or better-aligned stack slots (e.g., %13 instead of %.sroa.5) to improve locality and enable better optimization.

  3. Alias Scope Metadata Updates: Significant renumbering and restructuring of !noalias, !alias.scope, and !noalias metadata IDs across modules (coreutils-rs, llvm, meilisearch-rs). This reflects updated alias scope hierarchies—e.g., scopes now correctly associate with argument indices or new function-level scopes—enhancing precision for memory disambiguation.

  4. Phi Node and Control Flow Adjustments: Critical phi node updates (e.g., in coreutils-rs’s _ZN3std2io5Write18write_all_vectored...) fix predecessor lists (e.g., %105%102, %30%30) and correct loop-phi operand sources—ensuring correctness after CFG transformations like loop rotation or sink hoisting.

  5. Structural Cleanup in OpenSSL Benchmarks: New alloca %struct.ossl_param_st additions (%11) and corresponding memcpy/construct call adjustments in ecparam.ll and pkey.ll align parameter construction logic and simplify multi-step param setup—replacing cascaded memcpys with more direct usage and improving maintainability.

These changes collectively reflect ongoing optimizations in Rust’s LLVM backend: tighter stack layout, improved alias analysis fidelity, safer lifetime management, and robustness against control-flow and SROA-induced IR inconsistencies.

model: qwen-plus-latest
CompletionUsage(completion_tokens=548, prompt_tokens=114379, total_tokens=114927, 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