summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* 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
* Copy coalescing change to prevent a physical register from being pin to aEvan Cheng2007-04-172-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 Cheng2007-04-171-0/+9
| | | | | | a live interval. llvm-svn: 36216
* Change getAllocatableSet() so it returns allocatable registers for a ↵Evan Cheng2007-04-171-4/+7
| | | | | | specific register class. llvm-svn: 36215
* Keep track of number of uses within the function per virtual register.Evan Cheng2007-04-171-0/+1
| | | | 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
* Spell doFinalization right, so that it is a proper virtual override andDan Gohman2007-04-171-1/+1
| | | | | | gets called. llvm-svn: 36208
* remove use of BasicBlock::getNextChris Lattner2007-04-172-3/+6
| | | | llvm-svn: 36205
* 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-175-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 CallingConvChris Lattner2007-04-171-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 movesAndrew Lenharth2007-04-172-17/+21
| | | | llvm-svn: 36191
* The (negative) offset from a SymbolTableListTraits-using ilist to its containerChris Lattner2007-04-174-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, insteadChris Lattner2007-04-175-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 Lattner2007-04-171-0/+2
| | | | llvm-svn: 36185
* Make long line fit in 80 cols.Reid Spencer2007-04-161-1/+1
| | | | llvm-svn: 36183
* FixDevang Patel2007-04-161-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 Spencer2007-04-161-3/+5
| | | | llvm-svn: 36180
* RegenerateReid Spencer2007-04-162-2/+2
| | | | llvm-svn: 36179
* Okay, yes there *is* a getKeyLength method on ValueName. And, it should beReid Spencer2007-04-161-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 Cohen2007-04-161-2/+5
| | | | llvm-svn: 36177
* Implement @sext and @zext parameter attribute handling properly instead ofReid Spencer2007-04-161-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 whoJeff Cohen2007-04-161-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 Patel2007-04-161-0/+5
| | | | llvm-svn: 36159
* Do not assert during analysis implementation initialization.Devang Patel2007-04-161-1/+3
| | | | llvm-svn: 36158
* Print and delete on the fly pass managers.Devang Patel2007-04-161-3/+19
| | | | llvm-svn: 36157
* Regenerate.Reid Spencer2007-04-162-6/+6
| | | | llvm-svn: 36156
* Check length of string before we walk off the end of it.Reid Spencer2007-04-161-3/+3
| | | | | | Thanks, Chris. llvm-svn: 36155
* Update module pass manager to support module passes that requireDevang Patel2007-04-161-11/+44
| | | | | | function passes. llvm-svn: 36154
* Give each pass manager chance to manage lower level analysis pass, which isDevang Patel2007-04-161-20/+60
| | | | | | pass required by one of pass managed by the manager. llvm-svn: 36153
* Removed tabs everywhere except autogenerated & external files. Add makeAnton Korobeynikov2007-04-1631-348/+358
| | | | | | target for tabs checking. llvm-svn: 36146
* Regenerate.Reid Spencer2007-04-162-17/+19
| | | | llvm-svn: 36144
* Use a more optimal way to get the name of a function. Thanks, Chris.Reid Spencer2007-04-161-1/+2
| | | | llvm-svn: 36143
* Don't return 0 if the len == 5, let the assert handle that case.Reid Spencer2007-04-161-1/+1
| | | | | | Thanks, Chris. llvm-svn: 36139
* For PR1336:Reid Spencer2007-04-161-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.llReid Spencer2007-04-161-0/+2
| | | | llvm-svn: 36123
* Regenerate.Reid Spencer2007-04-163-1207/+1049
| | | | llvm-svn: 36122
OpenPOWER on IntegriCloud