[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
Thu Jun 30 14:58:05 PDT 2016
grievejia created this revision.
grievejia added reviewers: george.burgess.iv, hfinkel.
grievejia added a subscriber: llvm-commits.
Herald added a subscriber: mehdi_amini.
This patch renames the existing CFLAliasAnalysis pass to CFLSteensAliasAnalysis, and introduces a new pass CFLAndersAliasAnalysis. The pass name "cfl-aa" gets replaced by "cfl-steens-aa" and "cfl-anders-aa". The "use-cfl-aa" and "use-cfl-aa-in-codegen" flags gets changed from a boolean flags to enum flags (none/steens/anders).
Precision enhancements are getting more and more difficult to add to the existing CFLAliasAnalysis pass due to its unification-based nature. Since extending CFL-AA with features like field sensitivity and inclusion-based semantics won't share too much of the existing codes anyway, it's much cleaner to start anew (and perhaps factor out certain parts of the original codes that can be shared by all CFL-based alias analysis) than to keep increasing the code complexity in CFLAliasAnalysis.cpp.
The newly added pass contains only a stub implementation of alias() currently. Its body will be gradually filled out in subsequent patches.
http://reviews.llvm.org/D21910
Files:
include/llvm/Analysis/CFLAliasAnalysis.h
include/llvm/Analysis/CFLAndersAliasAnalysis.h
include/llvm/Analysis/CFLSteensAliasAnalysis.h
include/llvm/InitializePasses.h
include/llvm/LinkAllPasses.h
lib/Analysis/AliasAnalysis.cpp
lib/Analysis/Analysis.cpp
lib/Analysis/CFLAliasAnalysis.cpp
lib/Analysis/CFLAndersAliasAnalysis.cpp
lib/Analysis/CFLSteensAliasAnalysis.cpp
lib/Analysis/CMakeLists.txt
lib/CodeGen/TargetPassConfig.cpp
lib/Passes/PassBuilder.cpp
lib/Passes/PassRegistry.def
lib/Transforms/IPO/PassManagerBuilder.cpp
test/Analysis/CFLAliasAnalysis/Steensgaard/arguments-globals.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/arguments.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/asm-global-bugfix.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/attr-escape.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/basic-interproc.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/branch-alias.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/const-expr-gep.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/constant-over-index.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/empty.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/full-store-partial-alias.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/gep-index-no-alias.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/gep-signed-arithmetic.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-arg-deref-escape.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-arg-escape.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-ret-arg.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-ret-deref-arg-multilevel.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-ret-deref-arg.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-ret-escape.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-ret-ref-arg-multilevel.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-ret-ref-arg.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-ret-unknown.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-store-arg-multilevel.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-store-arg-unknown.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-store-arg.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/malloc-and-free.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/multilevel-combine.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/multilevel.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/must-and-partial.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/opaque-call-alias.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/phi-and-select.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/pr27213.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/simple.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/stratified-attrs-indexing.ll
test/Analysis/CFLAliasAnalysis/Steensgaard/va.ll
test/Analysis/CFLAliasAnalysis/arguments-globals.ll
test/Analysis/CFLAliasAnalysis/arguments.ll
test/Analysis/CFLAliasAnalysis/asm-global-bugfix.ll
test/Analysis/CFLAliasAnalysis/attr-escape.ll
test/Analysis/CFLAliasAnalysis/basic-interproc.ll
test/Analysis/CFLAliasAnalysis/branch-alias.ll
test/Analysis/CFLAliasAnalysis/const-expr-gep.ll
test/Analysis/CFLAliasAnalysis/constant-over-index.ll
test/Analysis/CFLAliasAnalysis/empty.ll
test/Analysis/CFLAliasAnalysis/full-store-partial-alias.ll
test/Analysis/CFLAliasAnalysis/gep-index-no-alias.ll
test/Analysis/CFLAliasAnalysis/gep-signed-arithmetic.ll
test/Analysis/CFLAliasAnalysis/interproc-arg-deref-escape.ll
test/Analysis/CFLAliasAnalysis/interproc-arg-escape.ll
test/Analysis/CFLAliasAnalysis/interproc-ret-arg.ll
test/Analysis/CFLAliasAnalysis/interproc-ret-deref-arg-multilevel.ll
test/Analysis/CFLAliasAnalysis/interproc-ret-deref-arg.ll
test/Analysis/CFLAliasAnalysis/interproc-ret-escape.ll
test/Analysis/CFLAliasAnalysis/interproc-ret-ref-arg-multilevel.ll
test/Analysis/CFLAliasAnalysis/interproc-ret-ref-arg.ll
test/Analysis/CFLAliasAnalysis/interproc-ret-unknown.ll
test/Analysis/CFLAliasAnalysis/interproc-store-arg-multilevel.ll
test/Analysis/CFLAliasAnalysis/interproc-store-arg-unknown.ll
test/Analysis/CFLAliasAnalysis/interproc-store-arg.ll
test/Analysis/CFLAliasAnalysis/malloc-and-free.ll
test/Analysis/CFLAliasAnalysis/multilevel-combine.ll
test/Analysis/CFLAliasAnalysis/multilevel.ll
test/Analysis/CFLAliasAnalysis/must-and-partial.ll
test/Analysis/CFLAliasAnalysis/opaque-call-alias.ll
test/Analysis/CFLAliasAnalysis/phi-and-select.ll
test/Analysis/CFLAliasAnalysis/pr27213.ll
test/Analysis/CFLAliasAnalysis/simple.ll
test/Analysis/CFLAliasAnalysis/stratified-attrs-indexing.ll
test/Analysis/CFLAliasAnalysis/va.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D21910.62426.patch
Type: text/x-patch
Size: 62607 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160630/95514c77/attachment-0001.bin>
More information about the llvm-commits
mailing list