JDK-8233021 : Shenandoah: SBSC2::is_shenandoah_lrb_call should match all LRB shapes
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 8-shenandoah,11-shenandoah,14
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2019-10-25
  • Updated: 2019-10-31
  • Resolved: 2019-10-25
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 14
14 b21Fixed
Related Reports
Relates :  
Description
In current code, we match only one LRB shape:

 bool ShenandoahBarrierSetC2::is_shenandoah_lrb_call(Node* call) {
   return call->is_CallLeaf() &&
           call->as_CallLeaf()->entry_point() == CAST_FROM_FN_PTR(address, ShenandoahRuntime::load_reference_barrier);
 }

...which is not the only shape that is emitted by C2 code.

Current bug is somewhat benign, because SBSC2::is_shenandoah_lrb_call is used in C2 verification code only, but it could be catastrophic in future.
Comments
URL: https://hg.openjdk.java.net/jdk/jdk/rev/808bbdb79916 User: shade Date: 2019-10-25 15:31:03 +0000
25-10-2019