Request for review (S): 6589834 deoptimization problem with -XX:+DeoptimizeALot
Changpeng.Fang at Sun.COM
Thu Apr 23 13:33:57 PDT 2009
I have updated following your comment. The updated webrev is:
On 04/22/09 15:42, Vladimir Kozlov wrote:
> 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
>> 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.
More information about the hotspot-compiler-dev