[PATCH] D12080: [PM/AA] Rebuild LLVM's alias analysis infrastructure in a way compatible with the new pass manager, and no longer relying on analysis groups.
Chandler Carruth via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 19 03:05:26 PDT 2015
chandlerc marked 23 inline comments as done.
================
Comment at: lib/Analysis/BasicAliasAnalysis.cpp:603
@@ +602,3 @@
+ AliasResult AR =
+ FAR ? FAR->alias(MemoryLocation(*CI), MemoryLocation(Object))
+ : alias(MemoryLocation(*CI), MemoryLocation(Object));
----------------
I've added the comment to getFunctionAAResults in AAResultBase so that hopefully it is a bit more discoverable than this. Let me know if that comment isn't sufficient.
================
Comment at: lib/Transforms/Scalar/LICM.cpp:127
@@ -123,2 +126,3 @@
AU.addPreserved<ScalarEvolutionWrapperPass>();
+ AU.addPreserved<SCEVAAWrapperPass>();
AU.addRequired<TargetLibraryInfoWrapperPass>();
----------------
hfinkel wrote:
> > Preserving SCEVAA above is actually a bug, and I've removed it.
>
> Why was it a bug? We preserve SCEV here, and we also used to preserve the AA group.
>
We should (and do) preserve SCEVAA *here*. This is in LICM that preserved both AliasAnalysis and ScalarEvolution before.
We shouldn't preserve (and now don't) SCEVAA *above* as part of IndVarSimplify because that pass *did not* preserve AliasAnalysis previously.
I had let a large number of erroneous additional preservation of SCEVAA in. I've fixed all of it and made everything much more consistent now. Sorry for the noise there.
http://reviews.llvm.org/D12080
More information about the llvm-commits
mailing list