Patchwork PowerPC shrink-wrap support 1 of 3

login
register
mail settings
Submitter Alan Modra
Date Sept. 17, 2011, 7:17 a.m.
Message ID <20110917071759.GU10321@bubble.grove.modra.org>
Download mbox | patch
Permalink /patch/115096/
State New
Headers show

Comments

Alan Modra - Sept. 17, 2011, 7:17 a.m.
This obvious patch extends my 2011-08-03 fix to simple_return.
Necessary for the same reason as the original patch, namely that
rs6000.md has a peephole2 that matches and recreates a conditional
jump.  With the third patch in this series applied, rs6000 will start
to use simple_return in conditional jumps.  Even though I think this
patch meets the "obvious" requirement, I won't apply it without the
other two since the assert may trigger on mips without the second
patch in this series.

	PR rtl-optimization/49941
	* jump.c (mark_jump_label_1): Set JUMP_LABEL for simple_return jumps.

Patch

diff -urp -x.svn -x'*~' -x'*.orig' gcc-bernd/gcc/jump.c gcc-current/gcc/jump.c
--- gcc-bernd/gcc/jump.c	2011-09-16 11:52:14.000000000 +0930
+++ gcc-current/gcc/jump.c	2011-09-16 09:59:39.000000000 +0930
@@ -1086,6 +1086,7 @@  mark_jump_label_1 (rtx x, rtx insn, bool
       return;
 
     case RETURN:
+    case SIMPLE_RETURN:
       if (is_target)
 	{
 	  gcc_assert (JUMP_LABEL (insn) == NULL || JUMP_LABEL (insn) == x);
@@ -1408,7 +1409,7 @@  redirect_exp_1 (rtx *loc, rtx olabel, rt
   int i;
   const char *fmt;
 
-      if ((code == LABEL_REF && XEXP (x, 0) == olabel)
+  if ((code == LABEL_REF && XEXP (x, 0) == olabel)
       || x == olabel)
     {
       x = redirect_target (nlabel);