| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 36477
|
| |
|
|
| |
llvm-svn: 36338
|
| |
|
|
| |
llvm-svn: 36296
|
| |
|
|
|
|
| |
X86 32 bits.
llvm-svn: 36283
|
| |
|
|
| |
llvm-svn: 36278
|
| |
|
|
|
|
|
|
| |
Don't assert everytime an intrinsic name isn't recognized. Instead, make
the assert optional when callin getIntrinsicID(). This allows the assembler
to handle invalid intrinsic names gracefully.
llvm-svn: 36120
|
| |
|
|
|
|
|
|
|
|
| |
Implement code generation for overloaded intrinsic functions. The basic
difference is that "actual" argument types must be provided when
constructing intrinsic names and types. Also, for recognition, only the
prefix is examined. If it matches, the suffix is assumed to match. The
suffix is checked by the Verifier, however.
llvm-svn: 35539
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
#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: 35159
|
| |
|
|
|
|
| |
zext/sext/aext stuff.
llvm-svn: 35008
|
| |
|
|
|
|
| |
from formal attributes' flags processing.
llvm-svn: 34963
|
| |
|
|
| |
llvm-svn: 34724
|
| |
|
|
| |
llvm-svn: 34720
|
| |
|
|
| |
llvm-svn: 34697
|
| |
|
|
| |
llvm-svn: 34696
|
| |
|
|
|
|
|
|
|
|
| |
CodeGenTarget.cpp updated: 1.82 -> 1.83
Record.cpp updated: 1.55 -> 1.56
Record.h updated: 1.59 -> 1.60
TableGen.cpp updated: 1.47 -> 1.48
It's missing CallingConvEmitter.h
llvm-svn: 34693
|
| |
|
|
| |
llvm-svn: 34682
|
| |
|
|
| |
llvm-svn: 34624
|
| |
|
|
| |
llvm-svn: 34321
|
| |
|
|
|
|
| |
which allocates a string. This speeds up instcombine on 447.dealII by 5%.
llvm-svn: 34318
|
| |
|
|
|
|
|
| |
Change use of "packed" term to "vector" in comments, strings, variable
names, etc.
llvm-svn: 34300
|
| |
|
|
|
|
|
| |
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and
PackedTyID -> VectorTyID. No functional changes.
llvm-svn: 34293
|
| |
|
|
|
|
|
| |
to construct FunctionType in separate function, and, have getDeclaration
return a Function instead of a Constant.
llvm-svn: 34008
|
| |
|
|
| |
llvm-svn: 33967
|
| |
|
|
| |
llvm-svn: 33966
|
| |
|
|
| |
llvm-svn: 33965
|
| |
|
|
| |
llvm-svn: 33964
|
| |
|
|
| |
llvm-svn: 33963
|
| |
|
|
| |
llvm-svn: 33962
|
| |
|
|
| |
llvm-svn: 33557
|
| |
|
|
| |
llvm-svn: 33539
|
| |
|
|
| |
llvm-svn: 33295
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement the arbitrary bit-width integer feature. The feature allows
integers of any bitwidth (up to 64) to be defined instead of just 1, 8,
16, 32, and 64 bit integers.
This change does several things:
1. Introduces a new Derived Type, IntegerType, to represent the number of
bits in an integer. The Type classes SubclassData field is used to
store the number of bits. This allows 2^23 bits in an integer type.
2. Removes the five integer Type::TypeID values for the 1, 8, 16, 32 and
64-bit integers. These are replaced with just IntegerType which is not
a primitive any more.
3. Adjust the rest of LLVM to account for this change.
Note that while this incremental change lays the foundation for arbitrary
bit-width integers, LLVM has not yet been converted to actually deal with
them in any significant way. Most optimization passes, for example, will
still only deal with the byte-width integer types. Future increments
will rectify this situation.
llvm-svn: 33113
|
| |
|
|
|
|
| |
Convert signed integer types to signless.
llvm-svn: 32786
|
| |
|
|
| |
llvm-svn: 32491
|
| |
|
|
| |
llvm-svn: 32488
|
| |
|
|
| |
llvm-svn: 32483
|
| |
|
|
| |
llvm-svn: 32333
|
| |
|
|
| |
llvm-svn: 32107
|
| |
|
|
| |
llvm-svn: 31880
|
| |
|
|
| |
llvm-svn: 31804
|
| |
|
|
|
|
|
|
|
|
| |
not be used for anything other than backwards compat constraint handling.
Add support for a new DisableEncoding property which contains a list of
registers that should not be encoded by the generated code emitter. Convert
the codeemitter generator to use this, fixing some PPC JIT regressions.
llvm-svn: 31769
|
| |
|
|
| |
llvm-svn: 31748
|
| |
|
|
|
|
| |
why.
llvm-svn: 31743
|
| |
|
|
| |
llvm-svn: 31742
|
| |
|
|
| |
llvm-svn: 31740
|
| |
|
|
| |
llvm-svn: 31739
|
| |
|
|
|
|
| |
stores.
llvm-svn: 31738
|
| |
|
|
|
|
|
|
|
|
|
|
| |
that there were two input operands before the variable operand portion. This
*happened* to be true for all call instructions, which took a chain and a
destination, but was not true for the PPC BCTRL instruction, whose destination
is implicit.
Making this code more general allows elimination of the custom selection logic
for BCTRL.
llvm-svn: 31732
|
| |
|
|
|
|
| |
have to be a subpart of a complex operand.
llvm-svn: 31618
|