summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Don't populate TryAgainList when coalescing only physical registers with ↵Evan Cheng2007-04-182-7/+7
| | | | | | virtual registers. llvm-svn: 36240
* Cache DT[*SI] lookup.Devang Patel2007-04-181-2/+4
| | | | llvm-svn: 36239
* don't access argument list of prototypesChris Lattner2007-04-181-7/+24
| | | | llvm-svn: 36238
* FixDevang Patel2007-04-181-1/+1
| | | | | | http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070416/047971.html llvm-svn: 36236
* New test.Devang Patel2007-04-181-0/+692
| | | | llvm-svn: 36235
* what's an & between friends?Chris Lattner2007-04-181-1/+1
| | | | llvm-svn: 36234
* Increment use count of new virtuals created during PHI elimination.Evan Cheng2007-04-181-0/+3
| | | | llvm-svn: 36233
* Be more careful when inserting reused instructions. This fixes ↵Chris Lattner2007-04-171-2/+7
| | | | | | CodeGen/Generic/2007-04-17-lsr-crash.ll llvm-svn: 36231
* new testcaseChris Lattner2007-04-171-0/+35
| | | | llvm-svn: 36230
* Oops. Didn't mean to check in a quick hack.Evan Cheng2007-04-171-8/+16
| | | | llvm-svn: 36227
* Fix a bug in my previous patch, grabbing the shift amount width from theChris Lattner2007-04-171-2/+2
| | | | | | wrong operand. llvm-svn: 36223
* dag combiner just got better at pruning bits. This fixes CodeGen/ARM/rev.llChris Lattner2007-04-171-1/+1
| | | | llvm-svn: 36222
* Fold (x << c1)>> c2 into a single shift if the bits shifted out aren't used.Chris Lattner2007-04-171-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 testcaseChris Lattner2007-04-171-0/+11
| | | | llvm-svn: 36220
* Use // not ; since this is C.Duncan Sands2007-04-171-2/+2
| | | | llvm-svn: 36219
* Copy coalescing change to prevent a physical register from being pin to aEvan Cheng2007-04-173-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 Patel2007-04-171-0/+4
| | | | llvm-svn: 36217
* Add a register allocation preference field; add a method to compute size of ↵Evan Cheng2007-04-172-1/+15
| | | | | | a live interval. llvm-svn: 36216
* Change getAllocatableSet() so it returns allocatable registers for a ↵Evan Cheng2007-04-172-6/+11
| | | | | | specific register class. llvm-svn: 36215
* Keep track of number of uses within the function per virtual register.Evan Cheng2007-04-172-1/+6
| | | | llvm-svn: 36214
* Add commentAnton Korobeynikov2007-04-171-0/+9
| | | | llvm-svn: 36213
* SIGN_EXTEND_INREG does not demand its top bits. Give SimplifyDemandedBitsChris Lattner2007-04-171-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 testcaseChris Lattner2007-04-171-0/+12
| | | | llvm-svn: 36211
* Commit an patch from Gabor Greif in Mar 2005. This eliminates the tailChris Lattner2007-04-171-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 Lattner2007-04-172-15/+15
| | | | llvm-svn: 36209
* Spell doFinalization right, so that it is a proper virtual override andDan Gohman2007-04-171-1/+1
| | | | | | gets called. llvm-svn: 36208
* make next/prev accessors privateChris Lattner2007-04-171-6/+8
| | | | llvm-svn: 36207
* bool on darwin/ppc is 4 bytes.Chris Lattner2007-04-171-2/+2
| | | | llvm-svn: 36206
* remove use of BasicBlock::getNextChris Lattner2007-04-172-3/+6
| | | | llvm-svn: 36205
* Instruction:: Next/Prev accessors are now privateChris Lattner2007-04-171-7/+8
| | | | llvm-svn: 36204
* add a noteChris Lattner2007-04-171-0/+43
| | | | llvm-svn: 36203
* remove use of BasicBlock::getNextChris Lattner2007-04-171-3/+4
| | | | llvm-svn: 36202
* Remove use of Instruction::getNextChris Lattner2007-04-171-8/+11
| | | | llvm-svn: 36201
* eliminate use of Instruction::getNext()Chris Lattner2007-04-171-13/+15
| | | | llvm-svn: 36200
* remove use of Instruction::getNextChris Lattner2007-04-171-3/+5
| | | | llvm-svn: 36199
* eliminate use of Instruction::getPrev(). Patch by Gabor Greif in 2005.Chris Lattner2007-04-171-3/+6
| | | | llvm-svn: 36198
* eliminate a use of Instruction::getPrev(), patch by Gabor Greif in 2005.Chris Lattner2007-04-171-1/+2
| | | | llvm-svn: 36197
* rename X86FunctionInfo to X86MachineFunctionInfo to match the header fileChris Lattner2007-04-177-21/+23
| | | | | | it is defined in. llvm-svn: 36196
* Implemented correct stack probing on mingw/cygwin for dynamic alloca's.Anton Korobeynikov2007-04-177-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 Cohen2007-04-171-1/+1
| | | | llvm-svn: 36194
* Fix build breakage on 64-bit systems.Jeff Cohen2007-04-173-5/+5
| | | | llvm-svn: 36193
* merge several fields in GlobalValue to use the same word, move CallingConvChris Lattner2007-04-173-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 movesAndrew Lenharth2007-04-172-17/+21
| | | | llvm-svn: 36191
* this is fixedAndrew Lenharth2007-04-171-1/+1
| | | | llvm-svn: 36190
* The (negative) offset from a SymbolTableListTraits-using ilist to its containerChris Lattner2007-04-178-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, insteadChris Lattner2007-04-1713-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 Lattner2007-04-171-4/+2
| | | | llvm-svn: 36187
* Remove "ModulePasses requiring FunctionPasses" from the list of futureDevang Patel2007-04-171-28/+1
| | | | | | extensions. llvm-svn: 36186
* SSE4 is apparently public now.Chris Lattner2007-04-171-0/+2
| | | | llvm-svn: 36185
* Add PR number for reference.Devang Patel2007-04-161-0/+1
| | | | llvm-svn: 36184
OpenPOWER on IntegriCloud