[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