JDK-8194993 : Loop Strip Mining has some leftover debugging code
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 10
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2018-01-12
  • Updated: 2018-04-05
  • Resolved: 2018-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.
JDK 10 JDK 11
10 b40Fixed 11Fixed
Related Reports
Relates :  
Description
In PhaseIdealLoop::create_outer_strip_mined_loop():

            while (be->is_Store() && old_new[be->_idx] != NULL) {
              ShouldNotReachHere();
              be = be->in(MemNode::Memory);
            }

and
          while (be->is_Store() && old_new[be->_idx] != NULL) {
            ShouldNotReachHere();
            be = be->in(MemNode::Memory);
          }

This code would trigger with sunk stores and stores on backedge. I couldn't trigger it with a test case and it wasn't caught by testing. Still, if this happens in the wild it would cause a crash.

Comments
ILW = Leftover debugging code may cause failures during compilation, hasn't triggered yet, disable loop strip mining -XX:LoopStripMiningIter=0 = HLM = P3
12-01-2018