OLD | NEW |
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 |
(...skipping 22 matching lines...) Expand all Loading... |
33 #undef X | 33 #undef X |
34 TargetArch_NUM | 34 TargetArch_NUM |
35 }; | 35 }; |
36 | 36 |
37 const char *targetArchString(TargetArch Arch); | 37 const char *targetArchString(TargetArch Arch); |
38 | 38 |
39 inline Ostream &operator<<(Ostream &Stream, TargetArch Arch) { | 39 inline Ostream &operator<<(Ostream &Stream, TargetArch Arch) { |
40 return Stream << targetArchString(Arch); | 40 return Stream << targetArchString(Arch); |
41 } | 41 } |
42 | 42 |
| 43 // The list of all target instruction sets. Individual targets will |
| 44 // map this to include only what is valid for the target. |
| 45 enum TargetInstructionSet { |
| 46 X86InstructionSet_Begin, |
| 47 // SSE2 is the PNaCl baseline instruction set. |
| 48 X86InstructionSet_SSE2 = X86InstructionSet_Begin, |
| 49 X86InstructionSet_SSE4_1, |
| 50 X86InstructionSet_End, |
| 51 }; |
| 52 |
43 enum OptLevel { Opt_m1, Opt_0, Opt_1, Opt_2 }; | 53 enum OptLevel { Opt_m1, Opt_0, Opt_1, Opt_2 }; |
44 | 54 |
45 size_t typeWidthInBytes(Type Ty); | 55 size_t typeWidthInBytes(Type Ty); |
46 size_t typeAlignInBytes(Type Ty); | 56 size_t typeAlignInBytes(Type Ty); |
47 size_t typeNumElements(Type Ty); | 57 size_t typeNumElements(Type Ty); |
48 Type typeElementType(Type Ty); | 58 Type typeElementType(Type Ty); |
49 const char *typeString(Type Ty); | 59 const char *typeString(Type Ty); |
50 | 60 |
51 inline Type getPointerType() { return IceType_i32; } | 61 inline Type getPointerType() { return IceType_i32; } |
52 | 62 |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 }; | 148 }; |
139 | 149 |
140 inline Ostream &operator<<(Ostream &Stream, const FuncSigType &Sig) { | 150 inline Ostream &operator<<(Ostream &Stream, const FuncSigType &Sig) { |
141 Sig.dump(Stream); | 151 Sig.dump(Stream); |
142 return Stream; | 152 return Stream; |
143 } | 153 } |
144 | 154 |
145 } // end of namespace Ice | 155 } // end of namespace Ice |
146 | 156 |
147 #endif // SUBZERO_SRC_ICETYPES_H | 157 #endif // SUBZERO_SRC_ICETYPES_H |
OLD | NEW |