comparison src/share/vm/opto/output.cpp @ 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 17b2fbdb6637
children 52b4284cb496 b6a8cc1e0d92
comparison
equal deleted inserted replaced
17978:ad51f24671c2 17980:0bf37f737702
163 163
164 bool Compile::need_stack_bang(int frame_size_in_bytes) const { 164 bool Compile::need_stack_bang(int frame_size_in_bytes) const {
165 // Determine if we need to generate a stack overflow check. 165 // Determine if we need to generate a stack overflow check.
166 // Do it if the method is not a stub function and 166 // Do it if the method is not a stub function and
167 // has java calls or has frame size > vm_page_size/8. 167 // has java calls or has frame size > vm_page_size/8.
168 // The debug VM checks that deoptimization doesn't trigger an
169 // unexpected stack overflow (compiled method stack banging should
170 // guarantee it doesn't happen) so we always need the stack bang in
171 // a debug VM.
168 return (UseStackBanging && stub_function() == NULL && 172 return (UseStackBanging && stub_function() == NULL &&
169 (has_java_calls() || frame_size_in_bytes > os::vm_page_size()>>3)); 173 (has_java_calls() || frame_size_in_bytes > os::vm_page_size()>>3
174 DEBUG_ONLY(|| true)));
170 } 175 }
171 176
172 bool Compile::need_register_stack_bang() const { 177 bool Compile::need_register_stack_bang() const {
173 // Determine if we need to generate a register stack overflow check. 178 // Determine if we need to generate a register stack overflow check.
174 // This is only used on architectures which have split register 179 // This is only used on architectures which have split register