diff options
author | Jason Ekstrand <[email protected]> | 2014-12-17 16:53:04 -0800 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2015-01-15 07:20:23 -0800 |
commit | 40ca129ed5aea647d103c99db926d3b2aabe4021 (patch) | |
tree | 4668ac2265f1f671fc99bee8bcabdb476b27ea8a /src/glsl/nir/nir.h | |
parent | 1b720c6ed868b3f231f63568fc360fe7c4024c02 (diff) |
nir: Rename parallel_copy_copy to parallel_copy_entry and add a foreach macro
parallel_copy_copy was a silly name. Also, things were getting long and
annoying, so I added a foreach macro. For historical reasons, several of
the original iterations over parallel copy entries in from_ssa used the
_safe variants of the loop. However, all of these no longer ever remove an
entry so it's ok to make them all use the normal iterator.
Reviewed-by: Connor Abbott <[email protected]>
Diffstat (limited to 'src/glsl/nir/nir.h')
-rw-r--r-- | src/glsl/nir/nir.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/glsl/nir/nir.h b/src/glsl/nir/nir.h index 7e74128462a..c6134f939d6 100644 --- a/src/glsl/nir/nir.h +++ b/src/glsl/nir/nir.h @@ -962,11 +962,20 @@ typedef struct { struct exec_node node; nir_src src; nir_dest dest; -} nir_parallel_copy_copy; +} nir_parallel_copy_entry; + +#define nir_foreach_parallel_copy_entry(pcopy, entry) \ + foreach_list_typed(nir_parallel_copy_entry, entry, node, &(pcopy)->entries) typedef struct { nir_instr instr; - struct exec_list copies; + + /* A list of nir_parallel_copy_entry's. The sources of all of the + * entries are copied to the corresponding destinations "in parallel". + * In other words, if we have two entries: a -> b and b -> a, the values + * get swapped. + */ + struct exec_list entries; } nir_parallel_copy_instr; NIR_DEFINE_CAST(nir_instr_as_alu, nir_instr, nir_alu_instr, instr) |