8022993: Convert MAX_UNROLL constant to LoopMaxUnroll C2 flag
authorkvn
Wed, 14 Aug 2013 10:21:26 -0700
changeset 19283 4df251ee863c
parent 19282 9764b5a041b6
child 19284 2ef84821f9fe
child 19329 eccb1e520c66
8022993: Convert MAX_UNROLL constant to LoopMaxUnroll C2 flag Summary: Replace MAX_UNROLL constant with new C2 LoopMaxUnroll flag. Reviewed-by: roland
hotspot/src/share/vm/opto/c2_globals.hpp
hotspot/src/share/vm/opto/loopTransform.cpp
--- 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;