Embedded JIT mode for Pico #1909
Draft
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.
Continuation of:
binary:copy/1,2stubs to binary module #1907Add the ability to perform just in time compilation directly on Raspberry Pi Pico. Erlang bytecode is compiled to armv6m on the first run and directly executed on subsequent runs. In this PR, the native code compilation does not take advantage of being done on the device, it still generates position independent code.
If Erlang modules include
Typechunk, the same optimizations that happen on the desktop with precompilation could be done on the Pico, however current release (0.7.5) ofpackbeamprunes theTypechunk.Just in time compilation on the Pico is achieved by:
jit_stream_flashfor RP2 platform and adding a cache native code mechanism that rely on the avm end section on RP2 to find out where to flash jit code (after the last end) and detect if avm were updated.These changes are made under both the "Apache 2.0" and the "GNU Lesser General
Public License 2.1 or later" license terms (dual license).
SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1-or-later