Good evening,

The following patch only removes dead code.

For the convenience of reviewers, I included
both the commit in which such code was added,
and in which it was made obsolete below.

No behaviour change is therefore expected.
Nevertheless, I successfully bootstrapped it.


1) Added in e855c69d162, but never used:

   copy_data_sets insn_at_boundary_p _list_iter_cond_x
   sel_init_invalid_data_sets sel_save_haifa_priorities
   insn_eligible_for_subst_p

2) Added in e855c69d162 but made redundant in de8ea9631cf:

   _xlist_add _xlist_remove _xlist_clear _xlist_is_in_p
   _xlist_iter_remove _xlist_iterator _FOR_EACH_X _FOR_EACH_X_1
   _XLIST_NEXT _XLIST_X

The '_xlist'-related declarations were replaced by inline
functions. See the broader context in:
https://gcc.gnu.org/pipermail/gcc-patches/2014-August/395247.html



gcc/ChangeLog:

        * sel-sched-ir.cc (copy_data_sets): Removed dead code.
        * sel-sched-ir.h (_XLIST_X): Likewise.
        (_XLIST_NEXT): Likewise.
        (_xlist_add): Likewise.
        (_xlist_remove): Likewise.
        (_xlist_clear): Likewise.
        (_xlist_is_in_p): Likewise.
        (_list_iter_cond_x): Likewise.
        (_xlist_iter_remove): Likewise.
        (_FOR_EACH_X): Likewise.
        (_FOR_EACH_X_1): Likewise.
        (sel_save_haifa_priorities): Likewise.
        (insn_eligible_for_subst_p): Likewise.
        (sel_init_invalid_data_sets): Likewise.
        (insn_at_boundary_p): Likewise.
        (copy_data_sets): Likewise.

Signed-off-by: Léo Hardt <[email protected]>
---
 gcc/sel-sched-ir.cc | 21 -----------------
 gcc/sel-sched-ir.h  | 57 ---------------------------------------------
 2 files changed, 78 deletions(-)

diff --git a/gcc/sel-sched-ir.cc b/gcc/sel-sched-ir.cc
index c80ffe3ce81..bae404657dd 100644
--- a/gcc/sel-sched-ir.cc
+++ b/gcc/sel-sched-ir.cc
@@ -4465,27 +4465,6 @@ exchange_data_sets (basic_block to, basic_block from)
   std::swap (BB_AV_LEVEL (from), BB_AV_LEVEL (to));
 }

-/* Copy data sets of FROM to TO.  */
-void
-copy_data_sets (basic_block to, basic_block from)
-{
-  gcc_assert (!BB_LV_SET_VALID_P (to) && !BB_AV_SET_VALID_P (to));
-  gcc_assert (BB_AV_SET (to) == NULL);
-
-  BB_AV_LEVEL (to) = BB_AV_LEVEL (from);
-  BB_LV_SET_VALID_P (to) = BB_LV_SET_VALID_P (from);
-
-  if (BB_AV_SET_VALID_P (from))
-    {
-      BB_AV_SET (to) = av_set_copy (BB_AV_SET (from));
-    }
-  if (BB_LV_SET_VALID_P (from))
-    {
-      gcc_assert (BB_LV_SET (to) != NULL);
-      COPY_REG_SET (BB_LV_SET (to), BB_LV_SET (from));
-    }
-}
-
 /* Return an av set for INSN, if any.  */
 av_set_t
 get_av_set (insn_t insn)
diff --git a/gcc/sel-sched-ir.h b/gcc/sel-sched-ir.h
index 07db5503308..c7714818840 100644
--- a/gcc/sel-sched-ir.h
+++ b/gcc/sel-sched-ir.h
@@ -42,12 +42,6 @@ typedef struct idata_def *idata_t;
 struct vinsn_def;
 typedef struct vinsn_def *vinsn_t;

-/* RTX list.
-   This type is the backend for ilist.  */
-typedef _list_t _xlist_t;
-#define _XLIST_X(L) ((L)->u.x)
-#define _XLIST_NEXT(L) (_LIST_NEXT (L))
-
 /* Instruction.  */
 typedef rtx_insn *insn_t;

@@ -455,51 +449,6 @@ _list_iter_remove_nofree (_list_iterator *ip)
        _list_iter_next (&(I)))
 

-/* _xlist_t functions.  */
-
-inline void
-_xlist_add (_xlist_t *lp, rtx x)
-{
-  _list_add (lp);
-  _XLIST_X (*lp) = x;
-}
-
-#define _xlist_remove(LP) (_list_remove (LP))
-#define _xlist_clear(LP) (_list_clear (LP))
-
-inline bool
-_xlist_is_in_p (_xlist_t l, rtx x)
-{
-  while (l)
-    {
-      if (_XLIST_X (l) == x)
-        return true;
-      l = _XLIST_NEXT (l);
-    }
-
-  return false;
-}
-
-/* Used through _FOR_EACH.  */
-inline bool
-_list_iter_cond_x (_xlist_t l, rtx *xp)
-{
-  if (l)
-    {
-      *xp = _XLIST_X (l);
-      return true;
-    }
-
-  return false;
-}
-
-#define _xlist_iter_remove(IP) (_list_iter_remove (IP))
-
-typedef _list_iterator _xlist_iterator;
-#define _FOR_EACH_X(X, I, L) _FOR_EACH (x, (X), (I), (L))
-#define _FOR_EACH_X_1(X, I, LP) _FOR_EACH_1 (x, (X), (I), (LP))
-
-
 /* ilist_t functions.  */

 inline void
@@ -1577,8 +1526,6 @@ extern void av_set_substract_cond_branches (av_set_t *);
 extern void av_set_split_usefulness (av_set_t, int, int);
 extern void av_set_code_motion_filter (av_set_t *, av_set_t);

-extern void sel_save_haifa_priorities (void);
-
 extern void sel_init_global_and_expr (bb_vec_t);
 extern void sel_finish_global_and_expr (void);

@@ -1593,14 +1540,11 @@ extern int tick_check_p (expr_t, deps_t, fence_t);

 /* Functions to work with insns.  */
 extern bool lhs_of_insn_equals_to_dest_p (insn_t, rtx);
-extern bool insn_eligible_for_subst_p (insn_t);
 extern void get_dest_and_mode (rtx, rtx *, machine_mode *);

 extern bool bookkeeping_can_be_created_if_moved_through_p (insn_t);
 extern bool sel_remove_insn (insn_t, bool, bool);
 extern bool bb_header_p (insn_t);
-extern void sel_init_invalid_data_sets (insn_t);
-extern bool insn_at_boundary_p (insn_t);

 /* Basic block and CFG functions.  */

@@ -1644,7 +1588,6 @@ extern bool sel_is_loop_preheader_p (basic_block);
 extern void clear_outdated_rtx_info (basic_block);
 extern void free_data_sets (basic_block);
 extern void exchange_data_sets (basic_block, basic_block);
-extern void copy_data_sets (basic_block, basic_block);

 extern void sel_register_cfg_hooks (void);
 extern void sel_unregister_cfg_hooks (void);
--
2.39.5

Reply via email to