summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/ir.cpp
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2015-04-15 17:55:32 -0700
committerIan Romanick <ian.d.romanick@intel.com>2016-08-30 16:28:00 -0700
commitc6e8fd82ea118c66e69e4ad7967faec0715741aa (patch)
tree548a68d7abea31fc0f46ed2b093e249236d77a1b /src/compiler/glsl/ir.cpp
parentfb44f69779ed7497768421ccd60e73cc707ffe69 (diff)
downloadexternal_mesa3d-c6e8fd82ea118c66e69e4ad7967faec0715741aa.zip
external_mesa3d-c6e8fd82ea118c66e69e4ad7967faec0715741aa.tar.gz
external_mesa3d-c6e8fd82ea118c66e69e4ad7967faec0715741aa.tar.bz2
glsl: Just access the ir_expression_operation strings table directly
The operator_string functions gave us some protection against a malformed table. Now that the table is generated from the same data that generates the enum, this is not a concern. Just cut out the middle man. text data bss dec hex filename 7531892 273992 28584 7834468 778b64 i965_dri-64bit-before.so 7531828 273992 28584 7834404 778b24 i965_dri-64bit-after.so Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
Diffstat (limited to 'src/compiler/glsl/ir.cpp')
-rw-r--r--src/compiler/glsl/ir.cpp17
1 files changed, 2 insertions, 15 deletions
diff --git a/src/compiler/glsl/ir.cpp b/src/compiler/glsl/ir.cpp
index f6118a1..cb195b2 100644
--- a/src/compiler/glsl/ir.cpp
+++ b/src/compiler/glsl/ir.cpp
@@ -500,18 +500,6 @@ ir_expression::get_num_operands(ir_expression_operation op)
#include "ir_expression_operation_strings.h"
-const char *ir_expression::operator_string(ir_expression_operation op)
-{
- assert((unsigned int) op < ARRAY_SIZE(operator_strs));
- assert(ARRAY_SIZE(operator_strs) == (ir_quadop_vector + 1));
- return operator_strs[op];
-}
-
-const char *ir_expression::operator_string()
-{
- return operator_string(this->operation);
-}
-
const char*
depth_layout_string(ir_depth_layout layout)
{
@@ -531,9 +519,8 @@ depth_layout_string(ir_depth_layout layout)
ir_expression_operation
ir_expression::get_operator(const char *str)
{
- const int operator_count = sizeof(operator_strs) / sizeof(operator_strs[0]);
- for (int op = 0; op < operator_count; op++) {
- if (strcmp(str, operator_strs[op]) == 0)
+ for (int op = 0; op <= int(ir_last_opcode); op++) {
+ if (strcmp(str, ir_expression_operation_strings[op]) == 0)
return (ir_expression_operation) op;
}
return (ir_expression_operation) -1;