summaryrefslogtreecommitdiffstats
path: root/src/compiler
diff options
context:
space:
mode:
authorCaio Marcelo de Oliveira Filho <[email protected]>2019-01-26 01:05:14 -0800
committerCaio Marcelo de Oliveira Filho <[email protected]>2019-02-04 20:41:13 -0800
commit51547bbc5a6d889d1d1824c88ac7d0a4b172df55 (patch)
tree0610aa58ab970b6587721b832b7e75828dc44193 /src/compiler
parent38f542783faa360020b77fdd76b97f207a9e0068 (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.c5
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;