OLD | NEW |
1 //===- subzero/src/IceDefs.h - Common Subzero declaraions -------*- C++ -*-===// | 1 //===- subzero/src/IceDefs.h - Common Subzero declaraions -------*- 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 various useful types and classes that have | 10 // This file declares various useful types and classes that have |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 typedef llvm::ilist<Inst> InstList; | 100 typedef llvm::ilist<Inst> InstList; |
101 // Ideally PhiList would be llvm::ilist<InstPhi>, and similar for | 101 // Ideally PhiList would be llvm::ilist<InstPhi>, and similar for |
102 // AssignList, but this runs into issues with SFINAE. | 102 // AssignList, but this runs into issues with SFINAE. |
103 typedef InstList PhiList; | 103 typedef InstList PhiList; |
104 typedef InstList AssignList; | 104 typedef InstList AssignList; |
105 // VarList and NodeList are arena-allocated from the Cfg's allocator. | 105 // VarList and NodeList are arena-allocated from the Cfg's allocator. |
106 typedef std::vector<Variable *, CfgLocalAllocator<Variable *>> VarList; | 106 typedef std::vector<Variable *, CfgLocalAllocator<Variable *>> VarList; |
107 typedef std::vector<CfgNode *, CfgLocalAllocator<CfgNode *>> NodeList; | 107 typedef std::vector<CfgNode *, CfgLocalAllocator<CfgNode *>> NodeList; |
108 typedef std::vector<Constant *> ConstantList; | 108 typedef std::vector<Constant *> ConstantList; |
109 | 109 |
| 110 typedef std::vector<VariableDeclaration *> VariableDeclarationList; |
| 111 |
110 // SizeT is for holding small-ish limits like number of source | 112 // SizeT is for holding small-ish limits like number of source |
111 // operands in an instruction. It is used instead of size_t (which | 113 // operands in an instruction. It is used instead of size_t (which |
112 // may be 64-bits wide) when we want to save space. | 114 // may be 64-bits wide) when we want to save space. |
113 typedef uint32_t SizeT; | 115 typedef uint32_t SizeT; |
114 | 116 |
115 // InstNumberT is for holding an instruction number. Instruction | 117 // InstNumberT is for holding an instruction number. Instruction |
116 // numbers are used for representing Variable live ranges. | 118 // numbers are used for representing Variable live ranges. |
117 typedef int32_t InstNumberT; | 119 typedef int32_t InstNumberT; |
118 | 120 |
119 // A LiveBeginEndMapEntry maps a Variable::Number value to an | 121 // A LiveBeginEndMapEntry maps a Variable::Number value to an |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
177 return llvm::make_range(Container.rbegin(), Container.rend()); | 179 return llvm::make_range(Container.rbegin(), Container.rend()); |
178 } | 180 } |
179 template <typename T> | 181 template <typename T> |
180 llvm::iterator_range<typename T::reverse_iterator> reverse_range(T &Container) { | 182 llvm::iterator_range<typename T::reverse_iterator> reverse_range(T &Container) { |
181 return llvm::make_range(Container.rbegin(), Container.rend()); | 183 return llvm::make_range(Container.rbegin(), Container.rend()); |
182 } | 184 } |
183 | 185 |
184 } // end of namespace Ice | 186 } // end of namespace Ice |
185 | 187 |
186 #endif // SUBZERO_SRC_ICEDEFS_H | 188 #endif // SUBZERO_SRC_ICEDEFS_H |
OLD | NEW |