Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | typoes | Gabor Greif | 2010-09-10 | 1 | -3/+3 |
| | | | | llvm-svn: 113647 | ||||
* | Reapply r110396, with fixes to appease the Linux buildbot gods. | Owen Anderson | 2010-08-06 | 1 | -1/+1 |
| | | | | llvm-svn: 110460 | ||||
* | Revert r110396 to fix buildbots. | Owen Anderson | 2010-08-06 | 1 | -1/+1 |
| | | | | llvm-svn: 110410 | ||||
* | Don't use PassInfo* as a type identifier for passes. Instead, use the ↵ | Owen Anderson | 2010-08-05 | 1 | -1/+1 |
| | | | | | | | | address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396 | ||||
* | Use DominatorTree::properlyDominates instead of dominates with an | Dan Gohman | 2010-07-26 | 1 | -1/+1 |
| | | | | | | explicit inequality check. llvm-svn: 109401 | ||||
* | A block dominates itself, by definition. | Dan Gohman | 2010-07-26 | 1 | -1/+1 |
| | | | | llvm-svn: 109400 | ||||
* | mass elimination of reliance on automatic iterator dereferencing | Gabor Greif | 2010-07-22 | 1 | -1/+1 |
| | | | | llvm-svn: 109103 | ||||
* | Fix batch of converting RegisterPass<> to INTIALIZE_PASS(). | Owen Anderson | 2010-07-21 | 1 | -2/+2 |
| | | | | llvm-svn: 109045 | ||||
* | Convert some tab stops into spaces. | Duncan Sands | 2010-07-12 | 1 | -2/+2 |
| | | | | llvm-svn: 108130 | ||||
* | Use ValueMap instead of DenseMap. | Devang Patel | 2010-06-24 | 1 | -10/+10 |
| | | | | | | The ValueMapper used by various cloning utility maps MDNodes also. llvm-svn: 106706 | ||||
* | Use pre-increment instead of post-increment when the result is not used. | Dan Gohman | 2010-06-22 | 1 | -2/+2 |
| | | | | llvm-svn: 106542 | ||||
* | Check for side effects before splitting loop. | Devang Patel | 2010-05-03 | 1 | -0/+19 |
| | | | | | | Patch by Jakub Staszak! llvm-svn: 102928 | ||||
* | 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 |