This repository has been archived by the owner on Nov 24, 2022. It is now read-only.
Use V8 lazy compilation/validation for TH splices #633
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In #498, we disabled the compilation of wasm files and forced V8 to use the ignition interpreter for TH splices, since the wasm code for splices is short-lived but slow to load. However, it's possible to work around the slow loading problem without falling back to the interpreter unconditionally.
This PR enables V8's lazy compilation/validation flags when loading wasm code for splices. V8 will only validate and compile a wasm function upon first usage, and most functions shouldn't be processed since they're unused. This proves to make overall build time shorter than #498, since some wasm functions may still get hot at runtime and be optimized by JIT.
Additionally, we add the
--no-validate
linker option for skippingbinaryen
validation. We don't dobinaryen
validation for wasm code of splices, since V8 will validate them anyway. This is another long forgotten place which a lot of CPU cycles can be saved.