Home | History | Annotate | Download | only in info

Lines Matching full:constraint

2099      constraint letters (*note Constraints for Particular Machines:
2177 a constraint violation in the C standard, which must become an error
10594 for one of the inputs unless the `&' constraint is specified for
10876 string, the output-operand's constraint, the index-number of the output
10884 vectors, but each contains the constraint for the respective output
12374 `"rm"' is an operand constraint. Its meaning is explained below.
12392 `(match_operand:M N PREDICATE CONSTRAINT)'
12424 CONSTRAINT controls reloading and the choice of the best register
12426 If the constraint would be an empty string, it can be omitted.
12428 People are often unclear on the difference between the constraint
12430 insn matches the pattern. The constraint plays no role in this
12434 `(match_scratch:M N CONSTRAINT)'
12464 constraint (*note Simple Constraints::) for those. `match_dup' is
12649 When the RTL contains two operands which are required by constraint to
12695 pattern's constraint alternatives (*note Multi-Alternative::). For
12866 (match_operand N "pmode_register_operand" CONSTRAINT)
12870 (match_operand:P N "register_operand" CONSTRAINT)
12965 allow OP. The operand number and constraint are ignored.
13090 * Multi-Alternative:: When an insn has two alternative constraint-patterns.
13095 * C Constraint Interface:: How to test constraints from C code.
13103 The simplest kind of constraint is a string full of letters, each of
13134 operand, the constraint letter `o' is valid only when accompanied
13140 anything that would fit the `m' constraint but not the `o'
13141 constraint.
13211 `general_operand'. This is normally used in the constraint of a
13227 This is called a "matching constraint" and what it really means is
13240 constraint.
13253 `p' in the constraint must be accompanied by `address_operand' as
13265 constraint. But a failure to do so does not prevent the pattern from
13267 code so that the constraint will be satisfied. Usually this is done by
13288 which has three operands, two of which are required by a constraint to
13302 the constraint true. The results might look like this:
13322 * If the constraint accepts whatever operands the predicate permits,
13342 address into a register. So if the constraint uses the letter
13347 used in place of the constant. So if the constraint uses the
13350 * If the constraint permits a constant and a pseudo register used in
13356 constraint.
13358 If the operand's predicate can recognize registers, but the constraint
13363 If the predicate accepts a unary operator, the constraint applies to
13368 register. Write the constraint to indicate the type of register that
13385 The overall constraint for an operand is made from the letters for this
13443 constraint letters `g' and `r' also vote: they vote in favor of a
13453 14.8.4 Constraint Modifier Characters
13456 Here are constraint modifier characters.
13472 If you specify `=' or `+' in a constraint, you put it in the first
13473 character of the constraint string.
13519 ignored as a constraint. They are significant only for choosing
13525 constraint as a constraint, and no effect on reloading.
13533 that the `d' constraint letter (for data register) is ignored when
13548 Whenever possible, you should use the general-purpose constraint letters
13550 people reading your code. Failing that, use the constraint letters
13580 Floating-point constant that would satisfy the constraint `F'
13592 Integer that satisfies constraint `I' when inverted (ones
13596 Integer that satisfies constraint `I' when negated (twos
14531 Memory address for `e' constraint registers
14655 Multiple letter constraint followed by 4 parameter letters.
14668 The constraint matches if the specified part of a constant
14859 File: gccint.info, Node: Define Constraints, Next: C Constraint Interface, Prev: Machine Constraints, Up: Constraints
14874 In order to avoid ambiguity in operand constraint strings, no
14875 constraint can have a name that begins with any other constraint's
14876 name. For example, if `x' is defined as a constraint name, `xy' may
14877 not be, and vice versa. As a consequence of this rule, no constraint
14878 may begin with one of the generic constraint letters: `E F V X g i m n
14887 constraint, as it will appear in `match_operand' expressions.
14896 DOCSTRING is a sentence documenting the meaning of the constraint.
14899 Non-register constraints are more like predicates: the constraint
14901 constraint matches.
14909 If it evaluates true, the constraint matches; if it evaluates
14910 false, it doesn't. Constraint expressions should indicate which
14952 of an index register. The constraint letter `Q' is defined to
14954 `define_memory_constraint', a `Q' constraint can handle any memory
14957 the way a `o' constraint can handle any memory operand.
14964 address operands: that is, `reload' can make the constraint match
14971 the generic `p' constraint.
14992 Each docstring in a constraint definition should be one or more
15002 internals manual's version of the machine-specific constraint tables.
15006 File: gccint.info, Node: C Constraint Interface, Prev: Define Constraints, Up: Constraints
15011 It is occasionally useful to test a constraint from C code rather than
15012 implicitly via the constraint string in a `match_operand'. The
15021 constraint interface that machine-independent components of the
15024 Some valid constraint names are not valid C identifiers, so there is a
15025 mangling scheme for referring to them from C. Constraint names that do
15038 Throughout this section, the variable C is either a constraint in the
15040 M is a mangled constraint name (usually as part of a larger identifier).
15043 For each machine-specific constraint, there is a corresponding
15045 constraint. Functions that take an `enum constraint_num' as an
15052 For each machine-specific, non-register constraint M, there is one
15054 constraint. These functions are only visible if `rtl.h' was
15059 Like the `satisfies_constraint_M' functions, but the constraint to
15061 constraint, this function will always return `false'.
15066 register constraint, or those registers are not available for the
15070 optimizations (*note Peephole Definitions::), operand constraint
15073 if operand 2 does _not_ satisfy the `K' constraint. (This is a
15204 class letter may be used for the constraint; subsequent constraint
15205 letters are ignored. As a special exception, an empty constraint
15207 ports of the burden of defining an `ALL_REGS' constraint letter
16509 If a constraint in a pattern allows a constant, the reload pass may
16510 replace a register with a constant permitted by the constraint in some
17799 which is the applicable alternative in the constraint of the insn), the
17816 number of alternatives in the constraint of the insn pattern.
18175 units in insn reservations. The most important constraint is: if a
18671 the `:SI' expansion has no such constraint.
20715 constraint asks for one.
20863 terribly special about the name, but the operand constraint letters `r'
20871 constraints is through machine-dependent operand constraint letters.
21065 constraint: the x86 back-end uses this feature to discourage usage
21148 constraint.
21160 Scratch operands in memory (constraint `"=m"' / `"=&m"') are
21210 reload register (whose class is CLASS) can meet the constraint
21346 For the constraint at the start of STR, which starts with the
21353 genoutput.c that check the constraint lengths for the md file, so
21355 transitioning from a byzantine single-letter-constraint scheme:
21356 when you return a negative length for a constraint you want to
21362 constraint letters for register classes. If CHAR is such a
21369 Like `REG_CLASS_FROM_LETTER', but you also get the constraint
21375 constraint letters (`I', `J', `K', ... `P') that specify
21383 Like `CONST_OK_FOR_LETTER_P', but you also get the constraint
21389 constraint letters that specify particular ranges of
21404 constraint string passed in STR, so that you can use suffixes to
21409 constraint letters that can be used to segregate specific types of
21417 the constraint letter C. If C is not defined as an extra
21418 constraint, the value returned should be 0 regardless of VALUE.
21422 Constraint letter `Q' is defined as representing a memory address
21424 specified with a `Q' constraint on the input and `r' on the
21429 Like `EXTRA_CONSTRAINT', but you also get the constraint string
21435 constraint letters, amongst those accepted by `EXTRA_CONSTRAINT',
21439 constraint at the start of STR, the first letter of which is the
21448 of an index register. The constraint letter `Q' is defined via
21451 constraint can handle any memory operand, because the reload pass
21454 constraint can handle any memory operand.
21458 constraint letters, amongst those accepted by `EXTRA_CONSTRAINT' /
21463 constraint at the start of STR, which starts with the letter C,
21469 Any constraint marked as `EXTRA_ADDRESS_CONSTRAINT' can only be
21471 analogously to the `p' constraint.
24257 additional constraint to issue insns on the same simulated
31034 * ! in constraint: Multi-Alternative. (line 47)
31035 * # in constraint: Modifiers. (line 67)
31038 * % in constraint: Modifiers. (line 45)
31041 * & in constraint: Modifiers. (line 25)
31045 * * in constraint: Modifiers. (line 72)
31048 * + in constraint: Modifiers. (line 12)
31058 * 0 in constraint: Simple Constraints. (line 118)
31059 * < in constraint: Simple Constraints. (line 46)
31060 * = in constraint: Modifiers. (line 8)
31061 * > in constraint: Simple Constraints. (line 50)
31062 * ? in constraint: Multi-Alternative. (line 41)
32038 * constraint modifier characters: Modifiers. (line 6)
32039 * constraint, matching: Simple Constraints. (line 130)
32041 * constraint_num: C Constraint Interface.
32043 * constraint_satisfied_p: C Constraint Interface.
32050 * constraints, testing: C Constraint Interface.
32268 * digits in constraint: Simple Constraints. (line 118)
32308 * E in constraint: Simple Constraints. (line 77)
32391 * F in constraint: Simple Constraints. (line 82)
32506 * g in constraint: Simple Constraints. (line 108)
32507 * G in constraint: Simple Constraints. (line 86)
32585 * H in constraint: Simple Constraints. (line 86)
32638 * I in constraint: Simple Constraints. (line 69)
32639 * i in constraint: Simple Constraints. (line 58)
32894 * m in constraint: Simple Constraints. (line 17)
32926 * matching constraint: Simple Constraints. (line 130)
33050 * n in constraint: Simple Constraints. (line 63)
33133 * o in constraint: Simple Constraints. (line 21)
33189 * p in constraint: Simple Constraints. (line 152)
33336 * r in constraint: Simple Constraints. (line 54)
33436 * regclass_for_constraint: C Constraint Interface.
33558 * s in constraint: Simple Constraints. (line 90)
33560 * satisfies_constraint_: C Constraint Interface.
34044 * testing constraints: C Constraint Interface.
34233 * V in constraint: Simple Constraints. (line 41)
34274 * voting between constraint alternatives: Class Preferences. (line 6)
34290 * X in constraint: Simple Constraints. (line 112)
34471 Node: C Constraint Interface622799