Mercurial > hg > graal-compiler
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 |