< prev index next > src/hotspot/share/opto/output.hpp
Print this page
void set_in_scratch_emit_size(bool x) { _in_scratch_emit_size = x; }
bool in_scratch_emit_size() const { return _in_scratch_emit_size; }
BufferSizingData* buffer_sizing_data() { return &_buf_sizes; }
enum ScratchBufferBlob {
! MAX_inst_size = 2048,
MAX_locs_size = 128, // number of relocInfo elements
MAX_const_size = 128,
MAX_stubs_size = 128
};
int frame_slots() const { return _frame_slots; }
int frame_size_in_words() const; // frame_slots in units of the polymorphic 'words'
int frame_size_in_bytes() const { return _frame_slots << LogBytesPerInt; }
int bang_size_in_bytes() const;
void set_in_scratch_emit_size(bool x) { _in_scratch_emit_size = x; }
bool in_scratch_emit_size() const { return _in_scratch_emit_size; }
BufferSizingData* buffer_sizing_data() { return &_buf_sizes; }
+ // SCCache::write_nmethod bails when nmethod buffer is expanded.
+ // Large methods would routinely expand the buffer, making themselves
+ // ineligible for SCCache stores. In order to minimize this effect,
+ // we default to larger default sizes. We do this only when SCC dumping
+ // is active, to avoid impact on default configuration.
+ //
+ // Additionally, GC barrier stubs expand up to MAX_inst_size in mainline,
+ // which also forced resizes often. Current code replaces it with
+ // max_inst_gcstub_size, which equals to old MAX_inst_size, so GC stubs
+ // still fit nicely, and do not force the resizes too often.
+ //
+ // The old enum is renamed, so direct misuse in new code from mainline would
+ // be caught as build failure.
+ //
+ // TODO: Revert this back to mainline once SCCache is fixed.
enum ScratchBufferBlob {
! mainline_MAX_inst_size = 2048,
MAX_locs_size = 128, // number of relocInfo elements
MAX_const_size = 128,
MAX_stubs_size = 128
};
+ // Current uses of MAX_inst_size should be replaced with these getters:
+ static int max_inst_size();
+ static int max_inst_gcstub_size();
+
int frame_slots() const { return _frame_slots; }
int frame_size_in_words() const; // frame_slots in units of the polymorphic 'words'
int frame_size_in_bytes() const { return _frame_slots << LogBytesPerInt; }
int bang_size_in_bytes() const;
< prev index next >