[PATCH 02/12] remove some ifdef HAVE_cc0

Trevor Saunders tbsaunde@tbsaunde.org
Tue Apr 21 15:24:00 GMT 2015


On Tue, Apr 21, 2015 at 04:14:01PM +0200, Richard Biener wrote:
> On Tue, Apr 21, 2015 at 3:24 PM,  <tbsaunde+gcc@tbsaunde.org> wrote:
> > From: Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
> >
> > gcc/ChangeLog:
> >
> > 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
> >
> >         * conditions.h: Define macros even if HAVE_cc0 is undefined.
> >         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
> >         * final.c: Likewise.
> >         * jump.c: Likewise.
> >         * recog.c: Likewise.
> >         * recog.h: Declare functions even when HAVE_cc0 is undefined.
> >         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
> > ---
> >  gcc/conditions.h | 6 ------
> >  gcc/emit-rtl.c   | 2 --
> >  gcc/final.c      | 2 --
> >  gcc/jump.c       | 3 ---
> >  gcc/recog.c      | 2 --
> >  gcc/recog.h      | 2 --
> >  gcc/sched-deps.c | 5 +++--
> >  7 files changed, 3 insertions(+), 19 deletions(-)
> >
> > diff --git a/gcc/conditions.h b/gcc/conditions.h
> > index 2308bfc..7cd1e1c 100644
> > --- a/gcc/conditions.h
> > +++ b/gcc/conditions.h
> > @@ -20,10 +20,6 @@ along with GCC; see the file COPYING3.  If not see
> >  #ifndef GCC_CONDITIONS_H
> >  #define GCC_CONDITIONS_H
> >
> > -/* None of the things in the files exist if we don't use CC0.  */
> > -
> > -#ifdef HAVE_cc0
> > -
> >  /* The variable cc_status says how to interpret the condition code.
> >     It is set by output routines for an instruction that sets the cc's
> >     and examined by output routines for jump instructions.
> > @@ -117,6 +113,4 @@ extern CC_STATUS cc_status;
> >   (cc_status.flags = 0, cc_status.value1 = 0, cc_status.value2 = 0,  \
> >    CC_STATUS_MDEP_INIT)
> >
> > -#endif
> > -
> >  #endif /* GCC_CONDITIONS_H */
> > diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
> > index 483eacb..c1974bb 100644
> > --- a/gcc/emit-rtl.c
> > +++ b/gcc/emit-rtl.c
> > @@ -3541,7 +3541,6 @@ prev_active_insn (rtx uncast_insn)
> >    return insn;
> >  }
> >
> > -#ifdef HAVE_cc0
> >  /* 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).
> > @@ -3589,7 +3588,6 @@ prev_cc0_setter (rtx uncast_insn)
> >
> >    return insn;
> >  }
> > -#endif
> >
> >  #ifdef AUTO_INC_DEC
> >  /* Find a RTX_AUTOINC class rtx which matches DATA.  */
> > diff --git a/gcc/final.c b/gcc/final.c
> > index 1fa93d9..41f6bd9 100644
> > --- a/gcc/final.c
> > +++ b/gcc/final.c
> > @@ -191,7 +191,6 @@ static rtx last_ignored_compare = 0;
> >
> >  static int insn_counter = 0;
> >
> > -#ifdef HAVE_cc0
> >  /* This variable contains machine-dependent flags (defined in tm.h)
> >     set and examined by output routines
> >     that describe how to interpret the condition codes properly.  */
> > @@ -202,7 +201,6 @@ CC_STATUS cc_status;
> >     from before the insn.  */
> >
> >  CC_STATUS cc_prev_status;
> > -#endif
> >
> >  /* Number of unmatched NOTE_INSN_BLOCK_BEG notes we have seen.  */
> >
> > diff --git a/gcc/jump.c b/gcc/jump.c
> > index 34b3b7b..bc91550 100644
> > --- a/gcc/jump.c
> > +++ b/gcc/jump.c
> > @@ -1044,8 +1044,6 @@ jump_to_label_p (const rtx_insn *insn)
> >           && JUMP_LABEL (insn) != NULL && !ANY_RETURN_P (JUMP_LABEL (insn)));
> >  }
> >
> > -#ifdef HAVE_cc0
> > -
> >  /* Return nonzero if X is an RTX that only sets the condition codes
> >     and has no side effects.  */
> >
> > @@ -1094,7 +1092,6 @@ sets_cc0_p (const_rtx x)
> >      }
> >    return 0;
> >  }
> > -#endif
> >
> >  /* Find all CODE_LABELs referred to in X, and increment their use
> >     counts.  If INSN is a JUMP_INSN and there is at least one
> > diff --git a/gcc/recog.c b/gcc/recog.c
> > index a9d3b1f..c3ad86f 100644
> > --- a/gcc/recog.c
> > +++ b/gcc/recog.c
> > @@ -971,7 +971,6 @@ validate_simplify_insn (rtx insn)
> >    return ((num_changes_pending () > 0) && (apply_change_group () > 0));
> >  }
> >
> > -#ifdef HAVE_cc0
> >  /* Return 1 if the insn using CC0 set by INSN does not contain
> >     any ordered tests applied to the condition codes.
> >     EQ and NE tests do not count.  */
> > @@ -988,7 +987,6 @@ next_insn_tests_no_inequality (rtx insn)
> >    return (INSN_P (next)
> >           && ! inequality_comparisons_p (PATTERN (next)));
> >  }
> > -#endif
> >
> >  /* Return 1 if OP is a valid general operand for machine mode MODE.
> >     This is either a register reference, a memory reference,
> > diff --git a/gcc/recog.h b/gcc/recog.h
> > index 45ea671..8a38b26 100644
> > --- a/gcc/recog.h
> > +++ b/gcc/recog.h
> > @@ -112,9 +112,7 @@ extern void validate_replace_rtx_group (rtx, rtx, rtx);
> >  extern void validate_replace_src_group (rtx, rtx, rtx);
> >  extern bool validate_simplify_insn (rtx insn);
> >  extern int num_changes_pending (void);
> > -#ifdef HAVE_cc0
> >  extern int next_insn_tests_no_inequality (rtx);
> > -#endif
> >  extern bool reg_fits_class_p (const_rtx, reg_class_t, int, machine_mode);
> >
> >  extern int offsettable_memref_p (rtx);
> > diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c
> > index 5434831..31de6be 100644
> > --- a/gcc/sched-deps.c
> > +++ b/gcc/sched-deps.c
> > @@ -2608,8 +2608,10 @@ sched_analyze_2 (struct deps_desc *deps, rtx x, rtx_insn *insn)
> >
> >        return;
> >
> > -#ifdef HAVE_cc0
> >      case CC0:
> > +#ifdef HAVE_cc0
> 
> #ifndef ?

yeah, good catch thanks!

Trev

> 
> > +      gcc_unreachable ();
> > +#endif
> >        /* User of CC0 depends on immediately preceding insn.  */
> >        SCHED_GROUP_P (insn) = 1;
> >         /* Don't move CC0 setter to another block (it can set up the
> > @@ -2620,7 +2622,6 @@ sched_analyze_2 (struct deps_desc *deps, rtx x, rtx_insn *insn)
> >         sched_deps_info->finish_rhs ();
> >
> >        return;
> > -#endif
> >
> >      case REG:
> >        {
> > --
> > 2.3.0.80.g18d0fec.dirty
> >



More information about the Gcc-patches mailing list