nir/lower_goto_if: Rework some set union logic
I find the ternary a bit hard to read. The optimization is fairly obvious but the way it's coded makes things more dense than they probably need to be. Reviewed-by: Karol Herbst <kherbst@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2401>
This commit is contained in:

committed by
Marge Bot

parent
d161798589
commit
0fad20f21b
@@ -612,9 +612,16 @@ organize_levels(struct list_head *levels, struct set *remaining,
|
|||||||
} else {
|
} else {
|
||||||
set_foreach(curr_level->blocks, blocks_entry) {
|
set_foreach(curr_level->blocks, blocks_entry) {
|
||||||
nir_block *level_block = (nir_block *) blocks_entry->key;
|
nir_block *level_block = (nir_block *) blocks_entry->key;
|
||||||
if (!prev_frontier) {
|
if (curr_level->blocks->entries == 1) {
|
||||||
prev_frontier = curr_level->blocks->entries == 1 ?
|
/* If we only have one block, there's no union operation and we
|
||||||
level_block->dom_frontier :
|
* can just use the one from the one block.
|
||||||
|
*/
|
||||||
|
prev_frontier = level_block->dom_frontier;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (prev_frontier == NULL) {
|
||||||
|
prev_frontier =
|
||||||
_mesa_set_clone(level_block->dom_frontier, prev_level);
|
_mesa_set_clone(level_block->dom_frontier, prev_level);
|
||||||
} else {
|
} else {
|
||||||
set_foreach(level_block->dom_frontier, entry)
|
set_foreach(level_block->dom_frontier, entry)
|
||||||
|
Reference in New Issue
Block a user