JDK-6860469 : remix_address_expressions sets incorrect control causing crash in split_if_with_block_post
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs16
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_9
  • CPU: sparc
  • Submitted: 2009-07-14
  • Updated: 2010-04-02
  • Resolved: 2009-07-29
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 6 JDK 7 Other
6u18Fixed 7Fixed hs16Fixed
There appears to be a day one bug in remix_address_expressions where it only consults the control of one it's inputs when deciding where to place a newly created node.  It happens only rarely that this produces an unsafe answer and even more rarely does this result in a crash.  This was reported and diagnosed by Google.

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/fd50a67f97d1

EVALUATION The crash started appearing with 20060905093858.nips.blockers. This is the code that allows the bug to become visible in that it causes a crash. // Try not to place code on a loop entry projection // which can inhibit range check elimination. if (least != early) { Node* ctrl_out = least->unique_ctrl_out(); if (ctrl_out && ctrl_out->is_CountedLoop() && least == ctrl_out->in(LoopNode::EntryControl)) { Node* least_dom = idom(least); if (get_loop(least_dom)->is_member(get_loop(least))) { least = least_dom; } } } I think it must allow later optimizations to be more effective leading to exposing this bug as a crash. Even before this we were putting improper control on the nodes but since there was no validation of the control it wasn't noticed.

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/fd50a67f97d1