[all-commits] [llvm/llvm-project] ef2085: [fir][aa] Add opt-in cache for use by fir `AliasAn...

Kareem Ergawy via All-commits all-commits at lists.llvm.org
Wed Sep 9 04:28:46 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ef208564acbfc9e8fef0d6c436bac1681f1a6778
      https://github.com/llvm/llvm-project/commit/ef208564acbfc9e8fef0d6c436bac1681f1a6778
  Author: Kareem Ergawy <kergawy at nvidia.com>
  Date:   2026-09-09 (Wed, 09 Sep 2026)

  Changed paths:
    M flang/include/flang/Optimizer/Analysis/AliasAnalysis.h
    M flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
    M flang/lib/Optimizer/Transforms/LoopInvariantCodeMotion.cpp
    A flang/unittests/Optimizer/AliasAnalysisRecursiveEffectsCacheTest.cpp
    M flang/unittests/Optimizer/CMakeLists.txt

  Log Message:
  -----------
  [fir][aa] Add opt-in cache for use by fir `AliasAnalysis` clients (#221973)

Adds `AliasAnalysisRecursiveEffectsCache`, an opt-in cache that memoizes
per-operation read/write summaries so that `getModRef` on an operation
with `HasRecursiveMemoryEffects` does not re-walk its nested regions on
every query.

This is independent of the `getSource()` memoization added separately:
that one is keyed on (value, flags) and answers "what memory does this
value refer to", while this one is keyed on the operation and answers
"what does this operation and everything nested in it read and write".
LICM enables both, since it only hoists pure-read ops and so invalidates
neither.



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