[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