| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
what they're supposed to be before using them.
llvm-svn: 41130
|
| |
|
|
| |
llvm-svn: 41129
|
| |
|
|
| |
llvm-svn: 41128
|
| |
|
|
|
|
| |
time performance win in most cases.
llvm-svn: 41126
|
| |
|
|
|
|
|
|
|
|
|
| |
two's complement bignum arithmetic. They could be used to
implement much of APInt, but the idea is they are enough to
implement APFloat as well, which the current APInt interface
is not suited for.
Patch by Neil Booth!
llvm-svn: 41124
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
1. Eliminate redundant error messages. LinkInFile and LinkInArchive
already call the error() method in each case so there's no use
telling the user again that an item couldn't be linked in.
2. Improve the formatting of error messages (separating content).
3. Change the wording for the warning about unrecognized files. Make
it clear that the file is being ignored.
llvm-svn: 41121
|
| |
|
|
|
|
| |
to turn off remat for debugging.
llvm-svn: 41118
|
| |
|
|
|
|
| |
reported to the end user.
llvm-svn: 41117
|
| |
|
|
|
|
| |
Fix PR1287.
llvm-svn: 41112
|
| |
|
|
| |
llvm-svn: 41111
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
hard to catch bugs with retaddr lowering
llvm-svn: 41104
|
| |
|
|
| |
llvm-svn: 41103
|
| |
|
|
| |
llvm-svn: 41096
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 41094
|
| |
|
|
| |
llvm-svn: 41093
|
| |
|
|
| |
llvm-svn: 41091
|
| |
|
|
| |
llvm-svn: 41090
|
| |
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
| |
its sub-registers may overlap with the interval of the copy that's being coalesced.
llvm-svn: 41084
|
| |
|
|
|
|
| |
dead, mark the def operand as isDead.
llvm-svn: 41083
|
| |
|
|
| |
llvm-svn: 41082
|
| |
|
|
|
|
| |
they're not related to eliminating a load.
llvm-svn: 41081
|
| |
|
|
| |
llvm-svn: 41080
|
| |
|
|
| |
llvm-svn: 41078
|
| |
|
|
|
|
| |
the function.
llvm-svn: 41077
|
| |
|
|
| |
llvm-svn: 41075
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
spilled value is available for reuse.
llvm-svn: 41067
|
| |
|
|
| |
llvm-svn: 41064
|
| |
|
|
| |
llvm-svn: 41063
|
| |
|
|
| |
llvm-svn: 41062
|
| |
|
|
|
|
| |
intervals that are coalesced to be rematerialized.
llvm-svn: 41060
|
| |
|
|
| |
llvm-svn: 41059
|
| |
|
|
| |
llvm-svn: 41054
|
| |
|
|
| |
llvm-svn: 41053
|
| |
|
|
| |
llvm-svn: 41052
|
| |
|
|
| |
llvm-svn: 41051
|
| |
|
|
| |
llvm-svn: 41050
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 41048
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 41043
|
| |
|
|
| |
llvm-svn: 41029
|
| |
|
|
| |
llvm-svn: 41028
|
| |
|
|
|
|
| |
may be out of whack.
llvm-svn: 41024
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 41021
|