Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Add implicit def / use operands to MachineInstr. | Evan Cheng | 2006-11-10 | 1 | -8/+1 | |
| | | | | llvm-svn: 31633 | |||||
* | Remove redundant <cmath>. | Jim Laskey | 2006-11-08 | 1 | -1/+0 | |
| | | | | llvm-svn: 31561 | |||||
* | Enable improved spilling costs by default. This speeds up viterbi on x86 | Chris Lattner | 2006-11-07 | 1 | -12/+7 | |
| | | | | | | | | by 40%, FreeBench/fourinarow by 20%, and many other programs 10-25%. On PPC, this speeds up fourinarow by 18%, and probably other things as well. llvm-svn: 31504 | |||||
* | Use correct value for float HUGH_VAL. | Jim Laskey | 2006-11-07 | 1 | -4/+4 | |
| | | | | llvm-svn: 31500 | |||||
* | Add a new llcbeta option. This speeds up viterbi from 12.34 to 8.76s on | Chris Lattner | 2006-11-07 | 1 | -4/+19 | |
| | | | | | | X86. If happy, I'll enable this by default. llvm-svn: 31493 | |||||
* | Proper check for two-addressness. | Evan Cheng | 2006-11-03 | 1 | -7/+22 | |
| | | | | llvm-svn: 31408 | |||||
* | For PR786: | Reid Spencer | 2006-11-02 | 1 | -1/+1 | |
| | | | | | | | | | | Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. llvm-svn: 31380 | |||||
* | Keep track of the start of MBB's in a separate map from instructions. This | Chris Lattner | 2006-09-15 | 1 | -38/+45 | |
| | | | | | | is faster and is needed for future improvements. llvm-svn: 30383 | |||||
* | Fix a long-standing wart in the code generator: two-address instruction lowering | Chris Lattner | 2006-09-05 | 1 | -42/+48 | |
| | | | | | | | | | | | | | | | actually *removes* one of the operands, instead of just assigning both operands the same register. This make reasoning about instructions unnecessarily complex, because you need to know if you are before or after register allocation to match up operand #'s with the target description file. Changing this also gets rid of a bunch of hacky code in various places. This patch also includes changes to fold loads into cmp/test instructions in the X86 backend, along with a significant simplification to the X86 spill folding code. llvm-svn: 30108 | |||||
* | Correct fix for a crasher on functions with live in values | Chris Lattner | 2006-09-04 | 1 | -4/+6 | |
| | | | | llvm-svn: 30099 | |||||
* | Hack around a regression I introduced yesterday | Chris Lattner | 2006-09-04 | 1 | -0/+3 | |
| | | | | llvm-svn: 30098 | |||||
* | Avoid beating on the mi2i map when we know the answer already. | Chris Lattner | 2006-09-03 | 1 | -12/+19 | |
| | | | | llvm-svn: 30066 | |||||
* | minor speedup | Chris Lattner | 2006-09-03 | 1 | -3/+3 | |
| | | | | llvm-svn: 30065 | |||||
* | Iteration is required for some cases, even if they don't occur in crafty. | Chris Lattner | 2006-09-02 | 1 | -13/+24 | |
| | | | | | | Restore it, which re-fixes X86/2006-08-21-ExtraMovInst.ll llvm-svn: 30050 | |||||
* | When joining two intervals where the RHS is really simple, use a light-weight | Chris Lattner | 2006-09-02 | 1 | -11/+155 | |
| | | | | | | method for joining the live ranges instead of the fully-general one. llvm-svn: 30049 | |||||
* | Pull some code out of a hot recursive function because the common case doesn't | Chris Lattner | 2006-09-01 | 1 | -6/+19 | |
| | | | | | | need recursion. llvm-svn: 30015 | |||||
* | Reserve space in the ValueNumberInfo vector. This speeds up live interval | Chris Lattner | 2006-09-01 | 1 | -10/+10 | |
| | | | | | | | | analysis 16% on crafty. Wrap long lines. llvm-svn: 30012 | |||||
* | Iterative coallescing doesn't buy us anything (we get identical results on | Chris Lattner | 2006-09-01 | 1 | -24/+4 | |
| | | | | | | crafty with and without it). Removing it speeds up live intervals 6%. llvm-svn: 30010 | |||||
* | 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 |