Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(617)

Side by Side Diff: src/IceTypes.h

Issue 353553004: Add support for vector types and vector constants. (Closed) Base URL: https://gerrit.chromium.org/gerrit/p/native_client/pnacl-subzero.git@master
Patch Set: Print out types in error messages. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 //===- subzero/src/IceTypes.h - Primitive ICE types -------------*- C++ -*-===// 1 //===- subzero/src/IceTypes.h - Primitive ICE types -------------*- C++ -*-===//
2 // 2 //
3 // The Subzero Code Generator 3 // The Subzero Code Generator
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 // 9 //
10 // This file declares a few properties of the primitive types allowed 10 // This file declares a few properties of the primitive types allowed
11 // in Subzero. Every Subzero source file is expected to include 11 // in Subzero. Every Subzero source file is expected to include
12 // IceTypes.h. 12 // IceTypes.h.
13 // 13 //
14 //===----------------------------------------------------------------------===// 14 //===----------------------------------------------------------------------===//
15 15
16 #ifndef SUBZERO_SRC_ICETYPES_H 16 #ifndef SUBZERO_SRC_ICETYPES_H
17 #define SUBZERO_SRC_ICETYPES_H 17 #define SUBZERO_SRC_ICETYPES_H
18 18
19 #include "IceTypes.def" 19 #include "IceTypes.def"
20 20
21 namespace Ice { 21 namespace Ice {
22 22
23 enum Type { 23 enum Type {
24 #define X(tag, size, align, str) tag, 24 #define X(tag, size, align, elts, elty, str) tag,
25 ICETYPE_TABLE 25 ICETYPE_TABLE
26 #undef X 26 #undef X
27 IceType_NUM 27 IceType_NUM
28 }; 28 };
29 29
30 enum TargetArch { 30 enum TargetArch {
31 Target_X8632, 31 Target_X8632,
32 Target_X8664, 32 Target_X8664,
33 Target_ARM32, 33 Target_ARM32,
34 Target_ARM64 34 Target_ARM64
35 }; 35 };
36 36
37 enum OptLevel { 37 enum OptLevel {
38 Opt_m1, 38 Opt_m1,
39 Opt_0, 39 Opt_0,
40 Opt_1, 40 Opt_1,
41 Opt_2 41 Opt_2
42 }; 42 };
43 43
44 size_t typeWidthInBytes(Type Ty); 44 size_t typeWidthInBytes(Type Ty);
45 size_t typeAlignInBytes(Type Ty); 45 size_t typeAlignInBytes(Type Ty);
46 size_t typeNumElements(Type Ty);
47 Type typeElementType(Type Ty);
48
49 inline bool isVectorType(Type Ty) { return typeNumElements(Ty) > 1; }
46 50
47 template <> Ostream &operator<<(class Ostream &Str, const Type &Ty); 51 template <> Ostream &operator<<(class Ostream &Str, const Type &Ty);
48 52
49 } // end of namespace Ice 53 } // end of namespace Ice
50 54
51 #endif // SUBZERO_SRC_ICETYPES_H 55 #endif // SUBZERO_SRC_ICETYPES_H
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698