New flag to apply SMS when SC equals 1
authorRevital Eres <revital.eres@linaro.org>
Sun, 17 Apr 2011 14:32:24 +0000 (14:32 +0000)
committerRevital Eres <revitale@gcc.gnu.org>
Sun, 17 Apr 2011 14:32:24 +0000 (14:32 +0000)
From-SVN: r172610

gcc/ChangeLog
gcc/doc/invoke.texi
gcc/modulo-sched.c
gcc/params.def

index 23199ca80b30aa99c74bebce34b5ca90974dc7f9..73f304d07885854975519b6a026513181d392f94 100644 (file)
@@ -1,3 +1,9 @@
+2011-04-17  Revital Eres  <revital.eres@linaro.org>
+
+       * params.def (sms-min-sc): New param flag.
+       * modulo-sched.c (sms_schedule): Use it.
+       * doc/invoke.texi (sms-min-sc): Document it.
+
 2011-04-17  Jan Hubicka  <jh@suse.cz>
 
        * lto-symtab.c (lto_cgraph_replace_node): When call statement is
index 89eb525caa9ed0e9f93b748c4f015fb03e9d3e28..7ca4405a18f4432e73a58b2edad20f3af0b87b97 100644 (file)
@@ -8700,6 +8700,10 @@ through which the instruction may be pipelined.  The default value is 2.
 The maximum number of best instructions in the ready list that are considered
 for renaming in the selective scheduler.  The default value is 2.
 
+@item sms-min-sc
+The minimum value of stage count that swing modulo scheduler will
+generate.  The default value is 2.
+
 @item max-last-value-rtl
 The maximum size measured as number of RTLs that can be recorded in an expression
 in combiner for a pseudo register as last known value of that register.  The default
index 73317444ff764577198a2237c0fea62a4396e962..f37d743e28792e875770bf771e528cb75691c375 100644 (file)
@@ -1162,9 +1162,10 @@ sms_schedule (void)
         gcc_assert(stage_count >= 1);
       }
 
-      /* Stage count of 1 means that there is no interleaving between
-         iterations, let the scheduling passes do the job.  */
-      if (stage_count <= 1
+      /* The default value of PARAM_SMS_MIN_SC is 2 as stage count of
+        1 means that there is no interleaving between iterations thus
+        we let the scheduling passes do the job in this case.  */
+      if (stage_count < (unsigned) PARAM_VALUE (PARAM_SMS_MIN_SC)
          || (count_init && (loop_count <= stage_count))
          || (flag_branch_probabilities && (trip_count <= stage_count)))
        {
index 81fdfcdf500ac79c782d80a50626d62d95694fda..5e8be211394ac06831a8009d5ed2fd719b8b607e 100644 (file)
@@ -334,6 +334,11 @@ DEFPARAM(PARAM_SMS_MAX_II_FACTOR,
         "sms-max-ii-factor",
         "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop",
         100, 0, 0)
+/* The minimum value of stage count that swing modulo scheduler will generate.  */
+DEFPARAM(PARAM_SMS_MIN_SC,
+        "sms-min-sc",
+        "The minimum value of stage count that swing modulo scheduler will generate.",
+        2, 1, 1)
 DEFPARAM(PARAM_SMS_DFA_HISTORY,
         "sms-dfa-history",
         "The number of cycles the swing modulo scheduler considers when checking conflicts using DFA",