Skip to content

Conversation

@zyw-bot
Copy link
Collaborator

@zyw-bot zyw-bot commented Nov 20, 2025

Link: llvm/llvm-project#168796

Requested by: @dtcxzyw

@github-actions github-actions bot mentioned this pull request Nov 20, 2025
@dtcxzyw
Copy link
Owner

dtcxzyw commented Nov 20, 2025

cc @YonahGoldberg

@zyw-bot
Copy link
Collaborator Author

zyw-bot commented Nov 20, 2025

Diff mode

runner: ariselab-64c-docker
baseline: llvm/llvm-project@3f151a3
patch: llvm/llvm-project#168796
sha256: 6b606a333ef53a2a8428151291b08afb0ed4fd637c50abd30713a767b545bc01
commit: 9b479bf

293 files changed, 108984 insertions(+), 108289 deletions(-)

Improvements:
  sroa.NumVectorized 697857 -> 700549 +0.39%
  sroa.NumStoresPredicated 3634 -> 3648 +0.39%
  sroa.NumLoadsPredicated 14459 -> 14498 +0.27%
  sroa.NumLoadsSpeculated 316635 -> 316940 +0.10%
  vector-combine.NumVecLoad 4291 -> 4292 +0.02%
  sccp.NumInstRemoved 1939785 -> 1940038 +0.01%
  simplifycfg.NumFoldValueComparisonIntoPredecessors 512844 -> 512861 +0.00%
  dse.NumRedundantStores 36268 -> 36269 +0.00%
  instcombine.NumConstProp 157052 -> 157056 +0.00%
  memdep.NumCacheCompleteNonLocalPtr 5348635 -> 5348758 +0.00%
Regressions:
  reassociate.NumAnnihil 768 -> 764 -0.52%
  reassociate.NumFactor 3090 -> 3086 -0.13%
  correlated-value-propagation.NumAnd 44319 -> 44290 -0.07%
  correlated-value-propagation.NumShlNUW 152455 -> 152363 -0.06%
  correlated-value-propagation.NumShlNW 269516 -> 269358 -0.06%
  correlated-value-propagation.NumShlNSW 117061 -> 116995 -0.06%
  mem2reg.NumLocalPromoted 549700 -> 549418 -0.05%
  instcombine.NumReassoc 278808 -> 278694 -0.04%
  instsimplify.NumExpand 292264 -> 292155 -0.04%
  instcombine.NumFactor 45557 -> 45544 -0.03%

+105 wasmtime-rs/4bsmuvpz9r22ks1w.ll
+40 ockam-rs/gotvfwvqrrp4xgl.ll
+20 actix-rs/5k5ycrtlwwxldg7.ll
+20 delta-rs/9v8xvedf69luuxb.ll
+20 diesel-rs/1mcix0ravw4ybg9k.ll
+20 ockam-rs/8g2r22yshp3qi00.ll
+20 typst-rs/5antv5sfgwt5l2ke.ll
+9 luau/Parser.ll
+3 cpython/compile.ll
+2 open3d/Geometry3D.ll
+2 qdrant-rs/45o59dy68c4noo5t.ll
+1 ffmpeg/avformat.ll
+0 abseil-cpp/kernel_timeout_test.ll
+0 actix-rs/q4aavw6wh20so0r.ll
+0 box2d/sample_collision.ll
+0 ceres/dense_cholesky.ll
+0 clap-rs/3b4nqkxyl1xqdcre.ll
+0 darktable/blend.ll
+0 diesel-rs/1dr0ikhoh8prk7sr.ll
+0 draco/point_attribute.ll
+0 g2o/edge_project_xyz.ll
+0 image-rs/2ndzmzcdt55acj4k.ll
+0 llvm/ArgList.ll
+0 llvm/LoopVectorize.ll
+0 llvm/SemaHexagon.ll
+0 meshlab/filter_isoparametrization.ll
+0 minetest/cavegen.ll
+0 mold/arch-ppc64v1.ll
+0 opencv/aruco_detector.ll
+0 opencv/seam_finders.ll
+0 openusd/typeRegistry.ll
+0 pingora-rs/6wibsd5gc0z7di4fjkaikq290.ll
+0 quiche-rs/393tr1lo1v2gtavj2ucioo4eo.ll
+0 regex-rs/54dfm57uiwuw9jbd.ll
+0 ruff-rs/4indqiempoi7irtp7z9d7luyj.ll
+0 rustfmt-rs/2tgwtv970e5remme.ll
+0 typst-rs/1aflftgqyuracvze.ll
+0 typst-rs/1c2qpu6zljc8gscz.ll
+0 typst-rs/1ru1rhojhbz2vfey.ll
+0 uv-rs/25c8261lyby37joke03g9c71z.ll
+0 wasmtime-rs/4ab4rlryc5h7bf6z.ll
+0 wasmtime-rs/kpzz8s92vshq6im.ll
+0 zed-rs/bpcj0xb6nmpne8ezqc5krm4m9.ll
-1 ceres/schur_complement_solver.ll
-1 coreutils-rs/x8pbloshhgr8d49.ll
-3 llvm/BugReporter.ll
-4 zed-rs/7ukwrxq2hh2vqucbwedxkpvcs.ll
-8 luau/ConstraintGenerator.ll
-16 luau/TypeInfer.ll

@github-actions
Copy link
Contributor

The provided diff contains numerous changes across multiple LLVM IR files. After filtering out non-interesting changes (e.g., renaming, reordering, formatting), the major transformations are:

  1. Optimization of UTF-8 encoding in character handling: In several files (e.g., actix-rs, coreutils-rs, delta-rs), scalar integer operations for UTF-8 encoding are replaced with vectorized operations using <4 x i8> and insertelement. This enables better SIMD utilization and reduces instruction count by constructing multi-byte sequences in a single vector register.

  2. Improved alias analysis with scope metadata: Stores to stack slots in box2d now include !alias.scope metadata, clarifying memory access relationships and enabling more aggressive optimizations by informing the compiler about disjoint memory regions.

  3. Vectorization of arithmetic operations: In g2o and ceres, sequences of scalar floating-point operations are transformed into vectorized <2 x double> computations using shufflevector and fmul/fadd on vectors, improving throughput via horizontal and vertical parallelism.

  4. Refactoring of conditional logic with control flow: Complex select chains involving llvm.smax.i64 and comparisons are replaced with direct use of spec.select values, reducing redundant calculations. Additionally, some conditional branches are simplified into structured control flow using .then/.cont blocks, improving predictability.

  5. Memory layout and store optimizations: Several stores of 32-bit integers (e.g., ASCII characters like 123, 32) are upgraded to vector stores (<4 x i8>), aligning data more efficiently and enabling wider memory operations, particularly in string and pattern matching contexts.

These changes reflect a trend toward vectorization, improved memory aliasing information, and cleaner control flow, all aimed at performance optimization through better code generation.

model: qwen-plus-latest
CompletionUsage(completion_tokens=391, prompt_tokens=106352, total_tokens=106743, 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