Mesa (main): nir/validate: don't add instrs not present in shader to shader_gc_list

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Feb 21 12:38:41 UTC 2022


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

Author: Rhys Perry <pendingchaos02 at gmail.com>
Date:   Wed Nov 24 14:17:40 2021 +0000

nir/validate: don't add instrs not present in shader to shader_gc_list

This makes the set smaller and GC list validation faster.

Signed-off-by: Rhys Perry <pendingchaos02 at gmail.com>
Reviewed-by: Emma Anholt <emma at anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13547>

---

 src/compiler/nir/nir_validate.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/compiler/nir/nir_validate.c b/src/compiler/nir/nir_validate.c
index c00dec9f189..0bc1b5adf3b 100644
--- a/src/compiler/nir/nir_validate.c
+++ b/src/compiler/nir/nir_validate.c
@@ -1720,8 +1720,10 @@ nir_validate_shader(nir_shader *shader, const char *when)
    init_validate_state(&state);
 
    if (state.shader_gc_list) {
-      list_for_each_entry(nir_instr, instr, &shader->gc_list, gc_node)
-         _mesa_set_add(state.shader_gc_list, instr);
+      list_for_each_entry(nir_instr, instr, &shader->gc_list, gc_node) {
+         if (instr->node.prev || instr->node.next)
+            _mesa_set_add(state.shader_gc_list, instr);
+      }
    }
 
    state.shader = shader;



More information about the mesa-commit mailing list