aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Type.def
blob: 25ad5cd3bd52341b51e50eab764a6d4f6670ed54 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//===-- llvm/Type.def - File that describes various LLVM types --*- C++ -*-===//
// 
//                     The LLVM Compiler Infrastructure
//
// This file was developed by the LLVM research group and is distributed under
// the University of Illinois Open Source License. See LICENSE.TXT for details.
// 
//===----------------------------------------------------------------------===//
//
// This file contains descriptions of the various LLVM types and derived types.
// This file serves as a source of in source documentation and a can be
// #included to do something on all of the type definitions.
//
//===----------------------------------------------------------------------===//

// NOTE: NO INCLUDE GUARD DESIRED!


// If the user did not specify one of the macros, give a default noop defn.
//
#ifndef HANDLE_PRIM_TYPE
#define HANDLE_PRIM_TYPE(x,y)
#endif
#ifndef HANDLE_DERV_TYPE
#define HANDLE_DERV_TYPE(x,y)
#endif


// HANDLE_PRIM_TYPE - Parameterized #define that takes the following fields to
// declare a primitive type:
//
//   Type Name:  This is the symbolic name of the type, without the trailing Ty.
//   Type Size:  This is the size or precision of the type.
//
HANDLE_PRIM_TYPE(Void  , 0)
HANDLE_PRIM_TYPE(Bool  , 1)
HANDLE_PRIM_TYPE(SByte , 1)
HANDLE_PRIM_TYPE(UByte , 1)
HANDLE_PRIM_TYPE(Short , 2)
HANDLE_PRIM_TYPE(UShort, 2)
HANDLE_PRIM_TYPE(Int   , 4)
HANDLE_PRIM_TYPE(UInt  , 4)
HANDLE_PRIM_TYPE(Long  , 8)
HANDLE_PRIM_TYPE(ULong , 8)
HANDLE_PRIM_TYPE(Float , 4)
HANDLE_PRIM_TYPE(Double, 8)
HANDLE_PRIM_TYPE(Label , 0)


// HANDLE_DERV_TYPE - Parameterized #define that takes the following fields to
// declare a derived type:
//
//   Type Name:  This is the symbolic name of the type, without the trailing Ty.
//   Class Name: This is the subclass that implements the derived type.
//
HANDLE_DERV_TYPE(Function, FunctionType)
HANDLE_DERV_TYPE(Array   , ArrayType)
HANDLE_DERV_TYPE(Pointer , PointerType)
HANDLE_DERV_TYPE(Struct  , StructType)
HANDLE_DERV_TYPE(Opaque  , OpaqueType)
HANDLE_DERV_TYPE(Packed  , PackedType)

// Kill the macros on exit...
#undef HANDLE_PRIM_TYPE
#undef HANDLE_DERV_TYPE