RFR: 8255534: Shenandoah: Fix CmpP optimization wrt native-LRB [v2]
Roman Kennke
rkennke at openjdk.java.net
Wed Oct 28 15:26:58 UTC 2020
> JDK-8254314 introduced the following code:
>
> if (in1->bottom_type() == TypePtr::NULL_PTR &&
> (in1->Opcode() != Op_ShenandoahLoadReferenceBarrier || !((ShenandoahLoadReferenceBarrierNode*)in1)->is_native())) {
> in2 = step_over_gc_barrier(in2);
> }
>
> However, the check for LRB and !native are the wrong way around: they should check if *in2* are not native LRB.
>
> The bug is currently only observed in the conc-weakrefs branch, but may manifest (rarely) in mainline too.
>
> I am also putting in some refactoring to avoid duped code for good measure.
>
> Testing: hotspot_gc_shenandoah (also in conc-weakrefs-branch where it manifests)
Roman Kennke has updated the pull request incrementally with one additional commit since the last revision:
Rewrite condition to be less confusing
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/902/files
- new: https://git.openjdk.java.net/jdk/pull/902/files/fcaeb02e..922d51ff
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=902&range=01
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=902&range=00-01
Stats: 3 lines in 1 file changed: 2 ins; 0 del; 1 mod
Patch: https://git.openjdk.java.net/jdk/pull/902.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/902/head:pull/902
PR: https://git.openjdk.java.net/jdk/pull/902
More information about the shenandoah-dev
mailing list