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 anInner
type, whereOuter
is a newtype aroundInterned<Inner>
, and all the operations are done onOuter
, because all occurrences are interned. E.g.Ty
is an outer type andTyKind
is its inner type.
Enums
- We have our own error type that does not know about the
AllocId
; that information is added when converting toInterpError
.
Constants
- This is the maximum size we will hash at a time, when interning an
Allocation
and itsInitMask
. 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 respectiveHash
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.
Traits
- Functionality required for the bytes of an
Allocation
.
Functions
- Free-starting constructor for less syntactic overhead.