From 61216c26080a4c866e940871394f85221acfea64 Mon Sep 17 00:00:00 2001 From: Steven Bosscher Date: Tue, 14 May 2013 17:20:08 +0000 Subject: rtl.h (next_label, [...]): Remove prototypes. * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns): Remove prototypes. * emit-rtl.c (next_label): Remove unused function. (skip_consecutive_labels, link_cc0_insns): Move to ... * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the only place where these functions are used, and make them static. From-SVN: r198894 --- gcc/ChangeLog | 9 +++++++++ gcc/emit-rtl.c | 48 ------------------------------------------------ gcc/reorg.c | 38 ++++++++++++++++++++++++++++++++++++++ gcc/rtl.h | 3 --- 4 files changed, 47 insertions(+), 51 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6cc7236..61008cf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2013-05-14 Steven Bosscher + + * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns): + Remove prototypes. + * emit-rtl.c (next_label): Remove unused function. + (skip_consecutive_labels, link_cc0_insns): Move to ... + * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the + only place where these functions are used, and make them static. + 2013-05-14 Marc Glisse * fold-const.c (fold_negate_expr): Handle vectors. diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 538b1ec..fc56776 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -3332,56 +3332,8 @@ prev_active_insn (rtx insn) return insn; } - -/* Return the next CODE_LABEL after the insn INSN, or 0 if there is none. */ - -rtx -next_label (rtx insn) -{ - while (insn) - { - insn = NEXT_INSN (insn); - if (insn == 0 || LABEL_P (insn)) - break; - } - - return insn; -} - -/* Return the last label to mark the same position as LABEL. Return LABEL - itself if it is null or any return rtx. */ - -rtx -skip_consecutive_labels (rtx label) -{ - rtx insn; - - if (label && ANY_RETURN_P (label)) - return label; - - for (insn = label; insn != 0 && !INSN_P (insn); insn = NEXT_INSN (insn)) - if (LABEL_P (insn)) - label = insn; - - return label; -} #ifdef HAVE_cc0 -/* INSN uses CC0 and is being moved into a delay slot. Set up REG_CC_SETTER - and REG_CC_USER notes so we can find it. */ - -void -link_cc0_insns (rtx insn) -{ - rtx user = next_nonnote_insn (insn); - - if (NONJUMP_INSN_P (user) && GET_CODE (PATTERN (user)) == SEQUENCE) - user = XVECEXP (PATTERN (user), 0, 0); - - add_reg_note (user, REG_CC_SETTER, insn); - add_reg_note (insn, REG_CC_USER, user); -} - /* Return the next insn that uses CC0 after INSN, which is assumed to set it. This is the inverse of prev_cc0_setter (i.e., prev_cc0_setter applied to the result of this function should yield INSN). diff --git a/gcc/reorg.c b/gcc/reorg.c index 237be6f..17ef356 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -134,6 +134,44 @@ along with GCC; see the file COPYING3. If not see #define eligible_for_annul_false(INSN, SLOTS, TRIAL, FLAGS) 0 #endif + +/* First, some functions that were used before GCC got a control flow graph. + These functions are now only used here in reorg.c, and have therefore + been moved here to avoid inadvertent misuse elsewhere in the compiler. */ + +/* Return the last label to mark the same position as LABEL. Return LABEL + itself if it is null or any return rtx. */ + +static rtx +skip_consecutive_labels (rtx label) +{ + rtx insn; + + if (label && ANY_RETURN_P (label)) + return label; + + for (insn = label; insn != 0 && !INSN_P (insn); insn = NEXT_INSN (insn)) + if (LABEL_P (insn)) + label = insn; + + return label; +} + +/* INSN uses CC0 and is being moved into a delay slot. Set up REG_CC_SETTER + and REG_CC_USER notes so we can find it. */ + +static void +link_cc0_insns (rtx insn) +{ + rtx user = next_nonnote_insn (insn); + + if (NONJUMP_INSN_P (user) && GET_CODE (PATTERN (user)) == SEQUENCE) + user = XVECEXP (PATTERN (user), 0, 0); + + add_reg_note (user, REG_CC_SETTER, insn); + add_reg_note (insn, REG_CC_USER, user); +} + /* Insns which have delay slots that have not yet been filled. */ static struct obstack unfilled_slots_obstack; diff --git a/gcc/rtl.h b/gcc/rtl.h index 0d0a2a3..554da54 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -1912,8 +1912,6 @@ extern rtx next_real_insn (rtx); extern rtx prev_active_insn (rtx); extern rtx next_active_insn (rtx); extern int active_insn_p (const_rtx); -extern rtx next_label (rtx); -extern rtx skip_consecutive_labels (rtx); extern rtx next_cc0_user (rtx); extern rtx prev_cc0_setter (rtx); @@ -2551,7 +2549,6 @@ extern unsigned int unshare_all_rtl (void); extern void unshare_all_rtl_again (rtx); extern void unshare_all_rtl_in_chain (rtx); extern void verify_rtl_sharing (void); -extern void link_cc0_insns (rtx); extern void add_insn (rtx); extern void add_insn_before (rtx, rtx, basic_block); extern void add_insn_after (rtx, rtx, basic_block); -- cgit v1.1