review(S): 7058510: multinewarray with 6 dimensions uncommon traps in server compiler
igor.veresov at oracle.com
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.
> 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.
> 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
>> 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