OLD | NEW |
(Empty) | |
| 1 //===- subzero/src/IceTypes.h - Primitive ICE types -------------*- C++ -*-===// |
| 2 // |
| 3 // The Subzero Code Generator |
| 4 // |
| 5 // This file is distributed under the University of Illinois Open Source |
| 6 // License. See LICENSE.TXT for details. |
| 7 // |
| 8 //===----------------------------------------------------------------------===// |
| 9 // |
| 10 // This file declares a few properties of the primitive types allowed |
| 11 // in Subzero. Every Subzero source file is expected to include |
| 12 // IceTypes.h. |
| 13 // |
| 14 //===----------------------------------------------------------------------===// |
| 15 |
| 16 #ifndef SUBZERO_SRC_ICETYPES_H |
| 17 #define SUBZERO_SRC_ICETYPES_H |
| 18 |
| 19 namespace Ice { |
| 20 |
| 21 #define ICETYPE_TABLE \ |
| 22 /* enum value, size in bytes, printable string */ \ |
| 23 X(IceType_void, 0, "void") X(IceType_i1, 1, "i1") X(IceType_i8, 1, "i8") \ |
| 24 X(IceType_i16, 2, "i16") X(IceType_i32, 4, "i32") \ |
| 25 X(IceType_i64, 8, "i64") X(IceType_f32, 4, "float") \ |
| 26 X(IceType_f64, 8, "double") |
| 27 |
| 28 #define X(tag, size, str) tag, |
| 29 |
| 30 enum IceType { |
| 31 ICETYPE_TABLE |
| 32 }; |
| 33 #undef X |
| 34 |
| 35 size_t typeWidthInBytes(IceType Type); |
| 36 |
| 37 template <> IceOstream &operator<<(class IceOstream &Str, const IceType &Type); |
| 38 |
| 39 } // end of namespace Ice |
| 40 |
| 41 #endif // SUBZERO_SRC_ICETYPES_H |
OLD | NEW |