diff gcc/df-core.c @ 63:b7f97abdc517 gcc-4.6-20100522

update gcc from gcc-4.5.0 to gcc-4.6
author ryoma <e075725@ie.u-ryukyu.ac.jp>
date Mon, 24 May 2010 12:47:05 +0900
parents 77e2b8dfacca
children f6334be47118
line wrap: on
line diff
--- a/gcc/df-core.c	Fri Feb 12 23:41:23 2010 +0900
+++ b/gcc/df-core.c	Mon May 24 12:47:05 2010 +0900
@@ -1,6 +1,6 @@
 /* Allocation for dataflow support routines.
    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-   2008, 2009 Free Software Foundation, Inc.
+   2008, 2009, 2010 Free Software Foundation, Inc.
    Originally contributed by Michael P. Hayes
              (m.hayes@elec.canterbury.ac.nz, mhayes@redhat.com)
    Major rewrite contributed by Danny Berlin (dberlin@dberlin.org)
@@ -636,7 +636,7 @@
   int removed = 0;
 
 #ifdef ENABLE_DF_CHECKING
-  enum df_changeable_flags saved_flags;
+  int saved_flags;
 #endif
 
   if (!df)
@@ -1354,6 +1354,30 @@
 }
 
 
+/* Mark BB as needing it's transfer functions as being out of
+   date, except for LR problem.  Used when analyzing DEBUG_INSNs,
+   as LR problem can trigger DCE, and DEBUG_INSNs shouldn't ever
+   shorten or enlarge lifetime of regs.  */
+
+void
+df_set_bb_dirty_nonlr (basic_block bb)
+{
+  if (df)
+    {
+      int p;
+      for (p = 1; p < df->num_problems_defined; p++)
+	{
+	  struct dataflow *dflow = df->problems_in_order[p];
+	  if (dflow == df_lr)
+	    continue;
+	  if (dflow->out_of_date_transfer_functions)
+	    bitmap_set_bit (dflow->out_of_date_transfer_functions, bb->index);
+	  dflow->solutions_dirty = true;
+	}
+    }
+}
+
+
 /* Clear the dirty bits.  This is called from places that delete
    blocks.  */
 static void
@@ -2113,7 +2137,7 @@
   fprintf (file, "%c%d ",
 	   DF_REF_REG_DEF_P (ref) ? 'd' : 'u',
 	   DF_REF_ID (ref));
-  fprintf (file, "reg %d bb %d insn %d flag 0x%x type 0x%x ",
+  fprintf (file, "reg %d bb %d insn %d flag %#x type %#x ",
 	   DF_REF_REGNO (ref),
 	   DF_REF_BBNO (ref),
 	   DF_REF_IS_ARTIFICIAL (ref) ? -1 : DF_REF_INSN_UID (ref),