summaryrefslogtreecommitdiffstats
path: root/llvm/test/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* This test only makes sense with -enable-iv-rewrite.Andrew Trick2011-09-131-3/+4
| | | | llvm-svn: 139576
* Fix the logic in BasicAliasAnalysis::aliasGEP for comparing GEP's with ↵Eli Friedman2011-09-081-0/+32
| | | | | | variable differences so that it actually does something sane. Fixes PR10881. llvm-svn: 139276
* Teach BasicAA about the aliasing properties of memset_pattern16.Owen Anderson2011-09-061-0/+21
| | | | | | Fixes PR10872 and <rdar://problem/10065079>. llvm-svn: 139204
* This transform only handles two-operand AddRec's. Prevent it from trying toNick Lewycky2011-09-061-1/+20
| | | | | | handle anything more complex. Fixes PR10383 again! llvm-svn: 139186
* The logic inside getMulExpr to simplify {a,+,b}*{c,+,d} was wrong, which wasNick Lewycky2011-09-061-3/+34
| | | | | | | visible given a=b=c=d=1, on iteration #1 (the second iteration). Replace it with correct math. Fixes PR10383! llvm-svn: 139133
* Revert r139126 due to selfhost failures reported by buildbots.Nick Lewycky2011-09-061-31/+0
| | | | llvm-svn: 139130
* Teach SCEV to report a max backedge count in one interesting case inNick Lewycky2011-09-051-0/+31
| | | | | | HowFarToZero; the case for a canonical loop. llvm-svn: 139126
* Move the loads after the calls so that the fix forRafael Espindola2011-07-091-48/+48
| | | | | | | PR10292 doesn't show that the loads don't alias the allocas. llvm-svn: 134852
* Use CHECK-NEXT.Rafael Espindola2011-07-091-259/+260
| | | | llvm-svn: 134850
* Remove support for parsing the "type i32" syntax for defining a numberedChris Lattner2011-06-192-28/+28
| | | | | | | top level type without a specified number. This syntax isn't documented and blocks forward progress. llvm-svn: 133371
* rip out a ton of intrinsic modernization logic from AutoUpgrade.cpp, which isChris Lattner2011-06-184-63/+64
| | | | | | | | | for pre-2.9 bitcode files. We keep x86 unaligned loads, movnt, crc32, and the target indep prefetch change. As usual, updating the testsuite is a PITA. llvm-svn: 133337
* make the asmparser reject function and type redefinitions. 'Merging' hasn't ↵Chris Lattner2011-06-171-2/+0
| | | | | | | | been needed since llvm-gcc 3.4 days. llvm-svn: 133248
* Remove support for using "foo" as symbols instead of %"foo". This is ancientChris Lattner2011-06-175-45/+1
| | | | | | | syntax and has been long obsolete. As usual, updating the tests is the nasty part of this. llvm-svn: 133242
* manually upgrade a bunch of tests to modern syntax, and remove some thatChris Lattner2011-06-172-16/+4
| | | | | | are either unreduced or only test old syntax. llvm-svn: 133228
* Test case for r132797.John McCall2011-06-141-0/+13
| | | | llvm-svn: 132962
* Reapply r131781, now that the GVN bug with partially-aliasing loadsDan Gohman2011-06-042-1/+132
| | | | | | is disabled. llvm-svn: 132632
* Remove this test, which should have been reverted along with r131781.Dan Gohman2011-06-041-131/+0
| | | | llvm-svn: 132628
* Revert r131781 again. Apparently there is more going on here.Dan Gohman2011-06-041-1/+1
| | | | llvm-svn: 132625
* Reapply r131781 (revert r131809), now that some BasicAA shortcomingsDan Gohman2011-06-042-1/+132
| | | | | | it exposed are fixed. llvm-svn: 132611
* Fix BasicAA's recursion detection so that it doesn't pessimizeDan Gohman2011-06-041-0/+41
| | | | | | | | | queries in the case of a DAG, where a query reaches a node visited earlier, but it's not on a cycle. This avoids MayAlias results in cases where BasicAA is expected to return MustAlias or PartialAlias in order to protect TBAA. llvm-svn: 132609
* When merging MustAlias and PartialAlias, chose PartialAlias insteadDan Gohman2011-06-031-0/+39
| | | | | | of conservatively choosing MayAlias. llvm-svn: 132579
* Make DecomposeGEPExpression check SimplifyInstruction onlyDan Gohman2011-05-241-0/+25
| | | | | | | | after checking for a GEP, so that it matches what GetUnderlyingObject does. This fixes an obscure bug turned up by bugpoint in the testcase for PR9931. llvm-svn: 131971
* I missed a checking with my GVN change. Chris Lattner2011-05-221-2/+2
| | | | llvm-svn: 131851
* Revert commit 131781, to see if it fixes the x86-64 dragonegg buildbot.Duncan Sands2011-05-212-132/+1
| | | | | | | | | Original log message: When BasicAA can determine that two pointers have the same base but differ by a dynamic offset, return PartialAlias instead of MayAlias. See the comment in the code for details. This fixes PR9971. llvm-svn: 131809
* When BasicAA can determine that two pointers have the same base butDan Gohman2011-05-212-1/+132
| | | | | | | differ by a dynamic offset, return PartialAlias instead of MayAlias. See the comment in the code for details. This fixes PR9971. llvm-svn: 131781
* Teach BasicAA about arm.neon.vld1 and vst1.Dan Gohman2011-04-271-0/+16
| | | | llvm-svn: 130327
* When analyzing functions known to only access argument pointees,Dan Gohman2011-04-272-0/+50
| | | | | | | | | only check arguments with pointer types. Update the documentation of IntrReadArgMem reflect this. While here, add support for TBAA tags on intrinsic calls. llvm-svn: 130317
* Test case and comment for PR9633.Andrew Trick2011-04-271-0/+33
| | | | llvm-svn: 130294
* Make tests more useful.Benjamin Kramer2011-04-251-2/+2
| | | | | | lit needs a linter ... llvm-svn: 130126
* PR9634: Don't unconditionally tell the AliasSetTracker that the PreheaderLoadEli Friedman2011-04-071-1/+1
| | | | | | | | | | | is equivalent to any other relevant value; it isn't true in general. If it is equivalent, the LoopPromoter will tell the AST the equivalence. Also, delete the PreheaderLoad if it is unused. Chris, since you were the last one to make major changes here, can you check that this is sane? llvm-svn: 129049
* remove postdom frontiers, because it is dead. Forward dom frontiers areChris Lattner2011-04-053-817/+0
| | | | | | still used by RegionInfo :( llvm-svn: 128943
* Revert r128140 for now.Anders Carlsson2011-03-231-19/+0
| | | | llvm-svn: 128149
* 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. llvm-svn: 128140
* Propagate SCEV no-wrap flags whenever possible.Andrew Trick2011-03-153-14/+21
| | | | | | This needs review. llvm-svn: 127638
* 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. llvm-svn: 127342
* 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. llvm-svn: 125449
* 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. llvm-svn: 125410
* Add another rdar number.Dan Gohman2011-01-241-1/+1
| | | | llvm-svn: 124125
* 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. llvm-svn: 124081
* Use value ranges to fold ext(trunc) in SCEV when possible.Nick Lewycky2011-01-231-0/+34
| | | | llvm-svn: 124062
* Implement requiredTransitiveTobias Grosser2011-01-201-0/+24
| | | | | | | The PassManager did not implement the transitivity of requiredTransitive. This was unnoticed since 2006. llvm-svn: 123942
* Similarly, analyze truncate through multiply.Nick Lewycky2011-01-191-0/+8
| | | | llvm-svn: 123842
* 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. llvm-svn: 123838
* Add a missing SCEV simplification sext(zext x) --> zext x.Nick Lewycky2011-01-191-0/+8
| | | | llvm-svn: 123832
* 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. llvm-svn: 123775
* Revert the testcase from the previous reverted commit.Eric Christopher2011-01-111-2/+0
| | | | llvm-svn: 123227
* add a testcase I missed in previous commit.Chris Lattner2011-01-091-0/+2
| | | | llvm-svn: 123143
* 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. llvm-svn: 123105
* reduce indentation. Print <nuw> and <nsw> when dumping SCEV AddRec'sChris Lattner2011-01-091-1/+1
| | | | | | that have the bit set. llvm-svn: 123104
* 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. llvm-svn: 122772
OpenPOWER on IntegriCloud