| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 47531
|
| |
|
|
|
|
| |
fixed stack slots.
llvm-svn: 47529
|
| |
|
|
| |
llvm-svn: 47527
|
| |
|
|
| |
llvm-svn: 47525
|
| |
|
|
|
|
| |
invalid command-line options.
llvm-svn: 47523
|
| |
|
|
| |
llvm-svn: 47521
|
| |
|
|
| |
llvm-svn: 47513
|
| |
|
|
| |
llvm-svn: 47501
|
| |
|
|
| |
llvm-svn: 47476
|
| |
|
|
|
|
|
|
| |
instead of with mmx registers. This horribleness is apparently
done by gcc to avoid having to insert emms in places that really
should have it. This is the second half of rdar://5741668.
llvm-svn: 47474
|
| |
|
|
|
|
|
|
|
|
| |
GCC apparently does this, and code depends on not having to do
emms when this happens. This is x86-64 only so far, second half
should handle x86-32.
rdar://5741668
llvm-svn: 47470
|
| |
|
|
|
|
|
|
|
| |
any, we force sdisel to do all regalloc for an asm. This
leads to gross but correct codegen.
This fixes the rest of PR2078.
llvm-svn: 47454
|
| |
|
|
| |
llvm-svn: 47432
|
| |
|
|
| |
llvm-svn: 47427
|
| |
|
|
|
|
|
|
|
|
| |
inline asms.
Fix PR2078 by marking aliases of registers used when a register is
marked used. This prevents EAX from being allocated when AX is listed
in the clobber set for the asm.
llvm-svn: 47426
|
| |
|
|
| |
llvm-svn: 47425
|
| |
|
|
|
|
| |
Now, we have very first multiple return value testcase!
llvm-svn: 47424
|
| |
|
|
| |
llvm-svn: 47411
|
| |
|
|
| |
llvm-svn: 47409
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Parse reversed smax and umax as smin and umin and express them with negative
or binary-not SCEVs (which are really just subtract under the hood).
Parse 'xor %x, -1' as (-1 - %x).
Remove dead code (ConstantInt::get always returns a ConstantInt).
Don't use getIntegerSCEV(-1, Ty). The first value is an int, then it gets
passed into a uint64_t. Instead, create the -1 directly from
ConstantInt::getAllOnesValue().
llvm-svn: 47360
|
| |
|
|
| |
llvm-svn: 47355
|
| |
|
|
| |
llvm-svn: 47331
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This compiles test-nofold.ll into:
_test:
movl $15, %ecx
andl 4(%esp), %ecx
testl %ecx, %ecx
movl $42, %eax
cmove %ecx, %eax
ret
instead of:
_test:
movl 4(%esp), %eax
movl %eax, %ecx
andl $15, %ecx
testl $15, %eax
movl $42, %eax
cmove %ecx, %eax
ret
llvm-svn: 47330
|
| |
|
|
|
|
| |
instruction.
llvm-svn: 47329
|
| |
|
|
| |
llvm-svn: 47325
|
| |
|
|
| |
llvm-svn: 47324
|
| |
|
|
| |
llvm-svn: 47311
|
| |
|
|
| |
llvm-svn: 47308
|
| |
|
|
|
|
| |
llc: for the -info-output-file option: requires a value!
llvm-svn: 47306
|
| |
|
|
| |
llvm-svn: 47302
|
| |
|
|
| |
llvm-svn: 47297
|
| |
|
|
| |
llvm-svn: 47296
|
| |
|
|
|
|
|
|
| |
check if it's essentially a SCALAR_TO_VECTOR. Avoid turning (v8i16) <10, u, u, u> to <10, 0, u, u, u, u, u, u>. Instead, simply convert it to a SCALAR_TO_VECTOR of the proper type.
- X86 now normalize SCALAR_TO_VECTOR to (BIT_CONVERT (v4i32 SCALAR_TO_VECTOR)). Get rid of X86ISD::S2VEC.
llvm-svn: 47290
|
| |
|
|
| |
llvm-svn: 47287
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
has plain one-result scalar integer multiplication instructions.
This avoids expanding such instructions into MUL_LOHI sequences that
must be special-cased at isel time, and avoids the problem with that
code that provented memory operands from being folded.
This fixes PR1874, addressesing the most common case. The uncommon
cases of optimizing multiply-high operations will require work
in DAGCombiner.
llvm-svn: 47277
|
| |
|
|
| |
llvm-svn: 47274
|
| |
|
|
|
|
|
|
|
|
|
| |
that, if an sret function tail calls
another sret function, it should pass its own sret parameter to the tail callee, allowing it to fill in the correct
return value. llvm-gcc does not emit this by default. Instead, it allocates space in the caller for the sret of
the tail call and then uses memcpy to copy the result into the caller's sret parameter. This optimization detects
and optimizes that case.
llvm-svn: 47265
|
| |
|
|
| |
llvm-svn: 47258
|
| |
|
|
| |
llvm-svn: 47257
|
| |
|
|
|
|
| |
the second half of PR2047
llvm-svn: 47244
|
| |
|
|
|
|
| |
that is also a subtract. This implements PR2047 and Transforms/Reassociate/subtest2.ll
llvm-svn: 47241
|
| |
|
|
| |
llvm-svn: 47240
|
| |
|
|
| |
llvm-svn: 47238
|
| |
|
|
| |
llvm-svn: 47232
|
| |
|
|
| |
llvm-svn: 47231
|
| |
|
|
| |
llvm-svn: 47230
|
| |
|
|
| |
llvm-svn: 47229
|
| |
|
|
| |
llvm-svn: 47228
|
| |
|
|
| |
llvm-svn: 47227
|
| |
|
|
|
|
| |
the tests that used it.
llvm-svn: 47225
|