Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Don't populate TryAgainList when coalescing only physical registers with ↵ | Evan Cheng | 2007-04-18 | 2 | -7/+7 | |
| | | | | | | virtual registers. llvm-svn: 36240 | |||||
* | Cache DT[*SI] lookup. | Devang Patel | 2007-04-18 | 1 | -2/+4 | |
| | | | | llvm-svn: 36239 | |||||
* | don't access argument list of prototypes | Chris Lattner | 2007-04-18 | 1 | -7/+24 | |
| | | | | llvm-svn: 36238 | |||||
* | Fix | Devang Patel | 2007-04-18 | 1 | -1/+1 | |
| | | | | | | http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070416/047971.html llvm-svn: 36236 | |||||
* | New test. | Devang Patel | 2007-04-18 | 1 | -0/+692 | |
| | | | | llvm-svn: 36235 | |||||
* | what's an & between friends? | Chris Lattner | 2007-04-18 | 1 | -1/+1 | |
| | | | | llvm-svn: 36234 | |||||
* | Increment use count of new virtuals created during PHI elimination. | Evan Cheng | 2007-04-18 | 1 | -0/+3 | |
| | | | | llvm-svn: 36233 | |||||
* | Be more careful when inserting reused instructions. This fixes ↵ | Chris Lattner | 2007-04-17 | 1 | -2/+7 | |
| | | | | | | CodeGen/Generic/2007-04-17-lsr-crash.ll llvm-svn: 36231 | |||||
* | new testcase | Chris Lattner | 2007-04-17 | 1 | -0/+35 | |
| | | | | llvm-svn: 36230 | |||||
* | Oops. Didn't mean to check in a quick hack. | Evan Cheng | 2007-04-17 | 1 | -8/+16 | |
| | | | | llvm-svn: 36227 | |||||
* | Fix a bug in my previous patch, grabbing the shift amount width from the | Chris Lattner | 2007-04-17 | 1 | -2/+2 | |
| | | | | | | wrong operand. llvm-svn: 36223 | |||||
* | dag combiner just got better at pruning bits. This fixes CodeGen/ARM/rev.ll | Chris Lattner | 2007-04-17 | 1 | -1/+1 | |
| | | | | llvm-svn: 36222 | |||||
* | Fold (x << c1)>> c2 into a single shift if the bits shifted out aren't used. | Chris Lattner | 2007-04-17 | 1 | -5/+52 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This compiles: int baz(long long a) { return (short)(((int)(a >>24)) >> 9); } into: _baz: srwi r2, r3, 1 extsh r3, r2 blr on PPC, instead of: _baz: slwi r2, r3, 8 srwi r2, r2, 9 extsh r3, r2 blr GCC produces: _baz: srwi r10,r4,24 insrwi r10,r3,24,0 srawi r9,r3,24 srawi r3,r10,9 extsh r3,r3 blr This implements CodeGen/PowerPC/shl_elim.ll llvm-svn: 36221 | |||||
* | new testcase | Chris Lattner | 2007-04-17 | 1 | -0/+11 | |
| | | | | llvm-svn: 36220 | |||||
* | Use // not ; since this is C. | Duncan Sands | 2007-04-17 | 1 | -2/+2 | |
| | | | | llvm-svn: 36219 | |||||
* | Copy coalescing change to prevent a physical register from being pin to a | Evan Cheng | 2007-04-17 | 3 | -88/+104 | |
| | | | | | | | | | | | | | long live interval that has low usage density. 1. Change order of coalescing to join physical registers with virtual registers first before virtual register intervals become too long. 2. Check size and usage density to determine if it's worthwhile to join. 3. If joining is aborted, assign virtual register live interval allocation preference field to the physical register. 4. Register allocator should try to allocate to the preferred register first (if available) to create identify moves that can be eliminated. llvm-svn: 36218 | |||||
* | New test case. | Devang Patel | 2007-04-17 | 1 | -0/+4 | |
| | | | | llvm-svn: 36217 | |||||
* | Add a register allocation preference field; add a method to compute size of ↵ | Evan Cheng | 2007-04-17 | 2 | -1/+15 | |
| | | | | | | a live interval. llvm-svn: 36216 | |||||
* | Change getAllocatableSet() so it returns allocatable registers for a ↵ | Evan Cheng | 2007-04-17 | 2 | -6/+11 | |
| | | | | | | specific register class. llvm-svn: 36215 | |||||
* | Keep track of number of uses within the function per virtual register. | Evan Cheng | 2007-04-17 | 2 | -1/+6 | |
| | | | | llvm-svn: 36214 | |||||
* | Add comment | Anton Korobeynikov | 2007-04-17 | 1 | -0/+9 | |
| | | | | llvm-svn: 36213 | |||||
* | SIGN_EXTEND_INREG does not demand its top bits. Give SimplifyDemandedBits | Chris Lattner | 2007-04-17 | 1 | -1/+6 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | a chance to hack on it. This compiles: int baz(long long a) { return (short)(((int)(a >>24)) >> 9); } into: _baz: slwi r2, r3, 8 srwi r2, r2, 9 extsh r3, r2 blr instead of: _baz: srwi r2, r4, 24 rlwimi r2, r3, 8, 0, 23 srwi r2, r2, 9 extsh r3, r2 blr This implements CodeGen/PowerPC/sign_ext_inreg1.ll llvm-svn: 36212 | |||||
* | new testcase | Chris Lattner | 2007-04-17 | 1 | -0/+12 | |
| | | | | llvm-svn: 36211 | |||||
* | Commit an patch from Gabor Greif in Mar 2005. This eliminates the tail | Chris Lattner | 2007-04-17 | 1 | -18/+37 | |
| | | | | | | | | | | pointer from ilist, storing it in the prev pointer of the first node in the list instead. This shrinks ilist from 8 to 4 bytes, BasicBlock from 40->36 bytes, Function from 76->68 bytes, Module from 52->44 bytes. llvm-svn: 36210 | |||||
* | make getnext/getprev accessors private. | Chris Lattner | 2007-04-17 | 2 | -15/+15 | |
| | | | | llvm-svn: 36209 | |||||
* | Spell doFinalization right, so that it is a proper virtual override and | Dan Gohman | 2007-04-17 | 1 | -1/+1 | |
| | | | | | | gets called. llvm-svn: 36208 | |||||
* | make next/prev accessors private | Chris Lattner | 2007-04-17 | 1 | -6/+8 | |
| | | | | llvm-svn: 36207 | |||||
* | bool on darwin/ppc is 4 bytes. | Chris Lattner | 2007-04-17 | 1 | -2/+2 | |
| | | | | llvm-svn: 36206 | |||||
* | remove use of BasicBlock::getNext | Chris Lattner | 2007-04-17 | 2 | -3/+6 | |
| | | | | llvm-svn: 36205 | |||||
* | Instruction:: Next/Prev accessors are now private | Chris Lattner | 2007-04-17 | 1 | -7/+8 | |
| | | | | llvm-svn: 36204 | |||||
* | add a note | Chris Lattner | 2007-04-17 | 1 | -0/+43 | |
| | | | | llvm-svn: 36203 | |||||
* | remove use of BasicBlock::getNext | Chris Lattner | 2007-04-17 | 1 | -3/+4 | |
| | | | | llvm-svn: 36202 | |||||
* | Remove use of Instruction::getNext | Chris Lattner | 2007-04-17 | 1 | -8/+11 | |
| | | | | llvm-svn: 36201 | |||||
* | eliminate use of Instruction::getNext() | Chris Lattner | 2007-04-17 | 1 | -13/+15 | |
| | | | | llvm-svn: 36200 | |||||
* | remove use of Instruction::getNext | Chris Lattner | 2007-04-17 | 1 | -3/+5 | |
| | | | | llvm-svn: 36199 | |||||
* | eliminate use of Instruction::getPrev(). Patch by Gabor Greif in 2005. | Chris Lattner | 2007-04-17 | 1 | -3/+6 | |
| | | | | llvm-svn: 36198 | |||||
* | eliminate a use of Instruction::getPrev(), patch by Gabor Greif in 2005. | Chris Lattner | 2007-04-17 | 1 | -1/+2 | |
| | | | | llvm-svn: 36197 | |||||
* | rename X86FunctionInfo to X86MachineFunctionInfo to match the header file | Chris Lattner | 2007-04-17 | 7 | -21/+23 | |
| | | | | | | it is defined in. llvm-svn: 36196 | |||||
* | Implemented correct stack probing on mingw/cygwin for dynamic alloca's. | Anton Korobeynikov | 2007-04-17 | 7 | -11/+102 | |
| | | | | | | | Also, fixed static case in presence of eax livin. This fixes PR331 PS: Why don't we still have push/pop instructions? :) llvm-svn: 36195 | |||||
* | Make it work on 64-bit systems. | Jeff Cohen | 2007-04-17 | 1 | -1/+1 | |
| | | | | llvm-svn: 36194 | |||||
* | Fix build breakage on 64-bit systems. | Jeff Cohen | 2007-04-17 | 3 | -5/+5 | |
| | | | | llvm-svn: 36193 | |||||
* | merge several fields in GlobalValue to use the same word, move CallingConv | Chris Lattner | 2007-04-17 | 3 | -11/+13 | |
| | | | | | | | | | field into SubclassData in Value. This shrinks GlobalVAlue from 48->40 bytes, Function from 88->76, and GlobalVariable from 76->68. This trims 4640 bytes off my testcase, reading a bc file without materializing any functions. llvm-svn: 36192 | |||||
* | Use this nifty Constraints thing and fix the inverted conditional moves | Andrew Lenharth | 2007-04-17 | 2 | -17/+21 | |
| | | | | llvm-svn: 36191 | |||||
* | this is fixed | Andrew Lenharth | 2007-04-17 | 1 | -1/+1 | |
| | | | | llvm-svn: 36190 | |||||
* | The (negative) offset from a SymbolTableListTraits-using ilist to its container | Chris Lattner | 2007-04-17 | 8 | -17/+70 | |
| | | | | | | | | | object is always constant. As such, evaluate it at compile time instead of storing it as an ivar in SymbolTableListTraits. This shrinks every SymbolTableListTraits ilist by a word, shrinking BasicBlock from 44->40 bytes, Function from 96->88 bytes, and Module from 60->52 bytes. llvm-svn: 36189 | |||||
* | Refactor SymbolTableListTraits to only have a single pointer in it, instead | Chris Lattner | 2007-04-17 | 13 | -113/+138 | |
| | | | | | | | | of two. This shrinkifies Function by 8 bytes (104->96) and Module by 8 bytes (68->60). On a testcase of mine, this reduces the memory used to read a module header from 565680b to 561024, a little over 4K. llvm-svn: 36188 | |||||
* | urr, yeah. | Chris Lattner | 2007-04-17 | 1 | -4/+2 | |
| | | | | llvm-svn: 36187 | |||||
* | Remove "ModulePasses requiring FunctionPasses" from the list of future | Devang Patel | 2007-04-17 | 1 | -28/+1 | |
| | | | | | | extensions. llvm-svn: 36186 | |||||
* | SSE4 is apparently public now. | Chris Lattner | 2007-04-17 | 1 | -0/+2 | |
| | | | | llvm-svn: 36185 | |||||
* | Add PR number for reference. | Devang Patel | 2007-04-16 | 1 | -0/+1 | |
| | | | | llvm-svn: 36184 |