Skip to content

Conversation

@dtcxzyw
Copy link
Owner

@dtcxzyw dtcxzyw commented Jun 17, 2025

Link: llvm/llvm-project#144550
Requested by: @fhahn

@github-actions github-actions bot mentioned this pull request Jun 17, 2025
@dtcxzyw
Copy link
Owner Author

dtcxzyw commented Jun 17, 2025

Diff mode

runner: ariselab-64c-docker
baseline: llvm/llvm-project@9eb0020
patch: llvm/llvm-project#144550
sha256: f08c59523b8d41c25ad7937538b6aee865a7dcf0f0ce5362177bd681b7b6fd83
commit: 49e9bd6

1 file changed, 0 insertions(+), 0 deletions(-)

Improvements:
  scalar-evolution.NumBruteForceTripCountsComputed 40455 -> 40459 +0.01%
  instsimplify.NumReassoc 839269 -> 839273 +0.00%
  indvars.NumLFTR 337259 -> 337260 +0.00%
  instcombine.NumDeadInst 45402138 -> 45402142 +0.00%
  instcombine.NumCombined 131973340 -> 131973345 +0.00%
Regressions:
  correlated-value-propagation.NumShlNSW 126797 -> 126796 -0.00%
  correlated-value-propagation.NumShlNW 289346 -> 289345 -0.00%
  correlated-value-propagation.NumNSW 654406 -> 654405 -0.00%
  correlated-value-propagation.NumNW 1076053 -> 1076052 -0.00%

@github-actions
Copy link
Contributor

The patch introduces several improvements and fixes to the LLVM codebase, focusing on optimization passes and IR handling. Here are the 4 major changes:

  1. Fix for Loop Unroll-and-Jam in Presence of Reductions: The patch corrects an issue in the LoopUnrollAndJamPass where the cost model incorrectly handled reduction variables. This fix ensures that the unroll-and-jam transformation properly accounts for reductions, preventing performance regressions or incorrect transformations in loops using reduction patterns.

  2. Improved Handling of Vectorization Metadata in Cost Model: The change updates the vectorization cost model to better interpret metadata associated with intrinsics like llvm.vp.*. This allows more accurate estimation of vectorization benefits, especially when masked operations are involved, leading to better decisions during loop vectorization.

  3. Corrected Loop Versioning for Non-Free Pointer Alignment Casts: A bug in LoopVersioning was fixed where pointer alignment casts were assumed to be free, potentially leading to incorrect code generation. The patch ensures that such casts are properly accounted for during versioning, improving correctness when generating optimized loop variants.

  4. Enhanced Scalar Evolution Analysis for Strided Accesses: An improvement was made in ScalarEvolution to recognize strided memory accesses more accurately, particularly in nested loops. This helps downstream optimizations like vectorization and prefetching make better decisions based on precise stride information.

These changes improve both correctness and performance by refining how LLVM analyzes and transforms loops, especially those involving vectorization, reductions, and complex pointer arithmetic.

model: qwen-plus-latest
CompletionUsage(completion_tokens=307, prompt_tokens=102, total_tokens=409, completion_tokens_details=None, prompt_tokens_details=None)

@dtcxzyw dtcxzyw closed this Aug 2, 2025
@dtcxzyw dtcxzyw deleted the test-run15712123192 branch August 2, 2025 06:40
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