- Aug 14, 2007
-
-
Evan Cheng authored
llvm-svn: 41068
-
Evan Cheng authored
spilled value is available for reuse. llvm-svn: 41067
-
Evan Cheng authored
llvm-svn: 41064
-
Devang Patel authored
llvm-svn: 41063
-
Devang Patel authored
llvm-svn: 41062
-
Evan Cheng authored
llvm-svn: 41061
-
Evan Cheng authored
Re-implement trivial rematerialization. This allows def MIs whose live intervals that are coalesced to be rematerialized. llvm-svn: 41060
-
Evan Cheng authored
llvm-svn: 41059
-
Ted Kremenek authored
getStrData() are not null-terminated, and the lengths of these strings should be determined using getByteLength(). llvm-svn: 41055
-
Devang Patel authored
llvm-svn: 41054
-
Devang Patel authored
llvm-svn: 41053
-
Devang Patel authored
llvm-svn: 41052
-
- Aug 13, 2007
-
-
Devang Patel authored
llvm-svn: 41051
-
Chris Lattner authored
llvm-svn: 41050
-
Dan Gohman authored
see if the base register is already occupied before assuming it can be used. This fixes bogus code generation in the accompanying testcase. llvm-svn: 41049
-
Chris Lattner authored
llvm-svn: 41048
-
Chris Lattner authored
llvm-svn: 41047
-
Chris Lattner authored
Into: inttoptr (i64 0 to i8*) -> null This occurs in the example in PR1602. With this fixed, we now compile the example in PR1602 into fully "devirtualized" code: define void @_Z1g1S(%struct.S* noalias %s) { entry: %tmp131415 = getelementptr %struct.S* %s, i32 0, i32 0 ; <i32 (...)***> [#uses=1] %tmp16 = load i32 (...)*** %tmp131415, align 4 ; <i32 (...)**> [#uses=1] %tmp26277 = load i32 (...)** %tmp16 ; <i32 (...)*> [#uses=1] %tmp2829 = bitcast i32 (...)* %tmp26277 to void (%struct.S*)* ; <void (%struct.S*)*> [#uses=1] tail call void %tmp2829( %struct.S* %s ) ret void } This still has the vtable dispatch (as required) but does not have any pointer to method cruft left. llvm-svn: 41046
-
Evan Cheng authored
llvm-svn: 41043
-
Reid Spencer authored
the list of link time passes to be run, just as for opt, with the -debug-pass=Arguments option. llvm-svn: 41040
-
Reid Spencer authored
llvm-svn: 41039
-
- Aug 12, 2007
-
-
Chris Lattner authored
llvm-svn: 41034
-
Reid Spencer authored
better, gives the compiler a chance to validate the cast and reduces warnings if the user turns on -Wold-style-cast option. llvm-svn: 41033
-
Devang Patel authored
llvm-svn: 41029
-
Reid Spencer authored
llvm-svn: 41028
-
Evan Cheng authored
llvm-svn: 41024
-
Chris Lattner authored
us to fold the entry block of PR1602 to false instead of: br i1 icmp eq (i32 and (i32 ptrtoint (void (%struct.S*)* inttoptr (i64 1 to void (%struct.S*)*) to i32), i32 1), i32 0), label %cond_next, label %cond_true llvm-svn: 41023
-
- Aug 11, 2007
-
-
Chris Lattner authored
have complex pointer manipulation going on. This allows us to compile stuff like this: __m128i foo(__m128i x){ static const unsigned int c_0[4] = { 0, 0, 0, 0 }; __m128i v_Zero = _mm_loadu_si128((__m128i*)c_0); x = _mm_unpacklo_epi8(x, v_Zero); return x; } into: _foo: xorps %xmm1, %xmm1 punpcklbw %xmm1, %xmm0 ret llvm-svn: 41022
-
Chris Lattner authored
llvm-svn: 41021
-
Chris Lattner authored
able to 3-addressify away stuff like this: movl %ecx, %eax decl %eax llvm-svn: 41020
-
Reid Spencer authored
the pass arguments that it supports. llvm-svn: 41019
-
Reid Spencer authored
llvm-svn: 41018
-
Bill Wendling authored
Make a 'memop' pattern just for them. llvm-svn: 41017
-
Evan Cheng authored
llvm-svn: 41016
-
Chris Lattner authored
llvm-svn: 41015
-
Chris Lattner authored
aggregate value and scalar expression computation are very different, this gets them away from each other. This causes a temporary regression on some complex number examples. llvm-svn: 41014
-
Christopher Lamb authored
llvm-svn: 41013
-
Christopher Lamb authored
llvm-svn: 41012
-
- Aug 10, 2007
-
-
Chris Lattner authored
llvm-svn: 41011
-
Christopher Lamb authored
Increase efficiency of sign_extend_inreg by using subregisters for truncation. As the README suggests sign_extend_subreg is selected to (sext(trunc)). llvm-svn: 41010
-