Dale Johannesen
29fc6f35a5
Add x86MMX a few more places.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113914 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-15 00:52:23 +00:00
Benjamin Kramer
6a7de3f205
Prune includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113850 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-14 20:49:00 +00:00
Dale Johannesen
e37c9e59b4
Fix comment typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113728 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-12 22:36:13 +00:00
Dale Johannesen
bb811a2445
Add X86 MMX type to bitcode and Type.
...
(The Ada bindings probably need it too, but all the
obvious places to change say "do not edit this file".)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113618 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10 20:55:01 +00:00
Chris Lattner
61c70e98ac
remove unions from LLVM IR. They are severely buggy and not
...
being actively maintained, improved, or extended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112356 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-28 04:09:24 +00:00
Chris Lattner
190a7f4a18
give PATypeHolder an explicit copy ctor which initializes the type pointer,
...
and make PATypeHolder work with null pointers.
The implicitly generated one didn't work on numerous levels, but was still
accepted, allowing all sorts of bugs with default constructed pa type holders.
Previously, they "sort of" worked if they were default constructed and then
destructed. Now they really work, and you can even default construct one,
then assign to it, amazing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107195 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29 19:20:38 +00:00
Daniel Dunbar
afc9a0c6b0
VMCore: Add Type::getIntN[Ptr]Ty, which are the obvious generic forms of
...
Type::getInt{1,8,...}[Ptr]Ty, so code can consistently use the methods on Type
without occasionally needed to call IntegerType::get.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101111 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-13 01:39:07 +00:00
Douglas Gregor
0179e97723
Switch isa_impl from a function template to a class template with a
...
static inline member function doit(). This enables the use of partial
specialization to override the last stage of the "isa" check.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99898 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30 18:05:52 +00:00
Duncan Sands
d03502318d
Correct LastPrimitiveTyID: MetadataType is a primitive type.
...
This change probably has no functional effect.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96669 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-19 09:18:53 +00:00
Duncan Sands
47c5188789
Introduce isOpaqueTy and use it rather than isa<OpaqueType>. Also, move some
...
methods to try to have the type predicates be more logically positioned.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96349 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16 14:50:09 +00:00
Duncan Sands
1df9859c40
There are two ways of checking for a given type, for example isa<PointerType>(T)
...
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96344 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16 11:11:14 +00:00
Duncan Sands
b0bc6c361d
Uniformize the names of type predicates: rather than having isFloatTy and
...
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96223 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 16:12:20 +00:00
Chris Lattner
fdfeb6976f
Add support for a union type in LLVM IR. Patch by Talin!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96011 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-12 20:49:41 +00:00
Duncan Sands
52c5e736b7
Flesh out the list of predicates, for those who like this style. I was
...
looking for isPointer, and added the rest for uniformity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95557 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-08 19:36:51 +00:00
Benjamin Kramer
13be48701d
Add a new predicate for integer type equality tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92759 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 20:04:48 +00:00
Chris Lattner
336e06bd0f
fix unit test that I broke.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91877 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-22 01:38:23 +00:00
Chris Lattner
8a8f818595
types don't need atomic inc/dec, they are local to an llvmcontext.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91873 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-22 01:17:43 +00:00
Chris Lattner
f3523592b2
Type.h doesn't need to #include LLVMContext.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85254 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-27 17:08:31 +00:00
Chandler Carruth
8b67f774e9
Move DataTypes.h to include/llvm/System, update all users. This breaks the last
...
direct inclusion edge from System to Support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85086 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-26 01:35:46 +00:00
Duncan Sands
83ed76869e
Make getPointerTo return a const PointerType* rather than
...
an unqualified PointerType* because it seems more correct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83454 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-07 07:35:19 +00:00
Duncan Sands
ac53a0b272
Introduce and use convenience methods for getting pointer types
...
where the element is of a basic builtin type. For example, to get
an i8* use getInt8PtrTy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83379 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-06 15:40:36 +00:00
Chris Lattner
5f7962c1b6
add more type predicates.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83296 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-05 05:48:40 +00:00
Chris Lattner
375c032468
add some helper functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83293 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-05 05:05:57 +00:00
Gabor Greif
f0891be8bd
Clean up the minor mess I caused with removing iterator.h. I shall take care of 80-col violations and the FIXME later. (Thanks goodness that I live in another continent, so the monkeypox did not strike me :-)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80224 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-27 06:41:46 +00:00
Chris Lattner
79c5d3f971
remove the std::ostream version of module and type printing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79823 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 04:52:46 +00:00
Owen Anderson
0e275dc538
Actually privatize a IntegerTypes, and fix a few bugs exposed by this.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78955 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13 23:27:32 +00:00
Owen Anderson
1d0be15f89
Push LLVMContexts through the IntegerType APIs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13 21:58:54 +00:00
Owen Anderson
fea4ec6dff
Add an LLVMContext to Type, hardwired to the global context until Type uniquing is moved on the contexts themselves.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75853 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-15 22:50:23 +00:00
Chris Lattner
0df5c8e3f1
Update the C bindings to keep the LLVMTypeKind up to date between the C/C++
...
stuff. Patch by Zoltan Varga!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75842 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-15 22:00:31 +00:00
Dan Gohman
04ff239d21
Fix a typo that Edwin spotted.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75661 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-14 18:52:00 +00:00
Dan Gohman
d51e5d0ee7
Add a comment clarifying the role of getPrimitiveTypeSizeInBits.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75659 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-14 18:48:32 +00:00
Nick Lewycky
db882950f3
There are five floating point types.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74806 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-05 22:35:49 +00:00
Nick Lewycky
cb9b9d52b4
There are *four* lights!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74804 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-05 22:23:28 +00:00
Owen Anderson
6f2c64d70a
Revert my last series of commits related to Timer and 64-bit atomics. Not all the targets
...
we care about are capable of supporting it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73993 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 20:17:22 +00:00
Owen Anderson
f43f9d0ef8
Atomic ops that do arithmetic use signed arithmetic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73980 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 18:30:27 +00:00
Owen Anderson
0de9953e88
Label the existing atomic functions as 32-bit specific, and add a 64-bit one that will be useful in
...
the near future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73971 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 18:01:04 +00:00
Owen Anderson
efdbfc4cef
Use atomic increment/decrement for reference counting of Type's.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73588 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17 00:28:49 +00:00
Owen Anderson
9a3df671ab
Add an atomic increment and decrement implementation, which will be used for
...
thread-safe reference counting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73587 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17 00:13:00 +00:00
Dan Gohman
6de29f8d96
Support vector casts in more places, fixing a variety of assertion
...
failures.
To support this, add some utility functions to Type to help support
vector/scalar-independent code. Change ConstantInt::get and
ConstantFP::get to support vector types, and add an overload to
ConstantInt::get that uses a static IntegerType type, for
convenience.
Introduce a new getConstant method for ScalarEvolution, to simplify
common use cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73431 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-15 22:12:54 +00:00
Nick Lewycky
a5f54a06b0
Create FunctionType::isValidArgumentType to go along with isValidReturnType.
...
Also create isValidElementType for ArrayType, PointerType, StructType and
VectorType.
Make LLParser use them. This closes up some holes like an assertion failure on:
%x = type {label}
but largely doesn't change any semantics. The only thing we accept now which
we didn't before is vectors of opaque type such as "<4 x opaque>". The opaque
can be resolved to an int or float when linking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73016 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-07 07:26:46 +00:00
Nick Lewycky
7a0370f66a
Give embedded metadata its own type instead of relying on EmptyStructTy.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72610 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-30 05:06:04 +00:00
Chris Lattner
3584a47588
Add a new Type::getPointerTo method, which is shorthand for
...
llvm::PointerType::get(). Patch by Anders Johnsen!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68772 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-10 06:42:02 +00:00
Nick Lewycky
21cc4460ef
Add support for embedded metadata to LLVM. This introduces two new types of
...
Constant, MDString and MDNode which can only be used by globals with a name
that starts with "llvm." or as arguments to a function with the same naming
restriction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68420 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-04 07:22:01 +00:00
Chris Lattner
ae3042316f
delete a bunch of duplicated type printing logic, using the type printing
...
stuff in AsmWriter.cpp for Type::getDescription().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65734 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-28 23:01:57 +00:00
Chris Lattner
795daece23
add a new form of Type::dump that takes a module for type names,
...
patch provided by Tomas Lindquist Olsen!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56929 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-01 20:16:19 +00:00
Chris Lattner
7353404303
remove dead method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55266 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-23 22:43:21 +00:00
Chris Lattner
944fac71e0
Switch the asmprinter (.ll) and all the stuff it requires over to
...
use raw_ostream instead of std::ostream. Among other goodness,
this speeds up llvm-dis of kc++ with a release build from 0.85s
to 0.49s (88% faster).
Other interesting changes:
1) This makes Value::print be non-virtual.
2) AP[S]Int and ConstantRange can no longer print to ostream directly,
use raw_ostream instead.
3) This fixes a bug in raw_os_ostream where it didn't flush itself
when destroyed.
4) This adds a new SDNode::print method, instead of only allowing "dump".
A lot of APIs have both std::ostream and raw_ostream versions, it would
be useful to go through and systematically anihilate the std::ostream
versions.
This passes dejagnu, but there may be minor fallout, plz let me know if
so and I'll fix it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55263 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-23 22:23:09 +00:00
Chris Lattner
3b12ab4519
Inline the fastpath of PATypeHolder::get(). This is a small speedup in
...
instcombine among other things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54814 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-15 15:16:50 +00:00
Dan Gohman
8666cc3b99
Add an isAggregateType predicate.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51794 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 22:40:06 +00:00
Anton Korobeynikov
43d1fd449f
For PR1338: rename include/llvm/ADT/ilist and friends to end with ".h"
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51687 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-29 17:41:17 +00:00