aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2014-06-11 16:59:17 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2014-06-11 16:59:17 +0000
commit8677664e02258772068ad1fe4672943c998bace8 (patch)
treeebbbc6a5c16fb2f71c030dc719d566bd7b2d0538 /gcc/doc
parent7fd308cffa3775f62d69b63bc9b1cefced10d817 (diff)
downloadgcc-8677664e02258772068ad1fe4672943c998bace8.zip
gcc-8677664e02258772068ad1fe4672943c998bace8.tar.gz
gcc-8677664e02258772068ad1fe4672943c998bace8.tar.bz2
common.md: New file.
gcc/ * common.md: New file. * doc/md.texi: Update description of generic, machine-independent constraints. * config/s390/constraints.md (e): Delete. * Makefile.in (md_file): Include common.md. * config/m32c/t-m32c (md_file): Likewise. * genpreds.c (general_mem): New array. (generic_constraint_letters): Remove constraints now defined by common.md. (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem. Allow the first character to be '<' or '>' as well. * genoutput.c (general_mem): New array. (indep_constraints): Remove constraints now defined by common.md. (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem. Remove special handling of 'm'. * ira-costs.c (record_reg_classes): Remove special handling of constraints now defined by common.md. * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise. * ira-lives.c (single_reg_class): Likewise. (ira_implicitly_set_insn_hard_regs): Likewise. * lra-constraints.c (reg_class_from_constraints): Likewise. (process_alt_operands, process_address, curr_insn_transform): Likewise. * postreload.c (reload_cse_simplify_operands): Likewise. * reload.c (push_secondary_reload, scratch_reload_class) (find_reloads, alternative_allows_const_pool_ref): Likewise. * reload1.c (maybe_fix_stack_asms): Likewise. * targhooks.c (default_secondary_reload): Likewise. * stmt.c (parse_output_constraint): Likewise. * recog.c (preprocess_constraints): Likewise. (constrain_operands, peep2_find_free_register): Likewise. (asm_operand_ok): Likewise, but add a comment saying why 'o' must be handled specially. From-SVN: r211475
Diffstat (limited to 'gcc/doc')
-rw-r--r--gcc/doc/md.texi19
1 files changed, 4 insertions, 15 deletions
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi
index 27a8f49..e17ffca 100644
--- a/gcc/doc/md.texi
+++ b/gcc/doc/md.texi
@@ -4355,16 +4355,8 @@ Use this for constraints that should not appear in @code{asm} statements.
It is occasionally useful to test a constraint from C code rather than
implicitly via the constraint string in a @code{match_operand}. The
generated file @file{tm_p.h} declares a few interfaces for working
-with machine-specific constraints. None of these interfaces work with
-the generic constraints described in @ref{Simple Constraints}. This
-may change in the future.
-
-@strong{Warning:} @file{tm_p.h} may declare other functions that
-operate on constraints, besides the ones documented here. Do not use
-those functions from machine-dependent code. They exist to implement
-the old constraint interface that machine-independent components of
-the compiler still expect. They will change or disappear in the
-future.
+with constraints. At present these are defined for all constraints
+except @code{g} (which is equivalent to @code{general_operand}).
Some valid constraint names are not valid C identifiers, so there is a
mangling scheme for referring to them from C@. Constraint names that
@@ -4391,17 +4383,14 @@ the variable @var{m} is a mangled constraint name (usually as part of
a larger identifier).
@deftp Enum constraint_num
-For each machine-specific constraint, there is a corresponding
+For each constraint except @code{g}, there is a corresponding
enumeration constant: @samp{CONSTRAINT_} plus the mangled name of the
constraint. Functions that take an @code{enum constraint_num} as an
argument expect one of these constants.
-
-Machine-independent constraints do not have associated constants.
-This may change in the future.
@end deftp
@deftypefun {inline bool} satisfies_constraint_@var{m} (rtx @var{exp})
-For each machine-specific, non-register constraint @var{m}, there is
+For each non-register constraint @var{m} except @code{g}, there is
one of these functions; it returns @code{true} if @var{exp} satisfies the
constraint. These functions are only visible if @file{rtl.h} was included
before @file{tm_p.h}.