Home | History | Annotate | Download | only in info

Lines Matching full:constraint

4101      constraint letters (*note Constraints for Particular Machines:
4180 a constraint violation in the C standard, which must become an error
10982 there is an insn alternative containing the `&' constraint (*note
11265 string, the output-operand's constraint, the index-number of the output
11273 vectors, but each contains the constraint for the respective output
15936 constraint systems. These linear constraint systems can then be solved
15940 elimination: a linear constraint system containing `n' variables is
15941 reduced to a linear constraint system with `n-1' variables. The Omega
16735 `"rm"' is an operand constraint. Its meaning is explained below.
16753 `(match_operand:M N PREDICATE CONSTRAINT)'
16785 CONSTRAINT controls reloading and the choice of the best register
16787 If the constraint would be an empty string, it can be omitted.
16789 People are often unclear on the difference between the constraint
16791 insn matches the pattern. The constraint plays no role in this
16795 `(match_scratch:M N CONSTRAINT)'
16825 constraint (*note Simple Constraints::) for those. `match_dup' is
17010 When the RTL contains two operands which are required by constraint to
17056 pattern's constraint alternatives (*note Multi-Alternative::). For
17227 (match_operand N "pmode_register_operand" CONSTRAINT)
17231 (match_operand:P N "register_operand" CONSTRAINT)
17326 allow OP. The operand number and constraint are ignored.
17451 * Multi-Alternative:: When an insn has two alternative constraint-patterns.
17457 * C Constraint Interface:: How to test constraints from C code.
17465 The simplest kind of constraint is a string full of letters, each of
17479 general memory constraint can be re-defined by a back end using
17498 operand, the constraint letter `o' is valid only when accompanied
17504 anything that would fit the `m' constraint but not the `o'
17505 constraint.
17575 `general_operand'. This is normally used in the constraint of a
17591 This is called a "matching constraint" and what it really means is
17604 constraint.
17617 `p' in the constraint must be accompanied by `address_operand' as
17629 constraint. But a failure to do so does not prevent the pattern from
17631 code so that the constraint will be satisfied. Usually this is done by
17652 which has three operands, two of which are required by a constraint to
17666 the constraint true. The results might look like this:
17686 * If the constraint accepts whatever operands the predicate permits,
17706 address into a register. So if the constraint uses the letter
17711 used in place of the constant. So if the constraint uses the
17714 * If the constraint permits a constant and a pseudo register used in
17720 constraint.
17722 If the operand's predicate can recognize registers, but the constraint
17727 If the predicate accepts a unary operator, the constraint applies to
17732 register. Write the constraint to indicate the type of register that
17749 The overall constraint for an operand is made from the letters for this
17807 constraint letters `g' and `r' also vote: they vote in favor of a
17817 16.8.4 Constraint Modifier Characters
17820 Here are constraint modifier characters.
17836 If you specify `=' or `+' in a constraint, you put it in the first
17837 character of the constraint string.
17883 ignored as a constraint. They are significant only for choosing
17889 constraint as a constraint, and no effect on reloading.
17897 that the `d' constraint letter (for data register) is ignored when
17912 Whenever possible, you should use the general-purpose constraint letters
17914 people reading your code. Failing that, use the constraint letters
17944 Floating-point constant that would satisfy the constraint `F'
17956 Integer that satisfies constraint `I' when inverted (ones
17960 Integer that satisfies constraint `I' when negated (twos
18812 Formerly the `hi' register. This constraint is no longer
18828 Register `$3'. Do not use this constraint in new code; it is
19093 Memory address for `e' constraint registers
19217 Multiple letter constraint followed by 4 parameter letters.
19230 The constraint matches if the specified part of a constant
19500 File: gccint.info, Node: Define Constraints, Next: C Constraint Interface, Prev: Machine Constraints, Up: Constraints
19515 In order to avoid ambiguity in operand constraint strings, no
19516 constraint can have a name that begins with any other constraint's
19517 name. For example, if `x' is defined as a constraint name, `xy' may
19518 not be, and vice versa. As a consequence of this rule, no constraint
19519 may begin with one of the generic constraint letters: `E F V X g i m n
19528 constraint, as it will appear in `match_operand' expressions. If
19529 NAME is a multi-letter constraint its length shall be the same for
19539 DOCSTRING is a sentence documenting the meaning of the constraint.
19542 Non-register constraints are more like predicates: the constraint
19544 constraint matches.
19552 If it evaluates true, the constraint matches; if it evaluates
19553 false, it doesn't. Constraint expressions should indicate which
19595 of an index register. The constraint letter `Q' is defined to
19597 `define_memory_constraint', a `Q' constraint can handle any memory
19600 the way a `o' constraint can handle any memory operand.
19607 address operands: that is, `reload' can make the constraint match
19614 the generic `p' constraint.
19635 Each docstring in a constraint definition should be one or more
19645 internals manual's version of the machine-specific constraint tables.
19649 File: gccint.info, Node: C Constraint Interface, Prev: Define Constraints, Up: Constraints
19654 It is occasionally useful to test a constraint from C code rather than
19655 implicitly via the constraint string in a `match_operand'. The
19664 constraint interface that machine-independent components of the
19667 Some valid constraint names are not valid C identifiers, so there is a
19668 mangling scheme for referring to them from C. Constraint names that do
19681 Throughout this section, the variable C is either a constraint in the
19683 M is a mangled constraint name (usually as part of a larger identifier).
19686 For each machine-specific constraint, there is a corresponding
19688 constraint. Functions that take an `enum constraint_num' as an
19695 For each machine-specific, non-register constraint M, there is one
19697 constraint. These functions are only visible if `rtl.h' was
19702 Like the `satisfies_constraint_M' functions, but the constraint to
19704 constraint, this function will always return `false'.
19709 register constraint, or those registers are not available for the
19713 optimizations (*note Peephole Definitions::), operand constraint
19716 if operand 2 does _not_ satisfy the `K' constraint. (This is a
19847 class letter may be used for the constraint; subsequent constraint
19848 letters are ignored. As a special exception, an empty constraint
19850 ports of the burden of defining an `ALL_REGS' constraint letter
21384 If a constraint in a pattern allows a constant, the reload pass may
21385 replace a register with a constant permitted by the constraint in some
22691 which is the applicable alternative in the constraint of the insn), the
22708 number of alternatives in the constraint of the insn pattern.
23067 units in insn reservations. The most important constraint is: if a
23567 the `:SI' expansion has no such constraint.
25716 constraint asks for one.
25873 terribly special about the name, but the operand constraint letters `r'
25881 constraints is through machine-dependent operand constraint letters.
26075 constraint: the x86 back-end uses this feature to discourage usage
26158 constraint.
26170 Scratch operands in memory (constraint `"=m"' / `"=&m"') are
26220 reload register (whose class is CLASS) can meet the constraint
26379 For the constraint at the start of STR, which starts with the
26386 genoutput.c that check the constraint lengths for the md file, so
26388 transitioning from a byzantine single-letter-constraint scheme:
26389 when you return a negative length for a constraint you want to
26395 constraint letters for register classes. If CHAR is such a
26402 Like `REG_CLASS_FROM_LETTER', but you also get the constraint
26408 constraint letters (`I', `J', `K', ... `P') that specify
26416 Like `CONST_OK_FOR_LETTER_P', but you also get the constraint
26422 constraint letters that specify particular ranges of
26437 constraint string passed in STR, so that you can use suffixes to
26442 constraint letters that can be used to segregate specific types of
26450 the constraint letter C. If C is not defined as an extra
26451 constraint, the value returned should be 0 regardless of VALUE.
26455 Constraint letter `Q' is defined as representing a memory address
26457 specified with a `Q' constraint on the input and `r' on the
26462 Like `EXTRA_CONSTRAINT', but you also get the constraint string
26468 constraint letters, amongst those accepted by `EXTRA_CONSTRAINT',
26472 constraint at the start of STR, the first letter of which is the
26481 of an index register. The constraint letter `Q' is defined via
26484 constraint can handle any memory operand, because the reload pass
26487 constraint can handle any memory operand.
26491 constraint letters, amongst those accepted by `EXTRA_CONSTRAINT' /
26496 constraint at the start of STR, which starts with the letter C,
26502 Any constraint marked as `EXTRA_ADDRESS_CONSTRAINT' can only be
26504 analogously to the `p' constraint.
28707 constraint letter which matches the memory addresses accepted by
28710 semantics of the `'m'' constraint. This is necessary in order to
28712 `'m'' constraint.
29444 additional constraint to issue insns on the same simulated
37251 * ! in constraint: Multi-Alternative. (line 47)
37252 * # in constraint: Modifiers. (line 67)
37255 * % in constraint: Modifiers. (line 45)
37258 * & in constraint: Modifiers. (line 25)
37269 * * in constraint: Modifiers. (line 72)
37308 * + in constraint: Modifiers. (line 12)
37318 * 0 in constraint: Simple Constraints. (line 120)
37319 * < in constraint: Simple Constraints. (line 48)
37320 * = in constraint: Modifiers. (line 8)
37321 * > in constraint: Simple Constraints. (line 52)
37322 * ? in constraint: Multi-Alternative. (line 41)
41065 * constraint modifier characters: Modifiers. (line 6)
41066 * constraint, matching: Simple Constraints. (line 132)
41068 * constraint_num: C Constraint Interface.
41070 * constraint_satisfied_p: C Constraint Interface.
41077 * constraints, testing: C Constraint Interface.
41300 * digits in constraint: Simple Constraints. (line 120)
41341 * E in constraint: Simple Constraints. (line 79)
41429 * F in constraint: Simple Constraints. (line 84)
41557 * G in constraint: Simple Constraints. (line 88)
41558 * g in constraint: Simple Constraints. (line 110)
42013 * H in constraint: Simple Constraints. (line 88)
42069 * I in constraint: Simple Constraints. (line 71)
42070 * i in constraint: Simple Constraints. (line 60)
42332 * m in constraint: Simple Constraints. (line 17)
42369 * matching constraint: Simple Constraints. (line 132)
42500 * n in constraint: Simple Constraints. (line 65)
42582 * o in constraint: Simple Constraints. (line 23)
42641 * p in constraint: Simple Constraints. (line 154)
42793 * r in constraint: Simple Constraints. (line 56)
42891 * regclass_for_constraint: C Constraint Interface.
43020 * s in constraint: Simple Constraints. (line 92)
43026 * satisfies_constraint_: C Constraint Interface.
43594 * testing constraints: C Constraint Interface.
43827 * V in constraint: Simple Constraints. (line 43)
43912 * voting between constraint alternatives: Class Preferences. (line 6)
43936 * X in constraint: Simple Constraints. (line 114)
44152 Node: C Constraint Interface839346