< prev index next >

src/hotspot/share/opto/output.hpp

Print this page

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)
< prev index next >