src/share/vm/opto/output.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/share/vm/opto/output.cpp
src/share/vm/opto/output.cpp
Print this page
rev 6132 : 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:
rev 6133 : [mq]: newstackbang-reviews
*** 169,180 ****
bool Compile::need_stack_bang(int frame_size_in_bytes) const {
// Determine if we need to generate a stack overflow check.
// Do it if the method is not a stub function and
// has java calls or has frame size > vm_page_size/8.
return (UseStackBanging && stub_function() == NULL &&
! (has_java_calls() || frame_size_in_bytes > os::vm_page_size()>>3));
}
bool Compile::need_register_stack_bang() const {
// Determine if we need to generate a register stack overflow check.
// This is only used on architectures which have split register
--- 169,185 ----
bool Compile::need_stack_bang(int frame_size_in_bytes) const {
// Determine if we need to generate a stack overflow check.
// Do it if the method is not a stub function and
// has java calls or has frame size > vm_page_size/8.
+ // The debug VM checks that deoptimization doesn't trigger an
+ // unexpected stack overflow (compiled method stack banging should
+ // guarantee it doesn't happen) so we always need the stack bang in
+ // a debug VM.
return (UseStackBanging && stub_function() == NULL &&
! (has_java_calls() || frame_size_in_bytes > os::vm_page_size()>>3
! DEBUG_ONLY(|| true)));
}
bool Compile::need_register_stack_bang() const {
// Determine if we need to generate a register stack overflow check.
// This is only used on architectures which have split register
src/share/vm/opto/output.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File