RFD: AOT for AArch64

Andrew Haley aph at redhat.com
Tue Mar 27 12:58:35 UTC 2018

On 27/03/18 02:21, dean.long at oracle.com wrote:
> On 3/23/18 4:27 PM, Vladimir Kozlov wrote:
>> Code in AOTCompiledClass.java look strange in try block. Why you need it? 
> I've seen that code fail as well, but thought it was due to me doing 
> something wrong, because it always went away with the final version of 
> my changes.  It would be great to fix this issue once and for all.  
> Andrew, if you have a test case to reproduce the problem, it would be 
> great to have it as a regression test.

It always happens for me when processing stubs:

HotSpotResolvedJavaMethod m = HotSpotMethod<ExceptionHandlerStub.exceptionHandler(Object, Word, Register, OptionValues)>
type = m.getDeclaringClass() = HotSpotType<Lorg/graalvm/compiler/hotspot/stubs/ExceptionHandlerStub;, resolved>
type.getName() = Lorg/graalvm/compiler/hotspot/stubs/ExceptionHandlerStub;
getAOTKlassData(name) = null

I can't see where addAOTKlassData() is ever called for stubs code.

If I run with assertions I get:

Exception in thread "main" java.lang.AssertionError: no data for HotSpotType<Lorg/graalvm/compiler/hotspot/stubs/ExceptionHandlerStub;, resolved>
	at jdk.aot/jdk.tools.jaotc.AOTCompiledClass.metadataName(AOTCompiledClass.java:441)
	at jdk.aot/jdk.tools.jaotc.AOTCompiledClass.metadataName(AOTCompiledClass.java:450)
	at jdk.aot/jdk.tools.jaotc.AOTCompiledClass.metadataName(AOTCompiledClass.java:456)
	at jdk.aot/jdk.tools.jaotc.MetadataBuilder.addMetadataEntries(MetadataBuilder.java:185)
	at jdk.aot/jdk.tools.jaotc.MetadataBuilder.createMethodMetadata(MetadataBuilder.java:119)

If anyone knows where stubs are supposed to be added to
AOTCompiledClass.klassData I'll have a look, but as far as I can see
the answer is "nowhere".

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 hotspot-dev mailing list