Mercurial > hg > CbC > CbC_gcc
comparison 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 |
comparison
equal
deleted
inserted
replaced
56:3c8a44c06a95 | 63:b7f97abdc517 |
---|---|
1 /* Sparse array-based bitmaps. | 1 /* Sparse array-based bitmaps. |
2 Copyright (C) 2007, 2008 Free Software Foundation, Inc. | 2 Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
3 Contributed by Daniel Berlin <dberlin@dberlin.org> | 3 Contributed by Daniel Berlin <dberlin@dberlin.org> |
4 | 4 |
5 This file is part of GCC. | 5 This file is part of GCC. |
6 | 6 |
7 GCC is free software; you can redistribute it and/or modify it under | 7 GCC is free software; you can redistribute it and/or modify it under |
252 if (*(elt_ptr) == 0) | 252 if (*(elt_ptr) == 0) |
253 { | 253 { |
254 if (!have_eltwordindex) | 254 if (!have_eltwordindex) |
255 eltwordindex = sbitmap_popcount (map->wordmask, wordindex); | 255 eltwordindex = sbitmap_popcount (map->wordmask, wordindex); |
256 | 256 |
257 if (map->cache != NULL && map->cacheindex == eltwordindex) | 257 if (map->cache != NULL) |
258 map->cache = NULL; | 258 { |
259 if (map->cacheindex == wordindex) | |
260 map->cache = NULL; | |
261 else if (map->cacheindex > wordindex) | |
262 map->cache = map->cache - 1; | |
263 } | |
259 | 264 |
260 RESET_BIT (map->wordmask, wordindex); | 265 RESET_BIT (map->wordmask, wordindex); |
261 | 266 |
262 memmove(&map->elts[eltwordindex], &map->elts[eltwordindex + 1], | 267 memmove(&map->elts[eltwordindex], &map->elts[eltwordindex + 1], |
263 sizeof (EBITMAP_ELT_TYPE) * (map->numwords - eltwordindex)); | 268 sizeof (EBITMAP_ELT_TYPE) * (map->numwords - eltwordindex)); |
455 unsigned int i; | 460 unsigned int i; |
456 | 461 |
457 for (i = 0; i < dst->numwords; i++) | 462 for (i = 0; i < dst->numwords; i++) |
458 gcc_assert (dst->elts[i] != 0); | 463 gcc_assert (dst->elts[i] != 0); |
459 | 464 |
460 verify_popcount (dst->wordmask); | 465 sbitmap_verify_popcount (dst->wordmask); |
461 gcc_assert (sbitmap_popcount (dst->wordmask, | 466 gcc_assert (sbitmap_popcount (dst->wordmask, |
462 dst->wordmask->n_bits) == dst->numwords); | 467 dst->wordmask->n_bits) == dst->numwords); |
463 } | 468 } |
464 #endif | 469 #endif |
465 dst->numwords = neweltindex; | 470 dst->numwords = neweltindex; |
527 gcc_assert (ebitmap_bit_p (dst, i)); | 532 gcc_assert (ebitmap_bit_p (dst, i)); |
528 | 533 |
529 for (i = 0; i < dst->numwords; i++) | 534 for (i = 0; i < dst->numwords; i++) |
530 gcc_assert (dst->elts[i] != 0); | 535 gcc_assert (dst->elts[i] != 0); |
531 | 536 |
532 verify_popcount (dst->wordmask); | 537 sbitmap_verify_popcount (dst->wordmask); |
533 gcc_assert (sbitmap_popcount (dst->wordmask, | 538 gcc_assert (sbitmap_popcount (dst->wordmask, |
534 dst->wordmask->n_bits) == dst->numwords); | 539 dst->wordmask->n_bits) == dst->numwords); |
535 } | 540 } |
536 #endif | 541 #endif |
537 dst->numwords = neweltindex; | 542 dst->numwords = neweltindex; |
650 EXECUTE_IF_SET_IN_EBITMAP (src, 0, i, ebi) | 655 EXECUTE_IF_SET_IN_EBITMAP (src, 0, i, ebi) |
651 gcc_assert (ebitmap_bit_p (dst, i)); | 656 gcc_assert (ebitmap_bit_p (dst, i)); |
652 EXECUTE_IF_SET_IN_EBITMAP (dstcopy, 0, i, ebi) | 657 EXECUTE_IF_SET_IN_EBITMAP (dstcopy, 0, i, ebi) |
653 gcc_assert (ebitmap_bit_p (dst, i)); | 658 gcc_assert (ebitmap_bit_p (dst, i)); |
654 | 659 |
655 verify_popcount (dst->wordmask); | 660 sbitmap_verify_popcount (dst->wordmask); |
656 gcc_assert (changed == !ebitmap_equal_p (dst, dstcopy)); | 661 gcc_assert (changed == !ebitmap_equal_p (dst, dstcopy)); |
657 gcc_assert (sbitmap_popcount (dst->wordmask, | 662 gcc_assert (sbitmap_popcount (dst->wordmask, |
658 dst->wordmask->n_bits) == dst->numwords); | 663 dst->wordmask->n_bits) == dst->numwords); |
659 } | 664 } |
660 #endif | 665 #endif |
770 gcc_assert (ebitmap_bit_p (dst, i)); | 775 gcc_assert (ebitmap_bit_p (dst, i)); |
771 | 776 |
772 EXECUTE_IF_SET_IN_EBITMAP (src2, 0, i, ebi) | 777 EXECUTE_IF_SET_IN_EBITMAP (src2, 0, i, ebi) |
773 gcc_assert (ebitmap_bit_p (dst, i)); | 778 gcc_assert (ebitmap_bit_p (dst, i)); |
774 } | 779 } |
775 verify_popcount (dst->wordmask); | 780 sbitmap_verify_popcount (dst->wordmask); |
776 gcc_assert (changed == !ebitmap_equal_p (dst, dstcopy)); | 781 gcc_assert (changed == !ebitmap_equal_p (dst, dstcopy)); |
777 gcc_assert (sbitmap_popcount (dst->wordmask, | 782 gcc_assert (sbitmap_popcount (dst->wordmask, |
778 dst->wordmask->n_bits) == dst->numwords); | 783 dst->wordmask->n_bits) == dst->numwords); |
779 #endif | 784 #endif |
780 | 785 |
846 for (i = 0; i < dst->numwords; i++) | 851 for (i = 0; i < dst->numwords; i++) |
847 gcc_assert (dst->elts[i] != 0); | 852 gcc_assert (dst->elts[i] != 0); |
848 | 853 |
849 gcc_assert (sbitmap_popcount (dst->wordmask, | 854 gcc_assert (sbitmap_popcount (dst->wordmask, |
850 dst->wordmask->n_bits) == neweltindex); | 855 dst->wordmask->n_bits) == neweltindex); |
851 verify_popcount (dst->wordmask); | 856 sbitmap_verify_popcount (dst->wordmask); |
852 gcc_assert (changed == !ebitmap_equal_p (dst, dstcopy)); | 857 gcc_assert (changed == !ebitmap_equal_p (dst, dstcopy)); |
853 gcc_assert (sbitmap_popcount (dst->wordmask, | 858 gcc_assert (sbitmap_popcount (dst->wordmask, |
854 dst->wordmask->n_bits) == dst->numwords); | 859 dst->wordmask->n_bits) == dst->numwords); |
855 } | 860 } |
856 #endif | 861 #endif |
948 gcc_assert (ebitmap_bit_p (dst, i)); | 953 gcc_assert (ebitmap_bit_p (dst, i)); |
949 } | 954 } |
950 for (i = 0; i < dst->numwords; i++) | 955 for (i = 0; i < dst->numwords; i++) |
951 gcc_assert (dst->elts[i] != 0); | 956 gcc_assert (dst->elts[i] != 0); |
952 | 957 |
953 verify_popcount (dst->wordmask); | 958 sbitmap_verify_popcount (dst->wordmask); |
954 gcc_assert (sbitmap_popcount (dst->wordmask, | 959 gcc_assert (sbitmap_popcount (dst->wordmask, |
955 dst->wordmask->n_bits) == dst->numwords); | 960 dst->wordmask->n_bits) == dst->numwords); |
956 } | 961 } |
957 #endif | 962 #endif |
958 return changed; | 963 return changed; |