summaryrefslogtreecommitdiff
path: root/gcc/sbitmap.h
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2000-04-10 12:31:19 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2000-04-10 12:31:19 +0000
commit43bf47e94b0ca9888186fe7a6dd982ad4ccf8e6d (patch)
tree5bbcb93610f7bbca2cdd9644cbcc436de45c60bc /gcc/sbitmap.h
parent15654e77b028969933c59e3f71c1dddbedda1869 (diff)
downloadgcc-43bf47e94b0ca9888186fe7a6dd982ad4ccf8e6d.tar.gz
* sbitmap.h: Whitespace changes and use upper-case macro args.
(struct simple_bitmap_def): All sizes now unsigned. (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_. * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars. (sbitmap_vector_alloc): Parms and local vars now unsigned. (sbitmap_zero): Cast bzero arg to PTR. (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned. (sbitmap_union_of_diffs): Change loop index to unsigned and rework loop to make structure clearer. (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise. (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise. (sbitmap_a_and_b_or_c): Likewise. (sbitmap_intersection_of_succs): Minor cleanups. (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise. (sbitmap_union_of_preds): Likewise. (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned. (debug_sbitmap): New function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33059 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sbitmap.h')
-rw-r--r--gcc/sbitmap.h153
1 files changed, 76 insertions, 77 deletions
diff --git a/gcc/sbitmap.h b/gcc/sbitmap.h
index 41d8324d35a..b82b92b1ae1 100644
--- a/gcc/sbitmap.h
+++ b/gcc/sbitmap.h
@@ -28,112 +28,111 @@ Boston, MA 02111-1307, USA. */
#define SBITMAP_ELT_BITS ((unsigned) HOST_BITS_PER_WIDE_INT)
#define SBITMAP_ELT_TYPE unsigned HOST_WIDE_INT
-typedef struct simple_bitmap_def {
- /* Number of bits. */
- int n_bits;
- /* Size in elements. */
- int size;
- /* Size in bytes. */
- int bytes;
- /* The elements. */
- SBITMAP_ELT_TYPE elms[1];
+typedef struct simple_bitmap_def
+{
+ unsigned int n_bits; /* Number of bits. */
+ unsigned int size; /* Size in elements. */
+ unsigned int bytes; /* Size in bytes. */
+ SBITMAP_ELT_TYPE elms[1]; /* The elements. */
} *sbitmap;
typedef SBITMAP_ELT_TYPE *sbitmap_ptr;
/* Return the set size needed for N elements. */
-#define SBITMAP_SET_SIZE(n) (((n) + SBITMAP_ELT_BITS - 1) / SBITMAP_ELT_BITS)
+#define SBITMAP_SET_SIZE(N) (((N) + SBITMAP_ELT_BITS - 1) / SBITMAP_ELT_BITS)
-/* set bit number bitno in the bitmap */
-#define SET_BIT(bitmap, bitno) \
- ((bitmap)->elms [(bitno) / SBITMAP_ELT_BITS] \
- |= (SBITMAP_ELT_TYPE) 1 << (bitno) % SBITMAP_ELT_BITS)
+/* Set bit number bitno in the bitmap. */
+#define SET_BIT(BITMAP, BITNO) \
+ ((BITMAP)->elms [(BITNO) / SBITMAP_ELT_BITS] \
+ |= (SBITMAP_ELT_TYPE) 1 << (BITNO) % SBITMAP_ELT_BITS)
-/* test if bit number bitno in the bitmap is set */
-#define TEST_BIT(bitmap, bitno) \
-((bitmap)->elms [(bitno) / SBITMAP_ELT_BITS] >> (bitno) % SBITMAP_ELT_BITS & 1)
+/* Test if bit number bitno in the bitmap is set. */
+#define TEST_BIT(BITMAP, BITNO) \
+((BITMAP)->elms [(BITNO) / SBITMAP_ELT_BITS] >> (BITNO) % SBITMAP_ELT_BITS & 1)
-/* reset bit number bitno in the bitmap */
-#define RESET_BIT(bitmap, bitno) \
- ((bitmap)->elms [(bitno) / SBITMAP_ELT_BITS] \
- &= ~((SBITMAP_ELT_TYPE) 1 << (bitno) % SBITMAP_ELT_BITS))
+/* Reset bit number bitno in the bitmap. */
+#define RESET_BIT(BITMAP, BITNO) \
+ ((BITMAP)->elms [(BITNO) / SBITMAP_ELT_BITS] \
+ &= ~((SBITMAP_ELT_TYPE) 1 << (BITNO) % SBITMAP_ELT_BITS))
/* Loop over all elements of SBITSET, starting with MIN. */
#define EXECUTE_IF_SET_IN_SBITMAP(SBITMAP, MIN, N, CODE) \
do { \
- unsigned int bit_num_ = (MIN) % (unsigned) SBITMAP_ELT_BITS; \
- unsigned int word_num_ = (MIN) / (unsigned) SBITMAP_ELT_BITS; \
- unsigned int size_ = (SBITMAP)->size; \
- SBITMAP_ELT_TYPE *ptr_ = (SBITMAP)->elms; \
+ unsigned int _word_num; \
+ unsigned int _bit_num = (MIN) % (unsigned int) SBITMAP_ELT_BITS; \
+ unsigned int _size = (SBITMAP)->size; \
+ SBITMAP_ELT_TYPE *_ptr = (SBITMAP)->elms; \
\
- while (word_num_ < size_) \
+ for (_word_num = (MIN) / (unsigned int) SBITMAP_ELT_BITS; \
+ _word_num < _size; _word_num++, _bit_num = 0) \
{ \
- SBITMAP_ELT_TYPE word_ = ptr_[word_num_]; \
- if (word_ != 0) \
- { \
- for (; bit_num_ < SBITMAP_ELT_BITS; ++bit_num_) \
- { \
- SBITMAP_ELT_TYPE mask_ = (SBITMAP_ELT_TYPE)1 << bit_num_; \
- if ((word_ & mask_) != 0) \
- { \
- word_ &= ~mask_; \
- (N) = word_num_ * SBITMAP_ELT_BITS + bit_num_; \
- CODE; \
- if (word_ == 0) \
- break; \
- } \
- } \
- } \
- bit_num_ = 0; \
- word_num_++; \
- } \
+ SBITMAP_ELT_TYPE _word = _ptr[_word_num]; \
+ \
+ if (_word != 0) \
+ for (; _bit_num < SBITMAP_ELT_BITS; _bit_num++) \
+ { \
+ SBITMAP_ELT_TYPE _mask = (SBITMAP_ELT_TYPE)1 << _bit_num; \
+ \
+ if ((_word & _mask) != 0) \
+ { \
+ _word &= ~ _mask; \
+ (N) = _word_num * SBITMAP_ELT_BITS + _bit_num; \
+ CODE; \
+ if (_word == 0) \
+ break; \
+ } \
+ } \
+ } \
} while (0)
-#define sbitmap_free(map) free(map)
-#define sbitmap_vector_free(vec) free(vec)
-
-extern void dump_sbitmap PARAMS ((FILE *, sbitmap));
-extern void dump_sbitmap_vector PARAMS ((FILE *, const char *, const char *,
- sbitmap *, int));
-
-extern sbitmap sbitmap_alloc PARAMS ((int));
-extern sbitmap *sbitmap_vector_alloc PARAMS ((int, int));
+#define sbitmap_free(MAP) free(MAP)
+#define sbitmap_vector_free(VEC) free(VEC)
-extern void sbitmap_copy PARAMS ((sbitmap, sbitmap));
-extern void sbitmap_zero PARAMS ((sbitmap));
-extern void sbitmap_ones PARAMS ((sbitmap));
-extern void sbitmap_vector_zero PARAMS ((sbitmap *, int));
-extern void sbitmap_vector_ones PARAMS ((sbitmap *, int));
-
-extern int sbitmap_union_of_diff PARAMS ((sbitmap, sbitmap, sbitmap, sbitmap));
-extern void sbitmap_difference PARAMS ((sbitmap, sbitmap, sbitmap));
-extern void sbitmap_not PARAMS ((sbitmap, sbitmap));
-extern int sbitmap_a_or_b_and_c PARAMS ((sbitmap, sbitmap, sbitmap, sbitmap));
-extern int sbitmap_a_and_b_or_c PARAMS ((sbitmap, sbitmap, sbitmap, sbitmap));
-extern int sbitmap_a_and_b PARAMS ((sbitmap, sbitmap, sbitmap));
-extern int sbitmap_a_or_b PARAMS ((sbitmap, sbitmap, sbitmap));
-extern int sbitmap_a_subset_b_p PARAMS ((sbitmap, sbitmap));
+struct int_list;
-extern int sbitmap_first_set_bit PARAMS ((sbitmap));
-extern int sbitmap_last_set_bit PARAMS ((sbitmap));
+extern void dump_sbitmap PARAMS ((FILE *, sbitmap));
+extern void dump_sbitmap_vector PARAMS ((FILE *, const char *,
+ const char *, sbitmap *,
+ int));
+extern sbitmap sbitmap_alloc PARAMS ((unsigned int));
+extern sbitmap *sbitmap_vector_alloc PARAMS ((unsigned int, unsigned int));
+extern void sbitmap_copy PARAMS ((sbitmap, sbitmap));
+extern void sbitmap_zero PARAMS ((sbitmap));
+extern void sbitmap_ones PARAMS ((sbitmap));
+extern void sbitmap_vector_zero PARAMS ((sbitmap *, unsigned int));
+extern void sbitmap_vector_ones PARAMS ((sbitmap *, unsigned int));
+
+extern int sbitmap_union_of_diff PARAMS ((sbitmap, sbitmap, sbitmap,
+ sbitmap));
+extern void sbitmap_difference PARAMS ((sbitmap, sbitmap, sbitmap));
+extern void sbitmap_not PARAMS ((sbitmap, sbitmap));
+extern int sbitmap_a_or_b_and_c PARAMS ((sbitmap, sbitmap, sbitmap,
+ sbitmap));
+extern int sbitmap_a_and_b_or_c PARAMS ((sbitmap, sbitmap, sbitmap,
+ sbitmap));
+extern int sbitmap_a_and_b PARAMS ((sbitmap, sbitmap, sbitmap));
+extern int sbitmap_a_or_b PARAMS ((sbitmap, sbitmap, sbitmap));
+extern int sbitmap_a_subset_b_p PARAMS ((sbitmap, sbitmap));
+
+extern int sbitmap_first_set_bit PARAMS ((sbitmap));
+extern int sbitmap_last_set_bit PARAMS ((sbitmap));
-struct int_list;
extern void sbitmap_intersect_of_predsucc PARAMS ((sbitmap, sbitmap *,
int, struct int_list **));
#define sbitmap_intersect_of_predecessors sbitmap_intersect_of_predsucc
#define sbitmap_intersect_of_successors sbitmap_intersect_of_predsucc
-extern void sbitmap_union_of_predsucc PARAMS ((sbitmap, sbitmap *, int,
- struct int_list **));
+extern void sbitmap_union_of_predsucc PARAMS ((sbitmap, sbitmap *, int,
+ struct int_list **));
#define sbitmap_union_of_predecessors sbitmap_union_of_predsucc
#define sbitmap_union_of_successors sbitmap_union_of_predsucc
/* Intersection and Union of preds/succs using the new flow graph
structure instead of the pred/succ arrays. */
-extern void sbitmap_intersection_of_succs PARAMS ((sbitmap, sbitmap *, int));
-extern void sbitmap_intersection_of_preds PARAMS ((sbitmap, sbitmap *, int));
-extern void sbitmap_union_of_succs PARAMS ((sbitmap, sbitmap *, int));
-extern void sbitmap_union_of_preds PARAMS ((sbitmap, sbitmap *, int));
+extern void sbitmap_intersection_of_succs PARAMS ((sbitmap, sbitmap *, int));
+extern void sbitmap_intersection_of_preds PARAMS ((sbitmap, sbitmap *, int));
+extern void sbitmap_union_of_succs PARAMS ((sbitmap, sbitmap *, int));
+extern void sbitmap_union_of_preds PARAMS ((sbitmap, sbitmap *, int));
#endif /* _SBITMAP_H */