summaryrefslogtreecommitdiffstats
path: root/llvm/test/Analysis/BasicAA
Commit message (Collapse)AuthorAgeFilesLines
...
* Delete useless trailing semicolons.Dan Gohman2010-01-051-2/+2
| | | | llvm-svn: 92740
* gvn is optimizing this better now.Chris Lattner2009-12-061-2/+2
| | | | llvm-svn: 90696
* @test9 is a testcase for r89958. Before 89958, we misanalyzed theChris Lattner2009-11-261-1/+39
| | | | | | | | | first expression as P+4+4*i which we considered to possibly alias P+4*j. Now we correctly analyze the former one as P+1+4*i. @test10 is a sanity test that verfies that we know that P+4+4*i != P+4*i. llvm-svn: 89960
* Implement PR1143 (at -m64) by making basicaa look through extensions. WeChris Lattner2009-11-261-1/+16
| | | | | | | previously already handled it at -m32 because there were no i32->i64 extensions for addressing. llvm-svn: 89959
* teach GetLinearExpression to be a bit more aggressive.Chris Lattner2009-11-261-0/+15
| | | | llvm-svn: 89955
* Teach basicaa that x|c == x+c when the c bits of x are clear. ThisChris Lattner2009-11-261-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | allows us to compile the example in readme.txt into: LBB1_1: ## %bb movl 4(%rdx,%rax), %ecx movl %ecx, %esi imull (%rdx,%rax), %esi imull %esi, %ecx movl %esi, 8(%rdx,%rax) imull %ecx, %esi movl %ecx, 12(%rdx,%rax) movl %esi, 16(%rdx,%rax) imull %ecx, %esi movl %esi, 20(%rdx,%rax) addq $16, %rax cmpq $4000, %rax jne LBB1_1 instead of: LBB1_1: movl (%rdx,%rax), %ecx imull 4(%rdx,%rax), %ecx movl %ecx, 8(%rdx,%rax) imull 4(%rdx,%rax), %ecx movl %ecx, 12(%rdx,%rax) imull 8(%rdx,%rax), %ecx movl %ecx, 16(%rdx,%rax) imull 12(%rdx,%rax), %ecx movl %ecx, 20(%rdx,%rax) addq $16, %rax cmpq $4000, %rax jne LBB1_1 GCC (4.2) doesn't seem to be able to eliminate the loads in this testcase either, it generates: L2: movl (%rdx), %eax imull 4(%rdx), %eax movl %eax, 8(%rdx) imull 4(%rdx), %eax movl %eax, 12(%rdx) imull 8(%rdx), %eax movl %eax, 16(%rdx) imull 12(%rdx), %eax movl %eax, 20(%rdx) addl $4, %ecx addq $16, %rdx cmpl $1002, %ecx jne L2 llvm-svn: 89952
* teach basicaa that A[i] != A[i+1].Chris Lattner2009-11-261-0/+16
| | | | llvm-svn: 89951
* rename testChris Lattner2009-11-261-0/+0
| | | | llvm-svn: 89950
* Change the other half of aliasGEP (which handles GEP differencing) to use ↵Chris Lattner2009-11-261-2/+59
| | | | | | DecomposeGEPExpression. This dramatically simplifies and shrinks the code by eliminating the horrible CheckGEPInstructions method, fixes a miscompilation (@test3) and makes the code more aggressive. In particular, we now handle the @test4 case, which is reduced from the SmallPtrSet constructor. Missing this caused us to emit a variable length memset instead of a fixed size one. llvm-svn: 89922
* add a new random feature testChris Lattner2009-11-261-1/+17
| | | | llvm-svn: 89921
* remove a silly condition that doesn't make a lot of sense anymore.Chris Lattner2009-11-221-0/+17
| | | | llvm-svn: 89601
* Make opt default to not adding a target data string and update tests that ↵Kenneth Uildriks2009-11-036-1/+7
| | | | | | depend on target data to supply it within the test llvm-svn: 85900
* Teach BasicAA how to analyze Select instructions, and make it moreDan Gohman2009-10-261-0/+73
| | | | | | aggressive on PHI instructions. llvm-svn: 85158
* fix testChris Lattner2009-10-181-1/+1
| | | | llvm-svn: 84405
* tighten up test3, add test3a for the converse Chris Lattner2009-10-181-3/+22
| | | | | | transform, which isn't happening yet. llvm-svn: 84402
* tighten test2, add a test that it doesn't get transformed in the invalid ↵Chris Lattner2009-10-181-1/+12
| | | | | | edge case. llvm-svn: 84401
* Merge tests into modref.ll. Also add a test for r84174 at Chris' behest!Nick Lewycky2009-10-183-31/+41
| | | | llvm-svn: 84400
* Add a couple new testcases.Nick Lewycky2009-10-182-0/+30
| | | | llvm-svn: 84385
* replace a useless test with a useful oneChris Lattner2009-10-171-13/+19
| | | | llvm-svn: 84383
* Make use of the result of the loads even though that means adding -instcombine.Nick Lewycky2009-10-141-5/+5
| | | | llvm-svn: 84125
* Another BasicAA fix. If a value does not alias a GEP's base pointer, then itEvan Cheng2009-10-141-0/+30
| | | | | | | | cannot alias the GEP. GEP pointer alias rule states this clearly: A pointer value formed from a getelementptr instruction is associated with the addresses associated with the first operand of the getelementptr. llvm-svn: 84079
* Replace test with a simpler hand crafted one.Evan Cheng2009-10-141-76/+19
| | | | llvm-svn: 84069
* Teach basic AA about PHI nodes. If all operands of a phi NoAlias another ↵Evan Cheng2009-10-131-0/+86
| | | | | | value than it's safe to declare the PHI NoAlias the value. Ditto for MustAlias. llvm-svn: 84038
* don't use dead loads as tests.Chris Lattner2009-10-131-3/+4
| | | | llvm-svn: 83985
* Teach BasicAA a little something about the atomic intrinsics: they can onlyNick Lewycky2009-10-131-0/+16
| | | | | | modify through the pointer they're given. llvm-svn: 83959
* Eliminate more redundant llvm-as calls.Dan Gohman2009-09-111-1/+1
| | | | llvm-svn: 81540
* Change tests from "opt %s" to "opt < %s" so that opt doesn't see theDan Gohman2009-09-1137-40/+40
| | | | | | | | input filename so that opt doesn't print the input filename in the output so that grep lines in the tests don't unintentionally match strings in the input filename. llvm-svn: 81537
* Eliminate more uses of llvm-as and llvm-dis.Dan Gohman2009-09-092-4/+4
| | | | llvm-svn: 81293
* Convert a few more opt | llvm-dis to opt -S.Dan Gohman2009-09-081-2/+2
| | | | llvm-svn: 81261
* Use opt -S instead of piping bitcode output through llvm-dis.Dan Gohman2009-09-0817-20/+20
| | | | llvm-svn: 81257
* Change these tests to feed the assembly files to opt directly, insteadDan Gohman2009-09-0837-40/+40
| | | | | | of using llvm-as, now that opt supports this. llvm-svn: 81226
* rename test so that name reflects what it is testing for.Chris Lattner2009-08-301-0/+0
| | | | llvm-svn: 80519
* convert to filecheck format.Chris Lattner2009-08-301-2/+14
| | | | llvm-svn: 80518
* Teach BasicAliasAnalysis to understand constant gep indices that fallDan Gohman2009-05-271-0/+27
| | | | | | | | | | | | | beyond their associated static array type. I believe that this fixes a legitimate bug, because BasicAliasAnalysis already has code to check for this condition that works for non-constant indices, however it was missing the case of constant indices. With this change, it checks for both. This fixes PR4267, and miscompiles of SPEC 188.ammp and 464.h264.href. llvm-svn: 72451
* change this to test for an alias result more directly.Chris Lattner2009-03-161-3/+7
| | | | llvm-svn: 67046
* Add a replacement for 2009-02-12-GEPNoalias.ll that works without -debug.Nick Lewycky2009-03-141-0/+9
| | | | llvm-svn: 67011
* remove a buggy test, it is not ok to use -debug in RUN line.Chris Lattner2009-03-131-196/+0
| | | | llvm-svn: 66918
* BasicAA was making the assumption that a local allocation which hadn't escapedNick Lewycky2009-02-131-0/+196
| | | | | | | | couldn't ever be the return of call instruction. However, it's quite possible that said local allocation is itself the return of a function call. That's what malloc and calloc are for, actually. llvm-svn: 64442
* Finish making AliasAnalysis aware of the fact that most atomic intrinsics ↵Owen Anderson2009-02-041-0/+14
| | | | | | | | only dereference their arguments, and enhance BasicAA to make use of this fact when computing ModRef info. llvm-svn: 63718
* Resubmit support for the 'nocapture' attribute.Nick Lewycky2008-12-191-0/+14
| | | | | | | | | | The problematic part of this patch is that we were out of attribute bits, requiring some fancy bit hacking to make it fit (by shrinking alignment) without breaking existing users or the file format. This change will require users to rebuild llvm-gcc to match llvm. llvm-svn: 61239
* Remove empty test.Bill Wendling2008-12-161-0/+0
| | | | llvm-svn: 61095
* Temporarily revert r61019, r61030, and r61040. These were breaking LLVM ReleaseBill Wendling2008-12-161-13/+0
| | | | | | builds. llvm-svn: 61094
* Teach basicaa to use the nocapture attribute when possible. When theChris Lattner2008-12-151-0/+13
| | | | | | intrinsics are properly marked nocapture, the fixme should be addressed. llvm-svn: 61040
* Allow basicaa to walk through geps with identical indices in Chris Lattner2008-12-101-0/+16
| | | | | | | | | | | parallel, allowing it to decide that P/Q must alias if A/B must alias in things like: P = gep A, 0, i, 1 Q = gep B, 0, i, 1 This allows GVN to delete 62 more instructions out of 403.gcc. llvm-svn: 60820
* Extend the 'noalias' attribute to function return values. This is intended toNick Lewycky2008-11-241-0/+12
| | | | | | | | | indicate functions that allocate, such as operator new, or list::insert. The actual definition is slightly less strict (for now). No changes to the bitcode reader/writer, asm printer or verifier were needed. llvm-svn: 59934
* Remove GCSE and LoadVN from the testsuite.Owen Anderson2008-08-1611-24/+11
| | | | llvm-svn: 54832
* If we are checking to see if the result of a call aliases aChris Lattner2008-06-161-0/+23
| | | | | | | pointer derived from a local allocation, if the local allocation never escapes, the pointers can't alias. This implements PR2436 llvm-svn: 52301
* Suppress the (stderr) output of -aa-eval, this fixes 5 tests.Matthijs Kooijman2008-06-104-4/+4
| | | | llvm-svn: 52173
* Fixes PR2395. Looking for a constant in a GEP tail (when the first GEP Wojciech Matyjewicz2008-06-021-0/+15
| | | | | | | | is longer than the second one) should stop after finding one. Added break instruction guarantees it. It also changes difference between offsets to absolute value of this difference in the condition. llvm-svn: 51875
* sabre brings to my attention that the 'tr' suffix is also obsoleteGabor Greif2008-05-201-1/+1
| | | | llvm-svn: 51349
OpenPOWER on IntegriCloud