Struct cranelift_codegen::machinst::vcode::VCodeConstants
source · [−]pub struct VCodeConstants { /* private fields */ }
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
sourceimpl VCodeConstants
impl VCodeConstants
sourcepub fn with_capacity(expected_num_constants: usize) -> Self
pub fn with_capacity(expected_num_constants: usize) -> Self
Initialize the structure with the expected number of constants.
sourcepub fn insert(&mut self, data: VCodeConstantData) -> VCodeConstant
pub fn insert(&mut self, data: VCodeConstantData) -> VCodeConstant
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.
sourcepub fn get(&self, constant: VCodeConstant) -> Option<&[u8]>
pub fn get(&self, constant: VCodeConstant) -> Option<&[u8]>
Retrieve a byte slice for the given VCodeConstant, if available.
sourcepub fn keys(&self) -> Keys<VCodeConstant>
pub fn keys(&self) -> Keys<VCodeConstant>
Iterate over the VCodeConstant keys inserted in this structure.
sourcepub fn iter(&self) -> impl Iterator<Item = (VCodeConstant, &VCodeConstantData)>
pub fn iter(&self) -> impl Iterator<Item = (VCodeConstant, &VCodeConstantData)>
Iterate over the VCodeConstant keys and the data (as a byte slice) inserted in this structure.
Trait Implementations
sourceimpl Default for VCodeConstants
impl Default for VCodeConstants
sourcefn default() -> VCodeConstants
fn default() -> VCodeConstants
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
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more