Request for review (S): 6589834 deoptimization problem with -XX:+DeoptimizeALot

Vladimir Kozlov Vladimir.Kozlov at Sun.COM
Wed Apr 22 15:42:08 PDT 2009

For multianewarray passing ndimensions parameter is incorrect since
it is decremented for recursive calls. You have to add an additional
parameter (nargs ?) for expand_multianewarray() to pass original
ndimensions values to all recursive calls.


Changpeng Fang wrote:
> Problem Summary: For  new_array allocation in inlining intrinsics,  the 
> arguments should to pushed
> back to the stack (through stack pointer adjustment) when an 
> uncommon_trap is actually inserted.
> However, in functions like inline_native_clone, the stack pointer 
> adjustment was performed too early
> (before new_array allocation), and if a deoptimization is triggered on 
> the slow path allocation, the control
> will be transferred to the interpreter with an incorrect interpreter stack.
> Proposed Solution: Adjust the stack pointer only when uncommon_trap is 
> actually inserted.
> Tests: passed with JPRT and the test cases attached to the CR 6589834.
> Thanks,
> Changpeng

More information about the hotspot-compiler-dev mailing list