Home | History | Annotate | Download | only in info

Lines Matching full:constraint

4096      constraint letters (*note Constraints for Particular Machines:
4174 a constraint violation in the C standard, which must become an error
10770 constraint systems. These linear constraint systems can then be solved
10774 elimination: a linear constraint system containing `n' variables is
10775 reduced to a linear constraint system with `n-1' variables. The Omega
13039 for one of the inputs unless the `&' constraint is specified for
13321 string, the output-operand's constraint, the index-number of the output
13329 vectors, but each contains the constraint for the respective output
14824 `"rm"' is an operand constraint. Its meaning is explained below.
14842 `(match_operand:M N PREDICATE CONSTRAINT)'
14874 CONSTRAINT controls reloading and the choice of the best register
14876 If the constraint would be an empty string, it can be omitted.
14878 People are often unclear on the difference between the constraint
14880 insn matches the pattern. The constraint plays no role in this
14884 `(match_scratch:M N CONSTRAINT)'
14914 constraint (*note Simple Constraints::) for those. `match_dup' is
15099 When the RTL contains two operands which are required by constraint to
15145 pattern's constraint alternatives (*note Multi-Alternative::). For
15316 (match_operand N "pmode_register_operand" CONSTRAINT)
15320 (match_operand:P N "register_operand" CONSTRAINT)
15415 allow OP. The operand number and constraint are ignored.
15540 * Multi-Alternative:: When an insn has two alternative constraint-patterns.
15545 * C Constraint Interface:: How to test constraints from C code.
15553 The simplest kind of constraint is a string full of letters, each of
15584 operand, the constraint letter `o' is valid only when accompanied
15590 anything that would fit the `m' constraint but not the `o'
15591 constraint.
15661 `general_operand'. This is normally used in the constraint of a
15677 This is called a "matching constraint" and what it really means is
15690 constraint.
15703 `p' in the constraint must be accompanied by `address_operand' as
15715 constraint. But a failure to do so does not prevent the pattern from
15717 code so that the constraint will be satisfied. Usually this is done by
15738 which has three operands, two of which are required by a constraint to
15752 the constraint true. The results might look like this:
15772 * If the constraint accepts whatever operands the predicate permits,
15792 address into a register. So if the constraint uses the letter
15797 used in place of the constant. So if the constraint uses the
15800 * If the constraint permits a constant and a pseudo register used in
15806 constraint.
15808 If the operand's predicate can recognize registers, but the constraint
15813 If the predicate accepts a unary operator, the constraint applies to
15818 register. Write the constraint to indicate the type of register that
15835 The overall constraint for an operand is made from the letters for this
15893 constraint letters `g' and `r' also vote: they vote in favor of a
15903 14.8.4 Constraint Modifier Characters
15906 Here are constraint modifier characters.
15922 If you specify `=' or `+' in a constraint, you put it in the first
15923 character of the constraint string.
15969 ignored as a constraint. They are significant only for choosing
15975 constraint as a constraint, and no effect on reloading.
15983 that the `d' constraint letter (for data register) is ignored when
15998 Whenever possible, you should use the general-purpose constraint letters
16000 people reading your code. Failing that, use the constraint letters
16030 Floating-point constant that would satisfy the constraint `F'
16042 Integer that satisfies constraint `I' when inverted (ones
16046 Integer that satisfies constraint `I' when negated (twos
17149 Memory address for `e' constraint registers
17273 Multiple letter constraint followed by 4 parameter letters.
17286 The constraint matches if the specified part of a constant
17477 File: gccint.info, Node: Define Constraints, Next: C Constraint Interface, Prev: Machine Constraints, Up: Constraints
17492 In order to avoid ambiguity in operand constraint strings, no
17493 constraint can have a name that begins with any other constraint's
17494 name. For example, if `x' is defined as a constraint name, `xy' may
17495 not be, and vice versa. As a consequence of this rule, no constraint
17496 may begin with one of the generic constraint letters: `E F V X g i m n
17505 constraint, as it will appear in `match_operand' expressions. If
17506 NAME is a multi-letter constraint its length shall be the same for
17516 DOCSTRING is a sentence documenting the meaning of the constraint.
17519 Non-register constraints are more like predicates: the constraint
17521 constraint matches.
17529 If it evaluates true, the constraint matches; if it evaluates
17530 false, it doesn't. Constraint expressions should indicate which
17572 of an index register. The constraint letter `Q' is defined to
17574 `define_memory_constraint', a `Q' constraint can handle any memory
17577 the way a `o' constraint can handle any memory operand.
17584 address operands: that is, `reload' can make the constraint match
17591 the generic `p' constraint.
17612 Each docstring in a constraint definition should be one or more
17622 internals manual's version of the machine-specific constraint tables.
17626 File: gccint.info, Node: C Constraint Interface, Prev: Define Constraints, Up: Constraints
17631 It is occasionally useful to test a constraint from C code rather than
17632 implicitly via the constraint string in a `match_operand'. The
17641 constraint interface that machine-independent components of the
17644 Some valid constraint names are not valid C identifiers, so there is a
17645 mangling scheme for referring to them from C. Constraint names that do
17658 Throughout this section, the variable C is either a constraint in the
17660 M is a mangled constraint name (usually as part of a larger identifier).
17663 For each machine-specific constraint, there is a corresponding
17665 constraint. Functions that take an `enum constraint_num' as an
17672 For each machine-specific, non-register constraint M, there is one
17674 constraint. These functions are only visible if `rtl.h' was
17679 Like the `satisfies_constraint_M' functions, but the constraint to
17681 constraint, this function will always return `false'.
17686 register constraint, or those registers are not available for the
17690 optimizations (*note Peephole Definitions::), operand constraint
17693 if operand 2 does _not_ satisfy the `K' constraint. (This is a
17824 class letter may be used for the constraint; subsequent constraint
17825 letters are ignored. As a special exception, an empty constraint
17827 ports of the burden of defining an `ALL_REGS' constraint letter
19355 If a constraint in a pattern allows a constant, the reload pass may
19356 replace a register with a constant permitted by the constraint in some
20648 which is the applicable alternative in the constraint of the insn), the
20665 number of alternatives in the constraint of the insn pattern.
21024 units in insn reservations. The most important constraint is: if a
21524 the `:SI' expansion has no such constraint.
23688 constraint asks for one.
23836 terribly special about the name, but the operand constraint letters `r'
23844 constraints is through machine-dependent operand constraint letters.
24038 constraint: the x86 back-end uses this feature to discourage usage
24121 constraint.
24133 Scratch operands in memory (constraint `"=m"' / `"=&m"') are
24183 reload register (whose class is CLASS) can meet the constraint
24319 For the constraint at the start of STR, which starts with the
24326 genoutput.c that check the constraint lengths for the md file, so
24328 transitioning from a byzantine single-letter-constraint scheme:
24329 when you return a negative length for a constraint you want to
24335 constraint letters for register classes. If CHAR is such a
24342 Like `REG_CLASS_FROM_LETTER', but you also get the constraint
24348 constraint letters (`I', `J', `K', ... `P') that specify
24356 Like `CONST_OK_FOR_LETTER_P', but you also get the constraint
24362 constraint letters that specify particular ranges of
24377 constraint string passed in STR, so that you can use suffixes to
24382 constraint letters that can be used to segregate specific types of
24390 the constraint letter C. If C is not defined as an extra
24391 constraint, the value returned should be 0 regardless of VALUE.
24395 Constraint letter `Q' is defined as representing a memory address
24397 specified with a `Q' constraint on the input and `r' on the
24402 Like `EXTRA_CONSTRAINT', but you also get the constraint string
24408 constraint letters, amongst those accepted by `EXTRA_CONSTRAINT',
24412 constraint at the start of STR, the first letter of which is the
24421 of an index register. The constraint letter `Q' is defined via
24424 constraint can handle any memory operand, because the reload pass
24427 constraint can handle any memory operand.
24431 constraint letters, amongst those accepted by `EXTRA_CONSTRAINT' /
24436 constraint at the start of STR, which starts with the letter C,
24442 Any constraint marked as `EXTRA_ADDRESS_CONSTRAINT' can only be
24444 analogously to the `p' constraint.
27323 additional constraint to issue insns on the same simulated
34645 * ! in constraint: Multi-Alternative. (line 47)
34646 * # in constraint: Modifiers. (line 67)
34649 * % in constraint: Modifiers. (line 45)
34652 * & in constraint: Modifiers. (line 25)
34656 * * in constraint: Modifiers. (line 72)
34659 * + in constraint: Modifiers. (line 12)
34669 * 0 in constraint: Simple Constraints. (line 118)
34670 * < in constraint: Simple Constraints. (line 46)
34671 * = in constraint: Modifiers. (line 8)
34672 * > in constraint: Simple Constraints. (line 50)
34673 * ? in constraint: Multi-Alternative. (line 41)
38406 * constraint modifier characters: Modifiers. (line 6)
38407 * constraint, matching: Simple Constraints. (line 130)
38409 * constraint_num: C Constraint Interface.
38411 * constraint_satisfied_p: C Constraint Interface.
38418 * constraints, testing: C Constraint Interface.
38636 * digits in constraint: Simple Constraints. (line 118)
38677 * E in constraint: Simple Constraints. (line 77)
38762 * F in constraint: Simple Constraints. (line 82)
38889 * g in constraint: Simple Constraints. (line 108)
38890 * G in constraint: Simple Constraints. (line 86)
38968 * H in constraint: Simple Constraints. (line 86)
39024 * I in constraint: Simple Constraints. (line 69)
39025 * i in constraint: Simple Constraints. (line 58)
39281 * m in constraint: Simple Constraints. (line 17)
39314 * matching constraint: Simple Constraints. (line 130)
39447 * n in constraint: Simple Constraints. (line 63)
39529 * o in constraint: Simple Constraints. (line 21)
39586 * p in constraint: Simple Constraints. (line 152)
39736 * r in constraint: Simple Constraints. (line 54)
39838 * regclass_for_constraint: C Constraint Interface.
39965 * s in constraint
39971 * satisfies_constraint_: C Constraint Interface.
40503 * testing constraints: C Constraint Interface.
40720 * V in constraint: Simple Constraints. (line 41)
40801 * voting between constraint alternatives: Class Preferences. (line 6)
40817 * X in constraint: Simple Constraints. (line 112)
41000 Node: C Constraint Interface755036