Create a ScalarEvolution-based AliasAnalysis implementation.
authorDan Gohman <gohman@apple.com>
Wed, 26 Aug 2009 14:53:06 +0000 (14:53 +0000)
committerDan Gohman <gohman@apple.com>
Wed, 26 Aug 2009 14:53:06 +0000 (14:53 +0000)
commit2385e0e22ca482f2896dfa975a08db2f54926c09
tree263a06bef4db6a85627348a6003f7193600a67b2
parente2cb91203917152ea462073628f1597c3d54aa37
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
include/llvm/Analysis/Passes.h
include/llvm/LinkAllPasses.h
lib/Analysis/ScalarEvolutionAliasAnalysis.cpp [new file with mode: 0644]
test/Analysis/ScalarEvolution/scev-aa.ll [new file with mode: 0644]