On Tue, Apr 21, 2015 at 04:14:01PM +0200, Richard Biener wrote: > On Tue, Apr 21, 2015 at 3:24 PM, <tbsaunde+...@tbsaunde.org> wrote: > > From: Trevor Saunders <tbsaunde+...@tbsaunde.org> > > > > gcc/ChangeLog: > > > > 2015-04-21 Trevor Saunders <tbsaunde+...@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 > >