- Feb 16, 2011
-
-
Chris Lattner authored
llvm-svn: 125681
-
Eli Friedman authored
llvm-svn: 125660
-
Eli Friedman authored
llvm-svn: 125659
-
Eli Friedman authored
llvm-svn: 125658
-
- Feb 06, 2011
-
-
Anders Carlsson authored
llvm-svn: 124989
-
- Feb 02, 2011
-
-
Benjamin Kramer authored
This makes the job of the later optzn passes easier, allowing the vast amount of icmp transforms to chew on it. We transform 840 switches in gcc.c, leading to a 16k byte shrink of the resulting binary on i386-linux. The testcase from README.txt now compiles into decl %edi cmpl $3, %edi sbbl %eax, %eax andl $1, %eax ret llvm-svn: 124724
-
- Jan 31, 2011
-
-
Chris Lattner authored
llvm-svn: 124599
-
- Jan 30, 2011
-
-
Benjamin Kramer authored
Teach DAGCombine to fold fold (sra (trunc (sr x, c1)), c2) -> (trunc (sra x, c1+c2) when c1 equals the amount of bits that are truncated off. This happens all the time when a smul is promoted to a larger type. On x86-64 we now compile "int test(int x) { return x/10; }" into movslq %edi, %rax imulq $1717986919, %rax, %rax movq %rax, %rcx shrq $63, %rcx sarq $34, %rax <- used to be "shrq $32, %rax; sarl $2, %eax" addl %ecx, %eax This fires 96 times in gcc.c on x86-64. llvm-svn: 124559
-
- Jan 24, 2011
-
-
Chris Lattner authored
llvm-svn: 124097
-
Chris Lattner authored
define i32 @foo(i32 %x) nounwind readnone ssp { entry: %tobool = icmp eq i32 %x, 0 %tmp5 = select i1 %tobool, i32 2, i32 1 ret i32 %tmp5 } llvm-svn: 124091
-
- Jan 23, 2011
-
-
Anders Carlsson authored
llvm-svn: 124082
-
- Jan 18, 2011
-
-
Chris Lattner authored
llvm-svn: 123752
-
- Jan 16, 2011
-
-
Anders Carlsson authored
llvm-svn: 123597
-
Chris Lattner authored
llvm-svn: 123572
-
Chandler Carruth authored
llvm-svn: 123556
-
- Jan 13, 2011
-
-
Chris Lattner authored
llvm-svn: 123406
-
Chris Lattner authored
llvm-svn: 123405
-
- Jan 11, 2011
-
-
Chandler Carruth authored
point values to their integer representation through the SSE intrinsic calls. This is the last part of a README.txt entry for which I have real world examples. llvm-svn: 123206
-
Owen Anderson authored
Fix a random missed optimization by making InstCombine more aggressive when determining which bits are demanded by a comparison against a constant. llvm-svn: 123203
-
- Jan 10, 2011
-
-
Chris Lattner authored
operation in some cases. llvm-svn: 123190
-
Chris Lattner authored
llvm-svn: 123145
-
Chris Lattner authored
llvm-svn: 123142
-
Chris Lattner authored
llvm-svn: 123141
-
- Jan 09, 2011
-
-
Chandler Carruth authored
perform rounding other than truncation in the IR. Common C code for this turns into really an LLVM intrinsic call that blocks a lot of further optimizations. llvm-svn: 123135
-
Chandler Carruth authored
llvm-svn: 123126
-
Chandler Carruth authored
llvm-svn: 123116
-
Chandler Carruth authored
Also, switch to a more clear 'sink' function with its declaration to avoid any confusion about 'g'. Thanks for the suggestion Frits. llvm-svn: 123113
-
Chandler Carruth authored
llvm-svn: 123112
-
Chandler Carruth authored
llvm-svn: 123111
-
Chandler Carruth authored
llvm-svn: 123103
-
- Jan 07, 2011
-
-
Benjamin Kramer authored
llvm-svn: 123030
-
- Jan 06, 2011
-
-
Chris Lattner authored
llvm-svn: 122978
-
Benjamin Kramer authored
llvm-svn: 122966
-
Benjamin Kramer authored
llvm-svn: 122960
-
Benjamin Kramer authored
InstCombine: If we call llvm.objectsize on a malloc call we can replace it with the size passed to malloc. llvm-svn: 122959
-
Chris Lattner authored
llvm-svn: 122954
-
Chris Lattner authored
llvm-svn: 122953
-
- Jan 02, 2011
-
-
Chris Lattner authored
llvm-svn: 122700
-
Chris Lattner authored
header for now for memset/memcpy opportunities. It turns out that loop-rotate is successfully rotating loops, but *DOESN'T MERGE THE BLOCKS*, turning "for loops" into 2 basic block loops that loop-idiom was ignoring. With this fix, we form many *many* more memcpy and memsets than before, including on the "history" loops in the viterbi benchmark, which look like this: for (j=0; j<MAX_history; ++j) { history_new[i][j+1] = history[2*i][j]; } Transforming these loops into memcpy's speeds up the viterbi benchmark from 11.98s to 3.55s on my machine. Woo. llvm-svn: 122685
-
- Jan 01, 2011
-
-
Chris Lattner authored
llvm-svn: 122676
-