freedreno/ir3: fix silly brain-fart in RA
authorRob Clark <robclark@freedesktop.org>
Mon, 4 Apr 2016 21:36:41 +0000 (17:36 -0400)
committerRob Clark <robclark@freedesktop.org>
Tue, 5 Apr 2016 00:18:18 +0000 (20:18 -0400)
We want to consider all the vars, not 1/32nd of them, when extending
live-ranges.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/ir3/ir3_ra.c

index f06b27e9dd2a2a3674534c17979a658bac5a3da8..ed3030d722a3107131039a61677ce2eb68daf501 100644 (file)
@@ -863,11 +863,10 @@ ra_add_interference(struct ir3_ra_ctx *ctx)
        }
 
        /* extend start/end ranges based on livein/liveout info from cfg: */
-       unsigned bitset_words = BITSET_WORDS(ctx->alloc_count);
        list_for_each_entry (struct ir3_block, block, &ir->block_list, node) {
                struct ir3_ra_block_data *bd = block->data;
 
-               for (unsigned i = 0; i < bitset_words; i++) {
+               for (unsigned i = 0; i < ctx->alloc_count; i++) {
                        if (BITSET_TEST(bd->livein, i)) {
                                ctx->def[i] = MIN2(ctx->def[i], block->start_ip);
                                ctx->use[i] = MAX2(ctx->use[i], block->start_ip);