JDK-8005441 : PhaseStringOpts shouldn't rely on RegionNode::Ideal to eliminate simple diamond Region
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 9,10
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2012-12-23
  • Updated: 2019-01-15
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.
Other
tbdUnresolved
Related Reports
Relates :  
Description
When PhaseStringOpts eliminates a call, it sometimes produces subgraphs of the form:

cmpP with 1 top input
           |
          If
         /  \
  IfFalse  IfTrue
         \   /
        Region
 
(the result of the call becomes top because the call is disconnected).

and relies on an RegionNode::Ideal graph transformation that replaces the Region with the control input of the If if the Region has no PhiNode. The problem is that the top input to cmpP may propagate forward and could destroy all Region's inputs before the Region is processed.

RegionNode::try_clean_mem_phi() should be unneeded when this is fixed.