Enum cranelift_codegen::ir::instructions::InstructionData [−][src]
Variants
Fields of NullAry
opcode: Opcode
Fields of UnaryGlobalValue
opcode: Opcode
global_value: GlobalValue
Implementations
impl InstructionData
[src]
pub fn opcode(&self) -> Opcode
[src]
Get the opcode of this instruction.
pub fn typevar_operand(&self, pool: &ValueListPool) -> Option<Value>
[src]
Get the controlling type variable operand.
pub fn arguments<'a>(&'a self, pool: &'a ValueListPool) -> &[Value]
[src]
Get the value arguments to this instruction.
pub fn arguments_mut<'a>(
&'a mut self,
pool: &'a mut ValueListPool
) -> &mut [Value]
[src]
&'a mut self,
pool: &'a mut ValueListPool
) -> &mut [Value]
Get mutable references to the value arguments to this instruction.
pub fn take_value_list(&mut self) -> Option<ValueList>
[src]
Take out the value list with all the value arguments and return it.
This leaves the value list in the instruction empty. Use
put_value_list
to put the value list back.
pub fn put_value_list(&mut self, vlist: ValueList)
[src]
Put back a value list.
After removing a value list with take_value_list()
, use this
method to put it back. It is required that this instruction has
a format that accepts a value list, and that the existing value
list is empty. This avoids leaking list pool memory.
pub fn eq(&self, other: &Self, pool: &ValueListPool) -> bool
[src]
Compare two InstructionData
for equality.
This operation requires a reference to a ValueListPool
to
determine if the contents of any ValueLists
are equal.
pub fn hash<H: Hasher>(&self, state: &mut H, pool: &ValueListPool)
[src]
Hash an InstructionData
.
This operation requires a reference to a ValueListPool
to
hash the contents of any ValueLists
.
impl InstructionData
[src]
Analyzing an instruction.
Avoid large matches on instruction formats by using the methods defined here to examine instructions.
pub fn analyze_branch<'a>(&'a self, pool: &'a ValueListPool) -> BranchInfo<'a>
[src]
Return information about the destination of a branch or jump instruction.
Any instruction that can transfer control to another block reveals its possible destinations here.
pub fn branch_destination(&self) -> Option<Block>
[src]
Get the single destination of this branch instruction, if it is a single destination branch or jump.
Multi-destination branches like br_table
return None
.
pub fn branch_destination_mut(&mut self) -> Option<&mut Block>
[src]
Get a mutable reference to the single destination of this branch instruction, if it is a single destination branch or jump.
Multi-destination branches like br_table
return None
.
pub fn imm_value(&self) -> Option<DataValue>
[src]
Return the value of an immediate if the instruction has one or None
otherwise. Only
immediate values are considered, not global values, constant handles, condition codes, etc.
pub fn trap_code(&self) -> Option<TrapCode>
[src]
If this is a trapping instruction, get its trap code. Otherwise, return
None
.
pub fn cond_code(&self) -> Option<IntCC>
[src]
If this is a control-flow instruction depending on an integer condition, gets its
condition. Otherwise, return None
.
pub fn fp_cond_code(&self) -> Option<FloatCC>
[src]
If this is a control-flow instruction depending on a floating-point condition, gets its
condition. Otherwise, return None
.
pub fn trap_code_mut(&mut self) -> Option<&mut TrapCode>
[src]
If this is a trapping instruction, get an exclusive reference to its
trap code. Otherwise, return None
.
pub fn atomic_rmw_op(&self) -> Option<AtomicRmwOp>
[src]
If this is an atomic read/modify/write instruction, return its subopcode.
pub fn load_store_offset(&self) -> Option<i32>
[src]
If this is a load/store instruction, returns its immediate offset.
pub fn analyze_call<'a>(&'a self, pool: &'a ValueListPool) -> CallInfo<'a>
[src]
Return information about a call instruction.
Any instruction that can call another function reveals its call signature here.
Trait Implementations
impl Clone for InstructionData
[src]
fn clone(&self) -> InstructionData
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for InstructionData
[src]
impl<'a> From<&'a InstructionData> for InstructionFormat
[src]
fn from(inst: &'a InstructionData) -> Self
[src]
Auto Trait Implementations
impl RefUnwindSafe for InstructionData
impl Send for InstructionData
impl Sync for InstructionData
impl Unpin for InstructionData
impl UnwindSafe for InstructionData
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> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
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>,