- Aug 15, 2007
-
-
Anton Korobeynikov authored
hard to catch bugs with retaddr lowering llvm-svn: 41104
-
Chris Lattner authored
llvm-svn: 41103
-
Devang Patel authored
llvm-svn: 41096
-
Devang Patel authored
Use dominance frontier to fixup incoming edges of successor blocks not domianted by DeadBB. Use df_iterator to walk and delete basic blocks dominated by DeadBB. llvm-svn: 41095
-
Reid Spencer authored
llvm-svn: 41094
-
Devang Patel authored
llvm-svn: 41093
-
Devang Patel authored
llvm-svn: 41091
-
Devang Patel authored
llvm-svn: 41090
-
Evan Cheng authored
- If the defs of a spilled rematerializable MI are dead after the spill store is deleted, delete the def MI as well. llvm-svn: 41086
-
Evan Cheng authored
Fix for PR1596: AdjustCopiesBackFrom() should conservatively check if any of its sub-registers may overlap with the interval of the copy that's being coalesced. llvm-svn: 41084
-
- Aug 14, 2007
-
-
Evan Cheng authored
If a MI's def is remat as well as spilled, and the store is later deemed dead, mark the def operand as isDead. llvm-svn: 41083
-
Devang Patel authored
llvm-svn: 41082
-
Owen Anderson authored
they're not related to eliminating a load. llvm-svn: 41081
-
Owen Anderson authored
llvm-svn: 41080
-
Owen Anderson authored
llvm-svn: 41078
-
Owen Anderson authored
the function. llvm-svn: 41077
-
Devang Patel authored
llvm-svn: 41075
-
Evan Cheng authored
no more uses within the MBB and the spilled value isn't live out of the MBB. Then it's safe to delete the spill store. llvm-svn: 41069
-
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
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
-
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
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
-
- Aug 12, 2007
-
-
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
-