Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2134407 | 5.0u10 | Abhijit Saha | P4 | Resolved | Fixed | b01 |
JDK-2134408 | 1.4.2_13 | Abhijit Saha | P4 | Resolved | Fixed | b01 |
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
}
==== //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
}
- backported by
-
JDK-2134407 policy_maximally_unroll ignores the current compilation size and can blow out the node counts.
-
- Resolved
-
-
JDK-2134408 policy_maximally_unroll ignores the current compilation size and can blow out the node counts.
-
- Resolved
-