- Apr 18, 2007
-
-
Chris Lattner authored
Be more careful when inserting reused instructions. This fixes CodeGen/Generic/2007-04-17-lsr-crash.ll llvm-svn: 36231
-
Chris Lattner authored
llvm-svn: 36230
-
Evan Cheng authored
llvm-svn: 36227
-
Chris Lattner authored
wrong operand. llvm-svn: 36223
-
Chris Lattner authored
llvm-svn: 36222
-
- Apr 17, 2007
-
-
Chris Lattner authored
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
-
Chris Lattner authored
llvm-svn: 36220
-
Duncan Sands authored
llvm-svn: 36219
-
Evan Cheng authored
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
-
Devang Patel authored
llvm-svn: 36217
-
Evan Cheng authored
llvm-svn: 36216
-
Evan Cheng authored
llvm-svn: 36215
-
Evan Cheng authored
llvm-svn: 36214
-
Anton Korobeynikov authored
llvm-svn: 36213
-
Chris Lattner authored
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
-
Chris Lattner authored
llvm-svn: 36211
-
Chris Lattner authored
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
-
Chris Lattner authored
llvm-svn: 36209
-
Dan Gohman authored
gets called. llvm-svn: 36208
-
Chris Lattner authored
llvm-svn: 36207
-
Chris Lattner authored
llvm-svn: 36206
-
Chris Lattner authored
llvm-svn: 36205
-
Chris Lattner authored
llvm-svn: 36204
-
Chris Lattner authored
llvm-svn: 36203
-
Chris Lattner authored
llvm-svn: 36202
-
Chris Lattner authored
llvm-svn: 36201
-
Chris Lattner authored
llvm-svn: 36200
-
Chris Lattner authored
llvm-svn: 36199
-
Chris Lattner authored
llvm-svn: 36198
-
Chris Lattner authored
llvm-svn: 36197
-
Chris Lattner authored
it is defined in. llvm-svn: 36196
-
Anton Korobeynikov authored
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
-
Jeff Cohen authored
llvm-svn: 36194
-
Jeff Cohen authored
llvm-svn: 36193
-
Chris Lattner authored
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
-
Andrew Lenharth authored
llvm-svn: 36191
-
Andrew Lenharth authored
llvm-svn: 36190
-
Chris Lattner authored
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
-
Chris Lattner authored
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
-
Chris Lattner authored
llvm-svn: 36187
-