review(S): 7058510: multinewarray with 6 dimensions uncommon traps in server compiler

Igor Veresov igor.veresov at
Mon Jun 27 13:36:28 PDT 2011

On 6/27/11 1:02 PM, Vladimir Kozlov wrote:
> I surprise to see that we only use one bit in _flags for flags, I looked
> through sources and found only null_seen_flag. Is it really true?

As far as I can see, yes.

> Then
> why we did not do this change before? It could be for an other reason
> but I can't remember now. Do anyone remember? We always struggled to fit
> trap per bytecode info into MDO.
> I am for these changes if they really work.

They do, I've tested it with Peter's test case and specjvm98.


> Thanks,
> Vladimir
> On 6/27/11 12:07 PM, Igor Veresov wrote:
>> Problem: multinewarray with >= 6 dimensions is not supported by c2 and
>> is plugged with uncommon trap. When executed in
>> the main code path this yields performance far worse than even
>> interpreter.
>> Solution: Count these traps per bci and when the number exceeds
>> PerBytecodeTrapLimit make it not compilable. With tiered
>> it would result in recompilation at level 1 (pure C1), with regular
>> scheme the method will continue in the interpreter.
>> Webrev:
>> Thanks,
>> igor

More information about the hotspot-compiler-dev mailing list