| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
confusion with external linkage types.
llvm-svn: 33663
|
|
|
|
| |
llvm-svn: 33620
|
|
|
|
| |
llvm-svn: 33619
|
|
|
|
|
|
|
| |
The Module::setEndianness and Module::setPointerSize methods have been
removed. Instead you can get/set the DataLayout. Adjust thise accordingly.
llvm-svn: 33530
|
|
|
|
|
|
|
| |
Clean up handling of isFloatingPoint() and dealing with PackedType.
Patch by Gordon Henriksen!
llvm-svn: 33415
|
|
|
|
|
|
|
|
| |
a small inline function to sign extend a uint64_t value based on its
type's bitwidth. This function is then used in both executeSExtInst and
the various executeICMP_S** functions.
llvm-svn: 33403
|
|
|
|
|
|
| |
This patch fixes test/Integer/2007-01-17-TruncSext.ll
llvm-svn: 33394
|
|
|
|
|
|
| |
computations do not overflow the intended bit width.
llvm-svn: 33326
|
|
|
|
|
|
| |
bit width.
llvm-svn: 33325
|
|
|
|
|
|
|
| |
sufficient to get llvm-test/SingleSource/UnitTests/Integer/general-test.ll
working with lli in interpreter mode.
llvm-svn: 33321
|
|
|
|
|
|
|
|
|
| |
1. Fix logic for executeGEP. Only 32-bit and 64-bit integer types are
acceptable as indices.
2. Ensure that all integer cast operations truncate their result to the
integer size of the operand.
llvm-svn: 33318
|
|
|
|
|
|
|
|
|
| |
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: 33222
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 33076
|
|
|
|
|
|
| |
Convert signed integer types to signless ones.
llvm-svn: 32787
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 32702
|
|
|
|
| |
llvm-svn: 32320
|
|
|
|
|
|
| |
now cerr, cout, and NullStream resp.
llvm-svn: 32298
|
|
|
|
|
|
| |
is 'unsigned'.
llvm-svn: 32279
|
|
|
|
| |
llvm-svn: 32113
|
|
|
|
| |
llvm-svn: 31949
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
CBE and interpreter.
llvm-svn: 31755
|
|
|
|
| |
llvm-svn: 31561
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 31374
|
|
|
|
|
|
| |
Replace the REM instruction with UREM, SREM and FREM.
llvm-svn: 31369
|
|
|
|
| |
llvm-svn: 31339
|
|
|
|
|
|
|
| |
would fail. E.g. udiv sint X, Y or sdiv uint X, Y would fail to find a
type match in the switch statement and fail the operation.
llvm-svn: 31338
|
|
|
|
|
|
|
|
| |
Make necessary changes to support DIV -> [SUF]Div. This changes llvm to
have three division instructions: signed, unsigned, floating point. The
bytecode and assembler are bacwards compatible, however.
llvm-svn: 31195
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
linking the program on the fly.
llvm-svn: 29721
|
|
|
|
| |
llvm-svn: 28832
|
|
|
|
| |
llvm-svn: 28826
|
|
|
|
| |
llvm-svn: 28635
|
|
|
|
|
|
|
|
| |
Minor tweaks in public headers and a few .cpp files so that LLVM can build
successfully with -pedantic and projects using LLVM with -pedantic don't
get warnings from LLVM. There's still more -pedantic warnings to fix.
llvm-svn: 28453
|
|
|
|
|
|
|
|
| |
target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference.
This fixes PR 759.
llvm-svn: 28074
|
|
|
|
| |
llvm-svn: 27037
|
|
|
|
| |
llvm-svn: 26970
|
|
|
|
|
|
| |
Now you can build a tool with just the JIT or just the interpreter.
llvm-svn: 26946
|
|
|
|
|
|
|
|
| |
therefore the function being called must be a main() returning an int. The
consequences when these assumptions are false are not good, so don't assume
them.
llvm-svn: 26031
|
|
|
|
| |
llvm-svn: 22523
|
|
|
|
| |
llvm-svn: 22254
|
|
|
|
| |
llvm-svn: 21440
|
|
|
|
|
|
| |
* Convert tabs to spaces
llvm-svn: 21421
|
|
|
|
|
|
|
|
| |
using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*.
This patch is contributed by Gabor Greif, thanks!
llvm-svn: 20597
|
|
|
|
|
|
|
|
| |
since we are dirty, special case __main. This should fix the infinite loop
horrible stuff that happens on linux-alpha when configuring llvm-gcc. It
might also help cygwin, who knows??
llvm-svn: 19729
|