-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Remove table64 lowering #22452
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove table64 lowering #22452
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -35,6 +35,7 @@ class Feature(IntEnum): | |
THREADS = auto() | ||
GLOBALTHIS = auto() | ||
PROMISE_ANY = auto() | ||
MEMORY64 = auto() | ||
|
||
|
||
default_features = {Feature.SIGN_EXT, Feature.MUTABLE_GLOBALS} | ||
|
@@ -82,6 +83,12 @@ class Feature(IntEnum): | |
'safari': 140000, | ||
'node': 150000, | ||
}, | ||
Feature.MEMORY64: { | ||
'chrome': 128, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is it premature to add this? we don't know which versions will ship this unflagged. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Anyone targeting memory64 is already seeing an experimental warning, so that we are really targetting here is some arbitrary interim version of memory64. Once we remove the experimental warning we will pin the final values here I imagine? |
||
'firefox': 129, | ||
'safari': UNSUPPORTED, | ||
'node': 230000, | ||
}, | ||
} | ||
|
||
|
||
|
@@ -136,3 +143,5 @@ def apply_min_browser_versions(): | |
enable_feature(Feature.BULK_MEMORY, 'pthreads') | ||
if settings.AUDIO_WORKLET: | ||
enable_feature(Feature.GLOBALTHIS, 'AUDIO_WORKLET') | ||
if settings.MEMORY64 == 1: | ||
enable_feature(Feature.MEMORY64, 'MEMORY64') |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -393,10 +393,7 @@ def check_human_readable_list(items): | |
passes += ['--pass-arg=asyncify-onlylist@%s' % ','.join(settings.ASYNCIFY_ONLY)] | ||
|
||
if settings.MEMORY64 == 2: | ||
passes += ['--memory64-lowering'] | ||
|
||
if settings.MEMORY64: | ||
passes += ['--table64-lowering'] | ||
passes += ['--memory64-lowering', '--table64-lowering'] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. should --table64-lowering go away? I guess we can just roll the passes together into memory64-lowering now? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, eventually, but I guess that can/should be a followup. |
||
|
||
if settings.BINARYEN_IGNORE_IMPLICIT_TRAPS: | ||
passes += ['--ignore-implicit-traps'] | ||
|
@@ -1368,17 +1365,6 @@ def phase_linker_setup(options, state, newargs): | |
settings.SUPPORTS_PROMISE_ANY = feature_matrix.caniuse(feature_matrix.Feature.PROMISE_ANY) | ||
if not settings.BULK_MEMORY: | ||
settings.BULK_MEMORY = feature_matrix.caniuse(feature_matrix.Feature.BULK_MEMORY) | ||
if settings.BULK_MEMORY and settings.MEMORY64 and settings.MIN_NODE_VERSION < 180000: | ||
# Note that we do not update tools/feature_matrix.py for this, as this issue is | ||
# wasm64-specific: bulk memory for wasm32 has shipped in Node.js 12.5, but | ||
# bulk memory for wasm64 has shipped only in Node.js 18. | ||
# | ||
# Feature matrix currently cannot express such complex combinations of | ||
# features, so the only options are to either choose the least common | ||
# denominator and disable bulk memory altogether for Node.js < 18 or to | ||
# special-case this situation here. The former would be limiting for | ||
# wasm32 users, so instead we do the latter: | ||
settings.BULK_MEMORY = 0 | ||
|
||
if settings.AUDIO_WORKLET: | ||
if settings.AUDIO_WORKLET == 1: | ||
|
@@ -1977,9 +1963,11 @@ def run_embind_gen(wasm_target, js_syms, extra_settings, linker_inputs): | |
# Replace embind with the TypeScript generation version. | ||
embind_index = settings.JS_LIBRARIES.index('embind/embind.js') | ||
settings.JS_LIBRARIES[embind_index] = 'embind/embind_gen.js' | ||
outfile_js = in_temp('tsgen_a.out.js') | ||
if settings.MEMORY64: | ||
settings.MIN_NODE_VERSION = 160000 | ||
outfile_js = in_temp('tsgen.js') | ||
# The Wasm outfile may be modified by emscripten.emscript, so use a temporary file. | ||
outfile_wasm = in_temp('tsgen_a.out.wasm') | ||
outfile_wasm = in_temp('tsgen.wasm') | ||
emscripten.emscript(wasm_target, outfile_wasm, outfile_js, js_syms, finalize=False) | ||
# Build the flags needed by Node.js to properly run the output file. | ||
node_args = [] | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is it necessary to have both this and the node canary update?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This builder does not have node canary installed. So it can no longer run wasm64 tests after this change. We could install node canary, but general we only configure one version of node per bot.