Merge branch 'master' into devel/sphinx
diff --git a/gcc/d/gdc.texi b/gcc/d/gdc.texi
index d3bf75c..2c7d3d7 100644
--- a/gcc/d/gdc.texi
+++ b/gcc/d/gdc.texi
@@ -11,27 +11,6 @@
 
 @include gcc-common.texi
 
-@c Copyright years for this manual.
-@set copyrights-d 2006-2022
-
-@copying
-@c man begin COPYRIGHT
-Copyright @copyright{} @value{copyrights-d} Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
-A copy of the license is included in the
-@c man end
-section entitled ``GNU Free Documentation License''.
-@ignore
-@c man begin COPYRIGHT
-man page gfdl(7).
-@c man end
-@end ignore
-@end copying
-
 @ifinfo
 @format
 @dircategory Software development
@@ -85,10 +64,8 @@
 @node Invoking gdc
 @chapter Invoking gdc
 
-@c man title gdc A GCC-based compiler for the D language
+@subsubheading Synopsis
 
-@ignore
-@c man begin SYNOPSIS gdc
 gdc [@option{-c}|@option{-S}] [@option{-g}] [@option{-pg}]
     [@option{-O}@var{level}] [@option{-W}@var{warn}@dots{}]
     [@option{-I}@var{dir}@dots{}] [@option{-L}@var{dir}@dots{}]
@@ -97,22 +74,14 @@
 
 Only the most useful options are listed here; see below for the
 remainder.
-@c man end
-@c man begin SEEALSO
-gpl(7), gfdl(7), fsf-funding(7), gcc(1)
-and the Info entries for @file{gdc} and @file{gcc}.
-@c man end
-@end ignore
 
-@c man begin DESCRIPTION gdc
+@subsubheading Description
 
 The @command{gdc} command is the GNU compiler for the D language and
 supports many of the same options as @command{gcc}.  @xref{Option Summary, ,
 Option Summary, gcc, Using the GNU Compiler Collection (GCC)}.
 This manual only documents the options specific to @command{gdc}.
 
-@c man end
-
 @menu
 * Input and Output files::  Controlling the kind of output:
                             an executable, object files, assembler files,
@@ -124,7 +93,7 @@
 * Developer Options::       Options useful for developers of gdc
 @end menu
 
-@c man begin OPTIONS
+@subsubheading Options
 
 @node Input and Output files
 @section Input and Output files
@@ -843,8 +812,6 @@
 
 @end table
 
-@c man end
-
 @node Index
 @unnumbered Index
 
diff --git a/gcc/doc/bugreport.texi b/gcc/doc/bugreport.texi
index 84246fa..5bcdf6a 100644
--- a/gcc/doc/bugreport.texi
+++ b/gcc/doc/bugreport.texi
@@ -85,4 +85,4 @@
 @section How and Where to Report Bugs
 @cindex compiler bugs, reporting
 
-Bugs should be reported to the bug database at @value{BUGURL}.
+Bugs should be reported to the bug database at $$BUGURL$$.
diff --git a/gcc/doc/cpp.texi b/gcc/doc/cpp.texi
index 90b2767..edf22bf 100644
--- a/gcc/doc/cpp.texi
+++ b/gcc/doc/cpp.texi
@@ -8,38 +8,6 @@
 
 @include gcc-common.texi
 
-@copying
-@c man begin COPYRIGHT
-Copyright @copyright{} 1987-2022 Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation.  A copy of
-the license is included in the
-@c man end
-section entitled ``GNU Free Documentation License''.
-@ignore
-@c man begin COPYRIGHT
-man page gfdl(7).
-@c man end
-@end ignore
-
-@c man begin COPYRIGHT
-This manual contains no Invariant Sections.  The Front-Cover Texts are
-(a) (see below), and the Back-Cover Texts are (b) (see below).
-
-(a) The FSF's Front-Cover Text is:
-
-     A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
-     You have freedom to copy and modify this GNU Manual, like GNU
-     software.  Copies published by the Free Software Foundation raise
-     funds for GNU development.
-@c man end
-@end copying
-
 @c Create a separate index for command line options.
 @defcodeindex op
 @syncodeindex vr op
@@ -93,82 +61,6 @@
 * Option Index::
 * Concept Index::
 
-@detailmenu
- --- The Detailed Node Listing ---
-
-Overview
-
-* Character sets::
-* Initial processing::
-* Tokenization::
-* The preprocessing language::
-
-Header Files
-
-* Include Syntax::
-* Include Operation::
-* Search Path::
-* Once-Only Headers::
-* Alternatives to Wrapper #ifndef::
-* Computed Includes::
-* Wrapper Headers::
-* System Headers::
-
-Macros
-
-* Object-like Macros::
-* Function-like Macros::
-* Macro Arguments::
-* Stringizing::
-* Concatenation::
-* Variadic Macros::
-* Predefined Macros::
-* Undefining and Redefining Macros::
-* Directives Within Macro Arguments::
-* Macro Pitfalls::
-
-Predefined Macros
-
-* Standard Predefined Macros::
-* Common Predefined Macros::
-* System-specific Predefined Macros::
-* C++ Named Operators::
-
-Macro Pitfalls
-
-* Misnesting::
-* Operator Precedence Problems::
-* Swallowing the Semicolon::
-* Duplication of Side Effects::
-* Self-Referential Macros::
-* Argument Prescan::
-* Newlines in Arguments::
-
-Conditionals
-
-* Conditional Uses::
-* Conditional Syntax::
-* Deleted Code::
-
-Conditional Syntax
-
-* Ifdef::
-* If::
-* Defined::
-* Else::
-* Elif::
-
-Implementation Details
-
-* Implementation-defined behavior::
-* Implementation limits::
-* Obsolete Features::
-
-Obsolete Features
-
-* Obsolete Features::
-
-@end detailmenu
 @end menu
 
 @insertcopying
@@ -176,7 +68,7 @@
 
 @node Overview
 @chapter Overview
-@c man begin DESCRIPTION
+
 The C preprocessor, often known as @dfn{cpp}, is a @dfn{macro processor}
 that is used automatically by the C compiler to transform your program
 before compilation.  It is called a macro processor because it allows
@@ -225,7 +117,6 @@
 
 For clarity, unless noted otherwise, references to @samp{CPP} in this
 manual refer to GNU CPP@.
-@c man end
 
 @menu
 * Character sets::
@@ -4506,8 +4397,8 @@
 Only options specific to preprocessing behavior are documented here.
 Refer to the GCC manual for full documentation of other driver options.
 
-@ignore
-@c man begin SYNOPSIS
+@subsubheading Synopsis
+
 cpp [@option{-D}@var{macro}[=@var{defn}]@dots{}] [@option{-U}@var{macro}]
     [@option{-I}@var{dir}@dots{}] [@option{-iquote}@var{dir}@dots{}]
     [@option{-M}|@option{-MM}] [@option{-MG}] [@option{-MF} @var{filename}]
@@ -4519,14 +4410,9 @@
 complete list of preprocessor-specific options.  
 In addition, @command{cpp} accepts most @command{gcc} driver options, which
 are not listed here.  Refer to the GCC documentation for details.
-@c man end
-@c man begin SEEALSO
-gpl(7), gfdl(7), fsf-funding(7),
-gcc(1), and the Info entries for @file{cpp} and @file{gcc}.
-@c man end
-@end ignore
 
-@c man begin OPTIONS
+@subsubheading Options
+
 The @command{cpp} command expects two file names as arguments, @var{infile} and
 @var{outfile}.  The preprocessor reads @var{infile} together with any
 other files it specifies with @samp{#include}.  All the output generated
@@ -4557,12 +4443,10 @@
 @include cppdiropts.texi
 @include cppwarnopts.texi
 @end table
-@c man end
 
 @node Environment Variables
 @chapter Environment Variables
 @cindex environment variables
-@c man begin ENVIRONMENT
 
 This section describes the environment variables that affect how CPP
 operates.  You can use them to specify directories or prefixes to use
@@ -4575,7 +4459,6 @@
 configuration of GCC@.
 
 @include cppenv.texi
-@c man end
 
 @page
 @include fdl.texi
diff --git a/gcc/doc/cppdiropts.texi b/gcc/doc/cppdiropts.texi
index 7ab5b8b..392a645 100644
--- a/gcc/doc/cppdiropts.texi
+++ b/gcc/doc/cppdiropts.texi
@@ -1,14 +1,3 @@
-@c Copyright (C) 1999-2022 Free Software Foundation, Inc.
-@c This is part of the CPP and GCC manuals.
-@c For copying conditions, see the file gcc.texi.
-
-@c ---------------------------------------------------------------------
-@c Options affecting include directory search in the preprocessor
-@c ---------------------------------------------------------------------
-
-@c If this file is included with the flag ``cppmanual'' set, it is
-@c formatted for inclusion in the CPP manual; otherwise the main GCC manual.
-
 @item -I @var{dir}
 @itemx -iquote @var{dir}
 @itemx -isystem @var{dir}
diff --git a/gcc/doc/cppenv.texi b/gcc/doc/cppenv.texi
index c8125bd..ca39dd0 100644
--- a/gcc/doc/cppenv.texi
+++ b/gcc/doc/cppenv.texi
@@ -1,14 +1,3 @@
-@c Copyright (C) 1999-2022 Free Software Foundation, Inc.
-@c This is part of the CPP and GCC manuals.
-@c For copying conditions, see the file gcc.texi.
-
-@c ---------------------------------------------------------------------
-@c Environment variables affecting the preprocessor
-@c ---------------------------------------------------------------------
-
-@c If this file is included with the flag ``cppmanual'' set, it is
-@c formatted for inclusion in the CPP manual; otherwise the main GCC manual.
-
 @vtable @env
 @item CPATH
 @itemx C_INCLUDE_PATH
@@ -38,11 +27,9 @@
 @env{CPATH} is @code{:/special/include}, that has the same
 effect as @samp{@w{-I. -I/special/include}}.
 
-@c man end
 @ifset cppmanual
 See also @ref{Search Path}.
 @end ifset
-@c man begin ENVIRONMENT
 
 @item DEPENDENCIES_OUTPUT
 @cindex dependencies for make as output
diff --git a/gcc/doc/cppinternals.texi b/gcc/doc/cppinternals.texi
index 75adbbe..b6a4216 100644
--- a/gcc/doc/cppinternals.texi
+++ b/gcc/doc/cppinternals.texi
@@ -18,7 +18,7 @@
 @ifinfo
 This file documents the internals of the GNU C Preprocessor.
 
-Copyright (C) 2000-2022 Free Software Foundation, Inc.
+Copyright (C) 2000-2021 Free Software Foundation, Inc.
 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
@@ -46,21 +46,7 @@
 @author Neil Booth
 @page
 @vskip 0pt plus 1filll
-@c man begin COPYRIGHT
-Copyright @copyright{} 2000-2022 Free Software Foundation, Inc.
 
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions.
-@c man end
 @end titlepage
 @contents
 @page
diff --git a/gcc/doc/cppopts.texi b/gcc/doc/cppopts.texi
index c0a92b3..8b242a7 100644
--- a/gcc/doc/cppopts.texi
+++ b/gcc/doc/cppopts.texi
@@ -1,14 +1,3 @@
-@c Copyright (C) 1999-2022 Free Software Foundation, Inc.
-@c This is part of the CPP and GCC manuals.
-@c For copying conditions, see the file gcc.texi.
-
-@c ---------------------------------------------------------------------
-@c Options affecting the preprocessor
-@c ---------------------------------------------------------------------
-
-@c If this file is included with the flag ``cppmanual'' set, it is
-@c formatted for inclusion in the CPP manual; otherwise the main GCC manual.
-
 @item -D @var{name}
 @opindex D
 Predefine @var{name} as a macro, with definition @code{1}.
diff --git a/gcc/doc/cppwarnopts.texi b/gcc/doc/cppwarnopts.texi
index fa04824..fb001ae 100644
--- a/gcc/doc/cppwarnopts.texi
+++ b/gcc/doc/cppwarnopts.texi
@@ -1,14 +1,3 @@
-@c Copyright (C) 1999-2022 Free Software Foundation, Inc.
-@c This is part of the CPP and GCC manuals.
-@c For copying conditions, see the file gcc.texi.
-
-@c ---------------------------------------------------------------------
-@c Options affecting preprocessor warnings
-@c ---------------------------------------------------------------------
-
-@c If this file is included with the flag ``cppmanual'' set, it is
-@c formatted for inclusion in the CPP manual; otherwise the main GCC manual.
-
 @item -Wcomment
 @itemx -Wcomments
 @opindex Wcomment
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 8da0db9..9fad55e 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -1,8 +1,3 @@
-c Copyright (C) 1988-2022 Free Software Foundation, Inc.
-
-@c This is part of the GCC manual.
-@c For copying conditions, see the file gcc.texi.
-
 @node C Extensions
 @chapter Extensions to the C Language Family
 @cindex extensions, C language
diff --git a/gcc/doc/gcc.texi b/gcc/doc/gcc.texi
index 21bea70..e3a04bd 100644
--- a/gcc/doc/gcc.texi
+++ b/gcc/doc/gcc.texi
@@ -122,10 +122,8 @@
 This manual documents how to use the GNU compilers,
 as well as their features and incompatibilities, and how to report
 bugs.  It corresponds to the compilers
-@ifset VERSION_PACKAGE
-@value{VERSION_PACKAGE}
-@end ifset
-version @value{version-GCC}.
+$$VERSION_PACKAGE$$
+version $$version-GCC$$.
 The internals of the GNU compilers, including how to port them to new
 targets and some information about how to write front ends for new
 languages, are documented in a separate manual.  @xref{Top,,
diff --git a/gcc/doc/gccint.texi b/gcc/doc/gccint.texi
index f6aa065..6d3a5ce 100644
--- a/gcc/doc/gccint.texi
+++ b/gcc/doc/gccint.texi
@@ -77,10 +77,8 @@
 This manual documents the internals of the GNU compilers, including
 how to port them to new targets and some information about how to
 write front ends for new languages.  It corresponds to the compilers
-@ifset VERSION_PACKAGE
-@value{VERSION_PACKAGE}
-@end ifset
-version @value{version-GCC}.  The use of the GNU compilers is documented in a
+$$VERSION_PACKAGE$$
+version $$version-GCC$$.  The use of the GNU compilers is documented in a
 separate manual.  @xref{Top,, Introduction, gcc, Using the GNU
 Compiler Collection (GCC)}.
 
diff --git a/gcc/doc/gcov-dump.texi b/gcc/doc/gcov-dump.texi
index 0491ab1..34f2ef7 100644
--- a/gcc/doc/gcov-dump.texi
+++ b/gcc/doc/gcov-dump.texi
@@ -1,73 +1,29 @@
-@c Copyright (C) 2017-2022 Free Software Foundation, Inc.
+@c Copyright (C) 2017-2021 Free Software Foundation, Inc.
 @c This is part of the GCC manual.
 @c For copying conditions, see the file gcc.texi.
 
-@ignore
-@c man begin COPYRIGHT
-Copyright @copyright{} 2017-2022 Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being ``GNU General Public License'' and ``Funding
-Free Software'', the Front-Cover texts being (a) (see below), and with
-the Back-Cover Texts being (b) (see below).  A copy of the license is
-included in the gfdl(7) man page.
-
-(a) The FSF's Front-Cover Text is:
-
-     A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
-     You have freedom to copy and modify this GNU Manual, like GNU
-     software.  Copies published by the Free Software Foundation raise
-     funds for GNU development.
-@c man end
-@c Set file name and title for the man page.
-@setfilename gcov-dump
-@settitle offline gcda and gcno profile dump tool
-@end ignore
 
 @node Gcov-dump
 @chapter @command{gcov-dump}---an Offline Gcda and Gcno Profile Dump Tool
 
-@menu
-* Gcov-dump Intro::             Introduction to gcov-dump.
-* Invoking Gcov-dump::          How to use gcov-dump.
-@end menu
-
-@node Gcov-dump Intro
-@section Introduction to @command{gcov-dump}
-@c man begin DESCRIPTION
+@subsubheading Description
 
 @command{gcov-dump} is a tool you can use in conjunction with GCC to
 dump content of gcda and gcno profile files offline.
 
-@c man end
+@subsubheading Synopsis
 
-@node Invoking Gcov-dump
-@section Invoking @command{gcov-dump}
-
-@smallexample
-Usage: gcov-dump @r{[}@var{OPTION}@r{]} ... @var{gcovfiles}
-@end smallexample
-
-@command{gcov-dump} accepts the following options:
-
-@ignore
-@c man begin SYNOPSIS
-gcov-dump [@option{-v}|@option{--version}]
+gcov-dump
+     [@option{-v}|@option{--version}]
      [@option{-h}|@option{--help}]
      [@option{-l}|@option{--long}]
      [@option{-p}|@option{--positions}]
      [@option{-r}|@option{--raw}]
      [@option{-s}|@option{--stable}]
-     @var{gcovfiles}
-@c man end
-@end ignore
+     [@var{gcovfiles}]
 
-@c man begin OPTIONS
+@subsubheading Options
+
 @table @gcctabopt
 @item -h
 @itemx --help
@@ -95,5 +51,3 @@
 Display the @command{gcov-dump} version number (on the standard output),
 and exit without doing any further processing.
 @end table
-
-@c man end
diff --git a/gcc/doc/gcov-tool.texi b/gcc/doc/gcov-tool.texi
index 7715083..7f39379 100644
--- a/gcc/doc/gcov-tool.texi
+++ b/gcc/doc/gcov-tool.texi
@@ -1,34 +1,7 @@
-@c Copyright (C) 2014-2022 Free Software Foundation, Inc.
+@c Copyright (C) 2014-2021 Free Software Foundation, Inc.
 @c This is part of the GCC manual.
 @c For copying conditions, see the file gcc.texi.
 
-@ignore
-@c man begin COPYRIGHT
-Copyright @copyright{} 2014-2022 Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being ``GNU General Public License'' and ``Funding
-Free Software'', the Front-Cover texts being (a) (see below), and with
-the Back-Cover Texts being (b) (see below).  A copy of the license is
-included in the gfdl(7) man page.
-
-(a) The FSF's Front-Cover Text is:
-
-     A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
-     You have freedom to copy and modify this GNU Manual, like GNU
-     software.  Copies published by the Free Software Foundation raise
-     funds for GNU development.
-@c man end
-@c Set file name and title for the man page.
-@setfilename gcov-tool
-@settitle offline gcda profile processing tool
-@end ignore
-
 @node Gcov-tool
 @chapter @command{gcov-tool}---an Offline Gcda Profile Processing Tool
 
@@ -42,7 +15,8 @@
 
 @node Gcov-tool Intro
 @section Introduction to @command{gcov-tool}
-@c man begin DESCRIPTION
+
+@subsubheading Description
 
 @command{gcov-tool} is an offline tool to process gcc's gcda profile files.
 
@@ -107,8 +81,6 @@
 in these kind of counters.
 @end itemize
 
-@c man end
-
 @node Invoking Gcov-tool
 @section Invoking @command{gcov-tool}
 
@@ -118,8 +90,8 @@
 
 @command{gcov-tool} accepts the following options:
 
-@ignore
-@c man begin SYNOPSIS
+@subsubheading Synopsis
+
 gcov-tool [@option{-v}|@option{--version}] [@option{-h}|@option{--help}]
 
 gcov-tool merge [merge-options] @var{directory1} @var{directory2}
@@ -145,14 +117,8 @@
      [@option{-t}|@option{--hot_threshold}] @var{float}
      [@option{-v}|@option{--verbose}]
 
-@c man end
-@c man begin SEEALSO
-gpl(7), gfdl(7), fsf-funding(7), gcc(1), gcov(1) and the Info entry for
-@file{gcc}.
-@c man end
-@end ignore
+@subsubheading Options
 
-@c man begin OPTIONS
 @table @gcctabopt
 @item -h
 @itemx --help
@@ -263,5 +229,3 @@
 @end table
 
 @end table
-
-@c man end
diff --git a/gcc/doc/gcov.texi b/gcc/doc/gcov.texi
index a1f7d26..b405534 100644
--- a/gcc/doc/gcov.texi
+++ b/gcc/doc/gcov.texi
@@ -1,34 +1,7 @@
-@c Copyright (C) 1996-2022 Free Software Foundation, Inc.
+@c Copyright (C) 1996-2021 Free Software Foundation, Inc.
 @c This is part of the GCC manual.
 @c For copying conditions, see the file gcc.texi.
 
-@ignore
-@c man begin COPYRIGHT
-Copyright @copyright{} 1996-2022 Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being ``GNU General Public License'' and ``Funding
-Free Software'', the Front-Cover texts being (a) (see below), and with
-the Back-Cover Texts being (b) (see below).  A copy of the license is
-included in the gfdl(7) man page.
-
-(a) The FSF's Front-Cover Text is:
-
-     A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
-     You have freedom to copy and modify this GNU Manual, like GNU
-     software.  Copies published by the Free Software Foundation raise
-     funds for GNU development.
-@c man end
-@c Set file name and title for the man page.
-@setfilename gcov
-@settitle coverage testing tool
-@end ignore
-
 @node Gcov
 @chapter @command{gcov}---a Test Coverage Program
 
@@ -47,7 +20,6 @@
 
 @node Gcov Intro
 @section Introduction to @command{gcov}
-@c man begin DESCRIPTION
 
 @command{gcov} is a test coverage program.  Use it in concert with GCC
 to analyze your programs to help create more efficient, faster running
@@ -107,8 +79,6 @@
 @command{gcov} works only on code compiled with GCC@.  It is not
 compatible with any other profiling or test coverage mechanism.
 
-@c man end
-
 @node Invoking Gcov
 @section Invoking @command{gcov}
 
@@ -118,8 +88,9 @@
 
 @command{gcov} accepts the following options:
 
-@ignore
-@c man begin SYNOPSIS
+
+@subsubheading Synopsis
+
 gcov [@option{-v}|@option{--version}] [@option{-h}|@option{--help}]
      [@option{-a}|@option{--all-blocks}]
      [@option{-b}|@option{--branch-probabilities}]
@@ -141,13 +112,9 @@
      [@option{-u}|@option{--unconditional-branches}]
      [@option{-x}|@option{--hash-filenames}]
      @var{files}
-@c man end
-@c man begin SEEALSO
-gpl(7), gfdl(7), fsf-funding(7), gcc(1) and the Info entry for @file{gcc}.
-@c man end
-@end ignore
 
-@c man begin OPTIONS
+@subsubheading Options
+
 @table @gcctabopt
 
 @item -a
@@ -906,8 +873,6 @@
 That can help users to find profile clashing which leads
 to a misleading profile.
 
-@c man end
-
 @node Gcov Data Files
 @section Brief Description of @command{gcov} Data Files
 
diff --git a/gcc/doc/include/fdl.texi b/gcc/doc/include/fdl.texi
index e2bcdfd..45b40c7 100644
--- a/gcc/doc/include/fdl.texi
+++ b/gcc/doc/include/fdl.texi
@@ -19,7 +19,7 @@
 @ifset gfdlhtml
 @ifnothtml
 @comment node-name,     next,          previous, up
-@node    GNU Free Documentation License, Concept Index, Specific, Top
+@node    GNU Free Documentation License
 @end ifnothtml
 @html
 <h1 align="center">Installing GCC: GNU Free Documentation License</h1>
diff --git a/gcc/doc/include/funding.texi b/gcc/doc/include/funding.texi
index d1583fa..f138b1b 100644
--- a/gcc/doc/include/funding.texi
+++ b/gcc/doc/include/funding.texi
@@ -1,13 +1,4 @@
-@ignore
-@c Set file name and title for man page.
-@setfilename fsf-funding
-@settitle Funding Free Software
-@c man begin SEEALSO
-gpl(7), gfdl(7).
-@c man end
-@end ignore
 @node Funding
-@c man begin DESCRIPTION
 @unnumbered Funding Free Software
 
 If you want to have more free software a few years from now, it makes
@@ -49,12 +40,3 @@
 By establishing the idea that supporting further development is ``the
 proper thing to do'' when distributing free software for a fee, we can
 assure a steady flow of resources into making more free software.
-@c man end
-
-@display
-@c man begin COPYRIGHT
-Copyright @copyright{} 1994 Free Software Foundation, Inc.
-Verbatim copying and redistribution of this section is permitted
-without royalty; alteration is not permitted.
-@c man end
-@end display
diff --git a/gcc/doc/include/gcc-common.texi b/gcc/doc/include/gcc-common.texi
index 4365e4f..f61029e 100644
--- a/gcc/doc/include/gcc-common.texi
+++ b/gcc/doc/include/gcc-common.texi
@@ -1,17 +1,5 @@
-@c Copyright (C) 2001-2022 Free Software Foundation, Inc.
-@c This is part of the GCC manual.
-@c For copying conditions, see the file gcc.texi.
-
-@c Version number and development mode.
-@c version-GCC is @set to the base GCC version number.
-@c DEVELOPMENT is @set for an in-development version, @clear for a
-@c release version (corresponding to ``experimental''/anything else
-@c in gcc/DEV-PHASE).
-
 @include gcc-vers.texi
 
-@c Common macros to support generating man pages:
-
 @macro gcctabopt{body}
 @code{\body\}
 @end macro
@@ -20,9 +8,6 @@
 \body\
 @end smallexample
 @end macro
-@c Makeinfo handles the above macro OK, TeX needs manual line breaks;
-@c they get lost at some point in handling the macro.  But if @macro is
-@c used here rather than @alias, it produces double line breaks.
 @iftex
 @alias gol = *
 @end iftex
@@ -31,43 +16,27 @@
 @end macro
 @end ifnottex
 
-@c For FSF printing, define FSFPRINT.  Also update the ISBN and last
-@c printing date for the manual being printed.
-@c @set FSFPRINT
 @ifset FSFPRINT
 @smallbook
 @finalout
-@c Cause even numbered pages to be printed on the left hand side of
-@c the page and odd numbered pages to be printed on the right hand
-@c side of the page.  Using this, you can print on both sides of a
-@c sheet of paper and have the text on the same part of the sheet.
 
-@c The text on right hand pages is pushed towards the right hand
-@c margin and the text on left hand pages is pushed toward the left
-@c hand margin.
-@c (To provide the reverse effect, set bindingoffset to -0.75in.)
 @tex
 \global\bindingoffset=0.75in
 \global\normaloffset =0.75in
 @end tex
 @end ifset
 
-@c Macro to generate a "For the N.N.N version" subtitle on the title
-@c page of TeX documentation.  This macro should be used in the
-@c titlepage environment after the title and any other subtitles have
-@c been placed, and before any authors are placed.
 @macro versionsubtitle
 @ifclear DEVELOPMENT
-@subtitle For @sc{gcc} version @value{version-GCC}
+@subtitle For @sc{gcc} version $$version-GCC$$ $$development-GCC$$
 @end ifclear
 @ifset DEVELOPMENT
-@subtitle For @sc{gcc} version @value{version-GCC} (pre-release)
+@subtitle For @sc{gcc} version $$version-GCC$$ $$development-GCC$$
 @end ifset
 @ifset VERSION_PACKAGE
 @sp 1
-@subtitle @value{VERSION_PACKAGE}
+@subtitle $$VERSION_PACKAGE$$
 @end ifset
-@c Even if there are no authors, the second titlepage line should be
-@c forced to the bottom of the page.
+
 @vskip 0pt plus 1filll
 @end macro
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index a01b805..b519934 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -92,6 +92,8 @@
 * gccinstall: (gccinstall).    Installing the GNU Compiler Collection.
 @end direntry
 
+@top Introduction
+
 @c Part 3 Titlepage and Copyright
 @titlepage
 @title Installing GCC
@@ -105,7 +107,7 @@
 
 @c Part 4 Top node, Master Menu, and/or Table of Contents
 @ifinfo
-@node    Top, , , (dir)
+@node    Top
 @comment node-name, next,          Previous, up
 
 @menu
@@ -129,7 +131,7 @@
 @c ***Installing GCC**********************************************************
 @ifnothtml
 @comment node-name,     next,          previous, up
-@node    Installing GCC, Binaries, , Top
+@node    Installing GCC
 @end ifnothtml
 @ifset indexhtml
 @ifnothtml
@@ -149,12 +151,7 @@
 package-specific installation instructions.
 
 @emph{Before} starting the build/install procedure please check the
-@ifnothtml
 @ref{Specific, host/target specific installation notes}.
-@end ifnothtml
-@ifhtml
-@uref{specific.html,,host/target specific installation notes}.
-@end ifhtml
 We recommend you browse the entire generic installation instructions before
 you proceed.
 
@@ -212,7 +209,7 @@
 @c ***Prerequisites**************************************************
 @ifnothtml
 @comment node-name,     next,          previous, up
-@node    Prerequisites, Downloading the source, , Installing GCC
+@node    Prerequisites
 @end ifnothtml
 @ifset prerequisiteshtml
 @ifnothtml
@@ -553,7 +550,7 @@
 @c ***Downloading the source**************************************************
 @ifnothtml
 @comment node-name,     next,          previous, up
-@node    Downloading the source, Configuration, Prerequisites, Installing GCC
+@node    Downloading the source
 @end ifnothtml
 @ifset downloadhtml
 @ifnothtml
@@ -605,14 +602,14 @@
 @c ***Configuration***********************************************************
 @ifnothtml
 @comment node-name,     next,          previous, up
-@node    Configuration, Building, Downloading the source, Installing GCC
+@node    Configuration
 @end ifnothtml
 @ifset configurehtml
 @ifnothtml
-@chapter Installing GCC: Configuration
+@chapter Configuration
 @end ifnothtml
 @cindex Configuration
-@cindex Installing GCC: Configuration
+@cindex Configuration
 
 Like most GNU software, GCC must be configured before it can be built.
 This document describes the recommended configuration procedure
@@ -660,12 +657,7 @@
 compatible, else the bootstrap will fail with linker errors about
 incompatible object file formats.  Several multilibed targets are
 affected by this requirement, see
-@ifnothtml
-@ref{Specific, host/target specific installation notes}.
-@end ifnothtml
-@ifhtml
-@uref{specific.html,,host/target specific installation notes}.
-@end ifhtml
+Specific, host/target specific installation notes.
 @end ignore
 
 To configure GCC:
@@ -865,13 +857,7 @@
 This can be useful if you need to turn on a non-standard feature by
 default without modifying the compiler's source code, for instance
 @option{--with-specs=%@{!fcommon:%@{!fno-common:-fno-common@}@}}.
-@ifnothtml
-@xref{Spec Files,, Specifying subprocesses and the switches to pass to them,
-gcc, Using the GNU Compiler Collection (GCC)},
-@end ifnothtml
-@ifhtml
 See ``Spec Files'' in the main manual
-@end ifhtml
 
 @end table
 
@@ -1209,13 +1195,7 @@
 expected to be defined in these fragments are not stable across GCC
 releases, so make sure they define the @code{MULTILIB}-related macros
 expected by the version of GCC you are building.
-@ifnothtml
-@xref{Target Fragment,, Target Makefile Fragments, gccint, GNU Compiler
-Collection (GCC) Internals}.
-@end ifnothtml
-@ifhtml
 See ``Target Makefile Fragments'' in the internals manual.
-@end ifhtml
 
 The table below gives the combination of ISAs, architectures, FPUs and
 floating-point ABIs for which multilibs are built for each predefined
@@ -1830,13 +1810,7 @@
 enabled may bloat the TOC, eventually leading to @code{TOC overflow} errors,
 requiring the use of either the @option{-Wl,-bbigtoc} linker flag (seen to
 break with the @code{GDB} debugger) or some of the TOC-related compiler flags,
-@ifnothtml
-@xref{RS/6000 and PowerPC Options,, RS/6000 and PowerPC Options, gcc,
-Using the GNU Compiler Collection (GCC)}.
-@end ifnothtml
-@ifhtml
 see ``RS/6000 and PowerPC Options'' in the main manual.
-@end ifhtml
 
 @option{--with-aix-soname} is currently supported by @samp{libgcc_s} only, so
 this option is still experimental and not for normal use yet.
@@ -1943,26 +1917,14 @@
 
 @item --enable-secureplt
 This option enables @option{-msecure-plt} by default for powerpc-linux.
-@ifnothtml
-@xref{RS/6000 and PowerPC Options,, RS/6000 and PowerPC Options, gcc,
-Using the GNU Compiler Collection (GCC)},
-@end ifnothtml
-@ifhtml
 See ``RS/6000 and PowerPC Options'' in the main manual
-@end ifhtml
 
 @item --enable-default-ssp
 Turn on @option{-fstack-protector-strong} by default.
 
 @item --enable-cld
 This option enables @option{-mcld} by default for 32-bit x86 targets.
-@ifnothtml
-@xref{i386 and x86-64 Options,, i386 and x86-64 Options, gcc,
-Using the GNU Compiler Collection (GCC)},
-@end ifnothtml
-@ifhtml
 See ``i386 and x86-64 Options'' in the main manual
-@end ifhtml
 
 @item --enable-large-address-aware
 The @option{--enable-large-address-aware} option arranges for MinGW
@@ -2684,13 +2646,13 @@
 @c ***Building****************************************************************
 @ifnothtml
 @comment node-name,     next,          previous, up
-@node    Building, Testing, Configuration, Installing GCC
+@node    Building
 @end ifnothtml
 @ifset buildhtml
 @ifnothtml
 @chapter Building
 @end ifnothtml
-@cindex Installing GCC: Building
+@cindex Building
 
 Now that GCC is configured, you are ready to build the compiler and
 runtime libraries.
@@ -3080,14 +3042,14 @@
 @c ***Testing*****************************************************************
 @ifnothtml
 @comment node-name,     next,          previous, up
-@node    Testing, Final install, Building, Installing GCC
+@node    Testing
 @end ifnothtml
 @ifset testhtml
 @ifnothtml
-@chapter Installing GCC: Testing
+@chapter Testing
 @end ifnothtml
 @cindex Testing
-@cindex Installing GCC: Testing
+@cindex Testing
 @cindex Testsuite
 
 Before you install GCC, we encourage you to run the testsuites and to
@@ -3312,11 +3274,11 @@
 @c ***Final install***********************************************************
 @ifnothtml
 @comment node-name,     next,          previous, up
-@node    Final install, , Testing, Installing GCC
+@node    Final install
 @end ifnothtml
 @ifset finalinstallhtml
 @ifnothtml
-@chapter Installing GCC: Final installation
+@chapter Final installation
 @end ifnothtml
 
 Now that GCC has been built (and optionally tested), you can install it with
@@ -3471,14 +3433,14 @@
 @c ***Binaries****************************************************************
 @ifnothtml
 @comment node-name,     next,          previous, up
-@node    Binaries, Specific, Installing GCC, Top
+@node    Binaries
 @end ifnothtml
 @ifset binarieshtml
 @ifnothtml
-@chapter Installing GCC: Binaries
+@chapter Binaries
 @end ifnothtml
 @cindex Binaries
-@cindex Installing GCC: Binaries
+@cindex Binaries
 
 We are often asked about pre-compiled versions of GCC@.  While we cannot
 provide these for all platforms, below you'll find links to binaries for
@@ -3555,7 +3517,7 @@
 @c ***Specific****************************************************************
 @ifnothtml
 @comment node-name,     next,          previous, up
-@node    Specific, GNU Free Documentation License, Binaries, Top
+@node    Specific
 @end ifnothtml
 @ifset specifichtml
 @ifnothtml
@@ -5255,7 +5217,7 @@
 @c Part 6 The End of the Document
 @ifinfo
 @comment node-name,     next,          previous, up
-@node    Concept Index, , GNU Free Documentation License, Top
+@node    Concept Index
 @end ifinfo
 
 @ifinfo
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 975ee64..f367c3a 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -1,37 +1,11 @@
-@c Copyright (C) 1988-2022 Free Software Foundation, Inc.
+@c Copyright (C) 1988-2021 Free Software Foundation, Inc.
 @c This is part of the GCC manual.
 @c For copying conditions, see the file gcc.texi.
 
-@ignore
-@c man begin INCLUDE
-@include gcc-vers.texi
-@c man end
-
-@c man begin COPYRIGHT
-Copyright @copyright{} 1988-2022 Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being ``GNU General Public License'' and ``Funding
-Free Software'', the Front-Cover texts being (a) (see below), and with
-the Back-Cover Texts being (b) (see below).  A copy of the license is
-included in the gfdl(7) man page.
-
-(a) The FSF's Front-Cover Text is:
-
-     A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
-     You have freedom to copy and modify this GNU Manual, like GNU
-     software.  Copies published by the Free Software Foundation raise
-     funds for GNU development.
-@c man end
-@c Set file name and title for the man page.
 @setfilename gcc
-@settitle GNU project C and C++ compiler
-@c man begin SYNOPSIS
+
+@subsubheading Synopsis
+
 gcc [@option{-c}|@option{-S}|@option{-E}] [@option{-std=}@var{standard}]
     [@option{-g}] [@option{-pg}] [@option{-O}@var{level}]
     [@option{-W}@var{warn}@dots{}] [@option{-Wpedantic}]
@@ -42,23 +16,12 @@
 
 Only the most useful options are listed here; see below for the
 remainder.  @command{g++} accepts mostly the same options as @command{gcc}.
-@c man end
-@c man begin SEEALSO
-gpl(7), gfdl(7), fsf-funding(7),
-cpp(1), gcov(1), as(1), ld(1), gdb(1)
-and the Info entries for @file{gcc}, @file{cpp}, @file{as},
-@file{ld}, @file{binutils} and @file{gdb}.
-@c man end
-@c man begin BUGS
 For instructions on reporting bugs, see
-@w{@value{BUGURL}}.
-@c man end
-@c man begin AUTHOR
+$$BUGURL$$.
+
 See the Info entry for @command{gcc}, or
 @w{@uref{https://gcc.gnu.org/onlinedocs/gcc/Contributors.html}},
 for contributors to GCC@.
-@c man end
-@end ignore
 
 @node Invoking GCC
 @chapter GCC Command Options
@@ -66,7 +29,8 @@
 @cindex command options
 @cindex options, GCC command
 
-@c man begin DESCRIPTION
+@subsubheading Description
+
 When you invoke GCC, it normally does preprocessing, compilation,
 assembly and linking.  The ``overall options'' allow you to stop this
 process at an intermediate stage.  For example, the @option{-c} option
@@ -136,8 +100,6 @@
 IEC, and other relevant national and international standards for the full
 listing and explanation of the binary and decimal byte size prefixes.
 
-@c man end
-
 @xref{Option Index}, for an index to GCC's options.
 
 @menu
@@ -175,7 +137,7 @@
 * C++ Modules::		Experimental C++20 module system.
 @end menu
 
-@c man begin OPTIONS
+@subsubheading Options
 
 @node Option Summary
 @section Option Summary
@@ -21161,8 +21123,6 @@
 @opindex mapcs
 This is a synonym for @option{-mapcs-frame} and is deprecated.
 
-@ignore
-@c not currently implemented
 @item -mapcs-stack-check
 @opindex mapcs-stack-check
 Generate code to check the amount of stack space available upon entry to
@@ -21173,12 +21133,10 @@
 system is required to provide these functions.  The default is
 @option{-mno-apcs-stack-check}, since this produces smaller code.
 
-@c not currently implemented
 @item -mapcs-reentrant
 @opindex mapcs-reentrant
 Generate reentrant, position-independent code.  The default is
 @option{-mno-apcs-reentrant}.
-@end ignore
 
 @item -mthumb-interwork
 @opindex mthumb-interwork
@@ -34087,8 +34045,6 @@
 These are listed under @xref{S/390 and zSeries Options}.
 
 
-@c man end
-
 @node Spec Files
 @section Specifying Subprocesses and the Switches to Pass to Them
 @cindex Spec Files
@@ -34790,7 +34746,8 @@
 @section Environment Variables Affecting GCC
 @cindex environment variables
 
-@c man begin ENVIRONMENT
+@subsubheading Environment
+
 This section describes several environment variables that affect how GCC
 operates.  Some of them work by specifying directories or prefixes to use
 when searching for various kinds of files.  Some are used to specify other
@@ -34959,8 +34916,6 @@
 
 @include cppenv.texi
 
-@c man end
-
 @node Precompiled Headers
 @section Using Precompiled Headers
 @cindex precompiled headers
diff --git a/gcc/doc/lto-dump.texi b/gcc/doc/lto-dump.texi
index d7fb346..54d4cc1 100644
--- a/gcc/doc/lto-dump.texi
+++ b/gcc/doc/lto-dump.texi
@@ -1,63 +1,20 @@
-@c Copyright (C) 2018-2022 Free Software Foundation, Inc.
+@c Copyright (C) 2018-2021 Free Software Foundation, Inc.
 @c This is part of the GCC manual.
 @c For copying conditions, see the file gcc.texi.
 
-@ignore
-@c man begin COPYRIGHT
-Copyright @copyright{} 2017-2022 Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being ``GNU General Public License'' and ``Funding
-Free Software'', the Front-Cover texts being (a) (see below), and with
-the Back-Cover Texts being (b) (see below).  A copy of the license is
-included in the gfdl(7) man page.
-
-(a) The FSF's Front-Cover Text is:
-
-     A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
-     You have freedom to copy and modify this GNU Manual, like GNU
-     software.  Copies published by the Free Software Foundation raise
-     funds for GNU development.
-@c man end
-@c Set file name and title for the man page.
-@setfilename lto-dump
-@settitle Tool for dumping LTO object files.
-@end ignore
 
 @node lto-dump
 @chapter @command{lto-dump}---Tool for dumping LTO object files.
 
-@menu
-* lto-dump Intro::             Introduction to lto-dump.
-* Invoking lto-dump::          How to use lto-dump.
-@end menu
-
-@node lto-dump Intro
-@section Introduction to @command{lto-dump}
-@c man begin DESCRIPTION
+@subsubheading Description
 
 @command{lto-dump} is a tool you can use in conjunction with GCC to
 dump link time optimization object files.
 
-@c man end
+@subsubheading Synopsis
 
-@node Invoking lto-dump
-@section Invoking @command{lto-dump}
-
-@smallexample
-Usage: lto-dump @r{[}@var{OPTION}@r{]} ... @var{objfiles}
-@end smallexample
-
-@command{lto-dump} accepts the following options:
-
-@ignore
-@c man begin SYNOPSIS
-lto-dump [@option{-list}]
+lto-dump
+     [@option{-list}]
      [@option{-demangle}]
      [@option{-defined-only}]
      [@option{-print-value}]
@@ -73,10 +30,9 @@
      [@option{-dump-level=}]
      [@option{-dump-body=}]
      [@option{-help}] @var{lto-dump}
-@c man end
-@end ignore
 
-@c man begin OPTIONS
+@subsubheading Options
+
 @table @gcctabopt
 @item -list
 Dumps list of details of functions and variables.
@@ -127,5 +83,3 @@
 Display the dump tool help.
 
 @end table
-
-@c man end
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 8572313..b17e42b 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -400,11 +400,13 @@
 @end defmac
 
 @deftypevr {Common Target Hook} bool TARGET_ALWAYS_STRIP_DOTDOT
+@c hook-start:TARGET_ALWAYS_STRIP_DOTDOT
 True if @file{..} components should always be removed from directory names
 computed relative to GCC's internal directories, false (default) if such
 components should be preserved and directory names containing them passed
 to other tools such as the linker.
 @end deftypevr
+@c hook-end
 
 @defmac MULTILIB_DEFAULTS
 Define this macro as a C expression for the initializer of an array of
@@ -670,6 +672,8 @@
 @end deftypevar
 
 @deftypevr {Common Target Hook} int TARGET_DEFAULT_TARGET_FLAGS
+@c hook-start:TARGET_DEFAULT_TARGET_FLAGS
+@c hook-end
 This variable specifies the initial value of @code{target_flags}.
 Its default setting is 0.
 @end deftypevr
@@ -678,6 +682,8 @@
 @cindex features, optional, in system conventions
 
 @deftypefn {Common Target Hook} bool TARGET_HANDLE_OPTION (struct gcc_options *@var{opts}, struct gcc_options *@var{opts_set}, const struct cl_decoded_option *@var{decoded}, location_t @var{loc})
+@c hook-start:TARGET_HANDLE_OPTION
+@c hook-end
 This hook is called whenever the user specifies one of the
 target-specific options described by the @file{.opt} definition files
 (@pxref{Options}).  It has the opportunity to do some option-specific
@@ -692,6 +698,8 @@
 @end deftypefn
 
 @deftypefn {C Target Hook} bool TARGET_HANDLE_C_OPTION (size_t @var{code}, const char *@var{arg}, int @var{value})
+@c hook-start:TARGET_HANDLE_C_OPTION
+@c hook-end
 This target hook is called whenever the user specifies one of the
 target-specific C language family options described by the @file{.opt}
 definition files(@pxref{Options}).  It has the opportunity to do some
@@ -706,6 +714,7 @@
 @end deftypefn
 
 @deftypefn {C Target Hook} tree TARGET_OBJC_CONSTRUCT_STRING_OBJECT (tree @var{string})
+@c hook-start:TARGET_OBJC_CONSTRUCT_STRING_OBJECT
 Targets may provide a string object type that can be used within
 and between C, C++ and their respective Objective-C dialects.
 A string object might, for example, embed encoding and length information.
@@ -719,21 +728,28 @@
 At present, the hook is used by Objective-C only, to obtain a
  common-format string object when the target provides one.
 @end deftypefn
+@c hook-end
 
 @deftypefn {C Target Hook} void TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE (const char *@var{classname})
+@c hook-start:TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE
 Declare that Objective C class @var{classname} is referenced
 by the current TU.
 @end deftypefn
+@c hook-end
 
 @deftypefn {C Target Hook} void TARGET_OBJC_DECLARE_CLASS_DEFINITION (const char *@var{classname})
+@c hook-start:TARGET_OBJC_DECLARE_CLASS_DEFINITION
 Declare that Objective C class @var{classname} is defined
 by the current TU.
 @end deftypefn
+@c hook-end
 
 @deftypefn {C Target Hook} bool TARGET_STRING_OBJECT_REF_TYPE_P (const_tree @var{stringref})
+@c hook-start:TARGET_STRING_OBJECT_REF_TYPE_P
 If a target implements string objects then this hook should return
 @code{true} if @var{stringref} is a valid reference to such an object.
 @end deftypefn
+@c hook-end
 
 @deftypefn {C Target Hook} void TARGET_CHECK_STRING_OBJECT_FORMAT_ARG (tree @var{format_arg}, tree @var{args_list})
 If a target implements string objects then this hook should
@@ -741,8 +757,10 @@
 against the format specifiers in @var{format_arg} where the type of
 @var{format_arg} is one recognized as a valid string reference type.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE (void)
+@c hook-start:TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE
 This target function is similar to the hook @code{TARGET_OPTION_OVERRIDE}
 but is called when the optimize level is changed via an attribute or
 pragma or when it is reset at the end of the code affected by the
@@ -751,6 +769,7 @@
 actions then, you should have @code{TARGET_OPTION_OVERRIDE} call
 @code{TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE}.
 @end deftypefn
+@c hook-end
 
 @defmac C_COMMON_OVERRIDE_OPTIONS
 This is similar to the @code{TARGET_OPTION_OVERRIDE} hook
@@ -761,6 +780,8 @@
 @end defmac
 
 @deftypevr {Common Target Hook} {const struct default_options *} TARGET_OPTION_OPTIMIZATION_TABLE
+@c hook-start:TARGET_OPTION_OPTIMIZATION_TABLE
+@c hook-end
 Some machines may desire to change what optimizations are performed for
 various optimization levels.   This variable, if defined, describes
 options to enable at particular sets of optimization levels.  These
@@ -775,8 +796,10 @@
 @end deftypevr
 
 @deftypefn {Common Target Hook} void TARGET_OPTION_INIT_STRUCT (struct gcc_options *@var{opts})
+@c hook-start:TARGET_OPTION_INIT_STRUCT
 Set target-dependent initial values of fields in @var{opts}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Common Target Hook} {const char *} TARGET_COMPUTE_MULTILIB (const struct switchstr *@var{switches}, int @var{n_switches}, const char *@var{multilib_dir}, const char *@var{multilib_defaults}, const char *@var{multilib_select}, const char *@var{multilib_matches}, const char *@var{multilib_exclusions}, const char *@var{multilib_reuse})
 Some targets like RISC-V might have complicated multilib reuse rules which
@@ -815,6 +838,7 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P (void)
+@c hook-start:TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P
 Returns true if the target supports IEEE 754 floating-point exceptions
 and rounding modes, false otherwise.  This is intended to relate to the
 @code{float} and @code{double} types, but not necessarily @code{long double}.
@@ -823,6 +847,7 @@
 point supports exceptions and rounding modes but software floating point
 does not.
 @end deftypefn
+@c hook-end
 
 @node Per-Function Data
 @section Defining data structures for per-function information.
@@ -996,6 +1021,7 @@
 @end defmac
 
 @deftypefn {Target Hook} {enum flt_eval_method} TARGET_C_EXCESS_PRECISION (enum excess_precision_type @var{type})
+@c hook-start:TARGET_C_EXCESS_PRECISION
 Return a value, with the same meaning as the C99 macro
 @code{FLT_EVAL_METHOD} that describes which excess precision should be
 applied.  @var{type} is either @code{EXCESS_PRECISION_TYPE_IMPLICIT},
@@ -1019,8 +1045,10 @@
 Return a value, with the same meaning as the C99 macro
 @code{FLT_EVAL_METHOD} that describes which excess precision should be
 applied.
+@c hook-end
 
 @deftypefn {Target Hook} machine_mode TARGET_PROMOTE_FUNCTION_MODE (const_tree @var{type}, machine_mode @var{mode}, int *@var{punsignedp}, const_tree @var{funtype}, int @var{for_return})
+@c hook-start:TARGET_PROMOTE_FUNCTION_MODE
 Like @code{PROMOTE_MODE}, but it is applied to outgoing function arguments or
 function return values.  The target hook should return the new mode
 and possibly change @code{*@var{punsignedp}} if the promotion should
@@ -1041,6 +1069,7 @@
 also define the hook to @code{default_promote_function_mode_always_promote}
 if you would like to apply the same rules given by @code{PROMOTE_MODE}.
 @end deftypefn
+@c hook-end
 
 @defmac PARM_BOUNDARY
 Normal alignment required for function parameters on the stack, in
@@ -1082,10 +1111,12 @@
 @end defmac
 
 @deftypevr {Target Hook} HOST_WIDE_INT TARGET_ABSOLUTE_BIGGEST_ALIGNMENT
+@c hook-start:TARGET_ABSOLUTE_BIGGEST_ALIGNMENT
 If defined, this target hook specifies the absolute biggest alignment
 that a type or variable can have on this machine, otherwise,
 @code{BIGGEST_ALIGNMENT} is used.
 @end deftypevr
+@c hook-end
 
 @defmac MALLOC_ABI_ALIGNMENT
 Alignment, in bits, a C conformant malloc implementation has to
@@ -1151,16 +1182,20 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_LOWER_LOCAL_DECL_ALIGNMENT (tree @var{decl})
+@c hook-start:TARGET_LOWER_LOCAL_DECL_ALIGNMENT
 Define this hook to lower alignment of local, parm or result
 decl @samp{(@var{decl})}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} HOST_WIDE_INT TARGET_STATIC_RTX_ALIGNMENT (machine_mode @var{mode})
+@c hook-start:TARGET_STATIC_RTX_ALIGNMENT
 This hook returns the preferred alignment in bits for a
 statically-allocated rtx, such as a constant pool entry.  @var{mode}
 is the mode of the rtx.  The default implementation returns
 @samp{GET_MODE_ALIGNMENT (@var{mode})}.
 @end deftypefn
+@c hook-end
 
 @defmac DATA_ALIGNMENT (@var{type}, @var{basic-align})
 If defined, a C expression to compute the alignment for a variable in
@@ -1187,6 +1222,7 @@
 @end defmac
 
 @deftypefn {Target Hook} HOST_WIDE_INT TARGET_CONSTANT_ALIGNMENT (const_tree @var{constant}, HOST_WIDE_INT @var{basic_align})
+@c hook-start:TARGET_CONSTANT_ALIGNMENT
 This hook returns the alignment in bits of a constant that is being
 placed in memory.  @var{constant} is the constant and @var{basic_align}
 is the alignment that the object would ordinarily have.
@@ -1198,6 +1234,7 @@
 constants can be done inline.  The function
 @code{constant_alignment_word_strings} provides such a definition.
 @end deftypefn
+@c hook-end
 
 @defmac LOCAL_ALIGNMENT (@var{type}, @var{basic-align})
 If defined, a C expression to compute the alignment for a variable in
@@ -1214,12 +1251,14 @@
 @end defmac
 
 @deftypefn {Target Hook} HOST_WIDE_INT TARGET_VECTOR_ALIGNMENT (const_tree @var{type})
+@c hook-start:TARGET_VECTOR_ALIGNMENT
 This hook can be used to define the alignment for a vector of type
 @var{type}, in order to comply with a platform ABI.  The default is to
 require natural alignment for vector types.  The alignment returned by
 this hook must be a power-of-two multiple of the default alignment of
 the vector element type.
 @end deftypefn
+@c hook-end
 
 @defmac STACK_SLOT_ALIGNMENT (@var{type}, @var{mode}, @var{basic-align})
 If defined, a C expression to compute the alignment for stack slot.
@@ -1354,21 +1393,26 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_ALIGN_ANON_BITFIELD (void)
+@c hook-start:TARGET_ALIGN_ANON_BITFIELD
 When @code{PCC_BITFIELD_TYPE_MATTERS} is true this hook will determine
 whether unnamed bitfields affect the alignment of the containing
 structure.  The hook should return true if the structure should inherit
 the alignment requirements of an unnamed bitfield's type.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_NARROW_VOLATILE_BITFIELD (void)
+@c hook-start:TARGET_NARROW_VOLATILE_BITFIELD
 This target hook should return @code{true} if accesses to volatile bitfields
 should use the narrowest mode possible.  It should return @code{false} if
 these accesses should use the bitfield container type.
 
 The default is @code{false}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_MEMBER_TYPE_FORCES_BLK (const_tree @var{field}, machine_mode @var{mode})
+@c hook-start:TARGET_MEMBER_TYPE_FORCES_BLK
 Return true if a structure, union or array containing @var{field} should
 be accessed using @code{BLKMODE}.
 
@@ -1379,6 +1423,7 @@
 
 Normally, this is not needed.
 @end deftypefn
+@c hook-end
 
 @defmac ROUND_TYPE_ALIGN (@var{type}, @var{computed}, @var{specified})
 Define this macro as an expression for the alignment of a type (given
@@ -1423,25 +1468,32 @@
 @end defmac
 
 @deftypefn {Target Hook} scalar_int_mode TARGET_LIBGCC_CMP_RETURN_MODE (void)
+@c hook-start:TARGET_LIBGCC_CMP_RETURN_MODE
 This target hook should return the mode to be used for the return value
 of compare instructions expanded to libgcc calls.  If not defined
 @code{word_mode} is returned which is the right choice for a majority of
 targets.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} scalar_int_mode TARGET_LIBGCC_SHIFT_COUNT_MODE (void)
+@c hook-start:TARGET_LIBGCC_SHIFT_COUNT_MODE
 This target hook should return the mode to be used for the shift count operand
 of shift instructions expanded to libgcc calls.  If not defined
 @code{word_mode} is returned which is the right choice for a majority of
 targets.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} scalar_int_mode TARGET_UNWIND_WORD_MODE (void)
+@c hook-start:TARGET_UNWIND_WORD_MODE
 Return machine mode to be used for @code{_Unwind_Word} type.
 The default is to use @code{word_mode}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_MS_BITFIELD_LAYOUT_P (const_tree @var{record_type})
+@c hook-start:TARGET_MS_BITFIELD_LAYOUT_P
 This target hook returns @code{true} if bit-fields in the given
 @var{record_type} are to be laid out following the rules of Microsoft
 Visual C/C++, namely: (i) a bit-field won't share the same storage
@@ -1468,16 +1520,22 @@
 precedence for that field, but the alignment of the rest of the structure
 may affect its placement.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_DECIMAL_FLOAT_SUPPORTED_P (void)
+@c hook-start:TARGET_DECIMAL_FLOAT_SUPPORTED_P
 Returns true if the target supports decimal floating point.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_FIXED_POINT_SUPPORTED_P (void)
+@c hook-start:TARGET_FIXED_POINT_SUPPORTED_P
 Returns true if the target supports fixed-point arithmetic.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_EXPAND_TO_RTL_HOOK (void)
+@c hook-start:TARGET_EXPAND_TO_RTL_HOOK
 This hook is called just before expansion into rtl, allowing the target
 to perform additional initializations or analysis before the expansion.
 For example, the rs6000 port uses it to allocate a scratch stack slot
@@ -1485,13 +1543,17 @@
 registers whenever the function being expanded has any SDmode
 usage.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_INSTANTIATE_DECLS (void)
+@c hook-start:TARGET_INSTANTIATE_DECLS
 This hook allows the backend to perform additional instantiations on rtl
 that are not actually in any insns yet, but will be later.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {const char *} TARGET_MANGLE_TYPE (const_tree @var{type})
+@c hook-start:TARGET_MANGLE_TYPE
 If your target defines any fundamental types, or any types your target
 uses should be mangled differently from the default, define this hook
 to return the appropriate encoding for these types as part of a C++
@@ -1524,6 +1586,7 @@
 appropriate for a target that does not define any new fundamental
 types.
 @end deftypefn
+@c hook-end
 
 @node Type Layout
 @section Layout of Source Language Data Types
@@ -1667,6 +1730,7 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_DEFAULT_SHORT_ENUMS (void)
+@c hook-start:TARGET_DEFAULT_SHORT_ENUMS
 This target hook should return true if the compiler should give an
 @code{enum} type only as many bytes as it takes to represent the range
 of possible values of that type.  It should return false if all
@@ -1674,6 +1738,7 @@
 
 The default is to return false.
 @end deftypefn
+@c hook-end
 
 @defmac SIZE_TYPE
 A C expression for a string describing the name of the data type to use
@@ -1960,13 +2025,16 @@
 @cindex call-clobbered register
 @cindex call-saved register
 @deftypefn {Target Hook} {const predefined_function_abi &} TARGET_FNTYPE_ABI (const_tree @var{type})
+@c hook-start:TARGET_FNTYPE_ABI
 Return the ABI used by a function with type @var{type}; see the
 definition of @code{predefined_function_abi} for details of the ABI
 descriptor.  Targets only need to define this hook if they support
 interoperability between several ABIs in the same translation unit.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {const predefined_function_abi &} TARGET_INSN_CALLEE_ABI (const rtx_insn *@var{insn})
+@c hook-start:TARGET_INSN_CALLEE_ABI
 This hook returns a description of the ABI used by the target of
 call instruction @var{insn}; see the definition of
 @code{predefined_function_abi} for details of the ABI descriptor.
@@ -1976,11 +2044,13 @@
 Targets only need to define this hook if they support
 interoperability between several ABIs in the same translation unit.
 @end deftypefn
+@c hook-end
 
 @cindex call-used register
 @cindex call-clobbered register
 @cindex call-saved register
 @deftypefn {Target Hook} bool TARGET_HARD_REGNO_CALL_PART_CLOBBERED (unsigned int @var{abi_id}, unsigned int @var{regno}, machine_mode @var{mode})
+@c hook-start:TARGET_HARD_REGNO_CALL_PART_CLOBBERED
 ABIs usually specify that calls must preserve the full contents
 of a particular register, or that calls can alter any part of a
 particular register.  This information is captured by the target macro
@@ -2001,10 +2071,13 @@
 The default implementation returns false, which is correct
 for targets that don't have partly call-clobbered registers.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {const char *} TARGET_GET_MULTILIB_ABI_NAME (void)
+@c hook-start:TARGET_GET_MULTILIB_ABI_NAME
 This hook returns name of multilib ABI name.
 @end deftypefn
+@c hook-end
 
 @findex fixed_regs
 @findex call_used_regs
@@ -2012,6 +2085,7 @@
 @findex reg_names
 @findex reg_class_contents
 @deftypefn {Target Hook} void TARGET_CONDITIONAL_REGISTER_USAGE (void)
+@c hook-start:TARGET_CONDITIONAL_REGISTER_USAGE
 This hook may conditionally modify five variables
 @code{fixed_regs}, @code{call_used_regs}, @code{global_regs},
 @code{reg_names}, and @code{reg_class_contents}, to take into account
@@ -2041,6 +2115,7 @@
 controlled by target switches, then GCC will automatically avoid using
 these registers when the target switches are opposed to them.)
 @end deftypefn
+@c hook-end
 
 @defmac INCOMING_REGNO (@var{out})
 Define this macro if the target machine has register windows.  This C
@@ -2137,6 +2212,7 @@
 consecutive registers are needed for a given mode.
 
 @deftypefn {Target Hook} {unsigned int} TARGET_HARD_REGNO_NREGS (unsigned int @var{regno}, machine_mode @var{mode})
+@c hook-start:TARGET_HARD_REGNO_NREGS
 This hook returns the number of consecutive hard registers, starting
 at register number @var{regno}, required to hold a value of mode
 @var{mode}.  This hook must never return zero, even if a register
@@ -2146,6 +2222,7 @@
 
 The default definition returns the number of words in @var{mode}.
 @end deftypefn
+@c hook-end
 
 @defmac HARD_REGNO_NREGS_HAS_PADDING (@var{regno}, @var{mode})
 A C expression that is nonzero if a value of mode @var{mode}, stored
@@ -2184,6 +2261,7 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_HARD_REGNO_MODE_OK (unsigned int @var{regno}, machine_mode @var{mode})
+@c hook-start:TARGET_HARD_REGNO_MODE_OK
 This hook returns true if it is permissible to store a value
 of mode @var{mode} in hard register number @var{regno} (or in several
 registers starting with that one).  The default definition returns true
@@ -2239,6 +2317,7 @@
 floating registers are not in class @code{GENERAL_REGS}, they will not
 be used unless some pattern's constraint asks for one.
 @end deftypefn
+@c hook-end
 
 @defmac HARD_REGNO_RENAME_OK (@var{from}, @var{to})
 A C expression that is nonzero if it is OK to rename a hard register
@@ -2252,6 +2331,7 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_MODES_TIEABLE_P (machine_mode @var{mode1}, machine_mode @var{mode2})
+@c hook-start:TARGET_MODES_TIEABLE_P
 This hook returns true if a value of mode @var{mode1} is accessible
 in mode @var{mode2} without copying.
 
@@ -2267,8 +2347,10 @@
 possible since doing so will allow GCC to perform better register
 allocation.  The default definition returns true unconditionally.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_HARD_REGNO_SCRATCH_OK (unsigned int @var{regno})
+@c hook-start:TARGET_HARD_REGNO_SCRATCH_OK
 This target hook should return @code{true} if it is OK to use a hard register
 @var{regno} as scratch reg in peephole2.
 
@@ -2277,6 +2359,7 @@
 
 The default version of this hook always returns @code{true}.
 @end deftypefn
+@c hook-end
 
 @defmac AVOID_CCMODE_COPIES
 Define this macro if the compiler should avoid copies to/from @code{CCmode}
@@ -2602,6 +2685,7 @@
 @end defmac
 
 @deftypefn {Target Hook} reg_class_t TARGET_PREFERRED_RENAME_CLASS (reg_class_t @var{rclass})
+@c hook-start:TARGET_PREFERRED_RENAME_CLASS
 A target hook that places additional preference on the register
 class to use when it is necessary to rename a register in class
 @var{rclass} to another class, or perhaps @var{NO_REGS}, if no
@@ -2613,8 +2697,10 @@
 @code{LO_REGS} from @code{preferred_rename_class}, code size can
 be reduced.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} reg_class_t TARGET_PREFERRED_RELOAD_CLASS (rtx @var{x}, reg_class_t @var{rclass})
+@c hook-start:TARGET_PREFERRED_RELOAD_CLASS
 A target hook that places additional restrictions on the register class
 to use when it is necessary to copy value @var{x} into a register in class
 @var{rclass}.  The value is a register class; perhaps @var{rclass}, or perhaps
@@ -2647,6 +2733,7 @@
 this feature to discourage usage of 387 registers when math is done in
 the SSE registers (and vice versa).
 @end deftypefn
+@c hook-end
 
 @defmac PREFERRED_RELOAD_CLASS (@var{x}, @var{class})
 A C expression that places additional restrictions on the register class
@@ -2686,6 +2773,7 @@
 @end defmac
 
 @deftypefn {Target Hook} reg_class_t TARGET_PREFERRED_OUTPUT_RELOAD_CLASS (rtx @var{x}, reg_class_t @var{rclass})
+@c hook-start:TARGET_PREFERRED_OUTPUT_RELOAD_CLASS
 Like @code{TARGET_PREFERRED_RELOAD_CLASS}, but for output reloads instead of
 input reloads.
 
@@ -2695,6 +2783,7 @@
 You can also use @code{TARGET_PREFERRED_OUTPUT_RELOAD_CLASS} to discourage
 reload from using some alternatives, like @code{TARGET_PREFERRED_RELOAD_CLASS}.
 @end deftypefn
+@c hook-end
 
 @defmac LIMIT_RELOAD_CLASS (@var{mode}, @var{class})
 A C expression that places additional restrictions on the register class
@@ -2713,6 +2802,7 @@
 @end defmac
 
 @deftypefn {Target Hook} reg_class_t TARGET_SECONDARY_RELOAD (bool @var{in_p}, rtx @var{x}, reg_class_t @var{reload_class}, machine_mode @var{reload_mode}, secondary_reload_info *@var{sri})
+@c hook-start:TARGET_SECONDARY_RELOAD
 Many machines have some registers that cannot be copied directly to or
 from memory or even from other types of registers.  An example is the
 @samp{MQ} register, which on most machines, can only be copied to or
@@ -2797,6 +2887,7 @@
 of the individual moves due to expected fortuitous scheduling and/or special
 forwarding logic, you can set @code{sri->extra_cost} to a negative amount.
 @end deftypefn
+@c hook-end
 
 @defmac SECONDARY_RELOAD_CLASS (@var{class}, @var{mode}, @var{x})
 @defmacx SECONDARY_INPUT_RELOAD_CLASS (@var{class}, @var{mode}, @var{x})
@@ -2859,6 +2950,7 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_SECONDARY_MEMORY_NEEDED (machine_mode @var{mode}, reg_class_t @var{class1}, reg_class_t @var{class2})
+@c hook-start:TARGET_SECONDARY_MEMORY_NEEDED
 Certain machines have the property that some registers cannot be copied
 to some other registers without using memory.  Define this hook on
 those machines to return true if objects of mode @var{m} in registers
@@ -2867,6 +2959,7 @@
 location into a register of @var{class2}.  The default definition returns
 false for all inputs.
 @end deftypefn
+@c hook-end
 
 @defmac SECONDARY_MEMORY_NEEDED_RTX (@var{mode})
 Normally when @code{TARGET_SECONDARY_MEMORY_NEEDED} is defined, the compiler
@@ -2879,6 +2972,7 @@
 @end defmac
 
 @deftypefn {Target Hook} machine_mode TARGET_SECONDARY_MEMORY_NEEDED_MODE (machine_mode @var{mode})
+@c hook-start:TARGET_SECONDARY_MEMORY_NEEDED_MODE
 If @code{TARGET_SECONDARY_MEMORY_NEEDED} tells the compiler to use memory
 when moving between two particular registers of mode @var{mode},
 this hook specifies the mode that the memory should have.
@@ -2899,8 +2993,10 @@
 
 With LRA, the default is to use @var{mode} unmodified.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SELECT_EARLY_REMAT_MODES (sbitmap @var{modes})
+@c hook-start:TARGET_SELECT_EARLY_REMAT_MODES
 On some targets, certain modes cannot be held in registers around a
 standard ABI call and are relatively expensive to spill to the stack.
 The early rematerialization pass can help in such cases by aggressively
@@ -2910,8 +3006,10 @@
 in @var{modes}.  The default implementation selects no modes, which has
 the effect of disabling the early rematerialization pass.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_CLASS_LIKELY_SPILLED_P (reg_class_t @var{rclass})
+@c hook-start:TARGET_CLASS_LIKELY_SPILLED_P
 A target hook which returns @code{true} if pseudos that have been assigned
 to registers of class @var{rclass} would likely be spilled because
 registers of @var{rclass} are needed for spill registers.
@@ -2926,8 +3024,10 @@
 transformations to throtle code motion, to avoid increasing register
 pressure.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {unsigned char} TARGET_CLASS_MAX_NREGS (reg_class_t @var{rclass}, machine_mode @var{mode})
+@c hook-start:TARGET_CLASS_MAX_NREGS
 A target hook returns the maximum number of consecutive registers
 of class @var{rclass} needed to hold a value of mode @var{mode}.
 
@@ -2943,6 +3043,7 @@
 The default version of this target hook returns the size of @var{mode}
 in words.
 @end deftypefn
+@c hook-end
 
 @defmac CLASS_MAX_NREGS (@var{class}, @var{mode})
 A C expression for the maximum number of consecutive registers
@@ -2958,6 +3059,7 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_CAN_CHANGE_MODE_CLASS (machine_mode @var{from}, machine_mode @var{to}, reg_class_t @var{rclass})
+@c hook-start:TARGET_CAN_CHANGE_MODE_CLASS
 This hook returns true if it is possible to bitcast values held in
 registers of class @var{rclass} from mode @var{from} to mode @var{to}
 and if doing so preserves the low-order bits that are common to both modes.
@@ -2986,22 +3088,28 @@
 entire @code{raw_reg_mode} being modified instead of the partial
 value that the middle-end intended.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} reg_class_t TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS (int, @var{reg_class_t}, @var{reg_class_t})
+@c hook-start:TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS
 A target hook which can change allocno class for given pseudo from
   allocno and best class calculated by IRA.
   
   The default version of this target hook always returns given class.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_LRA_P (void)
+@c hook-start:TARGET_LRA_P
 A target hook which returns true if we use LRA instead of reload pass.
 
 The default version of this target hook returns true.  New ports
 should use LRA, and existing ports are encouraged to convert.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_REGISTER_PRIORITY (int)
+@c hook-start:TARGET_REGISTER_PRIORITY
 A target hook which returns the register priority number to which the
 register @var{hard_regno} belongs to.  The bigger the number, the
 more preferable the hard register usage (when all other conditions are
@@ -3013,8 +3121,10 @@
 
 The default version of this target hook returns always zero.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_REGISTER_USAGE_LEVELING_P (void)
+@c hook-start:TARGET_REGISTER_USAGE_LEVELING_P
 A target hook which returns true if we need register usage leveling.
 That means if a few hard registers are equally good for the
 assignment, we choose the least used hard register.  The register
@@ -3025,8 +3135,10 @@
 
 The default version of this target hook returns always false.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_DIFFERENT_ADDR_DISPLACEMENT_P (void)
+@c hook-start:TARGET_DIFFERENT_ADDR_DISPLACEMENT_P
 A target hook which returns true if an address with the same structure
 can have different maximal legitimate displacement.  For example, the
 displacement can depend on memory mode or on operand combinations in
@@ -3034,8 +3146,10 @@
 
 The default version of this target hook returns always false.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P (rtx @var{subst})
+@c hook-start:TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P
 A target hook which returns @code{true} if @var{subst} can't
 substitute safely pseudos with equivalent memory values during
 register allocation.
@@ -3044,8 +3158,10 @@
 machines with non orthogonal register usage for addressing, such
 as SH, this hook can be used to avoid excessive spilling.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT (rtx *@var{offset1}, rtx *@var{offset2}, poly_int64 @var{orig_offset}, machine_mode @var{mode})
+@c hook-start:TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT
 This hook tries to split address offset @var{orig_offset} into
 two parts: one that should be added to the base address to create
 a local anchor point, and an additional offset that can be applied
@@ -3056,15 +3172,19 @@
 anchor from the base in @var{offset1} and the offset of the final address
 from the anchor in @var{offset2}.  The default implementation returns false.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} reg_class_t TARGET_SPILL_CLASS (reg_class_t, @var{machine_mode})
+@c hook-start:TARGET_SPILL_CLASS
 This hook defines a class of registers which could be used for spilling
 pseudos of the given mode and class, or @code{NO_REGS} if only memory
 should be used.  Not defining this hook is equivalent to returning
 @code{NO_REGS} for all inputs.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_ADDITIONAL_ALLOCNO_CLASS_P (reg_class_t)
+@c hook-start:TARGET_ADDITIONAL_ALLOCNO_CLASS_P
 This hook should return @code{true} if given class of registers should
 be an allocno class in any way.  Usually RA uses only one register
 class from all classes containing the same register set.  In some
@@ -3072,21 +3192,26 @@
 allocno ones for RA correct work.  Not defining this hook is
 equivalent to returning @code{false} for all inputs.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} scalar_int_mode TARGET_CSTORE_MODE (enum insn_code @var{icode})
+@c hook-start:TARGET_CSTORE_MODE
 This hook defines the machine mode to use for the boolean result of
 conditional store patterns.  The ICODE argument is the instruction code
 for the cstore being performed.  Not definiting this hook is the same
 as accepting the mode encoded into operand 0 of the cstore expander
 patterns.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_COMPUTE_PRESSURE_CLASSES (enum reg_class *@var{pressure_classes})
+@c hook-start:TARGET_COMPUTE_PRESSURE_CLASSES
 A target hook which lets a backend compute the set of pressure classes to
 be used by those optimization passes which take register pressure into
 account, as opposed to letting IRA compute them.  It returns the number of
 register classes stored in the array @var{pressure_classes}.
 @end deftypefn
+@c hook-end
 
 @node Stack and Calling
 @section Stack Layout and Calling Conventions
@@ -3154,12 +3279,14 @@
 @end defmac
 
 @deftypefn {Target Hook} HOST_WIDE_INT TARGET_STARTING_FRAME_OFFSET (void)
+@c hook-start:TARGET_STARTING_FRAME_OFFSET
 This hook returns the offset from the frame pointer to the first local
 variable slot to be allocated.  If @code{FRAME_GROWS_DOWNWARD}, it is the
 offset to @emph{end} of the first slot allocated, otherwise it is the
 offset to @emph{beginning} of the first slot allocated.  The default
 implementation returns 0.
 @end deftypefn
+@c hook-end
 
 @defmac STACK_ALIGNMENT_NEEDED
 Define to zero to disable final alignment of the stack during reload.
@@ -3227,12 +3354,14 @@
 @end defmac
 
 @deftypefn {Target Hook} rtx TARGET_BUILTIN_SETJMP_FRAME_VALUE (void)
+@c hook-start:TARGET_BUILTIN_SETJMP_FRAME_VALUE
 This target hook should return an rtx that is used to store
 the address of the current frame into the built in @code{setjmp} buffer.
 The default value, @code{virtual_stack_vars_rtx}, is correct for most
 machines.  One reason you may need to define this target hook is if
 @code{hard_frame_pointer_rtx} is the appropriate value on your machine.
 @end deftypefn
+@c hook-end
 
 @defmac FRAME_ADDR_RTX (@var{frameaddr})
 A C expression whose value is RTL representing the value of the frame
@@ -3301,6 +3430,7 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_DWARF_HANDLE_FRAME_UNSPEC (const char *@var{label}, rtx @var{pattern}, int @var{index})
+@c hook-start:TARGET_DWARF_HANDLE_FRAME_UNSPEC
 This target hook allows the backend to emit frame-related insns that
 contain UNSPECs or UNSPEC_VOLATILEs.  The DWARF 2 call frame debugging
 info engine will invoke it on insns of the form
@@ -3315,8 +3445,10 @@
 the CFI label attached to the insn, @var{pattern} is the pattern of
 the insn and @var{index} is @code{UNSPEC_INDEX} or @code{UNSPECV_INDEX}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {unsigned int} TARGET_DWARF_POLY_INDETERMINATE_VALUE (unsigned int @var{i}, unsigned int *@var{factor}, int *@var{offset})
+@c hook-start:TARGET_DWARF_POLY_INDETERMINATE_VALUE
 Express the value of @code{poly_int} indeterminate @var{i} as a DWARF
 expression, with @var{i} counting from 1.  Return the number of a DWARF
 register @var{R} and set @samp{*@var{factor}} and @samp{*@var{offset}} such
@@ -3328,6 +3460,7 @@
 A target only needs to define this hook if it sets
 @samp{NUM_POLY_INT_COEFFS} to a value greater than 1.
 @end deftypefn
+@c hook-end
 
 @defmac INCOMING_FRAME_SP_OFFSET
 A C expression whose value is an integer giving the offset, in bytes,
@@ -3623,6 +3756,7 @@
 @end defmac
 
 @deftypefn {Target Hook} HOST_WIDE_INT TARGET_STACK_CLASH_PROTECTION_ALLOCA_PROBE_RANGE (void)
+@c hook-start:TARGET_STACK_CLASH_PROTECTION_ALLOCA_PROBE_RANGE
 Some targets have an ABI defined interval for which no probing needs to be done.
 When a probe does need to be done this same interval is used as the probe distance
 up when doing stack clash protection for alloca.
@@ -3632,6 +3766,7 @@
 of outgoing arguments.  If this is not the case the stack will be corrupted.
 You need not define this macro if it would always have the value zero.
 @end deftypefn
+@c hook-end
 
 @need 2000
 @node Frame Registers
@@ -3730,6 +3865,7 @@
 @end defmac
 
 @deftypefn {Target Hook} rtx TARGET_STATIC_CHAIN (const_tree @var{fndecl_or_type}, bool @var{incoming_p})
+@c hook-start:TARGET_STATIC_CHAIN
 This hook replaces the use of @code{STATIC_CHAIN_REGNUM} et al for
 targets that may use different static chain locations for different
 nested functions.  This may be required if the target has function
@@ -3750,6 +3886,7 @@
 @code{arg_pointer_rtx} will have been initialized and should be used
 to refer to those items.
 @end deftypefn
+@c hook-end
 
 @defmac DWARF_FRAME_REGISTERS
 This macro specifies the maximum number of hard registers that can be
@@ -3837,6 +3974,7 @@
 This is about eliminating the frame pointer and arg pointer.
 
 @deftypefn {Target Hook} bool TARGET_FRAME_POINTER_REQUIRED (void)
+@c hook-start:TARGET_FRAME_POINTER_REQUIRED
 This target hook should return @code{true} if a function must have and use
 a frame pointer.  This target hook is called in the reload pass.  If its return
 value is @code{true} the function will have a frame pointer.
@@ -3860,6 +3998,7 @@
 
 Default return value is @code{false}.
 @end deftypefn
+@c hook-end
 
 @defmac ELIMINABLE_REGS
 This macro specifies a table of register pairs used to eliminate
@@ -3887,6 +4026,7 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_CAN_ELIMINATE (const int @var{from_reg}, const int @var{to_reg})
+@c hook-start:TARGET_CAN_ELIMINATE
 This target hook should return @code{true} if the compiler is allowed to
 try to replace register number @var{from_reg} with register number
 @var{to_reg}.  This target hook will usually be @code{true}, since most of the
@@ -3895,6 +4035,7 @@
 
 Default return value is @code{true}.
 @end deftypefn
+@c hook-end
 
 @defmac INITIAL_ELIMINATION_OFFSET (@var{from-reg}, @var{to-reg}, @var{offset-var})
 This macro returns the initial difference between the specified pair
@@ -3904,6 +4045,7 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_COMPUTE_FRAME_LAYOUT (void)
+@c hook-start:TARGET_COMPUTE_FRAME_LAYOUT
 This target hook is called once each time the frame layout needs to be
 recalculated.  The calculations can be cached by the target and can then
 be used by @code{INITIAL_ELIMINATION_OFFSET} instead of re-computing the
@@ -3911,6 +4053,7 @@
 for targets that have an expensive frame layout function.  Implementing
 this callback is optional.
 @end deftypefn
+@c hook-end
 
 @node Stack Arguments
 @subsection Passing Function Arguments on the Stack
@@ -3922,14 +4065,17 @@
 control passing certain arguments in registers.
 
 @deftypefn {Target Hook} bool TARGET_PROMOTE_PROTOTYPES (const_tree @var{fntype})
+@c hook-start:TARGET_PROMOTE_PROTOTYPES
 This target hook returns @code{true} if an argument declared in a
 prototype as an integral type smaller than @code{int} should actually be
 passed as an @code{int}.  In addition to avoiding errors in certain
 cases of mismatch, it also makes for better code on certain machines.
 The default is to not promote prototypes.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_PUSH_ARGUMENT (unsigned int @var{npush})
+@c hook-start:TARGET_PUSH_ARGUMENT
 This target hook returns @code{true} if push instructions will be
 used to pass outgoing arguments.  When the push instruction usage is
 optional, @var{npush} is nonzero to indicate the number of bytes to
@@ -3940,6 +4086,7 @@
 arguments into it.  If this target hook may return @code{true},
 @code{PUSH_ROUNDING} must be defined.
 @end deftypefn
+@c hook-end
 
 @defmac PUSH_ARGS_REVERSED
 A C expression.  If nonzero, function arguments will be evaluated from
@@ -4032,6 +4179,7 @@
 @end defmac
 
 @deftypefn {Target Hook} poly_int64 TARGET_RETURN_POPS_ARGS (tree @var{fundecl}, tree @var{funtype}, poly_int64 @var{size})
+@c hook-start:TARGET_RETURN_POPS_ARGS
 This target hook returns the number of bytes of its own arguments that
 a function pops on returning, or 0 if the function pops no arguments
 and the caller must therefore pop them all after the function returns.
@@ -4068,6 +4216,7 @@
 @var{funtype} is examined to determine whether a function takes a fixed
 number of arguments.
 @end deftypefn
+@c hook-end
 
 @defmac CALL_POPS_ARGS (@var{cum})
 A C expression that should indicate the number of bytes a call sequence
@@ -4094,6 +4243,7 @@
 the stack.
 
 @deftypefn {Target Hook} rtx TARGET_FUNCTION_ARG (cumulative_args_t @var{ca}, const function_arg_info @var{&arg})
+@c hook-start:TARGET_FUNCTION_ARG
 Return an RTX indicating whether function argument @var{arg} is passed
 in a register and if so, which register.  Argument @var{ca} summarizes all
 the previous arguments.
@@ -4137,15 +4287,19 @@
 defined, the argument will be computed in the stack and then loaded into
 a register.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_MUST_PASS_IN_STACK (const function_arg_info @var{&arg})
+@c hook-start:TARGET_MUST_PASS_IN_STACK
 This target hook should return @code{true} if we should not pass @var{arg}
 solely in registers.  The file @file{expr.h} defines a
 definition that is usually appropriate, refer to @file{expr.h} for additional
 documentation.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_FUNCTION_INCOMING_ARG (cumulative_args_t @var{ca}, const function_arg_info @var{&arg})
+@c hook-start:TARGET_FUNCTION_INCOMING_ARG
 Define this hook if the caller and callee on the target have different
 views of where arguments are passed.  Also define this hook if there are
 functions that are never directly called, but are invoked by the hardware
@@ -4164,18 +4318,24 @@
 If @code{TARGET_FUNCTION_INCOMING_ARG} is not defined,
 @code{TARGET_FUNCTION_ARG} serves both purposes.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_USE_PSEUDO_PIC_REG (void)
+@c hook-start:TARGET_USE_PSEUDO_PIC_REG
 This hook should return 1 in case pseudo register should be created
 for pic_offset_table_rtx during function expand.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_INIT_PIC_REG (void)
+@c hook-start:TARGET_INIT_PIC_REG
 Perform a target dependent initialization of pic_offset_table_rtx.
 This hook is called at the start of register allocation.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_ARG_PARTIAL_BYTES (cumulative_args_t @var{cum}, const function_arg_info @var{&arg})
+@c hook-start:TARGET_ARG_PARTIAL_BYTES
 This target hook returns the number of bytes at the beginning of an
 argument that must be put in registers.  The value must be zero for
 arguments that are passed entirely in registers or that are entirely
@@ -4193,8 +4353,10 @@
 register to be used by the caller for this argument; likewise
 @code{TARGET_FUNCTION_INCOMING_ARG}, for the called function.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_PASS_BY_REFERENCE (cumulative_args_t @var{cum}, const function_arg_info @var{&arg})
+@c hook-start:TARGET_PASS_BY_REFERENCE
 This target hook should return @code{true} if argument @var{arg} at the
 position indicated by @var{cum} should be passed by reference.  This
 predicate is queried after target independent reasons for being
@@ -4205,8 +4367,10 @@
 The pointer is passed in whatever way is appropriate for passing a pointer
 to that type.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_CALLEE_COPIES (cumulative_args_t @var{cum}, const function_arg_info @var{&arg})
+@c hook-start:TARGET_CALLEE_COPIES
 The function argument described by the parameters to this hook is
 known to be passed by reference.  The hook should return true if the
 function argument should be copied by the callee instead of copied
@@ -4218,6 +4382,7 @@
 
 The default version of this hook always returns false.
 @end deftypefn
+@c hook-end
 
 @defmac CUMULATIVE_ARGS
 A C type for declaring a variable that is used as the first argument
@@ -4286,6 +4451,7 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_FUNCTION_ARG_ADVANCE (cumulative_args_t @var{ca}, const function_arg_info @var{&arg})
+@c hook-start:TARGET_FUNCTION_ARG_ADVANCE
 This hook updates the summarizer variable pointed to by @var{ca} to
 advance past argument @var{arg} in the argument list.  Once this is done,
 the variable @var{cum} is suitable for analyzing the @emph{following}
@@ -4295,16 +4461,20 @@
 on the stack.  The compiler knows how to track the amount of stack space
 used for arguments without any special help.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} HOST_WIDE_INT TARGET_FUNCTION_ARG_OFFSET (machine_mode @var{mode}, const_tree @var{type})
+@c hook-start:TARGET_FUNCTION_ARG_OFFSET
 This hook returns the number of bytes to add to the offset of an
 argument of type @var{type} and mode @var{mode} when passed in memory.
 This is needed for the SPU, which passes @code{char} and @code{short}
 arguments in the preferred slot that is in the middle of the quad word
 instead of starting at the top.  The default implementation returns 0.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} pad_direction TARGET_FUNCTION_ARG_PADDING (machine_mode @var{mode}, const_tree @var{type})
+@c hook-start:TARGET_FUNCTION_ARG_PADDING
 This hook determines whether, and in which direction, to pad out
 an argument of mode @var{mode} and type @var{type}.  It returns
 @code{PAD_UPWARD} to insert padding above the argument, @code{PAD_DOWNWARD}
@@ -4319,6 +4489,7 @@
 big-endian machines, the default is to pad downward for an argument of
 constant size shorter than an @code{int}, and upward otherwise.
 @end deftypefn
+@c hook-end
 
 @defmac PAD_VARARGS_DOWN
 If defined, a C expression which determines whether the default
@@ -4340,17 +4511,21 @@
 @end defmac
 
 @deftypefn {Target Hook} {unsigned int} TARGET_FUNCTION_ARG_BOUNDARY (machine_mode @var{mode}, const_tree @var{type})
+@c hook-start:TARGET_FUNCTION_ARG_BOUNDARY
 This hook returns the alignment boundary, in bits, of an argument
 with the specified mode and type.  The default hook returns
 @code{PARM_BOUNDARY} for all arguments.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {unsigned int} TARGET_FUNCTION_ARG_ROUND_BOUNDARY (machine_mode @var{mode}, const_tree @var{type})
+@c hook-start:TARGET_FUNCTION_ARG_ROUND_BOUNDARY
 Normally, the size of an argument is rounded up to @code{PARM_BOUNDARY},
 which is the default value for this hook.  You can define this hook to
 return a different value if an argument size must be rounded to a larger
 value.
 @end deftypefn
+@c hook-end
 
 @defmac FUNCTION_ARG_REGNO_P (@var{regno})
 A C expression that is nonzero if @var{regno} is the number of a hard
@@ -4362,6 +4537,7 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_SPLIT_COMPLEX_ARG (const_tree @var{type})
+@c hook-start:TARGET_SPLIT_COMPLEX_ARG
 This hook should return true if parameter of type @var{type} are passed
 as two scalar parameters.  By default, GCC will attempt to pack complex
 arguments into the target's word size.  Some ABIs require complex arguments
@@ -4373,13 +4549,17 @@
 The default value of this hook is @code{NULL}, which is treated as always
 false.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_BUILD_BUILTIN_VA_LIST (void)
+@c hook-start:TARGET_BUILD_BUILTIN_VA_LIST
 This hook returns a type node for @code{va_list} for the target.
 The default version of the hook returns @code{void*}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_ENUM_VA_LIST_P (int @var{idx}, const char **@var{pname}, tree *@var{ptree})
+@c hook-start:TARGET_ENUM_VA_LIST_P
 This target hook is used in function @code{c_common_nodes_and_builtins}
 to iterate through the target specific builtin types for va_list. The
 variable @var{idx} is used as iterator. @var{pname} has to be a pointer
@@ -4392,49 +4572,63 @@
 Otherwise the @var{IDX} should be increased for the next call of this
 macro to iterate through all types.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_FN_ABI_VA_LIST (tree @var{fndecl})
+@c hook-start:TARGET_FN_ABI_VA_LIST
 This hook returns the va_list type of the calling convention specified by
 @var{fndecl}.
 The default version of this hook returns @code{va_list_type_node}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_CANONICAL_VA_LIST_TYPE (tree @var{type})
+@c hook-start:TARGET_CANONICAL_VA_LIST_TYPE
 This hook returns the va_list type of the calling convention specified by the
 type of @var{type}. If @var{type} is not a valid va_list type, it returns
 @code{NULL_TREE}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_GIMPLIFY_VA_ARG_EXPR (tree @var{valist}, tree @var{type}, gimple_seq *@var{pre_p}, gimple_seq *@var{post_p})
+@c hook-start:TARGET_GIMPLIFY_VA_ARG_EXPR
 This hook performs target-specific gimplification of
 @code{VA_ARG_EXPR}.  The first two parameters correspond to the
 arguments to @code{va_arg}; the latter two are as in
 @code{gimplify.cc:gimplify_expr}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_VALID_POINTER_MODE (scalar_int_mode @var{mode})
+@c hook-start:TARGET_VALID_POINTER_MODE
 Define this to return nonzero if the port can handle pointers
 with machine mode @var{mode}.  The default version of this
 hook returns true for both @code{ptr_mode} and @code{Pmode}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_REF_MAY_ALIAS_ERRNO (ao_ref *@var{ref})
+@c hook-start:TARGET_REF_MAY_ALIAS_ERRNO
 Define this to return nonzero if the memory reference @var{ref}
 may alias with the system C library errno location.  The default
 version of this hook assumes the system C library errno location
 is either a declaration of type int or accessed by dereferencing
 a pointer to int.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} machine_mode TARGET_TRANSLATE_MODE_ATTRIBUTE (machine_mode @var{mode})
+@c hook-start:TARGET_TRANSLATE_MODE_ATTRIBUTE
 Define this hook if during mode attribute processing, the port should
 translate machine_mode @var{mode} to another mode.  For example, rs6000's
 @code{KFmode}, when it is the same as @code{TFmode}.
 
 The default version of the hook returns that mode that was passed in.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_SCALAR_MODE_SUPPORTED_P (scalar_mode @var{mode})
+@c hook-start:TARGET_SCALAR_MODE_SUPPORTED_P
 Define this to return nonzero if the port is prepared to handle
 insns involving scalar mode @var{mode}.  For a scalar mode to be
 considered supported, all the basic arithmetic and comparisons
@@ -4445,14 +4639,18 @@
 Included here are the double-word arithmetic supported by the
 code in @file{optabs.cc}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_VECTOR_MODE_SUPPORTED_P (machine_mode @var{mode})
+@c hook-start:TARGET_VECTOR_MODE_SUPPORTED_P
 Define this to return nonzero if the port is prepared to handle
 insns involving vector mode @var{mode}.  At the very least, it
 must have move patterns for this mode.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_COMPATIBLE_VECTOR_TYPES_P (const_tree @var{type1}, const_tree @var{type2})
+@c hook-start:TARGET_COMPATIBLE_VECTOR_TYPES_P
 Return true if there is no target-specific reason for treating
 vector types @var{type1} and @var{type2} as distinct types.  The caller
 has already checked for target-independent reasons, meaning that the
@@ -4472,8 +4670,10 @@
 
 The default implementation returns true, which is correct for most targets.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} opt_machine_mode TARGET_ARRAY_MODE (machine_mode @var{mode}, unsigned HOST_WIDE_INT @var{nelems})
+@c hook-start:TARGET_ARRAY_MODE
 Return the mode that GCC should use for an array that has
 @var{nelems} elements, with each element having mode @var{mode}.
 Return no mode if the target has no special requirements.  In the
@@ -4486,8 +4686,10 @@
 The main use of this hook is to specify that an array of vectors should
 also have a vector mode.  The default implementation returns no mode.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_ARRAY_MODE_SUPPORTED_P (machine_mode @var{mode}, unsigned HOST_WIDE_INT @var{nelems})
+@c hook-start:TARGET_ARRAY_MODE_SUPPORTED_P
 Return true if GCC should try to use a scalar mode to store an array
 of @var{nelems} elements, given that each element has mode @var{mode}.
 Returning true here overrides the usual @code{MAX_FIXED_MODE} limit
@@ -4514,16 +4716,20 @@
 @code{int8x8x3_t} can have the same mode.  GCC can then store
 @code{int8x8x3_t}s in registers rather than forcing them onto the stack.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P (scalar_float_mode @var{mode})
+@c hook-start:TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P
 Define this to return nonzero if libgcc provides support for the 
 floating-point mode @var{mode}, which is known to pass 
 @code{TARGET_SCALAR_MODE_SUPPORTED_P}.  The default version of this 
 hook returns true for all of @code{SFmode}, @code{DFmode}, 
 @code{XFmode} and @code{TFmode}, if such modes exist.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} opt_scalar_float_mode TARGET_FLOATN_MODE (int @var{n}, bool @var{extended})
+@c hook-start:TARGET_FLOATN_MODE
 Define this to return the machine mode to use for the type 
 @code{_Float@var{n}}, if @var{extended} is false, or the type 
 @code{_Float@var{n}x}, if @var{extended} is true.  If such a type is not
@@ -4540,8 +4746,10 @@
 ISO/IEC TS 18661-3:2015; that is, @var{n} is one of 32, 64, 128, or,
 if @var{extended} is false, 16 or greater than 128 and a multiple of 32.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_FLOATN_BUILTIN_P (int @var{func})
+@c hook-start:TARGET_FLOATN_BUILTIN_P
 Define this to return true if the @code{_Float@var{n}} and
 @code{_Float@var{n}x} built-in functions should implicitly enable the
 built-in function without the @code{__builtin_} prefix in addition to the
@@ -4551,8 +4759,10 @@
 the @code{__builtin_} prefix is not enabled.  The argument @code{FUNC} is the
 @code{enum built_in_function} id of the function to be enabled.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P (machine_mode @var{mode})
+@c hook-start:TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P
 Define this to return nonzero for machine modes for which the port has
 small register classes.  If this target hook returns nonzero for a given
 @var{mode}, the compiler will try to minimize the lifetime of registers
@@ -4583,6 +4793,7 @@
 to return a nonzero value when it is required, the compiler will run out
 of spill registers and print a fatal error message.
 @end deftypefn
+@c hook-end
 
 @node Scalar Return
 @subsection How Scalar Function Values Are Returned
@@ -4594,6 +4805,7 @@
 values---values that can fit in registers.
 
 @deftypefn {Target Hook} rtx TARGET_FUNCTION_VALUE (const_tree @var{ret_type}, const_tree @var{fn_decl_or_type}, bool @var{outgoing})
+@c hook-start:TARGET_FUNCTION_VALUE
 
 Define this to return an RTX representing the place where a function
 returns or receives a value of data type @var{ret_type}, a tree node
@@ -4636,6 +4848,7 @@
 aggregate data types, because these are returned in another way.  See
 @code{TARGET_STRUCT_VALUE_RTX} and related macros, below.
 @end deftypefn
+@c hook-end
 
 @defmac FUNCTION_VALUE (@var{valtype}, @var{func})
 This macro has been deprecated.  Use @code{TARGET_FUNCTION_VALUE} for
@@ -4653,6 +4866,7 @@
 @end defmac
 
 @deftypefn {Target Hook} rtx TARGET_LIBCALL_VALUE (machine_mode @var{mode}, const_rtx @var{fun})
+@c hook-start:TARGET_LIBCALL_VALUE
 Define this hook if the back-end needs to know the name of the libcall
 function in order to determine where the result should be returned.
 
@@ -4662,6 +4876,7 @@
 
 If this hook is not defined, then LIBCALL_VALUE will be used.
 @end deftypefn
+@c hook-end
 
 @defmac FUNCTION_VALUE_REGNO_P (@var{regno})
 A C expression that is nonzero if @var{regno} is the number of a hard
@@ -4685,6 +4900,7 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_FUNCTION_VALUE_REGNO_P (const unsigned int @var{regno})
+@c hook-start:TARGET_FUNCTION_VALUE_REGNO_P
 A target hook that return @code{true} if @var{regno} is the number of a hard
 register in which the values of called function may come back.
 
@@ -4698,6 +4914,7 @@
 
 If this hook is not defined, then FUNCTION_VALUE_REGNO_P will be used.
 @end deftypefn
+@c hook-end
 
 @defmac APPLY_RESULT_SIZE
 Define this macro if @samp{untyped_call} and @samp{untyped_return}
@@ -4706,14 +4923,17 @@
 @end defmac
 
 @deftypevr {Target Hook} bool TARGET_OMIT_STRUCT_RETURN_REG
+@c hook-start:TARGET_OMIT_STRUCT_RETURN_REG
 Normally, when a function returns a structure by memory, the address
 is passed as an invisible pointer argument, but the compiler also
 arranges to return the address from the function like it would a normal
 pointer return value.  Define this to true if that behavior is
 undesirable on your target.
 @end deftypevr
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_RETURN_IN_MSB (const_tree @var{type})
+@c hook-start:TARGET_RETURN_IN_MSB
 This hook should return true if values of type @var{type} are returned
 at the most significant end of a register (in other words, if they are
 padded at the least significant end).  You can assume that @var{type}
@@ -4725,6 +4945,7 @@
 4-byte register, @code{TARGET_FUNCTION_VALUE} should provide an
 @code{SImode} rtx.
 @end deftypefn
+@c hook-end
 
 @node Aggregate Return
 @subsection How Large Values Are Returned
@@ -4744,6 +4965,7 @@
 memory.
 
 @deftypefn {Target Hook} bool TARGET_RETURN_IN_MEMORY (const_tree @var{type}, const_tree @var{fntype})
+@c hook-start:TARGET_RETURN_IN_MEMORY
 This target hook should return a nonzero value to say to return the
 function value in memory, just as large structures are always returned.
 Here @var{type} will be the data type of the value, and @var{fntype}
@@ -4761,6 +4983,7 @@
 be returned in memory.  You should instead use @code{DEFAULT_PCC_STRUCT_RETURN}
 to indicate this.
 @end deftypefn
+@c hook-end
 
 @defmac DEFAULT_PCC_STRUCT_RETURN
 Define this macro to be 1 if all structure and union return values must be
@@ -4774,6 +4997,7 @@
 @end defmac
 
 @deftypefn {Target Hook} rtx TARGET_STRUCT_VALUE_RTX (tree @var{fndecl}, int @var{incoming})
+@c hook-start:TARGET_STRUCT_VALUE_RTX
 This target hook should return the location of the structure value
 address (normally a @code{mem} or @code{reg}), or 0 if the address is
 passed as an ``invisible'' first argument.  Note that @var{fndecl} may
@@ -4795,6 +5019,7 @@
 structure value address at the beginning of a function.  If you need
 to emit adjusting code, you should do it at this point.
 @end deftypefn
+@c hook-end
 
 @defmac PCC_STATIC_STRUCT_RETURN
 Define this macro if the usual system convention on the target machine
@@ -4809,26 +5034,34 @@
 @end defmac
 
 @deftypefn {Target Hook} fixed_size_mode TARGET_GET_RAW_RESULT_MODE (int @var{regno})
+@c hook-start:TARGET_GET_RAW_RESULT_MODE
 This target hook returns the mode to be used when accessing raw return
 registers in @code{__builtin_return}.  Define this macro if the value
 in @var{reg_raw_mode} is not correct.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} fixed_size_mode TARGET_GET_RAW_ARG_MODE (int @var{regno})
+@c hook-start:TARGET_GET_RAW_ARG_MODE
 This target hook returns the mode to be used when accessing raw argument
 registers in @code{__builtin_apply_args}.  Define this macro if the value
 in @var{reg_raw_mode} is not correct.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_EMPTY_RECORD_P (const_tree @var{type})
+@c hook-start:TARGET_EMPTY_RECORD_P
 This target hook returns true if the type is an empty record.  The default
 is to return @code{false}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_WARN_PARAMETER_PASSING_ABI (cumulative_args_t @var{ca}, tree @var{type})
+@c hook-start:TARGET_WARN_PARAMETER_PASSING_ABI
 This target hook warns about the change in empty class parameter passing
 ABI.
 @end deftypefn
+@c hook-end
 
 @node Caller Saves
 @subsection Caller-Saves Register Allocation
@@ -4855,6 +5088,7 @@
 (@dfn{prologue}) and exit (@dfn{epilogue}) code.
 
 @deftypefn {Target Hook} void TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY (FILE *@var{file}, unsigned HOST_WIDE_INT @var{patch_area_size}, bool @var{record_p})
+@c hook-start:TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY
 Generate a patchable area at the function start, consisting of
 @var{patch_area_size} NOP instructions.  If the target supports named
 sections and if @var{record_p} is true, insert a pointer to the current
@@ -4862,8 +5096,10 @@
 of the hook places the table of pointers in the special section named
 @code{__patchable_function_entries}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_FUNCTION_PROLOGUE (FILE *@var{file})
+@c hook-start:TARGET_ASM_FUNCTION_PROLOGUE
 If defined, a function that outputs the assembler code for entry to a
 function.  The prologue is responsible for setting up the stack frame,
 initializing the frame pointer register, saving registers that must be
@@ -4907,22 +5143,28 @@
 or by a debugger, there is no reason why the stack layout used by GCC
 need agree with that used by other compilers for a machine.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_FUNCTION_END_PROLOGUE (FILE *@var{file})
+@c hook-start:TARGET_ASM_FUNCTION_END_PROLOGUE
 If defined, a function that outputs assembler code at the end of a
 prologue.  This should be used when the function prologue is being
 emitted as RTL, and you have some extra assembler that needs to be
 emitted.  @xref{prologue instruction pattern}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_FUNCTION_BEGIN_EPILOGUE (FILE *@var{file})
+@c hook-start:TARGET_ASM_FUNCTION_BEGIN_EPILOGUE
 If defined, a function that outputs assembler code at the start of an
 epilogue.  This should be used when the function epilogue is being
 emitted as RTL, and you have some extra assembler that needs to be
 emitted.  @xref{epilogue instruction pattern}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_FUNCTION_EPILOGUE (FILE *@var{file})
+@c hook-start:TARGET_ASM_FUNCTION_EPILOGUE
 If defined, a function that outputs the assembler code for exit from a
 function.  The epilogue is responsible for restoring the saved
 registers and stack pointer to their values when the function was
@@ -4968,6 +5210,7 @@
 function's arguments that this function should pop is available in
 @code{crtl->args.pops_args}.  @xref{Scalar Return}.
 @end deftypefn
+@c hook-end
 
 @itemize @bullet
 @item
@@ -5030,6 +5273,7 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_ASM_OUTPUT_MI_THUNK (FILE *@var{file}, tree @var{thunk_fndecl}, HOST_WIDE_INT @var{delta}, HOST_WIDE_INT @var{vcall_offset}, tree @var{function})
+@c hook-start:TARGET_ASM_OUTPUT_MI_THUNK
 A function that outputs the assembler code for a thunk
 function, used to implement C++ virtual function calls with multiple
 inheritance.  The thunk acts as a wrapper around a virtual function,
@@ -5070,14 +5314,17 @@
 @var{function} instead of jumping to it.  The generic approach does
 not support varargs.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_ASM_CAN_OUTPUT_MI_THUNK (const_tree @var{thunk_fndecl}, HOST_WIDE_INT @var{delta}, HOST_WIDE_INT @var{vcall_offset}, const_tree @var{function})
+@c hook-start:TARGET_ASM_CAN_OUTPUT_MI_THUNK
 A function that returns true if TARGET_ASM_OUTPUT_MI_THUNK would be able
 to output the assembler code for the thunk function specified by the
 arguments it is passed, and false otherwise.  In the latter case, the
 generic approach will be used by the C++ front end, with the limitations
 previously exposed.
 @end deftypefn
+@c hook-end
 
 @node Profiling
 @subsection Generating Code for Profiling
@@ -5121,18 +5368,21 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_KEEP_LEAF_WHEN_PROFILED (void)
+@c hook-start:TARGET_KEEP_LEAF_WHEN_PROFILED
 This target hook returns true if the target wants the leaf flag for
 the current function to stay true even if it calls mcount.  This might
 make sense for targets using the leaf flag only to determine whether a
 stack frame needs to be generated or not and for which the call to
 mcount is generated before the function prologue.
 @end deftypefn
+@c hook-end
 
 @node Tail Calls
 @subsection Permitting tail calls
 @cindex tail calls
 
 @deftypefn {Target Hook} bool TARGET_FUNCTION_OK_FOR_SIBCALL (tree @var{decl}, tree @var{exp})
+@c hook-start:TARGET_FUNCTION_OK_FOR_SIBCALL
 True if it is OK to do sibling call optimization for the specified
 call expression @var{exp}.  @var{decl} will be the called function,
 or @code{NULL} if this is an indirect call.
@@ -5144,8 +5394,10 @@
 ``normal'' call.  The criteria for successful sibling call optimization
 may vary greatly between different architectures.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_EXTRA_LIVE_ON_ENTRY (bitmap @var{regs})
+@c hook-start:TARGET_EXTRA_LIVE_ON_ENTRY
 Add any hard registers to @var{regs} that are live on entry to the
 function.  This hook only needs to be defined to provide registers that
 cannot be found by examination of FUNCTION_ARG_REGNO_P, the callee saved
@@ -5153,17 +5405,22 @@
 TARGET_STRUCT_VALUE_RTX, FRAME_POINTER_REGNUM, EH_USES,
 FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and the PIC_OFFSET_TABLE_REGNUM.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SET_UP_BY_PROLOGUE (struct hard_reg_set_container *@var{})
+@c hook-start:TARGET_SET_UP_BY_PROLOGUE
 This hook should add additional registers that are computed by the prologue
 to the hard regset for shrink-wrapping optimization purposes.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_WARN_FUNC_RETURN (tree)
+@c hook-start:TARGET_WARN_FUNC_RETURN
 True if a function's return statements should be checked for matching
 the function's return type.  This includes checking for falling off the end
 of a non-void function.  Return false if no such check should be made.
 @end deftypefn
+@c hook-end
 
 @node Shrink-wrapping separate components
 @subsection Shrink-wrapping separate components
@@ -5191,6 +5448,7 @@
 generic code.
 
 @deftypefn {Target Hook} sbitmap TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS (void)
+@c hook-start:TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS
 This hook should return an @code{sbitmap} with the bits set for those
 components that can be separately shrink-wrapped in the current function.
 Return @code{NULL} if the current function should not get any separate
@@ -5198,40 +5456,52 @@
 Don't define this hook if it would always return @code{NULL}.
 If it is defined, the other hooks in this group have to be defined as well.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} sbitmap TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB (basic_block)
+@c hook-start:TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB
 This hook should return an @code{sbitmap} with the bits set for those
 components where either the prologue component has to be executed before
 the @code{basic_block}, or the epilogue component after it, or both.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS (sbitmap @var{components}, edge @var{e}, sbitmap @var{edge_components}, bool @var{is_prologue})
+@c hook-start:TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS
 This hook should clear the bits in the @var{components} bitmap for those
 components in @var{edge_components} that the target cannot handle on edge
 @var{e}, where @var{is_prologue} says if this is for a prologue or an
 epilogue instead.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS (sbitmap)
+@c hook-start:TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS
 Emit prologue insns for the components indicated by the parameter.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS (sbitmap)
+@c hook-start:TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS
 Emit epilogue insns for the components indicated by the parameter.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS (sbitmap)
+@c hook-start:TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS
 Mark the components in the parameter as handled, so that the
 @code{prologue} and @code{epilogue} named patterns know to ignore those
 components.  The target code should not hang on to the @code{sbitmap}, it
 will be deleted after this call.
 @end deftypefn
+@c hook-end
 
 @node Stack Smashing Protection
 @subsection Stack smashing protection
 @cindex stack smashing protection
 
 @deftypefn {Target Hook} tree TARGET_STACK_PROTECT_GUARD (void)
+@c hook-start:TARGET_STACK_PROTECT_GUARD
 This hook returns a @code{DECL} node for the external variable to use
 for the stack protection guard.  This variable is initialized by the
 runtime to some random value and is used to initialize the guard value
@@ -5241,8 +5511,10 @@
 The default version of this hook creates a variable called
 @samp{__stack_chk_guard}, which is normally defined in @file{libgcc2.c}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_STACK_PROTECT_FAIL (void)
+@c hook-start:TARGET_STACK_PROTECT_FAIL
 This hook returns a @code{CALL_EXPR} that alerts the runtime that the
 stack protect guard variable has been modified.  This expression should
 involve a call to a @code{noreturn} function.
@@ -5251,13 +5523,17 @@
 @samp{__stack_chk_fail}, taking no arguments.  This function is
 normally defined in @file{libgcc2.c}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_STACK_PROTECT_RUNTIME_ENABLED_P (void)
+@c hook-start:TARGET_STACK_PROTECT_RUNTIME_ENABLED_P
 Returns true if the target wants GCC's default stack protect runtime support,
 otherwise return false.  The default implementation always returns true.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Common Target Hook} bool TARGET_SUPPORTS_SPLIT_STACK (bool @var{report}, struct gcc_options *@var{opts})
+@c hook-start:TARGET_SUPPORTS_SPLIT_STACK
 Whether this target supports splitting the stack when the options
 described in @var{opts} have been passed.  This is called
 after options have been parsed, so the target may reject splitting
@@ -5265,8 +5541,10 @@
 returns false.  If @var{report} is true, this function may issue a warning
 or error; if @var{report} is false, it must simply return a value
 @end deftypefn
+@c hook-end
 
 @deftypefn {Common Target Hook} {vec<const char *>} TARGET_GET_VALID_OPTION_VALUES (int @var{option_code}, const char *@var{prefix})
+@c hook-start:TARGET_GET_VALID_OPTION_VALUES
 The hook is used for options that have a non-trivial list of
 possible option values.  OPTION_CODE is option code of opt_code
 enum type.  PREFIX is used for bash completion and allows an implementation
@@ -5274,12 +5552,14 @@
 should be allocated from heap memory and consumers should release them.
 The result will be pruned to cases with PREFIX if not NULL.
 @end deftypefn
+@c hook-end
 
 @node Miscellaneous Register Hooks
 @subsection Miscellaneous register hooks
 @cindex miscellaneous register hooks
 
 @deftypevr {Target Hook} bool TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS
+@c hook-start:TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS
 Set to true if each call that binds to a local definition explicitly
 clobbers or sets all non-fixed registers modified by performing the call.
 That is, by the call pattern itself, or by code that might be inserted by the
@@ -5289,6 +5569,7 @@
 The default version of this hook is set to false.  The purpose of this hook
 is to enable the fipa-ra optimization.
 @end deftypevr
+@c hook-end
 
 @node Varargs
 @section Implementing the Varargs Macros
@@ -5359,14 +5640,17 @@
 These machine description macros help implement varargs:
 
 @deftypefn {Target Hook} rtx TARGET_EXPAND_BUILTIN_SAVEREGS (void)
+@c hook-start:TARGET_EXPAND_BUILTIN_SAVEREGS
 If defined, this hook produces the machine-specific code for a call to
 @code{__builtin_saveregs}.  This code will be moved to the very
 beginning of the function, before any parameter access are made.  The
 return value of this function should be an RTX that contains the value
 to use as the return of @code{__builtin_saveregs}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SETUP_INCOMING_VARARGS (cumulative_args_t @var{args_so_far}, const function_arg_info @var{&arg}, int *@var{pretend_args_size}, int @var{second_time})
+@c hook-start:TARGET_SETUP_INCOMING_VARARGS
 This target hook offers an alternative to using
 @code{__builtin_saveregs} and defining the hook
 @code{TARGET_EXPAND_BUILTIN_SAVEREGS}.  Use it to store the anonymous
@@ -5401,8 +5685,10 @@
 end of the source file.  The hook @code{TARGET_SETUP_INCOMING_VARARGS} should
 not generate any instructions in this case.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_STRICT_ARGUMENT_NAMING (cumulative_args_t @var{ca})
+@c hook-start:TARGET_STRICT_ARGUMENT_NAMING
 Define this hook to return @code{true} if the location where a function
 argument is passed depends on whether or not it is a named argument.
 
@@ -5416,8 +5702,10 @@
 
 You need not define this hook if it always returns @code{false}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_CALL_ARGS (rtx, @var{tree})
+@c hook-start:TARGET_CALL_ARGS
 While generating RTL for a function call, this target hook is invoked once
 for each argument passed to the function, either a register returned by
 @code{TARGET_FUNCTION_ARG} or a memory location.  It is called just
@@ -5431,16 +5719,20 @@
 passed instead of an argument register.
 Most ports do not need to implement anything for this hook.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_END_CALL_ARGS (void)
+@c hook-start:TARGET_END_CALL_ARGS
 This target hook is invoked while generating RTL for a function call,
 just after the point where the return reg is copied into a pseudo.  It
 signals that all the call argument and return registers for the just
 emitted call are now no longer in use.
 Most ports do not need to implement anything for this hook.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_PRETEND_OUTGOING_VARARGS_NAMED (cumulative_args_t @var{ca})
+@c hook-start:TARGET_PRETEND_OUTGOING_VARARGS_NAMED
 If you need to conditionally change ABIs so that one works with
 @code{TARGET_SETUP_INCOMING_VARARGS}, but the other works like neither
 @code{TARGET_SETUP_INCOMING_VARARGS} nor @code{TARGET_STRICT_ARGUMENT_NAMING} was
@@ -5448,6 +5740,7 @@
 @code{TARGET_SETUP_INCOMING_VARARGS} is used, @code{false} otherwise.
 Otherwise, you should not define this hook.
 @end deftypefn
+@c hook-end
 
 @node Trampolines
 @section Support for Nested Functions
@@ -5496,6 +5789,7 @@
 for nested functions.
 
 @deftypevr {Target Hook} int TARGET_CUSTOM_FUNCTION_DESCRIPTORS
+@c hook-start:TARGET_CUSTOM_FUNCTION_DESCRIPTORS
 If the target can use GCC's generic descriptor mechanism for nested
 functions, define this hook to a power of 2 representing an unused bit
 in function pointers which can be used to differentiate descriptors at
@@ -5513,6 +5807,7 @@
 eliminates the need for trampolines that reside on the stack and require
 it to be made executable.
 @end deftypevr
+@c hook-end
 
 The following macros tell GCC how to generate code to allocate and
 initialize an executable trampoline.  You can also use this interface
@@ -5537,6 +5832,7 @@
 separately.
 
 @deftypefn {Target Hook} void TARGET_ASM_TRAMPOLINE_TEMPLATE (FILE *@var{f})
+@c hook-start:TARGET_ASM_TRAMPOLINE_TEMPLATE
 This hook is called by @code{assemble_trampoline_template} to output,
 on the stream @var{f}, assembler code for a block of data that contains
 the constant parts of a trampoline.  This code should not include a
@@ -5547,6 +5843,7 @@
 code to copy the trampoline into place would be larger than the code
 to generate it on the spot.
 @end deftypefn
+@c hook-end
 
 @defmac TRAMPOLINE_SECTION
 Return the section into which the trampoline template is to be placed
@@ -5565,6 +5862,7 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_TRAMPOLINE_INIT (rtx @var{m_tramp}, tree @var{fndecl}, rtx @var{static_chain})
+@c hook-start:TARGET_TRAMPOLINE_INIT
 This hook is called to initialize a trampoline.
 @var{m_tramp} is an RTX for the memory block for the trampoline; @var{fndecl}
 is the @code{FUNCTION_DECL} for the nested function; @var{static_chain} is an
@@ -5583,8 +5881,10 @@
 enabling stack execution, these actions should be performed after
 initializing the trampoline proper.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_EMIT_CALL_BUILTIN___CLEAR_CACHE (rtx @var{begin}, rtx @var{end})
+@c hook-start:TARGET_EMIT_CALL_BUILTIN___CLEAR_CACHE
 On targets that do not define a @code{clear_cache} insn expander,
 but that define the @code{CLEAR_CACHE_INSN} macro,
 maybe_emit_call_builtin___clear_cache relies on this target hook
@@ -5595,8 +5895,10 @@
 definitions may call alternate functions, with alternate calling
 conventions, or emit alternate RTX to perform the job.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_TRAMPOLINE_ADJUST_ADDRESS (rtx @var{addr})
+@c hook-start:TARGET_TRAMPOLINE_ADJUST_ADDRESS
 This hook should perform any machine-specific adjustment in
 the address of the trampoline.  Its argument contains the address of the
 memory block that was passed to @code{TARGET_TRAMPOLINE_INIT}.  In case
@@ -5605,6 +5907,7 @@
 be returned; otherwise @var{addr} should be returned unchanged.
 If this hook is not defined, @var{addr} will be used for function calls.
 @end deftypefn
+@c hook-end
 
 Implementing trampolines is difficult on many machines because they have
 separate instruction and data caches.  Writing into a stack location
@@ -5665,6 +5968,7 @@
 @findex set_optab_libfunc
 @findex init_one_libfunc
 @deftypefn {Target Hook} void TARGET_INIT_LIBFUNCS (void)
+@c hook-start:TARGET_INIT_LIBFUNCS
 This hook should declare additional library routines or rename
 existing ones, using the functions @code{set_optab_libfunc} and
 @code{init_one_libfunc} defined in @file{optabs.cc}.
@@ -5673,8 +5977,10 @@
 
 The default is to do nothing.  Most ports don't need to define this hook.
 @end deftypefn
+@c hook-end
 
 @deftypevr {Target Hook} bool TARGET_LIBFUNC_GNU_PREFIX
+@c hook-start:TARGET_LIBFUNC_GNU_PREFIX
 If false (the default), internal library routines start with two
 underscores.  If set to true, these routines start with @code{__gnu_}
 instead.  E.g., @code{__muldi3} changes to @code{__gnu_muldi3}.  This
@@ -5682,6 +5988,7 @@
 is set to true, the @file{tm.h} file must also
 @code{#define LIBGCC2_GNU_PREFIX}.
 @end deftypevr
+@c hook-end
 
 @defmac FLOAT_LIB_COMPARE_RETURNS_BOOL (@var{mode}, @var{comparison})
 This macro should return @code{true} if the library routine that
@@ -5737,17 +6044,21 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_LIBC_HAS_FUNCTION (enum function_class @var{fn_class}, tree @var{type})
+@c hook-start:TARGET_LIBC_HAS_FUNCTION
 This hook determines whether a function from a class of functions
 @var{fn_class} is present in the target C library.  If @var{type} is NULL,
 the caller asks for support for all standard (float, double, long double)
 types.  If @var{type} is non-NULL, the caller asks for support for a
 specific type.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_LIBC_HAS_FAST_FUNCTION (int @var{fcode})
+@c hook-start:TARGET_LIBC_HAS_FAST_FUNCTION
 This hook determines whether a function from a class of functions
 @code{(enum function_class)}@var{fcode} has a fast implementation.
 @end deftypefn
+@c hook-end
 
 @defmac NEXT_OBJC_RUNTIME
 Set this macro to 1 to use the "NeXT" Objective-C message sending conventions
@@ -5816,6 +6127,7 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_LEGITIMATE_ADDRESS_P (machine_mode @var{mode}, rtx @var{x}, bool @var{strict})
+@c hook-start:TARGET_LEGITIMATE_ADDRESS_P
 A function that returns whether @var{x} (an RTX) is a legitimate memory
 address on the target machine for a memory operand of mode @var{mode}.
 
@@ -5879,6 +6191,7 @@
 Using the hook is usually simpler because it limits the number of
 files that are recompiled when changes are made.
 @end deftypefn
+@c hook-end
 
 @defmac TARGET_MEM_CONSTRAINT
 A single character to be used instead of the default @code{'m'}
@@ -5905,6 +6218,7 @@
 @end defmac
 
 @deftypefn {Target Hook} rtx TARGET_LEGITIMIZE_ADDRESS (rtx @var{x}, rtx @var{oldx}, machine_mode @var{mode})
+@c hook-start:TARGET_LEGITIMIZE_ADDRESS
 This hook is given an invalid memory address @var{x} for an
 operand of mode @var{mode} and should try to return a valid memory
 address.
@@ -5926,6 +6240,7 @@
 a valid way to legitimize the address.  But often a machine-dependent
 strategy can generate better code.
 @end deftypefn
+@c hook-end
 
 @defmac LEGITIMIZE_RELOAD_ADDRESS (@var{x}, @var{mode}, @var{opnum}, @var{type}, @var{ind_levels}, @var{win})
 A C compound statement that attempts to replace @var{x}, which is an address
@@ -5977,6 +6292,7 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_MODE_DEPENDENT_ADDRESS_P (const_rtx @var{addr}, addr_space_t @var{addrspace})
+@c hook-start:TARGET_MODE_DEPENDENT_ADDRESS_P
 This hook returns @code{true} if memory address @var{addr} in address
 space @var{addrspace} can have
 different meanings depending on the machine mode of the memory
@@ -5992,16 +6308,20 @@
 
 The default version of this hook returns @code{false}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_LEGITIMATE_CONSTANT_P (machine_mode @var{mode}, rtx @var{x})
+@c hook-start:TARGET_LEGITIMATE_CONSTANT_P
 This hook returns true if @var{x} is a legitimate constant for a
 @var{mode}-mode immediate operand on the target machine.  You can assume that
 @var{x} satisfies @code{CONSTANT_P}, so you need not check this.
 
 The default definition returns true.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_PRECOMPUTE_TLS_P (machine_mode @var{mode}, rtx @var{x})
+@c hook-start:TARGET_PRECOMPUTE_TLS_P
 This hook returns true if @var{x} is a TLS operand on the target
 machine that should be pre-computed when used as the argument in a call.
 You can assume that @var{x} satisfies @code{CONSTANT_P}, so you need not 
@@ -6009,8 +6329,10 @@
 
 The default definition returns false.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_DELEGITIMIZE_ADDRESS (rtx @var{x})
+@c hook-start:TARGET_DELEGITIMIZE_ADDRESS
 This hook is used to undo the possibly obfuscating effects of the
 @code{LEGITIMIZE_ADDRESS} and @code{LEGITIMIZE_RELOAD_ADDRESS} target
 macros.  Some backend implementations of these macros wrap symbol
@@ -6019,13 +6341,17 @@
 the semantics of these opaque @code{UNSPEC}s by converting them back
 into their original form.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_CONST_NOT_OK_FOR_DEBUG_P (rtx @var{x})
+@c hook-start:TARGET_CONST_NOT_OK_FOR_DEBUG_P
 This hook should return true if @var{x} should not be emitted into
 debug sections.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_CANNOT_FORCE_CONST_MEM (machine_mode @var{mode}, rtx @var{x})
+@c hook-start:TARGET_CANNOT_FORCE_CONST_MEM
 This hook should return true if @var{x} is of a form that cannot (or
 should not) be spilled to the constant pool.  @var{mode} is the mode
 of @var{x}.
@@ -6038,29 +6364,37 @@
 holding the constant.  This restriction is often true of addresses
 of TLS symbols for various targets.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_USE_BLOCKS_FOR_CONSTANT_P (machine_mode @var{mode}, const_rtx @var{x})
+@c hook-start:TARGET_USE_BLOCKS_FOR_CONSTANT_P
 This hook should return true if pool entries for constant @var{x} can
 be placed in an @code{object_block} structure.  @var{mode} is the mode
 of @var{x}.
 
 The default version returns false for all constants.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_USE_BLOCKS_FOR_DECL_P (const_tree @var{decl})
+@c hook-start:TARGET_USE_BLOCKS_FOR_DECL_P
 This hook should return true if pool entries for @var{decl} should
 be placed in an @code{object_block} structure.
 
 The default version returns true for all decls.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_BUILTIN_RECIPROCAL (tree @var{fndecl})
+@c hook-start:TARGET_BUILTIN_RECIPROCAL
 This hook should return the DECL of a function that implements the
 reciprocal of the machine-specific builtin function @var{fndecl}, or
 @code{NULL_TREE} if such a function is not available.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD (void)
+@c hook-start:TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD
 This hook should return the DECL of a function @var{f} that given an
 address @var{addr} as an argument returns a mask @var{m} that can be
 used to extract from two vectors the relevant data that resides in
@@ -6088,14 +6422,18 @@
 the argument @var{OFF} to @code{REALIGN_LOAD}, in which case the low
 log2(@var{VS}) @minus{} 1 bits of @var{addr} will be considered.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST (enum vect_cost_for_stmt @var{type_of_cost}, tree @var{vectype}, int @var{misalign})
+@c hook-start:TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST
 Returns cost of different scalar or vector statements for vectorization cost model.
 For vector memory operations the cost may depend on type (@var{vectype}) and
 misalignment value (@var{misalign}).
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} poly_uint64 TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT (const_tree @var{type})
+@c hook-start:TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT
 This hook returns the preferred alignment in bits for accesses to
 vectors of type @var{type} in vectorized code.  This might be less than
 or greater than the ABI-defined value returned by
@@ -6106,14 +6444,18 @@
 The default hook returns @code{TYPE_ALIGN (@var{type})}, which is
 correct for most targets.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE (const_tree @var{type}, bool @var{is_packed})
+@c hook-start:TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
 Return true if vector alignment is reachable (by peeling N iterations)
 for the given scalar type @var{type}.  @var{is_packed} is false if the scalar
 access using @var{type} is known to be naturally aligned.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_VECTORIZE_VEC_PERM_CONST (machine_mode @var{mode}, machine_mode @var{op_mode}, rtx @var{output}, rtx @var{in0}, rtx @var{in1}, const vec_perm_indices @var{&sel})
+@c hook-start:TARGET_VECTORIZE_VEC_PERM_CONST
 This hook is used to test whether the target can permute up to two
 vectors of mode @var{op_mode} using the permutation vector @code{sel},
 producing a vector of mode @var{mode}.  The hook is also used to emit such
@@ -6136,45 +6478,57 @@
 instruction pattern.  There is no need for the hook to handle these two
 implementation approaches itself.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION (unsigned @var{code}, tree @var{vec_type_out}, tree @var{vec_type_in})
+@c hook-start:TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION
 This hook should return the decl of a function that implements the
 vectorized variant of the function with the @code{combined_fn} code
 @var{code} or @code{NULL_TREE} if such a function is not available.
 The return type of the vectorized function shall be of vector type
 @var{vec_type_out} and the argument types should be @var{vec_type_in}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION (tree @var{fndecl}, tree @var{vec_type_out}, tree @var{vec_type_in})
+@c hook-start:TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION
 This hook should return the decl of a function that implements the
 vectorized variant of target built-in function @code{fndecl}.  The
 return type of the vectorized function shall be of vector type
 @var{vec_type_out} and the argument types should be @var{vec_type_in}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT (machine_mode @var{mode}, const_tree @var{type}, int @var{misalignment}, bool @var{is_packed})
+@c hook-start:TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
 This hook should return true if the target supports misaligned vector
 store/load of a specific factor denoted in the @var{misalignment}
 parameter.  The vector store/load should be of machine mode @var{mode} and
 the elements in the vectors should be of type @var{type}.  @var{is_packed}
 parameter is true if the memory access is defined in a packed struct.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} machine_mode TARGET_VECTORIZE_PREFERRED_SIMD_MODE (scalar_mode @var{mode})
+@c hook-start:TARGET_VECTORIZE_PREFERRED_SIMD_MODE
 This hook should return the preferred mode for vectorizing scalar
 mode @var{mode}.  The default is
 equal to @code{word_mode}, because the vectorizer can do some
 transformations even in absence of specialized @acronym{SIMD} hardware.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} machine_mode TARGET_VECTORIZE_SPLIT_REDUCTION (machine_mode)
+@c hook-start:TARGET_VECTORIZE_SPLIT_REDUCTION
 This hook should return the preferred mode to split the final reduction
 step on @var{mode} to.  The reduction is then carried out reducing upper
 against lower halves of vectors recursively until the specified mode is
 reached.  The default is @var{mode} which means no splitting.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {unsigned int} TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES (vector_modes *@var{modes}, bool @var{all})
+@c hook-start:TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES
 If using the mode returned by @code{TARGET_VECTORIZE_PREFERRED_SIMD_MODE}
 is not the only approach worth considering, this hook should add one mode to
 @var{modes} for each useful alternative approach.  These modes are then
@@ -6204,8 +6558,10 @@
 for autovectorization.  The default implementation adds no modes and
 returns 0.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} opt_machine_mode TARGET_VECTORIZE_RELATED_MODE (machine_mode @var{vector_mode}, scalar_mode @var{element_mode}, poly_uint64 @var{nunits})
+@c hook-start:TARGET_VECTORIZE_RELATED_MODE
 If a piece of code is using vector mode @var{vector_mode} and also wants
 to operate on elements of mode @var{element_mode}, return the vector mode
 it should use for those elements.  If @var{nunits} is nonzero, ensure that
@@ -6228,8 +6584,10 @@
 requested mode, returning a mode with the same size as @var{vector_mode}
 when @var{nunits} is zero.  This is the correct behavior for most targets.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} opt_machine_mode TARGET_VECTORIZE_GET_MASK_MODE (machine_mode @var{mode})
+@c hook-start:TARGET_VECTORIZE_GET_MASK_MODE
 Return the mode to use for a vector mask that holds one boolean
 result for each element of vector mode @var{mode}.  The returned mask mode
 can be a vector of integers (class @code{MODE_VECTOR_INT}), a vector of
@@ -6240,14 +6598,18 @@
 The default implementation returns a @code{MODE_VECTOR_INT} with the
 same size and number of elements as @var{mode}, if such a mode exists.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE (unsigned @var{ifn})
+@c hook-start:TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE
 This hook returns true if masked internal function @var{ifn} (really of
 type @code{internal_fn}) should be considered expensive when the mask is
 all zeros.  GCC can then try to branch around the instruction instead.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {class vector_costs *} TARGET_VECTORIZE_CREATE_COSTS (vec_info *@var{vinfo}, bool @var{costing_for_scalar})
+@c hook-start:TARGET_VECTORIZE_CREATE_COSTS
 This hook should initialize target-specific data structures in preparation
 for modeling the costs of vectorizing a loop or basic block.  The default
 allocates three unsigned integers for accumulating costs for the prologue,
@@ -6257,24 +6619,30 @@
 current cost model is for the scalar version of a loop or block; otherwise
 it is for the vector version.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_VECTORIZE_BUILTIN_GATHER (const_tree @var{mem_vectype}, const_tree @var{index_type}, int @var{scale})
+@c hook-start:TARGET_VECTORIZE_BUILTIN_GATHER
 Target builtin that implements vector gather operation.  @var{mem_vectype}
 is the vector type of the load and @var{index_type} is scalar type of
 the index, scaled by @var{scale}.
 The default is @code{NULL_TREE} which means to not vectorize gather
 loads.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_VECTORIZE_BUILTIN_SCATTER (const_tree @var{vectype}, const_tree @var{index_type}, int @var{scale})
+@c hook-start:TARGET_VECTORIZE_BUILTIN_SCATTER
 Target builtin that implements vector scatter operation.  @var{vectype}
 is the vector type of the store and @var{index_type} is scalar type of
 the index, scaled by @var{scale}.
 The default is @code{NULL_TREE} which means to not vectorize scatter
 stores.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN (struct cgraph_node *@var{}, struct cgraph_simd_clone *@var{}, @var{tree}, @var{int})
+@c hook-start:TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN
 This hook should set @var{vecsize_mangle}, @var{vecsize_int}, @var{vecsize_float}
 fields in @var{simd_clone} structure pointed by @var{clone_info} argument and also
 @var{simdlen} field if it was previously 0.
@@ -6284,31 +6652,41 @@
 The hook should return 0 if SIMD clones shouldn't be emitted,
 or number of @var{vecsize_mangle} variants that should be emitted.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SIMD_CLONE_ADJUST (struct cgraph_node *@var{})
+@c hook-start:TARGET_SIMD_CLONE_ADJUST
 This hook should add implicit @code{attribute(target("..."))} attribute
 to SIMD clone @var{node} if needed.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_SIMD_CLONE_USABLE (struct cgraph_node *@var{})
+@c hook-start:TARGET_SIMD_CLONE_USABLE
 This hook should return -1 if SIMD clone @var{node} shouldn't be used
 in vectorized loops in current function, or non-negative number if it is
 usable.  In that case, the smaller the number is, the more desirable it is
 to use it.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_SIMT_VF (void)
+@c hook-start:TARGET_SIMT_VF
 Return number of threads in SIMT thread group on the target.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_OMP_DEVICE_KIND_ARCH_ISA (enum omp_device_kind_arch_isa @var{trait}, const char *@var{name})
+@c hook-start:TARGET_OMP_DEVICE_KIND_ARCH_ISA
 Return 1 if @var{trait} @var{name} is present in the OpenMP context's
 device trait set, return 0 if not present in any OpenMP context in the
 whole translation unit, or -1 if not present in the current OpenMP context
 but might be present in another OpenMP context in the same TU.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_GOACC_VALIDATE_DIMS (tree @var{decl}, int *@var{dims}, int @var{fn_level}, unsigned @var{used})
+@c hook-start:TARGET_GOACC_VALIDATE_DIMS
 This hook should check the launch dimensions provided for an OpenACC
 compute region, or routine.  Defaulted values are represented as -1
 and non-constant values as 0.  The @var{fn_level} is negative for the
@@ -6320,13 +6698,17 @@
 true, if changes have been made.  You must override this hook to
 provide dimensions larger than 1.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_GOACC_DIM_LIMIT (int @var{axis})
+@c hook-start:TARGET_GOACC_DIM_LIMIT
 This hook should return the maximum size of a particular dimension,
 or zero if unbounded.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_GOACC_FORK_JOIN (gcall *@var{call}, const int *@var{dims}, bool @var{is_fork})
+@c hook-start:TARGET_GOACC_FORK_JOIN
 This hook can be used to convert IFN_GOACC_FORK and IFN_GOACC_JOIN
 function calls to target-specific gimple, or indicate whether they
 should be retained.  It is executed during the oacc_device_lower pass.
@@ -6335,8 +6717,10 @@
 gimple has been inserted before it, or there is no need for it).
 The default hook returns false, if there are no RTL expanders for them.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_GOACC_REDUCTION (gcall *@var{call})
+@c hook-start:TARGET_GOACC_REDUCTION
 This hook is used by the oacc_transform pass to expand calls to the
 @var{GOACC_REDUCTION} internal function, into a sequence of gimple
 instructions.  @var{call} is gimple statement containing the call to
@@ -6344,8 +6728,10 @@
 expanded sequence has been inserted.  This hook is also responsible
 for allocating any storage for reductions when necessary.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_PREFERRED_ELSE_VALUE (unsigned @var{ifn}, tree @var{type}, unsigned @var{nops}, tree *@var{ops})
+@c hook-start:TARGET_PREFERRED_ELSE_VALUE
 This hook returns the target's preferred final argument for a call
 to conditional internal function @var{ifn} (really of type
 @code{internal_fn}).  @var{type} specifies the return type of the
@@ -6360,8 +6746,10 @@
 like @code{cond_add@var{m}}.  The default implementation returns a zero
 constant of type @var{type}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_GOACC_ADJUST_PRIVATE_DECL (location_t @var{loc}, tree @var{var}, int @var{level})
+@c hook-start:TARGET_GOACC_ADJUST_PRIVATE_DECL
 This hook, if defined, is used by accelerator target back-ends to adjust
 OpenACC variable declarations that should be made private to the given
 parallelism level (i.e. @code{GOMP_DIM_GANG}, @code{GOMP_DIM_WORKER} or
@@ -6373,8 +6761,10 @@
 adjusted variable declaration needs to be expanded to RTL in a non-standard
 way.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_GOACC_EXPAND_VAR_DECL (tree @var{var})
+@c hook-start:TARGET_GOACC_EXPAND_VAR_DECL
 This hook, if defined, is used by accelerator target back-ends to expand
 specially handled kinds of @code{VAR_DECL} expressions.  A particular use is
 to place variables with specific attributes inside special accelarator
@@ -6386,6 +6776,7 @@
 private variables at OpenACC device-lowering time using the
 @code{TARGET_GOACC_ADJUST_PRIVATE_DECL} target hook.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_GOACC_CREATE_WORKER_BROADCAST_RECORD (tree @var{rec}, bool @var{sender}, const char *@var{name}, unsigned HOST_WIDE_INT @var{offset})
 Create a record used to propagate local-variable state from an active
@@ -6439,19 +6830,24 @@
 or @code{TARGET_MAX_ANCHOR_OFFSET} is set to a nonzero value.
 
 @deftypevr {Target Hook} HOST_WIDE_INT TARGET_MIN_ANCHOR_OFFSET
+@c hook-start:TARGET_MIN_ANCHOR_OFFSET
 The minimum offset that should be applied to a section anchor.
 On most targets, it should be the smallest offset that can be
 applied to a base register while still giving a legitimate address
 for every mode.  The default value is 0.
 @end deftypevr
+@c hook-end
 
 @deftypevr {Target Hook} HOST_WIDE_INT TARGET_MAX_ANCHOR_OFFSET
+@c hook-start:TARGET_MAX_ANCHOR_OFFSET
 Like @code{TARGET_MIN_ANCHOR_OFFSET}, but the maximum (inclusive)
 offset that should be applied to section anchors.  The default
 value is 0.
 @end deftypevr
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_OUTPUT_ANCHOR (rtx @var{x})
+@c hook-start:TARGET_ASM_OUTPUT_ANCHOR
 Write the assembly code to define section anchor @var{x}, which is a
 @code{SYMBOL_REF} for which @samp{SYMBOL_REF_ANCHOR_P (@var{x})} is true.
 The hook is called with the assembly output position set to the beginning
@@ -6462,8 +6858,10 @@
 If @code{ASM_OUTPUT_DEF} is not available, the hook's default definition
 is @code{NULL}, which disables the use of section anchors altogether.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_USE_ANCHORS_FOR_SYMBOL_P (const_rtx @var{x})
+@c hook-start:TARGET_USE_ANCHORS_FOR_SYMBOL_P
 Return true if GCC should attempt to use anchors to access @code{SYMBOL_REF}
 @var{x}.  You can assume @samp{SYMBOL_REF_HAS_BLOCK_INFO_P (@var{x})} and
 @samp{!SYMBOL_REF_ANCHOR_P (@var{x})}.
@@ -6472,6 +6870,7 @@
 intercept this hook to handle things like target-specific attributes
 or target-specific sections.
 @end deftypefn
+@c hook-end
 
 @node Condition Code
 @section Condition Code Status
@@ -6571,6 +6970,7 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_CANONICALIZE_COMPARISON (int *@var{code}, rtx *@var{op0}, rtx *@var{op1}, bool @var{op0_preserve_value})
+@c hook-start:TARGET_CANONICALIZE_COMPARISON
 On some machines not all possible comparisons are defined, but you can
 convert an invalid comparison into a valid one.  For example, the Alpha
 does not have a @code{GT} comparison, but you can use an @code{LT}
@@ -6591,6 +6991,7 @@
 You need not to implement this hook if it would never change the
 comparison code or operands.
 @end deftypefn
+@c hook-end
 
 @defmac REVERSIBLE_CC_MODE (@var{mode})
 A C expression whose value is one if it is always safe to reverse a
@@ -6626,6 +7027,7 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_FIXED_CONDITION_CODE_REGS (unsigned int *@var{p1}, unsigned int *@var{p2})
+@c hook-start:TARGET_FIXED_CONDITION_CODE_REGS
 On targets which use a hard
 register rather than a pseudo-register to hold condition codes, the
 regular CSE passes are often not able to identify cases in which the
@@ -6639,8 +7041,10 @@
 
 The default version of this hook returns false.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} machine_mode TARGET_CC_MODES_COMPATIBLE (machine_mode @var{m1}, machine_mode @var{m2})
+@c hook-start:TARGET_CC_MODES_COMPATIBLE
 On targets which use multiple condition code modes in class
 @code{MODE_CC}, it is sometimes the case that a comparison can be
 validly done in more than one mode.  On such a system, define this
@@ -6652,12 +7056,15 @@
 same.  If they are, it returns that mode.  If they are different, it
 returns @code{VOIDmode}.
 @end deftypefn
+@c hook-end
 
 @deftypevr {Target Hook} {unsigned int} TARGET_FLAGS_REGNUM
+@c hook-start:TARGET_FLAGS_REGNUM
 If the target has a dedicated flags register, and it needs to use the
 post-reload comparison elimination pass, or the delay slot filler pass,
 then this value should be set appropriately.
 @end deftypevr
+@c hook-end
 
 @node Costs
 @section Describing Relative Costs of Operations
@@ -6691,6 +7098,7 @@
 @end defmac
 
 @deftypefn {Target Hook} int TARGET_REGISTER_MOVE_COST (machine_mode @var{mode}, reg_class_t @var{from}, reg_class_t @var{to})
+@c hook-start:TARGET_REGISTER_MOVE_COST
 This target hook should return the cost of moving data of mode @var{mode}
 from a register in class @var{from} to one in class @var{to}.  The classes
 are expressed using the enumeration values such as @code{GENERAL_REGS}.
@@ -6710,6 +7118,7 @@
 
 The default version of this function returns 2.
 @end deftypefn
+@c hook-end
 
 @defmac MEMORY_MOVE_COST (@var{mode}, @var{class}, @var{in})
 A C expression for the cost of moving data of mode @var{mode} between a
@@ -6739,6 +7148,7 @@
 @end defmac
 
 @deftypefn {Target Hook} int TARGET_MEMORY_MOVE_COST (machine_mode @var{mode}, reg_class_t @var{rclass}, bool @var{in})
+@c hook-start:TARGET_MEMORY_MOVE_COST
 This target hook should return the cost of moving data of mode @var{mode}
 between a register of class @var{rclass} and memory; @var{in} is @code{false}
 if the value is to be written to memory, @code{true} if it is to be read in.
@@ -6761,6 +7171,7 @@
 value to the result of that function.  The arguments to that function
 are the same as to this target hook.
 @end deftypefn
+@c hook-end
 
 @defmac BRANCH_COST (@var{speed_p}, @var{predictable_p})
 A C expression for the cost of a branch instruction.  A value of 1 is
@@ -6792,6 +7203,7 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_SLOW_UNALIGNED_ACCESS (machine_mode @var{mode}, unsigned int @var{align})
+@c hook-start:TARGET_SLOW_UNALIGNED_ACCESS
 This hook returns true if memory accesses described by the
 @var{mode} and @var{alignment} parameters have a cost many times greater
 than aligned accesses, for example if they are emulated in a trap handler.
@@ -6807,6 +7219,7 @@
 The hook must return true whenever @code{STRICT_ALIGNMENT} is true.
 The default implementation returns @code{STRICT_ALIGNMENT}.
 @end deftypefn
+@c hook-end
 
 @defmac MOVE_RATIO (@var{speed})
 The threshold of number of scalar memory-to-memory move insns, @emph{below}
@@ -6825,6 +7238,7 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_USE_BY_PIECES_INFRASTRUCTURE_P (unsigned HOST_WIDE_INT @var{size}, unsigned int @var{alignment}, enum by_pieces_operation @var{op}, bool @var{speed_p})
+@c hook-start:TARGET_USE_BY_PIECES_INFRASTRUCTURE_P
 GCC will attempt several strategies when asked to copy between
 two areas of memory, or to set, clear or store to memory, for example
 when copying a @code{struct}. The @code{by_pieces} infrastructure
@@ -6858,15 +7272,19 @@
 in code size, for example where the number of insns emitted to perform a
 move would be greater than that of a library call.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_OVERLAP_OP_BY_PIECES_P (void)
+@c hook-start:TARGET_OVERLAP_OP_BY_PIECES_P
 This target hook should return true if when the @code{by_pieces}
 infrastructure is used, an offset adjusted unaligned memory operation
 in the smallest integer mode for the last piece operation of a memory
 region can be generated to avoid doing more than one smaller operations.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_COMPARE_BY_PIECES_BRANCH_RATIO (machine_mode @var{mode})
+@c hook-start:TARGET_COMPARE_BY_PIECES_BRANCH_RATIO
 When expanding a block comparison in MODE, gcc can try to reduce the
 number of branches at the expense of more memory operations.  This hook
 allows the target to override the default choice.  It should return the
@@ -6875,6 +7293,7 @@
 particular mode from being used for block comparisons by returning a
 negative number from this hook.
 @end deftypefn
+@c hook-end
 
 @defmac MOVE_MAX_PIECES
 A C expression used by @code{move_by_pieces} to determine the largest unit
@@ -6978,6 +7397,7 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_OPTAB_SUPPORTED_P (int @var{op}, machine_mode @var{mode1}, machine_mode @var{mode2}, optimization_type @var{opt_type})
+@c hook-start:TARGET_OPTAB_SUPPORTED_P
 Return true if the optimizers should use optab @var{op} with
 modes @var{mode1} and @var{mode2} for optimization type @var{opt_type}.
 The optab is known to have an associated @file{.md} instruction
@@ -6990,8 +7410,10 @@
 
 The default hook returns true for all inputs.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_RTX_COSTS (rtx @var{x}, machine_mode @var{mode}, int @var{outer_code}, int @var{opno}, int *@var{total}, bool @var{speed})
+@c hook-start:TARGET_RTX_COSTS
 This target hook describes the relative costs of RTL expressions.
 
 The cost may depend on the precise form of the expression, which is
@@ -7022,8 +7444,10 @@
 The hook returns true when all subexpressions of @var{x} have been
 processed, and false when @code{rtx_cost} should recurse.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_ADDRESS_COST (rtx @var{address}, machine_mode @var{mode}, addr_space_t @var{as}, bool @var{speed})
+@c hook-start:TARGET_ADDRESS_COST
 This hook computes the cost of an addressing mode that contains
 @var{address}.  If not defined, the cost is computed from
 the @var{address} expression and the @code{TARGET_RTX_COST} hook.
@@ -7057,8 +7481,10 @@
 should probably only be given to addresses with different numbers of
 registers on machines with lots of registers.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_INSN_COST (rtx_insn *@var{insn}, bool @var{speed})
+@c hook-start:TARGET_INSN_COST
 This target hook describes the relative costs of RTL instructions.
 
 In implementing this hook, you can use the construct
@@ -7069,8 +7495,10 @@
 false, this target hook should be used to estimate the relative
 size cost of an expression, again relative to @code{COSTS_N_INSNS}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {unsigned int} TARGET_MAX_NOCE_IFCVT_SEQ_COST (edge @var{e})
+@c hook-start:TARGET_MAX_NOCE_IFCVT_SEQ_COST
 This hook returns a value in the same units as @code{TARGET_RTX_COSTS},
 giving the maximum acceptable cost for a sequence generated by the RTL
 if-conversion pass when conditional execution is not available.
@@ -7089,21 +7517,27 @@
 @code{max-rtl-if-conversion-[un]predictable} parameters if they are set,
 and uses a multiple of @code{BRANCH_COST} otherwise.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_NOCE_CONVERSION_PROFITABLE_P (rtx_insn *@var{seq}, struct noce_if_info *@var{if_info})
+@c hook-start:TARGET_NOCE_CONVERSION_PROFITABLE_P
 This hook returns true if the instruction sequence @code{seq} is a good
 candidate as a replacement for the if-convertible sequence described in
 @code{if_info}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_NEW_ADDRESS_PROFITABLE_P (rtx @var{memref}, rtx_insn * @var{insn}, rtx @var{new_addr})
+@c hook-start:TARGET_NEW_ADDRESS_PROFITABLE_P
 Return @code{true} if it is profitable to replace the address in
 @var{memref} with @var{new_addr}.  This allows targets to prevent the
 scheduler from undoing address optimizations.  The instruction containing the
 memref is @var{insn}.  The default implementation returns @code{true}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P (void)
+@c hook-start:TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P
 This predicate controls the use of the eager delay slot filler to disallow
 speculatively executed instructions being placed in delay slots.  Targets
 such as certain MIPS architectures possess both branches with and without
@@ -7112,8 +7546,10 @@
 delay slot branches filled using the basic filler is often still desirable
 as the delay slot can hide a pipeline bubble.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} HOST_WIDE_INT TARGET_ESTIMATED_POLY_VALUE (poly_int64 @var{val}, poly_value_estimate_kind @var{kind})
+@c hook-start:TARGET_ESTIMATED_POLY_VALUE
 Return an estimate of the runtime value of @var{val}, for use in
 things like cost calculations or profiling frequencies.  @var{kind} is used
 to ask for the minimum, maximum, and likely estimates of the value through
@@ -7121,6 +7557,7 @@
 @code{POLY_VALUE_LIKELY} values.  The default
 implementation returns the lowest possible value of @var{val}.
 @end deftypefn
+@c hook-end
 
 @node Scheduling
 @section Adjusting the Instruction Scheduler
@@ -7131,6 +7568,7 @@
 them: try the first ones in this list first.
 
 @deftypefn {Target Hook} int TARGET_SCHED_ISSUE_RATE (void)
+@c hook-start:TARGET_SCHED_ISSUE_RATE
 This hook returns the maximum number of instructions that can ever
 issue at the same time on the target machine.  The default is one.
 Although the insn scheduler can define itself the possibility of issue
@@ -7141,8 +7579,10 @@
 it to vary depending on what the instructions are, you must use
 @samp{TARGET_SCHED_VARIABLE_ISSUE}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_SCHED_VARIABLE_ISSUE (FILE *@var{file}, int @var{verbose}, rtx_insn *@var{insn}, int @var{more})
+@c hook-start:TARGET_SCHED_VARIABLE_ISSUE
 This hook is executed by the scheduler after it has scheduled an insn
 from the ready list.  It should return the number of insns which can
 still be issued in the current cycle.  The default is
@@ -7155,8 +7595,10 @@
 @option{-fsched-verbose-@var{n}}.  @var{insn} is the instruction that
 was scheduled.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_SCHED_ADJUST_COST (rtx_insn *@var{insn}, int @var{dep_type1}, rtx_insn *@var{dep_insn}, int @var{cost}, unsigned int @var{dw})
+@c hook-start:TARGET_SCHED_ADJUST_COST
 This function corrects the value of @var{cost} based on the
 relationship between @var{insn} and @var{dep_insn} through a
 dependence of type dep_type, and strength @var{dw}.  It should return the new
@@ -7170,16 +7612,20 @@
 acceptable, you could use the hook to modify them too.  See also
 @pxref{Processor pipeline description}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_SCHED_ADJUST_PRIORITY (rtx_insn *@var{insn}, int @var{priority})
+@c hook-start:TARGET_SCHED_ADJUST_PRIORITY
 This hook adjusts the integer scheduling priority @var{priority} of
 @var{insn}.  It should return the new priority.  Increase the priority to
 execute @var{insn} earlier, reduce the priority to execute @var{insn}
 later.  Do not define this hook if you do not need to adjust the
 scheduling priorities of insns.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_SCHED_REORDER (FILE *@var{file}, int @var{verbose}, rtx_insn **@var{ready}, int *@var{n_readyp}, int @var{clock})
+@c hook-start:TARGET_SCHED_REORDER
 This hook is executed by the scheduler after it has scheduled the ready
 list, to allow the machine description to reorder it (for example to
 combine two small instructions together on @samp{VLIW} machines).
@@ -7195,8 +7641,10 @@
 can issue this cycle; normally this is just @code{issue_rate}.  See also
 @samp{TARGET_SCHED_REORDER2}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_SCHED_REORDER2 (FILE *@var{file}, int @var{verbose}, rtx_insn **@var{ready}, int *@var{n_readyp}, int @var{clock})
+@c hook-start:TARGET_SCHED_REORDER2
 Like @samp{TARGET_SCHED_REORDER}, but called at a different time.  That
 function is called whenever the scheduler starts a new cycle.  This one
 is called once per iteration over a cycle, immediately after
@@ -7206,12 +7654,16 @@
 scheduling one insn causes other insns to become ready in the same
 cycle.  These other insns can then be taken into account properly.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_SCHED_MACRO_FUSION_P (void)
+@c hook-start:TARGET_SCHED_MACRO_FUSION_P
 This hook is used to check whether target platform supports macro fusion.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_SCHED_MACRO_FUSION_PAIR_P (rtx_insn *@var{prev}, rtx_insn *@var{curr})
+@c hook-start:TARGET_SCHED_MACRO_FUSION_PAIR_P
 This hook is used to check whether two insns should be macro fused for
 a target microarchitecture. If this hook returns true for the given insn pair
 (@var{prev} and @var{curr}), the scheduler will put them into a sched
@@ -7219,8 +7671,10 @@
 two SET insns or a compare and a conditional jump and this hook should
 validate any dependencies needed to fuse the two insns together.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK (rtx_insn *@var{head}, rtx_insn *@var{tail})
+@c hook-start:TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK
 This hook is called after evaluation forward dependencies of insns in
 chain given by two parameter values (@var{head} and @var{tail}
 correspondingly) but before insns scheduling of the insn chain.  For
@@ -7229,8 +7683,10 @@
 dependencies of the insn scheduler because they are already
 calculated.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_INIT (FILE *@var{file}, int @var{verbose}, int @var{max_ready})
+@c hook-start:TARGET_SCHED_INIT
 This hook is executed by the scheduler at the beginning of each block of
 instructions that are to be scheduled.  @var{file} is either a null
 pointer, or a stdio stream to write any debug output to.  @var{verbose}
@@ -7239,8 +7695,10 @@
 region that can be live at the same time.  This can be used to allocate
 scratch space if it is needed, e.g.@: by @samp{TARGET_SCHED_REORDER}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_FINISH (FILE *@var{file}, int @var{verbose})
+@c hook-start:TARGET_SCHED_FINISH
 This hook is executed by the scheduler at the end of each block of
 instructions that are to be scheduled.  It can be used to perform
 cleanup of any actions done by the other scheduling hooks.  @var{file}
@@ -7248,21 +7706,27 @@
 to.  @var{verbose} is the verbose level provided by
 @option{-fsched-verbose-@var{n}}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_INIT_GLOBAL (FILE *@var{file}, int @var{verbose}, int @var{old_max_uid})
+@c hook-start:TARGET_SCHED_INIT_GLOBAL
 This hook is executed by the scheduler after function level initializations.
 @var{file} is either a null pointer, or a stdio stream to write any debug output to.
 @var{verbose} is the verbose level provided by @option{-fsched-verbose-@var{n}}.
 @var{old_max_uid} is the maximum insn uid when scheduling begins.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_FINISH_GLOBAL (FILE *@var{file}, int @var{verbose})
+@c hook-start:TARGET_SCHED_FINISH_GLOBAL
 This is the cleanup hook corresponding to @code{TARGET_SCHED_INIT_GLOBAL}.
 @var{file} is either a null pointer, or a stdio stream to write any debug output to.
 @var{verbose} is the verbose level provided by @option{-fsched-verbose-@var{n}}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_SCHED_DFA_PRE_CYCLE_INSN (void)
+@c hook-start:TARGET_SCHED_DFA_PRE_CYCLE_INSN
 The hook returns an RTL insn.  The automaton state used in the
 pipeline hazard recognizer is changed as if the insn were scheduled
 when the new simulated processor cycle starts.  Usage of the hook may
@@ -7271,37 +7735,49 @@
 based pipeline description.  The default is not to change the state
 when the new simulated processor cycle starts.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN (void)
+@c hook-start:TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN
 The hook can be used to initialize data used by the previous hook.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {rtx_insn *} TARGET_SCHED_DFA_POST_CYCLE_INSN (void)
+@c hook-start:TARGET_SCHED_DFA_POST_CYCLE_INSN
 The hook is analogous to @samp{TARGET_SCHED_DFA_PRE_CYCLE_INSN} but used
 to changed the state as if the insn were scheduled when the new
 simulated processor cycle finishes.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN (void)
+@c hook-start:TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN
 The hook is analogous to @samp{TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN} but
 used to initialize data used by the previous hook.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE (void)
+@c hook-start:TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE
 The hook to notify target that the current simulated cycle is about to finish.
 The hook is analogous to @samp{TARGET_SCHED_DFA_PRE_CYCLE_INSN} but used
 to change the state in more complicated situations - e.g., when advancing
 state on a single insn is not enough.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_DFA_POST_ADVANCE_CYCLE (void)
+@c hook-start:TARGET_SCHED_DFA_POST_ADVANCE_CYCLE
 The hook to notify target that new simulated cycle has just started.
 The hook is analogous to @samp{TARGET_SCHED_DFA_POST_CYCLE_INSN} but used
 to change the state in more complicated situations - e.g., when advancing
 state on a single insn is not enough.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD (void)
+@c hook-start:TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD
 This hook controls better choosing an insn from the ready insn queue
 for the @acronym{DFA}-based insn scheduler.  Usually the scheduler
 chooses the first insn from the queue.  If the hook returns a positive
@@ -7329,8 +7805,10 @@
 
 The default is no multipass scheduling.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD (rtx_insn *@var{insn}, int @var{ready_index})
+@c hook-start:TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD
 
 This hook controls what insns from the ready insn queue will be
 considered for the multipass insn scheduling.  If the hook returns
@@ -7345,35 +7823,49 @@
 
 The default is that any ready insns can be chosen to be issued.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_FIRST_CYCLE_MULTIPASS_BEGIN (void *@var{data}, signed char *@var{ready_try}, int @var{n_ready}, bool @var{first_cycle_insn_p})
+@c hook-start:TARGET_SCHED_FIRST_CYCLE_MULTIPASS_BEGIN
 This hook prepares the target backend for a new round of multipass
 scheduling.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_FIRST_CYCLE_MULTIPASS_ISSUE (void *@var{data}, signed char *@var{ready_try}, int @var{n_ready}, rtx_insn *@var{insn}, const void *@var{prev_data})
+@c hook-start:TARGET_SCHED_FIRST_CYCLE_MULTIPASS_ISSUE
 This hook is called when multipass scheduling evaluates instruction INSN.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_FIRST_CYCLE_MULTIPASS_BACKTRACK (const void *@var{data}, signed char *@var{ready_try}, int @var{n_ready})
+@c hook-start:TARGET_SCHED_FIRST_CYCLE_MULTIPASS_BACKTRACK
 This is called when multipass scheduling backtracks from evaluation of
 an instruction.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_FIRST_CYCLE_MULTIPASS_END (const void *@var{data})
+@c hook-start:TARGET_SCHED_FIRST_CYCLE_MULTIPASS_END
 This hook notifies the target about the result of the concluded current
 round of multipass scheduling.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_FIRST_CYCLE_MULTIPASS_INIT (void *@var{data})
+@c hook-start:TARGET_SCHED_FIRST_CYCLE_MULTIPASS_INIT
 This hook initializes target-specific data used in multipass scheduling.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_FIRST_CYCLE_MULTIPASS_FINI (void *@var{data})
+@c hook-start:TARGET_SCHED_FIRST_CYCLE_MULTIPASS_FINI
 This hook finalizes target-specific data used in multipass scheduling.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_SCHED_DFA_NEW_CYCLE (FILE *@var{dump}, int @var{verbose}, rtx_insn *@var{insn}, int @var{last_clock}, int @var{clock}, int *@var{sort_p})
+@c hook-start:TARGET_SCHED_DFA_NEW_CYCLE
 This hook is called by the insn scheduler before issuing @var{insn}
 on cycle @var{clock}.  If the hook returns nonzero,
 @var{insn} is not issued on this processor cycle.  Instead,
@@ -7385,8 +7877,10 @@
 processor cycle on which the previous insn has been issued,
 and the current processor cycle.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_SCHED_IS_COSTLY_DEPENDENCE (struct _dep *@var{_dep}, int @var{cost}, int @var{distance})
+@c hook-start:TARGET_SCHED_IS_COSTLY_DEPENDENCE
 This hook is used to define which dependences are considered costly by
 the target, so costly that it is not advisable to schedule the insns that
 are involved in the dependence too close to one another.  The parameters
@@ -7406,36 +7900,50 @@
 closer to one another---i.e., closer than the dependence distance;  however,
 not in cases of ``costly dependences'', which this hooks allows to define.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_H_I_D_EXTENDED (void)
+@c hook-start:TARGET_SCHED_H_I_D_EXTENDED
 This hook is called by the insn scheduler after emitting a new instruction to
 the instruction stream.  The hook notifies a target backend to extend its
 per instruction data structures.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {void *} TARGET_SCHED_ALLOC_SCHED_CONTEXT (void)
+@c hook-start:TARGET_SCHED_ALLOC_SCHED_CONTEXT
 Return a pointer to a store large enough to hold target scheduling context.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_INIT_SCHED_CONTEXT (void *@var{tc}, bool @var{clean_p})
+@c hook-start:TARGET_SCHED_INIT_SCHED_CONTEXT
 Initialize store pointed to by @var{tc} to hold target scheduling context.
 It @var{clean_p} is true then initialize @var{tc} as if scheduler is at the
 beginning of the block.  Otherwise, copy the current context into @var{tc}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_SET_SCHED_CONTEXT (void *@var{tc})
+@c hook-start:TARGET_SCHED_SET_SCHED_CONTEXT
 Copy target scheduling context pointed to by @var{tc} to the current context.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_CLEAR_SCHED_CONTEXT (void *@var{tc})
+@c hook-start:TARGET_SCHED_CLEAR_SCHED_CONTEXT
 Deallocate internal data in target scheduling context pointed to by @var{tc}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_FREE_SCHED_CONTEXT (void *@var{tc})
+@c hook-start:TARGET_SCHED_FREE_SCHED_CONTEXT
 Deallocate a store for target scheduling context pointed to by @var{tc}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_SCHED_SPECULATE_INSN (rtx_insn *@var{insn}, unsigned int @var{dep_status}, rtx *@var{new_pat})
+@c hook-start:TARGET_SCHED_SPECULATE_INSN
 This hook is called by the insn scheduler when @var{insn} has only
 speculative dependencies and therefore can be scheduled speculatively.
 The hook is used to check if the pattern of @var{insn} has a speculative
@@ -7445,14 +7953,18 @@
 speculation.  If the return value equals 1 then @var{new_pat} is assigned
 the generated speculative pattern.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_SCHED_NEEDS_BLOCK_P (unsigned int @var{dep_status})
+@c hook-start:TARGET_SCHED_NEEDS_BLOCK_P
 This hook is called by the insn scheduler during generation of recovery code
 for @var{insn}.  It should return @code{true}, if the corresponding check
 instruction should branch to recovery code, or @code{false} otherwise.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_SCHED_GEN_SPEC_CHECK (rtx_insn *@var{insn}, rtx_insn *@var{label}, unsigned int @var{ds})
+@c hook-start:TARGET_SCHED_GEN_SPEC_CHECK
 This hook is called by the insn scheduler to generate a pattern for recovery
 check instruction.  If @var{mutate_p} is zero, then @var{insn} is a
 speculative instruction for which the check should be generated.
@@ -7462,23 +7974,29 @@
 a pattern for a branchy check corresponding to a simple check denoted by
 @var{insn} should be generated.  In this case @var{label} can't be null.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_SET_SCHED_FLAGS (struct spec_info_def *@var{spec_info})
+@c hook-start:TARGET_SCHED_SET_SCHED_FLAGS
 This hook is used by the insn scheduler to find out what features should be
 enabled/used.
 The structure *@var{spec_info} should be filled in by the target.
 The structure describes speculation types that can be used in the scheduler.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_SCHED_CAN_SPECULATE_INSN (rtx_insn *@var{insn})
+@c hook-start:TARGET_SCHED_CAN_SPECULATE_INSN
 Some instructions should never be speculated by the schedulers, usually
  because the instruction is too expensive to get this wrong.  Often such
  instructions have long latency, and often they are not fully modeled in the
  pipeline descriptions.  This hook should return @code{false} if @var{insn}
  should not be speculated.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_SCHED_SMS_RES_MII (struct ddg *@var{g})
+@c hook-start:TARGET_SCHED_SMS_RES_MII
 This hook is called by the swing modulo scheduler to calculate a
 resource-based lower bound which is based on the resources available in
 the machine and the resources required by each instruction.  The target
@@ -7486,29 +8004,39 @@
 bound will be used in case this hook is not implemented: the total number
 of instructions divided by the issue rate.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_SCHED_DISPATCH (rtx_insn *@var{insn}, int @var{x})
+@c hook-start:TARGET_SCHED_DISPATCH
 This hook is called by Haifa Scheduler.  It returns true if dispatch scheduling
 is supported in hardware and the condition specified in the parameter is true.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_DISPATCH_DO (rtx_insn *@var{insn}, int @var{x})
+@c hook-start:TARGET_SCHED_DISPATCH_DO
 This hook is called by Haifa Scheduler.  It performs the operation specified
 in its second parameter.
 @end deftypefn
+@c hook-end
 
 @deftypevr {Target Hook} bool TARGET_SCHED_EXPOSED_PIPELINE
+@c hook-start:TARGET_SCHED_EXPOSED_PIPELINE
 True if the processor has an exposed pipeline, which means that not just
 the order of instructions is important for correctness when scheduling, but
 also the latencies of operations.
 @end deftypevr
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_SCHED_REASSOCIATION_WIDTH (unsigned int @var{opc}, machine_mode @var{mode})
+@c hook-start:TARGET_SCHED_REASSOCIATION_WIDTH
 This hook is called by tree reassociator to determine a level of
 parallelism required in output calculations chain.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SCHED_FUSION_PRIORITY (rtx_insn *@var{insn}, int @var{max_pri}, int *@var{fusion_pri}, int *@var{pri})
+@c hook-start:TARGET_SCHED_FUSION_PRIORITY
 This hook is called by scheduling fusion pass.  It calculates fusion
 priorities for each instruction passed in by parameter.  The priorities
 are returned via pointer parameters.
@@ -7583,11 +8111,14 @@
 This is firstly introduced on ARM/AArch64 targets, please refer to
 the hook implementation for how different fusion types are supported.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_EXPAND_DIVMOD_LIBFUNC (rtx @var{libfunc}, machine_mode @var{mode}, rtx @var{op0}, rtx @var{op1}, rtx *@var{quot}, rtx *@var{rem})
+@c hook-start:TARGET_EXPAND_DIVMOD_LIBFUNC
 Define this hook for enabling divmod transform if the port does not have
 hardware divmod insn but defines target-specific divmod libfuncs.
 @end deftypefn
+@c hook-end
 
 @node Sections
 @section Dividing the Output into Sections (Texts, Data, @dots{})
@@ -7771,6 +8302,7 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_ASM_INIT_SECTIONS (void)
+@c hook-start:TARGET_ASM_INIT_SECTIONS
 Define this hook if you need to do something special to set up the
 @file{varasm.cc} sections, or if your target has some special sections
 of its own that you need to create.
@@ -7779,8 +8311,10 @@
 any assembly code, and before calling any of the section-returning hooks
 described below.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_ASM_RELOC_RW_MASK (void)
+@c hook-start:TARGET_ASM_RELOC_RW_MASK
 Return a mask describing how relocations should be treated when
 selecting sections.  Bit 1 should be set if global relocations
 should be placed in a read-write section; bit 0 should be set if
@@ -7791,16 +8325,20 @@
 when the target cannot support (some kinds of) dynamic relocations
 in read-only sections even in executables.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC (void)
+@c hook-start:TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC
 Return true to generate ADDR_DIF_VEC table
 or false to generate ADDR_VEC table for jumps in case of -fPIC.
 
 The default version of this function returns true if flag_pic
 equals true and false otherwise
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {section *} TARGET_ASM_SELECT_SECTION (tree @var{exp}, int @var{reloc}, unsigned HOST_WIDE_INT @var{align})
+@c hook-start:TARGET_ASM_SELECT_SECTION
 Return the section into which @var{exp} should be placed.  You can
 assume that @var{exp} is either a @code{VAR_DECL} node or a constant of
 some sort.  @var{reloc} indicates whether the initial value of @var{exp}
@@ -7813,6 +8351,7 @@
 
 See also @var{USE_SELECT_SECTION_FOR_FUNCTIONS}.
 @end deftypefn
+@c hook-end
 
 @defmac USE_SELECT_SECTION_FOR_FUNCTIONS
 Define this macro if you wish TARGET_ASM_SELECT_SECTION to be called
@@ -7824,6 +8363,7 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_ASM_UNIQUE_SECTION (tree @var{decl}, int @var{reloc})
+@c hook-start:TARGET_ASM_UNIQUE_SECTION
 Build up a unique section name, expressed as a @code{STRING_CST} node,
 and assign it to @samp{DECL_SECTION_NAME (@var{decl})}.
 As with @code{TARGET_ASM_SELECT_SECTION}, @var{reloc} indicates whether
@@ -7834,8 +8374,10 @@
 example, the function @code{foo} would be placed in @code{.text.foo}.
 Whatever the actual target object format, this is often good enough.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {section *} TARGET_ASM_FUNCTION_RODATA_SECTION (tree @var{decl}, bool @var{relocatable})
+@c hook-start:TARGET_ASM_FUNCTION_RODATA_SECTION
 Return the readonly data or reloc readonly data section associated with
 @samp{DECL_SECTION_NAME (@var{decl})}. @var{relocatable} selects the latter
 over the former.
@@ -7844,19 +8386,25 @@
 or @code{.data.rel.ro.name} if function is in @code{.text.name}, and
 the normal readonly-data or reloc readonly data section otherwise.
 @end deftypefn
+@c hook-end
 
 @deftypevr {Target Hook} {const char *} TARGET_ASM_MERGEABLE_RODATA_PREFIX
+@c hook-start:TARGET_ASM_MERGEABLE_RODATA_PREFIX
 Usually, the compiler uses the prefix @code{".rodata"} to construct
 section names for mergeable constant data.  Define this macro to override
 the string if a different section name should be used.
 @end deftypevr
+@c hook-end
 
 @deftypefn {Target Hook} {section *} TARGET_ASM_TM_CLONE_TABLE_SECTION (void)
+@c hook-start:TARGET_ASM_TM_CLONE_TABLE_SECTION
 Return the section that should be used for transactional memory clone
 tables.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {section *} TARGET_ASM_SELECT_RTX_SECTION (machine_mode @var{mode}, rtx @var{x}, unsigned HOST_WIDE_INT @var{align})
+@c hook-start:TARGET_ASM_SELECT_RTX_SECTION
 Return the section into which a constant @var{x}, of mode @var{mode},
 should be placed.  You can assume that @var{x} is some kind of
 constant in RTL@.  The argument @var{mode} is redundant except in the
@@ -7867,8 +8415,10 @@
 constants in @code{flag_pic} mode in @code{data_section} and everything
 else in @code{readonly_data_section}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_MANGLE_DECL_ASSEMBLER_NAME (tree @var{decl}, tree @var{id})
+@c hook-start:TARGET_MANGLE_DECL_ASSEMBLER_NAME
 Define this hook if you need to postprocess the assembler name generated
 by target-independent code.  The @var{id} provided to this hook will be
 the computed name (e.g., the macro @code{DECL_NAME} of the @var{decl} in C,
@@ -7877,8 +8427,10 @@
 your target system.  The default implementation of this hook just
 returns the @var{id} provided.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ENCODE_SECTION_INFO (tree @var{decl}, rtx @var{rtl}, int @var{new_decl_p})
+@c hook-start:TARGET_ENCODE_SECTION_INFO
 Define this hook if references to a symbol or a constant must be
 treated differently depending on something about the variable or
 function named by the symbol (such as what section it is in).
@@ -7915,31 +8467,41 @@
 @code{SYMBOL_REF_FLAGS}.  Check whether the default does what you need
 before overriding it.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {const char *} TARGET_STRIP_NAME_ENCODING (const char *@var{name})
+@c hook-start:TARGET_STRIP_NAME_ENCODING
 Decode @var{name} and return the real name part, sans
 the characters that @code{TARGET_ENCODE_SECTION_INFO}
 may have added.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_IN_SMALL_DATA_P (const_tree @var{exp})
+@c hook-start:TARGET_IN_SMALL_DATA_P
 Returns true if @var{exp} should be placed into a ``small data'' section.
 The default version of this hook always returns false.
 @end deftypefn
+@c hook-end
 
 @deftypevr {Target Hook} bool TARGET_HAVE_SRODATA_SECTION
+@c hook-start:TARGET_HAVE_SRODATA_SECTION
 Contains the value true if the target places read-only
 ``small data'' into a separate section.  The default value is false.
 @end deftypevr
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_PROFILE_BEFORE_PROLOGUE (void)
+@c hook-start:TARGET_PROFILE_BEFORE_PROLOGUE
 It returns true if target wants profile code emitted before prologue.
 
 The default version of this hook use the target macro
 @code{PROFILE_BEFORE_PROLOGUE}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_BINDS_LOCAL_P (const_tree @var{exp})
+@c hook-start:TARGET_BINDS_LOCAL_P
 Returns true if @var{exp} names an object for which name resolution
 rules must resolve to the current ``module'' (dynamic shared library
 or executable image).
@@ -7948,11 +8510,14 @@
 for ELF, which has a looser model of global name binding than other
 currently supported object file formats.
 @end deftypefn
+@c hook-end
 
 @deftypevr {Target Hook} bool TARGET_HAVE_TLS
+@c hook-start:TARGET_HAVE_TLS
 Contains the value true if the target supports thread-local storage.
 The default value is false.
 @end deftypevr
+@c hook-end
 
 
 @node PIC
@@ -8033,6 +8598,7 @@
 
 @findex default_file_start
 @deftypefn {Target Hook} void TARGET_ASM_FILE_START (void)
+@c hook-start:TARGET_ASM_FILE_START
 Output to @code{asm_out_file} any text which the assembler expects to
 find at the beginning of a file.  The default behavior is controlled
 by two flags, documented below.  Unless your target's assembler is
@@ -8040,8 +8606,10 @@
 @code{default_file_start} at some point in your target hook.  This
 lets other target files rely on these variables.
 @end deftypefn
+@c hook-end
 
 @deftypevr {Target Hook} bool TARGET_ASM_FILE_START_APP_OFF
+@c hook-start:TARGET_ASM_FILE_START_APP_OFF
 If this flag is true, the text of the macro @code{ASM_APP_OFF} will be
 printed as the very first line in the assembly file, unless
 @option{-fverbose-asm} is in effect.  (If that macro has been defined
@@ -8054,18 +8622,23 @@
 verified that your port does not generate any extra whitespace or
 comments that will cause GAS to issue errors in NO_APP mode.
 @end deftypevr
+@c hook-end
 
 @deftypevr {Target Hook} bool TARGET_ASM_FILE_START_FILE_DIRECTIVE
+@c hook-start:TARGET_ASM_FILE_START_FILE_DIRECTIVE
 If this flag is true, @code{output_file_directive} will be called
 for the primary source file, immediately after printing
 @code{ASM_APP_OFF} (if that is enabled).  Most ELF assemblers expect
 this to be done.  The default is false.
 @end deftypevr
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_FILE_END (void)
+@c hook-start:TARGET_ASM_FILE_END
 Output to @code{asm_out_file} any text which the assembler expects
 to find at the end of a file.  The default is to output nothing.
 @end deftypefn
+@c hook-end
 
 @deftypefun void file_end_indicate_exec_stack ()
 Some systems use a common convention, the @samp{.note.GNU-stack}
@@ -8077,24 +8650,30 @@
 @end deftypefun
 
 @deftypefn {Target Hook} void TARGET_ASM_LTO_START (void)
+@c hook-start:TARGET_ASM_LTO_START
 Output to @code{asm_out_file} any text which the assembler expects
 to find at the start of an LTO section.  The default is to output
 nothing.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_LTO_END (void)
+@c hook-start:TARGET_ASM_LTO_END
 Output to @code{asm_out_file} any text which the assembler expects
 to find at the end of an LTO section.  The default is to output
 nothing.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_CODE_END (void)
+@c hook-start:TARGET_ASM_CODE_END
 Output to @code{asm_out_file} any text which is needed before emitting
 unwind info and debug info at the end of a file.  Some targets emit
 here PIC setup thunks that cannot be emitted at the end of file,
 because they couldn't have unwind info then.  The default is to output
 nothing.
 @end deftypefn
+@c hook-end
 
 @defmac ASM_COMMENT_START
 A C string constant describing how to begin a comment in the target
@@ -8127,19 +8706,23 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_ASM_OUTPUT_SOURCE_FILENAME (FILE *@var{file}, const char *@var{name})
+@c hook-start:TARGET_ASM_OUTPUT_SOURCE_FILENAME
 Output DWARF debugging information which indicates that filename
 @var{name} is the current source file to the stdio stream @var{file}.
 
 This target hook need not be defined if the standard form of output
 for the file format in use is appropriate.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_OUTPUT_IDENT (const char *@var{name})
+@c hook-start:TARGET_ASM_OUTPUT_IDENT
 Output a string based on @var{name}, suitable for the @samp{#ident}
 directive, or the equivalent directive or pragma in non-C-family languages.
 If this hook is not defined, nothing is output for the @samp{#ident}
 directive.
 @end deftypefn
+@c hook-end
 
 @defmac OUTPUT_QUOTED_STRING (@var{stream}, @var{string})
 A C statement to output the string @var{string} to the stdio stream
@@ -8150,14 +8733,17 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_ASM_NAMED_SECTION (const char *@var{name}, unsigned int @var{flags}, tree @var{decl})
+@c hook-start:TARGET_ASM_NAMED_SECTION
 Output assembly directives to switch to section @var{name}.  The section
 should have attributes as specified by @var{flags}, which is a bit mask
 of the @code{SECTION_*} flags defined in @file{output.h}.  If @var{decl}
 is non-NULL, it is the @code{VAR_DECL} or @code{FUNCTION_DECL} with which
 this section is associated.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_ASM_ELF_FLAGS_NUMERIC (unsigned int @var{flags}, unsigned int *@var{num})
+@c hook-start:TARGET_ASM_ELF_FLAGS_NUMERIC
 This hook can be used to encode ELF section flags for which no letter
 code has been defined in the assembler.  It is called by
 @code{default_asm_named_section} whenever the section flags need to be
@@ -8168,8 +8754,10 @@
 returns false, then @var{num} is ignored and the traditional letter sequence
 is emitted.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {section *} TARGET_ASM_FUNCTION_SECTION (tree @var{decl}, enum node_frequency @var{freq}, bool @var{startup}, bool @var{exit})
+@c hook-start:TARGET_ASM_FUNCTION_SECTION
 Return preferred text (sub)section for function @var{decl}.
 Main purpose of this function is to separate cold, normal and hot
 functions. @var{startup} is true when function is known to be used only
@@ -8178,28 +8766,36 @@
 (from static destructors).
 Return NULL if function should go to default text section.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS (FILE *@var{file}, tree @var{decl}, bool @var{new_is_cold})
+@c hook-start:TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS
 Used by the target to emit any assembler directives or additional
 labels needed when a function is partitioned between different
 sections.  Output should be written to @var{file}.  The function
 decl is available as @var{decl} and the new section is `cold' if
 @var{new_is_cold} is @code{true}.
 @end deftypefn
+@c hook-end
 
 @deftypevr {Common Target Hook} bool TARGET_HAVE_NAMED_SECTIONS
+@c hook-start:TARGET_HAVE_NAMED_SECTIONS
+@c hook-end
 This flag is true if the target supports @code{TARGET_ASM_NAMED_SECTION}.
 It must not be modified by command-line option processing.
 @end deftypevr
 
 @anchor{TARGET_HAVE_SWITCHABLE_BSS_SECTIONS}
 @deftypevr {Target Hook} bool TARGET_HAVE_SWITCHABLE_BSS_SECTIONS
+@c hook-start:TARGET_HAVE_SWITCHABLE_BSS_SECTIONS
 This flag is true if we can create zeroed data by switching to a BSS
 section and then using @code{ASM_OUTPUT_SKIP} to allocate the space.
 This is true on most ELF targets.
 @end deftypevr
+@c hook-end
 
 @deftypefn {Target Hook} {unsigned int} TARGET_SECTION_TYPE_FLAGS (tree @var{decl}, const char *@var{name}, int @var{reloc})
+@c hook-start:TARGET_SECTION_TYPE_FLAGS
 Choose a set of section attributes for use by @code{TARGET_ASM_NAMED_SECTION}
 based on a variable or function decl, a section name, and whether or not the
 declaration's initializer may contain runtime relocations.  @var{decl} may be
@@ -8210,8 +8806,10 @@
 need to override this if your target has special flags that might be
 set via @code{__attribute__}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_RECORD_GCC_SWITCHES (const char *@var{})
+@c hook-start:TARGET_ASM_RECORD_GCC_SWITCHES
 Provides the target with the ability to record the gcc command line
 switches provided as argument.
 
@@ -8222,12 +8820,15 @@
 provided by the @code{TARGET_ASM_RECORD_GCC_SWITCHES_SECTION} target
 hook.
 @end deftypefn
+@c hook-end
 
 @deftypevr {Target Hook} {const char *} TARGET_ASM_RECORD_GCC_SWITCHES_SECTION
+@c hook-start:TARGET_ASM_RECORD_GCC_SWITCHES_SECTION
 This is the name of the section that will be created by the example
 ELF implementation of the @code{TARGET_ASM_RECORD_GCC_SWITCHES} target
 hook.
 @end deftypevr
+@c hook-end
 
 @need 2000
 @node Data Output
@@ -8235,20 +8836,7 @@
 
 
 @deftypevr {Target Hook} {const char *} TARGET_ASM_BYTE_OP
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_ALIGNED_HI_OP
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_ALIGNED_PSI_OP
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_ALIGNED_SI_OP
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_ALIGNED_PDI_OP
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_ALIGNED_DI_OP
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_ALIGNED_PTI_OP
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_ALIGNED_TI_OP
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_UNALIGNED_HI_OP
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_UNALIGNED_PSI_OP
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_UNALIGNED_SI_OP
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_UNALIGNED_PDI_OP
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_UNALIGNED_DI_OP
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_UNALIGNED_PTI_OP
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_UNALIGNED_TI_OP
+@c hook-start:TARGET_ASM_BYTE_OP
 These hooks specify assembly directives for creating certain kinds
 of integer object.  The @code{TARGET_ASM_BYTE_OP} directive creates a
 byte-sized object, the @code{TARGET_ASM_ALIGNED_HI_OP} one creates an
@@ -8259,8 +8847,10 @@
 followed immediately by the object's initial value.  In most cases,
 the string should contain a tab, a pseudo-op, and then another tab.
 @end deftypevr
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_ASM_INTEGER (rtx @var{x}, unsigned int @var{size}, int @var{aligned_p})
+@c hook-start:TARGET_ASM_INTEGER
 The @code{assemble_integer} function uses this hook to output an
 integer object.  @var{x} is the object's value, @var{size} is its size
 in bytes and @var{aligned_p} indicates whether it is aligned.  The
@@ -8272,13 +8862,17 @@
 @code{TARGET_ASM_BYTE_OP} family of strings, returning @code{false}
 when the relevant string is @code{NULL}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_DECL_END (void)
+@c hook-start:TARGET_ASM_DECL_END
 Define this hook if the target assembler requires a special marker to
 terminate an initialized variable declaration.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA (FILE *@var{file}, rtx @var{x})
+@c hook-start:TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
 A target hook to recognize @var{rtx} patterns that @code{output_addr_const}
 can't deal with, and output assembly code to @var{file} corresponding to
 the pattern @var{x}.  This may be used to allow machine-dependent
@@ -8289,6 +8883,7 @@
 itself, by calling, for example, @code{output_operand_lossage}, it may just
 return @code{true}.
 @end deftypefn
+@c hook-end
 
 @defmac ASM_OUTPUT_ASCII (@var{stream}, @var{ptr}, @var{len})
 A C statement to output to the stdio stream @var{stream} an assembler
@@ -8379,10 +8974,12 @@
 
 @deftypevr {Target Hook} {const char *} TARGET_ASM_OPEN_PAREN
 @deftypevrx {Target Hook} {const char *} TARGET_ASM_CLOSE_PAREN
+@c hook-start:TARGET_ASM_OPEN_PAREN
 These target hooks are C string constants, describing the syntax in the
 assembler for grouping arithmetic expressions.  If not overridden, they
 default to normal parentheses, which is correct for most assemblers.
 @end deftypevr
+@c hook-end
 
 These macros are provided by @file{real.h} for writing the definitions
 of @code{ASM_OUTPUT_DOUBLE} and the like:
@@ -8700,6 +9297,7 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_ASM_DECLARE_CONSTANT_NAME (FILE *@var{file}, const char *@var{name}, const_tree @var{expr}, HOST_WIDE_INT @var{size})
+@c hook-start:TARGET_ASM_DECLARE_CONSTANT_NAME
 A target hook to output to the stdio stream @var{file} any text necessary
 for declaring the name @var{name} of a constant which is being defined.  This
 target hook is responsible for outputting the label definition (perhaps using
@@ -8712,6 +9310,7 @@
 
 You may wish to use @code{ASM_OUTPUT_TYPE_DIRECTIVE} in this target hook.
 @end deftypefn
+@c hook-end
 
 @defmac ASM_DECLARE_REGISTER_GLOBAL (@var{stream}, @var{decl}, @var{regno}, @var{name})
 A C statement (sans semicolon) to output to the stdio stream
@@ -8737,6 +9336,7 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_ASM_GLOBALIZE_LABEL (FILE *@var{stream}, const char *@var{name})
+@c hook-start:TARGET_ASM_GLOBALIZE_LABEL
 This target hook is a function to output to the stdio stream
 @var{stream} some commands that will make the label @var{name} global;
 that is, available for reference from other files.
@@ -8744,21 +9344,26 @@
 The default implementation relies on a proper definition of
 @code{GLOBAL_ASM_OP}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_GLOBALIZE_DECL_NAME (FILE *@var{stream}, tree @var{decl})
+@c hook-start:TARGET_ASM_GLOBALIZE_DECL_NAME
 This target hook is a function to output to the stdio stream
 @var{stream} some commands that will make the name associated with @var{decl}
 global; that is, available for reference from other files.
 
 The default implementation uses the TARGET_ASM_GLOBALIZE_LABEL target hook.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_ASSEMBLE_UNDEFINED_DECL (FILE *@var{stream}, const char *@var{name}, const_tree @var{decl})
+@c hook-start:TARGET_ASM_ASSEMBLE_UNDEFINED_DECL
 This target hook is a function to output to the stdio stream
 @var{stream} some commands that will declare the name associated with
 @var{decl} which is not defined in the current translation unit.  Most
 assemblers do not require anything to be output in this case.
 @end deftypefn
+@c hook-end
 
 @defmac ASM_WEAKEN_LABEL (@var{stream}, @var{name})
 A C statement (sans semicolon) to output to the stdio stream
@@ -8830,10 +9435,12 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_ASM_ASSEMBLE_VISIBILITY (tree @var{decl}, int @var{visibility})
+@c hook-start:TARGET_ASM_ASSEMBLE_VISIBILITY
 This target hook is a function to output to @var{asm_out_file} some
 commands that will make the symbol(s) associated with @var{decl} have
 hidden, protected or internal visibility as specified by @var{visibility}.
 @end deftypefn
+@c hook-end
 
 @defmac TARGET_WEAK_NOT_IN_ARCHIVE_TOC
 A C expression that evaluates to true if the target's linker expects
@@ -8866,16 +9473,20 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_ASM_EXTERNAL_LIBCALL (rtx @var{symref})
+@c hook-start:TARGET_ASM_EXTERNAL_LIBCALL
 This target hook is a function to output to @var{asm_out_file} an assembler
 pseudo-op to declare a library function name external.  The name of the
 library function is given by @var{symref}, which is a @code{symbol_ref}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_MARK_DECL_PRESERVED (const char *@var{symbol})
+@c hook-start:TARGET_ASM_MARK_DECL_PRESERVED
 This target hook is a function to output to @var{asm_out_file} an assembler
 directive to annotate @var{symbol} as used.  The Darwin target uses the
 .no_dead_code_strip directive.
 @end deftypefn
+@c hook-end
 
 @defmac ASM_OUTPUT_LABELREF (@var{stream}, @var{name})
 A C statement (sans semicolon) to output to the stdio stream
@@ -8886,12 +9497,14 @@
 @end defmac
 
 @deftypefn {Target Hook} tree TARGET_MANGLE_ASSEMBLER_NAME (const char *@var{name})
+@c hook-start:TARGET_MANGLE_ASSEMBLER_NAME
 Given a symbol @var{name}, perform same mangling as @code{varasm.cc}'s
 @code{assemble_name}, but in memory rather than to a file stream, returning
 result as an @code{IDENTIFIER_NODE}.  Required for correct LTO symtabs.  The
 default implementation calls the @code{TARGET_STRIP_NAME_ENCODING} hook and
 then prepends the @code{USER_LABEL_PREFIX}, if any.
 @end deftypefn
+@c hook-end
 
 @defmac ASM_OUTPUT_SYMBOL_REF (@var{stream}, @var{sym})
 A C statement (sans semicolon) to output a reference to
@@ -8912,6 +9525,7 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_ASM_INTERNAL_LABEL (FILE *@var{stream}, const char *@var{prefix}, unsigned long @var{labelno})
+@c hook-start:TARGET_ASM_INTERNAL_LABEL
 A function to output to the stdio stream @var{stream} a label whose
 name is made from the string @var{prefix} and the number @var{labelno}.
 
@@ -8927,6 +9541,7 @@
 
 The default version of this function utilizes @code{ASM_GENERATE_INTERNAL_LABEL}.
 @end deftypefn
+@c hook-end
 
 @defmac ASM_OUTPUT_DEBUG_LABEL (@var{stream}, @var{prefix}, @var{num})
 A C statement to output to the stdio stream @var{stream} a debug info
@@ -9237,10 +9852,12 @@
 @end defmac
 
 @deftypevr {Target Hook} bool TARGET_HAVE_CTORS_DTORS
+@c hook-start:TARGET_HAVE_CTORS_DTORS
 This value is true if the target supports some ``native'' method of
 collecting constructors and destructors to be run at startup and exit.
 It is false if we must use @command{collect2}.
 @end deftypevr
+@c hook-end
 
 @deftypevr {Target Hook} bool TARGET_DTORS_FROM_CXA_ATEXIT
 This value is true if the target wants destructors to be queued to be
@@ -9251,6 +9868,7 @@
 @end deftypevr
 
 @deftypefn {Target Hook} void TARGET_ASM_CONSTRUCTOR (rtx @var{symbol}, int @var{priority})
+@c hook-start:TARGET_ASM_CONSTRUCTOR
 If defined, a function that outputs assembler code to arrange to call
 the function referenced by @var{symbol} at initialization time.
 
@@ -9264,11 +9882,14 @@
 target defines @code{CTORS_SECTION_ASM_OP}, or (3) @code{USE_COLLECT2}
 is not defined.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_DESTRUCTOR (rtx @var{symbol}, int @var{priority})
+@c hook-start:TARGET_ASM_DESTRUCTOR
 This is like @code{TARGET_ASM_CONSTRUCTOR} but used for termination
 functions rather than initialization functions.
 @end deftypefn
+@c hook-end
 
 If @code{TARGET_HAVE_CTORS_DTORS} is true, the initialization routine
 generated for the generated object file will have static linkage.
@@ -9415,6 +10036,7 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_ASM_FINAL_POSTSCAN_INSN (FILE *@var{file}, rtx_insn *@var{insn}, rtx *@var{opvec}, int @var{noperands})
+@c hook-start:TARGET_ASM_FINAL_POSTSCAN_INSN
 If defined, this target hook is a function which is executed just after the
 output of assembler code for @var{insn}, to change the mode of the assembler
 if necessary.
@@ -9426,6 +10048,7 @@
 template into assembler code, so you can change the assembler mode
 by checking the contents of the vector.
 @end deftypefn
+@c hook-end
 
 @defmac PRINT_OPERAND (@var{stream}, @var{x}, @var{code})
 A C compound statement to output to stdio stream @var{stream} the
@@ -9635,6 +10258,7 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_ASM_POST_CFI_STARTPROC (FILE *@var{}, @var{tree})
+@c hook-start:TARGET_ASM_POST_CFI_STARTPROC
 This target hook is used to emit assembly strings required by the target
 after the .cfi_startproc directive.  The first argument is the file stream to
 write the strings to and the second argument is the function's declaration.  The
@@ -9642,8 +10266,10 @@
 
 The default is to not output any assembly strings.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_EMIT_UNWIND_LABEL (FILE *@var{stream}, tree @var{decl}, int @var{for_eh}, int @var{empty})
+@c hook-start:TARGET_ASM_EMIT_UNWIND_LABEL
 This target hook emits a label at the beginning of each FDE@.  It
 should be defined on targets where FDEs need special labels, and it
 should write the appropriate label, for the FDE associated with the
@@ -9654,40 +10280,52 @@
 
 The default is that FDEs are not given nonlocal labels.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL (FILE *@var{stream})
+@c hook-start:TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL
 This target hook emits a label at the beginning of the exception table.
 It should be defined on targets where it is desirable for the table
 to be broken up according to function.
 
 The default is that no label is emitted.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_EMIT_EXCEPT_PERSONALITY (rtx @var{personality})
+@c hook-start:TARGET_ASM_EMIT_EXCEPT_PERSONALITY
 If the target implements @code{TARGET_ASM_UNWIND_EMIT}, this hook may be
 used to emit a directive to install a personality hook into the unwind
 info.  This hook should not be used if dwarf2 unwind info is used.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ASM_UNWIND_EMIT (FILE *@var{stream}, rtx_insn *@var{insn})
+@c hook-start:TARGET_ASM_UNWIND_EMIT
 This target hook emits assembly directives required to unwind the
 given instruction.  This is only used when @code{TARGET_EXCEPT_UNWIND_INFO}
 returns @code{UI_TARGET}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_ASM_MAKE_EH_SYMBOL_INDIRECT (rtx @var{origsymbol}, bool @var{pubvis})
+@c hook-start:TARGET_ASM_MAKE_EH_SYMBOL_INDIRECT
 If necessary, modify personality and LSDA references to handle indirection.
 The original symbol is in @code{origsymbol} and if @code{pubvis} is true
 the symbol is visible outside the TU.
 @end deftypefn
+@c hook-end
 
 @deftypevr {Target Hook} bool TARGET_ASM_UNWIND_EMIT_BEFORE_INSN
+@c hook-start:TARGET_ASM_UNWIND_EMIT_BEFORE_INSN
 True if the @code{TARGET_ASM_UNWIND_EMIT} hook should be called before
 the assembly for @var{insn} has been emitted, false if the hook should
 be called afterward.
 @end deftypevr
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_ASM_SHOULD_RESTORE_CFA_STATE (void)
+@c hook-start:TARGET_ASM_SHOULD_RESTORE_CFA_STATE
 For DWARF-based unwind frames, two CFI instructions provide for save and
 restore of register state.  GCC maintains the current frame address (CFA)
 separately from the register bank but the unwinder in libgcc preserves this
@@ -9696,6 +10334,7 @@
 is not saved/restored along with the registers by the target unwinder so that
 suitable additional instructions should be emitted to restore it.
 @end deftypefn
+@c hook-end
 
 @node Exception Region Output
 @subsection Assembler Commands for Exception Regions
@@ -9747,6 +10386,8 @@
 @end defmac
 
 @deftypefn {Common Target Hook} {enum unwind_info_type} TARGET_EXCEPT_UNWIND_INFO (struct gcc_options *@var{opts})
+@c hook-start:TARGET_EXCEPT_UNWIND_INFO
+@c hook-end
 This hook defines the mechanism that will be used for exception handling
 by the target.  If the target has ABI specified unwind tables, the hook
 should return @code{UI_TARGET}.  If the target is to use the
@@ -9773,6 +10414,8 @@
 @end deftypefn
 
 @deftypevr {Common Target Hook} bool TARGET_UNWIND_TABLES_DEFAULT
+@c hook-start:TARGET_UNWIND_TABLES_DEFAULT
+@c hook-end
 This variable should be set to @code{true} if the target ABI requires unwinding
 tables even when exceptions are not used.  It must not be modified by
 command-line option processing.
@@ -9802,13 +10445,16 @@
 @end defmac
 
 @deftypevr {Target Hook} bool TARGET_TERMINATE_DW2_EH_FRAME_INFO
+@c hook-start:TARGET_TERMINATE_DW2_EH_FRAME_INFO
 Contains the value true if the target should add a zero word onto the
 end of a Dwarf-2 frame info section when used for exception handling.
 Default value is false if @code{EH_FRAME_SECTION_NAME} is defined, and
 true otherwise.
 @end deftypevr
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_DWARF_REGISTER_SPAN (rtx @var{reg})
+@c hook-start:TARGET_DWARF_REGISTER_SPAN
 Given a register, this hook should return a parallel of registers to
 represent where to find the register pieces.  Define this hook if the
 register and its mode are represented in Dwarf in non-contiguous
@@ -9816,15 +10462,19 @@
 register in Dwarf.  Otherwise, this hook should return @code{NULL_RTX}.
 If not defined, the default is to return @code{NULL_RTX}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} machine_mode TARGET_DWARF_FRAME_REG_MODE (int @var{regno})
+@c hook-start:TARGET_DWARF_FRAME_REG_MODE
 Given a register, this hook should return the mode which the
 corresponding Dwarf frame register should have.  This is normally
 used to return a smaller mode than the raw mode to prevent call
 clobbered parts of a register altering the frame register size
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_INIT_DWARF_REG_SIZES_EXTRA (tree @var{address})
+@c hook-start:TARGET_INIT_DWARF_REG_SIZES_EXTRA
 If some registers are represented in Dwarf-2 unwind information in
 multiple pieces, define this hook to fill in information about the
 sizes of those pieces in the table used by the unwinder at runtime.
@@ -9832,20 +10482,25 @@
 filling in a single size corresponding to each hard register;
 @var{address} is the address of the table.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_ASM_TTYPE (rtx @var{sym})
+@c hook-start:TARGET_ASM_TTYPE
 This hook is used to output a reference from a frame unwinding table to
 the type_info object identified by @var{sym}.  It should return @code{true}
 if the reference was output.  Returning @code{false} will cause the
 reference to be output using the normal Dwarf2 routines.
 @end deftypefn
+@c hook-end
 
 @deftypevr {Target Hook} bool TARGET_ARM_EABI_UNWINDER
+@c hook-start:TARGET_ARM_EABI_UNWINDER
 This flag should be set to @code{true} on targets that use an ARM EABI
 based unwinding library, and @code{false} on other targets.  This effects
 the format of unwinding tables, and how the unwinder in entered after
 running a cleanup.  The default is @code{false}.
 @end deftypevr
+@c hook-end
 
 @node Alignment Output
 @subsection Assembler Commands for Alignment
@@ -10026,6 +10681,14 @@
 Define this macro if GCC should produce dwarf version 2 format
 debugging output in response to the @option{-g} option.
 
+@deftypefn {Target Hook} int TARGET_DWARF_CALLING_CONVENTION (const_tree @var{function})
+@c hook-start:TARGET_DWARF_CALLING_CONVENTION
+Define this to enable the dwarf attribute @code{DW_AT_calling_convention} to
+be emitted for each function.  Instead of an integer return the enum
+value for the @code{DW_CC_} tag.
+@end deftypefn
+@c hook-end
+
 To support optional call frame debugging information, you must also
 define @code{INCOMING_RETURN_ADDR_RTX} and either set
 @code{RTX_FRAME_RELATED_P} on the prologue insns if you use RTL for the
@@ -10048,6 +10711,7 @@
 @end defmac
 
 @deftypefn {Target Hook} {enum unwind_info_type} TARGET_DEBUG_UNWIND_INFO (void)
+@c hook-start:TARGET_DEBUG_UNWIND_INFO
 This hook defines the mechanism that will be used for describing frame
 unwind information to the debugger.  Normally the hook will return
 @code{UI_DWARF2} if DWARF 2 debug information is enabled, and
@@ -10059,6 +10723,7 @@
 A target may return @code{UI_TARGET} if it has ABI specified unwind tables.
 This will suppress generation of the normal debug frame unwind information.
 @end deftypefn
+@c hook-end
 
 @defmac DWARF2_ASM_LINE_DEBUG_INFO
 Define this macro to be a nonzero value if the assembler can generate Dwarf 2
@@ -10074,6 +10739,7 @@
 @end defmac
 
 @deftypefn {Target Hook} int TARGET_RESET_LOCATION_VIEW (rtx_insn *@var{})
+@c hook-start:TARGET_RESET_LOCATION_VIEW
 This hook, if defined, enables -ginternal-reset-location-views, and
 uses its result to override cases in which the estimated min insn
 length might be nonzero even when a PC advance (i.e., a view reset)
@@ -10088,28 +10754,37 @@
 If insn length is to be regarded as reliable, set the hook to
 @code{hook_int_rtx_insn_0}.
 @end deftypefn
+@c hook-end
 
 @deftypevr {Target Hook} bool TARGET_WANT_DEBUG_PUB_SECTIONS
+@c hook-start:TARGET_WANT_DEBUG_PUB_SECTIONS
 True if the @code{.debug_pubtypes} and @code{.debug_pubnames} sections
 should be emitted.  These sections are not used on most platforms, and
 in particular GDB does not use them.
 @end deftypevr
+@c hook-end
 
 @deftypevr {Target Hook} bool TARGET_DELAY_SCHED2
+@c hook-start:TARGET_DELAY_SCHED2
 True if sched2 is not to be run at its normal place.
 This usually means it will be run as part of machine-specific reorg.
 @end deftypevr
+@c hook-end
 
 @deftypevr {Target Hook} bool TARGET_DELAY_VARTRACK
+@c hook-start:TARGET_DELAY_VARTRACK
 True if vartrack is not to be run at its normal place.
 This usually means it will be run as part of machine-specific reorg.
 @end deftypevr
+@c hook-end
 
 @deftypevr {Target Hook} bool TARGET_NO_REGISTER_ALLOCATION
+@c hook-start:TARGET_NO_REGISTER_ALLOCATION
 True if register allocation and the passes
 following it should not be run.  Usually true only for virtual assembler
 targets.
 @end deftypevr
+@c hook-end
 
 @defmac ASM_OUTPUT_DWARF_DELTA (@var{stream}, @var{size}, @var{label1}, @var{label2})
 A C statement to issue assembly directives that create a difference
@@ -10147,9 +10822,11 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_ASM_OUTPUT_DWARF_DTPREL (FILE *@var{file}, int @var{size}, rtx @var{x})
+@c hook-start:TARGET_ASM_OUTPUT_DWARF_DTPREL
 If defined, this target hook is a function which outputs a DTP-relative
 reference to the given TLS symbol of the specified size.
 @end deftypefn
+@c hook-end
 
 @need 2000
 @node VMS Debug
@@ -10299,45 +10976,56 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_MODE_EMIT (int @var{entity}, int @var{mode}, int @var{prev_mode}, HARD_REG_SET @var{regs_live})
+@c hook-start:TARGET_MODE_EMIT
 Generate one or more insns to set @var{entity} to @var{mode}.
 @var{hard_reg_live} is the set of hard registers live at the point where
 the insn(s) are to be inserted. @var{prev_moxde} indicates the mode
 to switch from. Sets of a lower numbered entity will be emitted before
 sets of a higher numbered entity to a mode of the same or lower priority.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_MODE_NEEDED (int @var{entity}, rtx_insn *@var{insn})
+@c hook-start:TARGET_MODE_NEEDED
 @var{entity} is an integer specifying a mode-switched entity.
 If @code{OPTIMIZE_MODE_SWITCHING} is defined, you must define this macro
 to return an integer value not larger than the corresponding element
 in @code{NUM_MODES_FOR_MODE_SWITCHING}, to denote the mode that @var{entity}
 must be switched into prior to the execution of @var{insn}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_MODE_AFTER (int @var{entity}, int @var{mode}, rtx_insn *@var{insn})
+@c hook-start:TARGET_MODE_AFTER
 @var{entity} is an integer specifying a mode-switched entity.
 If this macro is defined, it is evaluated for every @var{insn} during mode
 switching.  It determines the mode that an insn results
 in (if different from the incoming mode).
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_MODE_ENTRY (int @var{entity})
+@c hook-start:TARGET_MODE_ENTRY
 If this macro is defined, it is evaluated for every @var{entity} that
 needs mode switching.  It should evaluate to an integer, which is a mode
 that @var{entity} is assumed to be switched to at function entry.
 If @code{TARGET_MODE_ENTRY} is defined then @code{TARGET_MODE_EXIT}
 must be defined.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_MODE_EXIT (int @var{entity})
+@c hook-start:TARGET_MODE_EXIT
 If this macro is defined, it is evaluated for every @var{entity} that
 needs mode switching.  It should evaluate to an integer, which is a mode
 that @var{entity} is assumed to be switched to at function exit.
 If @code{TARGET_MODE_EXIT} is defined then @code{TARGET_MODE_ENTRY}
 must be defined.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_MODE_PRIORITY (int @var{entity}, int @var{n})
+@c hook-start:TARGET_MODE_PRIORITY
 This macro specifies the order in which modes for @var{entity}
 are processed. 0 is the highest priority,
 @code{NUM_MODES_FOR_MODE_SWITCHING[@var{entity}] - 1} the lowest.
@@ -10346,6 +11034,7 @@
 (@var{entity}, @var{n}) shall be a bijection in 0 @dots{}
 @code{num_modes_for_mode_switching[@var{entity}] - 1}.
 @end deftypefn
+@c hook-end
 
 @node Target Attributes
 @section Defining target-specific uses of @code{__attribute__}
@@ -10358,35 +11047,44 @@
 be documented in @file{extend.texi}.
 
 @deftypevr {Target Hook} {const struct attribute_spec *} TARGET_ATTRIBUTE_TABLE
+@c hook-start:TARGET_ATTRIBUTE_TABLE
 If defined, this target hook points to an array of @samp{struct
 attribute_spec} (defined in @file{tree-core.h}) specifying the machine
 specific attributes for this target and some of the restrictions on the
 entities to which these attributes are applied and the arguments they
 take.
 @end deftypevr
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P (const_tree @var{name})
+@c hook-start:TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P
 If defined, this target hook is a function which returns true if the
 machine-specific attribute named @var{name} expects an identifier
 given as its first argument to be passed on as a plain identifier, not
 subjected to name lookup.  If this is not defined, the default is
 false for all machine-specific attributes.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_COMP_TYPE_ATTRIBUTES (const_tree @var{type1}, const_tree @var{type2})
+@c hook-start:TARGET_COMP_TYPE_ATTRIBUTES
 If defined, this target hook is a function which returns zero if the attributes on
 @var{type1} and @var{type2} are incompatible, one if they are compatible,
 and two if they are nearly compatible (which causes a warning to be
 generated).  If this is not defined, machine-specific attributes are
 supposed always to be compatible.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SET_DEFAULT_TYPE_ATTRIBUTES (tree @var{type})
+@c hook-start:TARGET_SET_DEFAULT_TYPE_ATTRIBUTES
 If defined, this target hook is a function which assigns default attributes to
 the newly defined @var{type}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_MERGE_TYPE_ATTRIBUTES (tree @var{type1}, tree @var{type2})
+@c hook-start:TARGET_MERGE_TYPE_ATTRIBUTES
 Define this target hook if the merging of type attributes needs special
 handling.  If defined, the result is a list of the combined
 @code{TYPE_ATTRIBUTES} of @var{type1} and @var{type2}.  It is assumed
@@ -10394,8 +11092,10 @@
 function may call @code{merge_attributes} to handle machine-independent
 merging.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_MERGE_DECL_ATTRIBUTES (tree @var{olddecl}, tree @var{newdecl})
+@c hook-start:TARGET_MERGE_DECL_ATTRIBUTES
 Define this target hook if the merging of decl attributes needs special
 handling.  If defined, the result is a list of the combined
 @code{DECL_ATTRIBUTES} of @var{olddecl} and @var{newdecl}.
@@ -10416,12 +11116,15 @@
 @samp{dllexport} attributes.  This is done in @file{i386/cygwin.h} and
 @file{i386/i386.cc}, for example.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_VALID_DLLIMPORT_ATTRIBUTE_P (const_tree @var{decl})
+@c hook-start:TARGET_VALID_DLLIMPORT_ATTRIBUTE_P
 @var{decl} is a variable or function with @code{__attribute__((dllimport))}
 specified.  Use this hook if the target needs to add extra validation
 checks to @code{handle_dll_attribute}.
 @end deftypefn
+@c hook-end
 
 @defmac TARGET_DECLSPEC
 Define this macro to a nonzero value if you want to treat
@@ -10433,6 +11136,7 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_INSERT_ATTRIBUTES (tree @var{node}, tree *@var{attr_ptr})
+@c hook-start:TARGET_INSERT_ATTRIBUTES
 Define this target hook if you want to be able to add attributes to a decl
 when it is being created.  This is normally useful for back ends which
 wish to implement a pragma by using the attributes which correspond to
@@ -10444,24 +11148,30 @@
 attributes, or a copy of the list may be made if further changes are
 needed.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_HANDLE_GENERIC_ATTRIBUTE (tree *@var{node}, tree @var{name}, tree @var{args}, int @var{flags}, bool *@var{no_add_attrs})
+@c hook-start:TARGET_HANDLE_GENERIC_ATTRIBUTE
 Define this target hook if you want to be able to perform additional
 target-specific processing of an attribute which is handled generically
 by a front end.  The arguments are the same as those which are passed to
 attribute handlers.  So far this only affects the @var{noinit} and
 @var{section} attribute.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P (const_tree @var{fndecl})
+@c hook-start:TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P
 @cindex inlining
 This target hook returns @code{true} if it is OK to inline @var{fndecl}
 into the current function, despite its having target-specific
 attributes, @code{false} otherwise.  By default, if a function has a
 target specific attribute attached to it, it will not be inlined.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_OPTION_VALID_ATTRIBUTE_P (tree @var{fndecl}, tree @var{name}, tree @var{args}, int @var{flags})
+@c hook-start:TARGET_OPTION_VALID_ATTRIBUTE_P
 This hook is called to parse @code{attribute(target("..."))}, which
 allows setting target-specific options on individual functions.
 These function-specific options may differ
@@ -10472,40 +11182,52 @@
 the function declaration to hold a pointer to a target-specific
 @code{struct cl_target_option} structure.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_OPTION_SAVE (struct cl_target_option *@var{ptr}, struct gcc_options *@var{opts}, struct gcc_options *@var{opts_set})
+@c hook-start:TARGET_OPTION_SAVE
 This hook is called to save any additional target-specific information
 in the @code{struct cl_target_option} structure for function-specific
 options from the @code{struct gcc_options} structure.
 @xref{Option file format}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_OPTION_RESTORE (struct gcc_options *@var{opts}, struct gcc_options *@var{opts_set}, struct cl_target_option *@var{ptr})
+@c hook-start:TARGET_OPTION_RESTORE
 This hook is called to restore any additional target-specific
 information in the @code{struct cl_target_option} structure for
 function-specific options to the @code{struct gcc_options} structure.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_OPTION_POST_STREAM_IN (struct cl_target_option *@var{ptr})
+@c hook-start:TARGET_OPTION_POST_STREAM_IN
 This hook is called to update target-specific information in the
 @code{struct cl_target_option} structure after it is streamed in from
 LTO bytecode.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_OPTION_PRINT (FILE *@var{file}, int @var{indent}, struct cl_target_option *@var{ptr})
+@c hook-start:TARGET_OPTION_PRINT
 This hook is called to print any additional target-specific
 information in the @code{struct cl_target_option} structure for
 function-specific options.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_OPTION_PRAGMA_PARSE (tree @var{args}, tree @var{pop_target})
+@c hook-start:TARGET_OPTION_PRAGMA_PARSE
 This target hook parses the options for @code{#pragma GCC target}, which
 sets the target-specific options for functions that occur later in the
 input stream.  The options accepted should be the same as those handled by the
 @code{TARGET_OPTION_VALID_ATTRIBUTE_P} hook.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_OPTION_OVERRIDE (void)
+@c hook-start:TARGET_OPTION_OVERRIDE
 Sometimes certain combinations of command options do not make sense on
 a particular target machine.  You can override the hook
 @code{TARGET_OPTION_OVERRIDE} to take account of this.  This hooks is called
@@ -10518,21 +11240,26 @@
 changed via the optimize attribute or pragma, see
 @code{TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE}
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_OPTION_FUNCTION_VERSIONS (tree @var{decl1}, tree @var{decl2})
+@c hook-start:TARGET_OPTION_FUNCTION_VERSIONS
 This target hook returns @code{true} if @var{DECL1} and @var{DECL2} are
 versions of the same function.  @var{DECL1} and @var{DECL2} are function
 versions if and only if they have the same function signature and
 different target specific attributes, that is, they are compiled for
 different target machines.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_CAN_INLINE_P (tree @var{caller}, tree @var{callee})
+@c hook-start:TARGET_CAN_INLINE_P
 This target hook returns @code{false} if the @var{caller} function
 cannot inline @var{callee}, based on target specific information.  By
 default, inlining is not allowed if the callee function has function
 specific target options and the caller does not use the same options.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_UPDATE_IPA_FN_TARGET_INFO (unsigned int& @var{info}, const gimple* @var{stmt})
 Allow target to analyze all gimple statements for the given function to
@@ -10566,10 +11293,12 @@
 @end deftypefn
 
 @deftypefn {Target Hook} void TARGET_RELAYOUT_FUNCTION (tree @var{fndecl})
+@c hook-start:TARGET_RELAYOUT_FUNCTION
 This target hook fixes function @var{fndecl} after attributes are processed.
 Default does nothing. On ARM, the default function's alignment is updated
 with the attribute target.
 @end deftypefn
+@c hook-end
 
 @node Emulated TLS
 @section Emulating TLS
@@ -10588,66 +11317,86 @@
 address of the current thread's instance of the TLS object.
 
 @deftypevr {Target Hook} {const char *} TARGET_EMUTLS_GET_ADDRESS
+@c hook-start:TARGET_EMUTLS_GET_ADDRESS
 Contains the name of the helper function that uses a TLS control
 object to locate a TLS instance.  The default causes libgcc's
 emulated TLS helper function to be used.
 @end deftypevr
+@c hook-end
 
 @deftypevr {Target Hook} {const char *} TARGET_EMUTLS_REGISTER_COMMON
+@c hook-start:TARGET_EMUTLS_REGISTER_COMMON
 Contains the name of the helper function that should be used at
 program startup to register TLS objects that are implicitly
 initialized to zero.  If this is @code{NULL}, all TLS objects will
 have explicit initializers.  The default causes libgcc's emulated TLS
 registration function to be used.
 @end deftypevr
+@c hook-end
 
 @deftypevr {Target Hook} {const char *} TARGET_EMUTLS_VAR_SECTION
+@c hook-start:TARGET_EMUTLS_VAR_SECTION
 Contains the name of the section in which TLS control variables should
 be placed.  The default of @code{NULL} allows these to be placed in
 any section.
 @end deftypevr
+@c hook-end
 
 @deftypevr {Target Hook} {const char *} TARGET_EMUTLS_TMPL_SECTION
+@c hook-start:TARGET_EMUTLS_TMPL_SECTION
 Contains the name of the section in which TLS initializers should be
 placed.  The default of @code{NULL} allows these to be placed in any
 section.
 @end deftypevr
+@c hook-end
 
 @deftypevr {Target Hook} {const char *} TARGET_EMUTLS_VAR_PREFIX
+@c hook-start:TARGET_EMUTLS_VAR_PREFIX
 Contains the prefix to be prepended to TLS control variable names.
 The default of @code{NULL} uses a target-specific prefix.
 @end deftypevr
+@c hook-end
 
 @deftypevr {Target Hook} {const char *} TARGET_EMUTLS_TMPL_PREFIX
+@c hook-start:TARGET_EMUTLS_TMPL_PREFIX
 Contains the prefix to be prepended to TLS initializer objects.  The
 default of @code{NULL} uses a target-specific prefix.
 @end deftypevr
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_EMUTLS_VAR_FIELDS (tree @var{type}, tree *@var{name})
+@c hook-start:TARGET_EMUTLS_VAR_FIELDS
 Specifies a function that generates the FIELD_DECLs for a TLS control
 object type.  @var{type} is the RECORD_TYPE the fields are for and
 @var{name} should be filled with the structure tag, if the default of
 @code{__emutls_object} is unsuitable.  The default creates a type suitable
 for libgcc's emulated TLS function.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_EMUTLS_VAR_INIT (tree @var{var}, tree @var{decl}, tree @var{tmpl_addr})
+@c hook-start:TARGET_EMUTLS_VAR_INIT
 Specifies a function that generates the CONSTRUCTOR to initialize a
 TLS control object.  @var{var} is the TLS control object, @var{decl}
 is the TLS object and @var{tmpl_addr} is the address of the
 initializer.  The default initializes libgcc's emulated TLS control object.
 @end deftypefn
+@c hook-end
 
 @deftypevr {Target Hook} bool TARGET_EMUTLS_VAR_ALIGN_FIXED
+@c hook-start:TARGET_EMUTLS_VAR_ALIGN_FIXED
 Specifies whether the alignment of TLS control variable objects is
 fixed and should not be increased as some backends may do to optimize
 single objects.  The default is false.
 @end deftypevr
+@c hook-end
 
 @deftypevr {Target Hook} bool TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS
+@c hook-start:TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS
 Specifies whether a DWARF @code{DW_OP_form_tls_address} location descriptor
 may be used to describe emulated TLS control objects.
 @end deftypevr
+@c hook-end
 
 @node MIPS Coprocessors
 @section Defining coprocessor specifics for MIPS targets.
@@ -10682,12 +11431,15 @@
 @cindex parameters, precompiled headers
 
 @deftypefn {Target Hook} {void *} TARGET_GET_PCH_VALIDITY (size_t *@var{sz})
+@c hook-start:TARGET_GET_PCH_VALIDITY
 This hook returns a pointer to the data needed by
 @code{TARGET_PCH_VALID_P} and sets
 @samp{*@var{sz}} to the size of the data in bytes.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {const char *} TARGET_PCH_VALID_P (const void *@var{data}, size_t @var{sz})
+@c hook-start:TARGET_PCH_VALID_P
 This hook checks whether the options used to create a PCH file are
 compatible with the current settings.  It returns @code{NULL}
 if so and a suitable error message if not.  Error messages will
@@ -10701,52 +11453,66 @@
 The default definition of @code{default_pch_valid_p} should be
 suitable for most targets.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {const char *} TARGET_CHECK_PCH_TARGET_FLAGS (int @var{pch_flags})
+@c hook-start:TARGET_CHECK_PCH_TARGET_FLAGS
 If this hook is nonnull, the default implementation of
 @code{TARGET_PCH_VALID_P} will use it to check for compatible values
 of @code{target_flags}.  @var{pch_flags} specifies the value that
 @code{target_flags} had when the PCH file was created.  The return
 value is the same as for @code{TARGET_PCH_VALID_P}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_PREPARE_PCH_SAVE (void)
+@c hook-start:TARGET_PREPARE_PCH_SAVE
 Called before writing out a PCH file.  If the target has some
 garbage-collected data that needs to be in a particular state on PCH loads,
 it can use this hook to enforce that state.  Very few targets need
 to do anything here.
 @end deftypefn
+@c hook-end
 
 @node C++ ABI
 @section C++ ABI parameters
 @cindex parameters, c++ abi
 
 @deftypefn {Target Hook} tree TARGET_CXX_GUARD_TYPE (void)
+@c hook-start:TARGET_CXX_GUARD_TYPE
 Define this hook to override the integer type used for guard variables.
 These are used to implement one-time construction of static objects.  The
 default is long_long_integer_type_node.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_CXX_GUARD_MASK_BIT (void)
+@c hook-start:TARGET_CXX_GUARD_MASK_BIT
 This hook determines how guard variables are used.  It should return
 @code{false} (the default) if the first byte should be used.  A return value of
 @code{true} indicates that only the least significant bit should be used.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_CXX_GET_COOKIE_SIZE (tree @var{type})
+@c hook-start:TARGET_CXX_GET_COOKIE_SIZE
 This hook returns the size of the cookie to use when allocating an array
 whose elements have the indicated @var{type}.  Assumes that it is already
 known that a cookie is needed.  The default is
 @code{max(sizeof (size_t), alignof(type))}, as defined in section 2.7 of the
 IA64/Generic C++ ABI@.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_CXX_COOKIE_HAS_SIZE (void)
+@c hook-start:TARGET_CXX_COOKIE_HAS_SIZE
 This hook should return @code{true} if the element size should be stored in
 array cookies.  The default is to return @code{false}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_CXX_IMPORT_EXPORT_CLASS (tree @var{type}, int @var{import_export})
+@c hook-start:TARGET_CXX_IMPORT_EXPORT_CLASS
 If defined by a backend this hook allows the decision made to export
 class @var{type} to be overruled.  Upon entry @var{import_export}
 will contain 1 if the class is going to be exported, @minus{}1 if it is going
@@ -10754,14 +11520,18 @@
 modified value and perform any other actions necessary to support the
 backend's targeted operating system.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_CXX_CDTOR_RETURNS_THIS (void)
+@c hook-start:TARGET_CXX_CDTOR_RETURNS_THIS
 This hook should return @code{true} if constructors and destructors return
 the address of the object created/destroyed.  The default is to return
 @code{false}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_CXX_KEY_METHOD_MAY_BE_INLINE (void)
+@c hook-start:TARGET_CXX_KEY_METHOD_MAY_BE_INLINE
 This hook returns true if the key method for a class (i.e., the method
 which, if defined in the current translation unit, causes the virtual
 table to be emitted) may be an inline function.  Under the standard
@@ -10770,8 +11540,10 @@
 some variants of the ABI, an inline function can never be the key
 method.  The default is to return @code{true}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY (tree @var{decl})
+@c hook-start:TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY
 @var{decl} is a virtual table, virtual table table, typeinfo object,
 or other similar implicit class data object that will be emitted with
 external linkage in this translation unit.  No ELF visibility has been
@@ -10779,62 +11551,80 @@
 other than that of the containing class, use this hook to set
 @code{DECL_VISIBILITY} and @code{DECL_VISIBILITY_SPECIFIED}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT (void)
+@c hook-start:TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT
 This hook returns true (the default) if virtual tables and other
 similar implicit class data objects are always COMDAT if they have
 external linkage.  If this hook returns false, then class data for
 classes whose virtual table will be emitted in only one translation
 unit will not be COMDAT.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_CXX_LIBRARY_RTTI_COMDAT (void)
+@c hook-start:TARGET_CXX_LIBRARY_RTTI_COMDAT
 This hook returns true (the default) if the RTTI information for
 the basic types which is defined in the C++ runtime should always
 be COMDAT, false if it should not be COMDAT.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_CXX_USE_AEABI_ATEXIT (void)
+@c hook-start:TARGET_CXX_USE_AEABI_ATEXIT
 This hook returns true if @code{__aeabi_atexit} (as defined by the ARM EABI)
 should be used to register static destructors when @option{-fuse-cxa-atexit}
 is in effect.  The default is to return false to use @code{__cxa_atexit}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT (void)
+@c hook-start:TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT
 This hook returns true if the target @code{atexit} function can be used
 in the same manner as @code{__cxa_atexit} to register C++ static
 destructors. This requires that @code{atexit}-registered functions in
 shared libraries are run in the correct order when the libraries are
 unloaded. The default is to return false.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_CXX_ADJUST_CLASS_AT_DEFINITION (tree @var{type})
+@c hook-start:TARGET_CXX_ADJUST_CLASS_AT_DEFINITION
 @var{type} is a C++ class (i.e., RECORD_TYPE or UNION_TYPE) that has just
 been defined.  Use this hook to make adjustments to the class (eg, tweak
 visibility or perform any other required target modifications).
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_CXX_DECL_MANGLING_CONTEXT (const_tree @var{decl})
+@c hook-start:TARGET_CXX_DECL_MANGLING_CONTEXT
 Return target-specific mangling context of @var{decl} or @code{NULL_TREE}.
 @end deftypefn
+@c hook-end
 
 @node D Language and ABI
 @section D ABI parameters
 @cindex parameters, d abi
 
 @deftypefn {D Target Hook} void TARGET_D_CPU_VERSIONS (void)
+@c hook-start:TARGET_D_CPU_VERSIONS
 Declare all environmental version identifiers relating to the target CPU
 using the function @code{builtin_version}, which takes a string representing
 the name of the version.  Version identifiers predefined by this hook apply
 to all modules that are being compiled and imported.
 @end deftypefn
+@c hook-end
 
 @deftypefn {D Target Hook} void TARGET_D_OS_VERSIONS (void)
+@c hook-start:TARGET_D_OS_VERSIONS
 Similarly to @code{TARGET_D_CPU_VERSIONS}, but is used for versions
 relating to the target operating system.
 @end deftypefn
+@c hook-end
 
 @deftypefn {D Target Hook} void TARGET_D_REGISTER_CPU_TARGET_INFO (void)
+@c hook-start:TARGET_D_REGISTER_CPU_TARGET_INFO
 Register all target information keys relating to the target CPU using the
 function @code{d_add_target_info_handlers}, which takes a
 @samp{struct d_target_info_spec} (defined in @file{d/d-target.h}).  The keys
@@ -10842,13 +11632,17 @@
 @code{__traits(getTargetInfo)} extension, the result is an expression
 describing the requested target information.
 @end deftypefn
+@c hook-end
 
 @deftypefn {D Target Hook} void TARGET_D_REGISTER_OS_TARGET_INFO (void)
+@c hook-start:TARGET_D_REGISTER_OS_TARGET_INFO
 Same as @code{TARGET_D_CPU_TARGET_INFO}, but is used for keys relating to
 the target operating system.
 @end deftypefn
+@c hook-end
 
 @deftypevr {D Target Hook} {const char *} TARGET_D_MINFO_SECTION
+@c hook-start:TARGET_D_MINFO_SECTION
 Contains the name of the section in which module info references should be
 placed.  By default, the compiler puts all module info symbols in the
 @code{"minfo"} section.  Define this macro to override the string if a
@@ -10859,32 +11653,41 @@
 loaded shared library and executable.  Setting the value to @code{NULL}
 disables the use of sections for storing module info altogether.
 @end deftypevr
+@c hook-end
 
 @deftypevr {D Target Hook} {const char *} TARGET_D_MINFO_SECTION_START
+@c hook-start:TARGET_D_MINFO_START_NAME
 If @code{TARGET_D_MINFO_SECTION} is defined, then this must also be defined
 as the name of the symbol indicating the start address of the module info
 section
 @end deftypevr
+@c hook-end
 
 @deftypevr {D Target Hook} {const char *} TARGET_D_MINFO_SECTION_END
+@c hook-start:TARGET_D_MINFO_END_NAME
 If @code{TARGET_D_MINFO_SECTION} is defined, then this must also be defined
 as the name of the symbol indicating the end address of the module info
 section
 @end deftypevr
+@c hook-end
 
 @deftypefn {D Target Hook} bool TARGET_D_HAS_STDCALL_CONVENTION (unsigned int *@var{link_system}, unsigned int *@var{link_windows})
+@c hook-start:TARGET_D_HAS_STDCALL_CONVENTION
 Returns @code{true} if the target supports the stdcall calling convention.
 The hook should also set @var{link_system} to @code{1} if the @code{stdcall}
 attribute should be applied to functions with @code{extern(System)} linkage,
 and @var{link_windows} to @code{1} to apply @code{stdcall} to functions with
 @code{extern(Windows)} linkage.
 @end deftypefn
+@c hook-end
 
 @deftypevr {D Target Hook} bool TARGET_D_TEMPLATES_ALWAYS_COMDAT
+@c hook-start:TARGET_D_TEMPLATES_ALWAYS_COMDAT
 This flag is true if instantiated functions and variables are always COMDAT
 if they have external linkage.  If this flag is false, then instantiated
 decls will be emitted as weak symbols.  The default is @code{false}.
 @end deftypevr
+@c hook-end
 
 @node Named Address Spaces
 @section Adding support for named address spaces
@@ -10925,18 +11728,23 @@
 @end smallexample
 
 @deftypefn {Target Hook} scalar_int_mode TARGET_ADDR_SPACE_POINTER_MODE (addr_space_t @var{address_space})
+@c hook-start:TARGET_ADDR_SPACE_POINTER_MODE
 Define this to return the machine mode to use for pointers to
 @var{address_space} if the target supports named address spaces.
 The default version of this hook returns @code{ptr_mode}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} scalar_int_mode TARGET_ADDR_SPACE_ADDRESS_MODE (addr_space_t @var{address_space})
+@c hook-start:TARGET_ADDR_SPACE_ADDRESS_MODE
 Define this to return the machine mode to use for addresses in
 @var{address_space} if the target supports named address spaces.
 The default version of this hook returns @code{Pmode}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_ADDR_SPACE_VALID_POINTER_MODE (scalar_int_mode @var{mode}, addr_space_t @var{as})
+@c hook-start:TARGET_ADDR_SPACE_VALID_POINTER_MODE
 Define this to return nonzero if the port can handle pointers
 with machine mode @var{mode} to address space @var{as}.  This target
 hook is the same as the @code{TARGET_VALID_POINTER_MODE} target hook,
@@ -10945,8 +11753,10 @@
 @code{TARGET_ADDR_SPACE_POINTER_MODE} or @code{TARGET_ADDR_SPACE_ADDRESS_MODE}
 target hooks for the given address space.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P (machine_mode @var{mode}, rtx @var{exp}, bool @var{strict}, addr_space_t @var{as})
+@c hook-start:TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P
 Define this to return true if @var{exp} is a valid address for mode
 @var{mode} in the named address space @var{as}.  The @var{strict}
 parameter says whether strict addressing is in effect after reload has
@@ -10954,15 +11764,19 @@
 @code{TARGET_LEGITIMATE_ADDRESS_P} target hook, except that it includes
 explicit named address space support.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS (rtx @var{x}, rtx @var{oldx}, machine_mode @var{mode}, addr_space_t @var{as})
+@c hook-start:TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS
 Define this to modify an invalid address @var{x} to be a valid address
 with mode @var{mode} in the named address space @var{as}.  This target
 hook is the same as the @code{TARGET_LEGITIMIZE_ADDRESS} target hook,
 except that it includes explicit named address space support.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_ADDR_SPACE_SUBSET_P (addr_space_t @var{subset}, addr_space_t @var{superset})
+@c hook-start:TARGET_ADDR_SPACE_SUBSET_P
 Define this to return whether the @var{subset} named address space is
 contained within the @var{superset} named address space.  Pointers to
 a named address space that is a subset of another named address space
@@ -10970,13 +11784,17 @@
 arithmetic operations.  Pointers to a superset address space can be
 converted to pointers to a subset address space via explicit casts.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID (addr_space_t @var{as})
+@c hook-start:TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID
 Define this to modify the default handling of address 0 for the
 address space.  Return true if 0 should be considered a valid address.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_ADDR_SPACE_CONVERT (rtx @var{op}, tree @var{from_type}, tree @var{to_type})
+@c hook-start:TARGET_ADDR_SPACE_CONVERT
 Define this to convert the pointer expression represented by the RTL
 @var{op} with type @var{from_type} that points to a named address
 space to a new pointer expression with type @var{to_type} that points
@@ -10984,13 +11802,17 @@
 guaranteed that one of the two address spaces is a subset of the other,
 as determined by the @code{TARGET_ADDR_SPACE_SUBSET_P} target hook.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_ADDR_SPACE_DEBUG (addr_space_t @var{as})
+@c hook-start:TARGET_ADDR_SPACE_DEBUG
 Define this to define how the address space is encoded in dwarf.
 The result is the value to be used with @code{DW_AT_address_class}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ADDR_SPACE_DIAGNOSE_USAGE (addr_space_t @var{as}, location_t @var{loc})
+@c hook-start:TARGET_ADDR_SPACE_DIAGNOSE_USAGE
 Define this hook if the availability of an address space depends on
 command line options and some diagnostics should be printed when the
 address space is used.  This hook is called during parsing and allows
@@ -11000,6 +11822,7 @@
 @var{loc} is the location of the address space qualifier token.
 The default implementation does nothing.
 @end deftypefn
+@c hook-end
 
 @node Misc
 @section Miscellaneous Parameters
@@ -11050,11 +11873,13 @@
 @end defmac
 
 @deftypefn {Target Hook} {unsigned int} TARGET_CASE_VALUES_THRESHOLD (void)
+@c hook-start:TARGET_CASE_VALUES_THRESHOLD
 This function return the smallest number of different values for which it
 is best to use a jump-table instead of a tree of conditional branches.
 The default is four for machines with a @code{casesi} instruction and
 five otherwise.  This is best for most machines.
 @end deftypefn
+@c hook-end
 
 @defmac WORD_REGISTER_OPERATIONS
 Define this macro to 1 if operations between registers with integral mode
@@ -11067,6 +11892,7 @@
 @end defmac
 
 @deftypefn {Target Hook} {unsigned int} TARGET_MIN_ARITHMETIC_PRECISION (void)
+@c hook-start:TARGET_MIN_ARITHMETIC_PRECISION
 On some RISC architectures with 64-bit registers, the processor also
 maintains 32-bit condition codes that make it possible to do real 32-bit
 arithmetic, although the operations are performed on the full registers.
@@ -11082,6 +11908,7 @@
 You need not define this hook if @code{WORD_REGISTER_OPERATIONS} is not
 defined to 1.
 @end deftypefn
+@c hook-end
 
 @defmac LOAD_EXTEND_OP (@var{mem_mode})
 Define this macro to be a C expression indicating when insns that read
@@ -11116,6 +11943,7 @@
 @end defmac
 
 @deftypefn {Target Hook} {unsigned int} TARGET_MIN_DIVISIONS_FOR_RECIP_MUL (machine_mode @var{mode})
+@c hook-start:TARGET_MIN_DIVISIONS_FOR_RECIP_MUL
 When @option{-ffast-math} is in effect, GCC tries to optimize
 divisions by the same divisor, by turning them into multiplications by
 the reciprocal.  This target hook specifies the minimum number of divisions
@@ -11123,6 +11951,7 @@
 of mode @var{mode}.  The default implementation returns 3 if the machine
 has an instruction for the division, and 2 if it does not.
 @end deftypefn
+@c hook-end
 
 @defmac MOVE_MAX
 The maximum number of bytes that a single instruction can move quickly
@@ -11164,6 +11993,7 @@
 
 @anchor{TARGET_SHIFT_TRUNCATION_MASK}
 @deftypefn {Target Hook} {unsigned HOST_WIDE_INT} TARGET_SHIFT_TRUNCATION_MASK (machine_mode @var{mode})
+@c hook-start:TARGET_SHIFT_TRUNCATION_MASK
 This function describes how the standard shift patterns for @var{mode}
 deal with shifts by negative amounts or by more than the width of the mode.
 @xref{shift patterns}.
@@ -11186,8 +12016,10 @@
 nevertheless truncate the shift count, you may get better code
 by overriding it.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_TRULY_NOOP_TRUNCATION (poly_uint64 @var{outprec}, poly_uint64 @var{inprec})
+@c hook-start:TARGET_TRULY_NOOP_TRUNCATION
 This hook returns true if it is safe to ``convert'' a value of
 @var{inprec} bits to one of @var{outprec} bits (where @var{outprec} is
 smaller than @var{inprec}) by merely operating on it as if it had only
@@ -11200,8 +12032,10 @@
 suboptimal code can result if this hook returns true for the corresponding
 mode sizes.  Making this hook return false in such cases may improve things.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_MODE_REP_EXTENDED (scalar_int_mode @var{mode}, scalar_int_mode @var{rep_mode})
+@c hook-start:TARGET_MODE_REP_EXTENDED
 The representation of an integral mode can be such that the values
 are always extended to a wider integral mode.  Return
 @code{SIGN_EXTEND} if values of @var{mode} are represented in
@@ -11228,8 +12062,10 @@
 @code{TARGET_TRULY_NOOP_TRUNCATION} should return false when truncating to
 @code{mode}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P (void)
+@c hook-start:TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P
 On some targets, it is assumed that the compiler will spill all pseudos
   that are live across a call to @code{setjmp}, while other targets treat
   @code{setjmp} calls as normal function calls.
@@ -11241,6 +12077,7 @@
   The default implementation conservatively assumes all pseudos must be
   spilled across @code{setjmp} calls.
 @end deftypefn
+@c hook-end
 
 @defmac STORE_FLAG_VALUE
 A C expression describing the value returned by a comparison operator
@@ -11422,6 +12259,7 @@
 @end defmac
 
 @deftypefn {C Target Hook} {const char *} TARGET_C_PREINCLUDE (void)
+@c hook-start:TARGET_C_PREINCLUDE
 Define this hook to return the name of a header file to be included at
 the start of all compilations, as if it had been included with
 @code{#include <@var{file}>}.  If this hook returns @code{NULL}, or is
@@ -11433,14 +12271,17 @@
 predefined that describe properties of the whole implementation rather
 than just the compiler.
 @end deftypefn
+@c hook-end
 
 @deftypefn {C Target Hook} bool TARGET_CXX_IMPLICIT_EXTERN_C (const char*@var{})
+@c hook-start:TARGET_CXX_IMPLICIT_EXTERN_C
 Define this hook to add target-specific C++ implicit extern C functions.
 If this function returns true for the name of a file-scope function, that
 function implicitly gets extern "C" linkage rather than whatever language
 linkage the declaration would normally have.  An example of such function
 is WinMain on Win32 targets.
 @end deftypefn
+@c hook-end
 
 @defmac SYSTEM_IMPLICIT_EXTERN_C
 Define this macro if the system header files do not support C++@.
@@ -11561,6 +12402,7 @@
 @end defmac
 
 @deftypefn {Target Hook} {rtx_insn *} TARGET_MD_ASM_ADJUST (vec<rtx>& @var{outputs}, vec<rtx>& @var{inputs}, vec<machine_mode>& @var{input_modes}, vec<const char *>& @var{constraints}, vec<rtx>& @var{clobbers}, HARD_REG_SET& @var{clobbered_regs}, location_t @var{loc})
+@c hook-start:TARGET_MD_ASM_ADJUST
 This target hook may add @dfn{clobbers} to @var{clobbers} and
 @var{clobbered_regs} for any hard regs the port wishes to automatically
 clobber for an asm.  The @var{outputs} and @var{inputs} may be inspected
@@ -11573,6 +12415,7 @@
 changes to @var{inputs} must be accompanied by the corresponding changes
 to @var{input_modes}.
 @end deftypefn
+@c hook-end
 
 @defmac MATH_LIBRARY
 Define this macro as a C string constant for the linker argument to link
@@ -11652,6 +12495,7 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_MACHINE_DEPENDENT_REORG (void)
+@c hook-start:TARGET_MACHINE_DEPENDENT_REORG
 If non-null, this hook performs a target-specific pass over the
 instruction stream.  The compiler will run it at all optimization levels,
 just before the point at which it normally does delayed-branch scheduling.
@@ -11664,8 +12508,10 @@
 You need not implement the hook if it has nothing to do.  The default
 definition is null.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_INIT_BUILTINS (void)
+@c hook-start:TARGET_INIT_BUILTINS
 Define this hook if you have any machine-specific built-in functions
 that need to be defined.  It should be a function that performs the
 necessary setup.
@@ -11682,8 +12528,10 @@
 only language front ends that use those two functions will call
 @samp{TARGET_INIT_BUILTINS}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_BUILTIN_DECL (unsigned @var{code}, bool @var{initialize_p})
+@c hook-start:TARGET_BUILTIN_DECL
 Define this hook if you have any machine-specific built-in functions
 that need to be defined.  It should be a function that returns the
 builtin function declaration for the builtin function code @var{code}.
@@ -11692,8 +12540,10 @@
 If @var{code} is out of range the function should return
 @code{error_mark_node}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_EXPAND_BUILTIN (tree @var{exp}, rtx @var{target}, rtx @var{subtarget}, machine_mode @var{mode}, int @var{ignore})
+@c hook-start:TARGET_EXPAND_BUILTIN
 
 Expand a call to a machine specific built-in function that was set up by
 @samp{TARGET_INIT_BUILTINS}.  @var{exp} is the expression for the
@@ -11704,8 +12554,10 @@
 ignored.  This function should return the result of the call to the
 built-in function.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_RESOLVE_OVERLOADED_BUILTIN (unsigned int @var{loc}, tree @var{fndecl}, void *@var{arglist})
+@c hook-start:TARGET_RESOLVE_OVERLOADED_BUILTIN
 Select a replacement for a machine specific built-in function that
 was set up by @samp{TARGET_INIT_BUILTINS}.  This is done
 @emph{before} regular type checking, and so allows the target to
@@ -11716,8 +12568,10 @@
 another @code{CALL_EXPR}.
 @var{arglist} really has type @samp{VEC(tree,gc)*}
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_CHECK_BUILTIN_CALL (location_t @var{loc}, vec<location_t> @var{arg_loc}, tree @var{fndecl}, tree @var{orig_fndecl}, unsigned int @var{nargs}, tree *@var{args})
+@c hook-start:TARGET_CHECK_BUILTIN_CALL
 Perform semantic checking on a call to a machine-specific built-in
 function after its arguments have been constrained to the function
 signature.  Return true if the call is valid, otherwise report an error
@@ -11731,8 +12585,10 @@
 of which there are @var{nargs}.  @var{arg_loc} specifies the location
 of each argument.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_FOLD_BUILTIN (tree @var{fndecl}, int @var{n_args}, tree *@var{argp}, bool @var{ignore})
+@c hook-start:TARGET_FOLD_BUILTIN
 Fold a call to a machine specific built-in function that was set up by
 @samp{TARGET_INIT_BUILTINS}.  @var{fndecl} is the declaration of the
 built-in function.  @var{n_args} is the number of arguments passed to
@@ -11741,15 +12597,19 @@
 containing a simplified expression for the call's result.  If
 @var{ignore} is true the value will be ignored.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_GIMPLE_FOLD_BUILTIN (gimple_stmt_iterator *@var{gsi})
+@c hook-start:TARGET_GIMPLE_FOLD_BUILTIN
 Fold a call to a machine specific built-in function that was set up
 by @samp{TARGET_INIT_BUILTINS}.  @var{gsi} points to the gimple
 statement holding the function call.  Returns true if any change
 was made to the GIMPLE stream.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_COMPARE_VERSION_PRIORITY (tree @var{decl1}, tree @var{decl2})
+@c hook-start:TARGET_COMPARE_VERSION_PRIORITY
 This hook is used to compare the target attributes in two functions to
 determine which function's features get higher priority.  This is used
 during function multi-versioning to figure out the order in which two
@@ -11757,36 +12617,46 @@
 is checked for dispatching earlier.  @var{decl1} and @var{decl2} are
  the two function decls that will be compared.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_GET_FUNCTION_VERSIONS_DISPATCHER (void *@var{decl})
+@c hook-start:TARGET_GET_FUNCTION_VERSIONS_DISPATCHER
 This hook is used to get the dispatcher function for a set of function
 versions.  The dispatcher function is called to invoke the right function
 version at run-time. @var{decl} is one version from a set of semantically
 identical versions.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_GENERATE_VERSION_DISPATCHER_BODY (void *@var{arg})
+@c hook-start:TARGET_GENERATE_VERSION_DISPATCHER_BODY
 This hook is used to generate the dispatcher logic to invoke the right
 function version at run-time for a given set of function versions.
 @var{arg} points to the callgraph node of the dispatcher function whose
 body must be generated.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_PREDICT_DOLOOP_P (class loop *@var{loop})
+@c hook-start:TARGET_PREDICT_DOLOOP_P
 Return true if we can predict it is possible to use a low-overhead loop
 for a particular loop.  The parameter @var{loop} is a pointer to the loop.
 This target hook is required only when the target supports low-overhead
 loops, and will help ivopts to make some decisions.
 The default version of this hook returns false.
 @end deftypefn
+@c hook-end
 
 @deftypevr {Target Hook} bool TARGET_HAVE_COUNT_REG_DECR_P
+@c hook-start:TARGET_HAVE_COUNT_REG_DECR_P
 Return true if the target supports hardware count register for decrement
 and branch.
 The default value is false.
 @end deftypevr
+@c hook-end
 
 @deftypevr {Target Hook} int64_t TARGET_DOLOOP_COST_FOR_GENERIC
+@c hook-start:TARGET_DOLOOP_COST_FOR_GENERIC
 One IV candidate dedicated for doloop is introduced in IVOPTs, we can
 calculate the computation cost of adopting it to any generic IV use by
 function get_computation_cost as before.  But for targets which have
@@ -11797,8 +12667,10 @@
 this especially for generic IV uses.
 The default value is zero.
 @end deftypevr
+@c hook-end
 
 @deftypevr {Target Hook} int64_t TARGET_DOLOOP_COST_FOR_ADDRESS
+@c hook-start:TARGET_DOLOOP_COST_FOR_ADDRESS
 One IV candidate dedicated for doloop is introduced in IVOPTs, we can
 calculate the computation cost of adopting it to any address IV use by
 function get_computation_cost as before.  But for targets which have
@@ -11809,8 +12681,10 @@
 this escpecially for address IV uses.
 The default value is zero.
 @end deftypevr
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_CAN_USE_DOLOOP_P (const widest_int @var{&iterations}, const widest_int @var{&iterations_max}, unsigned int @var{loop_depth}, bool @var{entered_at_top})
+@c hook-start:TARGET_CAN_USE_DOLOOP_P
 Return true if it is possible to use low-overhead loops (@code{doloop_end}
 and @code{doloop_begin}) for a particular loop.  @var{iterations} gives the
 exact number of iterations, or 0 if not known.  @var{iterations_max} gives
@@ -11823,8 +12697,10 @@
 implementation returns true.  You can use @code{can_use_doloop_if_innermost}
 if the loop must be the innermost, and if there are no other restrictions.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {const char *} TARGET_INVALID_WITHIN_DOLOOP (const rtx_insn *@var{insn})
+@c hook-start:TARGET_INVALID_WITHIN_DOLOOP
 
 Take an instruction in @var{insn} and return NULL if it is valid within a
 low-overhead loop, otherwise return a string explaining why doloop
@@ -11836,6 +12712,7 @@
 By default, the RTL loop optimizer does not use a present doloop pattern for
 loops containing function calls or branch on table instructions.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} machine_mode TARGET_PREFERRED_DOLOOP_MODE (machine_mode @var{mode})
 This hook takes a @var{mode} for a doloop IV, where @code{mode} is the
@@ -11847,27 +12724,34 @@
 @end deftypefn
 
 @deftypefn {Target Hook} bool TARGET_LEGITIMATE_COMBINED_INSN (rtx_insn *@var{insn})
+@c hook-start:TARGET_LEGITIMATE_COMBINED_INSN
 Take an instruction in @var{insn} and return @code{false} if the instruction
 is not appropriate as a combination of two or more instructions.  The
 default is to accept all instructions.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_CAN_FOLLOW_JUMP (const rtx_insn *@var{follower}, const rtx_insn *@var{followee})
+@c hook-start:TARGET_CAN_FOLLOW_JUMP
 FOLLOWER and FOLLOWEE are JUMP_INSN instructions;
 return true if FOLLOWER may be modified to follow FOLLOWEE;
 false, if it can't.
 For example, on some targets, certain kinds of branches can't be made to
 follow through a hot/cold partitioning.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_COMMUTATIVE_P (const_rtx @var{x}, int @var{outer_code})
+@c hook-start:TARGET_COMMUTATIVE_P
 This target hook returns @code{true} if @var{x} is considered to be commutative.
 Usually, this is just COMMUTATIVE_P (@var{x}), but the HP PA doesn't consider
 PLUS to be commutative inside a MEM@.  @var{outer_code} is the rtx code
 of the enclosing rtl, if known, otherwise it is UNKNOWN.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_ALLOCATE_INITIAL_VALUE (rtx @var{hard_reg})
+@c hook-start:TARGET_ALLOCATE_INITIAL_VALUE
 
 When the initial value of a hard register has been copied in a pseudo
 register, it is often not necessary to actually allocate another register
@@ -11888,8 +12772,10 @@
 The default value of this hook is @code{NULL}, which disables any special
 allocation.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} int TARGET_UNSPEC_MAY_TRAP_P (const_rtx @var{x}, unsigned @var{flags})
+@c hook-start:TARGET_UNSPEC_MAY_TRAP_P
 This target hook returns nonzero if @var{x}, an @code{unspec} or
 @code{unspec_volatile} operation, might cause a trap.  Targets can use
 this hook to enhance precision of analysis for @code{unspec} and
@@ -11897,8 +12783,10 @@
 to analyze inner elements of @var{x} in which case @var{flags} should be
 passed along.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_SET_CURRENT_FUNCTION (tree @var{decl})
+@c hook-start:TARGET_SET_CURRENT_FUNCTION
 The compiler invokes this hook whenever it changes its current function
 context (@code{cfun}).  You can define this function if
 the back end needs to perform any initialization or reset actions on a
@@ -11916,6 +12804,7 @@
 @code{cfun} might be @code{NULL} to indicate processing at top level,
 outside of any function scope.
 @end deftypefn
+@c hook-end
 
 @defmac TARGET_OBJECT_SUFFIX
 Define this macro to be a C string representing the suffix for object
@@ -11939,6 +12828,7 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_CANNOT_MODIFY_JUMPS_P (void)
+@c hook-start:TARGET_CANNOT_MODIFY_JUMPS_P
 This target hook returns @code{true} past the point in which new jump
 instructions could be created.  On machines that require a register for
 every jump such as the SHmedia ISA of SH5, this point would typically be
@@ -11952,14 +12842,18 @@
 @}
 @end smallexample
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_HAVE_CONDITIONAL_EXECUTION (void)
+@c hook-start:TARGET_HAVE_CONDITIONAL_EXECUTION
 This target hook returns true if the target supports conditional execution.
 This target hook is required only when the target has several different
 modes and they have different conditional execution capability, such as ARM.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_GEN_CCMP_FIRST (rtx_insn **@var{prep_seq}, rtx_insn **@var{gen_seq}, int @var{code}, tree @var{op0}, tree @var{op1})
+@c hook-start:TARGET_GEN_CCMP_FIRST
 This function prepares to emit a comparison insn for the first compare in a
  sequence of conditional comparisions.  It returns an appropriate comparison
  with @code{CC} for passing to @code{gen_ccmp_next} or @code{cbranch_optab}.
@@ -11968,8 +12862,10 @@
  compares in the conditional comparision are generated without error.
  @var{code} is the @code{rtx_code} of the compare for @var{op0} and @var{op1}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_GEN_CCMP_NEXT (rtx_insn **@var{prep_seq}, rtx_insn **@var{gen_seq}, rtx @var{prev}, int @var{cmp_code}, tree @var{op0}, tree @var{op1}, int @var{bit_code})
+@c hook-start:TARGET_GEN_CCMP_NEXT
 This function prepares to emit a conditional comparison within a sequence
  of conditional comparisons.  It returns an appropriate comparison with
  @code{CC} for passing to @code{gen_ccmp_next} or @code{cbranch_optab}.
@@ -11983,6 +12879,7 @@
  @var{code} is the @code{rtx_code} of the compare for @var{op0} and @var{op1}.
  @var{bit_code} is @code{AND} or @code{IOR}, which is the op on the compares.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_GEN_MEMSET_SCRATCH_RTX (machine_mode @var{mode})
 This hook should return an rtx for a scratch register in @var{mode} to
@@ -11992,6 +12889,7 @@
 @end deftypefn
 
 @deftypefn {Target Hook} unsigned TARGET_LOOP_UNROLL_ADJUST (unsigned @var{nunroll}, class loop *@var{loop})
+@c hook-start:TARGET_LOOP_UNROLL_ADJUST
 This target hook returns a new value for the number of times @var{loop}
 should be unrolled. The parameter @var{nunroll} is the number of times
 the loop is to be unrolled. The parameter @var{loop} is a pointer to
@@ -11999,6 +12897,7 @@
 is required only when the target has special constraints like maximum
 number of memory accesses.
 @end deftypefn
+@c hook-end
 
 @defmac POWI_MAX_MULTS
 If defined, this macro is interpreted as a signed integer C expression
@@ -12071,32 +12970,41 @@
 @end defmac
 
 @deftypefn {Target Hook} {const char *} TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN (const_tree @var{typelist}, const_tree @var{funcdecl}, const_tree @var{val})
+@c hook-start:TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN
 If defined, this macro returns the diagnostic message when it is
 illegal to pass argument @var{val} to function @var{funcdecl}
 with prototype @var{typelist}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {const char *} TARGET_INVALID_CONVERSION (const_tree @var{fromtype}, const_tree @var{totype})
+@c hook-start:TARGET_INVALID_CONVERSION
 If defined, this macro returns the diagnostic message when it is
 invalid to convert from @var{fromtype} to @var{totype}, or @code{NULL}
 if validity should be determined by the front end.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {const char *} TARGET_INVALID_UNARY_OP (int @var{op}, const_tree @var{type})
+@c hook-start:TARGET_INVALID_UNARY_OP
 If defined, this macro returns the diagnostic message when it is
 invalid to apply operation @var{op} (where unary plus is denoted by
 @code{CONVERT_EXPR}) to an operand of type @var{type}, or @code{NULL}
 if validity should be determined by the front end.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {const char *} TARGET_INVALID_BINARY_OP (int @var{op}, const_tree @var{type1}, const_tree @var{type2})
+@c hook-start:TARGET_INVALID_BINARY_OP
 If defined, this macro returns the diagnostic message when it is
 invalid to apply operation @var{op} to operands of types @var{type1}
 and @var{type2}, or @code{NULL} if validity should be determined by
 the front end.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_PROMOTED_TYPE (const_tree @var{type})
+@c hook-start:TARGET_PROMOTED_TYPE
 If defined, this target hook returns the type to which values of
 @var{type} should be promoted when they appear in expressions,
 analogous to the integer promotions, or @code{NULL_TREE} to use the
@@ -12104,8 +13012,10 @@
 target-specific types with special promotion rules.
 This is currently used only by the C and C++ front ends.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} tree TARGET_CONVERT_TO_TYPE (tree @var{type}, tree @var{expr})
+@c hook-start:TARGET_CONVERT_TO_TYPE
 If defined, this hook returns the result of converting @var{expr} to
 @var{type}.  It should return the converted expression,
 or @code{NULL_TREE} to apply the front end's normal conversion rules.
@@ -12113,8 +13023,10 @@
 conversion rules.
 This is currently used only by the C and C++ front ends.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_VERIFY_TYPE_CONTEXT (location_t @var{loc}, type_context_kind @var{context}, const_tree @var{type}, bool @var{silent_p})
+@c hook-start:TARGET_VERIFY_TYPE_CONTEXT
 If defined, this hook returns false if there is a target-specific reason
 why type @var{type} cannot be used in the source language context described
 by @var{context}.  When @var{silent_p} is false, the hook also reports an
@@ -12126,6 +13038,7 @@
 
 The default implementation always returns true.
 @end deftypefn
+@c hook-end
 
 @defmac OBJC_JBLEN
 This macro determines the size of the objective C jump buffer for the
@@ -12140,18 +13053,23 @@
 @end defmac
 
 @deftypefn {Target Hook} void TARGET_UPDATE_STACK_BOUNDARY (void)
+@c hook-start:TARGET_UPDATE_STACK_BOUNDARY
 Define this macro to update the current function stack boundary if
 necessary.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_GET_DRAP_RTX (void)
+@c hook-start:TARGET_GET_DRAP_RTX
 This hook should return an rtx for Dynamic Realign Argument Pointer (DRAP) if a
 different argument pointer register is needed to access the function's
 argument list due to stack realignment.  Return @code{NULL} if no DRAP
 is needed.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} HARD_REG_SET TARGET_ZERO_CALL_USED_REGS (HARD_REG_SET @var{selected_regs})
+@c hook-start:TARGET_ZERO_CALL_USED_REGS
 This target hook emits instructions to zero the subset of @var{selected_regs}
 that could conceivably contain values that are useful to an attacker.
 Return the set of registers that were actually cleared.
@@ -12169,8 +13087,10 @@
 or if you believe that certain registers would never contain
 values that are useful to an attacker.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS (void)
+@c hook-start:TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS
 When optimization is disabled, this hook indicates whether or not
 arguments should be allocated to stack slots.  Normally, GCC allocates
 stacks slots for arguments when not optimizing in order to make
@@ -12180,8 +13100,10 @@
 to the stack.  Therefore, this hook should return true in general, but
 false for naked functions.  The default implementation always returns true.
 @end deftypefn
+@c hook-end
 
 @deftypevr {Target Hook} {unsigned HOST_WIDE_INT} TARGET_CONST_ANCHOR
+@c hook-start:TARGET_CONST_ANCHOR
 On some architectures it can take multiple instructions to synthesize
 a constant.  If there is another constant already in a register that
 is close enough in value then it is preferable that the new constant
@@ -12198,30 +13120,39 @@
 @code{TARGET_CONST_ANCHOR} is set to @samp{0x8000}.  The default value
 is zero, which disables this optimization.
 @end deftypevr
+@c hook-end
 
 @deftypefn {Target Hook} {unsigned HOST_WIDE_INT} TARGET_ASAN_SHADOW_OFFSET (void)
+@c hook-start:TARGET_ASAN_SHADOW_OFFSET
 Return the offset bitwise ored into shifted address to get corresponding
 Address Sanitizer shadow memory address.  NULL if Address Sanitizer is not
 supported by the target.  May return 0 if Address Sanitizer is not supported
 by a subtarget.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {unsigned HOST_WIDE_INT} TARGET_MEMMODEL_CHECK (unsigned HOST_WIDE_INT @var{val})
+@c hook-start:TARGET_MEMMODEL_CHECK
 Validate target specific memory model mask bits. When NULL no target specific
 memory model bits are allowed.
 @end deftypefn
+@c hook-end
 
 @deftypevr {Target Hook} {unsigned char} TARGET_ATOMIC_TEST_AND_SET_TRUEVAL
+@c hook-start:TARGET_ATOMIC_TEST_AND_SET_TRUEVAL
 This value should be set if the result written by
 @code{atomic_test_and_set} is not exactly 1, i.e.@: the
 @code{bool} @code{true}.
 @end deftypevr
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_HAS_IFUNC_P (void)
+@c hook-start:TARGET_HAS_IFUNC_P
 It returns true if the target supports GNU indirect functions.
 The support includes the assembler, linker and dynamic linker.
 The default value of this hook is based on target's libc.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_IFUNC_REF_LOCAL_OK (void)
 Return true if it is OK to reference indirect function resolvers
@@ -12229,12 +13160,15 @@
 @end deftypefn
 
 @deftypefn {Target Hook} {unsigned int} TARGET_ATOMIC_ALIGN_FOR_MODE (machine_mode @var{mode})
+@c hook-start:TARGET_ATOMIC_ALIGN_FOR_MODE
 If defined, this function returns an appropriate alignment in bits for an
 atomic object of machine_mode @var{mode}.  If 0 is returned then the
 default alignment for the specified mode is used.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_ATOMIC_ASSIGN_EXPAND_FENV (tree *@var{hold}, tree *@var{clear}, tree *@var{update})
+@c hook-start:TARGET_ATOMIC_ASSIGN_EXPAND_FENV
 ISO C11 requires atomic compound assignments that may raise floating-point
 exceptions to raise exceptions corresponding to the arithmetic operation
 whose result was successfully stored in a compare-and-exchange sequence.
@@ -12251,14 +13185,18 @@
 @code{__atomic_feraiseexcept} function from @code{libatomic} may be of use
 as part of the code generated in @code{*@var{update}}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_RECORD_OFFLOAD_SYMBOL (tree)
+@c hook-start:TARGET_RECORD_OFFLOAD_SYMBOL
 Used when offloaded functions are seen in the compilation unit and no named
 sections are available.  It is called once for each symbol that must be
 recorded in the offload function and variable table.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} {char *} TARGET_OFFLOAD_OPTIONS (void)
+@c hook-start:TARGET_OFFLOAD_OPTIONS
 Used when writing out the list of options into an LTO file.  It should
 translate any relevant target-specific options (such as the ABI in use)
 into one of the @option{-foffload} options that exist as a common interface
@@ -12266,6 +13204,7 @@
 separated by spaces, which the caller will free.
 
 @end deftypefn
+@c hook-end
 
 @defmac TARGET_SUPPORTS_WIDE_INT
 
@@ -12314,6 +13253,7 @@
 @end defmac
 
 @deftypefn {Target Hook} bool TARGET_HAVE_SPECULATION_SAFE_VALUE (bool @var{active})
+@c hook-start:TARGET_HAVE_SPECULATION_SAFE_VALUE
 This hook is used to determine the level of target support for
  @code{__builtin_speculation_safe_value}.  If called with an argument
  of false, it returns true if the target has been modified to support
@@ -12330,8 +13270,10 @@
  simply redefine this hook to @code{speculation_safe_value_not_needed}
  along with your other target hooks.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_SPECULATION_SAFE_VALUE (machine_mode @var{mode}, rtx @var{result}, rtx @var{val}, rtx @var{failval})
+@c hook-start:TARGET_SPECULATION_SAFE_VALUE
 This target hook can be used to generate a target-specific code
  sequence that implements the @code{__builtin_speculation_safe_value}
  built-in function.  The function must always return @var{val} in
@@ -12348,12 +13290,16 @@
  The default implementation simply copies @var{val} to @var{result} and
  emits a @code{speculation_barrier} instruction if that is defined.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} void TARGET_RUN_TARGET_SELFTESTS (void)
+@c hook-start:TARGET_RUN_TARGET_SELFTESTS
 If selftests are enabled, run any selftests for this target.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} bool TARGET_MEMTAG_CAN_TAG_ADDRESSES ()
+@c hook-start:TARGET_MEMTAG_CAN_TAG_ADDRESSES
 True if the backend architecture naturally supports ignoring some region
 of pointers.  This feature means that @option{-fsanitize=hwaddress} can
 work.
@@ -12361,14 +13307,18 @@
 At preset, this feature does not support address spaces.  It also requires
 @code{Pmode} to be the same as @code{ptr_mode}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} uint8_t TARGET_MEMTAG_TAG_SIZE ()
+@c hook-start:TARGET_MEMTAG_TAG_SIZE
 Return the size of a tag (in bits) for this platform.
 
 The default returns 8.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} uint8_t TARGET_MEMTAG_GRANULE_SIZE ()
+@c hook-start:TARGET_MEMTAG_GRANULE_SIZE
 Return the size in real memory that each byte in shadow memory refers to.
 I.e. if a variable is @var{X} bytes long in memory, then this hook should
 return the value @var{Y} such that the tag in shadow memory spans
@@ -12380,15 +13330,19 @@
 
 The default returns 16.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_MEMTAG_INSERT_RANDOM_TAG (rtx @var{untagged}, rtx @var{target})
+@c hook-start:TARGET_MEMTAG_INSERT_RANDOM_TAG
 Return an RTX representing the value of @var{untagged} but with a
 (possibly) random tag in it.
 Put that value into @var{target} if it is convenient to do so.
 This function is used to generate a tagged base for the current stack frame.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_MEMTAG_ADD_TAG (rtx @var{base}, poly_int64 @var{addr_offset}, uint8_t @var{tag_offset})
+@c hook-start:TARGET_MEMTAG_ADD_TAG
 Return an RTX that represents the result of adding @var{addr_offset} to
 the address in pointer @var{base} and @var{tag_offset} to the tag in pointer
 @var{base}.
@@ -12398,28 +13352,36 @@
 Unlike other memtag hooks, this must return an expression and not emit any
 RTL.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_MEMTAG_SET_TAG (rtx @var{untagged_base}, rtx @var{tag}, rtx @var{target})
+@c hook-start:TARGET_MEMTAG_SET_TAG
 Return an RTX representing @var{untagged_base} but with the tag @var{tag}.
 Try and store this in @var{target} if convenient.
 @var{untagged_base} is required to have a zero tag when this hook is called.
 The default of this hook is to set the top byte of @var{untagged_base} to
 @var{tag}.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_MEMTAG_EXTRACT_TAG (rtx @var{tagged_pointer}, rtx @var{target})
+@c hook-start:TARGET_MEMTAG_EXTRACT_TAG
 Return an RTX representing the tag stored in @var{tagged_pointer}.
 Store the result in @var{target} if it is convenient.
 The default represents the top byte of the original pointer.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} rtx TARGET_MEMTAG_UNTAGGED_POINTER (rtx @var{tagged_pointer}, rtx @var{target})
+@c hook-start:TARGET_MEMTAG_UNTAGGED_POINTER
 Return an RTX representing @var{tagged_pointer} with its tag set to zero.
 Store the result in @var{target} if convenient.
 The default clears the top byte of the original pointer.
 @end deftypefn
+@c hook-end
 
 @deftypefn {Target Hook} HOST_WIDE_INT TARGET_GCOV_TYPE_SIZE (void)
+@c hook-start:TARGET_GCOV_TYPE_SIZE
 Returns the gcov type size in bits.  This type is used for example for
 counters incremented by profiling and code-coverage events.  The default
 value is 64, if the type size of long long is greater than 32, otherwise the
@@ -12429,8 +13391,11 @@
 64-bit atomic operations may override the default value and request a 32-bit
 type.
 @end deftypefn
+@c hook-end
 
 @deftypevr {Target Hook} bool TARGET_HAVE_SHADOW_CALL_STACK
+@c hook-start:TARGET_HAVE_SHADOW_CALL_STACK
 This value is true if the target platform supports
 @option{-fsanitize=shadow-call-stack}.  The default value is false.
 @end deftypevr
+@c hook-end
diff --git a/gcc/fortran/gfc-internals.texi b/gcc/fortran/gfc-internals.texi
index 1409e28..76b8f50 100644
--- a/gcc/fortran/gfc-internals.texi
+++ b/gcc/fortran/gfc-internals.texi
@@ -124,7 +124,6 @@
 * LibGFortran::            The LibGFortran Runtime Library.
 * GNU Free Documentation License::
                            How you can copy and share this manual.
-* Index::                  Index of this documentation.
 @end menu
 @end ifnottex
 
@@ -960,8 +959,6 @@
 @c Index
 @c ---------------------------------------------------------------------
 
-@node Index
-@unnumbered Index
 
 @printindex cp
 
diff --git a/gcc/fortran/intrinsic.texi b/gcc/fortran/intrinsic.texi
index 55f53fc..ce927ca 100644
--- a/gcc/fortran/intrinsic.texi
+++ b/gcc/fortran/intrinsic.texi
@@ -1,16 +1,3 @@
-@ignore
-Copyright (C) 2005-2022 Free Software Foundation, Inc.
-This is part of the GNU Fortran manual.   
-For copying conditions, see the file gfortran.texi.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being ``Funding Free Software'', the Front-Cover
-Texts being (a) (see below), and with the Back-Cover Texts being (b)
-(see below).  A copy of the license is included in the gfdl(7) man page.
-
-
 Some basic guidelines for editing this document:
 
   (1) The intrinsic procedures are to be listed in alphabetical order.
@@ -19,9 +6,6 @@
       table at the end of the node (See ABS entry).
   (4) Try to maintain the same style for each entry.
 
-
-@end ignore
-
 @tex
 \gdef\acosd{\mathop{\rm acosd}\nolimits}
 \gdef\asind{\mathop{\rm asind}\nolimits}
diff --git a/gcc/fortran/invoke.texi b/gcc/fortran/invoke.texi
index 58502d3..ee1bf6c 100644
--- a/gcc/fortran/invoke.texi
+++ b/gcc/fortran/invoke.texi
@@ -1,32 +1,11 @@
-@c Copyright (C) 2004-2022 Free Software Foundation, Inc.
+@c Copyright (C) 2004-2021 Free Software Foundation, Inc.
 @c This is part of the GNU Fortran manual.   
 @c For copying conditions, see the file gfortran.texi.
 
-@ignore
-@c man begin COPYRIGHT
-Copyright @copyright{} 2004-2022 Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being ``Funding Free Software'', the Front-Cover
-Texts being (a) (see below), and with the Back-Cover Texts being (b)
-(see below).  A copy of the license is included in the gfdl(7) man page.
-
-(a) The FSF's Front-Cover Text is:
-
-     A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
-     You have freedom to copy and modify this GNU Manual, like GNU
-     software.  Copies published by the Free Software Foundation raise
-     funds for GNU development.
-@c man end
-@c Set file name and title for the man page.
 @setfilename gfortran
-@settitle GNU Fortran compiler.
-@c man begin SYNOPSIS
+
+@subsubheading Synopsis
+
 gfortran [@option{-c}|@option{-S}|@option{-E}]
          [@option{-g}] [@option{-pg}] [@option{-O}@var{level}]
          [@option{-W}@var{warn}@dots{}] [@option{-pedantic}]
@@ -38,22 +17,12 @@
 
 Only the most useful options are listed here; see below for the
 remainder.
-@c man end
-@c man begin SEEALSO
-gpl(7), gfdl(7), fsf-funding(7),
-cpp(1), gcov(1), gcc(1), as(1), ld(1), gdb(1), dbx(1)
-and the Info entries for @file{gcc}, @file{cpp}, @file{gfortran}, @file{as},
-@file{ld}, @file{binutils} and @file{gdb}.
-@c man end
-@c man begin BUGS
+
 For instructions on reporting bugs, see
-@w{@value{BUGURL}}.
-@c man end
-@c man begin AUTHOR
+$$BUGURL$$.
+
 See the Info entry for @command{gfortran} for contributors to GCC and
 GNU Fortran.
-@c man end
-@end ignore
 
 @node Invoking GNU Fortran
 @chapter GNU Fortran Command Options
@@ -61,7 +30,7 @@
 @cindex command options
 @cindex options, @command{gfortran} command
 
-@c man begin DESCRIPTION
+@subsubheading Description
 
 The @command{gfortran} command supports all the options supported by the
 @command{gcc} command.  Only options specific to GNU Fortran are documented
@@ -85,7 +54,6 @@
 the negative form of @option{-ffoo} would be @option{-fno-foo}.
 This manual documents only one of these two forms, whichever
 one is not the default.
-@c man end
 
 @menu
 * Option Summary::      Brief list of all @command{gfortran} options,
@@ -108,7 +76,7 @@
 @node Option Summary
 @section Option summary
 
-@c man begin OPTIONS
+@subsubheading Options
 
 Here is a summary of all the options specific to GNU Fortran, grouped
 by type.  Explanations are in the following sections.
@@ -2058,8 +2026,6 @@
 offered by the GBE
 shared by @command{gfortran}, @command{gcc}, and other GNU compilers.
 
-@c man end
-
 @node Interoperability Options
 @section Options for interoperability with other languages
 
@@ -2118,7 +2084,7 @@
 @section Environment variables affecting @command{gfortran}
 @cindex environment variable
 
-@c man begin ENVIRONMENT
+@subsubheading Environment
 
 The @command{gfortran} compiler currently does not make use of any environment
 variables to control its operation above and beyond those
@@ -2130,4 +2096,3 @@
 
 @xref{Runtime}, for environment variables that affect the
 run-time behavior of programs compiled with GNU Fortran.
-@c man end
diff --git a/gcc/genhooks.cc b/gcc/genhooks.cc
index 6bae85d..86dff52 100644
--- a/gcc/genhooks.cc
+++ b/gcc/genhooks.cc
@@ -232,6 +232,7 @@
 			  deftype, hook_array[j].docname,
 			  hook_array[j].type, namex);
 		}
+	      printf ("\n@c hook-start:%s", upstrdup (hook_array[i].name));
 	      if (hook_array[i].doc[0])
 		{
 		  printf ("\n");
@@ -245,6 +246,7 @@
 		    }
 		  printf ("\n@end %s", deftype);
 		}
+	      printf ("\n@c hook-end");
 	    }
 	  if (++i >= (int) (ARRAY_SIZE (hook_array)) || !hook_array[i].doc)
 	    break;
diff --git a/gcc/go/gccgo.texi b/gcc/go/gccgo.texi
index 66020aa7..e2da482 100644
--- a/gcc/go/gccgo.texi
+++ b/gcc/go/gccgo.texi
@@ -11,41 +11,6 @@
 
 @include gcc-common.texi
 
-@c Copyright years for this manual.
-@set copyrights-go 2010-2022
-
-@copying
-@c man begin COPYRIGHT
-Copyright @copyright{} @value{copyrights-go} Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, the Front-Cover Texts being (a) (see below), and
-with the Back-Cover Texts being (b) (see below).
-A copy of the license is included in the
-@c man end
-section entitled ``GNU Free Documentation License''.
-@ignore
-@c man begin COPYRIGHT
-man page gfdl(7).
-@c man end
-@end ignore
-
-@c man begin COPYRIGHT
-
-(a) The FSF's Front-Cover Text is:
-
-     A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
-     You have freedom to copy and modify this GNU Manual, like GNU
-     software.  Copies published by the Free Software Foundation raise
-     funds for GNU development.
-@c man end
-@end copying
-
 @ifinfo
 @format
 @dircategory Software development
@@ -90,7 +55,6 @@
 * Import and Export::           Importing and exporting package data.
 * Compiler Directives::         Comments to control compilation.
 * C Interoperability::          Calling C from Go and vice-versa.
-* Index::                       Index.
 @end menu
 
 
@@ -102,25 +66,18 @@
 @node Invoking gccgo
 @chapter Invoking gccgo
 
-@c man title gccgo A GCC-based compiler for the Go language
+@subsubheading Synopsis
 
-@ignore
-@c man begin SYNOPSIS gccgo
 gccgo [@option{-c}|@option{-S}]
       [@option{-g}] [@option{-pg}] [@option{-O}@var{level}]
       [@option{-I}@var{dir}@dots{}] [@option{-L}@var{dir}@dots{}]
       [@option{-o} @var{outfile}] @var{infile}@dots{}
 
+
+@subsubheading Description
+
 Only the most useful options are listed here; see below for the
 remainder.
-@c man end
-@c man begin SEEALSO
-gpl(7), gfdl(7), fsf-funding(7), gcc(1)
-and the Info entries for @file{gccgo} and @file{gcc}.
-@c man end
-@end ignore
-
-@c man begin DESCRIPTION gccgo
 
 The @command{gccgo} command is a frontend to @command{gcc} and
 supports many of the same options.  @xref{Option Summary, , Option
@@ -147,9 +104,7 @@
 @option{-g1} is the default as described below.  Stripping a Go
 program will generally cause it to misbehave or fail.
 
-@c man end
-
-@c man begin OPTIONS gccgo
+@subsubheading Options
 
 @table @gcctabopt
 @item -I@var{dir}
@@ -284,8 +239,6 @@
 functions, such as @code{runtime.Callers}, will not operate correctly.
 @end table
 
-@c man end
-
 @node Import and Export
 @chapter Import and Export
 
@@ -513,9 +466,6 @@
 extern int go_function(int) __asm__ ("mypkgpath.Function");
 @end smallexample
 
-@node Index
-@unnumbered Index
-
 @printindex cp
 
 @bye
diff --git a/gcc/target.def b/gcc/target.def
index 25f94c1..fa66ee5 100644
--- a/gcc/target.def
+++ b/gcc/target.def
@@ -44,21 +44,7 @@
 /* Assembler instructions for creating various kinds of integer object.  */
 DEFHOOKPOD
 (byte_op,
- "@deftypevrx {Target Hook} {const char *} TARGET_ASM_ALIGNED_HI_OP\n\
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_ALIGNED_PSI_OP\n\
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_ALIGNED_SI_OP\n\
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_ALIGNED_PDI_OP\n\
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_ALIGNED_DI_OP\n\
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_ALIGNED_PTI_OP\n\
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_ALIGNED_TI_OP\n\
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_UNALIGNED_HI_OP\n\
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_UNALIGNED_PSI_OP\n\
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_UNALIGNED_SI_OP\n\
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_UNALIGNED_PDI_OP\n\
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_UNALIGNED_DI_OP\n\
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_UNALIGNED_PTI_OP\n\
-@deftypevrx {Target Hook} {const char *} TARGET_ASM_UNALIGNED_TI_OP\n\
-These hooks specify assembly directives for creating certain kinds\n\
+ "These hooks specify assembly directives for creating certain kinds\n\
 of integer object.  The @code{TARGET_ASM_BYTE_OP} directive creates a\n\
 byte-sized object, the @code{TARGET_ASM_ALIGNED_HI_OP} one creates an\n\
 aligned two-byte object, and so on.  Any of the hooks may be\n\
diff --git a/gcc/testsuite/c-c++-common/pragma-diag-15.c b/gcc/testsuite/c-c++-common/pragma-diag-15.c
index 8ffff88..d8076b4 100644
--- a/gcc/testsuite/c-c++-common/pragma-diag-15.c
+++ b/gcc/testsuite/c-c++-common/pragma-diag-15.c
@@ -9,5 +9,5 @@
    because the location of the macro definition is incorrectly set.  This is a
    separate issue, will resolve it in a later patch.  */
 
-#define X /* { dg-warning "-:-Wunused-macros" } */
+#define X /* { dg-warning "-:-Wunused-macros" {} { xfail c++ } } */
 #pragma GCC diagnostic ignored "-Wunused-macros"
diff --git a/libgomp/libgomp.texi b/libgomp/libgomp.texi
index 10fefa9..3e8340b 100644
--- a/libgomp/libgomp.texi
+++ b/libgomp/libgomp.texi
@@ -54,7 +54,7 @@
 @subtitle The GNU OpenMP and OpenACC Implementation
 @page
 @vskip 0pt plus 1filll
-@comment For the @value{version-GCC} Version*
+@comment For the $$version-GCC$$ Version*
 @sp 1
 Published by the Free Software Foundation @*
 51 Franklin Street, Fifth Floor@*
diff --git a/libiberty/libiberty.texi b/libiberty/libiberty.texi
index ad1f8e3..1ddc36d 100644
--- a/libiberty/libiberty.texi
+++ b/libiberty/libiberty.texi
@@ -83,7 +83,6 @@
 * Licenses::           The various licenses under which libiberty sources are
                        distributed.
 
-* Index::              Index of functions and categories.
 @end menu
 
 @node Using
@@ -304,8 +303,6 @@
 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 SUCH DAMAGE.
 
-@node Index
-@unnumbered Index
 
 @printindex cp
 
diff --git a/libitm/libitm.texi b/libitm/libitm.texi
index 7dff5f8..cb8fe54 100644
--- a/libitm/libitm.texi
+++ b/libitm/libitm.texi
@@ -35,7 +35,7 @@
 @title The GNU Transactional Memory Library
 @page
 @vskip 0pt plus 1filll
-@comment For the @value{version-GCC} Version*
+@comment For the $$version-GCC$$ Version*
 @sp 1
 @insertcopying
 @end titlepage
diff --git a/libquadmath/libquadmath.texi b/libquadmath/libquadmath.texi
index fad8e62..6eb36f1 100644
--- a/libquadmath/libquadmath.texi
+++ b/libquadmath/libquadmath.texi
@@ -44,7 +44,7 @@
 @title The GCC Quad-Precision Math Library
 @page
 @vskip 0pt plus 1filll
-@comment For the @value{version-GCC} Version*
+@comment For the $$version-GCC$$ Version*
 @sp 1
 Published by the Free Software Foundation @*
 51 Franklin Street, Fifth Floor@*
@@ -103,8 +103,7 @@
 @table @asis
 @item @code{FLT128_MAX}: largest finite number
 @item @code{FLT128_MIN}: smallest positive number with full precision
-@item @code{FLT128_EPSILON}: difference between 1 and the next larger
-                             representable number
+@item @code{FLT128_EPSILON}: difference between 1 and the next larger representable number
 @item @code{FLT128_DENORM_MIN}: smallest positive denormalized number
 @item @code{FLT128_MANT_DIG}: number of digits in the mantissa (bit precision)
 @item @code{FLT128_MIN_EXP}: maximal negative exponent
@@ -160,7 +159,6 @@
 @item @code{exp2q}: base 2 exponential function
 @item @code{expq}: exponential function
 @item @code{expm1q}: exponential minus 1 function
-@need 800
 @item @code{fabsq}: absolute value function
 @item @code{fdimq}: positive difference function
 @item @code{finiteq}: check finiteness of value
@@ -187,7 +185,6 @@
 @item @code{log10q}: base 10 logarithm function
 @item @code{log1pq}: compute natural logarithm of the value plus one
 @item @code{log2q}: base 2 logarithm function
-@need 800
 @item @code{lrintq}: round to nearest integer value
 @item @code{lroundq}: round to nearest integer value away from zero
 @item @code{modfq}: decompose the floating-point number
@@ -208,15 +205,14 @@
 @item @code{sqrtq}: square root function
 @item @code{tanq}: tangent function
 @item @code{tanhq}: hyperbolic tangent function
-@need 800
 @item @code{tgammaq}: true gamma function
 @item @code{truncq}: round to integer, towards zero
 @item @code{y0q}: Bessel function of the second kind, first order
 @item @code{y1q}: Bessel function of the second kind, second order
 @item @code{ynq}: Bessel function of the second kind, @var{n}-th order
-@item @code{cabsq} complex absolute value function
+@item @code{cabsq}: complex absolute value function
 @item @code{cargq}: calculate the argument
-@item @code{cimagq} imaginary part of complex number
+@item @code{cimagq}: imaginary part of complex number
 @item @code{crealq}: real part of complex number
 @item @code{cacoshq}: complex arc hyperbolic cosine function
 @item @code{cacosq}: complex arc cosine function
@@ -224,12 +220,10 @@
 @item @code{casinq}: complex arc sine function
 @item @code{catanhq}: complex arc hyperbolic tangent function
 @item @code{catanq}: complex arc tangent function
-@item @code{ccosq} complex cosine function:
+@item @code{ccosq}: complex cosine function
 @item @code{ccoshq}: complex hyperbolic cosine function
 @item @code{cexpq}: complex exponential function
-@need 800
-@item @code{cexpiq}: computes the exponential function of ``i'' times a
-                     real value
+@item @code{cexpiq}: computes the exponential function of ``i'' times a real value
 @item @code{clogq}: complex natural logarithm
 @item @code{clog10q}: complex base 10 logarithm
 @item @code{conjq}: complex conjugate function
@@ -371,13 +365,13 @@
 @c ---------------------------------------------------------------------
 
 @c For BUGURL
-@include libquadmath-vers.texi
+@include gcc-vers.texi
 
 @node Reporting Bugs
 @chapter Reporting Bugs
 
 Bugs in the GCC Quad-Precision Math Library implementation should be
-reported via @value{BUGURL}.
+reported via $$BUGURL$$.
 
 
 @c ---------------------------------------------------------------------