- Sep 28, 2006
-
-
Chris Lattner authored
llvm-svn: 30634
-
Bill Wendling authored
has disappeared. llvm-svn: 30633
-
- Sep 27, 2006
-
-
Chris Lattner authored
llvm-svn: 30628
-
Bill Wendling authored
a function, do it up front in linear time (going through all of the instructions once). We create a map out of them. Then it's no problem to use the information in it during elimination... llvm-svn: 30624
-
Chris Lattner authored
llvm-svn: 30620
-
Chris Lattner authored
character, and ${:uid} which expands to a unique ID for the MachineInstr. More can be added if/when they are needed. llvm-svn: 30619
-
Evan Cheng authored
llvm-svn: 30616
-
- Sep 26, 2006
-
-
Andrew Lenharth authored
llvm-svn: 30615
-
Jim Laskey authored
llvm-svn: 30613
-
Jim Laskey authored
llvm-svn: 30611
-
Jim Laskey authored
llvm-svn: 30610
-
Jim Laskey authored
llvm-svn: 30609
-
Chris Lattner authored
llvm-svn: 30606
-
Chris Lattner authored
because they have an aggressive linker that does dead code stripping. llvm-svn: 30604
-
- Sep 25, 2006
-
-
Jim Laskey authored
llvm-svn: 30601
-
Jim Laskey authored
llvm-svn: 30600
-
Jim Laskey authored
llvm-svn: 30597
-
- Sep 24, 2006
-
-
Andrew Lenharth authored
llvm-svn: 30593
-
Evan Cheng authored
llvm-svn: 30590
-
- Sep 21, 2006
-
-
Evan Cheng authored
llvm-svn: 30573
-
Jim Laskey authored
llvm-svn: 30570
-
Jim Laskey authored
llvm-svn: 30568
-
Chris Lattner authored
llvm-svn: 30561
-
Chris Lattner authored
llvm-svn: 30560
-
Chris Lattner authored
int %test(ulong *%tmp) { %tmp = load ulong* %tmp ; <ulong> [#uses=1] %tmp.mask = shr ulong %tmp, ubyte 50 ; <ulong> [#uses=1] %tmp.mask = cast ulong %tmp.mask to ubyte %tmp2 = and ubyte %tmp.mask, 3 ; <ubyte> [#uses=1] %tmp2 = cast ubyte %tmp2 to int ; <int> [#uses=1] ret int %tmp2 } to: _test: movl 4(%esp), %eax movl 4(%eax), %eax shrl $18, %eax andl $3, %eax ret instead of: _test: movl 4(%esp), %eax movl 4(%eax), %eax shrl $18, %eax # TRUNCATE movb %al, %al andb $3, %al movzbl %al, %eax ret llvm-svn: 30558
-
Chris Lattner authored
the src/dst are not the same size. This catches things like "truncate 32-bit X to 8 bits, then zext to 16", which happens a bit on X86. llvm-svn: 30557
-
- Sep 20, 2006
-
-
Chris Lattner authored
int test3(int a, int b) { return (a < 0) ? a : 0; } to: _test3: srawi r2, r3, 31 and r3, r2, r3 blr instead of: _test3: cmpwi cr0, r3, 1 li r2, 0 blt cr0, LBB2_2 ;entry LBB2_1: ;entry mr r3, r2 LBB2_2: ;entry blr This implements: PowerPC/select_lt0.ll:seli32_a_a llvm-svn: 30517
-
Chris Lattner authored
llvm-svn: 30514
-
Chris Lattner authored
1. teach SimplifySetCC that '(srl (ctlz x), 5) == 0' is really x != 0. 2. Teach visitSELECT_CC to use SimplifySetCC instead of calling it and ignoring the result. This allows us to compile: bool %test(ulong %x) { %tmp = setlt ulong %x, 4294967296 ret bool %tmp } to: _test: cntlzw r2, r3 cmplwi cr0, r3, 1 srwi r2, r2, 5 li r3, 0 beq cr0, LBB1_2 ; LBB1_1: ; mr r3, r2 LBB1_2: ; blr instead of: _test: addi r2, r3, -1 cntlzw r2, r2 cntlzw r3, r3 srwi r2, r2, 5 cmplwi cr0, r2, 0 srwi r2, r3, 5 li r3, 0 bne cr0, LBB1_2 ; LBB1_1: ; mr r3, r2 LBB1_2: ; blr This isn't wonderful, but it's an improvement. llvm-svn: 30513
-
Chris Lattner authored
shift amount is one or zero. For example, for: long long foo1(long long X, int C) { return X << (C|32); } long long foo2(long long X, int C) { return X << (C&~32); } we get: _foo1: movb $31, %cl movl 4(%esp), %edx andb 12(%esp), %cl shll %cl, %edx xorl %eax, %eax ret _foo2: movb $223, %cl movl 4(%esp), %eax movl 8(%esp), %edx andb 12(%esp), %cl shldl %cl, %eax, %edx shll %cl, %eax ret instead of: _foo1: subl $4, %esp movl %ebx, (%esp) movb $32, %bl movl 8(%esp), %eax movl 12(%esp), %edx movb %bl, %cl orb 16(%esp), %cl shldl %cl, %eax, %edx shll %cl, %eax xorl %ecx, %ecx testb %bl, %bl cmovne %eax, %edx cmovne %ecx, %eax movl (%esp), %ebx addl $4, %esp ret _foo2: subl $4, %esp movl %ebx, (%esp) movb $223, %cl movl 8(%esp), %eax movl 12(%esp), %edx andb 16(%esp), %cl shldl %cl, %eax, %edx shll %cl, %eax xorl %ecx, %ecx xorb %bl, %bl testb %bl, %bl cmovne %eax, %edx cmovne %ecx, %eax movl (%esp), %ebx addl $4, %esp ret llvm-svn: 30506
-
- Sep 19, 2006
-
-
Chris Lattner authored
allow it to go into an infinite loop, filling up the disk! llvm-svn: 30494
-
Chris Lattner authored
llvm-svn: 30478
-
Chris Lattner authored
llvm-svn: 30477
-
Evan Cheng authored
llvm-svn: 30474
-
- Sep 18, 2006
-
-
Evan Cheng authored
llvm-svn: 30470
-
Andrew Lenharth authored
llvm-svn: 30462
-
Andrew Lenharth authored
llvm-svn: 30461
-
Jim Laskey authored
llvm-svn: 30460
-
- Sep 16, 2006
-
-
Chris Lattner authored
llvm-svn: 30407
-
Chris Lattner authored
llvm-svn: 30403
-