aboutsummaryrefslogtreecommitdiffstats
path: root/test/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* Revert r128140 for now.Anders Carlsson2011-03-231-19/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128149 91177308-0d34-0410-b5e6-96231b3b80d8
* A global variable with internal linkage where all uses are in one function ↵Anders Carlsson2011-03-231-0/+19
| | | | | | and whose address is never taken is a non-escaping local object and can't alias anything else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128140 91177308-0d34-0410-b5e6-96231b3b80d8
* Propagate SCEV no-wrap flags whenever possible.Andrew Trick2011-03-153-14/+21
| | | | | | | This needs review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127638 91177308-0d34-0410-b5e6-96231b3b80d8
* When SCEV can determine the loop test is X < X, set ExactBECount=0.Andrew Trick2011-03-091-0/+34
| | | | | | | | | When ExactBECount is a constant, use it for MaxBECount. When MaxBECount cannot be computed, replace it with ExactBECount. Fixes PR9424. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127342 91177308-0d34-0410-b5e6-96231b3b80d8
* teach SCEV that the scale and addition of an inbounds gep don't NSW.Chris Lattner2011-02-132-4/+31
| | | | | | | | This fixes a FIXME in scev-aa.ll (allowing a new no-alias result) and generally makes things more precise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125449 91177308-0d34-0410-b5e6-96231b3b80d8
* Per discussion with Dan G, inbounds geps *certainly* can haveChris Lattner2011-02-111-2/+2
| | | | | | | | | | | | unsigned overflow (e.g. "gep P, -1"), and while they can have signed wrap in theoretical situations, modelling an AddRec as not having signed wrap is going enough for any case we can think of today. In the future if this isn't enough, we can revisit this. Modeling them as having NUW isn't causing any known problems either FWIW. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125410 91177308-0d34-0410-b5e6-96231b3b80d8
* Add another rdar number.Dan Gohman2011-01-241-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124125 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify some code with no functionality change. Make the test a lot moreNick Lewycky2011-01-231-15/+19
| | | | | | | robust against smarter optimizations, using the power of FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124081 91177308-0d34-0410-b5e6-96231b3b80d8
* Use value ranges to fold ext(trunc) in SCEV when possible.Nick Lewycky2011-01-231-0/+34
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124062 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement requiredTransitiveTobias Grosser2011-01-201-0/+24
| | | | | | | The PassManager did not implement the transitivity of requiredTransitive. This was unnoticed since 2006. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123942 91177308-0d34-0410-b5e6-96231b3b80d8
* Similarly, analyze truncate through multiply.Nick Lewycky2011-01-191-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123842 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a missed SCEV fold that is required to continue analyzing the IR producedNick Lewycky2011-01-191-1/+9
| | | | | | | | | | | | by indvars through the scev expander. trunc(add x, y) --> add(trunc x, y). Currently SCEV largely folds the other way which is probably wrong, but preserved to minimize churn. Instcombine doesn't do this fold either, demonstrating a missed optz'n opportunity on code doing add+trunc+add. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123838 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a missing SCEV simplification sext(zext x) --> zext x.Nick Lewycky2011-01-191-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123832 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach BasicAA to return PartialAlias in cases where both pointersDan Gohman2011-01-181-0/+33
| | | | | | | | | are pointing to the same object, one pointer is accessing the entire object, and the other is access has a non-zero size. This prevents TBAA from kicking in and saying NoAlias in such cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123775 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert the testcase from the previous reverted commit.Eric Christopher2011-01-111-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123227 91177308-0d34-0410-b5e6-96231b3b80d8
* add a testcase I missed in previous commit.Chris Lattner2011-01-091-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123143 91177308-0d34-0410-b5e6-96231b3b80d8
* teach SCEV analysis of PHI nodes that PHI recurences formedChris Lattner2011-01-091-2/+40
| | | | | | | | with GEP instructions are always NUW, because PHIs cannot wrap the end of the address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123105 91177308-0d34-0410-b5e6-96231b3b80d8
* reduce indentation. Print <nuw> and <nsw> when dumping SCEV AddRec'sChris Lattner2011-01-091-1/+1
| | | | | | | that have the bit set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123104 91177308-0d34-0410-b5e6-96231b3b80d8
* fix rdar://8813415 - a miscompilation of 164.gzip that loop-idiomChris Lattner2011-01-031-0/+22
| | | | | | | exposed. It turns out to be a latent bug in basicaa, scary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122772 91177308-0d34-0410-b5e6-96231b3b80d8
* filecheckizeChris Lattner2011-01-031-6/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122771 91177308-0d34-0410-b5e6-96231b3b80d8
* -enable-tbaa is on by default now.Dan Gohman2010-12-168-9/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121945 91177308-0d34-0410-b5e6-96231b3b80d8
* Make memcpyopt TBAA-aware.Dan Gohman2010-12-161-0/+23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121944 91177308-0d34-0410-b5e6-96231b3b80d8
* Move Sub simplifications and additional Add simplifications out ofDuncan Sands2010-12-151-2/+2
| | | | | | | instcombine and into InstructionSimplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121861 91177308-0d34-0410-b5e6-96231b3b80d8
* Reapply r121520, PartialAlias implementation for BasicAA, now thatDan Gohman2010-12-131-2/+27
| | | | | | | memdep is updated to handle it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121725 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r121520, which may have introduced miscompilations.Dan Gohman2010-12-101-27/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121573 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement PartialAlias checking in BasicAA.Dan Gohman2010-12-101-2/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121520 91177308-0d34-0410-b5e6-96231b3b80d8
* remove fixme comment too.Chris Lattner2010-11-301-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120493 91177308-0d34-0410-b5e6-96231b3b80d8
* check in *all* files. This is now handled by my previous DSE commit.Chris Lattner2010-11-301-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120492 91177308-0d34-0410-b5e6-96231b3b80d8
* test: Check the feature 'loadable_module' with load modules in %llvmshlibdir.NAKAMURA Takumi2010-11-291-2/+2
| | | | | | %llvmshlibdir should be 'bin' on Cygming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120282 91177308-0d34-0410-b5e6-96231b3b80d8
* Delete unneeded ssp attributes.Dan Gohman2010-11-113-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118836 91177308-0d34-0410-b5e6-96231b3b80d8
* TBAA-enable ArgumentPromotion.Dan Gohman2010-11-111-0/+31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118804 91177308-0d34-0410-b5e6-96231b3b80d8
* Make Sink tbaa-aware.Dan Gohman2010-11-111-0/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118788 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a testcase which demonstrates alias analysis pass precedence.Dan Gohman2010-11-111-0/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118755 91177308-0d34-0410-b5e6-96231b3b80d8
* Fully invalidate cached results when a prior query's size orDan Gohman2010-11-101-0/+91
| | | | | | | type is insufficient for, or incompatible with, the current query. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118721 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach FunctionAttrs about the VAArg instruction.Dan Gohman2010-11-091-0/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118627 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a testcase for a call which BasicAA says only accesses memory throughDan Gohman2010-11-081-0/+30
| | | | | | | its arguments and which TBAA says doesn't write to memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118439 91177308-0d34-0410-b5e6-96231b3b80d8
* Make FunctionAttrs TBAA-aware.Dan Gohman2010-11-081-0/+37
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118417 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach memdep to use pointsToConstantMemory to determine that loadsDan Gohman2010-10-291-0/+23
| | | | | | | from constant memory don't alias any stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117636 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a basic testcase for TBAA-aware DSE.Dan Gohman2010-10-291-0/+43
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117632 91177308-0d34-0410-b5e6-96231b3b80d8
* Add some comments.Dan Gohman2010-10-201-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116957 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't pass the raw invalid pointer used to represent conflictingDan Gohman2010-10-181-0/+28
| | | | | | | TBAA information to AliasAnalysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116751 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a basic testcase for TBAA-aware LICM.Dan Gohman2010-10-181-0/+33
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116745 91177308-0d34-0410-b5e6-96231b3b80d8
* Run tbaa before basicaa, since that's how it's expected to be used.Dan Gohman2010-10-181-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116731 91177308-0d34-0410-b5e6-96231b3b80d8
* Make TypeBasedAliasAnalysis default to doing nothing, with a command-lineDan Gohman2010-10-181-1/+1
| | | | | | | option to enable it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116722 91177308-0d34-0410-b5e6-96231b3b80d8
* Make BasicAliasAnalysis a normal AliasAnalysis implementation whichDan Gohman2010-10-1835-35/+35
| | | | | | | | | | | | | does normal initialization and normal chaining. Change the default AliasAnalysis implementation to NoAlias. Update StandardCompileOpts.h and friends to explicitly request BasicAliasAnalysis. Update tests to explicitly request -basicaa. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116720 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a simple testcase for tbaa.Dan Gohman2010-10-112-0/+61
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116272 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove PointerTracking tests.Benjamin Kramer2010-09-292-89/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115072 91177308-0d34-0410-b5e6-96231b3b80d8
* PR7959: Handle negative scales in GEPs correctly in BasicAA for non-64-bitEli Friedman2010-09-151-0/+15
| | | | | | | | targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114015 91177308-0d34-0410-b5e6-96231b3b80d8
* remove some noise from tests.Chris Lattner2010-09-022-65/+65
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112889 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix constant-over-index.ll test on windows.Michael J. Spencer2010-08-301-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112483 91177308-0d34-0410-b5e6-96231b3b80d8