Struct cranelift_codegen::machinst::vcode::VCodeConstants [−][src]
pub struct VCodeConstants { /* fields omitted */ }
Expand description
This structure tracks the large constants used in VCode that will be emitted separately by the MachBuffer.
First, during the lowering phase, constants are inserted using [VCodeConstants.insert]; an intermediate handle, VCodeConstant, tracks what constants are used in this phase. Some deduplication is performed, when possible, as constant values are inserted.
Secondly, during the emission phase, the MachBuffer assigns MachLabels for each of the constants so that instructions can refer to the value’s memory location. The MachBuffer then writes the constant values to the buffer.
Implementations
Initialize the structure with the expected number of constants.
Insert a constant; using this method indicates that a constant value will be used and thus
will be emitted to the MachBuffer
. The current implementation can deduplicate constants
that are VCodeConstantData::Pool or VCodeConstantData::WellKnown but not
VCodeConstantData::Generated.
Retrieve a byte slice for the given VCodeConstant, if available.
Iterate over the VCodeConstant keys inserted in this structure.
Iterate over the VCodeConstant keys and the data (as a byte slice) inserted in this structure.
Trait Implementations
Returns the “default value” for a type. Read more
Auto Trait Implementations
impl RefUnwindSafe for VCodeConstants
impl !Send for VCodeConstants
impl !Sync for VCodeConstants
impl Unpin for VCodeConstants
impl UnwindSafe for VCodeConstants