New flag to apply SMS when SC equals 1 (Second try)

Message ID BANLkTi=jaaWA65hYd0Byg-CDmY_UTTfYXg@mail.gmail.com
State New
Headers show

Commit Message

Revital Eres April 17, 2011, 6:33 a.m.
Hello,

Following Richard's suggestion here is the patch again.
Tested on ppc64-redhat-linux.

OK for mainline?

Thanks,
Revital


Changelog

        * params.def (sms-min-sc): New param flag.
        * modulo-sched.c (sms_schedule): Use it.

Comments

Richard Biener April 17, 2011, 10:48 a.m. | #1
On Sun, Apr 17, 2011 at 8:33 AM, Revital Eres <revital.eres@linaro.org> wrote:
> Hello,
>
> Following Richard's suggestion here is the patch again.
> Tested on ppc64-redhat-linux.
>
> OK for mainline?

New params need documentation in doc/invoke.texi.  Please also change the
maximum value to 2, not 1.  Ok with that changes.

Thanks,
Richard.

> Thanks,
> Revital
>
>
> Changelog
>
>        * params.def (sms-min-sc): New param flag.
>        * modulo-sched.c (sms_schedule): Use it.
>

Patch

=== modified file 'gcc/modulo-sched.c'
--- gcc/modulo-sched.c	2011-03-27 07:11:08 +0000
+++ gcc/modulo-sched.c	2011-04-17 06:24:21 +0000
@@ -1222,9 +1222,10 @@  sms_schedule (void)
 	  PS_STAGE_COUNT(ps) = stage_count;
 	}
       
-      /* 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)))
 	{

=== modified file 'gcc/params.def'
--- gcc/params.def	2011-02-02 15:52:08 +0000
+++ gcc/params.def	2011-04-17 05:48:44 +0000
@@ -344,6 +344,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",