RFR: 8213035: Pack MethodHandleInlineStrategy coder and length into a long

Claes Redestad claes.redestad at oracle.com
Mon Oct 29 15:17:12 UTC 2018


Hi,

by packing the coder and length values into a long, and combining the 
length and coder mixers, we can reduce the number of MHs generated to 
set up String concatenations.

Theoretically we reduce the number of MHs created by up to a third, and 
real time improvements in startup tests exercising ISC typically hover 
around 10%. This optimization reverts JDK-8212597[1], so expressions 
that benefited from that of course sees a smaller or no added benefit.

http://cr.openjdk.java.net/~redestad/8213035/jdk.00/
https://bugs.openjdk.java.net/browse/JDK-8213035

I've attached a simple microbenchmark and performance results from 
running on x64 in the bug:
- Significant reduction in work needed to bootstrap a slew of 
concatenations, both on the initial bootstrap and when repeating similar 
concatenation shapes.
- For C2 the peak performance is more or less the same, with very small 
differences due slight differences in the generated code (both tiny 
improvements and tiny regressions).
- For C1 we see some regressions on some micros, at worst 1.2x
- For interpreter we see improvements around 1.1x on several micros

Testing: tier1-2 jdk and hs tests, sanity tested overflow conditions

Thanks!

/Claes

[1] https://bugs.openjdk.java.net/browse/JDK-8212597


More information about the core-libs-dev mailing list