summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2016-11-02 13:51:10 -0700
committerEric Anholt <[email protected]>2016-11-03 18:42:58 -0700
commitbedb99608735aaa260eba0144ca6d46dbe43be55 (patch)
treea7ce594663110b0833b31afc817f370b06641dfe
parent49936364e4c48e318b1ef3f09785b0e669a0c11b (diff)
vc4: Fix use of undefined values since the ralloc zeroing changes.
reralloc() no longer zeroes the new contents, so switch to using rzalloc_array() instead.
-rw-r--r--src/gallium/drivers/vc4/vc4_qir_live_variables.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/gallium/drivers/vc4/vc4_qir_live_variables.c b/src/gallium/drivers/vc4/vc4_qir_live_variables.c
index beefb0d7f8a..dc058f5b4a7 100644
--- a/src/gallium/drivers/vc4/vc4_qir_live_variables.c
+++ b/src/gallium/drivers/vc4/vc4_qir_live_variables.c
@@ -301,8 +301,13 @@ qir_calculate_live_intervals(struct vc4_compile *c)
{
int bitset_words = BITSET_WORDS(c->num_temps);
- c->temp_start = reralloc(c, c->temp_start, int, c->num_temps);
- c->temp_end = reralloc(c, c->temp_end, int, c->num_temps);
+ /* If we called this function more than once, then we should be
+ * freeing the previous arrays.
+ */
+ assert(!c->temp_start);
+
+ c->temp_start = rzalloc_array(c, int, c->num_temps);
+ c->temp_end = rzalloc_array(c, int, c->num_temps);
for (int i = 0; i < c->num_temps; i++) {
c->temp_start[i] = MAX_INSTRUCTION;
@@ -310,10 +315,10 @@ qir_calculate_live_intervals(struct vc4_compile *c)
}
qir_for_each_block(block, c) {
- block->def = reralloc(c, block->def, BITSET_WORD, bitset_words);
- block->use = reralloc(c, block->use, BITSET_WORD, bitset_words);
- block->live_in = reralloc(c, block->live_in, BITSET_WORD, bitset_words);
- block->live_out = reralloc(c, block->live_out, BITSET_WORD, bitset_words);
+ block->def = rzalloc_array(c, BITSET_WORD, bitset_words);
+ block->use = rzalloc_array(c, BITSET_WORD, bitset_words);
+ block->live_in = rzalloc_array(c, BITSET_WORD, bitset_words);
+ block->live_out = rzalloc_array(c, BITSET_WORD, bitset_words);
}
qir_setup_def_use(c);