summaryrefslogtreecommitdiffhomepage
path: root/ir/adt
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2015-09-07 11:32:39 +0200
committerMatthias Braun <matze@braunis.de>2015-09-07 19:58:32 +0200
commit7e721a033d0e54fda7e9f127177896b6014c650e (patch)
treea4fbe367a3e0dc3154329d3500e4af38eebba15d /ir/adt
parent68be52e66419c99f344b0680b2085a54a2bad714 (diff)
bitset: Cleanup
Diffstat (limited to 'ir/adt')
-rw-r--r--ir/adt/bitset.h48
-rw-r--r--ir/adt/raw_bitset.h4
2 files changed, 25 insertions, 27 deletions
diff --git a/ir/adt/bitset.h b/ir/adt/bitset.h
index 9ef2cc8..a6801e2 100644
--- a/ir/adt/bitset.h
+++ b/ir/adt/bitset.h
@@ -19,28 +19,26 @@
#include "bitfiddle.h"
#include "raw_bitset.h"
-typedef struct bitset_t {
- size_t size; /**< size of the bitset in bits */
- unsigned data[1]; /**< data (should be declared data[] but this is only
- allowed in C99) */
+typedef struct {
+ size_t size; /**< size of the bitset in bits */
+ unsigned data[];
} bitset_t;
/**
- * return the number of bytes a bitset would need
+ * Return the number of bytes a bitset would need
*/
-static inline size_t bitset_total_size(size_t n_bits)
+static inline size_t bitset_total_size(size_t const n_bits)
{
- return sizeof(bitset_t) - sizeof(((bitset_t*)0)->data)
- + BITSET_SIZE_BYTES(n_bits);
+ return sizeof(bitset_t) + BITSET_SIZE_BYTES(n_bits);
}
/**
- * initialize a bitset for bitsize size (bitset should point to memory
+ * Initialize a bitset for bitsize size (bitset should point to memory
* with a size calculated by bitset_total_size)
*/
static inline bitset_t *bitset_init(void *memory, size_t size)
{
- bitset_t *result = (bitset_t*) memory;
+ bitset_t *result = (bitset_t*)memory;
result->size = size;
rbitset_clear_all(result->data, size);
return result;
@@ -86,7 +84,7 @@ static inline bitset_t *bitset_malloc(size_t n_bits)
* @param bs The bitset.
* @return The highest bit which can be set or cleared plus 1.
*/
-static inline size_t bitset_size(const bitset_t *bitset)
+static inline size_t bitset_size(bitset_t const *bitset)
{
return bitset->size;
}
@@ -119,7 +117,7 @@ static inline void bitset_clear(bitset_t *bs, size_t bit)
* @param bit The bit to check for.
* @return 1, if the bit was set, 0 if not.
*/
-static inline bool bitset_is_set(const bitset_t *bs, size_t bit)
+static inline bool bitset_is_set(bitset_t const *bs, size_t bit)
{
assert(bit < bs->size);
return rbitset_is_set(bs->data, bit);
@@ -152,7 +150,7 @@ static inline void bitset_flip_all(bitset_t *bs)
* @param src The source bitset.
* @return The target bitset.
*/
-static inline void bitset_copy(bitset_t *tgt, const bitset_t *src)
+static inline void bitset_copy(bitset_t *tgt, bitset_t const *src)
{
assert(tgt->size == src->size);
rbitset_copy(tgt->data, src->data, src->size);
@@ -166,7 +164,7 @@ static inline void bitset_copy(bitset_t *tgt, const bitset_t *src)
* @return The next set bit from pos on, or (size_t)-1, if no unset bit was
* found after pos.
*/
-static inline size_t bitset_next_clear(const bitset_t *bs, size_t pos)
+static inline size_t bitset_next_clear(bitset_t const *bs, size_t pos)
{
return rbitset_next_max(bs->data, pos, bs->size, false);
}
@@ -179,7 +177,7 @@ static inline size_t bitset_next_clear(const bitset_t *bs, size_t pos)
* @return The next set bit from pos on, or (size_t)-1, if no set bit was
* found after pos.
*/
-static inline size_t bitset_next_set(const bitset_t *bs, size_t pos)
+static inline size_t bitset_next_set(bitset_t const *bs, size_t pos)
{
return rbitset_next_max(bs->data, pos, bs->size, true);
}
@@ -203,7 +201,7 @@ static inline size_t bitset_next_set(const bitset_t *bs, size_t pos)
* @return The previous unset bit from pos on, or (size_t)-1, if no unset bit was
* found before pos.
*/
-static inline size_t bitset_prev_clear(const bitset_t *bs, size_t pos)
+static inline size_t bitset_prev_clear(bitset_t const *bs, size_t pos)
{
return rbitset_prev(bs->data, pos, false);
}
@@ -215,7 +213,7 @@ static inline size_t bitset_prev_clear(const bitset_t *bs, size_t pos)
* @return The previous set bit from pos on, or (size_t)-1, if no set bit was
* found before pos.
*/
-static inline size_t bitset_prev_set(const bitset_t *bs, size_t pos)
+static inline size_t bitset_prev_set(bitset_t const *bs, size_t pos)
{
return rbitset_prev(bs->data, pos, true);
}
@@ -234,7 +232,7 @@ static inline size_t bitset_prev_set(const bitset_t *bs, size_t pos)
* @param bs The bitset.
* @return The number of bits set in the bitset.
*/
-static inline size_t bitset_popcount(const bitset_t *bs)
+static inline size_t bitset_popcount(bitset_t const *bs)
{
return rbitset_popcount(bs->data, bs->size);
}
@@ -266,7 +264,7 @@ static inline void bitset_set_all(bitset_t *bs)
* @param rhs Another bitset.
* @return 1, if all bits in lhs are also set in rhs, 0 otherwise.
*/
-static inline bool bitset_contains(const bitset_t *lhs, const bitset_t *rhs)
+static inline bool bitset_contains(bitset_t const *lhs, bitset_t const *rhs)
{
assert(lhs->size == rhs->size);
return rbitset_contains(lhs->data, rhs->data, lhs->size);
@@ -288,7 +286,7 @@ static inline void bitset_minus1(bitset_t *bs)
* @param b The second bitset.
* @return 1 if they have a bit in common, 0 if not.
*/
-static inline bool bitset_intersect(const bitset_t *a, const bitset_t *b)
+static inline bool bitset_intersect(bitset_t const *a, bitset_t const *b)
{
assert(a->size == b->size);
return rbitsets_have_common(a->data, b->data, a->size);
@@ -327,7 +325,7 @@ static inline void bitset_mod_range(bitset_t *a, size_t from, size_t to,
* @param a The bitset.
* @return 1, if the bitset is empty, 0 if not.
*/
-static inline bool bitset_is_empty(const bitset_t *bs)
+static inline bool bitset_is_empty(bitset_t const *bs)
{
return rbitset_is_empty(bs->data, bs->size);
}
@@ -346,7 +344,7 @@ void bitset_fprint(FILE *file, bitset_t const *bs);
* @param src The source bitset.
* @return the tgt set.
*/
-static inline void bitset_and(bitset_t *tgt, const bitset_t *src)
+static inline void bitset_and(bitset_t *tgt, bitset_t const *src)
{
assert(tgt->size == src->size);
rbitset_and(tgt->data, src->data, src->size);
@@ -358,7 +356,7 @@ static inline void bitset_and(bitset_t *tgt, const bitset_t *src)
* @param src The source bitset.
* @return the tgt set.
*/
-static inline void bitset_andnot(bitset_t *tgt, const bitset_t *src)
+static inline void bitset_andnot(bitset_t *tgt, bitset_t const *src)
{
assert(tgt->size == src->size);
rbitset_andnot(tgt->data, src->data, src->size);
@@ -370,7 +368,7 @@ static inline void bitset_andnot(bitset_t *tgt, const bitset_t *src)
* @param src The source bitset.
* @return the tgt set.
*/
-static inline void bitset_or(bitset_t *tgt, const bitset_t *src)
+static inline void bitset_or(bitset_t *tgt, bitset_t const *src)
{
assert(tgt->size == src->size);
rbitset_or(tgt->data, src->data, src->size);
@@ -382,7 +380,7 @@ static inline void bitset_or(bitset_t *tgt, const bitset_t *src)
* @param src The source bitset.
* @return the tgt set.
*/
-static inline void bitset_xor(bitset_t *tgt, const bitset_t *src)
+static inline void bitset_xor(bitset_t *tgt, bitset_t const *src)
{
assert(tgt->size == src->size);
rbitset_xor(tgt->data, src->data, src->size);
diff --git a/ir/adt/raw_bitset.h b/ir/adt/raw_bitset.h
index 2b1d354..b8d51af 100644
--- a/ir/adt/raw_bitset.h
+++ b/ir/adt/raw_bitset.h
@@ -207,9 +207,9 @@ static inline bool rbitset_is_set(const unsigned *bitset, size_t pos)
* @param bitset the bitset
* @param size size of the bitset in bits
*/
-static inline size_t rbitset_popcount(const unsigned *bitset, size_t size)
+static inline unsigned rbitset_popcount(const unsigned *bitset, size_t size)
{
- size_t res = 0;
+ unsigned res = 0;
for (size_t i = 0, n = BITSET_SIZE_ELEMS(size); i < n; ++i) {
res += popcount(bitset[i]);
}