GNU Compiler Collection (GCC) Internals: Define Subst Pattern Matching |
---|
Next: Define Subst Output Template, Previous: Define Subst Example, Up: Define Subst [Contents][Index]
define_subst
All expressions, allowed in define_insn
or define_expand
,
are allowed in the input-template of define_subst
, except
match_par_dup
, match_scratch
, match_parallel
. The
meanings of expressions in the input-template were changed:
match_operand
matches any expression (possibly, a subtree in
RTL-template), if modes of the match_operand
and this expression
are the same, or mode of the match_operand
is VOIDmode
, or
this expression is match_dup
, match_op_dup
. If the
expression is match_operand
too, and predicate of
match_operand
from the input pattern is not empty, then the
predicates are compared. That can be used for more accurate filtering
of accepted RTL-templates.
match_operator
matches common operators (like plus
,
minus
), unspec
, unspec_volatile
operators and
match_operator
s from the original pattern if the modes match and
match_operator
from the input pattern has the same number of
operands as the operator from the original pattern.