- Jun 01, 2006
-
-
Evan Cheng authored
llvm-svn: 28603
-
- May 31, 2006
-
-
Evan Cheng authored
llvm-svn: 28594
-
Evan Cheng authored
llvm-svn: 28582
-
Evan Cheng authored
llvm-svn: 28581
-
Evan Cheng authored
llvm-svn: 28579
-
Evan Cheng authored
llvm-svn: 28578
-
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
-
Evan Cheng authored
llvm-svn: 28564
-
Evan Cheng authored
llvm-svn: 28551
-
Evan Cheng authored
Fold c2 in (x << c1) | c2 where (c2 < c1) e.g. int test(int x) { return (x << 3) + 7; } This can be codegen'd as: leal 7(,%eax,8), %eax llvm-svn: 28550
-
Evan Cheng authored
llvm-svn: 28548
-
- May 27, 2006
-
-
Evan Cheng authored
RET chain, value1, sign1, value2, sign2, ... llvm-svn: 28510
-
- May 26, 2006
-
-
Evan Cheng authored
llvm-svn: 28505
-
Evan Cheng authored
vector arguments, not three. llvm-svn: 28504
-
Evan Cheng authored
llvm-svn: 28499
-
Evan Cheng authored
llvm-svn: 28498
-
Evan Cheng authored
llvm-svn: 28497
-
Evan Cheng authored
llvm-svn: 28496
-
Evan Cheng authored
llvm-svn: 28493
-
Evan Cheng authored
llvm-svn: 28491
-
Evan Cheng authored
llvm-svn: 28488
-
Evan Cheng authored
llvm-svn: 28483
-
Evan Cheng authored
llvm-svn: 28481
-
- May 25, 2006
-
-
Evan Cheng authored
Patch contributed by Anton Korobeynikov! llvm-svn: 28480
-
Evan Cheng authored
llvm-svn: 28475
-
Evan Cheng authored
the copyto/fromregs instead of making the X86ISD::CALL selection code create them. llvm-svn: 28463
-
Evan Cheng authored
llvm-svn: 28459
-
- May 24, 2006
-
-
Evan Cheng authored
non-deterministic behavior. llvm-svn: 28454
-
Chris Lattner authored
by Anton Korobeynikov! This is a step towards closing PR786. llvm-svn: 28447
-
Chris Lattner authored
llvm-svn: 28441
-
- May 23, 2006
-
-
Evan Cheng authored
llvm-svn: 28440
-
Evan Cheng authored
FORMAL_ARGUMENTS nodes include a token operand. llvm-svn: 28439
-
Chris Lattner authored
return argument pops the hidden struct pointer if present, not the caller. For example, in this testcase: struct X { int D, E, F, G; }; struct X bar() { struct X a; a.D = 0; a.E = 1; a.F = 2; a.G = 3; return a; } void foo(struct X *P) { *P = bar(); } We used to emit: _foo: subl $28, %esp movl 32(%esp), %eax movl %eax, (%esp) call _bar addl $28, %esp ret _bar: movl 4(%esp), %eax movl $0, (%eax) movl $1, 4(%eax) movl $2, 8(%eax) movl $3, 12(%eax) ret This is correct on Linux/X86 but not Darwin/X86. With this patch, we now emit: _foo: subl $28, %esp movl 32(%esp), %eax movl %eax, (%esp) call _bar *** addl $24, %esp ret _bar: movl 4(%esp), %eax movl $0, (%eax) movl $1, 4(%eax) movl $2, 8(%eax) movl $3, 12(%eax) *** ret $4 For the record, GCC emits (which is functionally equivalent to our new code): _bar: movl 4(%esp), %eax movl $3, 12(%eax) movl $2, 8(%eax) movl $1, 4(%eax) movl $0, (%eax) ret $4 _foo: pushl %esi subl $40, %esp movl 48(%esp), %esi leal 16(%esp), %eax movl %eax, (%esp) call _bar subl $4, %esp movl 16(%esp), %eax movl %eax, (%esi) movl 20(%esp), %eax movl %eax, 4(%esi) movl 24(%esp), %eax movl %eax, 8(%esi) movl 28(%esp), %eax movl %eax, 12(%esi) addl $40, %esp popl %esi ret This fixes SingleSource/Benchmarks/CoyoteBench/fftbench with LLC and the JIT, and fixes the X86-backend portion of PR729. The CBE still needs to be updated. llvm-svn: 28438
-
- May 22, 2006
-
-
Evan Cheng authored
llvm-svn: 28427
-
- May 21, 2006
-
-
Evan Cheng authored
llvm-svn: 28425
-
Owen Anderson authored
llvm-svn: 28423
-