Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Dead PHI instructions need to be handled specially. | Owen Anderson | 2008-03-26 | 1 | -0/+22 | |
| | | | | llvm-svn: 48811 | |||||
* | Remove some debugging code. | Owen Anderson | 2008-03-25 | 1 | -3/+0 | |
| | | | | llvm-svn: 48803 | |||||
* | StrongPHIElimination doesn't support swapping live intervals like the ↵ | Owen Anderson | 2008-03-25 | 1 | -9/+6 | |
| | | | | | | coalescer does. llvm-svn: 48802 | |||||
* | Remove #include<iostream>, which I was using for debugging. | Owen Anderson | 2008-03-24 | 1 | -2/+0 | |
| | | | | llvm-svn: 48739 | |||||
* | Be sure to remove intervals after we've joined them. Also, remove some ↵ | Owen Anderson | 2008-03-24 | 1 | -46/+18 | |
| | | | | | | | | | duplicated code. With this pass, StrongPHIElim can compile very simple testcases correctly. There's still a ways to go before it's ready for prime time, though. llvm-svn: 48719 | |||||
* | A first attempt at updating live intervals, with code lifted from | Owen Anderson | 2008-03-17 | 1 | -4/+176 | |
| | | | | | | | the coalescer. This doesn't really work, but gets us farther than before. llvm-svn: 48446 | |||||
* | We also need to collect the VN IDs for the PHI instructions for later updating. | Owen Anderson | 2008-03-12 | 1 | -1/+10 | |
| | | | | llvm-svn: 48278 | |||||
* | When we're determining what registers to coallesce, track the VNInfo IDs for ↵ | Owen Anderson | 2008-03-12 | 1 | -16/+32 | |
| | | | | | | | | the definitions that feed the PHI instructions. We'll need these IDs in order to update LiveIntervals properly. llvm-svn: 48277 | |||||
* | Move StrongPHIElimination after live interval analysis. This will make ↵ | Owen Anderson | 2008-03-10 | 1 | -36/+27 | |
| | | | | | | things happier down the road. llvm-svn: 48138 | |||||
* | some more spelling changes | Gabor Greif | 2008-03-06 | 1 | -1/+1 | |
| | | | | llvm-svn: 47996 | |||||
* | Refactor code. Remove duplicated functions that basically do the same thing as | Evan Cheng | 2008-03-05 | 1 | -4/+4 | |
| | | | | | | findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies. llvm-svn: 47927 | |||||
* | Fix an iterator invalidation issue. | Owen Anderson | 2008-01-22 | 1 | -2/+8 | |
| | | | | llvm-svn: 46263 | |||||
* | Clarify a deviation from the original algorithm. | Owen Anderson | 2008-01-21 | 1 | -1/+4 | |
| | | | | llvm-svn: 46218 | |||||
* | Improve a few comments. | Owen Anderson | 2008-01-21 | 1 | -1/+6 | |
| | | | | llvm-svn: 46217 | |||||
* | Get rid of all uses of LiveVariables::VarInfo::DefInst in favor of the ↵ | Owen Anderson | 2008-01-10 | 1 | -58/+66 | |
| | | | | | | | | equivalent API from MachineRegisterInfo. Once all clients are switched over, the former will be going away. llvm-svn: 45805 | |||||
* | Add more comments explaining the basics of how the decision of when to ↵ | Owen Anderson | 2008-01-10 | 1 | -7/+37 | |
| | | | | | | | | rename and when to insert copies is made. llvm-svn: 45799 | |||||
* | Get rid of the isKillInst predicate. LiveVariables already provides this ↵ | Owen Anderson | 2008-01-10 | 1 | -14/+10 | |
| | | | | | | information. llvm-svn: 45797 | |||||
* | Copies need to be inserted before the first terminator, not at the end of ↵ | Owen Anderson | 2008-01-10 | 1 | -2/+2 | |
| | | | | | | the block. llvm-svn: 45791 | |||||
* | Clean up StrongPHIElimination a bit, and add some more comments to the ↵ | Owen Anderson | 2008-01-09 | 1 | -6/+46 | |
| | | | | | | | | internal structures. There's still more work to do on this front. llvm-svn: 45783 | |||||
* | StrongPHIElim: Now with even fewer trivial bugs! | Owen Anderson | 2008-01-09 | 1 | -2/+4 | |
| | | | | llvm-svn: 45775 | |||||
* | Fix an infinite recursion bug in InsertCopies. | Owen Anderson | 2008-01-09 | 1 | -4/+9 | |
| | | | | llvm-svn: 45774 | |||||
* | Fix some simple bugs. StrongPHIElimination now does not crash on 164.gzip. | Owen Anderson | 2008-01-09 | 1 | -3/+3 | |
| | | | | llvm-svn: 45773 | |||||
* | Rename registers that do not need copies. | Owen Anderson | 2008-01-08 | 1 | -3/+19 | |
| | | | | llvm-svn: 45759 | |||||
* | Actually insert copies now! | Owen Anderson | 2008-01-08 | 1 | -6/+29 | |
| | | | | llvm-svn: 45738 | |||||
* | Oops, missed one. | Owen Anderson | 2008-01-07 | 1 | -1/+1 | |
| | | | | llvm-svn: 45719 | |||||
* | Make some predicates static. | Owen Anderson | 2008-01-07 | 1 | -3/+3 | |
| | | | | llvm-svn: 45718 | |||||
* | Rename SSARegMap -> MachineRegisterInfo in keeping with the idea | Chris Lattner | 2007-12-31 | 1 | -1/+0 | |
| | | | | | | | | | | | | | | that "machine" classes are used to represent the current state of the code being compiled. Given this expanded name, we can start moving other stuff into it. For now, move the UsedPhysRegs and LiveIn/LoveOuts vectors from MachineFunction into it. Update all the clients to match. This also reduces some needless #includes, such as MachineModuleInfo from MachineFunction. llvm-svn: 45467 | |||||
* | Add new shorter predicates for testing machine operands for various types: | Chris Lattner | 2007-12-30 | 1 | -1/+1 | |
| | | | | | | | | | | | | e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on switching everything over, so new clients should just start using the shorter names. Remove old long accessors, switching everything over to use the short accessor: getMachineBasicBlock() -> getMBB(), getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc. llvm-svn: 45464 | |||||
* | Remove attribution from file headers, per discussion on llvmdev. | Chris Lattner | 2007-12-29 | 1 | -2/+2 | |
| | | | | llvm-svn: 45418 | |||||
* | Flesh out the Briggs implementation a little bit more, fix a few FIXMEs. | Owen Anderson | 2007-12-24 | 1 | -11/+35 | |
| | | | | llvm-svn: 45347 | |||||
* | Sketch out an implementation of Briggs' copy placement algorithm. | Owen Anderson | 2007-12-23 | 1 | -10/+104 | |
| | | | | llvm-svn: 45334 | |||||
* | Note what still needs doing. | Owen Anderson | 2007-12-22 | 1 | -1/+6 | |
| | | | | llvm-svn: 45310 | |||||
* | Remove critical edge breaking. It won't be necessary as long as we are very ↵ | Owen Anderson | 2007-12-22 | 1 | -37/+0 | |
| | | | | | | careful when inserting copies. llvm-svn: 45309 | |||||
* | Break local interferences in StrongPHIElimination. One step closer... | Owen Anderson | 2007-12-16 | 1 | -0/+135 | |
| | | | | llvm-svn: 45070 | |||||
* | A few more comments. | Owen Anderson | 2007-12-16 | 1 | -1/+6 | |
| | | | | llvm-svn: 45069 | |||||
* | Add register pairs to the list to check for local interferences. | Owen Anderson | 2007-12-13 | 1 | -4/+10 | |
| | | | | llvm-svn: 44987 | |||||
* | Remove ugly and horrible code. It's not necessary for correctness, and can ↵ | Owen Anderson | 2007-12-13 | 1 | -47/+7 | |
| | | | | | | be added back later if it causes code quality issues. llvm-svn: 44986 | |||||
* | Forgot to remove a register from the PHI-union after I'd determined that it | Owen Anderson | 2007-12-12 | 1 | -3/+6 | |
| | | | | | | interfered with other registers. Seems like that might be a good thing to do. :-) llvm-svn: 44902 | |||||
* | More progress on StrongPHIElimination. Now we actually USE the DomForest! | Owen Anderson | 2007-12-11 | 1 | -0/+89 | |
| | | | | llvm-svn: 44877 | |||||
* | A little more progress on StrongPHIElimination, now that I have a better ↵ | Owen Anderson | 2007-12-10 | 1 | -11/+16 | |
| | | | | | | | | sense of how the CodeGen machinery works. llvm-svn: 44786 | |||||
* | Run computeDomForest() on the set of registers that need to be tested for | Owen Anderson | 2007-11-13 | 1 | -5/+6 | |
| | | | | | | interference. llvm-svn: 44064 | |||||
* | Preserve LiveVariables when doing critical edge splitting. | Owen Anderson | 2007-11-13 | 1 | -2/+13 | |
| | | | | llvm-svn: 44063 | |||||
* | Break critical edges coming into blocks with PHI nodes. | Owen Anderson | 2007-11-12 | 1 | -0/+26 | |
| | | | | llvm-svn: 44019 | |||||
* | As Chris and Evan pointed out, BreakCriticalMachineEdges doesn't really need | Owen Anderson | 2007-11-12 | 1 | -0/+1 | |
| | | | | | | to be a pass of its own. Instead, move it out into a helper method. llvm-svn: 44002 | |||||
* | Take another stab at getting isLiveIn() and isLiveOut() right. | Owen Anderson | 2007-11-08 | 1 | -8/+11 | |
| | | | | llvm-svn: 43869 | |||||
* | Add some more of StrongPHIElim. | Owen Anderson | 2007-11-07 | 1 | -12/+74 | |
| | | | | llvm-svn: 43805 | |||||
* | Add a few comments. | Owen Anderson | 2007-11-06 | 1 | -0/+5 | |
| | | | | llvm-svn: 43755 | |||||
* | DomForest is a forest of registers, not instructions. | Owen Anderson | 2007-11-06 | 1 | -25/+47 | |
| | | | | llvm-svn: 43754 | |||||
* | StrongPHIElimination requires LiveVariables. | Owen Anderson | 2007-11-06 | 1 | -10/+24 | |
| | | | | llvm-svn: 43751 | |||||
* | Another step of stronger PHI elimination down. | Owen Anderson | 2007-11-04 | 1 | -0/+88 | |
| | | | | llvm-svn: 43684 |