[aarch64-port-dev ] RFR: 88158361: AArch64: Address calculation missed optimizations

Zhongwei Yao zhongwei.yao at linaro.org
Fri Jun 23 09:50:54 UTC 2017


Hi, Andrew,

Besides pass jtreg on aarch64 and x86, for each pattern, I added one or two
test cases, which will hit the testing pattern. And check the test cases'
assembly output to ensure the hit pattern generates correct instructions.

Here is a test case for: AddExtL_uxtb_and_shift pattern:

// testrule: AddExtL_uxtb_and_shift
// geninst: add.*x.*, x.*, w.*, uxtb #3
public Flonglong adduxtb = new Flonglong() {
public long func(long x, long y) {
return y + ((x & 255) << 3);
}
};

And the "geninst" line defines this case's required generated assembly
instruction pattern.

A script will check whether this case's generated C2 assembly has the
required instruction "add.*x.*, x.*, w.*, uxtb #3". If yes, the test
passes. And if there is a "nosense" on "// testrule" line, such check is
skipped.

All test cases are at http://cr.openjdk.java.net/~njian/8158361/ExtTest.java

On 23 June 2017 at 15:53, Andrew Haley <aph at redhat.com> wrote:

> Hi,
>
> On 23/06/17 05:00, Zhongwei Yao wrote:
> > Patch is updated: http://cr.openjdk.java.net/~njian/8158361/webrev.01/
> >
> > Summary: 22 rules are added.
>
> That looks great.  Please also send the Java program you used to make sure
> that
> these are generated correctly.  :-)
>
>
> --
> Andrew Haley
> Java Platform Lead Engineer
> Red Hat UK Ltd. <https://www.redhat.com>
> EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
>



-- 
Best regards,
Zhongwei


More information about the aarch64-port-dev mailing list