[Mesa-dev] [PATCH 4/9] glcpp: Avoid unnecessary strcmp()
Timothy Arceri
tarceri at itsqueeze.com
Mon May 22 01:02:13 UTC 2017
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
On 22/05/17 06:49, Thomas Helland wrote:
> From: Vladislav Egorov <vegorov180 at 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);
>
More information about the mesa-dev
mailing list