| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Mozilla that Anton tracked down.
llvm-svn: 33591
|
| |
|
|
|
|
|
|
| |
changes: (1) don't special case for i1 any more, (2) use the new
TargetData::getTypeSizeInBits method to ensure source and dest are the
same bit width.
llvm-svn: 33427
|
| |
|
|
|
|
|
|
|
| |
We only want to do this if the src and destination types have the same
bit width. This patch uses TargetData::getTypeSizeInBits() instead of
making a special case for integer types and avoiding the transform if
they don't match.
llvm-svn: 33414
|
| |
|
|
|
|
| |
these alignment amounts to align scalars when we can. Patch by Scott Michel!
llvm-svn: 33409
|
| |
|
|
|
|
|
| |
don't allow the transform if V and the pointer's element type are different
width integer types.
llvm-svn: 33371
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
infinitely loops.
llvm-svn: 33343
|
| |
|
|
|
|
|
|
|
| |
transform. Change some variable names so it is clear what is source and
what is dest of the cast. Also, add an assert to ensure that the integer
to integer case is asserting if the bitwidths are different. This prevents
illegal casts from being formed and catches bitwidth bugs sooner.
llvm-svn: 33337
|
| |
|
|
|
|
|
|
| |
because TargetData::getTypeSize() returns the same for i1 and i8. This fix
is not right for the full generality of bitwise types, but it fixes the
regression.
llvm-svn: 33237
|
| |
|
|
|
|
| |
induction variables.
llvm-svn: 33234
|
| |
|
|
| |
llvm-svn: 33232
|
| |
|
|
|
|
| |
often kicks in for ?: expressions.
llvm-svn: 33231
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 33218
|
| |
|
|
|
|
| |
NANs. This fixes PR1111 and Transforms/InstCombine/2007-01-14-FcmpSelf.ll
llvm-svn: 33208
|
| |
|
|
|
|
| |
of PR1107
llvm-svn: 33185
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
recommended that getBoolValue be replaced with getZExtValue and that
get(bool) be replaced by get(const Type*, uint64_t). This implements
those changes.
llvm-svn: 33110
|
| |
|
|
| |
llvm-svn: 33076
|
| |
|
|
| |
llvm-svn: 33075
|
| |
|
|
|
|
|
| |
Merge ConstantIntegral and ConstantBool into ConstantInt.
Remove ConstantIntegral and ConstantBool from LLVM.
llvm-svn: 33073
|
| |
|
|
| |
llvm-svn: 33021
|
| |
|
|
|
|
|
| |
This patch converts getPrimitiveSize to getPrimitiveSizeInBits where it is
appropriate to do so (comparison of integer primitive types).
llvm-svn: 33012
|
| |
|
|
| |
llvm-svn: 32980
|
| |
|
|
|
|
| |
InstCombine/2003-11-13-ConstExprCastCall.ll
llvm-svn: 32959
|
| |
|
|
|
|
| |
is only called on integers.
llvm-svn: 32949
|
| |
|
|
|
|
| |
types of the same size
llvm-svn: 32948
|
| |
|
|
|
|
|
|
| |
stronger, by nuking
relational pointer comparisons with casts.
llvm-svn: 32947
|
| |
|
|
|
|
| |
undef operands.
llvm-svn: 32899
|
| |
|
|
|
|
| |
InstCombine/xor.ll:test27
llvm-svn: 32893
|
| |
|
|
| |
llvm-svn: 32890
|
| |
|
|
| |
llvm-svn: 32866
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
Fix this by ensuring that a bitcast is inserted to do sign switching. This
is only temporarily needed as the merging of signed and unsigned is next
on the SignlessTypes plate.
llvm-svn: 32757
|
| |
|
|
|
|
| |
correctly and emit "may be used uninitialized" warnings.
llvm-svn: 32756
|
| |
|
|
|
|
|
| |
Don't allow CmpInst instances to be processed in FoldSelectOpOp because
you can't easily swap their operands.
llvm-svn: 32753
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
converted, we lose a static initializer. This also allows GCC to emit warnings
about unused statistics.
llvm-svn: 32690
|
| |
|
|
|
|
|
|
| |
creation. These changes are still temporary but at least this pushes
knowledge of signedness out closer to where it can be determined properly
and allows signedness to be removed from VMCore.
llvm-svn: 32654
|
| |
|
|
|
|
|
|
|
| |
used to determine whether a ZExt or SExt cast is performed. Instead, pass
an "isSigned" bool to the function and determine its value from the opcode
of the cast involved.
Also, clean up some cruft from previous patches.
llvm-svn: 32548
|
| |
|
|
|
|
| |
cast instructions. A few are bug fixes.
llvm-svn: 32544
|
| |
|
|
|
|
|
| |
make sure to also check that it is a zext from bool, not any other cast
operation type.
llvm-svn: 32539
|
| |
|
|
|
|
|
|
| |
The cast patch introduced the possibility that the wrong cast opcode
could be used and that this transform could trigger on different kinds
of cast operations. This patch rectifies that.
llvm-svn: 32538
|
| |
|
|
|
|
|
| |
Rename getZeroExtend and getSignExtend to getZExt and getSExt to match
the the casting mnemonics in the rest of LLVM.
llvm-svn: 32514
|
| |
|
|
| |
llvm-svn: 32487
|
| |
|
|
| |
llvm-svn: 32486
|
| |
|
|
| |
llvm-svn: 32479
|
| |
|
|
|
|
| |
now cerr, cout, and NullStream resp.
llvm-svn: 32298
|
| |
|
|
| |
llvm-svn: 32288
|
| |
|
|
|
|
| |
is 'unsigned'.
llvm-svn: 32279
|