pan/bi: Measure backwards branches as well

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260>
This commit is contained in:
Alyssa Rosenzweig 2020-05-28 15:01:14 -04:00 committed by Marge Bot
parent a42731536d
commit db2c10d032

View file

@ -130,7 +130,32 @@ bi_block_offset(bi_context *ctx, bi_clause *start, bi_block *target)
}
}
} else {
unreachable("Backwards branching is to-do");
/* We start at the beginning of the clause but have to jump
* through the clauses before us in the block */
bi_foreach_clause_in_block_from_rev(start->block, clause, start) {
if (clause == start)
continue;
ret -= bi_clause_quadwords(clause);
}
/* And jump back every clause of preceding blocks up through
* and including the target to get to the beginning of the
* target */
bi_foreach_block_from_rev(ctx, start->block, _blk) {
bi_block *blk = (bi_block *) _blk;
if (blk == start->block)
continue;
bi_foreach_clause_in_block(blk, clause) {
ret -= bi_clause_quadwords(clause);
}
/* End just after the target */
if (blk == target)
break;
}
}
return ret;