nir: Add a new nir_cf_list_is_empty_block() helper.
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 8 Apr 2019 18:22:20 +0000 (11:22 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 29 Apr 2019 05:36:08 +0000 (22:36 -0700)
Helper and name suggested by Eric Anholt.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/compiler/nir/nir.h

index 0ba90ca..3fc01b7 100644 (file)
@@ -2127,6 +2127,21 @@ nir_loop_last_block(nir_loop *loop)
    return nir_cf_node_as_block(exec_node_data(nir_cf_node, tail, node));
 }
 
+/**
+ * Return true if this list of cf_nodes contains a single empty block.
+ */
+static inline bool
+nir_cf_list_is_empty_block(struct exec_list *cf_list)
+{
+   if (exec_list_is_singular(cf_list)) {
+      struct exec_node *head = exec_list_get_head(cf_list);
+      nir_block *block =
+         nir_cf_node_as_block(exec_node_data(nir_cf_node, head, node));
+      return exec_list_is_empty(&block->instr_list);
+   }
+   return false;
+}
+
 typedef struct {
    uint8_t num_components;
    uint8_t bit_size;