glsl: Move ir_type_unset to end of enumeration.
authorMatt Turner <mattst88@gmail.com>
Sat, 31 May 2014 23:27:20 +0000 (16:27 -0700)
committerMatt Turner <mattst88@gmail.com>
Wed, 4 Jun 2014 00:58:34 +0000 (17:58 -0700)
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.

Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
src/glsl/ir.h
src/glsl/ir_validate.cpp

index 57552e0f5678a0dbe97e9de137de981f9e48b513..585c31c2db6f6f2c17a2143913660ac4d4af09dc 100644 (file)
  * 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
 };
 
 
index 71defc8159306cdea63cee25e7ea8f33c0c1089a..17a74ea55f5a41008b0a73188f7ae406591c14e2 100644 (file)
@@ -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");
    }