Strengthen various insn emission functions
authorDavid Malcolm <dmalcolm@redhat.com>
Tue, 26 Aug 2014 19:31:29 +0000 (19:31 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Tue, 26 Aug 2014 19:31:29 +0000 (19:31 +0000)
gcc/
2014-08-26  David Malcolm  <dmalcolm@redhat.com>

* rtl.h (push_to_sequence): Strengthen param from rtx to
rtx_insn *.
(push_to_sequence2): Likewise for both params.
(delete_insns_since): Likewise for param.
(reorder_insns_nobb): Likewise for all three params.
(set_new_first_and_last_insn): Likewise for both params.

* emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
rtx_insn *.  Remove now-redundant cast.
(set_last_insn): Likewise.

* builtins.c (expand_builtin_return): Strengthen local
"call_fusage" from rtx to rtx_insn *.
* cfgrtl.c (create_basic_block_structure): Likewise for local
"after".
* emit-rtl.c (set_new_first_and_last_insn): Likewise for params
"first", "last" and local "insn".
(delete_insns_since): Likewise for param "from".
(reorder_insns_nobb): Likewise for params "from", "to", "after"
and local "x".
(push_to_sequence): Likewise for param "first" and local "last".
(push_to_sequence2): Likewise for params "first" and "last".
* lra.c (emit_add3_insn): Likewise for local "last".
(lra_emit_add): Likewise.
* lra-constraints.c (base_to_reg): Likewise for locals "insn",
"last_insn".
(process_address_1): Likewise for locals "insn", last".
* modulo-sched.c (ps_first_note): Likewise for return type.
* optabs.c (expand_binop_directly): Likewise for param "last".

From-SVN: r214539

gcc/ChangeLog
gcc/builtins.c
gcc/cfgrtl.c
gcc/emit-rtl.c
gcc/emit-rtl.h
gcc/lra-constraints.c
gcc/lra.c
gcc/modulo-sched.c
gcc/optabs.c
gcc/rtl.h

index ef9dd0dca7dd2ad6540f7e8f43bad82c45ecc953..81f9bd5a9abc95d98141523756107078931eea73 100644 (file)
@@ -1,3 +1,35 @@
+2014-08-26  David Malcolm  <dmalcolm@redhat.com>
+
+       * rtl.h (push_to_sequence): Strengthen param from rtx to
+       rtx_insn *.
+       (push_to_sequence2): Likewise for both params.
+       (delete_insns_since): Likewise for param.
+       (reorder_insns_nobb): Likewise for all three params.
+       (set_new_first_and_last_insn): Likewise for both params.
+
+       * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
+       rtx_insn *.  Remove now-redundant cast.
+       (set_last_insn): Likewise.
+
+       * builtins.c (expand_builtin_return): Strengthen local
+       "call_fusage" from rtx to rtx_insn *.
+       * cfgrtl.c (create_basic_block_structure): Likewise for local
+       "after".
+       * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
+       "first", "last" and local "insn".
+       (delete_insns_since): Likewise for param "from".
+       (reorder_insns_nobb): Likewise for params "from", "to", "after"
+       and local "x".
+       (push_to_sequence): Likewise for param "first" and local "last".
+       (push_to_sequence2): Likewise for params "first" and "last".
+       * lra.c (emit_add3_insn): Likewise for local "last".
+       (lra_emit_add): Likewise.
+       * lra-constraints.c (base_to_reg): Likewise for locals "insn",
+       "last_insn".
+       (process_address_1): Likewise for locals "insn", last".
+       * modulo-sched.c (ps_first_note): Likewise for return type.
+       * optabs.c (expand_binop_directly): Likewise for param "last".
+
 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
 
        * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
index 971e525f19f3ab0dd7dc8abc511f120960be3165..e5a9b4d72286b10e649f23ab96a8a8743afeec59 100644 (file)
@@ -1743,7 +1743,7 @@ expand_builtin_return (rtx result)
   int size, align, regno;
   enum machine_mode mode;
   rtx reg;
-  rtx call_fusage = 0;
+  rtx_insn *call_fusage = 0;
 
   result = convert_memory_address (Pmode, result);
 
index 7b1fc2c4c947ceb214f26f9b1992a92c973e0a03..c39049202a3ebd1e33377bb5167db7b8041b760a 100644 (file)
@@ -283,7 +283,7 @@ create_basic_block_structure (rtx_insn *head, rtx_insn *end, rtx_note *bb_note,
     {
       /* If we found an existing note, thread it back onto the chain.  */
 
-      rtx after;
+      rtx_insn *after;
 
       if (LABEL_P (head))
        after = head;
index 51f799c9d2050c28c099a62634adcadba432878e..8fe13312ab4f6f3006585744c9d7a83bb0732494 100644 (file)
@@ -2488,9 +2488,9 @@ gen_label_rtx (void)
    Used for an inline-procedure after copying the insn chain.  */
 
 void
-set_new_first_and_last_insn (rtx first, rtx last)
+set_new_first_and_last_insn (rtx_insn *first, rtx_insn *last)
 {
-  rtx insn;
+  rtx_insn *insn;
 
   set_first_insn (first);
   set_last_insn (last);
@@ -4165,7 +4165,7 @@ add_function_usage_to (rtx call_insn, rtx call_fusage)
    FROM becomes the new last instruction.  */
 
 void
-delete_insns_since (rtx from)
+delete_insns_since (rtx_insn *from)
 {
   if (from == 0)
     set_first_insn (0);
@@ -4185,10 +4185,10 @@ delete_insns_since (rtx from)
    called after delay-slot filling has been done.  */
 
 void
-reorder_insns_nobb (rtx from, rtx to, rtx after)
+reorder_insns_nobb (rtx_insn *from, rtx_insn *to, rtx_insn *after)
 {
 #ifdef ENABLE_CHECKING
-  rtx x;
+  rtx_insn *x;
   for (x = from; x != to; x = NEXT_INSN (x))
     gcc_assert (after != x);
   gcc_assert (after != to);
@@ -5309,9 +5309,9 @@ start_sequence (void)
    start_sequence for more information about how to use this function.  */
 
 void
-push_to_sequence (rtx first)
+push_to_sequence (rtx_insn *first)
 {
-  rtx last;
+  rtx_insn *last;
 
   start_sequence ();
 
@@ -5326,7 +5326,7 @@ push_to_sequence (rtx first)
    looping through the list.  */
 
 void
-push_to_sequence2 (rtx first, rtx last)
+push_to_sequence2 (rtx_insn *first, rtx_insn *last)
 {
   start_sequence ();
 
index e2e64a213d3bc1ec617faebc8239853d166fc6c9..9f5ebe856fca1c251916d69274f96b2a1f7b2908 100644 (file)
@@ -86,10 +86,10 @@ get_insns (void)
 /* Specify a new insn as the first in the chain.  */
 
 static inline void
-set_first_insn (rtx insn)
+set_first_insn (rtx_insn *insn)
 {
   gcc_checking_assert (!insn || !PREV_INSN (insn));
-  crtl->emit.x_first_insn = safe_as_a <rtx_insn *> (insn);
+  crtl->emit.x_first_insn = insn;
 }
 
 /* Return the last insn emitted in current sequence or current function.  */
@@ -103,10 +103,10 @@ get_last_insn (void)
 /* Specify a new insn as the last in the chain.  */
 
 static inline void
-set_last_insn (rtx insn)
+set_last_insn (rtx_insn *insn)
 {
   gcc_checking_assert (!insn || !NEXT_INSN (insn));
-  crtl->emit.x_last_insn = safe_as_a <rtx_insn *> (insn);
+  crtl->emit.x_last_insn = insn;
 }
 
 /* Return a number larger than any instruction's uid in this function.  */
index 6e6f04bf07d3f186e1518f7a7ae891fd5b63c233..9152ffeb3ef103bc17749d9f29a20f84ddac4ab8 100644 (file)
@@ -2567,8 +2567,8 @@ base_to_reg (struct address_info *ad)
   int code = -1;
   rtx new_inner = NULL_RTX;
   rtx new_reg = NULL_RTX;
-  rtx insn;
-  rtx last_insn = get_last_insn();
+  rtx_insn *insn;
+  rtx_insn *last_insn = get_last_insn();
 
   lra_assert (ad->base == ad->base_term && ad->disp == ad->disp_term);
   cl = base_reg_class (ad->mode, ad->as, ad->base_outer_code,
@@ -2834,8 +2834,8 @@ process_address_1 (int nop, rtx_insn **before, rtx_insn **after)
          new_reg = lra_create_new_reg (Pmode, NULL_RTX, cl, "addr");
 #ifdef HAVE_lo_sum
          {
-           rtx insn;
-           rtx last = get_last_insn ();
+           rtx_insn *insn;
+           rtx_insn *last = get_last_insn ();
 
            /* addr => lo_sum (new_base, addr), case (2) above.  */
            insn = emit_insn (gen_rtx_SET
index b8b09689f1908b58c0b119000e9e4a9f5472910b..f16705ef12004680503375d5259bbc659f859742 100644 (file)
--- a/gcc/lra.c
+++ b/gcc/lra.c
@@ -252,7 +252,8 @@ lra_delete_dead_insn (rtx_insn *insn)
 static rtx
 emit_add3_insn (rtx x, rtx y, rtx z)
 {
-  rtx insn, last;
+  rtx_insn *last;
+  rtx insn;
 
   last = get_last_insn ();
 
@@ -309,7 +310,8 @@ void
 lra_emit_add (rtx x, rtx y, rtx z)
 {
   int old;
-  rtx insn, last;
+  rtx insn;
+  rtx_insn *last;
   rtx a1, a2, base, index, disp, scale, index_scale;
   bool ok_p;
 
index fc211ffd2d1ade862e318b13b957dae4e3fdf871..3b62eafe157f15902b98a5203ace9d12afe4a6bf 100644 (file)
@@ -319,7 +319,7 @@ ps_rtl_insn (partial_schedule_ptr ps, int id)
    in the loop that was associated with ps_rtl_insn (PS, ID).
    If the instruction had some notes before it, this is the first
    of those notes.  */
-static rtx
+static rtx_insn *
 ps_first_note (partial_schedule_ptr ps, int id)
 {
   gcc_assert (id < ps->g->num_nodes);
index 08d5c6e43be4d02be253b05239d92f73d8a906bf..ef8941b00ee0160f36f29eaf2ffe749a67d01c70 100644 (file)
@@ -1412,7 +1412,7 @@ static rtx
 expand_binop_directly (enum machine_mode mode, optab binoptab,
                       rtx op0, rtx op1,
                       rtx target, int unsignedp, enum optab_methods methods,
-                      rtx last)
+                      rtx_insn *last)
 {
   enum machine_mode from_mode = widened_mode (mode, op0, op1);
   enum insn_code icode = find_widening_optab_handler (binoptab, mode,
index 588fe3b01098f2627f03f4e7c606c418f7fd3973..12b9147ed75d7901ae7722d54b369d5d5af66cd3 100644 (file)
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -2362,8 +2362,8 @@ extern rtx_insn *get_last_insn_anywhere (void);
 extern rtx get_first_nonnote_insn (void);
 extern rtx get_last_nonnote_insn (void);
 extern void start_sequence (void);
-extern void push_to_sequence (rtx);
-extern void push_to_sequence2 (rtx, rtx);
+extern void push_to_sequence (rtx_insn *);
+extern void push_to_sequence2 (rtx_insn *, rtx_insn *);
 extern void end_sequence (void);
 #if TARGET_SUPPORTS_WIDE_INT == 0
 extern double_int rtx_to_double_int (const_rtx);
@@ -3094,13 +3094,13 @@ extern int max_reg_num (void);
 extern int max_label_num (void);
 extern int get_first_label_num (void);
 extern void maybe_set_first_label_num (rtx);
-extern void delete_insns_since (rtx);
+extern void delete_insns_since (rtx_insn *);
 extern void mark_reg_pointer (rtx, int);
 extern void mark_user_reg (rtx);
 extern void reset_used_flags (rtx);
 extern void set_used_flags (rtx);
 extern void reorder_insns (rtx_insn *, rtx_insn *, rtx_insn *);
-extern void reorder_insns_nobb (rtx, rtx, rtx);
+extern void reorder_insns_nobb (rtx_insn *, rtx_insn *, rtx_insn *);
 extern int get_max_insn_count (void);
 extern int in_sequence_p (void);
 extern void init_emit (void);
@@ -3109,7 +3109,7 @@ extern void init_derived_machine_modes (void);
 extern void init_emit_once (void);
 extern void push_topmost_sequence (void);
 extern void pop_topmost_sequence (void);
-extern void set_new_first_and_last_insn (rtx, rtx);
+extern void set_new_first_and_last_insn (rtx_insn *, rtx_insn *);
 extern unsigned int unshare_all_rtl (void);
 extern void unshare_all_rtl_again (rtx_insn *);
 extern void unshare_all_rtl_in_chain (rtx);