Module rustc_middle::mir::interpret::allocation
source · Expand description
The virtual memory representation of the MIR interpreter.
Re-exports
pub use init_mask::InitChunk;
pub use init_mask::InitChunkIter;
Modules
Store the provenance for each byte in the range, with a more efficient
representation for the common case where PTR_SIZE consecutive bytes have the same provenance.
Structs
The information that makes up a memory access: offset and size.
This type represents an Allocation in the Miri/CTFE core engine.
Interned types generally have an
Outer
type and an Inner
type, where
Outer
is a newtype around Interned<Inner>
, and all the operations are
done on Outer
, because all occurrences are interned. E.g. Ty
is an
outer type and TyKind
is its inner type.Enums
We have our own error type that does not know about the
AllocId
; that information
is added when converting to InterpError
.Constants
This is the maximum size we will hash at a time, when interning an
Allocation
and its
InitMask
. Note, we hash that amount of bytes twice: at the start, and at the end of a buffer.
Used when these two structures are large: we only partially hash the larger fields in that
situation. See the comment at the top of their respective Hash
impl for more details.This is the maximum size (in bytes) for which a buffer will be fully hashed, when interning.
Otherwise, it will be partially hashed in 2 slices, requiring at least 2
MAX_BYTES_TO_HASH
bytes.Functions
Free-starting constructor for less syntactic overhead.