8022993: Convert MAX_UNROLL constant to LoopMaxUnroll C2 flag
Summary: Replace MAX_UNROLL constant with new C2 LoopMaxUnroll flag.
Reviewed-by: roland
--- a/hotspot/src/share/vm/opto/c2_globals.hpp Sat Aug 10 10:01:12 2013 +0400
+++ b/hotspot/src/share/vm/opto/c2_globals.hpp Wed Aug 14 10:21:26 2013 -0700
@@ -179,6 +179,9 @@
product_pd(intx, LoopUnrollLimit, \
"Unroll loop bodies with node count less than this") \
\
+ product(intx, LoopMaxUnroll, 16, \
+ "Maximum number of unrolls for main loop") \
+ \
product(intx, LoopUnrollMin, 4, \
"Minimum number of unroll loop bodies before checking progress" \
"of rounds of unroll,optimize,..") \
--- a/hotspot/src/share/vm/opto/loopTransform.cpp Sat Aug 10 10:01:12 2013 +0400
+++ b/hotspot/src/share/vm/opto/loopTransform.cpp Wed Aug 14 10:21:26 2013 -0700
@@ -624,8 +624,6 @@
}
-#define MAX_UNROLL 16 // maximum number of unrolls for main loop
-
//------------------------------policy_unroll----------------------------------
// Return TRUE or FALSE if the loop should be unrolled or not. Unroll if
// the loop is a CountedLoop and the body is small enough.
@@ -642,7 +640,7 @@
if (cl->trip_count() <= (uint)(cl->is_normal_loop() ? 2 : 1)) return false;
int future_unroll_ct = cl->unrolled_count() * 2;
- if (future_unroll_ct > MAX_UNROLL) return false;
+ if (future_unroll_ct > LoopMaxUnroll) return false;
// Check for initial stride being a small enough constant
if (abs(cl->stride_con()) > (1<<2)*future_unroll_ct) return false;