RFR: 8221647: [lworld] Performance regression due to the fact that check if array is array of values is not hoisted out of the loop.

Tobias Hartmann tobias.hartmann at oracle.com
Tue Jun 11 15:41:35 UTC 2019


Hi Roland,

On 11.06.19 17:12, Roland Westrelin wrote:
>> graphKit.cpp:
>> - line 3405: I think you should use GraphKit::load_object_klass or LoadKlassNode::make.
> 
> But then for compressed class pointers, that would return a decode node
> when what I need is the LoadKlassN.

Ah, right.

> Hard for me to test builds on windows. I changed 1L << to be ((jlong)1)
> << instead. Not sure if that's sufficient.

Okay, I'll re-run testing and let you know once it passed.

>> And a failure with TestLWorld:
> 
> I think the problem here is that G1 barriers get in the way of
> optimizations so the IR differs when it's compiled with parallel GC
> enabld compared to G1 enabled. I changed the match rule to 2 match
> rules, one for G1 enabled and one for G1 disabled.
> 
> New webrev:
> http://cr.openjdk.java.net/~roland/8221647/webrev.01/
> 
> incremental:
> 
> http://cr.openjdk.java.net/~roland/8221647/webrev.00-01/

Thanks for making these changes. Looks good.

Best regards,
Tobias


More information about the valhalla-dev mailing list