summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/ScalarEvolutionNormalization.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix typos in comments, NFCRobin Morisset2014-08-291-1/+1
| | | | | | | | | | | | | | Summary: Just fixing comments, no functional change. Test Plan: N/A Reviewers: jfb Subscribers: mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D5130 llvm-svn: 216784
* test check-in: added missing parenthesis in commentSanjay Patel2014-05-281-1/+1
| | | | llvm-svn: 209763
* [C++11] More 'nullptr' conversion. In some cases just using a boolean check ↵Craig Topper2014-04-151-1/+1
| | | | | | instead of comparing to nullptr. llvm-svn: 206243
* Add stride normalization to SCEV Normalize/Denormalize transformation.Michael Zolotukhin2014-03-181-3/+26
| | | | llvm-svn: 204161
* [cleanup] Move the Dominators.h and Verifier.h headers into the IRChandler Carruth2014-01-131-1/+1
| | | | | | | | | | | | | | | | | | directory. These passes are already defined in the IR library, and it doesn't make any sense to have the headers in Analysis. Long term, I think there is going to be a much better way to divide these matters. The dominators code should be fully separated into the abstract graph algorithm and have that put in Support where it becomes obvious that evn Clang's CFGBlock's can use it. Then the verifier can manually construct dominance information from the Support-driven interface while the Analysis library can provide a pass which both caches, reconstructs, and supports a nice update API. But those are very long term, and so I don't want to leave the really confusing structure until that day arrives. llvm-svn: 199082
* Fix LSR: don't normalize quadratic recurrences.Andrew Trick2013-10-251-5/+13
| | | | | | | | | | Partial fix for PR17459: wrong code at -O3 on x86_64-linux-gnu (affecting trunk and 3.3) ScalarEvolutionNormalization was attempting to normalize by adding and subtracting strides. Chained recurrences don't work that way. llvm-svn: 193437
* More dead code removal (using -Wunreachable-code)David Blaikie2012-01-201-1/+0
| | | | llvm-svn: 148578
* Remove unnecessary default cases in switches that cover all enum values.David Blaikie2012-01-101-1/+0
| | | | llvm-svn: 147855
* Fix memory corruption I introduced a few checkins ago.Andrew Trick2011-10-131-5/+6
| | | | | | Self-review easily caught this obvious bug. llvm-svn: 141880
* SCEV: Rewrite TrandformForPostIncUse to handle expression DAGs, notAndrew Trick2011-10-131-30/+70
| | | | | | | | just expression trees. Partially fixes PR11090. Test case will be with the full fix. llvm-svn: 141868
* Added SCEV::NoWrapFlags to manage unsigned, signed, and self wrapAndrew Trick2011-03-141-1/+2
| | | | | | | | | properties. Added the self-wrap flag for SCEV::AddRecExpr. A slew of temporary FIXMEs indicate the intention of the no-self-wrap flag without changing behavior in this revision. llvm-svn: 127590
* Disable the asserts that check that normalization is perfectlyDan Gohman2010-09-031-2/+7
| | | | | | | | | invertible. ScalarEvolution's folding routines don't always succeed in canonicalizing equal expressions to a single canonical form, and this can cause these asserts to fail, even though there's no actual correctness problem. This fixes PR8066. llvm-svn: 113021
* Fix SCEV denormalization of expressions where the exit value fromDan Gohman2010-07-201-32/+55
| | | | | | | one loop is involved in the increment of an addrec for another loop. This fixes rdar://8168938. llvm-svn: 108863
* Change an argument from an Instruction* to a Value*, which is allDan Gohman2010-07-201-5/+5
| | | | | | that is needed here. llvm-svn: 108850
* Minor code cleanups.Dan Gohman2010-07-201-0/+5
| | | | llvm-svn: 108848
* Minor code simplification.Dan Gohman2010-07-201-6/+3
| | | | llvm-svn: 108793
* Fix normalization and de-normalization of non-affine SCEVs.Dan Gohman2010-06-041-6/+9
| | | | llvm-svn: 105480
* Generalize IVUsers to track arbitrary expressions rather than expressionsDan Gohman2010-04-071-0/+150
explicitly split into stride-and-offset pairs. Also, add the ability to track multiple post-increment loops on the same expression. This refines the concept of "normalizing" SCEV expressions used for to post-increment uses, and introduces a dedicated utility routine for normalizing and denormalizing expressions. This fixes the expansion of expressions which are post-increment users of more than one loop at a time. More broadly, this takes LSR another step closer to being able to reason about more than one loop at a time. llvm-svn: 100699
OpenPOWER on IntegriCloud