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.
Vladimir
Changpeng Fang wrote:
> http://cr.openjdk.java.net/~cfang/6589834/webrev.00/
>
> 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