[all-commits] [llvm/llvm-project] 7c0ff6: [LAA] Change to function analysis for new PM.

Florian Hahn via All-commits all-commits at lists.llvm.org
Sat Oct 1 07:45:08 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7c0ff64b0f760e364e59a37f983d87835a8c23a1
      https://github.com/llvm/llvm-project/commit/7c0ff64b0f760e364e59a37f983d87835a8c23a1
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2022-10-01 (Sat, 01 Oct 2022)

  Changed paths:
    M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
    M llvm/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp
    M llvm/lib/Transforms/Scalar/LoopDistribute.cpp
    M llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp
    M llvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp
    M llvm/lib/Transforms/Utils/LoopVersioning.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Other/new-pm-defaults.ll
    M llvm/test/Other/new-pm-lto-defaults.ll
    M llvm/test/Other/new-pm-thinlto-defaults.ll
    M llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
    M llvm/test/Transforms/LoopDistribute/basic.ll
    M llvm/test/Transforms/LoopDistribute/laa-invalidation.ll
    M llvm/test/Transforms/LoopUnroll/unroll-loop-invalidation.ll
    M llvm/test/Transforms/LoopVectorize/memory-dep-remarks.ll
    M llvm/test/Transforms/LoopVectorize/novect-lcssa-cfg-invalidation.ll
    M llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch-markloopasdeleted.ll

  Log Message:
  -----------
  [LAA] Change to function analysis for new PM.

At the moment, LoopAccessAnalysis is a loop analysis for the new pass
manager. The issue with that is that LAI caches SCEV expressions and
modifications in a loop may impact SCEV expressions in other loops, but
we do not have a convenient way to invalidate LAI for other loops
withing a loop pipeline.

To avoid this issue, turn it into a function analysis which returns a
manager object that keeps track of the individual LAI objects per loop.

Fixes #50940.

Fixes #51669.

Reviewed By: aeubanks

Differential Revision: https://reviews.llvm.org/D134606




More information about the All-commits mailing list