Identify functions by unique id in BuiltInFunctionEmulator
Now that unique ids of all builtins are compile-time constants, we can
use them to look up functions in BuiltInFunctionEmulator. This is
simpler than using a custom struct with the name and parameters for
identifying functions.
This requires that we store a reference to a TFunction in those
TIntermUnary nodes that were created based on a function.
This decreases shader_translator binary size by about 6 KB on Windows.
BUG=angleproject:2267
BUG=chromium:823856
TEST=angle_unittests
Change-Id: Idd5a00c772c6f26dd36fdbbfbe161d22ab27c2fe
Reviewed-on: https://chromium-review.googlesource.com/995372
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
diff --git a/scripts/run_code_generation.py b/scripts/run_code_generation.py
index bd073f3..a3b9ee7 100755
--- a/scripts/run_code_generation.py
+++ b/scripts/run_code_generation.py
@@ -156,6 +156,15 @@
],
'script': 'src/libANGLE/renderer/vulkan/gen_vk_mandatory_format_support_table.py',
},
+ 'Emulated HLSL functions': {
+ 'inputs': [
+ 'src/compiler/translator/emulated_builtin_function_data_hlsl.json'
+ ],
+ 'outputs': [
+ 'src/compiler/translator/emulated_builtin_functions_hlsl_autogen.cpp'
+ ],
+ 'script': 'src/compiler/translator/gen_emulated_builtin_function_tables.py'
+ },
'ESSL static builtins': {
'inputs': [
'src/compiler/translator/builtin_function_declarations.txt',