summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCaio Marcelo de Oliveira Filho <[email protected]>2018-08-14 15:06:38 -0700
committerCaio Marcelo de Oliveira Filho <[email protected]>2018-08-22 14:41:26 -0700
commit410de0e3f1690f905c268549cef1e1e60d63e8d9 (patch)
tree290a56df273462cd3125bb8c12bf8c3c2744227f
parent8364ec3fcee692d70b7d653dd433a3194d88dd82 (diff)
nir: Give end_block its own index
Since there's no particular reason for the index to be 0, choose an index that is not used by other block. This is convenient when we store "per-block" data in an array AND look for the successors data (e.g. any kind of backwards data-flow analysis). v2: Add a note about end_block's index. (Jason) Reviewed-by: Jason Ekstrand <[email protected]>
-rw-r--r--src/compiler/nir/nir.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c
index e12aa5d80f5..7ae46845191 100644
--- a/src/compiler/nir/nir.c
+++ b/src/compiler/nir/nir.c
@@ -1641,7 +1641,10 @@ nir_index_blocks(nir_function_impl *impl)
block->index = index++;
}
- impl->num_blocks = index;
+ /* The end_block isn't really part of the program, which is why its index
+ * is >= num_blocks.
+ */
+ impl->num_blocks = impl->end_block->index = index;
}
static bool