[−][src]Enum cranelift_codegen::ir::instructions::InstructionData
Variants
Unary
Fields of Unary
UnaryImm
Fields of UnaryImm
UnaryIeee32
Fields of UnaryIeee32
UnaryIeee64
Fields of UnaryIeee64
UnaryBool
Fields of UnaryBool
UnaryGlobalValue
Fields of UnaryGlobalValue
opcode: Opcode
global_value: GlobalValue
Binary
Fields of Binary
BinaryImm
Fields of BinaryImm
Ternary
Fields of Ternary
MultiAry
Fields of MultiAry
NullAry
Fields of NullAry
opcode: Opcode
InsertLane
Fields of InsertLane
ExtractLane
Fields of ExtractLane
IntCompare
Fields of IntCompare
IntCompareImm
Fields of IntCompareImm
IntCond
Fields of IntCond
FloatCompare
Fields of FloatCompare
FloatCond
Fields of FloatCond
IntSelect
Fields of IntSelect
Jump
Fields of Jump
Branch
Fields of Branch
BranchInt
Fields of BranchInt
BranchFloat
Fields of BranchFloat
BranchIcmp
Fields of BranchIcmp
BranchTable
Fields of BranchTable
BranchTableEntry
Fields of BranchTableEntry
BranchTableBase
Fields of BranchTableBase
IndirectJump
Fields of IndirectJump
Call
Fields of Call
CallIndirect
Fields of CallIndirect
FuncAddr
Fields of FuncAddr
Load
Fields of Load
LoadComplex
Fields of LoadComplex
Store
Fields of Store
StoreComplex
Fields of StoreComplex
StackLoad
Fields of StackLoad
StackStore
Fields of StackStore
HeapAddr
Fields of HeapAddr
TableAddr
Fields of TableAddr
RegMove
Fields of RegMove
CopySpecial
Fields of CopySpecial
RegSpill
Fields of RegSpill
RegFill
Fields of RegFill
Trap
Fields of Trap
CondTrap
Fields of CondTrap
IntCondTrap
Fields of IntCondTrap
FloatCondTrap
Fields of FloatCondTrap
Methods
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 EBB reveals its possible destinations here.
pub fn branch_destination(&self) -> Option<Ebb>
[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 Ebb>
[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 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<'a> From<&'a InstructionData> for InstructionFormat
[src]
fn from(inst: &'a InstructionData) -> Self
[src]
impl Debug for InstructionData
[src]
impl Clone for InstructionData
[src]
fn clone(&self) -> InstructionData
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Auto Trait Implementations
impl Send for InstructionData
impl Sync for InstructionData
impl Unpin for InstructionData
impl RefUnwindSafe for InstructionData
impl UnwindSafe for InstructionData
Blanket Implementations
impl<T> From<T> for 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.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,