review(S): 7058510: multinewarray with 6 dimensions uncommon traps in server compiler
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.
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/
More information about the hotspot-compiler-dev