| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
Adjust the use of SetVector for changes in SetVector's interface.
Patch by Gordon Henriksen.
llvm-svn: 33280
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the basic block and is stable across runs in gdb or valgrind.
Make Node::update handle edges which dominate and are tighter than
existing edges.
Replace makeEqual's "squeeze theorem" code. Fixes miscompilation.
Gate the calls to defToOps and opsToDef. Before this, we were getting IG
edges about values which weren't even defined in the dominated area. This
reduces the size of the IG by about half.
llvm-svn: 33236
|
| |
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 33210
|
| |
|
|
|
|
| |
NANs. This fixes PR1111 and Transforms/InstCombine/2007-01-14-FcmpSelf.ll
llvm-svn: 33208
|
| |
|
|
|
|
| |
more careful about unreachable code when updating dominator info.
llvm-svn: 33204
|
| |
|
|
|
|
| |
of PR1107
llvm-svn: 33185
|
| |
|
|
| |
llvm-svn: 33184
|
| |
|
|
|
|
|
|
|
| |
that properties were being applied where they didn't belong. Fixes crash
in new MiBench testcase.
Also mark debugging code as such in #ifdef.
llvm-svn: 33177
|
| |
|
|
| |
llvm-svn: 33175
|
| |
|
|
| |
llvm-svn: 33164
|
| |
|
|
| |
llvm-svn: 33150
|
| |
|
|
| |
llvm-svn: 33147
|
| |
|
|
| |
llvm-svn: 33132
|
| |
|
|
| |
llvm-svn: 33129
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
instruction. Doesn't work the other way though (can't recover bits that
have been truncated).
llvm-svn: 33104
|
| |
|
|
| |
llvm-svn: 33096
|
| |
|
|
| |
llvm-svn: 33076
|
| |
|
|
| |
llvm-svn: 33075
|
| |
|
|
|
|
|
| |
Merge ConstantIntegral and ConstantBool into ConstantInt.
Remove ConstantIntegral and ConstantBool from LLVM.
llvm-svn: 33073
|
| |
|
|
| |
llvm-svn: 33072
|
| |
|
|
|
|
| |
is so that it can be called from inside a debugger.
llvm-svn: 33067
|
| |
|
|
|
|
| |
Please do not enable, there is still some known miscompile problem.
llvm-svn: 33066
|
| |
|
|
| |
llvm-svn: 33043
|
| |
|
|
| |
llvm-svn: 33021
|
| |
|
|
|
|
|
| |
This patch converts getPrimitiveSize to getPrimitiveSizeInBits where it is
appropriate to do so (comparison of integer primitive types).
llvm-svn: 33012
|
| |
|
|
|
|
|
|
| |
Enable complex addressing modes on 64-bit platforms involving two induction
variables by keeping a size and scale in 64-bits not 32.
Patch by Dan Gohman.
llvm-svn: 33011
|
| |
|
|
| |
llvm-svn: 33001
|
| |
|
|
| |
llvm-svn: 32998
|
| |
|
|
|
|
|
|
| |
resolve PR1088, and to help PR411.
This simplifies many clients also
llvm-svn: 32989
|
| |
|
|
| |
llvm-svn: 32985
|
| |
|
|
| |
llvm-svn: 32982
|
| |
|
|
| |
llvm-svn: 32981
|
| |
|
|
| |
llvm-svn: 32980
|
| |
|
|
| |
llvm-svn: 32971
|
| |
|
|
|
|
| |
InstCombine/2003-11-13-ConstExprCastCall.ll
llvm-svn: 32959
|
| |
|
|
|
|
|
|
|
| |
Take an incremental step towards type plane elimination. This change
separates types from values in the symbol tables by finally making use
of the TypeSymbolTable class. This yields more natural interfaces for
dealing with types and unclutters the SymbolTable class.
llvm-svn: 32956
|
| |
|
|
|
|
| |
is only called on integers.
llvm-svn: 32949
|
| |
|
|
|
|
| |
types of the same size
llvm-svn: 32948
|