freedreno/ir3: Update physical_successors after retargetting jumps

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12742>
This commit is contained in:
Rob Clark 2021-09-07 14:55:04 -07:00 committed by Marge Bot
parent 30b2cc423c
commit f472949b24

View file

@ -511,6 +511,16 @@ retarget_jump(struct ir3_instruction *instr, struct ir3_block *new_target)
cur_block->successors[1] = new_target;
}
/* also update physical_successors.. we don't really need them at
* this stage, but it keeps ir3_validate happy:
*/
if (cur_block->physical_successors[0] == old_target) {
cur_block->physical_successors[0] = new_target;
} else {
debug_assert(cur_block->physical_successors[1] == old_target);
cur_block->physical_successors[1] = new_target;
}
/* update new target's predecessors: */
ir3_block_add_predecessor(new_target, cur_block);