[lilliput-jdk17u:lilliput] Integrated: 8314131: [Lilliput/JDK17] Make loadNKlassCompactHeaders not use a TEMP register

Roman Kennke rkennke at openjdk.org
Fri Aug 11 16:08:58 UTC 2023


On Thu, 10 Aug 2023 22:26:33 GMT, Roman Kennke <rkennke at openjdk.org> wrote:

> The loadNKlassCompactHeaders template in the .ad files currently declares dst as TEMP_DEF. This has historic reasons: We needed to ensure that dst doesn't overlap with src, because we needed src for calling into the slow-path. In addition to that, there seems to be a related bug in C2's matcher which sometimes seems to create an oopmap entry for a temp reg, which would make GCs crash if they scan uninitialized slot (see [JDK-8051805](https://bugs.openjdk.org/browse/JDK-8051805)). That problem should also go away with this change. In addition to that, relaxing the type of dst might also lead to performance enhancements when register pressure is high, because we don't need two registers for loadNKlass - 1 register would be enough.
> 
> Testing:
>  - [x] tier1 +UseCompactObjectHeaders (aarch64, x86_64)
>  - [x] tier2 +UseCompactObjectHeaders (aarch64, x86_64)

This pull request has now been integrated.

Changeset: 93690bc8
Author:    Roman Kennke <rkennke at openjdk.org>
URL:       https://git.openjdk.org/lilliput-jdk17u/commit/93690bc86c5e9c3437b382e5779d729957b7ecc9
Stats:     2 lines in 2 files changed: 0 ins; 0 del; 2 mod

8314131: [Lilliput/JDK17] Make loadNKlassCompactHeaders not use a TEMP register

Reviewed-by: shade

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

PR: https://git.openjdk.org/lilliput-jdk17u/pull/55


More information about the lilliput-dev mailing list