Mesa (master): nir/lower_goto_if: Rework handling of skip targets

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Aug 14 20:55:37 UTC 2020


Module: Mesa
Branch: master
Commit: d1617985896274dce37b943307d456a042fb2a6d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d1617985896274dce37b943307d456a042fb2a6d

Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Wed Aug 12 15:26:49 2020 -0500

nir/lower_goto_if: Rework handling of skip targets

Reviewed-by: Karol Herbst <kherbst at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2401>

---

 src/compiler/nir/nir_lower_goto_ifs.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/src/compiler/nir/nir_lower_goto_ifs.c b/src/compiler/nir/nir_lower_goto_ifs.c
index 28ae1b95e14..b944b4c3164 100644
--- a/src/compiler/nir/nir_lower_goto_ifs.c
+++ b/src/compiler/nir/nir_lower_goto_ifs.c
@@ -590,22 +590,20 @@ organize_levels(struct list_head *levels, struct set *remaining,
                             routing->brk.reachable, mem_ctx);
       }
       assert(curr_level->blocks->entries);
-      curr_level->skip_start = 0;
 
       struct strct_lvl *prev_level = NULL;
       if (!list_is_empty(levels))
          prev_level = list_last_entry(levels, struct strct_lvl, link);
 
-      if (skip_targets->entries) {
-         set_foreach(skip_targets, entry) {
-            if (_mesa_set_search_pre_hashed(curr_level->blocks,
-                                            entry->hash, entry->key)) {
-               _mesa_set_remove(skip_targets, entry);
-               prev_level->skip_end = 1;
-               curr_level->skip_start = !!skip_targets->entries;
-            }
+      set_foreach(skip_targets, entry) {
+         if (_mesa_set_search_pre_hashed(curr_level->blocks,
+                                         entry->hash, entry->key)) {
+            _mesa_set_remove(skip_targets, entry);
+            prev_level->skip_end = 1;
          }
       }
+      curr_level->skip_start = skip_targets->entries != 0;
+
       struct set *prev_frontier = NULL;
       if (!prev_level) {
          prev_frontier = reach;



More information about the mesa-commit mailing list