[Mesa-dev] [PATCH 17/21] nir/cf: add split_block_before_instr()
Connor Abbott
cwabbott0 at gmail.com
Tue Jul 21 19:54:31 PDT 2015
Signed-off-by: Connor Abbott <connor.w.abbott at intel.com>
---
src/glsl/nir/nir_control_flow.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/src/glsl/nir/nir_control_flow.c b/src/glsl/nir/nir_control_flow.c
index 9ae113f..fcdabc7 100644
--- a/src/glsl/nir/nir_control_flow.c
+++ b/src/glsl/nir/nir_control_flow.c
@@ -376,6 +376,24 @@ split_block_end(nir_block *block)
return new_block;
}
+static nir_block *
+split_block_before_instr(nir_instr *instr)
+{
+ assert(instr->type != nir_instr_type_phi);
+ nir_block *new_block = split_block_beginning(instr->block);
+
+ nir_foreach_instr_safe(instr->block, cur_instr) {
+ if (cur_instr == instr)
+ break;
+
+ exec_node_remove(&cur_instr->node);
+ cur_instr->block = new_block;
+ exec_list_push_tail(&new_block->instr_list, &cur_instr->node);
+ }
+
+ return new_block;
+}
+
/**
* Inserts a non-basic block between two basic blocks and links them together.
*/
--
2.4.3
More information about the mesa-dev
mailing list