diff gcc/df-scan.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-scan.c	Fri Feb 12 23:41:23 2010 +0900
+++ b/gcc/df-scan.c	Mon May 24 12:47:05 2010 +0900
@@ -1,6 +1,6 @@
 /* Scanning of rtl for dataflow analysis.
    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)
@@ -285,7 +285,6 @@
 df_scan_set_bb_info (unsigned int index,
 		     struct df_scan_bb_info *bb_info)
 {
-  gcc_assert (df_scan);
   df_grow_bb_info (df_scan);
   df_scan->block_info[index] = (void *) bb_info;
 }
@@ -1302,7 +1301,10 @@
     }
 
   df_refs_add_to_chains (&collection_rec, bb, insn);
-  df_set_bb_dirty (bb);
+  if (DEBUG_INSN_P (insn))
+    df_set_bb_dirty_nonlr (bb);
+  else
+    df_set_bb_dirty (bb);
 
   VEC_free (df_ref, stack, collection_rec.def_vec);
   VEC_free (df_ref, stack, collection_rec.use_vec);
@@ -1321,8 +1323,8 @@
   unsigned int uid = INSN_UID (insn);
   struct df_insn_info *insn_info;
 
-  gcc_assert (DEBUG_INSN_P (insn));
-  gcc_assert (VAR_LOC_UNKNOWN_P (INSN_VAR_LOCATION_LOC (insn)));
+  gcc_assert (DEBUG_INSN_P (insn)
+	      && VAR_LOC_UNKNOWN_P (INSN_VAR_LOCATION_LOC (insn)));
 
   if (!df)
     return false;
@@ -2394,7 +2396,7 @@
       if (DF_REF_EXTRACT_MODE (ref1) != DF_REF_EXTRACT_MODE (ref2))
 	return DF_REF_EXTRACT_MODE (ref1) - DF_REF_EXTRACT_MODE (ref2);
     }
-  return 0;
+  return (int)DF_REF_ORDER (ref1) - (int)DF_REF_ORDER (ref2);
 }
 
 static void
@@ -2603,8 +2605,8 @@
       df->hard_regs_live_count[regno]++;
     }
 
-  gcc_assert (DF_REF_NEXT_REG (this_ref) == NULL);
-  gcc_assert (DF_REF_PREV_REG (this_ref) == NULL);
+  gcc_assert (DF_REF_NEXT_REG (this_ref) == NULL
+	      && DF_REF_PREV_REG (this_ref) == NULL);
 
   DF_REF_NEXT_REG (this_ref) = head;
 
@@ -3851,13 +3853,13 @@
 
   gcc_assert (GET_MODE (reg) != BLKmode);
 
-  bitmap_set_bit (set, regno);
   if (regno < FIRST_PSEUDO_REGISTER)
     {
       int n = hard_regno_nregs[regno][GET_MODE (reg)];
-      while (--n > 0)
-	bitmap_set_bit  (set, regno + n);
+      bitmap_set_range (set, regno, n);
     }
+  else
+    bitmap_set_bit (set, regno);
 }
 
 
@@ -4257,7 +4259,6 @@
 bool
 df_hard_reg_used_p (unsigned int reg)
 {
-  gcc_assert (df);
   return df->hard_regs_live_count[reg] != 0;
 }
 
@@ -4272,7 +4273,6 @@
 unsigned int
 df_hard_reg_used_count (unsigned int reg)
 {
-  gcc_assert (df);
   return df->hard_regs_live_count[reg];
 }