summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog14
-rw-r--r--gcc/config/ia64/ia64.c14
-rw-r--r--gcc/config/ia64/ia64.opt6
-rw-r--r--gcc/haifa-sched.c52
-rw-r--r--gcc/sched-int.h4
-rw-r--r--gcc/sel-sched.c30
6 files changed, 25 insertions, 95 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d114555146d..7c169f67d17 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,19 @@
2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
+ Remove IA64 speculation tweaking flags
+ * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
+ speculation tuning flags.
+ (msched-prefer-non-data-spec-insns,)
+ (msched-prefer-non-control-spec-insns): Obsolete options.
+ * haifa-sched.c (choose_ready): Remove handling of
+ PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
+ * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
+ and PREFER_NON_DATA_SPEC.
+ * sel-sched.c (process_spec_exprs): Remove handling of
+ PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
+
+2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
+
Improve scheduling debug output
* haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
(advance_one_cycle): Update.
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index e1dd86adc0b..7118146998a 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -7943,17 +7943,9 @@ ia64_set_sched_flags (spec_info_t spec_info)
spec_info->flags = 0;
- if ((mask & DATA_SPEC) && mflag_sched_prefer_non_data_spec_insns)
- spec_info->flags |= PREFER_NON_DATA_SPEC;
-
- if (mask & CONTROL_SPEC)
- {
- if (mflag_sched_prefer_non_control_spec_insns)
- spec_info->flags |= PREFER_NON_CONTROL_SPEC;
-
- if (sel_sched_p () && mflag_sel_sched_dont_check_control_spec)
- spec_info->flags |= SEL_SCHED_SPEC_DONT_CHECK_CONTROL;
- }
+ if ((mask & CONTROL_SPEC)
+ && sel_sched_p () && mflag_sel_sched_dont_check_control_spec)
+ spec_info->flags |= SEL_SCHED_SPEC_DONT_CHECK_CONTROL;
if (sched_verbose >= 1)
spec_info->dump = sched_dump;
diff --git a/gcc/config/ia64/ia64.opt b/gcc/config/ia64/ia64.opt
index 0fd43922685..60577a1528d 100644
--- a/gcc/config/ia64/ia64.opt
+++ b/gcc/config/ia64/ia64.opt
@@ -164,12 +164,10 @@ Target Report Var(mflag_sched_spec_control_ldc) Init(0)
Use simple data speculation check for control speculation
msched-prefer-non-data-spec-insns
-Target Report Var(mflag_sched_prefer_non_data_spec_insns) Init(0)
-If set, data speculative instructions will be chosen for schedule only if there are no other choices at the moment
+Target Ignore Warn(switch %qs is no longer supported)
msched-prefer-non-control-spec-insns
-Target Report Var(mflag_sched_prefer_non_control_spec_insns) Init(0)
-If set, control speculative instructions will be chosen for schedule only if there are no other choices at the moment
+Target Ignore Warn(switch %qs is no longer supported)
msched-count-spec-in-critical-path
Target Report Var(mflag_sched_count_spec_in_critical_path) Init(0)
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index c57093b7f66..f39c0476f00 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -5567,9 +5567,8 @@ choose_ready (struct ready_list *ready, bool first_cycle_insn_p,
else
{
/* Try to choose the better insn. */
- int index = 0, i, n;
+ int index = 0, i;
rtx insn;
- int try_data = 1, try_control = 1;
ds_t ts;
insn = ready_element (ready, 0);
@@ -5579,43 +5578,10 @@ choose_ready (struct ready_list *ready, bool first_cycle_insn_p,
return 0;
}
- if (spec_info
- && spec_info->flags & (PREFER_NON_DATA_SPEC
- | PREFER_NON_CONTROL_SPEC))
- {
- for (i = 0, n = ready->n_ready; i < n; i++)
- {
- rtx x;
- ds_t s;
-
- x = ready_element (ready, i);
- s = TODO_SPEC (x);
-
- if (spec_info->flags & PREFER_NON_DATA_SPEC
- && !(s & DATA_SPEC))
- {
- try_data = 0;
- if (!(spec_info->flags & PREFER_NON_CONTROL_SPEC)
- || !try_control)
- break;
- }
-
- if (spec_info->flags & PREFER_NON_CONTROL_SPEC
- && !(s & CONTROL_SPEC))
- {
- try_control = 0;
- if (!(spec_info->flags & PREFER_NON_DATA_SPEC) || !try_data)
- break;
- }
- }
- }
-
ts = TODO_SPEC (insn);
if ((ts & SPECULATIVE)
- && (((!try_data && (ts & DATA_SPEC))
- || (!try_control && (ts & CONTROL_SPEC)))
- || (targetm.sched.first_cycle_multipass_dfa_lookahead_guard_spec
- && !targetm.sched
+ && (targetm.sched.first_cycle_multipass_dfa_lookahead_guard_spec
+ && (!targetm.sched
.first_cycle_multipass_dfa_lookahead_guard_spec (insn))))
/* Discard speculative instruction that stands first in the ready
list. */
@@ -5624,16 +5590,8 @@ choose_ready (struct ready_list *ready, bool first_cycle_insn_p,
return 1;
}
- ready_try[0] = 0;
-
- for (i = 1; i < ready->n_ready; i++)
- {
- insn = ready_element (ready, i);
-
- ready_try [i]
- = ((!try_data && (TODO_SPEC (insn) & DATA_SPEC))
- || (!try_control && (TODO_SPEC (insn) & CONTROL_SPEC)));
- }
+ for (i = 0; i < ready->n_ready; i++)
+ ready_try [i] = 0;
/* Let the target filter the search space. */
for (i = 1; i < ready->n_ready; i++)
diff --git a/gcc/sched-int.h b/gcc/sched-int.h
index d04bf0876b1..6e024c29f42 100644
--- a/gcc/sched-int.h
+++ b/gcc/sched-int.h
@@ -1141,9 +1141,7 @@ enum SCHED_FLAGS {
enum SPEC_SCHED_FLAGS {
COUNT_SPEC_IN_CRITICAL_PATH = 1,
- PREFER_NON_DATA_SPEC = COUNT_SPEC_IN_CRITICAL_PATH << 1,
- PREFER_NON_CONTROL_SPEC = PREFER_NON_DATA_SPEC << 1,
- SEL_SCHED_SPEC_DONT_CHECK_CONTROL = PREFER_NON_CONTROL_SPEC << 1
+ SEL_SCHED_SPEC_DONT_CHECK_CONTROL = COUNT_SPEC_IN_CRITICAL_PATH << 1
};
#define NOTE_NOT_BB_P(NOTE) (NOTE_P (NOTE) && (NOTE_KIND (NOTE) \
diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c
index 241bdad146a..e255d62c7c3 100644
--- a/gcc/sel-sched.c
+++ b/gcc/sel-sched.c
@@ -3502,8 +3502,6 @@ process_pipelined_exprs (av_set_t *av_ptr)
static void
process_spec_exprs (av_set_t *av_ptr)
{
- bool try_data_p = true;
- bool try_control_p = true;
expr_t expr;
av_set_iterator si;
@@ -3529,34 +3527,6 @@ process_spec_exprs (av_set_t *av_ptr)
av_set_iter_remove (&si);
continue;
}
-
- if ((spec_info->flags & PREFER_NON_DATA_SPEC)
- && !(ds & BEGIN_DATA))
- try_data_p = false;
-
- if ((spec_info->flags & PREFER_NON_CONTROL_SPEC)
- && !(ds & BEGIN_CONTROL))
- try_control_p = false;
- }
-
- FOR_EACH_EXPR_1 (expr, si, av_ptr)
- {
- ds_t ds;
-
- ds = EXPR_SPEC_DONE_DS (expr);
-
- if (ds & SPECULATIVE)
- {
- if ((ds & BEGIN_DATA) && !try_data_p)
- /* We don't want any data speculative instructions right
- now. */
- av_set_iter_remove (&si);
-
- if ((ds & BEGIN_CONTROL) && !try_control_p)
- /* We don't want any control speculative instructions right
- now. */
- av_set_iter_remove (&si);
- }
}
}