[Mesa-dev] [PATCH 2/5] mesa: Add a macro to bitset for determining bitset size.

Eric Anholt eric at anholt.net
Wed Apr 10 11:54:39 PDT 2013


---
 src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp |    2 +-
 src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp   |    3 +--
 src/mesa/main/bitset.h                                |    4 ++--
 src/mesa/program/register_allocate.c                  |    2 +-
 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 96c9b4e..36df759 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 373aa2d..ca60aa2 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 28b3c12..defb733 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 e276b8a..b8472a2 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;
-- 
1.7.10.4



More information about the mesa-dev mailing list