[PATCH] D21910: [CFLAA] Split CFL-AA into one unification-based pass and one inclusion-based pass

Jia Chen via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 1 16:52:55 PDT 2016

grievejia marked 6 inline comments as done.

Comment at: include/llvm/Analysis/CFLAndersAliasAnalysis.h:41
@@ +40,3 @@
+/// FIXME: We really should refactor CFL to use the analysis more heavily, and
+/// in particular to leverage invalidation to trigger re-computation of sets.
+class CFLAndersAA : public AnalysisInfoMixin<CFLAndersAA> {
george.burgess.iv wrote:
> Maybe take out "of sets" here, if this won't be using StratifiedSets?
I would imagine that we still need some kinds of set. It won't be StratifiedSets, but it will be other set :)

Comment at: lib/Analysis/CFLAndersAliasAnalysis.cpp:12
@@ +11,3 @@
+// differs from CFLAndersAliasAnalysis in its inclusion-based nature while
+// CFLAndersAliasAnalysis is unification-based. This pass has worse performance
+// than CFLAndersAliasAnalysis (the worst case complexity of
george.burgess.iv wrote:
> I think a number of CFLAndersAliasAnalysis in here should be CFLSteensAliasAnalysis
Oops, a typical problem caused by blind search-replace...

Comment at: lib/CodeGen/TargetPassConfig.cpp:116
@@ +115,3 @@
+enum class CFLAAType { None, Steensgaard, Andersen };
+static cl::opt<CFLAAType> UseCFLAA(
+    "use-cfl-aa-in-codegen", cl::init(CFLAAType::None), cl::Hidden,
george.burgess.iv wrote:
> So... Is the goal to ultimately only allow one or the other to be run per compilation? Or will we be able to e.g. throw CFLsteens before CFLanders at a later point?
Yeah I agree it would be useful to be able to run cfl-anders and cfl-steens on the same pipeline. 

Let me address your concern by adding another enum option "Both".


More information about the llvm-commits mailing list