- Nov 27, 2009
-
-
Chris Lattner authored
array indexes. The "complex" case of SRoA still handles them, and correctly. This fixes a weirdness where we'd correctly avoid transforming A[0][42] if the 42 was too large, but we'd only do it if it was one gep, not two separate ones. llvm-svn: 90007
-
Chris Lattner authored
llvm-svn: 90006
-
Duncan Sands authored
the problem only shows for msp430 and pic16 which is why it specifies them using -march. But it is wrong to put such tests in CodeGen/Generic, since not everyone builds these targets. Put a copy of the test in each of the target test directories. llvm-svn: 90005
-
Duncan Sands authored
llvm-svn: 90004
-
Duncan Sands authored
llvm-svn: 90003
-
Chris Lattner authored
llvm-svn: 90002
-
Chris Lattner authored
llvm-svn: 90001
-
Chris Lattner authored
fixes a crash analyzing consumer-lame, which had an "%X = add %X, 1" in unreachable code. llvm-svn: 90000
-
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
llvm-svn: 89982
-
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
SimplifyGEPInst method in InstructionSimplify.h. No functionality change. llvm-svn: 89980
-
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
-
Nick Lewycky authored
llvm-svn: 89976
-
Chris Lattner authored
llvm-svn: 89975
-
- Nov 26, 2009
-
-
Nick Lewycky authored
llvm-svn: 89974
-
Chris Lattner authored
remove in LLVM 3.0 llvm-svn: 89973
-
Chris Lattner authored
llvm-svn: 89972
-
Chris Lattner authored
generates store to undef and some generates store to null as the idiom for undefined behavior. Since simplifycfg zaps both, don't remove the undefined behavior in instcombine. llvm-svn: 89971
-
Chris Lattner authored
by Alastair Lynn. llvm-svn: 89970
-
Bob Wilson authored
llvm-svn: 89968
-
Chris Lattner authored
first expression as P+4+4*i which we considered to possibly alias P+4*j. Now we correctly analyze the former one as P+1+4*i. @test10 is a sanity test that verfies that we know that P+4+4*i != P+4*i. llvm-svn: 89960
-
Chris Lattner authored
previously already handled it at -m32 because there were no i32->i64 extensions for addressing. llvm-svn: 89959
-
Chris Lattner authored
llvm-svn: 89958
-
Chris Lattner authored
llvm-svn: 89957
-
Chris Lattner authored
llvm-svn: 89956
-
Chris Lattner authored
llvm-svn: 89955
-
Chris Lattner authored
to exercise this though. llvm-svn: 89954
-
Chris Lattner authored
only missing the one form (in this testcase). Dan, do you consider this example to be important? llvm-svn: 89953
-
Chris Lattner authored
allows us to compile the example in readme.txt into: LBB1_1: ## %bb movl 4(%rdx,%rax), %ecx movl %ecx, %esi imull (%rdx,%rax), %esi imull %esi, %ecx movl %esi, 8(%rdx,%rax) imull %ecx, %esi movl %ecx, 12(%rdx,%rax) movl %esi, 16(%rdx,%rax) imull %ecx, %esi movl %esi, 20(%rdx,%rax) addq $16, %rax cmpq $4000, %rax jne LBB1_1 instead of: LBB1_1: movl (%rdx,%rax), %ecx imull 4(%rdx,%rax), %ecx movl %ecx, 8(%rdx,%rax) imull 4(%rdx,%rax), %ecx movl %ecx, 12(%rdx,%rax) imull 8(%rdx,%rax), %ecx movl %ecx, 16(%rdx,%rax) imull 12(%rdx,%rax), %ecx movl %ecx, 20(%rdx,%rax) addq $16, %rax cmpq $4000, %rax jne LBB1_1 GCC (4.2) doesn't seem to be able to eliminate the loads in this testcase either, it generates: L2: movl (%rdx), %eax imull 4(%rdx), %eax movl %eax, 8(%rdx) imull 4(%rdx), %eax movl %eax, 12(%rdx) imull 8(%rdx), %eax movl %eax, 16(%rdx) imull 12(%rdx), %eax movl %eax, 20(%rdx) addl $4, %ecx addq $16, %rdx cmpl $1002, %ecx jne L2 llvm-svn: 89952
-