Module rustc_middle::mir::interpret::allocation

source ·
Expand description

The virtual memory representation of the MIR interpreter.



  • init_mask 🔒
  • 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.


  • 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.


  • We have our own error type that does not know about the AllocId; that information is added when converting to InterpError.


  • 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.


  • Functionality required for the bytes of an Allocation.


  • Free-starting constructor for less syntactic overhead.

Type Aliases§