diff gcc/ebitmap.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/ebitmap.c	Fri Feb 12 23:41:23 2010 +0900
+++ b/gcc/ebitmap.c	Mon May 24 12:47:05 2010 +0900
@@ -1,5 +1,5 @@
 /* Sparse array-based bitmaps.
-   Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
    Contributed by Daniel Berlin <dberlin@dberlin.org>
 
 This file is part of GCC.
@@ -254,8 +254,13 @@
       if (!have_eltwordindex)
 	eltwordindex = sbitmap_popcount (map->wordmask, wordindex);
 
-      if (map->cache != NULL && map->cacheindex == eltwordindex)
-	map->cache = NULL;
+      if (map->cache != NULL)
+        {
+          if (map->cacheindex == wordindex)
+            map->cache = NULL;
+          else if (map->cacheindex > wordindex)
+            map->cache = map->cache - 1;
+        }
 
       RESET_BIT (map->wordmask, wordindex);
 
@@ -457,7 +462,7 @@
     for (i = 0; i <  dst->numwords; i++)
       gcc_assert (dst->elts[i] != 0);
 
-    verify_popcount (dst->wordmask);
+    sbitmap_verify_popcount (dst->wordmask);
     gcc_assert (sbitmap_popcount (dst->wordmask,
 				  dst->wordmask->n_bits) == dst->numwords);
   }
@@ -529,7 +534,7 @@
     for (i = 0; i <  dst->numwords; i++)
       gcc_assert (dst->elts[i] != 0);
 
-    verify_popcount (dst->wordmask);
+    sbitmap_verify_popcount (dst->wordmask);
     gcc_assert (sbitmap_popcount (dst->wordmask,
 				  dst->wordmask->n_bits) == dst->numwords);
   }
@@ -652,7 +657,7 @@
     EXECUTE_IF_SET_IN_EBITMAP (dstcopy, 0, i, ebi)
       gcc_assert (ebitmap_bit_p (dst, i));
 
-    verify_popcount (dst->wordmask);
+    sbitmap_verify_popcount (dst->wordmask);
     gcc_assert (changed == !ebitmap_equal_p (dst, dstcopy));
     gcc_assert (sbitmap_popcount (dst->wordmask,
 				  dst->wordmask->n_bits) == dst->numwords);
@@ -772,7 +777,7 @@
     EXECUTE_IF_SET_IN_EBITMAP (src2, 0, i, ebi)
       gcc_assert (ebitmap_bit_p (dst, i));
   }
-  verify_popcount (dst->wordmask);
+  sbitmap_verify_popcount (dst->wordmask);
   gcc_assert (changed == !ebitmap_equal_p (dst, dstcopy));
   gcc_assert (sbitmap_popcount (dst->wordmask,
 				dst->wordmask->n_bits) == dst->numwords);
@@ -848,7 +853,7 @@
 
     gcc_assert (sbitmap_popcount (dst->wordmask,
 				  dst->wordmask->n_bits) == neweltindex);
-    verify_popcount (dst->wordmask);
+    sbitmap_verify_popcount (dst->wordmask);
     gcc_assert (changed == !ebitmap_equal_p (dst, dstcopy));
     gcc_assert (sbitmap_popcount (dst->wordmask,
 				  dst->wordmask->n_bits) == dst->numwords);
@@ -950,7 +955,7 @@
   for (i = 0; i <  dst->numwords; i++)
     gcc_assert (dst->elts[i] != 0);
 
-  verify_popcount (dst->wordmask);
+  sbitmap_verify_popcount (dst->wordmask);
   gcc_assert (sbitmap_popcount (dst->wordmask,
 				dst->wordmask->n_bits) == dst->numwords);
   }