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

pre-commit: PR165159 - #3556

Open
zyw-bot wants to merge 3 commits into
mainfrom
test-run22964986636
Open

pre-commit: PR165159#3556
zyw-bot wants to merge 3 commits into
mainfrom
test-run22964986636

Conversation

@zyw-bot

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

Copy link
Copy Markdown
Collaborator

Link: llvm/llvm-project#165159
Requested by: @yxsamliu

@zyw-bot

zyw-bot commented Mar 11, 2026

Copy link
Copy Markdown
Collaborator Author

Diff mode

runner: ariselab-64c-docker
baseline: llvm/llvm-project@2952243
patch: llvm/llvm-project#165159
sha256: 777eee43fb45b28b12927351388ff1cd60f1a92e2e91f142771c60f24b49afd2
commit: 2ddcca7

126 files changed, 128882 insertions(+), 129820 deletions(-)

Improvements:
  sroa.NumLoadsPredicated 14326 -> 14356 +0.21%
  sroa.NumStoresPredicated 3820 -> 3826 +0.16%
  instcount.NumExtractElementInst 55343 -> 55388 +0.08%
  instcount.NumInsertElementInst 90568 -> 90596 +0.03%
  sroa.NumLoadsSpeculated 316436 -> 316506 +0.02%
  loop-idiom.NumMemSet 38904 -> 38910 +0.02%
  memory-builtins.ObjectVisitorLoad 23158 -> 23160 +0.01%
  attributor.NumAAs 3940945 -> 3941225 +0.01%
  mem2reg.NumLocalPromoted 587512 -> 587552 +0.01%
  sroa.NumVectorized 697476 -> 697521 +0.01%
Regressions:
  memcpyopt.NumCpyToSet 11951 -> 11936 -0.13%
  instcombine.NumDeadStore 25945 -> 25936 -0.03%
  correlated-value-propagation.NumNonNull 10847375 -> 10845495 -0.02%
  memdep.NumCacheDirtyNonLocalPtr 23133 -> 23131 -0.01%
  instcount.NumAllocaInst 5810623 -> 5810320 -0.01%
  capture-tracking.NumNotCapturedBefore 19318222 -> 19317540 -0.00%
  instcount.NumCallInst 38951311 -> 38950078 -0.00%
  memcpyopt.NumCallSlot 1014356 -> 1014330 -0.00%
  sroa.NumAllocaPartitionUses 266621794 -> 266615500 -0.00%
  memcpyopt.NumMemCpyInstr 1471662 -> 1471630 -0.00%

+17 graphviz/neatosplines.ll
+3 cpython/compile.ll
+3 xgboost/updater_refresh.ll
+1 ffmpeg/avformat.ll
+0 assimp/FBXConverter.ll
+0 box2d/sample_collision.ll
+0 ceres/line_search.ll
+0 gromacs/colvarparse.ll
+0 llvm/InstrRefBasedImpl.ll
+0 opencv/binarizer.ll
+0 opencv/graphsegmentation.ll
+0 openusd/blendShapeQuery.ll
+0 php/util.ll
+0 qdrant-rs/pgs97hhgng8x0qz.ll
-1 delta-rs/11f8x98axanecwnw.ll
-1 ffmpeg/ffmpeg_dec.ll
-1 z3/euf_proof_checker.ll
-2 image-rs/1clnprdgqfw2q9lq.ll
-2 z3/seq_axioms.ll
-3 bullet3/b3OverlappingPairCache.ll
-3 bullet3/btConvexHullComputer.ll
-3 cmake/session.ll
-3 gromacs/lincs.ll
-3 typst-rs/40w6rezair915kkd.ll
-3 wireshark/sparkline_delegate.ll
-4 bullet3/b3DynamicBvhBroadphase.ll
-4 hyperscan/rose_build_bytecode.ll
-4 llvm/AArch64O0PreLegalizerCombiner.ll
-4 llvm/AttributorAttributes.ll
-4 llvm/OMPIRBuilder.ll
-4 php/dirstream.ll
-6 duckdb/ub_duckdb_storage_metadata.ll
-7 freetype/ftbase.ll
-9 open3d/EstimateNormals.ll
-9 opencv/erfilter.ll
-9 opencv/gapi_core_perf_tests.ll
-9 opencv/gnnparsers.ll
-9 velox/GreatestLeast.ll
-12 hermes/Exceptions.ll
-12 openusd/collectionCache.ll
-12 regex-rs/gbxkn0az9l87aop.ll
-12 rust-analyzer-rs/12c5ozyvkyoo7zj1.ll
-12 wasmtime-rs/16qf4j2oevjc61uc.ll
-14 llvm/FunctionAttrs.ll
-15 xgboost/updater_approx.ll
-24 velox/ArraySort.ll

@github-actions

Copy link
Copy Markdown
Contributor

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

  1. Vectorization of Memory Operations: Replaced llvm.memset and llvm.memcpy calls with vectorized store/load instructions (e.g., <2 x i64>, <4 x i32>, <2 x float>, <2 x double>), improving memory operation efficiency.

  2. Struct-to-Vector Type Conversion: Changed alloca declarations for small structs (e.g., {i64, i64}, {float, float}) to native vector types (<2 x i64>, <2 x float>), enabling better register usage and vectorized access.

  3. Elimination of Temporary Alloca + memcpy Patterns: Removed redundant stack allocations used solely as memcpy intermediaries (e.g., %.sroa.0.i.i.i.i), replacing them with direct vector loads/stores and phi nodes—reducing stack pressure and instruction count.

  4. Improved Alignment Handling: Updated alignment attributes on vector loads/stores (e.g., align 8, align 16) to match vector type requirements, ensuring correctness and enabling efficient SIMD execution.

  5. Cleanup of Lifetime Intrinsics: Removed unnecessary llvm.lifetime.start/end intrinsics around now-eliminated temporary allocas, simplifying control flow and reducing metadata overhead.

These changes collectively reflect aggressive SROA (Scalar Replacement of Aggregates) and vectorization optimizations, enhancing performance by leveraging SIMD capabilities and reducing memory traffic.

model: qwen-plus-latest
CompletionUsage(completion_tokens=326, prompt_tokens=109481, total_tokens=109807, 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