diff options
author | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-11-02 10:00:09 +0000 |
---|---|---|
committer | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-11-02 10:00:09 +0000 |
commit | 79d6d448109e4444eb5809d71beafff4ce8ecf85 (patch) | |
tree | 200acd184e06dc1da5eab8d2d822871df1c7ea0b | |
parent | 215768315efa12277535db11b94e39cdea0d981a (diff) | |
download | gcc-79d6d448109e4444eb5809d71beafff4ce8ecf85.tar.gz |
* bitmap.h (bitmap_and, bitmap_and_into, bitmap_and_compl,
bitmap_and_compl_into, bitmap_ior, bitmap_iot_into,
bitmap_ior_compl, bitmap_xor, bitmap_xor_into): Produce void.
(bitmap_ior_and_compl_into): Produce bool.
(bitmap_union_of_diff): Rename to ...
(bitmap_ior_and_compl): ... here. Produce bool.
* bitmap.c (bitmap_ior_and_compl_into): Return bool. Use
bitmap_operation directly.
(bitmap_union_of_diff): Rename to ...
(bitmap_ior_and_compl): ... here. Return bool, use
bitmap_operation directly.
* df.c (df_rd_transfer_function): Use bitmap_ior_and_compl.
(df_ru_transfer_function, df_lr_transfer_function): Likewise.
* global.c (modify_bb_reg_pav): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89982 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 15 | ||||
-rw-r--r-- | gcc/bitmap.c | 15 | ||||
-rw-r--r-- | gcc/bitmap.h | 22 | ||||
-rw-r--r-- | gcc/df.c | 6 | ||||
-rw-r--r-- | gcc/global.c | 2 |
5 files changed, 38 insertions, 22 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 87d7e073f11..b85d34c9589 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,20 @@ 2004-11-02 Nathan Sidwell <nathan@codesourcery.com> + * bitmap.h (bitmap_and, bitmap_and_into, bitmap_and_compl, + bitmap_and_compl_into, bitmap_ior, bitmap_iot_into, + bitmap_ior_compl, bitmap_xor, bitmap_xor_into): Produce void. + (bitmap_ior_and_compl_into): Produce bool. + (bitmap_union_of_diff): Rename to ... + (bitmap_ior_and_compl): ... here. Produce bool. + * bitmap.c (bitmap_ior_and_compl_into): Return bool. Use + bitmap_operation directly. + (bitmap_union_of_diff): Rename to ... + (bitmap_ior_and_compl): ... here. Return bool, use + bitmap_operation directly. + * df.c (df_rd_transfer_function): Use bitmap_ior_and_compl. + (df_ru_transfer_function, df_lr_transfer_function): Likewise. + * global.c (modify_bb_reg_pav): Likewise. + * bitmap.h (bitmap_equal_p): Return bool. (bitmap_intersect_p, bitmap_intersect_compl_p): Declare. * bitmap.c (bitmap_equal_p): Return bool. Compare directly. diff --git a/gcc/bitmap.c b/gcc/bitmap.c index c78912b28ff..57939ff4a33 100644 --- a/gcc/bitmap.c +++ b/gcc/bitmap.c @@ -743,10 +743,9 @@ bitmap_intersect_compl_p (bitmap a, bitmap b) } -/* Or into bitmap TO bitmap FROM1 and'ed with the complement of - bitmap FROM2. */ +/* Produce TO |= FROM1 & ~FROM2. Return true, if TO changed. */ -int +bool bitmap_ior_and_compl_into (bitmap to, bitmap from1, bitmap from2) { bitmap_head tmp; @@ -756,13 +755,15 @@ bitmap_ior_and_compl_into (bitmap to, bitmap from1, bitmap from2) tmp.using_obstack = 0; bitmap_and_compl (&tmp, from1, from2); - changed = bitmap_ior_into (to, &tmp); + changed = bitmap_operation (to, to, &tmp, BITMAP_IOR); bitmap_clear (&tmp); return changed; } -int -bitmap_union_of_diff (bitmap dst, bitmap a, bitmap b, bitmap c) +/* Produce DST = A | (B & ~C). Return true if DST != A. */ + +bool +bitmap_ior_and_compl (bitmap dst, bitmap a, bitmap b, bitmap c) { bitmap_head tmp; int changed; @@ -771,7 +772,7 @@ bitmap_union_of_diff (bitmap dst, bitmap a, bitmap b, bitmap c) tmp.using_obstack = 0; bitmap_and_compl (&tmp, b, c); - changed = bitmap_ior (dst, &tmp, a); + changed = bitmap_operation (dst, a, &tmp, BITMAP_IOR); bitmap_clear (&tmp); return changed; diff --git a/gcc/bitmap.h b/gcc/bitmap.h index 767fafa3b98..f20773b6b51 100644 --- a/gcc/bitmap.h +++ b/gcc/bitmap.h @@ -100,19 +100,20 @@ extern bool bitmap_intersect_compl_p (bitmap, bitmap); /* Perform an operation on two bitmaps, yielding a third. */ extern int bitmap_operation (bitmap, bitmap, bitmap, enum bitmap_bits); -#define bitmap_and(DST,A,B) bitmap_operation (DST,A,B,BITMAP_AND) -#define bitmap_and_into(DST_SRC,B) bitmap_operation (DST_SRC,DST_SRC,B,BITMAP_AND) -#define bitmap_and_compl(DST,A,B) bitmap_operation (DST,A,B,BITMAP_AND_COMPL) -#define bitmap_and_compl_into(DST_SRC,B) bitmap_operation (DST_SRC,DST_SRC,B,BITMAP_AND_COMPL) -#define bitmap_ior(DST,A,B) bitmap_operation (DST,A,B,BITMAP_IOR) -#define bitmap_ior_into(DST_SRC,B) bitmap_operation (DST_SRC,DST_SRC,B,BITMAP_IOR) -#define bitmap_ior_compl(DST,A,B) bitmap_operation (DST,A,B,BITMAP_IOR_COMPL) -#define bitmap_xor(DST,A,B) bitmap_operation (DST,A,B,BITMAP_XOR) -#define bitmap_xor_into(DST_SRC,B) bitmap_operation (DST_SRC,DST_SRC,B,BITMAP_XOR) +#define bitmap_and(DST,A,B) (void)bitmap_operation (DST,A,B,BITMAP_AND) +#define bitmap_and_into(DST_SRC,B) (void)bitmap_operation (DST_SRC,DST_SRC,B,BITMAP_AND) +#define bitmap_and_compl(DST,A,B) (void)bitmap_operation (DST,A,B,BITMAP_AND_COMPL) +#define bitmap_and_compl_into(DST_SRC,B) (void)bitmap_operation (DST_SRC,DST_SRC,B,BITMAP_AND_COMPL) +#define bitmap_ior(DST,A,B) (void)bitmap_operation (DST,A,B,BITMAP_IOR) +#define bitmap_ior_into(DST_SRC,B) (void)bitmap_operation (DST_SRC,DST_SRC,B,BITMAP_IOR) +#define bitmap_ior_compl(DST,A,B) (void)bitmap_operation (DST,A,Br,BITMAP_IOR_COMPL) +#define bitmap_xor(DST,A,B) (void)bitmap_operation (DST,A,B,BITMAP_XOR) +#define bitmap_xor_into(DST_SRC,B) (void)bitmap_operation (DST_SRC,DST_SRC,B,BITMAP_XOR) /* `or' into one bitmap the `and' of a second bitmap witih the complement of a third. Return nonzero if the bitmap changes. */ -extern int bitmap_ior_and_compl_into (bitmap, bitmap, bitmap); +extern bool bitmap_ior_and_compl_into (bitmap, bitmap, bitmap); +extern bool bitmap_ior_and_compl (bitmap, bitmap, bitmap, bitmap); /* Clear a single register in a register set. */ extern void bitmap_clear_bit (bitmap, int); @@ -142,7 +143,6 @@ extern void bitmap_release_memory (void); #define bitmap_zero(a) bitmap_clear (a) #define bitmap_a_or_b(a,b,c) bitmap_operation (a, b, c, BITMAP_IOR) #define bitmap_a_and_b(a,b,c) bitmap_operation (a, b, c, BITMAP_AND) -extern int bitmap_union_of_diff (bitmap, bitmap, bitmap, bitmap); extern int bitmap_first_set_bit (bitmap); extern int bitmap_last_set_bit (bitmap); @@ -1588,7 +1588,7 @@ df_rd_transfer_function (int bb ATTRIBUTE_UNUSED, int *changed, void *in, void *out, void *gen, void *kill, void *data ATTRIBUTE_UNUSED) { - *changed = bitmap_union_of_diff (out, gen, in, kill); + *changed = bitmap_ior_and_compl (out, gen, in, kill); } @@ -1597,7 +1597,7 @@ df_ru_transfer_function (int bb ATTRIBUTE_UNUSED, int *changed, void *in, void *out, void *gen, void *kill, void *data ATTRIBUTE_UNUSED) { - *changed = bitmap_union_of_diff (in, gen, out, kill); + *changed = bitmap_ior_and_compl (in, gen, out, kill); } @@ -1606,7 +1606,7 @@ df_lr_transfer_function (int bb ATTRIBUTE_UNUSED, int *changed, void *in, void *out, void *use, void *def, void *data ATTRIBUTE_UNUSED) { - *changed = bitmap_union_of_diff (in, use, out, def); + *changed = bitmap_ior_and_compl (in, use, out, def); } diff --git a/gcc/global.c b/gcc/global.c index 6892fdc3c6c..05dbb62cc4e 100644 --- a/gcc/global.c +++ b/gcc/global.c @@ -2307,7 +2307,7 @@ modify_bb_reg_pav (basic_block bb, basic_block pred, bool changed_p) bb_pavout = bb_info->pavout; if (pred->index != ENTRY_BLOCK) bitmap_a_or_b (bb_pavin, bb_pavin, BB_INFO (pred)->pavout); - changed_p |= bitmap_union_of_diff (bb_pavout, bb_info->avloc, + changed_p |= bitmap_ior_and_compl (bb_pavout, bb_info->avloc, bb_pavin, bb_info->killed); return changed_p; } |