From: Trevor Saunders Date: Thu, 22 Sep 2016 13:16:35 +0000 (+0000) Subject: make next/prev nonnote_nondebug_insn take rtx_insn * X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1f00691e9b28370c9e9986afc46dd9f7c42024bc;p=gcc.git make next/prev nonnote_nondebug_insn take rtx_insn * gcc/ChangeLog: 2016-09-22 Trevor Saunders * config/cris/cris.c (cris_asm_output_case_end): Change argument type to rtx_insn *. * emit-rtl.c (next_nonnote_nondebug_insn): Likewise. (prev_nonnote_nondebug_insn): Likewise. * config/cris/cris-protos.h: Adjust prototype. * rtl.h: Likewise. * jump.c (rtx_renumbered_equal_p): Adjust. From-SVN: r240360 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7576a1eea50..658fbec2ee6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2016-09-22 Trevor Saunders + + * config/cris/cris.c (cris_asm_output_case_end): Change argument + type to rtx_insn *. + * emit-rtl.c (next_nonnote_nondebug_insn): Likewise. + (prev_nonnote_nondebug_insn): Likewise. + * config/cris/cris-protos.h: Adjust prototype. + * rtl.h: Likewise. + * jump.c (rtx_renumbered_equal_p): Adjust. + 2016-09-22 Trevor Saunders * emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *. diff --git a/gcc/config/cris/cris-protos.h b/gcc/config/cris/cris-protos.h index 5e0ae61d231..028c2b7120d 100644 --- a/gcc/config/cris/cris-protos.h +++ b/gcc/config/cris/cris-protos.h @@ -44,7 +44,7 @@ extern bool cris_store_multiple_op_p (rtx); extern bool cris_movem_load_rest_p (rtx, int); extern void cris_asm_output_symbol_ref (FILE *, rtx); extern int cris_cfun_uses_pic_table (void); -extern void cris_asm_output_case_end (FILE *, int, rtx); +extern void cris_asm_output_case_end (FILE *, int, rtx_insn *); extern rtx cris_gen_movem_load (rtx, rtx, int); extern rtx cris_emit_movem_store (rtx, rtx, int, bool); extern void cris_expand_pic_call_address (rtx *, rtx *); diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c index 1026aad328d..c909453006d 100644 --- a/gcc/config/cris/cris.c +++ b/gcc/config/cris/cris.c @@ -2588,11 +2588,11 @@ cris_asm_output_ident (const char *string) /* The ASM_OUTPUT_CASE_END worker. */ void -cris_asm_output_case_end (FILE *stream, int num, rtx table) +cris_asm_output_case_end (FILE *stream, int num, rtx_insn *table) { /* Step back, over the label for the table, to the actual casejump and assert that we find only what's expected. */ - rtx whole_jump_insn = prev_nonnote_nondebug_insn (table); + rtx_insn *whole_jump_insn = prev_nonnote_nondebug_insn (table); gcc_assert (whole_jump_insn != NULL_RTX && LABEL_P (whole_jump_insn)); whole_jump_insn = prev_nonnote_nondebug_insn (whole_jump_insn); gcc_assert (whole_jump_insn != NULL_RTX @@ -2600,15 +2600,15 @@ cris_asm_output_case_end (FILE *stream, int num, rtx table) || (TARGET_V32 && INSN_P (whole_jump_insn) && GET_CODE (PATTERN (whole_jump_insn)) == SEQUENCE))); /* Get the pattern of the casejump, so we can extract the default label. */ - whole_jump_insn = PATTERN (whole_jump_insn); + rtx whole_jump_pat = PATTERN (whole_jump_insn); if (TARGET_V32) { /* This can be a SEQUENCE, meaning the delay-slot of the jump is filled. We also output the offset word a little differently. */ rtx parallel_jump - = (GET_CODE (whole_jump_insn) == SEQUENCE - ? PATTERN (XVECEXP (whole_jump_insn, 0, 0)) : whole_jump_insn); + = (GET_CODE (whole_jump_pat) == SEQUENCE + ? PATTERN (XVECEXP (whole_jump_pat, 0, 0)) : whole_jump_pat); asm_fprintf (stream, "\t.word %LL%d-.%s\n", @@ -2623,7 +2623,7 @@ cris_asm_output_case_end (FILE *stream, int num, rtx table) "\t.word %LL%d-%LL%d%s\n", CODE_LABEL_NUMBER (XEXP (XEXP - (XEXP (XVECEXP (whole_jump_insn, 0, 0), 1), + (XEXP (XVECEXP (whole_jump_pat, 0, 0), 1), 2), 0)), num, (TARGET_PDEBUG ? "; default" : "")); diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 0fc0a670f68..e4c58bebfe7 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -3405,10 +3405,8 @@ prev_nondebug_insn (rtx_insn *insn) This routine does not look inside SEQUENCEs. */ rtx_insn * -next_nonnote_nondebug_insn (rtx uncast_insn) +next_nonnote_nondebug_insn (rtx_insn *insn) { - rtx_insn *insn = safe_as_a (uncast_insn); - while (insn) { insn = NEXT_INSN (insn); @@ -3423,10 +3421,8 @@ next_nonnote_nondebug_insn (rtx uncast_insn) This routine does not look inside SEQUENCEs. */ rtx_insn * -prev_nonnote_nondebug_insn (rtx uncast_insn) +prev_nonnote_nondebug_insn (rtx_insn *insn) { - rtx_insn *insn = safe_as_a (uncast_insn); - while (insn) { insn = PREV_INSN (insn); diff --git a/gcc/jump.c b/gcc/jump.c index 87a1a5d8873..2164c3b8626 100644 --- a/gcc/jump.c +++ b/gcc/jump.c @@ -1806,8 +1806,10 @@ rtx_renumbered_equal_p (const_rtx x, const_rtx y) in the same position in the instruction stream. */ else { - rtx_insn *xi = next_nonnote_nondebug_insn (LABEL_REF_LABEL (x)); - rtx_insn *yi = next_nonnote_nondebug_insn (LABEL_REF_LABEL (y)); + rtx_insn *xi = next_nonnote_nondebug_insn + (as_a (LABEL_REF_LABEL (x))); + rtx_insn *yi = next_nonnote_nondebug_insn + (as_a (LABEL_REF_LABEL (y))); while (xi && LABEL_P (xi)) xi = next_nonnote_nondebug_insn (xi); while (yi && LABEL_P (yi)) diff --git a/gcc/rtl.h b/gcc/rtl.h index c253fdac64c..4ae9a253545 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -2840,8 +2840,8 @@ extern rtx_insn *next_nonnote_insn (rtx_insn *); extern rtx_insn *next_nonnote_insn_bb (rtx_insn *); extern rtx_insn *prev_nondebug_insn (rtx_insn *); extern rtx_insn *next_nondebug_insn (rtx_insn *); -extern rtx_insn *prev_nonnote_nondebug_insn (rtx); -extern rtx_insn *next_nonnote_nondebug_insn (rtx); +extern rtx_insn *prev_nonnote_nondebug_insn (rtx_insn *); +extern rtx_insn *next_nonnote_nondebug_insn (rtx_insn *); extern rtx_insn *prev_real_insn (rtx_insn *); extern rtx_insn *next_real_insn (rtx); extern rtx_insn *prev_active_insn (rtx);