United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-6362260 : policy_maximally_unroll ignores the current compilation size and can blow out the node counts.

Details
Type:
Bug
Submit Date:
2005-12-13
Status:
Resolved
Updated Date:
2010-12-08
Project Name:
JDK
Resolved Date:
2006-02-22
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
1.4.2_12,5.0u6
Fixed Versions:

Related Reports
Backport:
Backport:

Sub Tasks

Description
policy_maximally_unroll ignores the current compilation size and can blow out the node counts. The following suggested fix added the cutout from policy_peel into it.



==== //java/main-dev/java/hotspot/src/share/vm/opto/loopTransform.cpp#15 - /home/cliffc/HotSpot/cliffc-main/hotspot/src/share/vm/opto/loopTransform.cpp ====
@@ -216,7 +216,8 @@
   uint unroll_limit = (uint)LoopUnrollLimit * 4;
   assert( (intx)unroll_limit == LoopUnrollLimit * 4, "LoopUnrollLimit must fit in 32bits");
   if( trip_count <= unroll_limit && body_size <= unroll_limit &&
-      (body_size * trip_count <= unroll_limit) ) {
+      (body_size * trip_count <= unroll_limit) &&
+      body_size*body_size+phase->C->unique() < 65000 ) {
     return trip_count;    // maximally unroll
   }

                                    

Comments
SUGGESTED FIX

/net/prt-archiver.sfbay/data/archived_workspaces/main/c2_baseline/2006/20060213110717.nips.bug6362260/
Webrev:                 http://analemma.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/main/c2_baseline/2006/20060213110717.nips.bug6362260/workspace/webrevs/webrev-2006.02.13/index.html
                                     
2006-02-13
EVALUATION

See description.
                                     
2006-02-10



Hardware and Software, Engineered to Work Together