| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Non-affine post-inc SCEV expansions have more code which must be | Dan Gohman | 2010-03-02 | 1 | -2/+6 |
| | | | | | | | | emitted after the increment. Make sure the insert position reflects this. This fixes PR6453. llvm-svn: 97537 | ||||
| * | Spelling fixes. | Dan Gohman | 2010-03-01 | 1 | -11/+11 |
| | | | | | llvm-svn: 97453 | ||||
| * | Remove unused variables and parameters. | Dan Gohman | 2010-02-22 | 1 | -35/+19 |
| | | | | | llvm-svn: 96780 | ||||
| * | When emitting an instruction which depends on both a post-incremented | Dan Gohman | 2010-02-22 | 1 | -2/+4 |
| | | | | | | | | | | induction variable value and a loop-variant value, don't force the insert position to be at the post-increment position, because it may not be dominated by the loop-variant value. This fixes a use-before-def problem noticed on PPC. llvm-svn: 96774 | ||||
| * | Rename getSDiv to getExactSDiv to reflect its behavior in cases where | Dan Gohman | 2010-02-19 | 1 | -23/+25 |
| | | | | | | | the division would have a remainder. llvm-svn: 96693 | ||||
| * | Check for overflow when scaling up an add or an addrec for | Dan Gohman | 2010-02-19 | 1 | -18/+49 |
| | | | | | | | scaled reuse. llvm-svn: 96692 | ||||
| * | When determining the set of interesting reuse factors, consider | Dan Gohman | 2010-02-19 | 1 | -9/+15 |
| | | | | | | | | | strides in foreign loops. This helps locate reuse opportunities with existing induction variables in foreign loops and reduces the need for inserting new ones. This fixes rdar://7657764. llvm-svn: 96629 | ||||
| * | Delete some unneeded casts. | Dan Gohman | 2010-02-17 | 1 | -2/+2 |
| | | | | | llvm-svn: 96429 | ||||
| * | Don't attempt to divide INT_MIN by -1; consider such cases to | Dan Gohman | 2010-02-17 | 1 | -0/+4 |
| | | | | | | | have overflowed. llvm-svn: 96428 | ||||
| * | Refactor rewriting for PHI nodes into a separate function. | Dan Gohman | 2010-02-16 | 1 | -49/+70 |
| | | | | | llvm-svn: 96382 | ||||
| * | Fix whitespace. | Dan Gohman | 2010-02-16 | 1 | -3/+3 |
| | | | | | llvm-svn: 96372 | ||||
| * | There are two ways of checking for a given type, for example isa<PointerType>(T) | Duncan Sands | 2010-02-16 | 1 | -1/+1 |
| | | | | | | | | and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris. llvm-svn: 96344 | ||||
| * | Split the main for-each-use loop again, this time for GenerateTruncates, | Dan Gohman | 2010-02-16 | 1 | -1/+4 |
| | | | | | | | | as it also peeks at which registers are being used by other uses. This makes LSR less sensitive to use-list order. llvm-svn: 96308 | ||||
| * | Fix whitespace. | Dan Gohman | 2010-02-14 | 1 | -1/+1 |
| | | | | | llvm-svn: 96179 | ||||
| * | Fix a comment. | Dan Gohman | 2010-02-14 | 1 | -1/+1 |
| | | | | | llvm-svn: 96178 | ||||
| * | When complicated expressions are broken down into subexpressions | Dan Gohman | 2010-02-14 | 1 | -2/+8 |
| | | | | | | | | | | | with multiplication by constants distributed through, occasionally those subexpressions can include both x and -x. For now, if this condition is discovered within LSR, just prune such cases away, as they won't be profitable. This fixes a "zero allocated in a base register" assertion failure. llvm-svn: 96177 | ||||
| * | Actually, this code doesn't have to be quite so conservative in | Dan Gohman | 2010-02-14 | 1 | -6/+5 |
| | | | | | | | | the no-TLI case. But it should still default to declining the transformation. llvm-svn: 96152 | ||||
| * | Don't attempt aggressive post-inc uses if TargetLowering is not available, | Dan Gohman | 2010-02-14 | 1 | -3/+8 |
| | | | | | | | because profitability can't be sufficiently approximated. llvm-svn: 96148 | ||||
| * | Make LSR not crash if invoked without target lowering info, e.g. if invoked | John McCall | 2010-02-13 | 1 | -2/+2 |
| | | | | | | | from opt. llvm-svn: 96135 | ||||
| * | Fix a pruning heuristic which implicitly assumed that SmallPtrSet is | Dan Gohman | 2010-02-13 | 1 | -45/+68 |
| | | | | | | | deterministically sorted. llvm-svn: 96071 | ||||
| * | Reapply 95979, a compile-time speedup, now that the bug it exposed is fixed. | Dan Gohman | 2010-02-12 | 1 | -1/+1 |
| | | | | | llvm-svn: 96005 | ||||
| * | Fix this code to avoid dereferencing an end() iterator in | Dan Gohman | 2010-02-12 | 1 | -1/+5 |
| | | | | | | | offset distributions it doesn't expect. llvm-svn: 96002 | ||||
| * | Revert "Reverse the order for collecting the parts of an addrec. The order", it | Daniel Dunbar | 2010-02-12 | 1 | -1/+1 |
| | | | | | | | is breaking llvm-gcc bootstrap. llvm-svn: 95988 | ||||
| * | Reverse the order for collecting the parts of an addrec. The order | Dan Gohman | 2010-02-12 | 1 | -1/+1 |
| | | | | | | | | doesn't matter, except that ScalarEvolution tends to need less time to fold the results this way. llvm-svn: 95979 | ||||
| * | Reapply the new LoopStrengthReduction code, with compile time and | Dan Gohman | 2010-02-12 | 1 | -2277/+2730 |
| | | | | | | | | | | | bug fixes, and with improved heuristics for analyzing foreign-loop addrecs. This change also flattens IVUsers, eliminating the stride-oriented groupings, which makes it easier to work with. llvm-svn: 95975 | ||||
| * | Generic reformatting and comment fixing. No functionality change. | Bill Wendling | 2010-01-29 | 1 | -19/+20 |
| | | | | | llvm-svn: 94771 | ||||
| * | Add newline to debugging output, and fix some grammar-os in comment. | Bill Wendling | 2010-01-29 | 1 | -5/+5 |
| | | | | | llvm-svn: 94765 | ||||
| * | Revert LoopStrengthReduce.cpp to pre-r94061 for now. | Dan Gohman | 2010-01-22 | 1 | -2355/+2268 |
| | | | | | llvm-svn: 94123 | ||||
| * | When inserting expressions for post-increment users which contain | Dan Gohman | 2010-01-21 | 1 | -17/+32 |
| | | | | | | | | | loop-variant components, adds must be inserted after the increment. Keep track of the increment position for this case, and insert these adds in the correct location. llvm-svn: 94110 | ||||
| * | Include IVUsers information in LSR's debug output. | Dan Gohman | 2010-01-21 | 1 | -1/+1 |
| | | | | | llvm-svn: 94108 | ||||
| * | Prune the search for candidate formulae if the number of register | Dan Gohman | 2010-01-21 | 1 | -32/+67 |
| | | | | | | | | operands exceeds the number of registers used in the initial solution, as that wouldn't lead to a profitable solution anyway. llvm-svn: 94107 | ||||
| * | Add a comment. | Dan Gohman | 2010-01-21 | 1 | -1/+2 |
| | | | | | llvm-svn: 94104 | ||||
| * | Re-implement the main strength-reduction portion of LoopStrengthReduction. | Dan Gohman | 2010-01-21 | 1 | -2269/+2305 |
| | | | | | | | | | | | | | | | This new version is much more aggressive about doing "full" reduction in cases where it reduces register pressure, and also more aggressive about rewriting induction variables to count down (or up) to zero when doing so reduces register pressure. It currently uses fairly simplistic algorithms for finding reuse opportunities, but it introduces a new framework allows it to combine multiple strategies at once to form hybrid solutions, instead of doing all full-reduction or all base+index. llvm-svn: 94061 | ||||
| * | Set Changed properly after calling DeleteDeadPHIs. | Dan Gohman | 2010-01-05 | 1 | -1/+1 |
| | | | | | llvm-svn: 92735 | ||||
| * | Remove dump routine and the associated Debug.h from a header. Patch up | David Greene | 2009-12-23 | 1 | -36/+36 |
| | | | | | | | other files to compensate. llvm-svn: 92075 | ||||
| * | Add Loop contains utility methods for testing whether a loop | Dan Gohman | 2009-12-18 | 1 | -13/+13 |
| | | | | | | | | | contains another loop, or an instruction. The loop form is substantially more efficient on large loops than the typical code it replaces. llvm-svn: 91654 | ||||
| * | Minor code simplification. | Dan Gohman | 2009-12-18 | 1 | -4/+1 |
| | | | | | llvm-svn: 91653 | ||||
| * | Don't pass const pointers by reference. | Dan Gohman | 2009-12-18 | 1 | -13/+13 |
| | | | | | llvm-svn: 91647 | ||||
| * | Reapply LoopStrengthReduce and IVUsers cleanups, excluding the part | Dan Gohman | 2009-12-18 | 1 | -70/+30 |
| | | | | | | | | | of 91296 that caused trouble -- the Processed list needs to be preserved for the livetime of the pass, as AddUsersIfInteresting is called from other passes. llvm-svn: 91641 | ||||
| * | Revert 91280-91283, 91286-91289, 91291, 91293, 91295-91296. It apparently ↵ | Evan Cheng | 2009-12-17 | 1 | -30/+70 |
| | | | | | | | introduced a non-deterministic behavior in the optimizer somewhere. llvm-svn: 91598 | ||||
| * | Delete an unused function. | Dan Gohman | 2009-12-15 | 1 | -38/+0 |
| | | | | | llvm-svn: 91432 | ||||
| * | Fix a thinko; isNotAlreadyContainedIn had a built-in negative, so the | Dan Gohman | 2009-12-14 | 1 | -1/+1 |
| | | | | | | | condition was inverted when the code was converted to contains(). llvm-svn: 91295 | ||||
| * | Remove unnecessary #includes. | Dan Gohman | 2009-12-14 | 1 | -2/+0 |
| | | | | | llvm-svn: 91293 | ||||
| * | Instead of having a ScalarEvolution pointer member in BasedUser, just pass | Dan Gohman | 2009-12-14 | 1 | -12/+13 |
| | | | | | | | the ScalarEvolution pointer into the functions which need it. llvm-svn: 91289 | ||||
| * | Don't bother cleaning up if there's nothing to clean up. | Dan Gohman | 2009-12-14 | 1 | -6/+6 |
| | | | | | llvm-svn: 91288 | ||||
| * | Delete an unused variable. | Dan Gohman | 2009-12-14 | 1 | -10/+1 |
| | | | | | llvm-svn: 91287 | ||||
| * | LSR itself doesn't need LoopInfo. | Dan Gohman | 2009-12-14 | 1 | -6/+2 |
| | | | | | llvm-svn: 91283 | ||||
| * | LSR itself doesn't need DominatorTree. | Dan Gohman | 2009-12-14 | 1 | -6/+2 |
| | | | | | llvm-svn: 91282 | ||||
| * | Remove the code in LSR that manually hoists expansions out of loops; | Dan Gohman | 2009-12-14 | 1 | -29/+9 |
| | | | | | | | SCEVExpander does this automatically. llvm-svn: 91281 | ||||
| * | Minor code cleanups. | Dan Gohman | 2009-12-14 | 1 | -4/+2 |
| | | | | | llvm-svn: 91280 | ||||

