nir/validate: don't add instrs not present in shader to shader_gc_list
authorRhys Perry <pendingchaos02@gmail.com>
Wed, 24 Nov 2021 14:17:40 +0000 (14:17 +0000)
committerRhys Perry <pendingchaos02@gmail.com>
Mon, 21 Feb 2022 11:57:22 +0000 (11:57 +0000)
This makes the set smaller and GC list validation faster.

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

src/compiler/nir/nir_validate.c

index c00dec9..0bc1b5a 100644 (file)
@@ -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;