Enum cranelift_isle::ir::PatternInst
source · [−]pub enum PatternInst {
MatchEqual {
a: Value,
b: Value,
ty: TypeId,
},
MatchInt {
input: Value,
ty: TypeId,
int_val: i128,
},
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 {
infallible: bool,
inputs: Vec<Value>,
input_tys: Vec<TypeId>,
output_tys: Vec<TypeId>,
term: TermId,
},
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: i128
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
infallible: bool
Whether this extraction is infallible or not. false
comes before true
, so fallible nodes come first.
term: TermId
This extractor’s term.
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
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresourceimpl Debug for PatternInst
impl Debug for PatternInst
sourceimpl Hash for PatternInst
impl Hash for PatternInst
sourceimpl Ord for PatternInst
impl Ord for PatternInst
sourcefn cmp(&self, other: &PatternInst) -> Ordering
fn cmp(&self, other: &PatternInst) -> Ordering
1.21.0 · sourcefn max(self, other: Self) -> Self
fn max(self, other: Self) -> Self
1.21.0 · sourcefn min(self, other: Self) -> Self
fn min(self, other: Self) -> Self
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Selfwhere
Self: PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Selfwhere
Self: PartialOrd<Self>,
sourceimpl PartialEq<PatternInst> for PatternInst
impl PartialEq<PatternInst> for PatternInst
sourcefn eq(&self, other: &PatternInst) -> bool
fn eq(&self, other: &PatternInst) -> bool
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>
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more