Commit 3e2fdd24 by Revital Eres Committed by Revital Eres

New flag to apply SMS when SC equals 1

From-SVN: r172610
parent 4c0f7679
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> 2011-04-17 Jan Hubicka <jh@suse.cz>
* lto-symtab.c (lto_cgraph_replace_node): When call statement is * lto-symtab.c (lto_cgraph_replace_node): When call statement is
......
...@@ -8700,6 +8700,10 @@ through which the instruction may be pipelined. The default value is 2. ...@@ -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 The maximum number of best instructions in the ready list that are considered
for renaming in the selective scheduler. The default value is 2. 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 @item max-last-value-rtl
The maximum size measured as number of RTLs that can be recorded in an expression 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 in combiner for a pseudo register as last known value of that register. The default
......
...@@ -1162,9 +1162,10 @@ sms_schedule (void) ...@@ -1162,9 +1162,10 @@ sms_schedule (void)
gcc_assert(stage_count >= 1); gcc_assert(stage_count >= 1);
} }
/* Stage count of 1 means that there is no interleaving between /* The default value of PARAM_SMS_MIN_SC is 2 as stage count of
iterations, let the scheduling passes do the job. */ 1 means that there is no interleaving between iterations thus
if (stage_count <= 1 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)) || (count_init && (loop_count <= stage_count))
|| (flag_branch_probabilities && (trip_count <= stage_count))) || (flag_branch_probabilities && (trip_count <= stage_count)))
{ {
......
...@@ -334,6 +334,11 @@ DEFPARAM(PARAM_SMS_MAX_II_FACTOR, ...@@ -334,6 +334,11 @@ DEFPARAM(PARAM_SMS_MAX_II_FACTOR,
"sms-max-ii-factor", "sms-max-ii-factor",
"A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop", "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop",
100, 0, 0) 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, DEFPARAM(PARAM_SMS_DFA_HISTORY,
"sms-dfa-history", "sms-dfa-history",
"The number of cycles the swing modulo scheduler considers when checking conflicts using DFA", "The number of cycles the swing modulo scheduler considers when checking conflicts using DFA",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment