- Dec 06, 2009
-
-
Chris Lattner authored
llvm-svn: 90691
-
- Dec 04, 2009
-
-
Chris Lattner authored
that I'm working on. This is manifesting as a miscompile of 255.vortex on some targets. No check lines yet because it fails. llvm-svn: 90520
-
- Dec 03, 2009
-
-
Owen Anderson authored
llvm-svn: 90408
-
Chris Lattner authored
llvm-svn: 90380
-
- Dec 02, 2009
-
-
Owen Anderson authored
per Chris' comments. Adjust testcases to match. llvm-svn: 90304
-
- Dec 01, 2009
-
-
Chris Lattner authored
llvm-svn: 90216
-
Chris Lattner authored
llvm-svn: 90212
-
- Nov 30, 2009
-
-
Nick Lewycky authored
llvm-svn: 90112
-
- Nov 29, 2009
-
-
Chris Lattner authored
llvm-svn: 90049
-
Chris Lattner authored
void test(int N, double* G) { long j; for (j = 1; j < N - 1; j++) G[j] = G[j] + G[j+1] + G[j-1]; } which we now compile to one load in the loop: LBB1_2: ## %bb movsd 16(%rsi,%rax,8), %xmm2 incq %rdx addsd %xmm2, %xmm1 addsd %xmm1, %xmm0 movapd %xmm2, %xmm1 movsd %xmm0, 8(%rsi,%rax,8) incq %rax cmpq %rcx, %rax jne LBB1_2 instead of: LBB1_2: ## %bb movsd 8(%rsi,%rax,8), %xmm0 addsd 16(%rsi,%rax,8), %xmm0 addsd (%rsi,%rax,8), %xmm0 movsd %xmm0, 8(%rsi,%rax,8) incq %rax cmpq %rcx, %rax jne LBB1_2 llvm-svn: 90048
-
Chris Lattner authored
void test9(int N, double* G) { long j; for (j = 1; j < N - 1; j++) G[j+1] = G[j] + G[j+1]; } llvm-svn: 90047
-
- Nov 28, 2009
-
-
Chris Lattner authored
handle cases like this: void test(int N, double* G) { long j; for (j = 1; j < N - 1; j++) G[j+1] = G[j] + G[j+1]; } where G[1] isn't live into the loop. llvm-svn: 90041
-
- Nov 27, 2009
-
-
Chris Lattner authored
to inform GVN about the newly inserted values. This fixes PR5631. llvm-svn: 90022
-
Chris Lattner authored
llvm-svn: 90014
-
Chris Lattner authored
translation of add with immediate. This allows us to optimize this function: void test(int N, double* G) { long j; G[1] = 1; for (j = 1; j < N - 1; j++) G[j+1] = G[j] + G[j+1]; } to only do one load every iteration of the loop. llvm-svn: 90013
-
Chris Lattner authored
add two simple test cases we now optimize (to one load in the loop each) and one we don't (corresponding to the fixme I added yesterday). llvm-svn: 90012
-
Chris Lattner authored
where it is not available. It's unclear how to get this inserted computation into GVN's scalar availability sets, Owen, help? :) llvm-svn: 89997
-
Chris Lattner authored
llvm-svn: 89996
-
Chris Lattner authored
llvm-svn: 89995
-
Chris Lattner authored
llvm-svn: 89994
-
Chris Lattner authored
llvm-svn: 89993
-
Chris Lattner authored
translation done by memdep, and reenable gep translation again. llvm-svn: 89992
-
Chris Lattner authored
llvm-svn: 89991
-
Chris Lattner authored
llvm-svn: 89990
-
Chris Lattner authored
llvm-svn: 89985
-
Chris Lattner authored
This allows us to compile the example from PR5313 into: LBB1_2: ## %bb incl %ecx movb %al, (%rsi) movslq %ecx, %rax movb (%rdi,%rax), %al testb %al, %al jne LBB1_2 instead of: LBB1_2: ## %bb movslq %eax, %rcx incl %eax movb (%rdi,%rcx), %cl movb %cl, (%rsi) movslq %eax, %rcx cmpb $0, (%rdi,%rcx) jne LBB1_2 llvm-svn: 89981
-
Chris Lattner authored
come. llvm-svn: 89979
-
Chris Lattner authored
the example in GCC PR16799 to: LBB1_2: ## %bb1 movl %eax, %eax subq %rax, %rdi movq %rdi, (%rcx) movl (%rdi), %eax testl %eax, %eax je LBB1_2 instead of: LBB1_2: ## %bb1 movl (%rdi), %ecx subq %rcx, %rdi movq %rdi, (%rax) cmpl $0, (%rdi) je LBB1_2 llvm-svn: 89978
-
Chris Lattner authored
llvm-svn: 89977
-
- Nov 20, 2009
-
-
Benjamin Kramer authored
on ppc buildbot. llvm-svn: 89452
-
- Nov 19, 2009
-
-
Dan Gohman authored
if it is not ultimately captured. Teach BasicAliasAnalysis that a local object address which does not escape and is never stored does not alias with a value resulting from a load. llvm-svn: 89398
-
- Nov 09, 2009
-
-
Dan Gohman authored
GVN to be more aggressive. Patch by Hans Wennborg! (with a comment added by me) llvm-svn: 86582
-
- Oct 28, 2009
-
-
Owen Anderson authored
purposes for GVN/DSE. llvm-svn: 85383
-
Owen Anderson authored
to depend on Ref and ModRef calls within the invariant region. llvm-svn: 85380
-
Owen Anderson authored
purely local for now. llvm-svn: 85378
-
- Oct 16, 2009
-
-
Duncan Sands authored
themselves are not marked readonly, but only the called functions. llvm-svn: 84253
-
- Oct 13, 2009
-
-
Victor Hernandez authored
Memory dependence analysis was incorrectly stopping to scan for stores to a pointer at bitcast uses of a malloc call. It should continue scanning until the malloc call, and this patch fixes that. llvm-svn: 83931
-
- Oct 11, 2009
-
-
Chris Lattner authored
from GVN, this also speeds it up, inserts fewer PHI nodes (see the testcase) and allows it to remove more loads (due to fewer PHI nodes standing in the way). llvm-svn: 83746
-
- Sep 21, 2009
-
-
Chris Lattner authored
arrays and structs, which cannot be bitcast to integers. llvm-svn: 82460
-
Chris Lattner authored
This doesn't kick in too much because of phi translation issues, but this can be resolved in the future. llvm-svn: 82447
-