[aarch64-port-dev ] RFR: JDK-8185786: AArch64: disable some address reshapings.

Andrew Haley aph at redhat.com
Fri Aug 4 13:33:27 UTC 2017


On 04/08/17 10:48, Zhongwei Yao wrote:
> Hi, all,
> 
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8185786/
> 
> Webrev:
> http://cr.openjdk.java.net/~njian/8185786/webrev.00/
> 
> According to [1-2], ldrh/ldrsh scale by 2 is a bit slower than the
> non-scale version on modern Cortex-A cores.

Yes, I see.  But from what I remember, without this reshape_address()
change there was some nasty code generated elsewhere.  Still, I
suppose it's only for short.

Is it possible to take this logic and push it into a suitable class,
VM_Version, perhaps?  GCC uses a table, indexed by the mode of the
operand.  We could have

+        if (!u->is_Mem() || u->is_LoadVector() || u->is_StoreVector() || u->Opcode() == Op_StoreCM ||
+            (VM_Version::expensive_access(u->Opcode()->type()), Op_LShiftL)) {

... or something.

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


More information about the aarch64-port-dev mailing list