summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>2004-11-02 10:00:09 +0000
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>2004-11-02 10:00:09 +0000
commit79d6d448109e4444eb5809d71beafff4ce8ecf85 (patch)
tree200acd184e06dc1da5eab8d2d822871df1c7ea0b
parent215768315efa12277535db11b94e39cdea0d981a (diff)
downloadgcc-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/ChangeLog15
-rw-r--r--gcc/bitmap.c15
-rw-r--r--gcc/bitmap.h22
-rw-r--r--gcc/df.c6
-rw-r--r--gcc/global.c2
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);
diff --git a/gcc/df.c b/gcc/df.c
index 818d92e89a4..e479b965ad0 100644
--- a/gcc/df.c
+++ b/gcc/df.c
@@ -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;
}