[PM/AA] Start refactoring AliasAnalysis to remove the analysis group and
authorChandler Carruth <chandlerc@gmail.com>
Thu, 4 Jun 2015 02:03:15 +0000 (02:03 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Thu, 4 Jun 2015 02:03:15 +0000 (02:03 +0000)
commitdc967a97df7d1acc035939c149c856563e64e292
tree576d478f5d61748c98cad2322e5bd1efc81cb0ad
parente4e5cf5a667208b761886111e91160fd53e07f27
[PM/AA] Start refactoring AliasAnalysis to remove the analysis group and
port it to the new pass manager.

All this does is extract the inner "location" class used by AA into its
own full fledged type. This seems *much* cleaner as MemoryDependence and
soon MemorySSA also use this heavily, and it doesn't make much sense
being inside the AA infrastructure.

This will also make it much easier to break apart the AA infrastructure
into something that stands on its own rather than using the analysis
group design.

There are a few places where this makes APIs not make sense -- they were
taking an AliasAnalysis pointer just to build locations. I'll try to
clean those up in follow-up commits.

Differential Revision: http://reviews.llvm.org/D10228

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239003 91177308-0d34-0410-b5e6-96231b3b80d8
16 files changed:
include/llvm/Analysis/AliasAnalysis.h
include/llvm/Analysis/MemoryLocation.h [new file with mode: 0644]
lib/Analysis/AliasAnalysis.cpp
lib/Analysis/AliasAnalysisEvaluator.cpp
lib/Analysis/CMakeLists.txt
lib/Analysis/LoopAccessAnalysis.cpp
lib/Analysis/MemoryDependenceAnalysis.cpp
lib/Analysis/MemoryLocation.cpp [new file with mode: 0644]
lib/Transforms/IPO/ArgumentPromotion.cpp
lib/Transforms/IPO/FunctionAttrs.cpp
lib/Transforms/ObjCARC/ObjCARCContract.cpp
lib/Transforms/Scalar/DeadStoreElimination.cpp
lib/Transforms/Scalar/MemCpyOptimizer.cpp
lib/Transforms/Scalar/MergedLoadStoreMotion.cpp
lib/Transforms/Scalar/Sink.cpp
lib/Transforms/Vectorize/SLPVectorizer.cpp