From 02b933981cf59246d8f96a1ed4229cf75b91d31e Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Tue, 9 May 2023 19:59:50 +0100 Subject: [PATCH] aco/tests: improve performance of declaration parsing Unlike \S, \w only matches characters which are valid in identifiers. This seems to be much faster, especially for longer identifier names. Signed-off-by: Rhys Perry Reviewed-by: Georg Lehmann Part-of: --- src/amd/compiler/tests/glsl_scraper.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/amd/compiler/tests/glsl_scraper.py b/src/amd/compiler/tests/glsl_scraper.py index c2ca6ebb93e..291b33958f4 100644 --- a/src/amd/compiler/tests/glsl_scraper.py +++ b/src/amd/compiler/tests/glsl_scraper.py @@ -28,21 +28,21 @@ stage_to_glslang_stage = { } base_layout_qualifier_id_re = r'({0}\s*=\s*(?P<{0}>\d+))' -id_re = '(?P[^(gl_)]\S+)' -type_re = '(?P\S+)' +id_re = '(?P[^(gl_)]\w+)' +type_re = '(?P\w+)' location_re = base_layout_qualifier_id_re.format('location') component_re = base_layout_qualifier_id_re.format('component') binding_re = base_layout_qualifier_id_re.format('binding') set_re = base_layout_qualifier_id_re.format('set') -unk_re = r'\S+(=\d+)?' +unk_re = r'\w+(=\d+)?' layout_qualifier_re = r'layout\W*\((%s)+\)' % '|'.join([location_re, binding_re, set_re, unk_re, '[, ]+']) ubo_decl_re = 'uniform\W+%s(\W*{)?(?P)' % (id_re%0) ssbo_decl_re = 'buffer\W+%s(\W*{)?(?P)' % (id_re%1) image_buffer_decl_re = r'uniform\W+imageBuffer\w+%s;(?P)' % (id_re%2) -image_decl_re = r'uniform\W+image\S+\W+%s;(?P)' % (id_re%3) +image_decl_re = r'uniform\W+image\w+\W+%s;(?P)' % (id_re%3) texture_buffer_decl_re = r'uniform\W+textureBuffer\w+%s;(?P)' % (id_re%4) -combined_texture_sampler_decl_re = r'uniform\W+sampler\S+\W+%s;(?P)' % (id_re%5) -texture_decl_re = r'uniform\W+texture\S+\W+%s;(?P)' % (id_re%6) +combined_texture_sampler_decl_re = r'uniform\W+sampler\w+\W+%s;(?P)' % (id_re%5) +texture_decl_re = r'uniform\W+texture\w+\W+%s;(?P)' % (id_re%6) sampler_decl_re = r'uniform\W+sampler\w+%s;(?P)' % (id_re%7) input_re = r'in\W+%s\W+%s;(?P)' % (type_re%0, id_re%8) output_re = r'out\W+%s\W+%s;(?P)' % (type_re%1, id_re%9)