Enum cranelift_isle::ir::PatternInst [−][src]
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
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
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
Mutably borrows from an owned value. Read more