| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | remove dead code. The exit block list is computed on demand, thus does not | Chris Lattner | 2005-08-13 | 1 | -15/+0 |
| | | | | | | | need to be updated. This code is a relic from when it did. llvm-svn: 22775 | ||||
| * | remove some trickiness that broke yacr2 and some other programs last night | Chris Lattner | 2005-08-10 | 1 | -3/+1 |
| | | | | | llvm-svn: 22751 | ||||
| * | Make loop-simplify produce better loops by turning PHI nodes like X = phi [X, Y] | Chris Lattner | 2005-08-10 | 1 | -1/+16 |
| | | | | | | | | into just Y. This often occurs when it seperates loops that have collapsed loop headers. This implements LoopSimplify/phi-node-simplify.ll llvm-svn: 22746 | ||||
| * | This code can handle non-dominating instructions | Chris Lattner | 2005-08-05 | 1 | -1/+1 |
| | | | | | llvm-svn: 22667 | ||||
| * | Fix a fixme in CondPropagate.cpp by moving a PhiNode optimization into | Nate Begeman | 2005-08-04 | 1 | -3/+2 |
| | | | | | | | | | BasicBlock's removePredecessor routine. This requires shuffling around the definition and implementation of hasContantValue from Utils.h,cpp into Instructions.h,cpp llvm-svn: 22664 | ||||
| * | Remove trailing whitespace | Misha Brukman | 2005-04-21 | 1 | -22/+22 |
| | | | | | llvm-svn: 21427 | ||||
| * | Enhance loopsimplify to preserve alias analysis instead of clobbering it. | Chris Lattner | 2005-03-25 | 1 | -2/+15 |
| | | | | | | | This prevents crashes on some programs when using -ds-aa -licm. llvm-svn: 20831 | ||||
| * | trivial simplification | Chris Lattner | 2005-03-06 | 1 | -1/+1 |
| | | | | | llvm-svn: 20494 | ||||
| * | Adjust to changes in instruction interfaces. | Chris Lattner | 2005-01-29 | 1 | -2/+4 |
| | | | | | llvm-svn: 19900 | ||||
| * | hasConstantValue will soon return instructions that don't dominate the PHI node, | Chris Lattner | 2004-10-17 | 1 | -16/+21 |
| | | | | | | | so prepare for this. llvm-svn: 17095 | ||||
| * | Pull assignment out of for loop conditional in order for this to | Alkis Evlogimenos | 2004-09-28 | 1 | -8/+9 |
| | | | | | | | compile under windows. Patch contributed by Paolo Invernizzi! llvm-svn: 16534 | ||||
| * | Prototype these functions more accurately | Chris Lattner | 2004-09-20 | 1 | -1/+1 |
| | | | | | llvm-svn: 16432 | ||||
| * | Changes For Bug 352 | Reid Spencer | 2004-09-01 | 1 | -4/+4 |
| | | | | | | | | | Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137 | ||||
| * | Fix #includes of i*.h => Instructions.h as per PR403. | Misha Brukman | 2004-07-29 | 1 | -2/+1 |
| | | | | | llvm-svn: 15334 | ||||
| * | Fix PR404 try #2 | Chris Lattner | 2004-07-15 | 1 | -8/+8 |
| | | | | | | | | This version takes about 1s longer than the previous one (down to 2.35s), but on the positive side, it actually works :) llvm-svn: 14856 | ||||
| * | Revert previous patch until I get a bug fixed | Chris Lattner | 2004-07-15 | 1 | -12/+12 |
| | | | | | llvm-svn: 14853 | ||||
| * | Fix PR404: Loop simplify is really slow on 252.eon | Chris Lattner | 2004-07-15 | 1 | -12/+12 |
| | | | | | | | | | This eliminates an N*N*logN algorithm from the loop simplify pass, replacing it with a much simpler and faster alternative. In a debug build, this reduces gccas time on eon from 85s to 42s. llvm-svn: 14851 | ||||
| * | Correct rewriting of exit blocks after my last patch | Chris Lattner | 2004-04-18 | 1 | -3/+8 |
| | | | | | llvm-svn: 13048 | ||||
| * | Change the ExitBlocks list from being explicitly contained in the Loop | Chris Lattner | 2004-04-18 | 1 | -79/+4 |
| | | | | | | | | structure to being dynamically computed on demand. This makes updating loop information MUCH easier. llvm-svn: 13045 | ||||
| * | Fix LoopSimplify/2004-04-13-LoopSimplifyUpdateDomFrontier.ll | Chris Lattner | 2004-04-13 | 1 | -26/+42 |
| | | | | | | | LoopSimplify was not updating dominator frontiers correctly in some cases. llvm-svn: 12890 | ||||
| * | Refactor code a bit to make it simpler and eliminate the goto | Chris Lattner | 2004-04-13 | 1 | -27/+31 |
| | | | | | llvm-svn: 12888 | ||||
| * | This patch addresses PR35: Loop simplify should reconstruct nested loops. | Chris Lattner | 2004-04-13 | 1 | -6/+196 |
| | | | | | | | | This is fairly straight-forward, but was a real nightmare to get just perfect. aarg. :) llvm-svn: 12884 | ||||
| * | Remove some assertions that are now bogus with the last patch I put in | Chris Lattner | 2004-04-01 | 1 | -6/+1 |
| | | | | | llvm-svn: 12595 | ||||
| * | Fix PR306: Loop simplify incorrectly updates dominator information | Chris Lattner | 2004-04-01 | 1 | -9/+22 |
| | | | | | | | Testcase: LoopSimplify/2004-04-01-IncorrectDomUpdate.ll llvm-svn: 12592 | ||||
| * | Fix a regression from this patch: | Chris Lattner | 2004-03-16 | 1 | -16/+13 |
| | | | | | | | | | | | | | | http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20040308/013095.html Basically, this patch only updated the immediate dominatees of the header node to tell them that the preheader also dominated them. In practice, ALL dominatees of the header node are also dominated by the preheader. This fixes: LoopSimplify/2004-03-15-IncorrectDomUpdate. and PR293 llvm-svn: 12434 | ||||
| * | If a block is dead, dominators will not be calculated for it. Because of this | Chris Lattner | 2004-03-14 | 1 | -2/+33 |
| | | | | | | | | | loop information won't see it, and we could have unreachable blocks pointing to the non-header node of blocks in a natural loop. This isn't tidy, so have the loopsimplify pass clean it up. llvm-svn: 12380 | ||||
| * | This little patch speeds up the loop used to update the dominator set analysis. | Chris Lattner | 2004-03-13 | 1 | -17/+18 |
| | | | | | | | | | | | | | | On the testcase from GCC PR12440, which has a LOT of loops (1392 of which require preheaders to be inserted), this speeds up the loopsimplify pass from 1.931s to 0.1875s. The loop in question goes from 1.65s -> 0.0097s, which isn't bad. All of these times are a debug build. This adds a dependency on DominatorTree analysis that was not there before, but we always had dominatortree available anyway, because LICM requires both loop simplify and DT, so this doesn't add any extra analysis in practice. llvm-svn: 12362 | ||||
| * | Fix another dominator update bug. These bugs keep getting exposed because GCSE | Chris Lattner | 2004-02-05 | 1 | -1/+1 |
| | | | | | | | keeps finding more code motion opportunities now that the dominators are correct! llvm-svn: 11142 | ||||
| * | Fix bug updating dominators | Chris Lattner | 2004-02-05 | 1 | -2/+2 |
| | | | | | llvm-svn: 11140 | ||||
| * | Fix PR223: Loopsimplify incorrectly updates dominator information | Chris Lattner | 2004-02-05 | 1 | -33/+105 |
| | | | | | | | | | The problem is that the dominator update code didn't "realize" that it's possible for the newly inserted basic block to dominate anything. Because it IS possible, stuff was getting updated wrong. llvm-svn: 11137 | ||||
| * | Adjust to the new BasicBlock ctor, which requires a function parameter | Chris Lattner | 2004-02-04 | 1 | -1/+1 |
| | | | | | llvm-svn: 11114 | ||||
| * | Improve encapsulation in the Loop and LoopInfo classes by eliminating the | Chris Lattner | 2004-01-08 | 1 | -15/+16 |
| | | | | | | | | getSubLoops/getTopLevelLoops methods, replacing them with iterator-based accessors. llvm-svn: 10714 | ||||
| * | Generalize a special case to fix PR187 | Chris Lattner | 2003-12-19 | 1 | -18/+28 |
| | | | | | llvm-svn: 10531 | ||||
| * | Finegrainify namespacification | Chris Lattner | 2003-12-10 | 1 | -22/+21 |
| | | | | | | | Fix bug: LoopSimplify/2003-12-10-ExitBlocksProblem.ll llvm-svn: 10373 | ||||
| * | Do not insert one entry PHI nodes in split exit blocks! | Chris Lattner | 2003-12-09 | 1 | -13/+23 |
| | | | | | llvm-svn: 10348 | ||||
| * | Minor cleanups and simplifications | Chris Lattner | 2003-11-21 | 1 | -2/+2 |
| | | | | | llvm-svn: 10127 | ||||
| * | Start using the nicer terminator auto-insertion API | Chris Lattner | 2003-11-20 | 1 | -4/+2 |
| | | | | | llvm-svn: 10111 | ||||
| * | Put all LLVM code into the llvm namespace, as per bug 109. | Brian Gaeke | 2003-11-11 | 1 | -1/+4 |
| | | | | | llvm-svn: 9903 | ||||
| * | Added LLVM project notice to the top of every C++ source file. | John Criswell | 2003-10-20 | 1 | -0/+7 |
| | | | | | | | Header files will be on the way. llvm-svn: 9298 | ||||
| * | Add support to the loop canonicalization pass to make it transform loops to | Chris Lattner | 2003-10-13 | 1 | -21/+163 |
| | | | | | | | | | have a SINGLE backedge. This is useful to, for example, the -indvars pass. This implements testcase LoopSimplify/single-backedge.ll and closes PR#34 llvm-svn: 9065 | ||||
| * | Rename loop preheaders pass to loop simplify | Chris Lattner | 2003-10-12 | 1 | -2/+2 |
| | | | | | llvm-svn: 9061 | ||||
| * | File is renamed to LoopSimplify.cpp | Chris Lattner | 2003-10-12 | 1 | -1/+1 |
| | | | | | llvm-svn: 9059 | ||||
| * | First step in renaming the preheaders pass to loopsimplify | Chris Lattner | 2003-10-12 | 1 | -16/+21 |
| | | | | | llvm-svn: 9058 | ||||
| * | The preheader insertion pass only depends on the CFG. Mark it as such, which | Chris Lattner | 2003-10-12 | 1 | -1/+2 |
| | | | | | | | allows GCCAS to only run it once. llvm-svn: 9056 | ||||
| * | Fix spelling. | Misha Brukman | 2003-10-10 | 1 | -2/+2 |
| | | | | | llvm-svn: 9027 | ||||
| * | Renamed DominatorTree::Node::getNode() -> getBlock() | Chris Lattner | 2003-09-11 | 1 | -1/+1 |
| | | | | | llvm-svn: 8469 | ||||
| * | Spell `occurrence' correctly. | Misha Brukman | 2003-09-09 | 1 | -2/+2 |
| | | | | | llvm-svn: 8425 | ||||
| * | Fix grammar, add comment | Chris Lattner | 2003-08-18 | 1 | -1/+4 |
| | | | | | llvm-svn: 7967 | ||||
| * | Spell `necessary' correctly. | Misha Brukman | 2003-08-18 | 1 | -1/+1 |
| | | | | | llvm-svn: 7944 | ||||
| * | Fix bug: LoopPreheaders/2003-05-12-PreheaderExitOfChild.ll | Chris Lattner | 2003-05-12 | 1 | -5/+19 |
| | | | | | llvm-svn: 6153 | ||||

