[aarch64-port-dev ] RFR(M): 8233743: AArch64: Make r27 conditionally allocatable

Andrew Haley aph at redhat.com
Mon Dec 23 09:43:16 UTC 2019


On 12/23/19 8:53 AM, Pengfei Li wrote:
> Regarding your question, the Graal compiler (particularly on AArch64) uses r27 for compressing and uncompressing oops. Neither compressing nor uncompressing klass pointers uses r27. See code at [1], [2].
> 
> In Graal, we also wanted to make the heap base register allocatable when UseCompressedOops is off. Since before, AArch64 HotSpot didn't support r27 as an allocatable register, Graal patch e4d9c5f [3] marked r27 as non-allocatable and JVMCI patch JDK-8231754 [4] reserved r27 unconditionally. That's why I would like to revert JDK-8231754 in my patch.
> 
> [1] https://github.com/oracle/graal/blob/master/compiler/src/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotLIRGenerator.java#L256
> [2] https://github.com/oracle/graal/blob/master/compiler/src/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotLIRGenerator.java#L286
> [3] https://github.com/oracle/graal/commit/e4d9c5f09a3c9be9f3c66ff0feff787519875a12
> [4] http://hg.openjdk.java.net/jdk/jdk/rev/d068b1e534de

OK. As long as you've fully tested Graal with UseJVMCICompiler after
this patch was applied I'm happy.

-- 
Andrew Haley  (he/him)
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
https://keybase.io/andrewhaley
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671



More information about the hotspot-compiler-dev mailing list