JDK-2134407 : policy_maximally_unroll ignores the current compilation size and can blow out the node counts.
  • Type: Backport
  • Backport of: JDK-6362260
  • Component: hotspot
  • Sub-Component: compiler
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2006-02-13
  • Updated: 2010-12-08
  • Resolved: 2006-08-09
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 JDK 6
5.0u10 b01Fixed 6Fixed
Comments
SUGGESTED FIX $ sccsdiff -r1.96 -r1.97 SCCS/s.loopTransform.cpp ------- loopTransform.cpp ------- 7c7 < * Copyright 2005 Sun Microsystems, Inc. All rights reserved. --- > * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 226,228c226,233 < if( trip_count <= unroll_limit && body_size <= unroll_limit && < (body_size * trip_count <= unroll_limit) ) { < return true; // maximally unroll --- > if( trip_count <= unroll_limit && body_size <= unroll_limit ) { > uint new_body_size = body_size * trip_count; > if (new_body_size <= unroll_limit && > body_size == new_body_size / trip_count && > // Unrolling can result in a large amount of node construction > new_body_size < MaxNodeLimit - phase->C->unique()) { > return true; // maximally unroll > }
02-06-2006

EVALUATION See parent cr.
18-04-2006