Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Use do+while instead of while for loops which obviously have a | Dan Gohman | 2010-01-05 | 1 | -2/+2 |
| | | | | | | non-zero trip count. Use SmallVector's pop_back_val(). llvm-svn: 92734 | ||||
* | Add Loop contains utility methods for testing whether a loop | Dan Gohman | 2009-12-18 | 1 | -2/+2 |
| | | | | | | | | 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 | ||||
* | Update various Loop optimization passes to cope with the possibility that | Dan Gohman | 2009-11-05 | 1 | -0/+4 |
| | | | | | | LoopSimplify form may not be available. llvm-svn: 86175 | ||||
* | Remove ICmpInst::isSignedPredicate which was a reimplementation | Nick Lewycky | 2009-10-25 | 1 | -4/+4 |
| | | | | | | CmpInst::isSigned. llvm-svn: 85037 | ||||
* | eliminate VISIBILITY_HIDDEN from Transforms/Scalar. PR4861 | Chris Lattner | 2009-09-02 | 1 | -4/+1 |
| | | | | llvm-svn: 80766 | ||||
* | Fix PR3913, patch by Jakub Staszak! | Chris Lattner | 2009-08-28 | 1 | -1/+1 |
| | | | | llvm-svn: 80327 | ||||
* | Push LLVMContexts through the IntegerType APIs. | Owen Anderson | 2009-08-13 | 1 | -1/+2 |
| | | | | llvm-svn: 78948 | ||||
* | Revert the ConstantInt constructors back to their 2.5 forms where possible, ↵ | Owen Anderson | 2009-07-24 | 1 | -2/+2 |
| | | | | | | thanks to contexts-on-types. More to come. llvm-svn: 77011 | ||||
* | Get rid of the Pass+Context magic. | Owen Anderson | 2009-07-22 | 1 | -4/+8 |
| | | | | llvm-svn: 76702 | ||||
* | This started as a small change, I swear. Unfortunately, lots of things call ↵ | Owen Anderson | 2009-07-09 | 1 | -7/+9 |
| | | | | | | the [I|F]CmpInst constructors. Who knew!? llvm-svn: 75200 | ||||
* | "LLVMContext* " --> "LLVMContext *" | Owen Anderson | 2009-07-06 | 1 | -2/+2 |
| | | | | llvm-svn: 74878 | ||||
* | Second batch of passes using LLVMContext. | Owen Anderson | 2009-07-03 | 1 | -11/+14 |
| | | | | llvm-svn: 74753 | ||||
* | Don't try to split a loop when the controlling icmp instruction | Dan Gohman | 2009-06-27 | 1 | -0/+3 |
| | | | | | | doesn't have an IV-based operand. This fixes PR4471. llvm-svn: 74399 | ||||
* | Support vector casts in more places, fixing a variety of assertion | Dan Gohman | 2009-06-15 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | failures. To support this, add some utility functions to Type to help support vector/scalar-independent code. Change ConstantInt::get and ConstantFP::get to support vector types, and add an overload to ConstantInt::get that uses a static IntegerType type, for convenience. Introduce a new getConstant method for ScalarEvolution, to simplify common use cases. llvm-svn: 73431 | ||||
* | Fix loop-index-split to correctly preserve dominance frontiers. Part of | Eli Friedman | 2009-05-22 | 1 | -17/+12 |
| | | | | | | PR4238. llvm-svn: 72244 | ||||
* | Allow readonly functions to unwind exceptions. Teach | Duncan Sands | 2009-05-06 | 1 | -1/+1 |
| | | | | | | | | the optimizers about this. For example, a readonly function with no uses cannot be removed unless it is also marked nounwind. llvm-svn: 71071 | ||||
* | Reword and tidy up some comments. | Dan Gohman | 2009-04-29 | 1 | -10/+21 |
| | | | | llvm-svn: 70416 | ||||
* | LoopIndexSplit needs to inform the loop pass manager of the instructions it is | Owen Anderson | 2009-04-14 | 1 | -0/+1 |
| | | | | | | deleting, not just the basic block. llvm-svn: 69011 | ||||
* | Loop Index Split can eliminate a loop if it can determin if loop body is ↵ | Devang Patel | 2009-03-30 | 1 | -8/+24 |
| | | | | | | executed only once. There was a bug in determining IV based value of the iteration for which the loop body is executed. Fix it. llvm-svn: 68071 | ||||
* | Before deleting a basic block, give other loop passes a chance cleanup ↵ | Devang Patel | 2009-03-25 | 1 | -1/+1 |
| | | | | | | analysis values, related to the instructions in the basic block. llvm-svn: 67719 | ||||
* | If branch conditions' one successor is dominating another non-latch ↵ | Devang Patel | 2009-03-02 | 1 | -0/+15 |
| | | | | | | successor then this loop's iteration space can not be restricted. In this example block bb5 is always executed. llvm-svn: 65902 | ||||
* | LoopIndexSplit doesn't actually use ScalarEvolution. | Dan Gohman | 2009-02-17 | 1 | -4/+1 |
| | | | | llvm-svn: 64811 | ||||
* | Add a utility function to LoopInfo to return the exit block | Dan Gohman | 2009-02-12 | 1 | -5/+4 |
| | | | | | | | when the loop has exactly one exit, and make use of it in LoopIndexSplit. llvm-svn: 64388 | ||||
* | Ignore DbgInfoIntrinsics. | Devang Patel | 2009-02-06 | 1 | -1/+3 |
| | | | | llvm-svn: 63923 | ||||
* | Fix spelling. | Devang Patel | 2008-12-08 | 1 | -10/+10 |
| | | | | | | Thanks Duncan! llvm-svn: 60702 | ||||
* | Rewrite code that 1) filters loops and 2) calculates new loop bounds. | Devang Patel | 2008-12-04 | 1 | -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 match | Devang Patel | 2008-11-10 | 1 | -1/+6 |
| | | | | | | then do not split loop index. llvm-svn: 58995 | ||||
* | Change create*Pass factory functions to return Pass* instead of | Daniel Dunbar | 2008-10-22 | 1 | -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 Patel | 2008-10-10 | 1 | -13/+15 |
| | | | | | | This patch fixes PR 2869 llvm-svn: 57369 | ||||
* | Fix typo, fix PR 2865. | Devang Patel | 2008-10-06 | 1 | -2/+2 |
| | | | | llvm-svn: 57221 | ||||
* | splitLoop does not handle split condition EQ. | Devang Patel | 2008-09-18 | 1 | -0/+6 |
| | | | | | | Fixes PR 2805 llvm-svn: 56321 | ||||
* | Do not ignore iv uses outside the loop. | Devang Patel | 2008-09-17 | 1 | -1/+21 |
| | | | | | | This one slipped through cracks very well. llvm-svn: 56284 | ||||
* | Tidy up several unbeseeming casts from pointer to intptr_t. | Dan Gohman | 2008-09-04 | 1 | -1/+1 |
| | | | | llvm-svn: 55779 | ||||
* | Use empty() instead of begin() == end(). | Dan Gohman | 2008-08-14 | 1 | -2/+2 |
| | | | | llvm-svn: 54780 | ||||
* | If loop induction variable's start value is less then its exit value then do ↵ | Devang Patel | 2008-07-09 | 1 | -0/+13 |
| | | | | | | not split the loop. llvm-svn: 53265 | ||||
* | Fix a typo in a comment. | Dan Gohman | 2008-06-24 | 1 | -1/+1 |
| | | | | llvm-svn: 52687 | ||||
* | Do not erase induction variable increment if it is used outside the loop. | Devang Patel | 2008-05-19 | 1 | -4/+20 |
| | | | | llvm-svn: 51280 | ||||
* | API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. ↵ | Gabor Greif | 2008-05-16 | 1 | -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 up | Dan Gohman | 2008-05-13 | 1 | -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 Wendling | 2008-05-02 | 1 | -0/+5 |
| | | | | llvm-svn: 50564 | ||||
* | API changes for class Use size reduction, wave 1. | Gabor Greif | 2008-04-06 | 1 | -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 so | David Greene | 2008-04-02 | 1 | -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 Lattner | 2008-04-01 | 1 | -4/+6 |
| | | | | llvm-svn: 49060 | ||||
* | Iterators folloring a SmallVector erased element are invalidated so | David Greene | 2008-04-01 | 1 | -6/+4 |
| | | | | | | don't access cached iterators from after the erased element. llvm-svn: 49056 | ||||
* | PHI->removeIncomingValue may remove PHInode. | Devang Patel | 2008-03-27 | 1 | -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 Patel | 2008-03-24 | 1 | -2/+3 |
| | | | | llvm-svn: 48738 | ||||
* | If loop header is also loop exiting block then OrigPN is incoming value for ↵ | Devang Patel | 2008-02-14 | 1 | -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 Patel | 2008-02-13 | 1 | -4/+5 |
| | | | | llvm-svn: 47093 | ||||
* | While moving exit condition, do not drop loop latch on the floor. | Devang Patel | 2008-02-13 | 1 | -4/+9 |
| | | | | llvm-svn: 47089 | ||||
* | Keep track of exit value operand number when operands are swapped. | Devang Patel | 2008-02-13 | 1 | -1/+6 |
| | | | | llvm-svn: 47082 |