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

White, Derek Derek.White at cavium.com
Fri Aug 4 15:33:10 UTC 2017


FYI, 

The Cavium T88 CPU doesn't have this scaling penalty, but future CPUs may.

 - Derek

> -----Original Message-----
> From: aarch64-port-dev [mailto:aarch64-port-dev-
> bounces at openjdk.java.net] On Behalf Of Andrew Haley
> Sent: Friday, August 04, 2017 9:33 AM
> To: Zhongwei Yao <zhongwei.yao at linaro.org>; aarch64-port-
> dev at openjdk.java.net
> Subject: Re: [aarch64-port-dev ] RFR: JDK-8185786: AArch64: disable some
> address reshapings.
> 
> 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