Enum cranelift_isle::ir::PatternInst
source · [−]pub enum PatternInst {
MatchEqual {
a: Value,
b: Value,
ty: TypeId,
},
MatchInt {
input: Value,
ty: TypeId,
int_val: i64,
},
MatchPrim {
input: Value,
ty: TypeId,
val: Sym,
},
MatchVariant {
input: Value,
input_ty: TypeId,
arg_tys: Vec<TypeId>,
variant: VariantId,
},
Expr {
seq: ExprSequence,
output: Value,
output_ty: TypeId,
},
Extract {
inputs: Vec<Value>,
input_tys: Vec<TypeId>,
output_tys: Vec<TypeId>,
term: TermId,
infallible: bool,
},
Arg {
index: usize,
ty: TypeId,
},
}
Expand description
A single Pattern instruction.
Variants
MatchEqual
Match a value as equal to another value. Produces no values.
MatchInt
Fields
input: Value
The value to match on.
ty: TypeId
The value’s type.
int_val: i64
The integer to match against the value.
Try matching the given value as the given integer. Produces no values.
MatchPrim
Fields
input: Value
The value to match on.
ty: TypeId
The type of the value.
val: Sym
The primitive to match against the value.
Try matching the given value as the given constant. Produces no values.
MatchVariant
Fields
input: Value
The value to match on.
input_ty: TypeId
The type of the value.
variant: VariantId
The value type’s variant that we are matching against.
Try matching the given value as the given variant, producing |arg_tys|
values as output.
Expr
Fields
seq: ExprSequence
The expression to evaluate.
output: Value
The value produced by the expression.
output_ty: TypeId
The type of the output value.
Evaluate an expression and provide the given value as the result of this match instruction. The expression has access to the pattern-values up to this point in the sequence.
Extract
Fields
term: TermId
This extractor’s term.
infallible: bool
Whether this extraction is infallible or not.
Invoke an extractor, taking the given values as input (the first is the
value to extract, the other are the Input
-polarity extractor args) and
producing an output value for each Output
-polarity extractor arg.
Arg
Get the Nth input argument, which corresponds to the Nth field of the root term.
Trait Implementations
sourceimpl Clone for PatternInst
impl Clone for PatternInst
sourcefn clone(&self) -> PatternInst
fn clone(&self) -> PatternInst
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for PatternInst
impl Debug for PatternInst
sourceimpl Hash for PatternInst
impl Hash for PatternInst
sourceimpl Ord for PatternInst
impl Ord for PatternInst
sourceimpl PartialEq<PatternInst> for PatternInst
impl PartialEq<PatternInst> for PatternInst
sourcefn eq(&self, other: &PatternInst) -> bool
fn eq(&self, other: &PatternInst) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &PatternInst) -> bool
fn ne(&self, other: &PatternInst) -> bool
This method tests for !=
.
sourceimpl PartialOrd<PatternInst> for PatternInst
impl PartialOrd<PatternInst> for PatternInst
sourcefn partial_cmp(&self, other: &PatternInst) -> Option<Ordering>
fn partial_cmp(&self, other: &PatternInst) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
impl Eq for PatternInst
impl StructuralEq for PatternInst
impl StructuralPartialEq for PatternInst
Auto Trait Implementations
impl RefUnwindSafe for PatternInst
impl Send for PatternInst
impl Sync for PatternInst
impl Unpin for PatternInst
impl UnwindSafe for PatternInst
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more