glsl: tidy up get_num_operands()

Also add a comment that this should only be used by the ir_reader
interface for testing purposes.

v2:
 - fix grammar in comment
 - use unreachable rather than assert

Reviewed-by: Thomas Helland <thomashelland90@gmail.com>
This commit is contained in:
Timothy Arceri 2017-08-09 13:34:03 +10:00
parent e2e2c5abd2
commit 43cbcbfee9
2 changed files with 9 additions and 14 deletions

View file

@ -556,7 +556,11 @@ ir_expression::ir_expression(int op, ir_rvalue *op0, ir_rvalue *op1,
} }
} }
unsigned int /**
* This is only here for ir_reader to used for testing purposes. Please use
* the precomputed num_operands field if you need the number of operands.
*/
unsigned
ir_expression::get_num_operands(ir_expression_operation op) ir_expression::get_num_operands(ir_expression_operation op)
{ {
assert(op <= ir_last_opcode); assert(op <= ir_last_opcode);
@ -573,8 +577,7 @@ ir_expression::get_num_operands(ir_expression_operation op)
if (op <= ir_last_quadop) if (op <= ir_last_quadop)
return 4; return 4;
assert(false); unreachable("Could not calculate number of operands");
return 0;
} }
#include "ir_expression_operation_strings.h" #include "ir_expression_operation_strings.h"

View file

@ -1538,18 +1538,10 @@ public:
virtual ir_constant *constant_expression_value(struct hash_table *variable_context = NULL); virtual ir_constant *constant_expression_value(struct hash_table *variable_context = NULL);
/** /**
* Determine the number of operands used by an expression * This is only here for ir_reader to used for testing purposes please use
* the precomputed num_operands field if you need the number of operands.
*/ */
static unsigned int get_num_operands(ir_expression_operation); static unsigned get_num_operands(ir_expression_operation);
/**
* Determine the number of operands used by an expression
*/
unsigned int get_num_operands() const
{
return (this->operation == ir_quadop_vector)
? this->type->vector_elements : get_num_operands(operation);
}
/** /**
* Return whether the expression operates on vectors horizontally. * Return whether the expression operates on vectors horizontally.