[committed] Remove old REG_BR_PRED code from dbr_schedule

Message ID 87wr1hm3hh.fsf@talisman.home
State New
Headers show

Commit Message

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.


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


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);