1 //===-- llvm/Type.def - File that describes various LLVM types --*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file was developed by the LLVM research group and is distributed under
6 // the University of Illinois Open Source License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file contains descriptions of the various LLVM types and derived types.
11 // This file serves as a source of in source documentation and a can be
12 // #included to do something on all of the type definitions.
14 //===----------------------------------------------------------------------===//
16 // NOTE: NO INCLUDE GUARD DESIRED!
19 // If the user didn't specify one of the macros, give a default noop defn.
21 #ifndef HANDLE_PRIM_TYPE
22 #define HANDLE_PRIM_TYPE(x,y)
24 #ifndef HANDLE_DERV_TYPE
25 #define HANDLE_DERV_TYPE(x,y)
29 // HANDLE_PRIM_TYPE - Parameterized #define that takes the following fields to
30 // declare a primitive type:
32 // Type Name: This is the symbolic name of the type, without the trailing Ty.
33 // Type Size: This is the size or precision of the type.
35 HANDLE_PRIM_TYPE(Void , 0)
36 HANDLE_PRIM_TYPE(Bool , 1)
37 HANDLE_PRIM_TYPE(SByte , 1)
38 HANDLE_PRIM_TYPE(UByte , 1)
39 HANDLE_PRIM_TYPE(Short , 2)
40 HANDLE_PRIM_TYPE(UShort, 2)
41 HANDLE_PRIM_TYPE(Int , 4)
42 HANDLE_PRIM_TYPE(UInt , 4)
43 HANDLE_PRIM_TYPE(Long , 8)
44 HANDLE_PRIM_TYPE(ULong , 8)
45 HANDLE_PRIM_TYPE(Float , 4)
46 HANDLE_PRIM_TYPE(Double, 8)
47 HANDLE_PRIM_TYPE(Type , 0)
48 HANDLE_PRIM_TYPE(Label , 0)
51 // HANDLE_DERV_TYPE - Parameterized #define that takes the following fields to
52 // declare a derived type:
54 // Type Name: This is the symbolic name of the type, without the trailing Ty.
55 // Class Name: This is the subclass that implements the derived type.
57 HANDLE_DERV_TYPE(Function, FunctionType)
58 HANDLE_DERV_TYPE(Array , ArrayType)
59 HANDLE_DERV_TYPE(Pointer , PointerType)
60 HANDLE_DERV_TYPE(Struct , StructType)
61 HANDLE_DERV_TYPE(Opaque , OpaqueType)
63 // Kill the macros on exit...
64 #undef HANDLE_PRIM_TYPE
65 #undef HANDLE_DERV_TYPE