diff options
author | Revital Eres <revital.eres@linaro.org> | 2011-04-17 14:32:24 +0000 |
---|---|---|
committer | Revital Eres <revitale@gcc.gnu.org> | 2011-04-17 14:32:24 +0000 |
commit | 3e2fdd240f8000068f78fd76898f4700ed2926ca (patch) | |
tree | 178a2d3b3d6ca230bdeb547cccdce2742154fb11 /gcc | |
parent | 4c0f767939eb659b721f9222cf7bdacd0194310b (diff) | |
download | gcc-3e2fdd240f8000068f78fd76898f4700ed2926ca.zip gcc-3e2fdd240f8000068f78fd76898f4700ed2926ca.tar.gz gcc-3e2fdd240f8000068f78fd76898f4700ed2926ca.tar.bz2 |
New flag to apply SMS when SC equals 1
From-SVN: r172610
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 4 | ||||
-rw-r--r-- | gcc/modulo-sched.c | 7 | ||||
-rw-r--r-- | gcc/params.def | 5 |
4 files changed, 19 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 23199ca..73f304d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 89eb525..7ca4405 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -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 diff --git a/gcc/modulo-sched.c b/gcc/modulo-sched.c index 7331744..f37d743 100644 --- a/gcc/modulo-sched.c +++ b/gcc/modulo-sched.c @@ -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))) { diff --git a/gcc/params.def b/gcc/params.def index 81fdfcd..5e8be21 100644 --- a/gcc/params.def +++ b/gcc/params.def @@ -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", |