- Nov 29, 2009
-
-
Chris Lattner authored
llvm-svn: 90046
-
- Nov 28, 2009
-
-
Nick Lewycky authored
PR5574. llvm-svn: 90045
-
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
-
Chris Lattner authored
inserted instructions. No functionality change until someone starts using it. llvm-svn: 90039
-
Chris Lattner authored
way that getUnderlyingObject does it. This fixes the 'DecomposeGEPExpression and getUnderlyingObject disagree!' assertion on sqlite3. llvm-svn: 90038
-
Chris Lattner authored
if we don't have an address expression available in a predecessor, then model this as the value being clobbered at the end of the pred block instead of being modeled as a complete phi translation failure. This is important for PRE of loads because we want to see that the load is available in all but this predecessor, and complete phi translation failure results in not getting any information about predecessors. This doesn't do anything until I renable code insertion since PRE now sees that it is available in all but one predecessors, but can't insert the addressing in the predecessor that is missing it to eliminate the redundancy. llvm-svn: 90037
-
- Nov 27, 2009
-
-
Chris Lattner authored
to inform GVN about the newly inserted values. This fixes PR5631. llvm-svn: 90022
-
Chris Lattner authored
fixes PR5630 and sets the stage for the next phase of goodness (testcase pending). llvm-svn: 90019
-
Chris Lattner authored
llvm-svn: 90016
-
Nick Lewycky authored
for pointing this out. llvm-svn: 90015
-
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
llvm-svn: 90011
-
Chris Lattner authored
llvm-svn: 90009
-
Chris Lattner authored
the FIXME I added yesterday to be implemented. llvm-svn: 90008
-
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: 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
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
-
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
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
-