[Mesa-dev] [PATCH 4/5] glsl: Move ir_type_unset to end of enumeration.

Matt Turner mattst88 at gmail.com
Sun Jun 1 12:58:43 PDT 2014


Now that the constructors set a type, ir_type_unset is not very useful.
Move it to the end of the enum (specifically out of position 0) so that
enums checks for dereferences and rvalues can save an instruction.
---
Could also get rid of ir_type_unset completely by replacing its uses
with ir_type_max or something.

 src/glsl/ir.h            | 8 ++------
 src/glsl/ir_validate.cpp | 2 +-
 2 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/src/glsl/ir.h b/src/glsl/ir.h
index 57552e0..585c31c 100644
--- a/src/glsl/ir.h
+++ b/src/glsl/ir.h
@@ -59,11 +59,6 @@
  * types, this allows writing very straightforward, readable code.
  */
 enum ir_node_type {
-   /**
-    * Zero is unused so that the IR validator can detect cases where
-    * \c ir_instruction::ir_type has not been initialized.
-    */
-   ir_type_unset,
    ir_type_dereference_array,
    ir_type_dereference_record,
    ir_type_dereference_variable,
@@ -83,7 +78,8 @@ enum ir_node_type {
    ir_type_discard,
    ir_type_emit_vertex,
    ir_type_end_primitive,
-   ir_type_max /**< maximum ir_type enum number, for validation */
+   ir_type_max, /**< maximum ir_type enum number, for validation */
+   ir_type_unset = ir_type_max
 };
 
 
diff --git a/src/glsl/ir_validate.cpp b/src/glsl/ir_validate.cpp
index 71defc8..17a74ea 100644
--- a/src/glsl/ir_validate.cpp
+++ b/src/glsl/ir_validate.cpp
@@ -795,7 +795,7 @@ check_node_type(ir_instruction *ir, void *data)
 {
    (void) data;
 
-   if (ir->ir_type <= ir_type_unset || ir->ir_type >= ir_type_max) {
+   if (ir->ir_type >= ir_type_max) {
       printf("Instruction node with unset type\n");
       ir->print(); printf("\n");
    }
-- 
1.8.3.2



More information about the mesa-dev mailing list