aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/CodeGen/LiveVariables.h
Commit message (Collapse)AuthorAgeFilesLines
* Do away with kill / dead maps. Move kill / dead info onto MI's.Evan Cheng2006-11-151-95/+36
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31759 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix for PR929. The PHI nodes were being gone through for each instructionBill Wendling2006-10-031-1/+11
| | | | | | | | | in a successor block for every block...resulting in some O(N^k) algorithm which wasn't very good for performance. Calculating this information up front and keeping it in a map made it much faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30697 91177308-0d34-0410-b5e6-96231b3b80d8
* Move two methods out of line, make them work when the record for a machineChris Lattner2006-09-031-28/+6
| | | | | | | instruction includes physregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30061 91177308-0d34-0410-b5e6-96231b3b80d8
* add a comment that I should have written a long time agoChris Lattner2006-01-041-0/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25084 91177308-0d34-0410-b5e6-96231b3b80d8
* add a dump method to help debuggingChris Lattner2006-01-041-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25079 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a problem Duraid noticed, where we weren't removing values from the killsChris Lattner2005-08-251-2/+20
| | | | | | | list when doing two-address and phi node lowering during register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23043 91177308-0d34-0410-b5e6-96231b3b80d8
* Keep the killed/dead sets sorted, so that "KillsRegister" can do a quickChris Lattner2005-08-241-22/+26
| | | | | | | | | | | | | | binary search to test for membership. This speeds up LLC a bit more on KC++, e.g. on itanium from 16.6974s to 14.8272s, PPC from 11.4926s to 10.7089s and X86 from 10.8128s to 9.7943s, with no difference in generated code (like all of the RA patches). With these changes, isel is the slowest pass for PPC/X86, but linscan+live intervals is still > 50% of the compile time for itanium. More work could be done, but this is the last for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22993 91177308-0d34-0410-b5e6-96231b3b80d8
* Change live variables from using multimaps to using maps of vectors andChris Lattner2005-08-231-46/+62
| | | | | | | | | | | | | | | rearrange some of the accessors to be more efficient. This makes it much more efficient to iterate over all of the things with the same value. This speeds up liveintervals analysis from 8.63s to 3.79s with a release build of llc on kc++ with -march=ia64. This also speeds up live var from 1.66s -> 0.87s as well, reducing total llc time from 20.1s->15.2s. This also speeds up other targets slightly, e.g. llc time on X86 from 16.84 -> 16.45s, and PPC from 17.64->17.03s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22990 91177308-0d34-0410-b5e6-96231b3b80d8
* Add RegisterDefIsDead to correspond to KillsRegister, mark both constChris Lattner2005-08-231-2/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22987 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert tabs to spacesMisha Brukman2005-04-221-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21438 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove trailing whitespaceMisha Brukman2005-04-211-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21409 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a useful accessorChris Lattner2005-01-011-0/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19209 91177308-0d34-0410-b5e6-96231b3b80d8
* Use newly added API in MRegisterInfo and don't expose the allocatableAlkis Evlogimenos2004-08-261-4/+0
| | | | | | | register set anymore. Its users now use the MRegisterInfo API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16061 91177308-0d34-0410-b5e6-96231b3b80d8
* There is no need to store the MBB along with the MI any more, we can nowChris Lattner2004-07-191-10/+8
| | | | | | | ask instructions for their parent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14998 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify the interface to LiveVariables::addVirtualRegister(Killed|Dead)Chris Lattner2004-07-191-8/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14997 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the DefBlock element of VarInfo. DefBlock is always DefInst->getParent()Chris Lattner2004-07-191-3/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14996 91177308-0d34-0410-b5e6-96231b3b80d8
* Now that we have happy mappings from MBBs->numbers, use them instead of keepingChris Lattner2004-07-011-23/+0
| | | | | | | a LV private map git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14522 91177308-0d34-0410-b5e6-96231b3b80d8
* Stop LiveVariables from using BasicBlocks as part of the mapping, insteadChris Lattner2004-05-011-10/+6
| | | | | | | use MachineBasicBlocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13300 91177308-0d34-0410-b5e6-96231b3b80d8
* ADd a method for when an instruction movesChris Lattner2004-02-191-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11626 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new lazily constructed mapping from Idx's the MBB they representChris Lattner2004-01-301-0/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11017 91177308-0d34-0410-b5e6-96231b3b80d8
* Make LiveVariables::HandlePhysRegUse andAlkis Evlogimenos2004-01-111-2/+3
| | | | | | | | | | LiveVariables::HandlePhysRegDef private they use information that is not in memory when LiveVariables finishes the analysis. Also update the TwoAddressInstructionPass to not use this interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10755 91177308-0d34-0410-b5e6-96231b3b80d8
* Add TwoAddressInstructionPass to handle instructions that have two orAlkis Evlogimenos2003-12-181-12/+56
| | | | | | | | | | | | | | | | | more operands and the two first operands are constrained to be the same. The pass takes an instruction of the form: a = b op c and transforms it into: a = b a = a op c and also preserves live variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10512 91177308-0d34-0410-b5e6-96231b3b80d8
* Ignore non-allocatable physical registers in live interval analysis.Alkis Evlogimenos2003-12-131-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10449 91177308-0d34-0410-b5e6-96231b3b80d8
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
* Added LLVM copyright header (for lack of a better term).John Criswell2003-10-201-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a ton of extraneous #includesChris Lattner2003-06-221-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6842 91177308-0d34-0410-b5e6-96231b3b80d8
* Included assert.h so that the code compiles under newer versions of GCC.John Criswell2003-06-111-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6682 91177308-0d34-0410-b5e6-96231b3b80d8
* Beef up interface, move getVarInfo out-of-line.Chris Lattner2003-05-121-12/+39
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6114 91177308-0d34-0410-b5e6-96231b3b80d8
* Expand API for updating live var info.Chris Lattner2003-05-121-8/+39
| | | | | | | | Expose iterators, not const-iterators. Rename method that was VERY misleading git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6108 91177308-0d34-0410-b5e6-96231b3b80d8
* Add comments, add a vector to keep track of which registers are allocatableChris Lattner2003-05-071-5/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6014 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new filesChris Lattner2003-01-131-0/+131
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5259 91177308-0d34-0410-b5e6-96231b3b80d8