aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Analysis
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-08-26 14:53:06 +0000
committerDan Gohman <gohman@apple.com>2009-08-26 14:53:06 +0000
commit9927f829a68b645ed5813b25e21a881d94fc80d8 (patch)
tree263a06bef4db6a85627348a6003f7193600a67b2 /include/llvm/Analysis
parent596114dc06489e5bd79e3e8ffc60d43bbf3668e3 (diff)
downloadexternal_llvm-9927f829a68b645ed5813b25e21a881d94fc80d8.zip
external_llvm-9927f829a68b645ed5813b25e21a881d94fc80d8.tar.gz
external_llvm-9927f829a68b645ed5813b25e21a881d94fc80d8.tar.bz2
Create a ScalarEvolution-based AliasAnalysis implementation.
This is a simple AliasAnalysis implementation which works by making ScalarEvolution queries. ScalarEvolution has a more complete understanding of arithmetic than BasicAA's collection of ad-hoc checks, so it handles some cases that BasicAA misses, for example p[i] and p[i+1] within the same iteration of a loop. This is currently experimental. It may be that the main use for this pass will be to help find cases where BasicAA can be profitably extended, or to help in the development of the overall AliasAnalysis infrastructure, however it's also possible that it could grow up to become a directly useful pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80098 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Analysis')
-rw-r--r--include/llvm/Analysis/Passes.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/llvm/Analysis/Passes.h b/include/llvm/Analysis/Passes.h
index e5b86e8..e687653 100644
--- a/include/llvm/Analysis/Passes.h
+++ b/include/llvm/Analysis/Passes.h
@@ -74,6 +74,13 @@ namespace llvm {
//===--------------------------------------------------------------------===//
//
+ // createScalarEvolutionAliasAnalysisPass - This pass implements a simple
+ // alias analysis using ScalarEvolution queries.
+ //
+ FunctionPass *createScalarEvolutionAliasAnalysisPass();
+
+ //===--------------------------------------------------------------------===//
+ //
// createAndersensPass - This pass implements Andersen's interprocedural alias
// analysis.
//