From 51547bbc5a6d889d1d1824c88ac7d0a4b172df55 Mon Sep 17 00:00:00 2001 From: Caio Marcelo de Oliveira Filho Date: Sat, 26 Jan 2019 01:05:14 -0800 Subject: [PATCH] nir: keep the phi order when splitting blocks MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Daniel Schürmann --- src/compiler/nir/nir_control_flow.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/compiler/nir/nir_control_flow.c b/src/compiler/nir/nir_control_flow.c index ddba2e5..252aaf3 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; -- 2.7.4