154 const llvm::PointerType* zeroStack_type() const {
155 return _zeroStack_type;
156 }
157 const llvm::FunctionType* entry_point_type() const {
158 return _entry_point_type;
159 }
160 const llvm::FunctionType* osr_entry_point_type() const {
161 return _osr_entry_point_type;
162 }
163
164 // Mappings
165 private:
166 const llvm::Type* _to_stackType[T_CONFLICT];
167 const llvm::Type* _to_arrayType[T_CONFLICT];
168
169 private:
170 const llvm::Type* map_type(const llvm::Type* const* table,
171 BasicType type) const {
172 assert(type >= 0 && type < T_CONFLICT, "unhandled type");
173 const llvm::Type* result = table[type];
174 assert(type != NULL, "unhandled type");
175 return result;
176 }
177
178 public:
179 const llvm::Type* to_stackType(BasicType type) const {
180 return map_type(_to_stackType, type);
181 }
182 const llvm::Type* to_arrayType(BasicType type) const {
183 return map_type(_to_arrayType, type);
184 }
185
186 // Functions queued for freeing
187 private:
188 SharkFreeQueueItem* _free_queue;
189
190 public:
191 void push_to_free_queue(llvm::Function* function);
192 llvm::Function* pop_from_free_queue();
193 };
194
|
154 const llvm::PointerType* zeroStack_type() const {
155 return _zeroStack_type;
156 }
157 const llvm::FunctionType* entry_point_type() const {
158 return _entry_point_type;
159 }
160 const llvm::FunctionType* osr_entry_point_type() const {
161 return _osr_entry_point_type;
162 }
163
164 // Mappings
165 private:
166 const llvm::Type* _to_stackType[T_CONFLICT];
167 const llvm::Type* _to_arrayType[T_CONFLICT];
168
169 private:
170 const llvm::Type* map_type(const llvm::Type* const* table,
171 BasicType type) const {
172 assert(type >= 0 && type < T_CONFLICT, "unhandled type");
173 const llvm::Type* result = table[type];
174 assert(result != NULL, "unhandled type");
175 return result;
176 }
177
178 public:
179 const llvm::Type* to_stackType(BasicType type) const {
180 return map_type(_to_stackType, type);
181 }
182 const llvm::Type* to_arrayType(BasicType type) const {
183 return map_type(_to_arrayType, type);
184 }
185
186 // Functions queued for freeing
187 private:
188 SharkFreeQueueItem* _free_queue;
189
190 public:
191 void push_to_free_queue(llvm::Function* function);
192 llvm::Function* pop_from_free_queue();
193 };
194
|