Reviewed-by: Timothy Arceri <tarc...@itsqueeze.com>

On 22/05/17 06:49, Thomas Helland wrote:
From: Vladislav Egorov <vegorov...@gmail.com>

strcmp() is slow. Initiate comparison with "__LINE__" or "__FILE__"
only if the identifier starts with '_', which is rare.

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
---
  src/compiler/glsl/glcpp/glcpp-parse.y | 14 +++++++++-----
  1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/compiler/glsl/glcpp/glcpp-parse.y 
b/src/compiler/glsl/glcpp/glcpp-parse.y
index 620ade6418..e84b6fb055 100644
--- a/src/compiler/glsl/glcpp/glcpp-parse.y
+++ b/src/compiler/glsl/glcpp/glcpp-parse.y
@@ -1830,11 +1830,15 @@ _glcpp_parser_expand_node(glcpp_parser_t *parser, 
token_node_t *node,
/* Special handling for __LINE__ and __FILE__, (not through
      * the hash table). */
-   if (strcmp(identifier, "__LINE__") == 0)
-      return _token_list_create_with_one_integer(parser, 
node->token->location.first_line);
-
-   if (strcmp(identifier, "__FILE__") == 0)
-      return _token_list_create_with_one_integer(parser, 
node->token->location.source);
+   if (*identifier == '_') {
+      if (strcmp(identifier, "__LINE__") == 0)
+         return _token_list_create_with_one_integer(parser,
+                                                    
node->token->location.first_line);
+
+      if (strcmp(identifier, "__FILE__") == 0)
+         return _token_list_create_with_one_integer(parser,
+                                                    
node->token->location.source);
+   }
/* Look up this identifier in the hash table. */
     entry = _mesa_hash_table_search(parser->defines, identifier);

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

Reply via email to