[aarch64-port-dev ] RFR (XXL): 8223347: Integration of Vector API (Incubator): AArch64 backend changes
Paul Sandoz
paul.sandoz at oracle.com
Fri May 22 18:01:01 UTC 2020
> On May 22, 2020, at 10:40 AM, Andrew Haley <aph at redhat.com> wrote:
>
> On 5/22/20 5:12 PM, Paul Sandoz wrote:
>
>> I am not terribly familiar with the AArch64 code, but I would note
>> the Vector API comes with a bunch of unit tests should exercise the
>> code gen, just not as directly as I presume you would like.
>
> Yes, you've understood me: direct is what I want. The assembler tests
> are intended to make sure we generate exactly the right instructions,
> rather than having something painfully hard to debug later on. When a
> patch adds a lot of instructions to the assembler, that IMO is the
> right time to test that they generate correctly-encoded
> instructions. But yes, that can go into a follow-up patch, as long as
> it gets done fairly shortly.
Ok.
>
>> To what extent do you feel we can follow up with additional issues
>> and fix them after the initial integration?
>
> We can do that. Note that after this patch, aarch64.ad is 21762 lines
> long. I know we don't have any hard-and-fast rule about this, but I'd
> rather it didn't get forgotten.
We have made changes similar in spirit to the x64 ad file (reducing in size at least), so I think it reasonable request before integration to reduce the cognitive and maintenance burden.
(FWIW I don’t know to what extent some functionality is utilized by the auto vectorizer and whether that impacts its location or not.)
> Maybe I should do that one myself, but
> I guess I'd rather avoid the problem of version skew between the
> Panama repo and mainline. That'd make merging rather grim.
>
> Yang, against which repo is this webrev intended to be applied?
>
I cannot speak for Yang but we have been generating webrevs from the Panama dev repo, branch vector-unstable (unfortunate name I know!) and doing:
hg diff -r default
Where the default is regularly, but manually, pulled from jdk/jdk.
More specifically:
- code is generally pushed to the vectorIntrinsics branch
- on a manual but regular basis vectorIntrinsics is synced up to jdk/jdk (via the default branch).
- on a manual but regular basis vector-unstable is synced with vectorIntrinsics
- occasionally there are fixes pushed directly to vector-unstable for the purposes of integration (e.g. removal of the perf test or the x64 SVML stubs).
Hth,
Paul.
More information about the core-libs-dev
mailing list