RFR: 8334060: Implementation of Late Barrier Expansion for G1 [v27]
Roberto Castañeda Lozano
rcastanedalo at openjdk.org
Wed Oct 2 11:53:52 UTC 2024
On Wed, 2 Oct 2024 09:58:29 GMT, Hamlin Li <mli at openjdk.org> wrote:
>> Roberto Castañeda Lozano has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 53 additional commits since the last revision:
>>
>> - Merge remote-tracking branch 'feilongjiang/JEP-475-RISC-V' into JDK-8334060-g1-late-barrier-expansion
>> - riscv port refactor
>> - Remove temporary support code
>> - Merge jdk-24+17
>> - Relax 'must match' assertion in ppc's g1StoreN after limiting pinning bypass optimization
>> - Remove unnecessary reg-to-reg moves in aarch64's g1CompareAndX instructions
>> - Reintroduce matcher assert and limit pinning bypass optimization to non-shared EncodeP nodes
>> - Merge jdk-24+16
>> - Ensure that detected encode-and-store patterns are matched
>> - Merge remote-tracking branch 'snazarkin/arm32-JDK-8334060-g1-late-barrier-expansion' into JDK-8334060-g1-late-barrier-expansion
>> - ... and 43 more: https://git.openjdk.org/jdk/compare/0dc16d16...14483b83
>
> src/hotspot/cpu/riscv/gc/g1/g1_riscv.ad line 169:
>
>> 167: predicate(UseG1GC && n->as_LoadStore()->barrier_data() != 0);
>> 168: match(Set res (CompareAndExchangeP mem (Binary oldval newval)));
>> 169: effect(TEMP res, TEMP tmp1, TEMP tmp2);
>
> should `res` be `TEMP_DEF`?
It could, but the effect would be the same (see [JDK-8058880](https://bugs.openjdk.org/browse/JDK-8058880)). I went with `TEMP` for the x64 and aarch64 platforms for consistency with the analogous ZGC ADL code, see e.g. https://github.com/openjdk/jdk/blob/855c8a7def21025bc2fc47594f7285a55924c213/src/hotspot/cpu/aarch64/gc/z/z_aarch64.ad#L182-L204.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/19746#discussion_r1784358586
More information about the hotspot-gc-dev
mailing list