diff options
author | Caio Marcelo de Oliveira Filho <[email protected]> | 2018-08-14 15:06:38 -0700 |
---|---|---|
committer | Caio Marcelo de Oliveira Filho <[email protected]> | 2018-08-22 14:41:26 -0700 |
commit | 410de0e3f1690f905c268549cef1e1e60d63e8d9 (patch) | |
tree | 290a56df273462cd3125bb8c12bf8c3c2744227f /src/compiler/nir/nir.c | |
parent | 8364ec3fcee692d70b7d653dd433a3194d88dd82 (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]>
Diffstat (limited to 'src/compiler/nir/nir.c')
-rw-r--r-- | src/compiler/nir/nir.c | 5 |
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 |