The starting block always has livein = 0 and liveout = copy. Since we
start with real data, not estimates, there's no need to refine it with
the fixed point algorithm.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
/* Update liveout for all blocks. */
for (int b = 0; b < cfg->num_blocks; b++) {
+ if (cfg->blocks[b]->parents.is_empty())
+ continue;
+
for (int i = 0; i < bitset_words; i++) {
const BITSET_WORD old_liveout = bd[b].liveout[i];
* blocks, it's live coming in to this block.
*/
for (int b = 0; b < cfg->num_blocks; b++) {
+ if (cfg->blocks[b]->parents.is_empty())
+ continue;
+
for (int i = 0; i < bitset_words; i++) {
BITSET_WORD new_livein = ~bd[b].livein[i];
foreach_list(block_node, &cfg->blocks[b]->parents) {