diff options
author | Jason Ekstrand <jason.ekstrand@intel.com> | 2015-12-23 18:10:08 -0800 |
---|---|---|
committer | Jason Ekstrand <jason.ekstrand@intel.com> | 2015-12-23 23:46:04 -0800 |
commit | e1b1d58becffcc647acd1f242ceccdb9042cccf1 (patch) | |
tree | 81b9536466d4c478616d908b2bd919d7a9736ead /src | |
parent | eae352e75c4effcfda306df2c589ade06d1d3fdb (diff) | |
download | external_mesa3d-e1b1d58becffcc647acd1f242ceccdb9042cccf1.zip external_mesa3d-e1b1d58becffcc647acd1f242ceccdb9042cccf1.tar.gz external_mesa3d-e1b1d58becffcc647acd1f242ceccdb9042cccf1.tar.bz2 |
nir/cf: Make extracting or re-inserting nothing a no-op
Diffstat (limited to 'src')
-rw-r--r-- | src/glsl/nir/nir_control_flow.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/glsl/nir/nir_control_flow.c b/src/glsl/nir/nir_control_flow.c index ecd9cbd..33b06d0 100644 --- a/src/glsl/nir/nir_control_flow.c +++ b/src/glsl/nir/nir_control_flow.c @@ -749,6 +749,12 @@ nir_cf_extract(nir_cf_list *extracted, nir_cursor begin, nir_cursor end) { nir_block *block_begin, *block_end, *block_before, *block_after; + if (nir_cursors_equal(begin, end)) { + exec_list_make_empty(&extracted->list); + extracted->impl = NULL; /* we shouldn't need this */ + return; + } + /* In the case where begin points to an instruction in some basic block and * end points to the end of the same basic block, we rely on the fact that * splitting on an instruction moves earlier instructions into a new basic @@ -788,6 +794,9 @@ nir_cf_reinsert(nir_cf_list *cf_list, nir_cursor cursor) { nir_block *before, *after; + if (exec_list_is_empty(&cf_list->list)) + return; + split_block_cursor(cursor, &before, &after); foreach_list_typed_safe(nir_cf_node, node, node, &cf_list->list) { |