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

Vladimir Kozlov vladimir.kozlov at oracle.com
Mon Jun 27 13:02:50 PDT 2011


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? 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.

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: http://cr.openjdk.java.net/~iveresov/7058510/webrev.00/
>
>
> Thanks,
> igor


More information about the hotspot-compiler-dev mailing list