nir/cursor: Add a constructor for the end of a block but before the jump

This commit is contained in:
Jason Ekstrand 2015-08-28 17:17:39 -07:00
parent c62be38286
commit 4956bbaa33
2 changed files with 12 additions and 6 deletions

View File

@ -1616,6 +1616,17 @@ nir_after_instr(nir_instr *instr)
return cursor;
}
static inline nir_cursor
nir_after_block_before_jump(nir_block *block)
{
nir_instr *last_instr = nir_block_last_instr(block);
if (last_instr && last_instr->type == nir_instr_type_jump) {
return nir_before_instr(last_instr);
} else {
return nir_after_block(block);
}
}
static inline nir_cursor
nir_before_cf_node(nir_cf_node *node)
{

View File

@ -249,12 +249,7 @@ add_parallel_copy_to_end_of_block(nir_block *block, void *void_state)
nir_parallel_copy_instr *pcopy =
nir_parallel_copy_instr_create(state->dead_ctx);
nir_instr *last_instr = nir_block_last_instr(block);
if (last_instr && last_instr->type == nir_instr_type_jump) {
nir_instr_insert_before(last_instr, &pcopy->instr);
} else {
nir_instr_insert_after_block(block, &pcopy->instr);
}
nir_instr_insert(nir_after_block_before_jump(block), &pcopy->instr);
}
return true;