| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Add a special case that speeds up coallescing a bit, but not enough. | Chris Lattner | 2006-08-31 | 1 | -51/+107 |
| | | | | | llvm-svn: 29996 | ||||
| * | Delete copies as they are coallesced instead of waiting until the end. | Chris Lattner | 2006-08-31 | 1 | -0/+4 |
| | | | | | llvm-svn: 29995 | ||||
| * | avoid calling the virtual isMoveInstr method endlessly by caching its results. | Chris Lattner | 2006-08-31 | 1 | -63/+61 |
| | | | | | llvm-svn: 29994 | ||||
| * | Fix a compiler crash bootstrapping llvm-gcc. | Chris Lattner | 2006-08-30 | 1 | -2/+6 |
| | | | | | llvm-svn: 29989 | ||||
| * | Teach the coallescer to coallesce live intervals joined by an arbitrary | Chris Lattner | 2006-08-29 | 1 | -25/+190 |
| | | | | | | | | | number of copies, potentially defining live ranges that appear to have differing value numbers that become identical when coallsced. Among other things, this fixes CodeGen/X86/shift-coalesce.ll and PR687. llvm-svn: 29968 | ||||
| * | Eliminate RegisterAnalysis. RegisterPass now does all that is necessary. | Chris Lattner | 2006-08-27 | 1 | -1/+1 |
| | | | | | llvm-svn: 29921 | ||||
| * | typo fix | Chris Lattner | 2006-08-27 | 1 | -3/+4 |
| | | | | | llvm-svn: 29910 | ||||
| * | Simplifications to liveinterval analysis, no functionality change. | Chris Lattner | 2006-08-26 | 1 | -26/+21 |
| | | | | | llvm-svn: 29896 | ||||
| * | Completely change the way that joining with physregs is implemented. This | Chris Lattner | 2006-08-25 | 1 | -28/+32 |
| | | | | | | | | | paves the way for future changes, increases coallescing opportunities (in theory, not witnessed in practice), and eliminates the really expensive LiveIntervals::overlapsAliases method. llvm-svn: 29890 | ||||
| * | Take advantage of the recent improvements to the liveintervals set (tracking | Chris Lattner | 2006-08-24 | 1 | -183/+237 |
| | | | | | | | | | | | | | | | | | | | | instructions which define each value#) to simplify and improve the coallescer. In particular, this patch: 1. Implements iterative coallescing. 2. Reverts an unsafe hack from handlePhysRegDef, superceeding it with a better solution. 3. Implements PR865, "coallescing" away the second copy in code like: A = B ... B = A This also includes changes to symbolically print registers in intervals when possible. llvm-svn: 29862 | ||||
| * | Improve the LiveInterval class to keep track of which machine instruction | Chris Lattner | 2006-08-22 | 1 | -16/+25 |
| | | | | | | | | defines each value# tracked by the interval. This will be used to improve coallescing. llvm-svn: 29830 | ||||
| * | Print physreg names symbolically in dumps | Chris Lattner | 2006-08-21 | 1 | -2/+3 |
| | | | | | llvm-svn: 29805 | ||||
| * | Print debug info as: | Chris Lattner | 2006-08-21 | 1 | -2/+5 |
| | | | | | | | | | | | | | | | | | *** Register mapping *** reg 1024 -> %reg1028 reg 1026 -> EAX reg 1027 -> %reg1028 instead of: *** Register mapping *** reg 1024 -> reg 1028 reg 1026 -> reg 15 reg 1027 -> reg 1028 llvm-svn: 29803 | ||||
| * | Eliminate data relocations by using NULL instead of global empty list. | Jim Laskey | 2006-07-21 | 1 | -2/+4 |
| | | | | | llvm-svn: 29250 | ||||
| * | Reduce number of exported symbols | Andrew Lenharth | 2006-07-20 | 1 | -6/+6 |
| | | | | | llvm-svn: 29220 | ||||
| * | Patches to make the LLVM sources more -pedantic clean. Patch provided | Chris Lattner | 2006-05-24 | 1 | -1/+1 |
| | | | | | | | by Anton Korobeynikov! This is a step towards closing PR786. llvm-svn: 28447 | ||||
| * | Backing out fix for PR770. Need to re-apply it after live range splitting is ↵ | Evan Cheng | 2006-05-12 | 1 | -25/+13 |
| | | | | | | | possible llvm-svn: 28236 | ||||
| * | Set weight of zero length intervals to infinite to prevent them from being | Evan Cheng | 2006-05-11 | 1 | -0/+19 |
| | | | | | | | spilled. llvm-svn: 28220 | ||||
| * | PR 770 - permit coallescing of registers in subset register classes. | Evan Cheng | 2006-05-09 | 1 | -13/+25 |
| | | | | | llvm-svn: 28197 | ||||
| * | Move some methods out of MachineInstr into MachineOperand | Chris Lattner | 2006-05-04 | 1 | -3/+3 |
| | | | | | llvm-svn: 28102 | ||||
| * | Remove previous patch, which wasn't quite right. | Chris Lattner | 2006-05-01 | 1 | -3/+1 |
| | | | | | llvm-svn: 28039 | ||||
| * | Local spiller kills a store if the folded restore is turned into a copy. | Evan Cheng | 2006-04-30 | 1 | -3/+4 |
| | | | | | | | | | But this is incorrect if the spilled value live range extends beyond the current BB. It is currently controlled by a temporary option -spiller-check-liveout. llvm-svn: 28024 | ||||
| * | Add explicit #includes of <iostream> | Chris Lattner | 2006-01-22 | 1 | -0/+1 |
| | | | | | llvm-svn: 25515 | ||||
| * | Minor cleanup, no functionality change for current targets | Chris Lattner | 2006-01-10 | 1 | -1/+2 |
| | | | | | llvm-svn: 25173 | ||||
| * | Change a variable from being an iterator to a raw MachineInstr*, to make | Chris Lattner | 2006-01-03 | 1 | -12/+12 |
| | | | | | | | GDB use tolerable llvm-svn: 25064 | ||||
| * | Fix some spello's pointed out by Gabor Greif | Chris Lattner | 2005-10-26 | 1 | -2/+2 |
| | | | | | llvm-svn: 24019 | ||||
| * | Make the coallescer a bit smarter, allowing it to join more live ranges. | Chris Lattner | 2005-10-21 | 1 | -30/+85 |
| | | | | | | | | | | | | | For example, we can now join things like [0-30:0)[31-40:1)[52-59:2) with [40:60:0) if the 52-59 range is defined by a copy from the 40-60 range. The resultant range ends up being [0-30:0)[31-60:1). This fires a lot through-out the test suite (e.g. shrinking bc from 19492 -> 18509 machineinstrs) though most gains are smaller (e.g. about 50 copies eliminated from crafty). llvm-svn: 23866 | ||||
| * | Expose the LiveInterval interfaces as public headers. | Chris Lattner | 2005-09-21 | 1 | -1/+1 |
| | | | | | llvm-svn: 23400 | ||||
| * | remove debugging code *slaps head* | Chris Lattner | 2005-09-09 | 1 | -1/+0 |
| | | | | | llvm-svn: 23294 | ||||
| * | When spilling a live range that is used multiple times by one instruction, | Chris Lattner | 2005-09-09 | 1 | -9/+26 |
| | | | | | | | | | only add a reload live range once for the instruction. This is one step towards fixing a regalloc pessimization that Nate notice, but is later undone by the spiller (so no code is changed). llvm-svn: 23293 | ||||
| * | Fix a bug that Tzu-Chien Chiu noticed: live interval analysis does NOT | Chris Lattner | 2005-09-07 | 1 | -1/+0 |
| | | | | | | | preserve livevar llvm-svn: 23259 | ||||
| * | Teach live intervals to not crash on dead livein regs | Chris Lattner | 2005-09-02 | 1 | -6/+11 |
| | | | | | llvm-svn: 23206 | ||||
| * | Simplify this code by using higher-level LiveVariables methods | Chris Lattner | 2005-08-23 | 1 | -20/+10 |
| | | | | | llvm-svn: 22989 | ||||
| * | Fix debug info to not print out recently freed memory. | Chris Lattner | 2005-07-27 | 1 | -1/+1 |
| | | | | | llvm-svn: 22529 | ||||
| * | Print symbolic register names in debug dumps | Chris Lattner | 2005-07-27 | 1 | -2/+4 |
| | | | | | llvm-svn: 22528 | ||||
| * | Print the symbolic register name in a register allocator debug dump. | Chris Lattner | 2005-05-14 | 1 | -5/+5 |
| | | | | | llvm-svn: 22002 | ||||
| * | allow a virtual register to be associated with live-in values. | Chris Lattner | 2005-05-13 | 1 | -4/+4 |
| | | | | | llvm-svn: 21927 | ||||
| * | Remove trailing whitespace | Misha Brukman | 2005-04-21 | 1 | -2/+2 |
| | | | | | llvm-svn: 21420 | ||||
| * | there is no need to remove this instruction, linscan does it already as it | Chris Lattner | 2005-04-09 | 1 | -5/+0 |
| | | | | | | | removes noop moves. llvm-svn: 21183 | ||||
| * | Adjust live intervals to support a livein set | Chris Lattner | 2005-04-09 | 1 | -2/+44 |
| | | | | | llvm-svn: 21182 | ||||
| * | I didn't mean to check this in. :( | Chris Lattner | 2005-03-10 | 1 | -3/+1 |
| | | | | | llvm-svn: 20555 | ||||
| * | Allow the live interval analysis pass to be a bit more aggressive about | Chris Lattner | 2005-03-09 | 1 | -7/+53 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | numbering values in live ranges for physical registers. The alpha backend currently generates code that looks like this: vreg = preg ... preg = vreg use preg ... preg = vreg use preg etc. Because vreg contains the value of preg coming in, each of the copies back into preg contain that initial value as well. In the case of the Alpha, this allows this testcase: void "foo"(int %blah) { store int 5, int *%MyVar store int 12, int* %MyVar2 ret void } to compile to: foo: ldgp $29, 0($27) ldiq $0,5 stl $0,MyVar ldiq $0,12 stl $0,MyVar2 ret $31,($26),1 instead of: foo: ldgp $29, 0($27) bis $29,$29,$0 ldiq $1,5 bis $0,$0,$29 stl $1,MyVar ldiq $1,12 bis $0,$0,$29 stl $1,MyVar2 ret $31,($26),1 This does not seem to have any noticable effect on X86 code. This fixes PR535. llvm-svn: 20536 | ||||
| * | Silence warnings from VS | Chris Lattner | 2005-01-08 | 1 | -2/+3 |
| | | | | | llvm-svn: 19386 | ||||
| * | For PR387:\ | Reid Spencer | 2004-12-07 | 1 | -1/+1 |
| | | | | | | | | Make only one print method to avoid overloaded virtual warnings when \ compiled with -Woverloaded-virtual llvm-svn: 18589 | ||||
| * | Reduce usage of MRegisterInfo::getRegClass | Chris Lattner | 2004-10-26 | 1 | -5/+6 |
| | | | | | llvm-svn: 17238 | ||||
| * | Patch to support MSVC better, contributed by Morten Ofstad | Chris Lattner | 2004-10-25 | 1 | -1/+1 |
| | | | | | llvm-svn: 17215 | ||||
| * | When a virtual register is folded into an instruction, keep track of whether | Chris Lattner | 2004-10-01 | 1 | -1/+1 |
| | | | | | | | | | it was a use, def, or both. This allows us to be less pessimistic in our analysis of them. In practice, this doesn't make a big difference, but it doesn't hurt either. llvm-svn: 16632 | ||||
| * | Pretty print a bit nicer :) | Chris Lattner | 2004-10-01 | 1 | -2/+1 |
| | | | | | llvm-svn: 16628 | ||||
| * | There is no need to call MachineInstr::print directly, just send the MI& to ↵ | Chris Lattner | 2004-09-30 | 1 | -8/+11 |
| | | | | | | | an ostream. llvm-svn: 16613 | ||||
| * | * Wrap some comments to 80 cols | Chris Lattner | 2004-09-30 | 1 | -30/+32 |
| | | | | | | | | | * Add const_iterator stuff * Add a print method, which means that I can now call dump() from the debugger. llvm-svn: 16612 | ||||

