Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | 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 | |||||
* | 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 | |||||
* | Copy coalescing change to prevent a physical register from being pin to a | Evan Cheng | 2007-04-17 | 2 | -86/+98 | |
| | | | | | | | | | | | | | 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 | |||||
* | Add a register allocation preference field; add a method to compute size of ↵ | Evan Cheng | 2007-04-17 | 1 | -0/+9 | |
| | | | | | | a live interval. llvm-svn: 36216 | |||||
* | Change getAllocatableSet() so it returns allocatable registers for a ↵ | Evan Cheng | 2007-04-17 | 1 | -4/+7 | |
| | | | | | | specific register class. llvm-svn: 36215 | |||||
* | Keep track of number of uses within the function per virtual register. | Evan Cheng | 2007-04-17 | 1 | -0/+1 | |
| | | | | 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 | |||||
* | 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 | |||||
* | remove use of BasicBlock::getNext | Chris Lattner | 2007-04-17 | 2 | -3/+6 | |
| | | | | llvm-svn: 36205 | |||||
* | 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 | 5 | -7/+70 | |
| | | | | | | | 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 | |||||
* | merge several fields in GlobalValue to use the same word, move CallingConv | Chris Lattner | 2007-04-17 | 1 | -1/+0 | |
| | | | | | | | | | 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 | |||||
* | The (negative) offset from a SymbolTableListTraits-using ilist to its container | Chris Lattner | 2007-04-17 | 4 | -14/+9 | |
| | | | | | | | | | 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 | 5 | -59/+77 | |
| | | | | | | | | 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 | |||||
* | SSE4 is apparently public now. | Chris Lattner | 2007-04-17 | 1 | -0/+2 | |
| | | | | llvm-svn: 36185 | |||||
* | Make long line fit in 80 cols. | Reid Spencer | 2007-04-16 | 1 | -1/+1 | |
| | | | | llvm-svn: 36183 | |||||
* | Fix | Devang Patel | 2007-04-16 | 1 | -0/+6 | |
| | | | | | | http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070416/047888.html llvm-svn: 36182 | |||||
* | Fix problems in the PartSet lowering having to do with incorrect bit width. | Reid Spencer | 2007-04-16 | 1 | -3/+5 | |
| | | | | llvm-svn: 36180 | |||||
* | Regenerate | Reid Spencer | 2007-04-16 | 2 | -2/+2 | |
| | | | | llvm-svn: 36179 | |||||
* | Okay, yes there *is* a getKeyLength method on ValueName. And, it should be | Reid Spencer | 2007-04-16 | 1 | -1/+1 | |
| | | | | | | used because we *do* want to allow nulls in names. llvm-svn: 36178 | |||||
* | In the event that some really old non-Intel or -AMD CPU is encountered... | Jeff Cohen | 2007-04-16 | 1 | -2/+5 | |
| | | | | llvm-svn: 36177 | |||||
* | Implement @sext and @zext parameter attribute handling properly instead of | Reid Spencer | 2007-04-16 | 1 | -11/+20 | |
| | | | | | | | forcing every small argument of every function regardless of attributes or calling convention to be expanded. llvm-svn: 36174 | |||||
* | Before assuming that the original code didn't work for Athlon64, the person who | Jeff Cohen | 2007-04-16 | 1 | -6/+2 | |
| | | | | | | | replaced it with a FIXME should have determined what did work. Then he would have realized that the code was in fact correct, and would have avoided breaking it. llvm-svn: 36173 | |||||
* | Proivde getAnalysis<FPAnalysis>(Func) support. | Devang Patel | 2007-04-16 | 1 | -0/+5 | |
| | | | | llvm-svn: 36159 | |||||
* | Do not assert during analysis implementation initialization. | Devang Patel | 2007-04-16 | 1 | -1/+3 | |
| | | | | llvm-svn: 36158 | |||||
* | Print and delete on the fly pass managers. | Devang Patel | 2007-04-16 | 1 | -3/+19 | |
| | | | | llvm-svn: 36157 | |||||
* | Regenerate. | Reid Spencer | 2007-04-16 | 2 | -6/+6 | |
| | | | | llvm-svn: 36156 | |||||
* | Check length of string before we walk off the end of it. | Reid Spencer | 2007-04-16 | 1 | -3/+3 | |
| | | | | | | Thanks, Chris. llvm-svn: 36155 | |||||
* | Update module pass manager to support module passes that require | Devang Patel | 2007-04-16 | 1 | -11/+44 | |
| | | | | | | function passes. llvm-svn: 36154 | |||||
* | Give each pass manager chance to manage lower level analysis pass, which is | Devang Patel | 2007-04-16 | 1 | -20/+60 | |
| | | | | | | pass required by one of pass managed by the manager. llvm-svn: 36153 | |||||
* | Removed tabs everywhere except autogenerated & external files. Add make | Anton Korobeynikov | 2007-04-16 | 31 | -348/+358 | |
| | | | | | | target for tabs checking. llvm-svn: 36146 | |||||
* | Regenerate. | Reid Spencer | 2007-04-16 | 2 | -17/+19 | |
| | | | | llvm-svn: 36144 | |||||
* | Use a more optimal way to get the name of a function. Thanks, Chris. | Reid Spencer | 2007-04-16 | 1 | -1/+2 | |
| | | | | llvm-svn: 36143 | |||||
* | Don't return 0 if the len == 5, let the assert handle that case. | Reid Spencer | 2007-04-16 | 1 | -1/+1 | |
| | | | | | | Thanks, Chris. llvm-svn: 36139 | |||||
* | For PR1336: | Reid Spencer | 2007-04-16 | 1 | -1/+1 | |
| | | | | | | | Subtarget option names must be given in lower case in order to be recognized. Fixes test/CodeGen/Alpha/ctlz.ll llvm-svn: 36125 | |||||
* | Fix test/CodeGen/Generic/vector-constantexpr.ll | Reid Spencer | 2007-04-16 | 1 | -0/+2 | |
| | | | | llvm-svn: 36123 | |||||
* | Regenerate. | Reid Spencer | 2007-04-16 | 3 | -1207/+1049 | |
| | | | | llvm-svn: 36122 |