[all-commits] [llvm/llvm-project] 8e7461: [LoadStoreVectorizer] Batch alias analysis results...

Drew Kersnar via All-commits all-commits at lists.llvm.org
Thu Jul 10 09:23:55 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8e7461e29a7c9f1721758b30eb99b0ccab45a7cd
      https://github.com/llvm/llvm-project/commit/8e7461e29a7c9f1721758b30eb99b0ccab45a7cd
  Author: Drew Kersnar <dkersnar at nvidia.com>
  Date:   2025-07-10 (Thu, 10 Jul 2025)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
    A llvm/test/Transforms/LoadStoreVectorizer/batch-aa-compile-time.ll

  Log Message:
  -----------
  [LoadStoreVectorizer] Batch alias analysis results to improve compile time (#147555)

This should be generally good for a lot of LSV cases, but the attached
test demonstrates a specific compile time issue that appears in the
event where the `CaptureTracking` default max uses is raised.

Without using batching alias analysis, this test takes 6 seconds to
compile in a release build. With, less than a second. This is because
the mechanism that proves `NoAlias` in this case is very expensive
(`CaptureTracking.cpp`), and caching the result leads to 2 calls to that
mechanism instead of ~300,000 (run with -stats to see the difference)

This test only demonstrates the compile time issue if
`capture-tracking-max-uses-to-explore` is set to at least 1024, because
with the default value of 100, the `CaptureTracking` analysis is not
run, `NoAlias` is not proven, and the vectorizer gives up early.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list