Repository navigation
Precompile Redline trampolines and drop the bridge from the runners - #228
Merged
andreaTP merged 2 commits intoOct 8, 2026
Merged
Conversation
Both runners created the Cranelift bridge in every machine to compile their ABI trampolines. The build-time compiler now emits them with the function bodies, and the runners only load and link: - function bodies call memory.grow, memmove/memset and the table stub directly with the platform ABI, so their trampolines are gone - entry trampolines take the function pointer as a parameter and are compiled once per function type - import trampolines leave an 8-byte slot for the host stub address, which the runner fills before making the code executable; a shared table can call them with another instance's ctx, so they cannot read it from the ctx NativeCode, written as .native format version 2, replaces byte[][], withCompilerFunction is removed, and an enforcer rule keeps the bridge and the compiler out of both runners' dependencies. Fixes bytecodealliance#202
Contributor
Author
|
@headius this should fix some of your observations, especially regarding upfront resources consumption: on quickjs:
|
Contributor
Contributor
Author
|
Yes 210 is included, but let me close also 203 and do a final review before trying things out, we'll get there! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Both runners created the Cranelift bridge in every machine to compile their ABI trampolines. The build-time compiler now emits them with the function bodies, and the runners only load and link:
NativeCode, written as .native format version 2, replaces byte[][], withCompilerFunction is removed, and an enforcer rule keeps the bridge and the compiler out of both runners' dependencies.
Fixes #202