summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2013-04-04 09:47:03 -0700
committerEric Anholt <[email protected]>2013-04-12 16:32:12 -0700
commitdf25b4f3cf22282b06e622f3cf1f5855b8f767a8 (patch)
tree0b61ecc2d28452187ede83b9881d7ab8ad201058
parentb5a0f59c0f167c2d99b585371e76c80c5342990c (diff)
mesa: Add a macro to bitset for determining bitset size.
Reviewed-by: Matt Turner <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp2
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp3
-rw-r--r--src/mesa/main/bitset.h4
-rw-r--r--src/mesa/program/register_allocate.c2
4 files changed, 5 insertions, 6 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
index 96c9b4efc4b..36df7599e28 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
@@ -104,7 +104,7 @@ fs_copy_prop_dataflow::fs_copy_prop_dataflow(void *mem_ctx, cfg_t *cfg,
acp = rzalloc_array(mem_ctx, struct acp_entry *, num_acp);
- bitset_words = ALIGN(num_acp, BITSET_WORDBITS) / BITSET_WORDBITS;
+ bitset_words = BITSET_WORDS(num_acp);
int next_acp = 0;
for (int b = 0; b < cfg->num_blocks; b++) {
diff --git a/src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp b/src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp
index 373aa2d5e3f..ca60aa235fe 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp
@@ -142,8 +142,7 @@ fs_live_variables::fs_live_variables(fs_visitor *v, cfg_t *cfg)
num_vars = v->virtual_grf_count;
bd = rzalloc_array(mem_ctx, struct block_data, cfg->num_blocks);
- bitset_words = (ALIGN(v->virtual_grf_count, BITSET_WORDBITS) /
- BITSET_WORDBITS);
+ bitset_words = BITSET_WORDS(v->virtual_grf_count);
for (int i = 0; i < cfg->num_blocks; i++) {
bd[i].def = rzalloc_array(mem_ctx, BITSET_WORD, bitset_words);
bd[i].use = rzalloc_array(mem_ctx, BITSET_WORD, bitset_words);
diff --git a/src/mesa/main/bitset.h b/src/mesa/main/bitset.h
index 28b3c127e75..defb7339e86 100644
--- a/src/mesa/main/bitset.h
+++ b/src/mesa/main/bitset.h
@@ -42,8 +42,8 @@
/* bitset declarations
*/
-#define BITSET_DECLARE(name, size) \
- BITSET_WORD name[((size) + BITSET_WORDBITS - 1) / BITSET_WORDBITS]
+#define BITSET_WORDS(bits) (ALIGN(bits, BITSET_WORDBITS) / BITSET_WORDBITS)
+#define BITSET_DECLARE(name, bits) BITSET_WORD name[BITSET_WORDS(bits)]
/* bitset operations
*/
diff --git a/src/mesa/program/register_allocate.c b/src/mesa/program/register_allocate.c
index e276b8ac84b..b8472a21093 100644
--- a/src/mesa/program/register_allocate.c
+++ b/src/mesa/program/register_allocate.c
@@ -355,7 +355,7 @@ ra_alloc_interference_graph(struct ra_regs *regs, unsigned int count)
g->stack = rzalloc_array(g, unsigned int, count);
for (i = 0; i < count; i++) {
- int bitset_count = ALIGN(count, BITSET_WORDBITS) / BITSET_WORDBITS;
+ int bitset_count = BITSET_WORDS(count);
g->nodes[i].adjacency = rzalloc_array(g, BITSET_WORD, bitset_count);
g->nodes[i].adjacency_list_size = 4;