core/ptr: Add simulate_realloc()#130886
Draft
mrkajetanp wants to merge 1 commit intorust-lang:mainfrom
Draft
Conversation
This comment has been minimized.
This comment has been minimized.
Contributor
Author
|
This is just a reference PR for the RFC and the implementation is aarch64-specific hence the test failures. The question I hope the RFC process answers is whether the best approach would be to have a generic method like this with cfgs to choose between variants for different architectures hidden inside, or whether it should just be completely architecture-specific and put away in |
Member
|
I'm afraid I don't have the capacity to shepherd this. Anyway it's blocked on the RFC. r? libs |
Add a `simulate_realloc()` helper function to core/ptr to simulate reallocating memory from a pointer to some arbitrary address. The function is intended to be used with architecture features such as AArch64 Top-Byte Ignore where two different 64-bit addresses can point to the same chunk of memory due to some bits being ignored. To make the function accurately simulate an allocator, its return value needs to be annotated with `noalias` in LLVM the same way as it is done by actual allocator functions. To make that possible, add a new rustc built-in attribute `rustc_simulate_allocator` that does the annotating.
c4c2b4e to
3315105
Compare
Collaborator
|
☔ The latest upstream changes (presumably #135370) made this pull request unmergeable. Please resolve the merge conflicts. |
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.
Add a
simulate_realloc()helper function to core/ptr to simulatereallocating memory from a pointer to some arbitrary address.
The function is intended to be used with architecture features such as
AArch64 Top-Byte Ignore where two different 64-bit addresses can point
to the same chunk of memory due to some bits being ignored.
To make the function accurately simulate an allocator, its return value
needs to be annotated with
noaliasin LLVM the same way as it is doneby actual allocator functions. To make that possible, add a new rustc
built-in attribute
rustc_simulate_allocatorthat does the annotating.Accompanying implementation for RFC 3700, currently posted on Rust Internals.
r? @RalfJung