]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Remove IA64 speculation tweaking flags
authorMaxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
Thu, 22 May 2014 07:25:48 +0000 (07:25 +0000)
committerMaxim Kuvyrkov <mkuvyrkov@gcc.gnu.org>
Thu, 22 May 2014 07:25:48 +0000 (07:25 +0000)
* 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.

From-SVN: r210746

gcc/ChangeLog
gcc/config/ia64/ia64.c
gcc/config/ia64/ia64.opt
gcc/haifa-sched.c
gcc/sched-int.h
gcc/sel-sched.c

index d114555146d3ae65dc13d9b3ccc4ac65ff3f957c..7c169f67d17468a99df0193cdad10e5e75a4998d 100644 (file)
@@ -1,3 +1,17 @@
+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
index e1dd86adc0b21ffb53a2cab12e6dbacf9f737235..7118146998ae52bac2e4516b6341ca91f603b886 100644 (file)
@@ -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;
index 0fd43922685746a8ffb370291eaa5b583eae08e0..60577a1528dab3e13372ce38f191c037e191e639 100644 (file)
@@ -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)
index c57093b7f66b9db79b52ada8f10539276bedbdfb..f39c0476f00dd931c2e3526b9d28d63ae2a36b73 100644 (file)
@@ -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++)
index d04bf0876b1f20be6b1a87e835fc132e59807cc5..6e024c29f426a1606170f1c41262cdd3d47e784c 100644 (file)
@@ -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)        \
index 241bdad146af112d850a402eec4920d074a6dcb8..e255d62c7c30dac7d429c0ecba21a291cdbe3ffb 100644 (file)
@@ -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);
-        }
     }
 }