make next/prev nonnote_nondebug_insn take rtx_insn *
authorTrevor Saunders <tbsaunde+gcc@tbsaunde.org>
Thu, 22 Sep 2016 13:16:35 +0000 (13:16 +0000)
committerTrevor Saunders <tbsaunde@gcc.gnu.org>
Thu, 22 Sep 2016 13:16:35 +0000 (13:16 +0000)
gcc/ChangeLog:

2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* 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

gcc/ChangeLog
gcc/config/cris/cris-protos.h
gcc/config/cris/cris.c
gcc/emit-rtl.c
gcc/jump.c
gcc/rtl.h

index 7576a1eea50177071b676880791f0819a2c5c58c..658fbec2ee60a99200066cb5abc0e22ac4422e99 100644 (file)
@@ -1,3 +1,13 @@
+2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
+
+       * 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  <tbsaunde+gcc@tbsaunde.org>
 
        * emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *.
index 5e0ae61d23151b0f559efeee71f2024c0ba1959f..028c2b7120d83e4ac95d943fc6e744075e35af25 100644 (file)
@@ -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 *);
index 1026aad328db2063a4e3ea970f9ba0673910166c..c909453006d5b4410be89be2bba9481f0e3423c7 100644 (file)
@@ -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" : ""));
index 0fc0a670f68df3b5ab175ad275f1328a770eac31..e4c58bebfe725ff1dbfb0a4a5cbcdff736a978d5 100644 (file)
@@ -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 <rtx_insn *> (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 <rtx_insn *> (uncast_insn);
-
   while (insn)
     {
       insn = PREV_INSN (insn);
index 87a1a5d88739d36ab8cbbbeccba50634381794a1..2164c3b8626e54cab80ede4fa9ac732cb9b5d2dc 100644 (file)
@@ -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<rtx_insn *> (LABEL_REF_LABEL (x)));
+         rtx_insn *yi = next_nonnote_nondebug_insn
+           (as_a<rtx_insn *> (LABEL_REF_LABEL (y)));
          while (xi && LABEL_P (xi))
            xi = next_nonnote_nondebug_insn (xi);
          while (yi && LABEL_P (yi))
index c253fdac64c4ef4f73bff986ecc74c3f400cf4c0..4ae9a2535454cad31062e8f7b4bed82fe367d94b 100644 (file)
--- 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);