- Apr 11, 2007
-
-
Chris Lattner authored
llvm-svn: 35906
-
Chris Lattner authored
llvm-svn: 35879
-
Chris Lattner authored
We now tolerate small amounts of undefined behavior, better emulating what would happen if the transaction actually occurred in memory. This fixes SingleSource/UnitTests/2007-04-10-BitfieldTest.c on PPC, at least until Devang gets a chance to fix the CFE from doing undefined things with bitfields :) llvm-svn: 35875
-
- Mar 22, 2007
-
-
Dan Gohman authored
llvm-svn: 35265
-
- Mar 19, 2007
-
-
Chris Lattner authored
llvm-svn: 35169
-
Chris Lattner authored
implements Transforms/ScalarRepl/memset-aggregate-byte-leader.ll llvm-svn: 35150
-
- Mar 08, 2007
-
-
Chris Lattner authored
llvm-svn: 35024
-
Chris Lattner authored
do the correctness/performance analysis testing. llvm-svn: 35023
-
- Mar 05, 2007
-
-
Chris Lattner authored
scalarrepl things down to elements, but mem2reg can't promote elements that are memset/memcpy'd. Until then, the code is disabled "0 &&". llvm-svn: 34924
-
- Feb 15, 2007
-
-
Reid Spencer authored
Change use of "packed" term to "vector" in comments, strings, variable names, etc. llvm-svn: 34300
-
Reid Spencer authored
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and PackedTyID -> VectorTyID. No functional changes. llvm-svn: 34293
-
- Feb 12, 2007
-
-
Chris Lattner authored
llvm-svn: 34205
-
- Feb 11, 2007
-
-
Chris Lattner authored
llvm-svn: 34176
-
- Feb 10, 2007
-
-
Chris Lattner authored
llvm-svn: 34156
-
- Feb 02, 2007
-
-
Reid Spencer authored
llvm-svn: 33783
-
Reid Spencer authored
This feature is needed in order to support shifts of more than 255 bits on large integer types. This changes the syntax for llvm assembly to make shl, ashr and lshr instructions look like a binary operator: shl i32 %X, 1 instead of shl i32 %X, i8 1 Additionally, this should help a few passes perform additional optimizations. llvm-svn: 33776
-
- Jan 21, 2007
-
-
Reid Spencer authored
Clean up handling of isFloatingPoint() and dealing with PackedType. Patch by Gordon Henriksen! llvm-svn: 33415
-
- Jan 19, 2007
-
-
Reid Spencer authored
This is the final patch for this PR. It implements some minor cleanup in the use of IntegerType, to wit: 1. Type::getIntegerTypeMask -> IntegerType::getBitMask 2. Type::Int*Ty changed to IntegerType* from Type* 3. ConstantInt::getType() returns IntegerType* now, not Type* This also fixes PR1120. Patch by Sheng Zhou. llvm-svn: 33370
-
- Jan 15, 2007
-
-
Chris Lattner authored
rename Type::getIntegralTypeMask to Type::getIntegerTypeMask. This makes naming much more consistent. For example, there are now no longer any instances of IntegerType that are not considered isInteger! :) llvm-svn: 33225
-
Chris Lattner authored
llvm-svn: 33218
-
- Jan 12, 2007
-
-
Reid Spencer authored
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
-
- Jan 08, 2007
-
-
Reid Spencer authored
This patch converts getPrimitiveSize to getPrimitiveSizeInBits where it is appropriate to do so (comparison of integer primitive types). llvm-svn: 33012
-
- Dec 31, 2006
-
-
Reid Spencer authored
This patch replaces signed integer types with signless ones: 1. [US]Byte -> Int8 2. [U]Short -> Int16 3. [U]Int -> Int32 4. [U]Long -> Int64. 5. Removal of isSigned, isUnsigned, getSignedVersion, getUnsignedVersion and other methods related to signedness. In a few places this warranted identifying the signedness information from other sources. llvm-svn: 32785
-
- Dec 23, 2006
-
-
Reid Spencer authored
This patch removes the SetCC instructions and replaces them with the ICmp and FCmp instructions. The SetCondInst instruction has been removed and been replaced with ICmpInst and FCmpInst. llvm-svn: 32751
-
Chris Lattner authored
llvm-svn: 32750
-
- Dec 19, 2006
-
-
Chris Lattner authored
converted, we lose a static initializer. This also allows GCC to emit warnings about unused statistics. llvm-svn: 32690
-
- Dec 15, 2006
-
-
Chris Lattner authored
llvm-svn: 32595
-
- Dec 13, 2006
-
-
Chris Lattner authored
obscure bugs affecting the X86 code generator. I will reenable this when fixed. llvm-svn: 32524
-
- Dec 12, 2006
-
-
Chris Lattner authored
llvm-svn: 32468
-
- Dec 11, 2006
-
-
Chris Lattner authored
llvm-svn: 32426
-
Chris Lattner authored
This implements Transforms/ScalarRepl/union-packed.ll llvm-svn: 32422
-
Chris Lattner authored
* Add support for promoting unions with fp values in them. This produces our new int<->fp bitcast instructions, implementing Transforms/ScalarRepl/union-fp-int.ll As an example, this allows us to compile this: union intfloat { int i; float f; }; float invsqrt(const float arg_x) { union intfloat x = { .f = arg_x }; const float xhalf = arg_x * 0.5f; x.i = 0x5f3759df - (x.i >> 1); return x.f * (1.5f - xhalf * x.f * x.f); } into: _invsqrt: movss 4(%esp), %xmm0 movd %xmm0, %eax sarl %eax movl $1597463007, %ecx subl %eax, %ecx movd %ecx, %xmm1 mulss LCPI1_0, %xmm0 mulss %xmm1, %xmm0 movss LCPI1_1, %xmm2 mulss %xmm1, %xmm0 subss %xmm0, %xmm2 movl 8(%esp), %eax mulss %xmm2, %xmm1 movss %xmm1, (%eax) ret instead of: _invsqrt: subl $4, %esp movss 8(%esp), %xmm0 movss %xmm0, (%esp) movl (%esp), %eax movl $1597463007, %ecx sarl %eax subl %eax, %ecx movl %ecx, (%esp) mulss LCPI1_0, %xmm0 movss (%esp), %xmm1 mulss %xmm1, %xmm0 mulss %xmm1, %xmm0 movss LCPI1_1, %xmm2 subss %xmm0, %xmm2 mulss %xmm2, %xmm1 movl 12(%esp), %eax movss %xmm1, (%eax) addl $4, %esp ret llvm-svn: 32418
-
- Dec 06, 2006
-
-
Chris Lattner authored
is 'unsigned'. llvm-svn: 32279
-
- Nov 27, 2006
-
-
Reid Spencer authored
The long awaited CAST patch. This introduces 12 new instructions into LLVM to replace the cast instruction. Corresponding changes throughout LLVM are provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the exception of 175.vpr which fails only on a slight floating point output difference. llvm-svn: 31931
-
- Nov 26, 2006
-
-
Bill Wendling authored
llvm-svn: 31923
-
- Nov 08, 2006
-
-
Reid Spencer authored
This patch converts the old SHR instruction into two instructions, AShr (Arithmetic) and LShr (Logical). The Shr instructions now are not dependent on the sign of their operands. llvm-svn: 31542
-
- Nov 07, 2006
-
-
Chris Lattner authored
int func(vFloat v0, vFloat v1) { int ii; vSInt32 vsiidx[2]; vsiidx[0] = _mm_cvttps_epi32(v0); vsiidx[1] = _mm_cvttps_epi32(v1); ii = ((int *) vsiidx)[4]; return ii; } This fixes Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll llvm-svn: 31524
-
- Nov 02, 2006
-
-
Reid Spencer authored
Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. llvm-svn: 31380
-
- Oct 24, 2006
-
-
Chris Lattner authored
llvm-svn: 31151
-
- Oct 20, 2006
-
-
Reid Spencer authored
This patch implements the first increment for the Signless Types feature. All changes pertain to removing the ConstantSInt and ConstantUInt classes in favor of just using ConstantInt. llvm-svn: 31063
-