summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/StrongPHIElimination.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Dead PHI instructions need to be handled specially.Owen Anderson2008-03-261-0/+22
| | | | llvm-svn: 48811
* Remove some debugging code.Owen Anderson2008-03-251-3/+0
| | | | llvm-svn: 48803
* StrongPHIElimination doesn't support swapping live intervals like the ↵Owen Anderson2008-03-251-9/+6
| | | | | | coalescer does. llvm-svn: 48802
* Remove #include<iostream>, which I was using for debugging.Owen Anderson2008-03-241-2/+0
| | | | llvm-svn: 48739
* Be sure to remove intervals after we've joined them. Also, remove some ↵Owen Anderson2008-03-241-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 fromOwen Anderson2008-03-171-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 Anderson2008-03-121-1/+10
| | | | llvm-svn: 48278
* When we're determining what registers to coallesce, track the VNInfo IDs for ↵Owen Anderson2008-03-121-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 Anderson2008-03-101-36/+27
| | | | | | things happier down the road. llvm-svn: 48138
* some more spelling changesGabor Greif2008-03-061-1/+1
| | | | llvm-svn: 47996
* Refactor code. Remove duplicated functions that basically do the same thing asEvan Cheng2008-03-051-4/+4
| | | | | | findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies. llvm-svn: 47927
* Fix an iterator invalidation issue.Owen Anderson2008-01-221-2/+8
| | | | llvm-svn: 46263
* Clarify a deviation from the original algorithm.Owen Anderson2008-01-211-1/+4
| | | | llvm-svn: 46218
* Improve a few comments.Owen Anderson2008-01-211-1/+6
| | | | llvm-svn: 46217
* Get rid of all uses of LiveVariables::VarInfo::DefInst in favor of the ↵Owen Anderson2008-01-101-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 Anderson2008-01-101-7/+37
| | | | | | | | rename and when to insert copies is made. llvm-svn: 45799
* Get rid of the isKillInst predicate. LiveVariables already provides this ↵Owen Anderson2008-01-101-14/+10
| | | | | | information. llvm-svn: 45797
* Copies need to be inserted before the first terminator, not at the end of ↵Owen Anderson2008-01-101-2/+2
| | | | | | the block. llvm-svn: 45791
* Clean up StrongPHIElimination a bit, and add some more comments to the ↵Owen Anderson2008-01-091-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 Anderson2008-01-091-2/+4
| | | | llvm-svn: 45775
* Fix an infinite recursion bug in InsertCopies.Owen Anderson2008-01-091-4/+9
| | | | llvm-svn: 45774
* Fix some simple bugs. StrongPHIElimination now does not crash on 164.gzip.Owen Anderson2008-01-091-3/+3
| | | | llvm-svn: 45773
* Rename registers that do not need copies.Owen Anderson2008-01-081-3/+19
| | | | llvm-svn: 45759
* Actually insert copies now!Owen Anderson2008-01-081-6/+29
| | | | llvm-svn: 45738
* Oops, missed one.Owen Anderson2008-01-071-1/+1
| | | | llvm-svn: 45719
* Make some predicates static.Owen Anderson2008-01-071-3/+3
| | | | llvm-svn: 45718
* Rename SSARegMap -> MachineRegisterInfo in keeping with the idea Chris Lattner2007-12-311-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 Lattner2007-12-301-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 Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Flesh out the Briggs implementation a little bit more, fix a few FIXMEs.Owen Anderson2007-12-241-11/+35
| | | | llvm-svn: 45347
* Sketch out an implementation of Briggs' copy placement algorithm.Owen Anderson2007-12-231-10/+104
| | | | llvm-svn: 45334
* Note what still needs doing.Owen Anderson2007-12-221-1/+6
| | | | llvm-svn: 45310
* Remove critical edge breaking. It won't be necessary as long as we are very ↵Owen Anderson2007-12-221-37/+0
| | | | | | careful when inserting copies. llvm-svn: 45309
* Break local interferences in StrongPHIElimination. One step closer...Owen Anderson2007-12-161-0/+135
| | | | llvm-svn: 45070
* A few more comments.Owen Anderson2007-12-161-1/+6
| | | | llvm-svn: 45069
* Add register pairs to the list to check for local interferences.Owen Anderson2007-12-131-4/+10
| | | | llvm-svn: 44987
* Remove ugly and horrible code. It's not necessary for correctness, and can ↵Owen Anderson2007-12-131-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 itOwen Anderson2007-12-121-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 Anderson2007-12-111-0/+89
| | | | llvm-svn: 44877
* A little more progress on StrongPHIElimination, now that I have a better ↵Owen Anderson2007-12-101-11/+16
| | | | | | | | sense of how the CodeGen machinery works. llvm-svn: 44786
* Run computeDomForest() on the set of registers that need to be tested forOwen Anderson2007-11-131-5/+6
| | | | | | interference. llvm-svn: 44064
* Preserve LiveVariables when doing critical edge splitting.Owen Anderson2007-11-131-2/+13
| | | | llvm-svn: 44063
* Break critical edges coming into blocks with PHI nodes.Owen Anderson2007-11-121-0/+26
| | | | llvm-svn: 44019
* As Chris and Evan pointed out, BreakCriticalMachineEdges doesn't really needOwen Anderson2007-11-121-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 Anderson2007-11-081-8/+11
| | | | llvm-svn: 43869
* Add some more of StrongPHIElim.Owen Anderson2007-11-071-12/+74
| | | | llvm-svn: 43805
* Add a few comments.Owen Anderson2007-11-061-0/+5
| | | | llvm-svn: 43755
* DomForest is a forest of registers, not instructions.Owen Anderson2007-11-061-25/+47
| | | | llvm-svn: 43754
* StrongPHIElimination requires LiveVariables.Owen Anderson2007-11-061-10/+24
| | | | llvm-svn: 43751
* Another step of stronger PHI elimination down.Owen Anderson2007-11-041-0/+88
| | | | llvm-svn: 43684
OpenPOWER on IntegriCloud