Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Make makeLoopInvariant report whether it made any changes or not, | Dan Gohman | 2009-07-15 | 1 | -6/+4 |
| | | | | | | and use this to simplify more code. llvm-svn: 75722 | ||||
* | Update LoopSimplify and LoopUnswitch to use the new makeLoopInvariant | Dan Gohman | 2009-07-14 | 1 | -14/+9 |
| | | | | | | function. llvm-svn: 75584 | ||||
* | More LLVMContext-ification. | Owen Anderson | 2009-07-05 | 1 | -1/+2 |
| | | | | llvm-svn: 74807 | ||||
* | Minor code simplification. | Dan Gohman | 2009-06-30 | 1 | -3/+2 |
| | | | | llvm-svn: 74491 | ||||
* | Remove the block from the LoopInfo, rather than just the Loop. | Dan Gohman | 2009-06-27 | 1 | -1/+1 |
| | | | | | | | LoopInfo will handle removing it from the Loop, as well as updating its own tables. llvm-svn: 74398 | ||||
* | Teach LoopSimplify how to merge multiple loop exits into a single exit, | Dan Gohman | 2009-06-27 | 1 | -0/+75 |
| | | | | | | | | | | | | | | | | when one of them can be converted to a trivial icmp and conditional branch. This addresses what is essentially a phase ordering problem. SimplifyCFG knows how to do this transformation, but it doesn't do so if the primary block has any instructions in it other than an icmp and a branch. In the given testcase, the block contains other instructions, however they are loop-invariant and can be hoisted. SimplifyCFG doesn't have LoopInfo though, so it can't hoist them. And, it's important that the blocks be merged before LoopRotation, as it doesn't support multiple-exit loops. llvm-svn: 74396 | ||||
* | Rename getAnalysisToUpdate to getAnalysisIfAvailable. | Duncan Sands | 2009-01-28 | 1 | -2/+2 |
| | | | | llvm-svn: 63198 | ||||
* | Tidy up several unbeseeming casts from pointer to intptr_t. | Dan Gohman | 2008-09-04 | 1 | -1/+1 |
| | | | | llvm-svn: 55779 | ||||
* | Use Loop::block_iterator. | Dan Gohman | 2008-06-22 | 1 | -2/+3 |
| | | | | llvm-svn: 52616 | ||||
* | LoopSimplify preserves AA. | Devang Patel | 2008-06-06 | 1 | -3/+5 |
| | | | | llvm-svn: 52053 | ||||
* | Change class' public PassInfo variables to by initialized with the | Dan Gohman | 2008-05-13 | 1 | -1/+1 |
| | | | | | | | | | | | address of the PassInfo directly instead of calling getPassInfo. This eliminates a bunch of dynamic initializations of static data. Also, fold RegisterPassBase into PassInfo, make a bunch of its data members const, and rearrange some code to initialize data members in constructors instead of using setter member functions. llvm-svn: 51022 | ||||
* | Clean up the use of static and anonymous namespaces. This turned up | Dan Gohman | 2008-05-13 | 1 | -4/+4 |
| | | | | | | | several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017 | ||||
* | Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989 | Nick Lewycky | 2008-04-25 | 1 | -10/+7 |
| | | | | | | r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123. llvm-svn: 50265 | ||||
* | Move SplitBlockPredecessors out of loopsimplify into BasicBlockUtils.h | Chris Lattner | 2008-04-21 | 1 | -107/+14 |
| | | | | | | | | | as a global helper function. At the same type, switch it from taking a vector of predecessors to an arbitrary sequential input. This allows us to switch LoopSimplify to use a SmallVector for various temporary vectors that it passed into SplitBlockPredecessors. llvm-svn: 50020 | ||||
* | Move domtree/frontier updating earlier, allowing us to use it to update phi | Chris Lattner | 2008-04-21 | 1 | -31/+18 |
| | | | | | | nodes, removing a hack. llvm-svn: 50019 | ||||
* | Factor dominator tree and frontier updating into SplitBlockPredecessors | Chris Lattner | 2008-04-21 | 1 | -18/+14 |
| | | | | | | instead of doing it after every call. llvm-svn: 50018 | ||||
* | simplify code, fit in 80 cols. | Chris Lattner | 2008-04-21 | 1 | -65/+67 |
| | | | | llvm-svn: 50015 | ||||
* | API changes for class Use size reduction, wave 1. | Gabor Greif | 2008-04-06 | 1 | -7/+7 |
| | | | | | | | | Specifically, introduction of XXX::Create methods for Users that have a potentially variable number of Uses. llvm-svn: 49277 | ||||
* | Update the block cloner which fixes bugpoint on code using unwind_to (phew!) | Nick Lewycky | 2008-03-09 | 1 | -7/+13 |
| | | | | | | and also update the cloning interface's major user, the loop optimizations. llvm-svn: 48088 | ||||
* | Remove attribution from file headers, per discussion on llvmdev. | Chris Lattner | 2007-12-29 | 1 | -2/+2 |
| | | | | llvm-svn: 45418 | ||||
* | Make LoopInfoBase more generic, in preparation for having MachineLoopInfo. ↵ | Owen Anderson | 2007-11-27 | 1 | -4/+4 |
| | | | | | | This involves a small interface change. llvm-svn: 44348 | ||||
* | Fix PR1752 and LoopSimplify/2007-10-28-InvokeCrash.ll: terminators | Chris Lattner | 2007-10-29 | 1 | -4/+6 |
| | | | | | | can have uses too. Wouldn't it be nice if invoke didn't exist? :) llvm-svn: 43426 | ||||
* | Move Split<...>() into DomTreeBase. This should make the #include's of ↵ | Owen Anderson | 2007-10-18 | 1 | -1/+0 |
| | | | | | | | | | | DominatorInternals.h in CodeExtractor and LoopSimplify unnecessary. Hartmut, could you confirm that this fixes the issues you were seeing? llvm-svn: 43115 | ||||
* | Fixed linker errors (unresolved externals: split<>(...)) when compiling with ↵ | Hartmut Kaiser | 2007-10-17 | 1 | -0/+1 |
| | | | | | | VC++. Please review. llvm-svn: 43081 | ||||
* | Use SmallVector instead of std::vector. | Devang Patel | 2007-08-21 | 1 | -1/+1 |
| | | | | llvm-svn: 41207 | ||||
* | remove some dead lines | Chris Lattner | 2007-08-06 | 1 | -2/+0 |
| | | | | llvm-svn: 40859 | ||||
* | Verify loop info. | Devang Patel | 2007-07-19 | 1 | -0/+10 |
| | | | | llvm-svn: 40062 | ||||
* | Fix reference to iterator invalidated by an erase operation. Uncovered | David Greene | 2007-06-29 | 1 | -3/+4 |
| | | | | | | by _GLIBCXX_DEBUG. llvm-svn: 37796 | ||||
* | Move code to update dominator information after basic block is split | Devang Patel | 2007-06-21 | 1 | -189/+20 |
| | | | | | | from LoopSimplify.cpp to Dominator.cpp llvm-svn: 37689 | ||||
* | 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 | ||||
* | 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 | ||||
* | s/DominatorTree::createNewNode/DominatorTree::addNewBlock/g | Devang Patel | 2007-06-04 | 1 | -2/+1 |
| | | | | llvm-svn: 37415 | ||||
* | s/llvm::DominatorTreeBase::DomTreeNode/llvm::DomTreeNode/g | Devang Patel | 2007-06-04 | 1 | -3/+3 |
| | | | | llvm-svn: 37407 | ||||
* | s/DominatorTreeBase::Node/DominatorTreeBase:DomTreeNode/g | Devang Patel | 2007-06-03 | 1 | -3/+3 |
| | | | | llvm-svn: 37403 | ||||
* | Fix typo in comment. | Nick Lewycky | 2007-05-06 | 1 | -1/+1 |
| | | | | llvm-svn: 36873 | ||||
* | Drop 'const' | Devang Patel | 2007-05-03 | 1 | -2/+2 |
| | | | | llvm-svn: 36662 | ||||
* | Use 'static const char' instead of 'static const int'. | Devang Patel | 2007-05-02 | 1 | -2/+2 |
| | | | | | | | Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. llvm-svn: 36652 | ||||
* | Do not use typeinfo to identify pass in pass manager. | Devang Patel | 2007-05-01 | 1 | -0/+4 |
| | | | | llvm-svn: 36632 | ||||
* | Avoid recursion. | Devang Patel | 2007-04-20 | 1 | -6/+13 |
| | | | | llvm-svn: 36272 | ||||
* | Remove ImmediateDominator analysis. The same information can be obtained ↵ | Owen Anderson | 2007-04-15 | 1 | -26/+0 |
| | | | | | | | | | | from DomTree. A lot of code for constructing ImmediateDominator is now folded into DomTree construction. This is part of the ongoing work for PR217. llvm-svn: 36063 | ||||
* | Re-constify things that don't break the build. Last patch in this | Owen Anderson | 2007-04-09 | 1 | -2/+4 |
| | | | | | | series, I promise. llvm-svn: 35848 | ||||
* | Unconst-ify stuff that broke the build. | Owen Anderson | 2007-04-09 | 1 | -1/+1 |
| | | | | llvm-svn: 35843 | ||||
* | Const-ify some parameters, and some cosmetic cleanups. No functionality | Owen Anderson | 2007-04-09 | 1 | -3/+4 |
| | | | | | | change. llvm-svn: 35842 | ||||
* | Tabs -> Spaces | Owen Anderson | 2007-04-09 | 1 | -36/+36 |
| | | | | llvm-svn: 35841 | ||||
* | Improve some _slow_ behavior introduced in my patches the last few days. | Owen Anderson | 2007-04-09 | 1 | -42/+42 |
| | | | | llvm-svn: 35839 | ||||
* | Cleanup some from my DomSet-removal changes. Add a new | Owen Anderson | 2007-04-09 | 1 | -4/+4 |
| | | | | | | | isReachableFromEntry test to ETForest to factor a common test out of code. llvm-svn: 35786 | ||||
* | Remove DominatorSet usage from LoopSimplify. Patch from Owen Anderson. | Nick Lewycky | 2007-04-08 | 1 | -89/+54 |
| | | | | llvm-svn: 35757 |