[aarch64-port-dev ] RFD: AOT for AArch64

Yang Zhang yang.zhang at linaro.org
Tue Apr 3 02:44:37 UTC 2018


Hi Andrew

Thanks for your great work on aot.
I'm also testing your patches on jdk and graal. There are many
discussions on your patches. I'm not sure if I miss some updates in
the comments. Could you share your latest patches(hs and graal) and
jtreg command so that I can test them in my environment again?


Regards
Yang

On 29 March 2018 at 23:46, Andrew Haley <aph at redhat.com> wrote:
> There's a problem with assertions being fired which is apparently due
> to a recent Graal bug.  Try running without assertions:
>
> diff -r ee513596f3ee test/hotspot/jtreg/compiler/aot/AotCompiler.java
> --- a/test/hotspot/jtreg/compiler/aot/AotCompiler.java  Tue Jan 30 16:41:40 2018 +0100
> +++ b/test/hotspot/jtreg/compiler/aot/AotCompiler.java  Thu Mar 29 16:37:21 2018 +0100
> @@ -114,8 +114,8 @@
>              args.add(linker);
>          }
>          // Execute with asserts
> -        args.add("-J-ea");
> -        args.add("-J-esa");
> +        // args.add("-J-ea");
> +        // args.add("-J-esa");
>          return launchJaotc(args, extraopts);
>      }
>
> With that change, I get two failures.  If you're seeing a lot more
> failures than that, please look t your test configuration.
>
> Passed: compiler/aot/calls/fromAot/AotInvokeDynamic2AotTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeDynamic2CompiledTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeDynamic2NativeTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeDynamic2InterpretedTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeInterface2InterpretedTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeInterface2AotTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeInterface2CompiledTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeInterface2NativeTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeSpecial2AotTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeSpecial2NativeTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeSpecial2CompiledTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeSpecial2InterpretedTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeStatic2AotTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeStatic2InterpretedTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeStatic2NativeTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeStatic2CompiledTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeVirtual2AotTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeVirtual2CompiledTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeVirtual2InterpretedTest.java
> Passed: compiler/aot/calls/fromAot/AotInvokeVirtual2NativeTest.java
> Passed: compiler/aot/calls/fromCompiled/CompiledInvokeDynamic2AotTest.java
> Passed: compiler/aot/calls/fromCompiled/CompiledInvokeInterface2AotTest.java
> Passed: compiler/aot/calls/fromCompiled/CompiledInvokeSpecial2AotTest.java
> Passed: compiler/aot/calls/fromCompiled/CompiledInvokeStatic2AotTest.java
> Passed: compiler/aot/calls/fromInterpreted/InterpretedInvokeInterface2AotTest.java
> Passed: compiler/aot/calls/fromInterpreted/InterpretedInvokeSpecial2AotTest.java
> Passed: compiler/aot/calls/fromCompiled/CompiledInvokeVirtual2AotTest.java
> Passed: compiler/aot/calls/fromInterpreted/InterpretedInvokeDynamic2AotTest.java
> Passed: compiler/aot/calls/fromNative/NativeInvokeStatic2AotTest.java
> Passed: compiler/aot/calls/fromInterpreted/InterpretedInvokeStatic2AotTest.java
> Passed: compiler/aot/calls/fromInterpreted/InterpretedInvokeVirtual2AotTest.java
> Passed: compiler/aot/calls/fromNative/NativeInvokeSpecial2AotTest.java
> Passed: compiler/aot/cli/jaotc/ClasspathOptionUnknownClassTest.java
> Passed: compiler/aot/cli/jaotc/CompileClassTest.java
> Passed: compiler/aot/calls/fromNative/NativeInvokeVirtual2AotTest.java
> Passed: compiler/aot/cli/jaotc/CompileClassWithDebugTest.java
> Passed: compiler/aot/cli/jaotc/CompileDirectoryTest.java
> Passed: compiler/aot/cli/jaotc/CompileModuleTest.java
> Passed: compiler/aot/cli/jaotc/CompileJarTest.java
> Passed: compiler/aot/cli/jaotc/ListOptionNotExistingTest.java
> Passed: compiler/aot/cli/jaotc/ListOptionTest.java
> Passed: compiler/aot/cli/jaotc/ListOptionWrongFileTest.java
> Passed: compiler/aot/cli/DisabledAOTWithLibraryTest.java
> Passed: compiler/aot/cli/IncorrectAOTLibraryTest.java
> Passed: compiler/aot/cli/NonExistingAOTLibraryTest.java
> Passed: compiler/aot/jdk.tools.jaotc.test/src/jdk/tools/jaotc/test/collect/directory/DirectorySourceProviderTest.java
> Passed: compiler/aot/jdk.tools.jaotc.test/src/jdk/tools/jaotc/test/collect/jar/JarSourceProviderTest.java
> Passed: compiler/aot/jdk.tools.jaotc.test/src/jdk/tools/jaotc/test/collect/module/ModuleSourceProviderTest.java
> Passed: compiler/aot/cli/SingleAOTLibraryTest.java
> Passed: compiler/aot/jdk.tools.jaotc.test/src/jdk/tools/jaotc/test/collect/ClassSearchTest.java
> Passed: compiler/aot/cli/MultipleAOTLibraryTest.java
> Passed: compiler/aot/jdk.tools.jaotc.test/src/jdk/tools/jaotc/test/collect/ClassSourceTest.java
> Passed: compiler/aot/jdk.tools.jaotc.test/src/jdk/tools/jaotc/test/collect/SearchPathTest.java
> Passed: compiler/aot/jdk.tools.jaotc.test/src/jdk/tools/jaotc/test/NativeOrderOutputStreamTest.java
> Passed: compiler/aot/verification/vmflags/NotTrackedFlagTest.java
> Passed: compiler/aot/cli/SingleAOTOptionTest.java
> Passed: compiler/aot/verification/vmflags/TrackedFlagTest.java
> Passed: compiler/aot/verification/ClassAndLibraryNotMatchTest.java
> Passed: compiler/aot/SharedUsageTest.java
> TEST RESULT: Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: Method is unexpectedly compiled after deoptimization: expected false, was true
> --------------------------------------------------
> Passed: compiler/aot/RecompilationTest.java
> Test results: passed: 60; failed: 1
> Report written to /local/jdk-hs/build/linux-aarch64-normal-server-release/test-results/jtreg_test_hotspot_jtreg_compiler_aot/html/report.html
> Results written to /local/jdk-hs/build/linux-aarch64-normal-server-release/test-support/jtreg_test_hotspot_jtreg_compiler_aot
> Error: Some tests failed or other problems occurred.
> Finished running test 'jtreg:test/hotspot/jtreg/compiler/aot'
> Test report is stored in build/linux-aarch64-normal-server-release/test-results/jtreg_test_hotspot_jtreg_compiler_aot
>
> ==============================
> Test summary
> ==============================
>    TEST                                              TOTAL  PASS  FAIL ERROR
>>> jtreg:test/hotspot/jtreg/compiler/aot                61    60     1     0 <<
> ==============================
> TEST FAILURE
>
> * jtreg:test/hotspot/jtreg/compiler/jvmci
>
> Running test 'jtreg:test/hotspot/jtreg/compiler/jvmci'
> Passed: compiler/jvmci/compilerToVM/AsResolvedJavaMethodTest.java
> Passed: compiler/jvmci/compilerToVM/CollectCountersTest.java
> Passed: compiler/jvmci/compilerToVM/DoNotInlineOrCompileTest.java
> --------------------------------------------------
> ACTION: main -- Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: CompileCodeTestCase{executable=public default int compiler.jvmci.compilerToVM.CompileCodeTestCase$Interface.defaultMethod(java.lang.Object), bci=-1} : 2nd invocation returned different value: expected
> --------------------------------------------------
> Passed: compiler/jvmci/compilerToVM/AllocateCompileIdTest.java
> Passed: compiler/jvmci/compilerToVM/ExecuteInstalledCodeTest.java
> Passed: compiler/jvmci/compilerToVM/FindUniqueConcreteMethodTest.java
> Passed: compiler/jvmci/compilerToVM/DebugOutputTest.java
> Passed: compiler/jvmci/compilerToVM/GetBytecodeTest.java
> Passed: compiler/jvmci/compilerToVM/GetClassInitializerTest.java
> Passed: compiler/jvmci/compilerToVM/GetConstantPoolTest.java
> Passed: compiler/jvmci/compilerToVM/GetExceptionTableTest.java
> Passed: compiler/jvmci/compilerToVM/GetImplementorTest.java
> Passed: compiler/jvmci/compilerToVM/GetLineNumberTableTest.java
> Passed: compiler/jvmci/compilerToVM/GetFlagValueTest.java
> Passed: compiler/jvmci/compilerToVM/GetMaxCallTargetOffsetTest.java
> Passed: compiler/jvmci/compilerToVM/GetLocalVariableTableTest.java
> Passed: compiler/jvmci/compilerToVM/GetNextStackFrameTest.java
> Passed: compiler/jvmci/compilerToVM/GetResolvedJavaMethodTest.java
> Passed: compiler/jvmci/compilerToVM/GetStackTraceElementTest.java
> Passed: compiler/jvmci/compilerToVM/GetVtableIndexForInterfaceTest.java
> Passed: compiler/jvmci/compilerToVM/GetSymbolTest.java
> Passed: compiler/jvmci/compilerToVM/HasFinalizableSubclassTest.java
> Passed: compiler/jvmci/compilerToVM/HasNeverInlineDirectiveTest.java
> Passed: compiler/jvmci/compilerToVM/IsCompilableTest.java
> Passed: compiler/jvmci/compilerToVM/HasCompiledCodeForOSRTest.java
> Passed: compiler/jvmci/compilerToVM/IsMatureTest.java
> Passed: compiler/jvmci/compilerToVM/JVM_RegisterJVMCINatives.java
> Passed: compiler/jvmci/compilerToVM/IsMatureVsReprofileTest.java
> Passed: compiler/jvmci/compilerToVM/LookupKlassInPoolTest.java
> Passed: compiler/jvmci/compilerToVM/LookupKlassRefIndexInPoolTest.java
> Passed: compiler/jvmci/compilerToVM/LookupMethodInPoolTest.java
> Passed: compiler/jvmci/compilerToVM/LookupNameAndTypeRefIndexInPoolTest.java
> Passed: compiler/jvmci/compilerToVM/LookupNameInPoolTest.java
> Passed: compiler/jvmci/compilerToVM/LookupSignatureInPoolTest.java
> Passed: compiler/jvmci/compilerToVM/LookupTypeTest.java
> Passed: compiler/jvmci/compilerToVM/ReadConfigurationTest.java
> Passed: compiler/jvmci/compilerToVM/MethodIsIgnoredBySecurityStackWalkTest.java
> Passed: compiler/jvmci/compilerToVM/ResolveConstantInPoolTest.java
> Passed: compiler/jvmci/compilerToVM/ResolveFieldInPoolTest.java
> Passed: compiler/jvmci/compilerToVM/ResolveMethodTest.java
> Passed: compiler/jvmci/compilerToVM/ResolvePossiblyCachedConstantInPoolTest.java
> Passed: compiler/jvmci/compilerToVM/ReprofileTest.java
> Passed: compiler/jvmci/compilerToVM/ResolveTypeInPoolTest.java
> Passed: compiler/jvmci/compilerToVM/ShouldDebugNonSafepointsTest.java
> Passed: compiler/jvmci/compilerToVM/ShouldInlineMethodTest.java
> Passed: compiler/jvmci/errors/TestInvalidCompilationResult.java
> Passed: compiler/jvmci/errors/TestInvalidDebugInfo.java
> Passed: compiler/jvmci/errors/TestInvalidOopMap.java
> Passed: compiler/jvmci/events/JvmciNotifyBootstrapFinishedEventTest.java
> Passed: compiler/jvmci/events/JvmciShutdownEventTest.java
> Passed: compiler/jvmci/events/JvmciNotifyInstallEventTest.java
> Passed: compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/HotSpotConstantReflectionProviderTest.java
> Passed: compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/MethodHandleAccessProviderTest.java
> Passed: compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/MemoryAccessProviderTest.java
> Passed: compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/ResolvedJavaTypeResolveConcreteMethodTest.java
> Passed: compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/ConstantTest.java
> Passed: compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/ResolvedJavaTypeResolveMethodTest.java
> Passed: compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/RedefineClassTest.java
> Passed: compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestConstantReflectionProvider.java
> Passed: compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestJavaMethod.java
> Passed: compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestJavaType.java
> Passed: compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestJavaField.java
> Passed: compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestMetaAccessProvider.java
> Passed: compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaField.java
> Passed: compiler/jvmci/meta/StableFieldTest.java
> Passed: compiler/jvmci/compilerToVM/MaterializeVirtualObjectTest.java
> Passed: compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaMethod.java
> Passed: compiler/jvmci/TestJVMCIPrintProperties.java
> Passed: compiler/jvmci/JVM_GetJVMCIRuntimeTest.java
> Passed: compiler/jvmci/TestValidateModules.java
> Passed: compiler/jvmci/SecurityRestrictionsTest.java
> Passed: compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java
> Test results: passed: 72; failed: 1
> Report written to /local/jdk-hs/build/linux-aarch64-normal-server-release/test-results/jtreg_test_hotspot_jtreg_compiler_jvmci/html/report.html
> Results written to /local/jdk-hs/build/linux-aarch64-normal-server-release/test-support/jtreg_test_hotspot_jtreg_compiler_jvmci
> Error: Some tests failed or other problems occurred.
> Finished running test 'jtreg:test/hotspot/jtreg/compiler/jvmci'
> Test report is stored in build/linux-aarch64-normal-server-release/test-results/jtreg_test_hotspot_jtreg_compiler_jvmci
>
> ==============================
> Test summary
> ==============================
>    TEST                                              TOTAL  PASS  FAIL ERROR
>>> jtreg:test/hotspot/jtreg/compiler/jvmci              73    72     1     0 <<
> ==============================
> TEST FAILURE


More information about the aarch64-port-dev mailing list