Patchwork [committed] Remove old REG_BR_PRED code from dbr_schedule

login
register
mail settings
Submitter Richard Sandiford
Date Aug. 2, 2012, 8:40 p.m.
Message ID <87wr1hm3hh.fsf@talisman.home>
Download mbox | patch
Permalink /patch/174810/
State New
Headers show

Comments

Richard Sandiford - Aug. 2, 2012, 8:40 p.m.
This patch fixes a disagreement about the form of REG_BR_PRED.
I came across it as an rtl-checking ICE when inverting a jump
after dbr_schedule.

REG_BR_PRED used to be just a single int (and is still documented
that way, although I'm going to chicken out of fixing that).
dbr_schedule created the notes at the end, so that targets could tell
whether the branch was assumed to be likely-taken or not.  However,
no target now uses this information, and all other references to the
notes are for the new 2-int style.  This patch therefore removes the
old code as dead.

Tested on mips64-linux-gnu and applied.

Richard


gcc/
	* reorg.c (dbr_schedule): Delete REG_BR_PRED loop.

Patch

Index: gcc/reorg.c
===================================================================
--- gcc/reorg.c	2012-08-02 21:19:07.320527035 +0100
+++ gcc/reorg.c	2012-08-02 21:21:53.698526627 +0100
@@ -4054,28 +4054,6 @@  dbr_schedule (rtx first)
       fprintf (dump_file, "\n");
     }
 
-  /* For all JUMP insns, fill in branch prediction notes, so that during
-     assembler output a target can set branch prediction bits in the code.
-     We have to do this now, as up until this point the destinations of
-     JUMPS can be moved around and changed, but past right here that cannot
-     happen.  */
-  for (insn = first; insn; insn = NEXT_INSN (insn))
-    {
-      int pred_flags;
-
-      if (NONJUMP_INSN_P (insn))
-	{
-	  rtx pat = PATTERN (insn);
-
-	  if (GET_CODE (pat) == SEQUENCE)
-	    insn = XVECEXP (pat, 0, 0);
-	}
-      if (!JUMP_P (insn))
-	continue;
-
-      pred_flags = get_jump_flags (insn, JUMP_LABEL (insn));
-      add_reg_note (insn, REG_BR_PRED, GEN_INT (pred_flags));
-    }
   free_resource_info ();
   free (uid_to_ruid);
 #ifdef DELAY_SLOTS_FOR_EPILOGUE