aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp
AgeCommit message (Collapse)AuthorFilesLines
2010-10-19Get rid of static constructors for pass registration. Instead, every pass ↵Owen Anderson1-1/+4
exposes an initializeMyPassFunction(), which must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize the pass's dependencies. Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h before parsing commandline arguments. I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass registration/creation, please send the testcase to me directly. llvm-svn: 116820
2010-10-12Begin adding static dependence information to passes, which will allow us toOwen Anderson1-1/+4
perform initialization without static constructors AND without explicit initialization by the client. For the moment, passes are required to initialize both their (potential) dependencies and any passes they preserve. I hope to be able to relax the latter requirement in the future. llvm-svn: 116334
2010-10-07Now with fewer extraneous semicolons!Owen Anderson1-1/+1
llvm-svn: 115996
2010-09-14Remove the experimental AliasAnalysis::getDependency interface, whichDan Gohman1-13/+16
isn't a good level of abstraction for memdep. Instead, generalize AliasAnalysis::alias and related interfaces with a new Location class for describing a memory location. For now, this is the same Pointer and Size as before, plus an additional field for a TBAA tag. Also, introduce a fixed MD_tbaa metadata tag kind. llvm-svn: 113858
2010-08-06Reapply r110396, with fixes to appease the Linux buildbot gods.Owen Anderson1-3/+3
llvm-svn: 110460
2010-08-06Revert r110396 to fix buildbots.Owen Anderson1-3/+3
llvm-svn: 110410
2010-08-05Don't use PassInfo* as a type identifier for passes. Instead, use the ↵Owen Anderson1-3/+3
address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
2010-08-03Introduce a symbolic constant for ~0u for use with AliasAnalysis.Dan Gohman1-2/+2
llvm-svn: 110091
2010-07-21Add INSTANTIATE_AG_PASS, which combines RegisterPass<> with ↵Owen Anderson1-5/+2
RegisterAnalysisGroup<> for pass registration. llvm-svn: 109058
2010-07-20Speculatively revert r108813, in an attempt to get the self-host buildbots ↵Owen Anderson1-1/+1
working again. I don't see why this patch would cause them to fail the way they are, but none of the other intervening patches seem likely either. llvm-svn: 108818
2010-07-20Reapply r108794, a fix for the failing test from last time.Owen Anderson1-1/+1
llvm-svn: 108813
2010-07-20Revert r108794, "Separate PassInfo into two classes: a constructor-freeDaniel Dunbar1-1/+1
superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).", it is breaking teh everything. llvm-svn: 108805
2010-07-20Separate PassInfo into two classes: a constructor-free superclass ↵Owen Anderson1-1/+1
(StaticPassInfo) and a constructor-ful subclass (PassInfo). llvm-svn: 108794
2010-06-30Rework scev-aa's basic computation so that it doesn't dependDan Gohman1-7/+31
on ScalarEvolution successfully folding and preserving range information for both A-B and B-A. Now, if it gets either one, it's sufficient. llvm-svn: 107249
2010-06-18Fix a typo in a comment.Dan Gohman1-1/+1
llvm-svn: 106260
2010-03-01Add a comment.Dan Gohman1-1/+5
llvm-svn: 97459
2010-02-16There are two ways of checking for a given type, for example isa<PointerType>(T)Duncan Sands1-1/+1
and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris. llvm-svn: 96344
2010-01-20adopt getAdjustedAnalysisPointer in a few more passes.Chris Lattner1-0/+10
llvm-svn: 94018
2009-10-31Make ScalarEvolutionAliasAnalysis slightly more aggressive, by making anDan Gohman1-13/+10
underlying alias call even for non-identified-object values. llvm-svn: 85656
2009-10-25Remove includes of Support/Compiler.h that are no longer needed after theNick Lewycky1-1/+0
VISIBILITY_HIDDEN removal. llvm-svn: 85043
2009-10-25Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces.Nick Lewycky1-2/+2
Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit. llvm-svn: 85042
2009-08-29Add some comments.Dan Gohman1-0/+5
llvm-svn: 80452
2009-08-26Create a ScalarEvolution-based AliasAnalysis implementation.Dan Gohman1-0/+128
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. llvm-svn: 80098