Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | switch more statistics over to STATISTIC, eliminating static ctors. Also, | Chris Lattner | 2006-12-19 | 1 | -4/+3 | |
| | | | | | | delete some dead ones. llvm-svn: 32694 | |||||
* | Detemplatize the Statistic class. The only type it is instantiated with | Chris Lattner | 2006-12-06 | 1 | -1/+1 | |
| | | | | | | is 'unsigned'. llvm-svn: 32279 | |||||
* | generalize the fix for PR977 to also fix | Chris Lattner | 2006-10-31 | 1 | -28/+26 | |
| | | | | | | Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll llvm-svn: 31317 | |||||
* | Fix PR977 and Transforms/LCSSA/2006-10-31-UnreachableBlock.ll | Chris Lattner | 2006-10-31 | 1 | -1/+8 | |
| | | | | llvm-svn: 31315 | |||||
* | eliminate RegisterOpt. It does the same thing as RegisterPass. | Chris Lattner | 2006-08-27 | 1 | -1/+1 | |
| | | | | llvm-svn: 29925 | |||||
* | Add special check to avoid isLoop call. Simple, but doesn't seem to speed | Chris Lattner | 2006-08-02 | 1 | -2/+2 | |
| | | | | | | up lcssa much in practice. llvm-svn: 29465 | |||||
* | Replace the SSA update code in LCSSA with a bottom-up approach instead of a top | Chris Lattner | 2006-08-02 | 1 | -125/+95 | |
| | | | | | | | | | | | | | | | | | down approach, inspired by discussions with Tanya. This approach is significantly faster, because it does not need dominator frontiers and it does not insert extraneous unused PHI nodes. For example, on 252.eon, in a release-asserts build, this speeds up LCSSA (which is the slowest pass in gccas) from 9.14s to 0.74s on my G5. This code is also slightly smaller and significantly simpler than the old code. Amusingly, in a normal Release build (which includes the "assert(L->isLCSSAForm());" assertion), asserting that the result of LCSSA is in LCSSA form is actually slower than the LCSSA transformation pass itself on 252.eon. I will see if Loop::isLCSSAForm can be sped up next. llvm-svn: 29463 | |||||
* | Fix typo in the comment. | Owen Anderson | 2006-07-09 | 1 | -1/+1 | |
| | | | | llvm-svn: 29078 | |||||
* | Add a fix for an issue where LCSSA would fail to insert undef's in some corner | Owen Anderson | 2006-07-09 | 1 | -14/+21 | |
| | | | | | | | cases. Ideally, this issue will go away in the future as LCSSA gets smarter about which Phi nodes it inserts. llvm-svn: 29076 | |||||
* | Use the PotDoms map to memoize 'dominating value' lookup. With this patch, | Chris Lattner | 2006-06-14 | 1 | -17/+14 | |
| | | | | | | | LCSSA is still the slowest pass when gccas'ing 252.eon, but now it only takes 39s instead of 289s. :) llvm-svn: 28776 | |||||
* | Fix another instance where PHI nodes need special treatment. | Owen Anderson | 2006-06-13 | 1 | -0/+6 | |
| | | | | llvm-svn: 28774 | |||||
* | Fix a bug that was causing major slowdowns in povray. This was due to LCSSA | Owen Anderson | 2006-06-13 | 1 | -2/+7 | |
| | | | | | | | | | not handling PHI nodes correctly when determining if a value was live-out. This patch reduces the number of detected live-out variables in the testcase from 6565 to 485. llvm-svn: 28771 | |||||
* | Fix for 2006-06-26-MultipleExitsSingleBlock. | Owen Anderson | 2006-06-12 | 1 | -4/+7 | |
| | | | | | | | | If a single exit block has multiple predecessors within the loop, it will appear in the exit blocks list more than once. LCSSA needs to take that into account so that it doesn't double process that exit block. llvm-svn: 28750 | |||||
* | Re-commit the safe parts of my 6/9 patch. Still working on fixing the ↵ | Owen Anderson | 2006-06-11 | 1 | -0/+2 | |
| | | | | | | unsafe parts. llvm-svn: 28748 | |||||
* | Back out Owen's 6/9 changes. They broke ↵ | Evan Cheng | 2006-06-11 | 1 | -3/+1 | |
| | | | | | | MultiSource/Benchmarks/Prolangs-C/bison (and perhaps others). llvm-svn: 28747 | |||||
* | Make Loop able to verify that it is in LCSSA-form, and have the LCSSA pass ↵ | Owen Anderson | 2006-06-09 | 1 | -1/+3 | |
| | | | | | | | | assert on this. llvm-svn: 28738 | |||||
* | Update some comments, and expose LCSSAID in preparation for having other passes | Owen Anderson | 2006-06-08 | 1 | -1/+8 | |
| | | | | | | require LCSSA. llvm-svn: 28734 | |||||
* | Fix some formatting, and use inLoop() when appropriate. | Owen Anderson | 2006-06-06 | 1 | -3/+3 | |
| | | | | llvm-svn: 28694 | |||||
* | Stop a memory leak, and update some comments. | Owen Anderson | 2006-06-06 | 1 | -10/+10 | |
| | | | | llvm-svn: 28693 | |||||
* | Some more clean-up, and squash an IDF-Phi related bug. | Owen Anderson | 2006-06-04 | 1 | -16/+13 | |
| | | | | llvm-svn: 28680 | |||||
* | Various clean-ups suggested by Chris. | Owen Anderson | 2006-06-04 | 1 | -30/+32 | |
| | | | | llvm-svn: 28678 | |||||
* | Fix a bug in Phi-noded insertion. Also, update some comments to reflect what's | Owen Anderson | 2006-06-03 | 1 | -12/+21 | |
| | | | | | | actually going on. llvm-svn: 28677 | |||||
* | Remove a FIXME that was fixed with my last patch. | Owen Anderson | 2006-06-01 | 1 | -2/+0 | |
| | | | | llvm-svn: 28619 | |||||
* | More cleanups. Also, add a special case for updating PHI nodes, and | Owen Anderson | 2006-06-01 | 1 | -21/+33 | |
| | | | | | | | reimplement getValueDominatingFunction to walk the DominanceTree rather than just searching blindly. llvm-svn: 28618 | |||||
* | Extract a huge loop into a helper method. Fix a few iterator-invalidation bugs. | Owen Anderson | 2006-05-31 | 1 | -86/+113 | |
| | | | | llvm-svn: 28599 | |||||
* | Add Use replacement. Assuming there is nothing horribly wrong with this, LCSSA | Owen Anderson | 2006-05-29 | 1 | -2/+35 | |
| | | | | | | | is now theoretically feature-complete. It has not, however, been thoroughly test, and is still considered experimental. llvm-svn: 28529 | |||||
* | Major think-o. Iterate over all live out-of-loop values, and perform the | Owen Anderson | 2006-05-28 | 1 | -36/+36 | |
| | | | | | | | other calculations on each individually, rather than trying to delay it and do them all at the end. llvm-svn: 28527 | |||||
* | Make LCSSA insert proper Phi nodes throughout the rest of the CFG by computing | Owen Anderson | 2006-05-27 | 1 | -8/+51 | |
| | | | | | | | | the iterated Dominance Frontier of the loop-closure Phi's. This is the second phase of the LCSSA pass. The third phase (coming soon) will be to update all uses of loop variables to use the loop-closure Phi's instead. llvm-svn: 28524 | |||||
* | A few small clean-ups, and the addition of an LCSSA statistic. | Owen Anderson | 2006-05-27 | 1 | -2/+8 | |
| | | | | llvm-svn: 28512 | |||||
* | Fix a copy-and-paste-o that would break some compilers. | Owen Anderson | 2006-05-26 | 1 | -1/+1 | |
| | | | | llvm-svn: 28507 | |||||
* | Clean up and refactor LCSSA a bunch. It should also run faster now, though | Owen Anderson | 2006-05-26 | 1 | -66/+50 | |
| | | | | | | there's still a lot of work to be done on it. llvm-svn: 28506 | |||||
* | Skeletal LCSSA pass. This is currently non-functional. Expect functionality | Owen Anderson | 2006-05-26 | 1 | -0/+159 | |
and documentation updates soo. llvm-svn: 28495 |