165 ExceptionHandlerTable* handler_table() { return &_handler_table; }
166 ImplicitExceptionTable* inc_table() { return &_inc_table; }
167 OopMapSet* oop_map_set() { return _oop_map_set; }
168
169 // Scratch buffer
170 BufferBlob* scratch_buffer_blob() { return _scratch_buffer_blob; }
171 void init_scratch_buffer_blob(int const_size);
172 void clear_scratch_buffer_blob();
173 void set_scratch_buffer_blob(BufferBlob* b) { _scratch_buffer_blob = b; }
174 relocInfo* scratch_locs_memory() { return _scratch_locs_memory; }
175 void set_scratch_locs_memory(relocInfo* b) { _scratch_locs_memory = b; }
176 int scratch_buffer_code_size() { return (address)scratch_locs_memory() - _scratch_buffer_blob->content_begin(); }
177
178 // emit to scratch blob, report resulting size
179 uint scratch_emit_size(const Node* n);
180 void set_in_scratch_emit_size(bool x) { _in_scratch_emit_size = x; }
181 bool in_scratch_emit_size() const { return _in_scratch_emit_size; }
182
183 BufferSizingData* buffer_sizing_data() { return &_buf_sizes; }
184
185 enum ScratchBufferBlob {
186 MAX_inst_size = 2048,
187 MAX_locs_size = 128, // number of relocInfo elements
188 MAX_const_size = 128,
189 MAX_stubs_size = 128
190 };
191
192 int frame_slots() const { return _frame_slots; }
193 int frame_size_in_words() const; // frame_slots in units of the polymorphic 'words'
194 int frame_size_in_bytes() const { return _frame_slots << LogBytesPerInt; }
195
196 int bang_size_in_bytes() const;
197
198 void set_node_bundling_limit(uint n) { _node_bundling_limit = n; }
199 void set_node_bundling_base(Bundle* b) { _node_bundling_base = b; }
200
201 Bundle* node_bundling(const Node *n);
202 bool valid_bundle_info(const Node *n);
203
204 bool starts_bundle(const Node *n) const;
205 bool contains_as_owner(GrowableArray<MonitorValue*> *monarray, ObjectValue *ov) const;
206 bool contains_as_scalarized_obj(JVMState* jvms, MachSafePointNode* sfn,
207 GrowableArray<ScopeValue*>* objs,
208 ObjectValue* ov) const;
209
210 // Dump formatted assembly
211 #if defined(SUPPORT_OPTO_ASSEMBLY)
|
165 ExceptionHandlerTable* handler_table() { return &_handler_table; }
166 ImplicitExceptionTable* inc_table() { return &_inc_table; }
167 OopMapSet* oop_map_set() { return _oop_map_set; }
168
169 // Scratch buffer
170 BufferBlob* scratch_buffer_blob() { return _scratch_buffer_blob; }
171 void init_scratch_buffer_blob(int const_size);
172 void clear_scratch_buffer_blob();
173 void set_scratch_buffer_blob(BufferBlob* b) { _scratch_buffer_blob = b; }
174 relocInfo* scratch_locs_memory() { return _scratch_locs_memory; }
175 void set_scratch_locs_memory(relocInfo* b) { _scratch_locs_memory = b; }
176 int scratch_buffer_code_size() { return (address)scratch_locs_memory() - _scratch_buffer_blob->content_begin(); }
177
178 // emit to scratch blob, report resulting size
179 uint scratch_emit_size(const Node* n);
180 void set_in_scratch_emit_size(bool x) { _in_scratch_emit_size = x; }
181 bool in_scratch_emit_size() const { return _in_scratch_emit_size; }
182
183 BufferSizingData* buffer_sizing_data() { return &_buf_sizes; }
184
185 // SCCache::write_nmethod bails when nmethod buffer is expanded.
186 // Large methods would routinely expand the buffer, making themselves
187 // ineligible for SCCache stores. In order to minimize this effect,
188 // we default to larger default sizes. We do this only when SCC dumping
189 // is active, to avoid impact on default configuration.
190 //
191 // Additionally, GC barrier stubs expand up to MAX_inst_size in mainline,
192 // which also forced resizes often. Current code replaces it with
193 // max_inst_gcstub_size, which equals to old MAX_inst_size, so GC stubs
194 // still fit nicely, and do not force the resizes too often.
195 //
196 // The old enum is renamed, so direct misuse in new code from mainline would
197 // be caught as build failure.
198 //
199 // TODO: Revert this back to mainline once SCCache is fixed.
200 enum ScratchBufferBlob {
201 mainline_MAX_inst_size = 2048,
202 MAX_locs_size = 128, // number of relocInfo elements
203 MAX_const_size = 128,
204 MAX_stubs_size = 128
205 };
206
207 // Current uses of MAX_inst_size should be replaced with these getters:
208 static int max_inst_size();
209 static int max_inst_gcstub_size();
210
211 int frame_slots() const { return _frame_slots; }
212 int frame_size_in_words() const; // frame_slots in units of the polymorphic 'words'
213 int frame_size_in_bytes() const { return _frame_slots << LogBytesPerInt; }
214
215 int bang_size_in_bytes() const;
216
217 void set_node_bundling_limit(uint n) { _node_bundling_limit = n; }
218 void set_node_bundling_base(Bundle* b) { _node_bundling_base = b; }
219
220 Bundle* node_bundling(const Node *n);
221 bool valid_bundle_info(const Node *n);
222
223 bool starts_bundle(const Node *n) const;
224 bool contains_as_owner(GrowableArray<MonitorValue*> *monarray, ObjectValue *ov) const;
225 bool contains_as_scalarized_obj(JVMState* jvms, MachSafePointNode* sfn,
226 GrowableArray<ScopeValue*>* objs,
227 ObjectValue* ov) const;
228
229 // Dump formatted assembly
230 #if defined(SUPPORT_OPTO_ASSEMBLY)
|