Patchwork [4.6,trunk,rx] avoid LABEL_NUSES on barriers

login
register
mail settings
Submitter DJ Delorie
Date May 11, 2011, 7:21 p.m.
Message ID <201105111921.p4BJLkpA024972@greed.delorie.com>
Download mbox | patch
Permalink /patch/95188/
State New
Headers show

Comments

DJ Delorie - May 11, 2011, 7:21 p.m.
Occasionally, gcc passes a barrier instead of a label.  This
accomodates such an event.  Applies to 4.6 and trunk, and needed on
both to build newlib.  Ok?

	* config/rx/rx.c (rx_align_for_label): Don't test for
	LABEL_NUSES on a barrier.

Patch

Index: gcc/config/rx/rx.c
===================================================================
--- gcc/config/rx/rx.c	(revision 173669)
+++ gcc/config/rx/rx.c	(working copy)
@@ -2755,13 +2755,13 @@  int
 rx_align_for_label (rtx lab, int uses_threshold)
 {
   /* This is a simple heuristic to guess when an alignment would not be useful
      because the delay due to the inserted NOPs would be greater than the delay
      due to the misaligned branch.  If uses_threshold is zero then the alignment
      is always useful.  */
-  if (LABEL_NUSES (lab) < uses_threshold)
+  if (LABEL_P (lab) && LABEL_NUSES (lab) < uses_threshold)
     return 0;
 
   return optimize_size ? 1 : 3;
 }
 
 static int