Patchwork [RFA] Fix bootstrap on SH

login
register
mail settings
Submitter Kaz Kojima
Date June 24, 2010, 12:58 a.m.
Message ID <20100624.095835.253686260.kkojima@rr.iij4u.or.jp>
Download mbox | patch
Permalink /patch/56736/
State New
Headers show

Comments

Kaz Kojima - June 24, 2010, 12:58 a.m.
Hi,

Currently SH fails to bootstrap on trunk for 'set but not used'
warnings:

../trunk/gcc/mode-switching.c: In function 'optimize_mode_switching':
../trunk/gcc/mode-switching.c:448:8: error: variable 'emited' set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors

Looking at mode-switching.c:optimize_mode_switching, the variable
'emited' is unused when MODE_ENTRY and MODE_EXIT macros are defined
and it's the case for SH.
The attached patch silences the above warning and other 'set but not
used' warnings coming from config/sh/sh.*.  The patch is tested
on i686-pc-linux-gnu and sh4-unknown-linux-gnu with bootstrap and
the top level 'make -k check' with no new failures.
OK for trunk?

Regards,
	kaz
--
2010-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>

	* mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
	to variable emited.
	* config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
	* config/sh/sh.md (symGOT_load): Likewise.
	(symDTPOFF2reg): Likewise.
	(symTPOFF2reg): Likewise.

Patch

diff -uprN ORIG/trunk/gcc/mode-switching.c trunk/gcc/mode-switching.c
--- ORIG/trunk/gcc/mode-switching.c	2010-06-03 10:31:13.000000000 +0900
+++ trunk/gcc/mode-switching.c	2010-06-23 09:58:45.000000000 +0900
@@ -1,6 +1,6 @@ 
 /* CPU mode switching
    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008,
-   2009 Free Software Foundation, Inc.
+   2009, 2010 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -445,7 +445,7 @@  optimize_mode_switching (void)
   int i, j;
   int n_entities;
   int max_num_modes = 0;
-  bool emited = false;
+  bool emited ATTRIBUTE_UNUSED = false;
   basic_block post_entry ATTRIBUTE_UNUSED, pre_exit ATTRIBUTE_UNUSED;
 
   for (e = N_ENTITIES - 1, n_entities = 0; e >= 0; e--)
diff -uprN ORIG/trunk/gcc/config/sh/sh.c trunk/gcc/config/sh/sh.c
--- ORIG/trunk/gcc/config/sh/sh.c	2010-06-19 20:50:04.000000000 +0900
+++ trunk/gcc/config/sh/sh.c	2010-06-23 10:00:54.000000000 +0900
@@ -6860,13 +6860,12 @@  sh_expand_prologue (void)
 	  for (i = 0; i < NPARM_REGS(SImode); i++)
 	    {
 	      int rn = NPARM_REGS(SImode) + FIRST_PARM_REG - i - 1;
-	      rtx insn;
 
 	      if (i >= (NPARM_REGS(SImode)
 			- crtl->args.info.arg_count[(int) SH_ARG_INT]
 			))
 		break;
-	      insn = push (rn);
+	      push (rn);
 	    }
 	}
     }
@@ -7231,7 +7230,7 @@  sh_expand_epilogue (bool sibcall_p)
 	{
 	  enum machine_mode mode = (enum machine_mode) entry->mode;
 	  int reg = entry->reg;
-	  rtx reg_rtx, mem_rtx, post_inc = NULL_RTX, insn;
+	  rtx reg_rtx, mem_rtx, post_inc = NULL_RTX;
 
 	  offset = offset_base + entry->offset;
 	  reg_rtx = gen_rtx_REG (mode, reg);
@@ -7304,7 +7303,7 @@  sh_expand_epilogue (bool sibcall_p)
 	  if ((reg == PR_REG || SPECIAL_REGISTER_P (reg))
 	      && mem_rtx != post_inc)
 	    {
-	      insn = emit_move_insn (r0, mem_rtx);
+	      emit_move_insn (r0, mem_rtx);
 	      mem_rtx = r0;
 	    }
 	  else if (TARGET_REGISTER_P (reg))
@@ -7313,13 +7312,13 @@  sh_expand_epilogue (bool sibcall_p)
 
 	      /* Give the scheduler a bit of freedom by using up to
 		 MAX_TEMPS registers in a round-robin fashion.  */
-	      insn = emit_move_insn (tmp_reg, mem_rtx);
+	      emit_move_insn (tmp_reg, mem_rtx);
 	      mem_rtx = tmp_reg;
 	      if (*++tmp_pnt < 0)
 		tmp_pnt = schedule.temps;
 	    }
 
-	  insn = emit_move_insn (reg_rtx, mem_rtx);
+	  emit_move_insn (reg_rtx, mem_rtx);
 	}
 
       gcc_assert (entry->offset + offset_base == d + d_rounding);
diff -uprN ORIG/trunk/gcc/config/sh/sh.md trunk/gcc/config/sh/sh.md
--- ORIG/trunk/gcc/config/sh/sh.md	2010-04-16 13:08:09.000000000 +0900
+++ trunk/gcc/config/sh/sh.md	2010-06-22 06:34:55.000000000 +0900
@@ -8469,7 +8469,7 @@  label:
   ""
   "
 {
-  rtx insn, mem;
+  rtx mem;
 
   operands[2] = !can_create_pseudo_p () ? operands[0] : gen_reg_rtx (Pmode);
   operands[3] = !can_create_pseudo_p () ? operands[0] : gen_reg_rtx (Pmode);
@@ -8518,7 +8518,7 @@  label:
   mem = gen_rtx_MEM (Pmode, operands[3]);
   MEM_NOTRAP_P (mem) = 1;
   /* ??? Should we have a special alias set for the GOT?  */
-  insn = emit_move_insn (operands[0], mem);
+  emit_move_insn (operands[0], mem);
 
   DONE;
 }")
@@ -8685,7 +8685,7 @@  mov.l\\t1f,r4\\n\\
   ""
   "
 {
-  rtx dtpoffsym, insn;
+  rtx dtpoffsym;
   rtx t = (!can_create_pseudo_p ()
 	   ? operands[0]
 	   : gen_reg_rtx (GET_MODE (operands[0])));
@@ -8693,8 +8693,7 @@  mov.l\\t1f,r4\\n\\
   dtpoffsym = gen_sym2DTPOFF (operands[1]);
   PUT_MODE (dtpoffsym, Pmode);
   emit_move_insn (t, dtpoffsym);
-  insn = emit_move_insn (operands[0],
-			 gen_rtx_PLUS (Pmode, t, operands[2]));
+  emit_move_insn (operands[0], gen_rtx_PLUS (Pmode, t, operands[2]));
   DONE;
 }")
 
@@ -8736,11 +8735,11 @@  mov.l\\t1f,r0\\n\\
   ""
   "
 {
-  rtx tpoffsym, insn;
+  rtx tpoffsym;
 
   tpoffsym = gen_sym2TPOFF (operands[1]);
   PUT_MODE (tpoffsym, Pmode);
-  insn = emit_move_insn (operands[0], tpoffsym);
+  emit_move_insn (operands[0], tpoffsym);
   DONE;
 }")