Struct cranelift_codegen::machinst::vcode::VCodeConstants [−][src]
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
impl VCodeConstants
[src]
pub fn with_capacity(expected_num_constants: usize) -> Self
[src]
Initialize the structure with the expected number of constants.
pub fn insert(&mut self, data: VCodeConstantData) -> VCodeConstant
[src]
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.
pub fn get(&self, constant: VCodeConstant) -> Option<&[u8]>
[src]
Retrieve a byte slice for the given VCodeConstant, if available.
pub fn len(&self) -> usize
[src]
Return the number of constants inserted.
pub fn keys(&self) -> Keys<VCodeConstant>
[src]
Iterate over the VCodeConstant keys inserted in this structure.
pub fn iter(&self) -> impl Iterator<Item = (VCodeConstant, &VCodeConstantData)>
[src]
Iterate over the VCodeConstant keys and the data (as a byte slice) inserted in this structure.
Trait Implementations
impl Default for VCodeConstants
[src]
fn default() -> VCodeConstants
[src]
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
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,