AArch64: Status

Christian Thalinger christian.thalinger at oracle.com
Tue Mar 1 01:37:31 UTC 2016

> On Feb 26, 2016, at 11:56 PM, Andrew Haley <aph at redhat.com> wrote:
> On 26/02/16 23:03, Christian Thalinger wrote:
>> The assert suggests there is some code missing in the
>> DeoptimizationBlob.  Another way would be to implement
>> PreferGraalStubs=true and use these by default on AArch64.  That
>> would be my preferred way, actually, because the reason I introduced
>> DeoptimizationStub and UncommonTrapStub was to make porting to a new
>> architecture easier.  And this is one of these rare cases!
> That solution makes sense to me.
>> Also, I’m seeing issues with biased locking and method flushing very
>> likely related to stack walking.  Although garbage collections
>> seemingly do work.
>> Oh, and I haven’t implemented compressed oops yet (that’s the
>> low-hanging fruit!).
>> Anyway, I have to go off and work on something else for a while so
>> it would be great if other people could pick up some of the open
>> issues.
> Sure.  My biggest problem with Graal has always been figuring out how
> to run and test it.  I have it all built, but it's very hard to get my
> head around what it's doing.  If you have a recipe with the right
> instructions about how to run the tests and reproduce the problems
> that would help a lot.

It’s basically the command at the end of my post:

$ mx unittest -XX:-UseCompressedOops bytecode.BC

Turn compressed oops on, run it and you will see a lot of exceptions.  Mostly the same, I would guess.

Some can be fixed locally on an x86 machine by doing:

$ mx unittest -Dos.arch=aarch64 -XX:-UseCompressedOops bytecode.BC

It will fail once it hits the code installer or a foreign call which needs some architecture specific information but for most missing LIR implementations this approach works.

The next big group is:

$ mx unittest -XX:-UseCompressedOops except.BC

(The last command line option is basically a substring match on all JUnit tests.  Check out the package com.oracle.graal.jtt.except)

More information about the graal-dev mailing list