[lworld] RFR: 8258038: [AARCH64] [lworld] Fix inline type implementation

Nick Gasson ngasson at openjdk.java.net
Mon Mar 15 09:35:34 UTC 2021


This patch updates the original AArch64 lworld port from December 2019 to match the x86 C1/C2/interpreter changes since then. It doesn't support InlineTypePassFieldsAsArgs or InlineTypeReturnedAsFields: this can be added later.

Known issues:

* compiler/valhalla/inlinetypes/TestLWorld test9 fails with an internal C2 error:

  #  Internal Error (/home/nicgas01/valhalla/src/hotspot/share/opto/buildOopMap.cpp:360), pid=2011, tid=2025
  #  assert(false) failed: there should be a oop in OopMap instead of a live raw oop at safepoint

  I haven't investigated this but it doesn't seem to be related to any of the platform specific code. I'll make a separate JBS issue for it.

* compiler/valhalla/inlinetypes/TestArrays.java and TestNullableArrays.java fail some sub-tests with:

  stderr: [OpenJDK 64-Bit Server VM warning: InlineTypePassFieldsAsArgs is not supported on this platform
  OpenJDK 64-Bit Server VM warning: InlineTypeReturnedAsFields is not supported on this platform
  Exception in thread "main" java.lang.RuntimeException: Graph for 'TestNullableArrays::test1' contains different number of match nodes (expected 1 but got 0):
  : expected 1 to equal 0
  	at jdk.test.lib.Asserts.fail(Asserts.java:594)
  	at jdk.test.lib.Asserts.assertEquals(Asserts.java:205)
  	at jdk.test.lib.Asserts.assertEQ(Asserts.java:178)
  	at compiler.valhalla.inlinetypes.InlineTypeTest.parseOutput(InlineTypeTest.java:600)
  	at compiler.valhalla.inlinetypes.InlineTypeTest.execute_vm(InlineTypeTest.java:482)
  	at compiler.valhalla.inlinetypes.InlineTypeTest.run(InlineTypeTest.java:436)
  	at compiler.valhalla.inlinetypes.TestNullableArrays.main(TestNullableArrays.java:58)
  ]

  I think this is related to not implementing passing/returning fields.

* compiler/valhalla/inlinetypes/TestBufferTearing.java fails intermittently. I haven't investigated this and will make a separate JBS issue for it.

This patch includes two changes that I also submitted to openjdk/jdk:
* https://github.com/openjdk/jdk/commit/f7e0a09802f74
* https://github.com/openjdk/jdk/commit/be67aaabe63a

-------------

Commit messages:
 - Updates and cleanup
 - [WIP] 8258038: [AARCH64] [lworld] Fix inline type implementation

Changes: https://git.openjdk.java.net/valhalla/pull/353/files
 Webrev: https://webrevs.openjdk.java.net/?repo=valhalla&pr=353&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8258038
  Stats: 1418 lines in 21 files changed: 820 ins; 270 del; 328 mod
  Patch: https://git.openjdk.java.net/valhalla/pull/353.diff
  Fetch: git fetch https://git.openjdk.java.net/valhalla pull/353/head:pull/353

PR: https://git.openjdk.java.net/valhalla/pull/353



More information about the valhalla-dev mailing list