RFR(m) 8170094: PPC64: Keep immediate value 0 cached into a register to improve performance

Gustavo Serra Scalet gustavo.scalet at eldorado.org.br
Tue Nov 22 17:11:03 UTC 2016


Hi,

I was concerned with an optimization marked as "Hoist CSE of constant load"[1] as I found zeroes being stored in the memory by using a new reg every time.

To address this issue, I reserved one of the many registers PPC64 has (on C1 and C2 compilers) to cache zero and then the zero can be stored at once with a single store. (I didn't notice a performance drop simply by removing 1 register from the register bank)

I notice small performance gains (on average around 1%) for some microbenchmarks but no noticeable change on SPECjvm2008 score. Maybe there is still some room for improvement by using this approach?

Please review if I built a correct solution:

Bug and webrev for this change:
https://bugs.openjdk.java.net/browse/JDK-8170094
https://gut.github.io/openjdk/webrev/JDK-8170094/webrev/index.html

Thanks in advance,
Gustavo Serra Scalet

References:
[1] 
http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2016-October/024664.html


More information about the hotspot-compiler-dev mailing list