Commit Graph

122 Commits

Author SHA1 Message Date
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
Dan Gohman
2d0a77a1a4 It turns out there are only 3 non-first-class type kinds left now, so
it's simpler for isFirstClassType to use a negative test.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51511 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-23 22:47:52 +00:00
Dan Gohman
e4977cf750 Make structs and arrays first-class types, and add assembly
and bitcode support for the extractvalue and insertvalue
instructions and constant expressions.

Note that this does not yet include CodeGen support.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51468 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-23 01:55:30 +00:00
Dan Gohman
ddc4ee82b5 Add a Type::isSingleValueType method. This will be used by code
that currently uses Type::isFirstClassType and depends on it
returning false for struct or array types.

This commit doesn't change the behavior of Type::isFirstClassType.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51396 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-21 23:35:53 +00:00
Chris Lattner
f7e1913118 add a helper method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51274 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-19 21:17:01 +00:00
Bill Wendling
13d57320bd Remove warnings about unused parameters and shadowed variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51266 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-19 20:15:12 +00:00
Chris Lattner
f8d8b2b53a add an assertion to catch a null PATypeHolder, patch by Erick Tryzelaar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47563 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-25 21:28:46 +00:00
Chris Lattner
7ed47a1335 Don't attribute in file headers anymore. See llvmdev for the
discussion of this change.  Boy are my fingers tired. ;-)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45411 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-29 19:59:42 +00:00
Duncan Sands
d98164e6ee Fix spelling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42296 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-25 13:53:22 +00:00
Chris Lattner
53698d7694 remove dead enum value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41925 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-13 06:18:04 +00:00
Dan Gohman
ef1af7d6d5 Add Type::isIntOrIntVector, like Type::isFPOrFPVector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41190 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-20 19:25:59 +00:00
Dale Johannesen
320fc8a39e Long double, part 1 of N. Support in IR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40774 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-03 01:03:46 +00:00
Gabor Greif
a99be51bf5 Here is the bulk of the sanitizing.
Almost all occurrences of "bytecode" in the sources have been eliminated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37913 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-05 17:07:56 +00:00
Dan Gohman
e99d492a15 Correct a name in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37178 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-17 21:30:39 +00:00
Chris Lattner
a5f5a9c8e2 Fix a problem where primitive types lose their name after llvm_shutdown is called.
This also reduces the amount of work done at static construction time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36285 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-20 22:33:47 +00:00
Reid Spencer
5a1ebb3c99 For PR1209:
Implement Type class's ContainedTys without using a std::vector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35693 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-06 02:02:20 +00:00
Dan Gohman
423c2260f9 Add the 'explicit' keyword to several constructors that accept one
argument that don't appear intended as implicit-conversion operators.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35280 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-23 18:44:11 +00:00
Reid Spencer
9d6565a5b1 For PR1195:
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and
PackedTyID -> VectorTyID. No functional changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34293 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 02:26:10 +00:00
Anton Korobeynikov
94c49edfe2 Make doxygen happy
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33609 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 00:09:00 +00:00
Reid Spencer
c10305743c For PR1043:
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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33370 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 21:13:56 +00:00
Reid Spencer
34341b09f1 Remove unused forward class declarations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33276 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 01:49:59 +00:00
Chris Lattner
42a7551725 rename Type::isIntegral to Type::isInteger, eliminating the old Type::isInteger.
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! :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33225 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-15 02:27:26 +00:00
Reid Spencer
a54b7cbd45 For PR1064:
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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33113 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-12 07:05:14 +00:00
Reid Spencer
4fe16d607d Rename BoolTy as Int1Ty. Patch by Sheng Zhou.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33076 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-11 18:21:29 +00:00
Reid Spencer
f306293815 For PR950:
Make integer types signless:
  Rename [US]Byte->Int8, [U]Short->Int16, [U]Int->Int32, [U]Long->Int64
  Remove methods pertaining to sign of integer types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32775 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-31 05:20:51 +00:00
Bill Wendling
5c7e326585 Added an automatic cast to "std::ostream*" etc. from OStream. We then can
rework the hacks that had us passing OStream in. We pass in std::ostream*
instead, check for null, and then dispatch to the correct print() method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32636 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-17 05:15:13 +00:00
Andrew Lenharth
38ecbf18eb Packed Structures
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32361 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-08 18:06:16 +00:00
Bill Wendling
e81561909d Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are
now cerr, cout, and NullStream resp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32298 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 01:30:32 +00:00
Bill Wendling
b5ebf15b2b Added a temporary hack to get the llvm-streams to work for future checkins.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31978 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 22:21:29 +00:00
Reid Spencer
3da59db637 For PR950:
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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31931 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-27 01:05:10 +00:00
Chris Lattner
2e1c196470 Add isFPOrFPVector() method, which indicates if a type is either FP or a
vector of FP types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31198 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-26 18:22:45 +00:00
Chris Lattner
de65fb3a8b Now that ConstantBool::True/False are gone, we can modify Type.cpp to
eliminate its static dtors, without having code that depends on order of
initialization.  Eliminate static ctors/dtors from Type.cpp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30667 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-28 23:38:07 +00:00
Chris Lattner
e87a4b6cb0 remove misleading comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30585 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-23 06:09:45 +00:00
Jim Laskey
a25dfd2963 Moving this function to a permanent home to prevent a dependency cycle created
by the inline heuristic.  Was preventing llvm-gcc4 from building.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29278 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-25 23:22:00 +00:00
Vladimir Prus
e2e83c9994 Clarify type naming.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28587 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-31 16:03:20 +00:00
Vladimir Prus
e167af3023 Make doc comment visible in doxygen output. Clarify Type construction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28555 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-30 15:49:30 +00:00
Reid Spencer
19b7e0e0ca For PR786:
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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28453 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-24 19:21:13 +00:00
Chris Lattner
d1adbc09a9 How could this ever have worked?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27409 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 19:05:42 +00:00
Chris Lattner
ab0e04c2f2 add a new Type::getIntegralTypeMask() method, which is useful for clients that
want to do bitwise inspection of integer types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26032 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-07 06:17:10 +00:00
Duraid Madina
2abbe867ab i love xmas!!!! *;D*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25016 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-26 08:36:53 +00:00
Chris Lattner
4de4123fb1 Shrink derived types by 8 bytes each by not having to have 2 vtables pointers
and other MI overhead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24344 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-13 03:26:12 +00:00
Chris Lattner
1c6a80d31c Refactor some code, moving methods and data around. This gets rid of some
virtual methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24342 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-13 03:13:26 +00:00
Chris Lattner
665d62efdf Shrink the Type class from 32 to 28 bytes on Darwin (which has silly 32-bit
bools).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24326 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-12 10:07:47 +00:00
Chris Lattner
6dc0b7bea9 remove a dead method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24325 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-12 08:42:30 +00:00
Chris Lattner
4c5d305b1a add a method, remove a dead #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21482 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-23 21:59:42 +00:00
Alkis Evlogimenos
4283d49e06 Add method to return the type this type will be promoted to if it is
passed through a variable argument function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21462 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-23 00:11:21 +00:00
Misha Brukman
9769ab2226 Remove trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21408 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-21 20:19:05 +00:00
Chris Lattner
82870e0b73 Fix problems compiling with G++ 4.x.x with -pedantic. Thanks to
Vladimir Merzliakov for the patch!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20513 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-07 20:35:45 +00:00
Chris Lattner
e4666594d0 Now that type does not derive from Value, these do not need to be virtual.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20393 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-02 03:43:55 +00:00