| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
comparison operators.
llvm-svn: 35385
|
| |
|
|
| |
llvm-svn: 35383
|
| |
|
|
|
|
|
|
| |
char" and it is up to the compilers implementation or the platform which is
followed."
http://www.arm.linux.org.uk/docs/faqs/signedchar.php
llvm-svn: 35382
|
| |
|
|
|
|
| |
of a CALL_NOLINK.
llvm-svn: 35381
|
| |
|
|
| |
llvm-svn: 35380
|
| |
|
|
| |
llvm-svn: 35379
|
| |
|
|
| |
llvm-svn: 35376
|
| |
|
|
|
|
| |
TID->numOperands.
llvm-svn: 35375
|
| |
|
|
| |
llvm-svn: 35374
|
| |
|
|
| |
llvm-svn: 35373
|
| |
|
|
|
|
| |
Fix another incorrectly converted shift mask.
llvm-svn: 35371
|
| |
|
|
| |
llvm-svn: 35370
|
| |
|
|
|
|
| |
based on their ordering.
llvm-svn: 35369
|
| |
|
|
|
|
| |
std::vector<DFCalculateWorkObject *> to reduce malloc/free traffic.
llvm-svn: 35368
|
| |
|
|
| |
llvm-svn: 35366
|
| |
|
|
| |
llvm-svn: 35365
|
| |
|
|
| |
llvm-svn: 35363
|
| |
|
|
|
|
| |
hopefully forestall similar errors.
llvm-svn: 35362
|
| |
|
|
| |
llvm-svn: 35361
|
| |
|
|
| |
llvm-svn: 35360
|
| |
|
|
|
|
|
|
| |
original and new instruction. A slight performance hit with ostringstream
but it is only for debug.
Also, clean up an uninitialized variable warning noticed in a release build.
llvm-svn: 35358
|
| |
|
|
| |
llvm-svn: 35357
|
| |
|
|
| |
llvm-svn: 35353
|
| |
|
|
| |
llvm-svn: 35352
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
#include <mmintrin.h>
extern __m64 C;
void baz(__v2si *A, __v2si *B)
{
*A = C;
_mm_empty();
}
We get this:
_baz:
call "L1$pb"
"L1$pb":
popl %eax
movl L_C$non_lazy_ptr-"L1$pb"(%eax), %eax
movq (%eax), %mm0
movl 4(%esp), %eax
movq %mm0, (%eax)
emms
ret
GCC gives us this:
_baz:
pushl %ebx
call L3
"L00000000001$pb":
L3:
popl %ebx
subl $8, %esp
movl L_C$non_lazy_ptr-"L00000000001$pb"(%ebx), %eax
movl (%eax), %edx
movl 4(%eax), %ecx
movl 16(%esp), %eax
movl %edx, (%eax)
movl %ecx, 4(%eax)
emms
addl $8, %esp
popl %ebx
ret
llvm-svn: 35351
|
| |
|
|
| |
llvm-svn: 35350
|
| |
|
|
|
|
|
|
| |
Fix SingleSource/Regression/C/2003-05-21-UnionBitFields.c by changing a
getHighBitsSet call to getLowBitsSet call that was incorrectly converted
from the original lshr constant expression.
llvm-svn: 35348
|
| |
|
|
| |
llvm-svn: 35347
|
| |
|
|
|
|
|
|
|
|
| |
Remove a use of getLowBitsSet that caused the mask used for replacement of
shl/lshr pairs with an AND instruction to be computed incorrectly. Its not
clear exactly why this is the case. This solves the disappearing shifts
problem, but it doesn't fix Regression/C/2003-05-21-UnionBitFields. It
seems there is more going on.
llvm-svn: 35342
|
| |
|
|
| |
llvm-svn: 35341
|
| |
|
|
|
|
|
|
|
| |
* Don't assume shift amounts are <= 64 bits
* Avoid creating an extra APInt in SubOne and AddOne by using -- and ++
* Add another use of getLowBitsSet
* Convert a series of if statements to a switch
llvm-svn: 35339
|
| |
|
|
|
|
| |
strategy, emit JT's where possible.
llvm-svn: 35338
|
| |
|
|
| |
llvm-svn: 35337
|
| |
|
|
| |
llvm-svn: 35336
|
| |
|
|
|
|
|
|
| |
using the facilities of APInt. While this duplicates a tiny fraction of
the constant folding code, it also makes the code easier to read and
avoids large ConstantExpr overhead for simple, known computations.
llvm-svn: 35335
|
| |
|
|
| |
llvm-svn: 35334
|
| |
|
|
|
|
|
| |
2. Use isStrictlyPositive() instead of isPositive() in two places where
they need APInt value > 0 not only >=0.
llvm-svn: 35333
|
| |
|
|
|
|
| |
CodeGen/X86/2007-03-24-InlineAsmVectorOp.ll
llvm-svn: 35332
|
| |
|
|
| |
llvm-svn: 35330
|
| |
|
|
| |
llvm-svn: 35329
|
| |
|
|
|
|
| |
CodeGen/X86/2007-03-24-InlineAsmXConstraint.ll
llvm-svn: 35327
|
| |
|
|
|
|
| |
APInt with its type mask.
llvm-svn: 35325
|
| |
|
|
| |
llvm-svn: 35324
|
| |
|
|
|
|
| |
not just the first letter. No functionality change.
llvm-svn: 35322
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Convert the last use of a uint64_t that should have been an APInt.
* Change ComputeMaskedBits to have a const reference argument for the Mask
so that recursions don't cause unneeded temporaries. This causes temps
to be needed in other places (where the mask has to change) but this
change optimizes for the recursion which is more frequent.
* Remove two instances of &ing a Mask with getAllOnesValue. Its not
needed any more because APInt is accurate in its bit computations.
* Start using the getLowBitsSet and getHighBits set methods on APInt
instead of shifting. This makes it more clear in the code what is
going on.
llvm-svn: 35321
|
| |
|
|
|
|
| |
alternatives, and end up not being registers.
llvm-svn: 35320
|
| |
|
|
| |
llvm-svn: 35319
|
| |
|
|
| |
llvm-svn: 35318
|
| |
|
|
| |
llvm-svn: 35314
|
| |
|
|
| |
llvm-svn: 35299
|