Some machines are so clean that operand constraints are not required. For
example, on the Vax, an operand valid in one context is valid in any other
context. On such a machine, every operand constraint would be `g
',
excepting only operands of ``load address'' instructions which are
written as if they referred to a memory location's contents but actual
refer to its address. They would have constraint `p
'.
For such machines, instead of writing `g
' and `p
' for all
the constraints, you can choose to write a description with empty constraints.
Then you write `""
' for the constraint in every match_operand
.
Address operands are identified by writing an address
expression
around the match_operand
, not by their constraints.
When the machine description has just empty constraints, certain parts of compilation are skipped, making the compiler faster. However, few machines actually do not need constraints; all machine descriptions now in existence use constraints.