From: Ian Romanick <ian.d.roman...@intel.com>

Every valid intrinsic function name starts with "__intrinsic_".  Compare
and store the string once instead of 41 times.

   text    data     bss     dec     hex filename
7529283  273096   28584 7830963  777db3 /tmp/i965_dri-64bit-before.so
7529067  273096   28584 7830747  777cdb /tmp/i965_dri-64bit-after.so

Signed-off-by: Ian Romanick <ian.d.roman...@intel.com>
Reviewed-by: Iago Toral Quiroga <ito...@igalia.com>
---
 src/compiler/glsl/nir_intrinsic_map.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/compiler/glsl/nir_intrinsic_map.py 
b/src/compiler/glsl/nir_intrinsic_map.py
index c14438b..4d999c1 100644
--- a/src/compiler/glsl/nir_intrinsic_map.py
+++ b/src/compiler/glsl/nir_intrinsic_map.py
@@ -73,8 +73,13 @@ namespace _glsl_to_nir {
 nir_intrinsic_op
 get_intrinsic_opcode(const char *name, const ir_dereference *return_deref)
 {
+   if (strncmp(name, "__intrinsic_", 12) == 0)
+      name += 12;
+   else
+      unreachable("Intrinsic name does not begin with '__intrinsic_'");
+
     % for (name, ops) in intrinsics:
-   if (strcmp(name, "${name}") == 0) {
+   if (strcmp(name, "${name[12:]}") == 0) {
         % if ops[1] is None:
       return ${ops[0]};
         % else:
-- 
2.5.5

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to