- Feb 21, 2011
-
-
Chris Lattner authored
llvm-svn: 126103
-
Chris Lattner authored
llvm-svn: 126102
-
Chris Lattner authored
llvm-svn: 126101
-
Cameron Zwarich authored
on Core 2 and Nehalem, so the code we generate is better than GCC's here. llvm-svn: 126100
-
Joerg Sonnenberger authored
independent vectors. llvm-svn: 126099
-
Cameron Zwarich authored
of a constant had a minor typo introduced when copying it from the book, which caused it to favor negative approximations over positive approximations in many cases. Positive approximations require fewer operations beyond the multiplication. In the case of division by 3, we still generate code that is a single instruction larger than GCC's code. llvm-svn: 126097
-
- Feb 20, 2011
-
-
Rafael Espindola authored
PR9245. llvm-svn: 126091
-
Nick Lewycky authored
test for that. With this change, test/CodeGen/X86/codegen-dce.ll no longer finds any instructions to DCE, so delete the test. Also renamed J and JP to I and IP in RecursivelyDeleteDeadPHINode. llvm-svn: 126088
-
Benjamin Kramer authored
llvm-svn: 126082
-
Benjamin Kramer authored
We usually catch this kind of optimization through InstSimplify's distributive magic, but or doesn't distribute over xor in general. "A | ~(A | B) -> A | ~B" hits 24 times on gcc.c. llvm-svn: 126081
-
Nadav Rotem authored
The DAGCombiner folds the zext into complex load instructions. This patch prevents this optimization on vectors since none of the supported targets knows how to perform load+vector_zext in one instruction. llvm-svn: 126080
-
Nick Lewycky authored
by Andrew Clinton! llvm-svn: 126077
-
Nick Lewycky authored
one Value set. This is faster because we only need to use the set when there isn't already an entry in the map. No functionality change! llvm-svn: 126076
-
Eric Christopher authored
since one needs to be a register operand. Just use movss instead of forcing an operand into a register. Fixes PR9239 llvm-svn: 126072
-
Oscar Fuentes authored
of testing for its presence at cmake time. This way the build automatically regenerates the makefiles when a svn update brings in a new sublibrary. llvm-svn: 126068
-
- Feb 19, 2011
-
-
Eli Friedman authored
the instruction passed in. Make sure to account for this correctly, instead of looping infinitely. llvm-svn: 126058
-
Eli Friedman authored
llvm-svn: 126054
-
Chris Lattner authored
This is reasonable to do since all bt-mem forms do the same thing. llvm-svn: 126047
-
Chris Lattner authored
constant, including globals. This makes us generate much more "pretty" pattern globals as well because it doesn't break it down to an array of bytes all the time. This enables us to handle stores of relocatable globals. This kicks in about 48 times in 254.gap, giving us stuff like this: @.memset_pattern40 = internal constant [2 x %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)*] [%struct.TypHeader* (%struct.TypHeader*, %struct .TypHeader*)* @IsFalse, %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)* @IsFalse], align 16 ... call void @memset_pattern16(i8* %scevgep5859, i8* bitcast ([2 x %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)*]* @.memset_pattern40 to i8* ), i64 %tmp75) nounwind llvm-svn: 126044
-
Chris Lattner authored
them as splat values. llvm-svn: 126041
-
rdar://9009151Chris Lattner authored
unsplatable values into memset_pattern16 when it is available (recent darwins). This transforms lots of strided loop stores of ints for example, like 5 in vpr: Formed memset: call void @memset_pattern16(i8* %4, i8* getelementptr inbounds ([16 x i8]* @.memset_pattern9, i32 0, i32 0), i64 %tmp25) from store to: {%3,+,4}<%11> at: store i32 3, i32* %scevgep, align 4, !tbaa !4 llvm-svn: 126040
-
Eric Christopher authored
llvm-svn: 126018
-
Devang Patel authored
Do not emit empty DW_TAG_lexical_block DIEs. In one test case, size of debug info reduced by almost 7%. llvm-svn: 126009
-
Jakob Stoklund Olesen authored
llvm-svn: 126005
-
Joerg Sonnenberger authored
llvm-svn: 126004
-
Jakob Stoklund Olesen authored
llvm-svn: 126003
-
Jakob Stoklund Olesen authored
llvm-svn: 126002
-
Jakob Stoklund Olesen authored
llvm-svn: 126001
-
Devang Patel authored
llvm-svn: 125987
-
Devang Patel authored
llvm-svn: 125986
-
- Feb 18, 2011
-
-
Devang Patel authored
Do not lose debug info of an inlined function argument even if the argument is only used through GEPs. This time with a fix that avoids using invalidated DenseMap iterator. llvm-svn: 125984
-
Jakob Stoklund Olesen authored
All new virtual registers created for spilling or splitting point back to their original. llvm-svn: 125980
-
Chris Lattner authored
llvm-svn: 125978
-
Chris Lattner authored
to hack on memset, memcpy etc. llvm-svn: 125974
-
Oscar Fuentes authored
llvm-svn: 125968
-
Jakob Stoklund Olesen authored
The rewriter works almost identically to -rewriter=trivial, except it also eliminates any identity copies. This makes the new register allocators independent of VirtRegRewriter.cpp which will be going away at the same time as RegAllocLinearScan. llvm-svn: 125967
-
Chris Lattner authored
query about available library functions. For now this just has memset_pattern16, which exists on darwin, but it can be extended for a bunch of other things in the future. llvm-svn: 125965
-
Bill Wendling authored
llvm-svn: 125960
-
Bruno Cardoso Lopes authored
llvm-svn: 125949
-
Bruno Cardoso Lopes authored
testcases for the disassembler to make sure it still works for "msr". llvm-svn: 125948
-