| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
No compile-time support for constant operations yet,
just format transformations. Make readers and
writers work. Split constants into 2 doubles in
Legalize.
llvm-svn: 42865
|
|
|
|
| |
llvm-svn: 42696
|
|
|
|
|
|
|
| |
Add a new DenseMapInfo::isEqual method to allow clients to redefine
the equality predicate used when probing the hash table.
llvm-svn: 42042
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
double from some of the many places in the optimizers
it appears, and do something reasonable with x86
long double.
Make APInt::dump() public, remove newline, use it to
dump ConstantSDNode's.
Allow APFloats in FoldingSet.
Expand X86 backend handling of long doubles (conversions
to/from int, mostly).
llvm-svn: 41967
|
|
|
|
|
|
|
| |
Next round of x87 long double stuff.
Getting close now, basically works.
llvm-svn: 41875
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use APFloat in UpgradeParser and AsmParser.
Change all references to ConstantFP to use the
APFloat interface rather than double. Remove
the ConstantFP double interfaces.
Use APFloat functions for constant folding arithmetic
and comparisons.
(There are still way too many places APFloat is
just a wrapper around host float/double, but we're
getting there.)
llvm-svn: 41747
|
|
|
|
|
|
| |
GLIBCXX_DEBUG issues.
llvm-svn: 41697
|
|
|
|
|
|
|
|
|
| |
Add APFloat interfaces to ConstantFP, SelectionDAG.
Fix integer bit in double->APFloat conversion.
Convert LegalizeDAG to use APFloat interface in
ConstantFPSDNode uses.
llvm-svn: 41587
|
|
|
|
|
|
| |
This means backing out the preceding change to Constants.cpp, alas.
llvm-svn: 41378
|
|
|
|
| |
llvm-svn: 41353
|
|
|
|
|
|
| |
Interface to rest of the compiler unchanged, as yet.
llvm-svn: 41348
|
|
|
|
|
|
|
| |
same value which get RAUW'd. This speeds up reading the .bc
file in PR1616 from 852s to 0.19s on my G5 with a debug build.
llvm-svn: 41209
|
|
|
|
|
|
|
|
|
|
|
|
| |
to handle values bigger than double. If we assume host==target and host
long double works correctly, this is not too bad, but we don't want to
have that limitation longterm. I could implement accepting double
constants as long double or something like that, which would lead to
incorrect codegen with no errors; the more I think about that the worse
it seems. Rather than do such a hack that would be backed out later,
I'm settling for giving reasonable error messages, for now.
llvm-svn: 40974
|
|
|
|
|
|
| |
AND vectors.
llvm-svn: 37586
|
|
|
|
| |
llvm-svn: 37321
|
|
|
|
|
|
| |
negative number. This is needed to fix test/Assembler/2007-03-19-NegValue.ll
llvm-svn: 35181
|
|
|
|
|
|
| |
at load time.
llvm-svn: 35014
|
|
|
|
|
|
| |
redundant and more verbose than the ConstantInt(const APInt&) constructor.
llvm-svn: 34792
|
|
|
|
|
|
|
| |
APInt. The implied type is the integer type that corresponds to the bit
width of the APInt.
llvm-svn: 34757
|
|
|
|
| |
llvm-svn: 34702
|
|
|
|
|
|
| |
widths > 64 bits.
llvm-svn: 34663
|
|
|
|
|
|
| |
lib/Analysis/ConstantFolding.
llvm-svn: 34653
|
|
|
|
|
|
|
|
|
|
| |
Implement the first step towards arbitrary precision integer support in
LLVM. The APInt class provides arbitrary precision arithmetic and value
representation. This patch changes ConstantInt to use APInt as its value
representation without supporting bit widths > 64 yet. That change will
come after ConstantFolding handles bit widths > 64 bits.
llvm-svn: 34647
|
|
|
|
| |
llvm-svn: 34457
|
|
|
|
|
|
| |
and is more memory efficient.
llvm-svn: 34446
|
|
|
|
|
|
|
| |
heavy-weight ValueMap class. This reduces mem usage bc reading kc++ by 29K,
even though it only creates 2955 constant ints!
llvm-svn: 34445
|
|
|
|
| |
llvm-svn: 34443
|
|
|
|
| |
llvm-svn: 34441
|
|
|
|
| |
llvm-svn: 34440
|
|
|
|
| |
llvm-svn: 34425
|
|
|
|
| |
llvm-svn: 34423
|
|
|
|
| |
llvm-svn: 34419
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 33942
|
|
|
|
|
|
|
|
|
|
| |
This patch replaces the SymbolTable class with ValueSymbolTable which does
not support types planes. This means that all symbol names in LLVM must now
be unique. The patch addresses the necessary changes to deal with this and
removes code no longer needed as a result. This completes the bulk of the
changes for this PR. Some cleanup patches will follow.
llvm-svn: 33918
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
This allows us to eliminate many temporary vectors, and theirassociated malloc/free pairs.
llvm-svn: 33692
|
|
|
|
| |
llvm-svn: 33520
|
|
|
|
| |
llvm-svn: 33417
|
|
|
|
|
|
|
| |
Clean up handling of isFloatingPoint() and dealing with PackedType.
Patch by Gordon Henriksen!
llvm-svn: 33415
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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: 33213
|
|
|
|
| |
llvm-svn: 33146
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Merge ConstantIntegral and ConstantBool into ConstantInt.
Remove ConstantIntegral and ConstantBool from LLVM.
llvm-svn: 33073
|
|
|
|
| |
llvm-svn: 32856
|