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.
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
Enable "Allocate on stack" for NAOT/R2R #104411
Enable "Allocate on stack" for NAOT/R2R #104411
Changes from 14 commits
000b528
67b495d
8e0e9eb
2a62eeb
741e4fa
396677b
19936e7
b07c1a0
ea65a01
62b67d1
ebd8f9a
b5985a5
1ef6ccf
4f9ff46
ac65ff6
203593c
001b01c
ac0e6e8
ed2568c
d6a32b3
85340ae
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
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.
getHeapClassSize
hasDebug.Assert(_compilation.IsInheritanceChainLayoutFixedInCurrentVersionBubble(type));
assert. What guarantees that this assert is satisfied?The stack allocation should be disabled for non-valuetype types that are not fixed in the current version bubble. How is it achieved?
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.
@jkotas it's checked via a separate JIT-EE API: canAllocateOnStack so JIT will never call this function if
canAllocateOnStack
returned false.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 was copied from CoreCLR impl, it does a similar memset (see this)
Previously,
getClassGClayout
usedInstanceFieldSize.AsInt
which for ref types always return just pointer-size while we need the real size. Since it has never been used for ref-types before, it wasn't an issue.