Mercurial > hg > truffle
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 |