Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Split runOnFunction into many smaller functions. This make it easier to get ↵ | Owen Anderson | 2007-06-20 | 1 | -279/+329 |
| | | | | | | accurate performance analysis of GVNPRE. llvm-svn: 37678 | ||||
* | Make GVNPRE accurate report whether it modified the function or not. | Owen Anderson | 2007-06-20 | 1 | -5/+12 |
| | | | | llvm-svn: 37673 | ||||
* | Get rid of an unneeded helper function. | Owen Anderson | 2007-06-20 | 1 | -19/+9 |
| | | | | llvm-svn: 37670 | ||||
* | Use a DenseMap instead of an std::map for the value numbering. This reduces ↵ | Owen Anderson | 2007-06-19 | 1 | -4/+5 |
| | | | | | | the time to optimize lencod on a PPC Debug build from ~300s to ~140s. llvm-svn: 37668 | ||||
* | Make dependsOnInvoke much more specific in what it tests, which in turn make ↵ | Owen Anderson | 2007-06-19 | 1 | -42/+10 |
| | | | | | | it much faster to run. This reduces the time to optimize lencondwith a debug build on PPC from ~450s to ~300s. llvm-svn: 37667 | ||||
* | Moved Inliner.h to include/llvm/Transforms/IPO/InlinerPass.h | Tanya Lattner | 2007-06-19 | 1 | -65/+0 |
| | | | | llvm-svn: 37666 | ||||
* | Inliner pass header file was moved. | Tanya Lattner | 2007-06-19 | 2 | -2/+3 |
| | | | | llvm-svn: 37665 | ||||
* | Rename ScalarEvolution::deleteInstructionFromRecords to | Dan Gohman | 2007-06-19 | 2 | -5/+5 |
| | | | | | | | | | deleteValueFromRecords and loosen the types to all it to accept Value* instead of just Instruction*, since this is what ScalarEvolution uses internally anyway. This allows more flexibility for future uses. llvm-svn: 37657 | ||||
* | Handle constants in phi nodes properly. This fixes ↵ | Owen Anderson | 2007-06-19 | 1 | -1/+10 |
| | | | | | | test/Transforms/GVNPRE/2007-06-18-ConstantInPhi.ll llvm-svn: 37655 | ||||
* | silence a bogus warning Duraid ran into. | Chris Lattner | 2007-06-19 | 1 | -1/+1 |
| | | | | llvm-svn: 37649 | ||||
* | Be careful to erase values from all of the appropriate sets when they're not ↵ | Owen Anderson | 2007-06-19 | 1 | -2/+14 |
| | | | | | | needed anymore. This fixes a few more memory-related issues. llvm-svn: 37647 | ||||
* | Remember to clear the maximal sets between functions. | Owen Anderson | 2007-06-19 | 1 | -2/+3 |
| | | | | | | Thanks to Nicholas for valgrinding this. llvm-svn: 37646 | ||||
* | Refactor GVNPRE to use a much smart method of uniquing value sets, and ↵ | Owen Anderson | 2007-06-19 | 1 | -273/+451 |
| | | | | | | centralize a lot of the value numbering information. No functionality change. llvm-svn: 37645 | ||||
* | Cache the results of dependsOnInvoke() | Owen Anderson | 2007-06-18 | 1 | -4/+18 |
| | | | | llvm-svn: 37622 | ||||
* | Fix indentation. | Owen Anderson | 2007-06-18 | 1 | -6/+6 |
| | | | | llvm-svn: 37621 | ||||
* | Don't perform an expensive check if it's not necessary. | Owen Anderson | 2007-06-18 | 1 | -2/+12 |
| | | | | llvm-svn: 37620 | ||||
* | Fix test/Transforms/GVNPRE/2007-06-15-InvokeInst.ll by ignoring all ↵ | Owen Anderson | 2007-06-16 | 1 | -3/+36 |
| | | | | | | instructions that depend on invokes. llvm-svn: 37610 | ||||
* | Use SCEVConstant::get instead of SCEVUnknown::get to create an | Dan Gohman | 2007-06-15 | 1 | -2/+2 |
| | | | | | | integer constant SCEV. llvm-svn: 37596 | ||||
* | Fix test/Transforms/GVNPRE/2007-06-15-Looping.ll | Owen Anderson | 2007-06-15 | 1 | -4/+2 |
| | | | | llvm-svn: 37595 | ||||
* | Add a SCEV class and supporting code for sign-extend expressions. | Dan Gohman | 2007-06-15 | 2 | -18/+23 |
| | | | | | | | | | | This created an ambiguity for expandInTy to decide when to use sign-extension or zero-extension, but it turns out that most of its callers don't actually need a type conversion, now that LLVM types don't have explicit signedness. Drop expandInTy in favor of plain expand, and change the few places that actually need a type conversion to do it themselves. llvm-svn: 37591 | ||||
* | Generalize many transforms to work on ~ of vectors in addition to ~ of | Chris Lattner | 2007-06-15 | 1 | -29/+31 |
| | | | | | | | integer ops. This implements Transforms/InstCombine/and-or-not.ll test3/test4, and finishes off PR1510 llvm-svn: 37589 | ||||
* | Implement two xforms: | Chris Lattner | 2007-06-15 | 1 | -6/+26 |
| | | | | | | | | | | | 1. ~(~X | Y) === (X & ~Y) 2. (A|B) & ~(A&B) -> A^B This allows us to transform ~(~(a|b) | (a&b)) -> a^b. This implements PR1510 for scalar values. llvm-svn: 37584 | ||||
* | delete some obviously dead vector operations, which deletes a few thousand | Chris Lattner | 2007-06-15 | 1 | -1/+12 |
| | | | | | | operations from Duraids example. llvm-svn: 37582 | ||||
* | Fix test/Transforms/GVNPRE/2007-06-12-PhiTranslate.ll | Owen Anderson | 2007-06-12 | 1 | -38/+39 |
| | | | | llvm-svn: 37564 | ||||
* | Refactor some code, and fix test/Transforms/GVNPRE/2007-06-12-NoExit.ll by ↵ | Owen Anderson | 2007-06-12 | 1 | -47/+69 |
| | | | | | | | | being more careful when using post-dominator information. llvm-svn: 37556 | ||||
* | Sink CmpInst's to their uses to reduce register pressure. | Dale Johannesen | 2007-06-12 | 1 | -3/+61 |
| | | | | llvm-svn: 37554 | ||||
* | Fix a few more bugs, including an instance of walking in reverse topological ↵ | Owen Anderson | 2007-06-12 | 1 | -31/+49 |
| | | | | | | | | rather than topological order. This fixes a testcase extracted from llvm-test. llvm-svn: 37550 | ||||
* | Add and use DominatorTreeBase::findNearestCommonDominator(). | Devang Patel | 2007-06-11 | 1 | -1/+1 |
| | | | | llvm-svn: 37545 | ||||
* | Simplify. | Devang Patel | 2007-06-11 | 1 | -4/+2 |
| | | | | llvm-svn: 37542 | ||||
* | simplify | Devang Patel | 2007-06-11 | 1 | -4/+3 |
| | | | | llvm-svn: 37541 | ||||
* | Simplify. Dominator Tree is required so always available. | Devang Patel | 2007-06-11 | 1 | -31/+26 |
| | | | | llvm-svn: 37540 | ||||
* | Handle functions with multiple exit blocks properly. | Owen Anderson | 2007-06-11 | 1 | -0/+6 |
| | | | | llvm-svn: 37539 | ||||
* | Perform PRE of comparison operators. | Owen Anderson | 2007-06-09 | 1 | -24/+155 |
| | | | | llvm-svn: 37536 | ||||
* | Collect statistics from GVN-PRE. | Owen Anderson | 2007-06-08 | 1 | -0/+9 |
| | | | | llvm-svn: 37530 | ||||
* | Fix typo in a comment. | Owen Anderson | 2007-06-08 | 1 | -1/+1 |
| | | | | llvm-svn: 37526 | ||||
* | Fix a bug that was causing the elimination phase not to replace values when ↵ | Owen Anderson | 2007-06-08 | 1 | -13/+56 |
| | | | | | | | | | | it should be. With this patch, GVN-PRE now correctly optimizes the example from the thesis. Many thanks to Daniel Berlin for helping me find errors in this. llvm-svn: 37525 | ||||
* | Small bugfix, and const-ify some methods (Thanks, Bill). | Owen Anderson | 2007-06-08 | 1 | -6/+6 |
| | | | | llvm-svn: 37513 | ||||
* | Update LoopSimplify to require and preserve DominatorTree only. | Devang Patel | 2007-06-08 | 1 | -32/+26 |
| | | | | | | Now LoopSimplify does not require nor preserve ETForest. llvm-svn: 37512 | ||||
* | Add partial redundancy elimination. | Owen Anderson | 2007-06-08 | 1 | -84/+249 |
| | | | | llvm-svn: 37510 | ||||
* | Do not preserve ETForest. | Devang Patel | 2007-06-08 | 1 | -26/+5 |
| | | | | llvm-svn: 37506 | ||||
* | Do not require ETForest. Now it is unused by LICM. | Devang Patel | 2007-06-07 | 1 | -3/+0 |
| | | | | llvm-svn: 37502 | ||||
* | Do not use ETForest as well as DomiantorTree. DominatorTree is sufficient. | Devang Patel | 2007-06-07 | 2 | -21/+18 |
| | | | | llvm-svn: 37501 | ||||
* | Use DominatorTree instead of ETForest. | Devang Patel | 2007-06-07 | 4 | -18/+20 |
| | | | | | | This allows faster immediate domiantor walk. llvm-svn: 37500 | ||||
* | Use DominatorTree instead of ETForest. | Devang Patel | 2007-06-07 | 1 | -8/+7 |
| | | | | llvm-svn: 37499 | ||||
* | Use DominatorTree instead of ETForest. | Devang Patel | 2007-06-07 | 1 | -23/+25 |
| | | | | llvm-svn: 37498 | ||||
* | Use DominatorTree instead of ETForest. | Devang Patel | 2007-06-07 | 1 | -3/+1 |
| | | | | llvm-svn: 37495 | ||||
* | Use DominatorTree instead of ETForest. | Devang Patel | 2007-06-07 | 1 | -3/+3 |
| | | | | llvm-svn: 37494 | ||||
* | Maintain ETNode as part of DomTreeNode. | Devang Patel | 2007-06-07 | 2 | -2/+2 |
| | | | | | | This adds redundancy for now. llvm-svn: 37492 | ||||
* | Formating fixes. | Tanya Lattner | 2007-06-07 | 1 | -4/+4 |
| | | | | llvm-svn: 37491 | ||||
* | Instruct the inliner to obey the noinline attribute. Add test case. | Tanya Lattner | 2007-06-06 | 1 | -1/+43 |
| | | | | llvm-svn: 37481 |