summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/LoopIndexSplit.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Ignore DbgInfoIntrinsics.Devang Patel2009-02-061-1/+3
| | | | llvm-svn: 63923
* Fix spelling. Devang Patel2008-12-081-10/+10
| | | | | | Thanks Duncan! llvm-svn: 60702
* Rewrite code that 1) filters loops and 2) calculates new loop bounds.Devang Patel2008-12-041-1269/+715
| | | | | | | | This fixes many bugs. I will add more test cases in a separate check-in. Some day, the code that manipulates CFG and updates dom. info could use refactoring help. llvm-svn: 60554
* If the sign of exit condition and split condition does not matchDevang Patel2008-11-101-1/+6
| | | | | | then do not split loop index. llvm-svn: 58995
* Change create*Pass factory functions to return Pass* instead ofDaniel Dunbar2008-10-221-1/+1
| | | | | | | | | | | LoopPass*. - Although less precise, this means they can be used in clients without RTTI (who would otherwise need to include LoopPass.h, which eventually includes things using dynamic_cast). This was the simplest solution that presented itself, but I am happy to use a better one if available. llvm-svn: 58010
* Check loop exit predicate properly while eliminating one iteration loop.Devang Patel2008-10-101-13/+15
| | | | | | This patch fixes PR 2869 llvm-svn: 57369
* Fix typo, fix PR 2865.Devang Patel2008-10-061-2/+2
| | | | llvm-svn: 57221
* splitLoop does not handle split condition EQ.Devang Patel2008-09-181-0/+6
| | | | | | Fixes PR 2805 llvm-svn: 56321
* Do not ignore iv uses outside the loop.Devang Patel2008-09-171-1/+21
| | | | | | This one slipped through cracks very well. llvm-svn: 56284
* Tidy up several unbeseeming casts from pointer to intptr_t.Dan Gohman2008-09-041-1/+1
| | | | llvm-svn: 55779
* Use empty() instead of begin() == end().Dan Gohman2008-08-141-2/+2
| | | | llvm-svn: 54780
* If loop induction variable's start value is less then its exit value then do ↵Devang Patel2008-07-091-0/+13
| | | | | | not split the loop. llvm-svn: 53265
* Fix a typo in a comment.Dan Gohman2008-06-241-1/+1
| | | | llvm-svn: 52687
* Do not erase induction variable increment if it is used outside the loop.Devang Patel2008-05-191-4/+20
| | | | llvm-svn: 51280
* API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. ↵Gabor Greif2008-05-161-10/+10
| | | | | | Legacy interfaces will be in place for some time. (Merge from use-diet branch.) llvm-svn: 51200
* Clean up the use of static and anonymous namespaces. This turned upDan Gohman2008-05-131-3/+4
| | | | | | | several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017
* Porting r50563 from Tak to mainline.Bill Wendling2008-05-021-0/+5
| | | | llvm-svn: 50564
* API changes for class Use size reduction, wave 1.Gabor Greif2008-04-061-13/+13
| | | | | | | | Specifically, introduction of XXX::Create methods for Users that have a potentially variable number of Uses. llvm-svn: 49277
* Iterators folloring a SmallVector erased element are invalidated soDavid Greene2008-04-021-6/+4
| | | | | | | | don't access cached iterators from after the erased element. Re-apply 49056 with SmallVector support. llvm-svn: 49106
* Reverting 49056 due to the build being broken.Tanya Lattner2008-04-011-4/+6
| | | | llvm-svn: 49060
* Iterators folloring a SmallVector erased element are invalidated soDavid Greene2008-04-011-6/+4
| | | | | | don't access cached iterators from after the erased element. llvm-svn: 49056
* PHI->removeIncomingValue may remove PHInode.Devang Patel2008-03-271-1/+2
| | | | | | Increment iterator in advance. llvm-svn: 48890
* Add incoming value from header only if phi node has any use inside the loop.Devang Patel2008-03-241-2/+3
| | | | llvm-svn: 48738
* If loop header is also loop exiting block then OrigPN is incoming value for ↵Devang Patel2008-02-141-1/+7
| | | | | | | | B loop header. Fixes PR 2030. llvm-svn: 47141
* A loop latch phi node may have uses inside loop, not just in loop header.Devang Patel2008-02-131-4/+5
| | | | llvm-svn: 47093
* While moving exit condition, do not drop loop latch on the floor.Devang Patel2008-02-131-4/+9
| | | | llvm-svn: 47089
* Keep track of exit value operand number when operands are swapped.Devang Patel2008-02-131-1/+6
| | | | llvm-svn: 47082
* Fix PR 1995.Devang Patel2008-02-081-21/+17
| | | | llvm-svn: 46898
* Filter loops that subtract induction variables.Devang Patel2008-01-291-17/+17
| | | | | | | | These loops are not yet handled. Fix PR 1912. llvm-svn: 46484
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* If ExitValue operand is also defined in Loop header thenDevang Patel2007-12-031-0/+17
| | | | | | | | insert new ExitValue after this operand definition. This fixes PR1828. llvm-svn: 44539
* Handle multiple induction variables.Devang Patel2007-09-251-7/+14
| | | | | | This fixes PR714. llvm-svn: 42309
* doh.. Devang Patel2007-09-251-1/+1
| | | | llvm-svn: 42300
* Add transformation to update loop interation space. Now,Devang Patel2007-09-251-7/+148
| | | | | | | | | | | | | | | for (i=A; i<N; i++) { if (i < X && i > Y) do_something(); } is transformed into U=min(N,X); L=max(A,Y); for (i=L;i<U;i++) do_somethihg(); llvm-svn: 42299
* Fix PR1692Devang Patel2007-09-211-3/+5
| | | | llvm-svn: 42209
* Don't increment invalid iterator.Devang Patel2007-09-201-1/+2
| | | | llvm-svn: 42178
* Relax loop ExitCondition predicate restriction.Devang Patel2007-09-191-5/+7
| | | | llvm-svn: 42122
* Filter loops where split condition's false branch is not empty. For exampleDevang Patel2007-09-191-0/+4
| | | | | | | | | | | for (int i = 0; i < N; ++i) { if (i == somevalue) dosomething(); else dosomethingelse(); } llvm-svn: 42121
* Bail out early, before modifying anything.Devang Patel2007-09-191-4/+5
| | | | llvm-svn: 42120
* Work is incomplete. Loop is not modified at all right now.Devang Patel2007-09-191-1/+1
| | | | llvm-svn: 42119
* Do not eliminate loop when it is invalid to do so. For example,Devang Patel2007-09-171-14/+35
| | | | | | | | | | | | | | for(int i = 0; i < N; i++) { if ( i == XYZ) { A; else B; } C; D; } llvm-svn: 42058
* Skeleton for transformations to truncate loop's iteration space.Devang Patel2007-09-171-2/+198
| | | | llvm-svn: 42054
* Temporary reverting r41817Bill Wendling2007-09-141-15/+5
| | | | | | | (http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070910/053370.html). It's causing SPASS to fail. llvm-svn: 41938
* Avoid negative logic.Devang Patel2007-09-111-4/+4
| | | | llvm-svn: 41829
* Refactor code into a separate method.Devang Patel2007-09-111-28/+47
| | | | llvm-svn: 41826
* Clear split info object.Devang Patel2007-09-111-0/+1
| | | | llvm-svn: 41823
* Split condition does not have to be ICmpInst in all cases.Devang Patel2007-09-111-5/+8
| | | | llvm-svn: 41822
* Check all terminators inside loop.Devang Patel2007-09-101-4/+3
| | | | llvm-svn: 41821
* Swap exit condition operands if it works.Devang Patel2007-09-101-5/+15
| | | | llvm-svn: 41817
* Filter exit conditions which are not yet handled.Devang Patel2007-09-101-1/+3
| | | | llvm-svn: 41800
OpenPOWER on IntegriCloud