mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
nir: Strengthen "no jumps" assertions in instruction insertion API.
Jumps must be the last instruction in a block, so inserting another instruction after a jump is illegal. Previously, we only checked this when the new instruction being inserted was a jump. This is a red herring - inserting *any* kind of instruction after a jump is illegal. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com> Acked-by: Connor Abbott <cwabbott0@gmail.com>
This commit is contained in:
parent
bcae4640c8
commit
c44d507752
1 changed files with 5 additions and 5 deletions
|
|
@ -675,9 +675,10 @@ nir_instr_insert_before(nir_instr *instr, nir_instr *before)
|
|||
void
|
||||
nir_instr_insert_after(nir_instr *instr, nir_instr *after)
|
||||
{
|
||||
assert(instr->type != nir_instr_type_jump);
|
||||
|
||||
if (after->type == nir_instr_type_jump) {
|
||||
assert(instr == nir_block_last_instr(instr->block));
|
||||
assert(instr->type != nir_instr_type_jump);
|
||||
}
|
||||
|
||||
after->block = instr->block;
|
||||
|
|
@ -705,10 +706,9 @@ nir_instr_insert_before_block(nir_block *block, nir_instr *before)
|
|||
void
|
||||
nir_instr_insert_after_block(nir_block *block, nir_instr *after)
|
||||
{
|
||||
if (after->type == nir_instr_type_jump) {
|
||||
assert(exec_list_is_empty(&block->instr_list) ||
|
||||
nir_block_last_instr(block)->type != nir_instr_type_jump);
|
||||
}
|
||||
nir_instr *last = nir_block_last_instr(block);
|
||||
assert(last == NULL || last->type != nir_instr_type_jump);
|
||||
(void) last;
|
||||
|
||||
after->block = block;
|
||||
add_defs_uses(after);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue