[PATCH] D60832: [MemorySSA] LCSSA preserves MemorySSA.

Chandler Carruth via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 18 23:31:41 PDT 2019


chandlerc added inline comments.


================
Comment at: lib/Transforms/Utils/LCSSA.cpp:490-491
   PA.preserve<ScalarEvolutionAnalysis>();
+  // In the new pass manager, LCSSA must mark the AAManager as preserved too, in
+  // order to correctly preserve MemorySSA.
+  PA.preserve<MemorySSAAnalysis>();
----------------
asbirlea wrote:
> chandlerc wrote:
> > Should the AA manager just preserve itself instead so that this isn't so confusing for users?
> Sure?  I though it was stateless already, so preserved by default, but I'm unclear how to mark that.
>  
> This got me *very* confused in the first iteration of this patch, when I noticed a new AAManager being built for the LoopPassManager. Why would that happen?
It really should be, but it isn't built that way yet. This should probably be a preparatory patch. It'll just involve removing the check for the `AAManager` itself in the `AAResults::invalidate` method and adding relevant documentation.

Would be good to very explicitly document that all the AAs need to be registered *before* the `AAManager` is run in that case.


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60832/new/

https://reviews.llvm.org/D60832





More information about the llvm-commits mailing list