[−][src]Enum peepmatic_runtime::linear::MatchOp
A matching operation to be performed on some Cranelift instruction as part of determining whether an optimization is applicable.
Variants
Switch on the opcode of an instruction.
Fields of Opcode
path: PathId
The path to the instruction whose opcode we're switching on.
Does an instruction have a constant value?
Fields of IsConst
path: PathId
The path to the instruction (or immediate) that we're checking whether it is constant or not.
Is the constant value a power of two?
Fields of IsPowerOfTwo
path: PathId
The path to the instruction (or immediate) that we are checking whether it is a constant power of two or not.
Switch on the bit width of a value.
Fields of BitWidth
path: PathId
The path to the instruction (or immediate) whose result's bit width we are checking.
Does the value fit in our target architecture's native word size?
Fields of FitsInNativeWord
path: PathId
The path to the instruction (or immediate) whose result we are checking whether it fits in a native word or not.
Are the instructions (or immediates) at the given paths the same?
Fields of Eq
Switch on the constant integer value of an instruction.
Fields of IntegerValue
path: PathId
The path to the instruction.
Switch on the constant boolean value of an instruction.
Fields of BooleanValue
path: PathId
The path to the instruction.
Switch on a condition code.
Fields of ConditionCode
path: PathId
The path to the condition code.
No operation. Always evaluates to None
.
Exceedingly rare in real optimizations; nonetheless required to support corner cases of the DSL, such as a LHS pattern that is nothing but a variable pattern.
Trait Implementations
impl Clone for MatchOp
[src]
impl Copy for MatchOp
[src]
impl Debug for MatchOp
[src]
impl<'de> Deserialize<'de> for MatchOp
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
impl Eq for MatchOp
[src]
impl Hash for MatchOp
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl PartialEq<MatchOp> for MatchOp
[src]
impl Serialize for MatchOp
[src]
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer,
[src]
__S: Serializer,
impl StructuralEq for MatchOp
[src]
impl StructuralPartialEq for MatchOp
[src]
Auto Trait Implementations
impl RefUnwindSafe for MatchOp
impl Send for MatchOp
impl Sync for MatchOp
impl Unpin for MatchOp
impl UnwindSafe for MatchOp
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,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
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.
fn to_owned(&self) -> T
[src]
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.
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>,