[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