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,
multi: 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
Try matching the given value as the given integer. Produces no values.
MatchPrim
Fields
Try matching the given value as the given constant. Produces no values.
MatchVariant
Fields
Try matching the given value as the given variant, producing |arg_tys|
values as output.
Expr
Fields
seq: ExprSequence
The expression to evaluate.
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
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§
source§impl Clone for PatternInst
impl Clone for PatternInst
source§fn clone(&self) -> PatternInst
fn clone(&self) -> PatternInst
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for PatternInst
impl Debug for PatternInst
source§impl Hash for PatternInst
impl Hash for PatternInst
source§impl Ord for PatternInst
impl Ord for PatternInst
source§fn cmp(&self, other: &PatternInst) -> Ordering
fn cmp(&self, other: &PatternInst) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
source§impl PartialEq<PatternInst> for PatternInst
impl PartialEq<PatternInst> for PatternInst
source§fn eq(&self, other: &PatternInst) -> bool
fn eq(&self, other: &PatternInst) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd<PatternInst> for PatternInst
impl PartialOrd<PatternInst> for PatternInst
source§fn partial_cmp(&self, other: &PatternInst) -> Option<Ordering>
fn partial_cmp(&self, other: &PatternInst) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more