- Aug 15, 2007
-
-
Evan Cheng authored
If the source of a move is in spill slot, the reload may be folded to essentially a load from stack slot. It's ok to mark the stack slot value as available for reuse. But it should not be clobbered since the destination of the move is live. llvm-svn: 41109
-
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
-