Repository navigation
[interp] Rework frame data storage - #38085
Merged
Merged
Conversation
monojenkins
requested review from
BrzVlad,
CoffeeFlux,
alexischr,
lambdageek and
vargaz
as code owners
June 18, 2020 12:41
This PR has 2 objectives. First it makes the interp stack allocated in a single contiguous area of memory. This will enable us to do fast pointer bumping when switching between frames and not have to worry about scattered memory fragments. Second, it makes the stack space used by a frame (locals + execution stack) a compile time constant. This could prove useful for future optimizations, because we can tell at compile time at which stack offset every instruction outputs its result. In order to achieve this, localloc memory has been kicked out of the normal stack space into its own allocator, which is almost identical to the old stack fragment allocator.
monojenkins
force-pushed
the
sync-pr-19985-from-mono
branch
from
June 18, 2020 12:57
82cef9b to
5a1a5f0
Compare
BrzVlad
approved these changes
Jun 21, 2020
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
!! This PR is a copy of mono/mono#19985, please do not edit or review it in this repo !!
Do not automatically approve this PR:
* Consider how the changes affect configurations in this repo,
* Check effects on files that are not mirrored,
* Identify test cases that may be needed in this repo.
!! Merge the PR only after the original PR is merged !!
This PR has 2 objectives. First it makes the interp stack allocated in a single contiguous area of memory. This will enable us to do fast pointer bumping when switching between frames and not have to worry about scattered memory fragments. Second, it makes the stack space used by a frame (locals + execution stack) a compile time constant. This could prove useful for future optimizations, because we can tell at compile time at which stack offset every instruction outputs its result. In order to achieve this, localloc memory has been kicked out of the normal stack space into its own allocator, which is almost identical to the old stack fragment allocator.