diff options
author | Caio Marcelo de Oliveira Filho <[email protected]> | 2019-01-26 01:05:14 -0800 |
---|---|---|
committer | Caio Marcelo de Oliveira Filho <[email protected]> | 2019-02-04 20:41:13 -0800 |
commit | 51547bbc5a6d889d1d1824c88ac7d0a4b172df55 (patch) | |
tree | 0610aa58ab970b6587721b832b7e75828dc44193 /src/compiler | |
parent | 38f542783faa360020b77fdd76b97f207a9e0068 (diff) |
nir: keep the phi order when splitting blocks
All things being equal is better to keep the original order. Since
the new block is empty, push the phis in order to tail.
Reviewed-by: Jason Ekstrand <[email protected]>
Reviewed-by: Daniel Schürmann <[email protected]>
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/nir/nir_control_flow.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/compiler/nir/nir_control_flow.c b/src/compiler/nir/nir_control_flow.c index ddba2e55b45..252aaf335ad 100644 --- a/src/compiler/nir/nir_control_flow.c +++ b/src/compiler/nir/nir_control_flow.c @@ -195,8 +195,7 @@ split_block_beginning(nir_block *block) } /* Any phi nodes must stay part of the new block, or else their - * sourcse will be messed up. This will reverse the order of the phis, but - * order shouldn't matter. + * sources will be messed up. */ nir_foreach_instr_safe(instr, block) { if (instr->type != nir_instr_type_phi) @@ -204,7 +203,7 @@ split_block_beginning(nir_block *block) exec_node_remove(&instr->node); instr->block = new_block; - exec_list_push_head(&new_block->instr_list, &instr->node); + exec_list_push_tail(&new_block->instr_list, &instr->node); } return new_block; |