From 0195bd83a4f9a8a5829dc276aefbb48d0cba7355 Mon Sep 17 00:00:00 2001
From: David Malcolm <dmalcolm@redhat.com>
Date: Tue, 8 Jul 2014 09:36:34 -0400
Subject: [PATCH 132/236] config/epiphany: Use rtx_insn

gcc/
	* config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
	Strengthen first param "insn" from rtx to rtx_insn *.

	* config/epiphany/epiphany.c (epiphany_final_prescan_insn):
	Likewise.
	(frame_insn): Likewise for return type.  Introduce local "insn"
	for use in place of local "x" for use as an rtx_insn *.
	(frame_move_insn): Strengthen return type from rtx to rtx_insn *.
	(epiphany_expand_prologue): Likewise for local "insn".
	* config/epiphany/mode-switch-use.c (insert_uses): Likewise.
	* config/epiphany/resolve-sw-modes.c
	(pass_resolve_sw_modes::execute): Likewise for locals "insn" and
	"seq".
---
 gcc/config/epiphany/epiphany-protos.h  |  2 +-
 gcc/config/epiphany/epiphany.c         | 20 +++++++++++---------
 gcc/config/epiphany/mode-switch-use.c  |  2 +-
 gcc/config/epiphany/resolve-sw-modes.c |  5 +++--
 4 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/gcc/config/epiphany/epiphany-protos.h b/gcc/config/epiphany/epiphany-protos.h
index bfa4802..de2ea40 100644
--- a/gcc/config/epiphany/epiphany-protos.h
+++ b/gcc/config/epiphany/epiphany-protos.h
@@ -27,7 +27,7 @@ extern struct rtx_def *gen_compare_reg (enum machine_mode, enum rtx_code,
 #endif
 
 /* Declarations for various fns used in the .md file.  */
-extern void epiphany_final_prescan_insn (rtx, rtx *, int);
+extern void epiphany_final_prescan_insn (rtx_insn *, rtx *, int);
 extern bool epiphany_is_long_call_p (rtx);
 extern bool epiphany_small16 (rtx);
 bool epiphany_uninterruptible_p (tree decl);
diff --git a/gcc/config/epiphany/epiphany.c b/gcc/config/epiphany/epiphany.c
index 598f61b..1f0bba1 100644
--- a/gcc/config/epiphany/epiphany.c
+++ b/gcc/config/epiphany/epiphany.c
@@ -75,7 +75,7 @@ static tree epiphany_handle_forwarder_attribute (tree *, tree, tree, int,
 						 bool *);
 static bool epiphany_pass_by_reference (cumulative_args_t, enum machine_mode,
 					const_tree, bool);
-static rtx frame_insn (rtx);
+static rtx_insn *frame_insn (rtx);
 
 /* defines for the initialization of the GCC target structure.  */
 #define TARGET_ATTRIBUTE_TABLE epiphany_attribute_table
@@ -1439,7 +1439,7 @@ epiphany_print_operand_address (FILE *file, rtx addr)
 }
 
 void
-epiphany_final_prescan_insn (rtx insn ATTRIBUTE_UNUSED,
+epiphany_final_prescan_insn (rtx_insn *insn ATTRIBUTE_UNUSED,
 			     rtx *opvec ATTRIBUTE_UNUSED,
 			     int noperands ATTRIBUTE_UNUSED)
 {
@@ -1544,11 +1544,12 @@ frame_subreg_note (rtx set, int offset)
   return set;
 }
 
-static rtx
+static rtx_insn *
 frame_insn (rtx x)
 {
   int i;
   rtx note = NULL_RTX;
+  rtx_insn *insn;
 
   if (GET_CODE (x) == PARALLEL)
     {
@@ -1583,14 +1584,14 @@ frame_insn (rtx x)
     note = gen_rtx_PARALLEL (VOIDmode,
 			     gen_rtvec (2, frame_subreg_note (x, 0),
 					frame_subreg_note (x, UNITS_PER_WORD)));
-  x = emit_insn (x);
-  RTX_FRAME_RELATED_P (x) = 1;
+  insn = emit_insn (x);
+  RTX_FRAME_RELATED_P (insn) = 1;
   if (note)
-    add_reg_note (x, REG_FRAME_RELATED_EXPR, note);
-  return x;
+    add_reg_note (insn, REG_FRAME_RELATED_EXPR, note);
+  return insn;
 }
 
-static rtx
+static rtx_insn *
 frame_move_insn (rtx to, rtx from)
 {
   return frame_insn (gen_rtx_SET (VOIDmode, to, from));
@@ -1818,7 +1819,8 @@ epiphany_expand_prologue (void)
      register save.  */
   if (current_frame_info.last_slot >= 0)
     {
-      rtx ip, mem2, insn, note;
+      rtx ip, mem2, note;
+      rtx_insn *insn;
 
       gcc_assert (current_frame_info.last_slot != GPR_FP
 		  || (!current_frame_info.need_fp
diff --git a/gcc/config/epiphany/mode-switch-use.c b/gcc/config/epiphany/mode-switch-use.c
index cc80d10..b3f2b86 100644
--- a/gcc/config/epiphany/mode-switch-use.c
+++ b/gcc/config/epiphany/mode-switch-use.c
@@ -49,7 +49,7 @@ insert_uses (void)
   for (e = N_ENTITIES - 1; e >= 0; e--)
     {
       int no_mode = num_modes[e];
-      rtx insn;
+      rtx_insn *insn;
       int mode;
 
       if (!OPTIMIZE_MODE_SWITCHING (e))
diff --git a/gcc/config/epiphany/resolve-sw-modes.c b/gcc/config/epiphany/resolve-sw-modes.c
index f65fe2a..b89f708 100644
--- a/gcc/config/epiphany/resolve-sw-modes.c
+++ b/gcc/config/epiphany/resolve-sw-modes.c
@@ -78,7 +78,8 @@ unsigned
 pass_resolve_sw_modes::execute (function *fun)
 {
   basic_block bb;
-  rtx insn, src;
+  rtx_insn *insn;
+  rtx src;
   vec<basic_block> todo;
   sbitmap pushed;
   bool need_commit = false;
@@ -156,7 +157,7 @@ pass_resolve_sw_modes::execute (function *fun)
       FOR_EACH_EDGE (e, ei, bb->succs)
 	{
 	  basic_block succ = e->dest;
-	  rtx seq;
+	  rtx_insn *seq;
 
 	  if (!REGNO_REG_SET_P (DF_LIVE_IN (succ), jilted_reg))
 	    continue;
-- 
1.8.5.3

