- Oct 21, 2006
-
-
Chris Lattner authored
llvm-svn: 31095
-
Chris Lattner authored
llvm-svn: 31093
-
- Oct 20, 2006
-
-
Chris Lattner authored
llvm-svn: 31074
-
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 29, 2006
-
-
Chris Lattner authored
llvm-svn: 30663
-
- Sep 08, 2006
-
-
Evan Cheng authored
llvm-svn: 30177
-
- Sep 05, 2006
-
-
Chris Lattner authored
actually *removes* one of the operands, instead of just assigning both operands the same register. This make reasoning about instructions unnecessarily complex, because you need to know if you are before or after register allocation to match up operand #'s with the target description file. Changing this also gets rid of a bunch of hacky code in various places. This patch also includes changes to fold loads into cmp/test instructions in the X86 backend, along with a significant simplification to the X86 spill folding code. llvm-svn: 30108
-
- Jul 25, 2006
-
-
Evan Cheng authored
llvm-svn: 29275
-
- May 31, 2006
-
-
Evan Cheng authored
llvm-svn: 28577
-
Evan Cheng authored
only transform a shufps to pshufd when the first two operands are the same. llvm-svn: 28575
-
- May 30, 2006
-
-
Evan Cheng authored
llvm-svn: 28574
-
Evan Cheng authored
llvm-svn: 28573
-
Evan Cheng authored
llvm-svn: 28565
-
- May 19, 2006
-
-
Evan Cheng authored
currently... llvm-svn: 28393
-
- May 11, 2006
-
-
Evan Cheng authored
llvm-svn: 28223
-
- May 08, 2006
-
-
Evan Cheng authored
movw. That is we promote the destination operand to r16. So %CH = TRUNC_R16_R8 %BP is emitted as movw %bp, %cx. This is incorrect. If %cl is live, it would be clobbered. Ideally we want to do the opposite, that is emitted it as movb ??, %ch But this is not possible since %bp does not have a r8 sub-register. We are now defining a new register class R16_ which is a subclass of R16 containing only those 16-bit registers that have r8 sub-registers (i.e. AX - DX). We isel the truncate to two instructions, a MOV16to16_ to copy the value to the R16_ class, followed by a TRUNC_R16_R8. Due to bug 770, the register colaescer is not going to coalesce between R16 and R16_. That will be fixed later so we can eliminate the MOV16to16_. Right now, it can only be eliminated if we are lucky that source and destination registers are the same. llvm-svn: 28164
-
- Apr 18, 2006
-
-
Chris Lattner authored
to optimize cases where it has to spill a lot llvm-svn: 27801
-
- Apr 03, 2006
-
-
Evan Cheng authored
- Some bug fixes and naming inconsistency fixes. llvm-svn: 27377
-
- Mar 25, 2006
-
-
Evan Cheng authored
llvm-svn: 27091
-
- Mar 21, 2006
-
-
Evan Cheng authored
- Handle FR32 to VR128:v4f32 and FR64 to VR128:v2f64 with aliases of MOVAPS and MOVAPD. Mark them as move instructions and *hope* they will be deleted. llvm-svn: 26919
-
- Feb 16, 2006
-
-
Evan Cheng authored
proves to be worth 20% on Ptrdist/ks. Might be related to dependency breaking support. 2. Added FsMOVAPSrr and FsMOVAPDrr as aliases to MOVAPSrr and MOVAPDrr. These are used for FR32 / FR64 reg-to-reg copies. 3. Tell reg-allocator to generate MOVSSrm / MOVSDrm and MOVSSmr / MOVSDmr to spill / restore FsMOVAPSrr and FsMOVAPDrr. llvm-svn: 26241
-
- Feb 02, 2006
-
-
Chris Lattner authored
llvm-svn: 25915
-
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
-
Evan Cheng authored
llvm-svn: 25889
-
- Oct 15, 2005
-
-
Nate Begeman authored
fixing a bunch of nasty hackery llvm-svn: 23735
-
- Jul 16, 2005
-
-
Nate Begeman authored
llvm-svn: 22451
-
- 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
llvm-svn: 19694
-
Chris Lattner authored
llvm-svn: 19687
-
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
addition to being three address, LEA's don't set the flags. This fixes 186.crafty. llvm-svn: 19251
-
Chris Lattner authored
branches. llvm-svn: 19247
-
- Aug 01, 2004
-
-
Chris Lattner authored
llvm-svn: 15409
-
- Jul 31, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 15371
-
Chris Lattner authored
llvm-svn: 15365
-
Alkis Evlogimenos authored
llvm-svn: 15364
-
Alkis Evlogimenos authored
llvm-svn: 15363
-