Expand description
The virtual memory representation of the MIR interpreter.
Re-exports§
- pub use init_mask::InitChunk;
- pub use init_mask::InitChunkIter;
Modules§
- init_mask 🔒
- provenance_map 🔒
- 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§
- AllocFlags 🔒
- Helper struct that packs an alignment, mutability, and “all bytes are zero” flag together.
- AllocRange 
- The information that makes up a memory access: offset and size.
- Allocation
- This type represents an Allocation in the Miri/CTFE core engine.
- ConstAllocation 
- Interned types generally have an Outertype and anInnertype, whereOuteris a newtype aroundInterned<Inner>, and all the operations are done onOuter, because all occurrences are interned. E.g.Tyis an outer type andTyKindis its inner type.
Enums§
- AllocError 
- We have our own error type that does not know about the AllocId; that information is added when converting toInterpError.
- AllocInit 
- Whether a new allocation should be initialized with zero-bytes.
Constants§
- MAX_BYTES_ 🔒TO_ HASH 
- This is the maximum size we will hash at a time, when interning an Allocationand 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 respectiveHashimpl for more details.
- MAX_HASHED_ 🔒BUFFER_ LEN 
- 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_HASHbytes.
Traits§
- AllocBytes 
- Functionality required for the bytes of an Allocation.
Functions§
- all_zero 🔒
- Efficiently detect whether a slice of u8is all zero.
- alloc_range 
- Free-starting constructor for less syntactic overhead.