- Jan 07, 2008
-
-
Chris Lattner authored
Make MachineInstr::getDesc return a reference instead of a pointer, since it can never be null. llvm-svn: 45695
-
Chris Lattner authored
llvm-svn: 45679
-
Owen Anderson authored
Some day I'll get it all moved over... llvm-svn: 45672
-
- Jan 05, 2008
-
-
Owen Anderson authored
llvm-svn: 45603
-
- Jan 02, 2008
-
-
Bill Wendling authored
check that register isn't 0 before going further. llvm-svn: 45498
-
- Jan 01, 2008
-
-
Owen Anderson authored
llvm-svn: 45484
-
Chris Lattner authored
a header file from libcodegen. This violates a layering order: codegen depends on target, not the other way around. The fix to this is to split TII into two classes, TII and TargetInstrInfoImpl, which defines stuff that depends on libcodegen. It is defined in libcodegen, where the base is not. llvm-svn: 45475
-
- Dec 31, 2007
-
-
Owen Anderson authored
Machine-level API cleanup instigated by Chris. llvm-svn: 45470
-
- Dec 30, 2007
-
-
Bill Wendling authored
function, then go ahead and hoist it out of the loop. This is the result: $ cat a.c volatile int G; int A(int N) { for (; N > 0; --N) G++; } $ llc -o - -relocation-model=pic _A: ... LBB1_2: # bb movl L_G$non_lazy_ptr-"L1$pb"(%eax), %esi incl (%esi) incl %edx cmpl %ecx, %edx jne LBB1_2 # bb ... $ llc -o - -relocation-model=pic -machine-licm _A: ... movl L_G$non_lazy_ptr-"L1$pb"(%eax), %eax LBB1_2: # bb incl (%eax) incl %edx cmpl %ecx, %edx jne LBB1_2 # bb ... I'm limiting this to the MOV32rm x86 instruction for now. llvm-svn: 45444
-
- Dec 29, 2007
-
-
Chris Lattner authored
llvm-svn: 45418
-
- Dec 18, 2007
-
-
Bill Wendling authored
based what flag to set on whether it was already marked as "isRematerializable". If there was a further check to determine if it's "really" rematerializable, then I marked it as "mayHaveSideEffects" and created a check in the X86 back-end similar to the remat one. llvm-svn: 45132
-
- Dec 09, 2007
-
-
Bill Wendling authored
llvm-svn: 44727
-
- Dec 08, 2007
-
-
Bill Wendling authored
isTriviallyReMaterializable -> hasNoSideEffects isReallyTriviallyReMaterializable -> isTriviallyReMaterializable llvm-svn: 44702
-
- Aug 29, 2007
-
-
Duncan Sands authored
in the trampoline lowering. Lookup the jump and mov opcodes for the trampoline rather than hard coding them. llvm-svn: 41577
-
- Jun 26, 2007
-
-
Dan Gohman authored
instruction flag, and use the flag along with a virtual member function hook for targets to override if there are instructions that are only trivially rematerializable with specific operands (i.e. constant pool loads). llvm-svn: 37728
-
- Jun 19, 2007
-
-
Dan Gohman authored
with a general target hook to identify rematerializable instructions. Some instructions are only rematerializable with specific operands, such as loads from constant pools, while others are always rematerializable. This hook allows both to be identified as being rematerializable with the same mechanism. llvm-svn: 37644
-
- Jun 15, 2007
-
-
Dale Johannesen authored
llvm-svn: 37578
-
- Jun 14, 2007
-
-
Dan Gohman authored
implementation for x86. llvm-svn: 37576
-
- May 18, 2007
-
-
Evan Cheng authored
llvm-svn: 37193
-
- Apr 11, 2007
-
-
Bill Wendling authored
llvm-svn: 35869
-
- Jan 26, 2007
-
-
Jim Laskey authored
llvm-svn: 33537
-
- Dec 05, 2006
-
-
Evan Cheng authored
immediate in small code model. The JIT cannot ensure GV's are placed in the lower 4G. - Some preliminary support for large code model. llvm-svn: 32215
-
- Dec 01, 2006
-
-
Evan Cheng authored
llvm-svn: 32098
-
- Oct 28, 2006
-
-
Chris Lattner authored
llvm-svn: 31262
-
- Oct 21, 2006
-
-
Chris Lattner authored
llvm-svn: 31099
-
- Oct 20, 2006
-
-
Chris Lattner authored
llvm-svn: 31065
-
- Oct 18, 2006
-
-
Chris Lattner authored
llvm-svn: 31024
-
- Oct 13, 2006
-
-
Chris Lattner authored
llvm-svn: 30938
-
- Sep 08, 2006
-
-
Evan Cheng authored
llvm-svn: 30177
-
- May 30, 2006
-
-
Evan Cheng authored
llvm-svn: 28574
-
- May 24, 2006
-
-
Chris Lattner authored
by Anton Korobeynikov! This is a step towards closing PR786. llvm-svn: 28447
-
- May 18, 2006
-
-
Evan Cheng authored
llvm-svn: 28381
-
- Feb 02, 2006
-
-
Chris Lattner authored
Move isLoadFrom/StoreToStackSlot from MRegisterInfo to TargetInstrInfo,a far more logical place. Other methods should also be moved if anyoneis interested. :) llvm-svn: 25913
-
- Feb 01, 2006
-
-
Evan Cheng authored
- Added a new format for instructions where the source register is implied and it is same as the destination register. Used for pseudo instructions that clear the destination register. llvm-svn: 25872
-
- Jul 27, 2005
-
-
Jeff Cohen authored
llvm-svn: 22520
-
- Jul 06, 2005
-
-
Nate Begeman authored
XMM registers. There are many known deficiencies and fixmes, which will be addressed ASAP. The major benefit of this work is that it will allow the LLVM register allocator to allocate FP registers across basic blocks. The x86 backend will still default to x87 style FP. To enable this work, you must pass -enable-sse-scalar-fp and either -sse2 or -sse3 to llc. An example before and after would be for: double foo(double *P) { double Sum = 0; int i; for (i = 0; i < 1000; ++i) Sum += P[i]; return Sum; } The inner loop looks like the following: x87: .LBB_foo_1: # no_exit fldl (%esp) faddl (%eax,%ecx,8) fstpl (%esp) incl %ecx cmpl $1000, %ecx #FP_REG_KILL jne .LBB_foo_1 # no_exit SSE2: addsd (%eax,%ecx,8), %xmm0 incl %ecx cmpl $1000, %ecx #FP_REG_KILL jne .LBB_foo_1 # no_exit llvm-svn: 22340
-
- Apr 22, 2005
-
-
Misha Brukman authored
* Convert tabs to spaces llvm-svn: 21426
-
- Jan 19, 2005
-
-
Chris Lattner authored
This allows us to generate this: foo: mov %EAX, DWORD PTR [%ESP + 4] mov %EDX, DWORD PTR [%ESP + 8] shld %EDX, %EDX, 2 shl %EAX, 2 ret instead of this: foo: mov %EAX, DWORD PTR [%ESP + 4] mov %ECX, DWORD PTR [%ESP + 8] mov %EDX, %EAX shrd %EDX, %ECX, 30 shl %EAX, 2 ret Note the magically transmogrifying immediate. llvm-svn: 19686
-
- Jan 02, 2005
-
-
Chris Lattner authored
branches. llvm-svn: 19247
-
- Aug 11, 2004
-
-
Chris Lattner authored
old asmprinter. llvm-svn: 15660
-