v8,tools: expose experimental wasm revectorize feature

PR-URL: https://github.com/nodejs/node/pull/54896
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
pull/56178/head
Yolanda-Chen 2024-12-08 07:24:47 +08:00 committed by GitHub
parent 6e42433054
commit b5056be854
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 20 additions and 1 deletions

View File

@ -1685,6 +1685,9 @@ def configure_v8(o, configs):
raise Exception(
'Only one of the --v8-enable-object-print or --v8-disable-object-print options '
'can be specified at a time.')
if sys.platform != 'darwin':
if o['variables']['v8_enable_webassembly'] and o['variables']['target_arch'] == 'x64':
o['variables']['v8_enable_wasm_simd256_revec'] = 1
def configure_openssl(o):
variables = o['variables']

View File

@ -328,7 +328,10 @@
# Enable advanced BigInt algorithms, costing about 10-30 KiB binary size
# depending on platform.
'v8_advanced_bigint_algorithms%': 1
'v8_advanced_bigint_algorithms%': 1,
# Enable 256-bit long vector re-vectorization pass in WASM compilation pipeline.
'v8_enable_wasm_simd256_revec%' : 0
},
'target_defaults': {
@ -541,6 +544,9 @@
['v8_advanced_bigint_algorithms==1', {
'defines': ['V8_ADVANCED_BIGINT_ALGORITHMS',],
}],
['v8_enable_wasm_simd256_revec==1', {
'defines': ['V8_ENABLE_WASM_SIMD256_REVEC',],
}],
], # conditions
'defines': [
'V8_GYP_BUILD',

View File

@ -646,6 +646,11 @@
'<!@pymod_do_main(GN-scraper "<(V8_ROOT)/BUILD.gn" "v8_header_set.\\"v8_internal_headers\\".*?v8_enable_webassembly.*?sources \\+= ")',
],
}],
['v8_enable_wasm_simd256_revec==1', {
'sources': [
'<!@pymod_do_main(GN-scraper "<(V8_ROOT)/BUILD.gn" "v8_header_set.\\"v8_internal_headers\\".*?v8_enable_wasm_simd256_revec.*?sources \\+= ")',
],
}],
['v8_enable_i18n_support==1', {
'sources': [
'<!@pymod_do_main(GN-scraper "<(V8_ROOT)/BUILD.gn" "v8_header_set.\\"v8_internal_headers\\".*?v8_enable_i18n_support.*?sources \\+= ")',
@ -882,6 +887,11 @@
'<!@pymod_do_main(GN-scraper "<(V8_ROOT)/BUILD.gn" "v8_compiler_sources =.*?v8_enable_webassembly.*?v8_compiler_sources \\+= ")',
],
}],
['v8_enable_wasm_simd256_revec==1', {
'sources': [
'<!@pymod_do_main(GN-scraper "<(V8_ROOT)/BUILD.gn" "v8_compiler_sources =.*?v8_enable_wasm_simd256_revec.*?v8_compiler_sources \\+= ")',
],
}],
],
}
}, # v8_compiler_sources