comparison src/share/vm/c1/c1_Compilation.hpp @ 17980:0bf37f737702

8032410: compiler/uncommontrap/TestStackBangRbp.java times out on Solaris-Sparc V9 Summary: make compiled code bang the stack by the worst case size of the interpreter frame at deoptimization points. Reviewed-by: twisti, kvn
author roland
date Tue, 01 Apr 2014 09:36:49 +0200
parents 849eb7bfceac
children 52b4284cb496
comparison
equal deleted inserted replaced
17978:ad51f24671c2 17980:0bf37f737702
86 ImplicitExceptionTable _implicit_exception_table; 86 ImplicitExceptionTable _implicit_exception_table;
87 LinearScan* _allocator; 87 LinearScan* _allocator;
88 CodeOffsets _offsets; 88 CodeOffsets _offsets;
89 CodeBuffer _code; 89 CodeBuffer _code;
90 bool _has_access_indexed; 90 bool _has_access_indexed;
91 int _interpreter_frame_size; // Stack space needed in case of a deoptimization
91 92
92 // compilation helpers 93 // compilation helpers
93 void initialize(); 94 void initialize();
94 void build_hir(); 95 void build_hir();
95 void emit_lir(); 96 void emit_lir();
260 261
261 ciKlass* cha_exact_type(ciType* type); 262 ciKlass* cha_exact_type(ciType* type);
262 263
263 // Dump inlining replay data to the stream. 264 // Dump inlining replay data to the stream.
264 void dump_inline_data(outputStream* out) { /* do nothing now */ } 265 void dump_inline_data(outputStream* out) { /* do nothing now */ }
266
267 // How much stack space would the interpreter need in case of a
268 // deoptimization (worst case)
269 void update_interpreter_frame_size(int size) {
270 if (_interpreter_frame_size < size) {
271 _interpreter_frame_size = size;
272 }
273 }
274
275 int interpreter_frame_size() const {
276 return _interpreter_frame_size;
277 }
265 }; 278 };
266 279
267 280
268 // Macro definitions for unified bailout-support 281 // Macro definitions for unified bailout-support
269 // The methods bailout() and bailed_out() are present in all classes 282 // The methods bailout() and bailed_out() are present in all classes