summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gmail.com>2014-05-31 16:27:20 -0700
committerMatt Turner <mattst88@gmail.com>2014-06-03 17:58:34 -0700
commit773544f0e95e6732e27ce8f6c4567f221f0d2dac (patch)
treebf7d0e0d42402c399ce3f7c3d85784ee1bfc456c
parent943cc7ff173bc815553d9608ac73de8dc29729d3 (diff)
glsl: Move ir_type_unset to end of enumeration.
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>
-rw-r--r--src/glsl/ir.h8
-rw-r--r--src/glsl/ir_validate.cpp2
2 files changed, 3 insertions, 7 deletions
diff --git a/src/glsl/ir.h b/src/glsl/ir.h
index 57552e0f567..585c31c2db6 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 71defc81593..17a74ea55f5 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");
}