* adding the predecessors of the block to the work list if we made progress.
*/
-static inline pan_block *
-pan_exit_block(struct list_head *blocks)
-{
- pan_block *last = list_last_entry(blocks, pan_block, link);
- assert(last->nr_successors == 0);
- return last;
-}
-
void
pan_compute_liveness(
struct list_head *blocks,
_mesa_hash_pointer,
_mesa_key_pointer_equal);
- /* Allocate */
+ /* Free any previous liveness, and allocate */
+
+ pan_free_liveness(blocks);
list_for_each_entry(pan_block, block, blocks, link) {
- block->live_in = rzalloc_array(NULL, uint16_t, temp_count);
- block->live_out = rzalloc_array(NULL, uint16_t, temp_count);
+ block->live_in = rzalloc_array(block, uint16_t, temp_count);
+ block->live_out = rzalloc_array(block, uint16_t, temp_count);
}
/* Initialize the work list with the exit block */