| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
%b = getresult {i32, i32} %a, i32 1
llvm-svn: 47349
|
|
|
|
| |
llvm-svn: 47348
|
|
|
|
| |
llvm-svn: 47344
|
|
|
|
| |
llvm-svn: 47343
|
|
|
|
|
|
|
| |
for adding alignment info, not there yet). Clean up
interfaces to reference ParameterAttributes consistently.
llvm-svn: 47342
|
|
|
|
|
|
|
| |
profile of the APSInt object. This caused unexpected Profile collisions where
none should have occurred.
llvm-svn: 47338
|
|
|
|
| |
llvm-svn: 47337
|
|
|
|
| |
llvm-svn: 47334
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 47328
|
|
|
|
|
|
| |
which is long dead by now.
llvm-svn: 47323
|
|
|
|
|
|
|
| |
could work don't work fully. This fixes PR1705. Oh yeah, we don't have
packed types anymore either ;-)
llvm-svn: 47322
|
|
|
|
|
|
| |
happened to work out anyways. :-)
llvm-svn: 47321
|
|
|
|
| |
llvm-svn: 47320
|
|
|
|
| |
llvm-svn: 47319
|
|
|
|
| |
llvm-svn: 47318
|
|
|
|
|
|
| |
ModRef pointers that alias their arguments as well. This fixes PR2057.
llvm-svn: 47317
|
|
|
|
|
|
|
|
| |
unneccessary constraints,
and add some others that should have been in from the first place. Document the whole thing better.
llvm-svn: 47315
|
|
|
|
| |
llvm-svn: 47314
|
|
|
|
|
|
|
| |
can be a SNaN. We could be more aggressive and turn this into
unreachable, but that is less nice, and not really worth it.
llvm-svn: 47313
|
|
|
|
| |
llvm-svn: 47312
|
|
|
|
| |
llvm-svn: 47311
|
|
|
|
|
|
|
|
| |
static function.
At some point in the future, this check will become smarter.
llvm-svn: 47310
|
|
|
|
|
|
|
|
| |
to loop
over all the parameters of the callee looking for it.
llvm-svn: 47309
|
|
|
|
|
|
|
| |
to apply to a memcpy into processInstruction. Also, fix a bug in the check due to
missing braces.
llvm-svn: 47307
|
|
|
|
|
|
| |
branches. memcpy's are a kind of CallInst.
llvm-svn: 47305
|
|
|
|
|
|
| |
order to save a single instruction since a branch will be inserted for each BB.
llvm-svn: 47301
|
|
|
|
| |
llvm-svn: 47300
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
on x86-32 since i64 itself is not a Legal type. And, update some
comments.
llvm-svn: 47282
|
|
|
|
|
|
| |
- For now, conservatively ignore copy MI whose source is a physical register. Commuting its def MI can cause a physical register live interval to be live through a loop (since we know it's live coming into the def MI).
llvm-svn: 47281
|
|
|
|
| |
llvm-svn: 47280
|
|
|
|
| |
llvm-svn: 47279
|
|
|
|
| |
llvm-svn: 47278
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
to Dale for noticing this!
llvm-svn: 47276
|
|
|
|
| |
llvm-svn: 47275
|
|
|
|
|
|
|
|
| |
requested by Chris. While there, do the same
for an existing function committed by someone
called "lattner" :)
llvm-svn: 47273
|
|
|
|
| |
llvm-svn: 47272
|
|
|
|
|
|
|
|
| |
to explicitly check
that Object is an Argument before casting it to one.
llvm-svn: 47268
|
|
|
|
|
|
| |
of an MBB returns a pointer the MBB. Reviewed by Evan.
llvm-svn: 47267
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
code was not.
llvm-svn: 47264
|
|
|
|
| |
llvm-svn: 47263
|
|
|
|
|
|
| |
That simply trade a live interval for another and because only the non-two-address operands can be folded into loads, may end up pessimising code.
llvm-svn: 47262
|
|
|
|
|
|
| |
this speeds it up 2.3% on eon.
llvm-svn: 47261
|
|
|
|
| |
llvm-svn: 47258
|
|
|
|
|
|
| |
a function must be the first parameter.
llvm-svn: 47254
|
|
|
|
|
|
| |
cases that failed the first test.
llvm-svn: 47253
|