[PATCH] D94138: Require chained analyses in BasicAA and AAResults to be transitive

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Jan 10 02:14:35 PST 2021


nikic added inline comments.


================
Comment at: llvm/lib/Transforms/Scalar/GVNHoist.cpp:550
     AU.addPreserved<GlobalsAAWrapperPass>();
-    AU.addPreserved<AAResultsWrapperPass>();
   }
----------------
bjope wrote:
> foad wrote:
> > Ditto.
> I did try some different solutions here, but never really figured out exactly what was needed to avoid the assert in setLastUser (also knowing that those transitive analyses actually are preserved).
> The solution of not preserving AAResults was inspired by the change above for HexagonLoopIdiomRecognition, but it also matches what it looks like in GVN and NewGVN etc.
As this already preserves DT, possibly this only needs an explicit `AU.addPreserved<BasicAAWrapperPass>`?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D94138



More information about the llvm-commits mailing list