diff options
Diffstat (limited to 'gcc/doc/gccint.texi')
-rw-r--r-- | gcc/doc/gccint.texi | 200 |
1 files changed, 200 insertions, 0 deletions
diff --git a/gcc/doc/gccint.texi b/gcc/doc/gccint.texi new file mode 100644 index 000000000..d4a8a583c --- /dev/null +++ b/gcc/doc/gccint.texi @@ -0,0 +1,200 @@ +\input texinfo @c -*-texinfo-*- +@c %**start of header +@setfilename gccint.info +@c INTERNALS is used by md.texi to determine whether to include the +@c whole of that file, in the internals manual, or only the part +@c dealing with constraints, in the user manual. +@set INTERNALS + +@c See miscellaneous notes in gcc.texi on checks/things to do. + +@include gcc-common.texi + +@settitle GNU Compiler Collection (GCC) Internals + +@c Create a separate index for command line options. +@defcodeindex op +@c Merge the standard indexes into a single one. +@syncodeindex fn cp +@syncodeindex vr cp +@syncodeindex ky cp +@syncodeindex pg cp +@syncodeindex tp cp + +@paragraphindent 1 + +@c %**end of header + +@copying +Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, +1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +2008, 2010 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 section entitled +``GNU Free Documentation License''. + +(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. +@end copying +@ifnottex +@dircategory Software development +@direntry +* gccint: (gccint). Internals of the GNU Compiler Collection. +@end direntry +This file documents the internals of the GNU compilers. +@sp 1 +@insertcopying +@sp 1 +@end ifnottex + +@setchapternewpage odd +@titlepage +@title GNU Compiler Collection Internals +@versionsubtitle +@author Richard M. Stallman and the @sc{GCC} Developer Community +@page +@vskip 0pt plus 1filll +@insertcopying +@end titlepage +@summarycontents +@contents +@page + +@node Top, Contributing,, (DIR) +@top Introduction +@cindex introduction + +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 +separate manual. @xref{Top,, Introduction, gcc, Using the GNU +Compiler Collection (GCC)}. + +This manual is mainly a reference manual rather than a tutorial. It +discusses how to contribute to GCC (@pxref{Contributing}), the +characteristics of the machines supported by GCC as hosts and targets +(@pxref{Portability}), how GCC relates to the ABIs on such systems +(@pxref{Interface}), and the characteristics of the languages for +which GCC front ends are written (@pxref{Languages}). It then +describes the GCC source tree structure and build system, some of the +interfaces to GCC front ends, and how support for a target system is +implemented in GCC@. + +Additional tutorial information is linked to from +@uref{http://gcc.gnu.org/readings.html}. + +@menu +* Contributing:: How to contribute to testing and developing GCC. +* Portability:: Goals of GCC's portability features. +* Interface:: Function-call interface of GCC output. +* Libgcc:: Low-level runtime library used by GCC. +* Languages:: Languages for which GCC front ends are written. +* Source Tree:: GCC source tree structure and build system. +* Testsuites:: GCC testsuites. +* Options:: Option specification files. +* Passes:: Order of passes, what they do, and what each file is for. +* GENERIC:: Language-independent representation generated by Front Ends +* GIMPLE:: Tuple representation used by Tree SSA optimizers +* Tree SSA:: Analysis and optimization of GIMPLE +* RTL:: Machine-dependent low-level intermediate representation. +* Control Flow:: Maintaining and manipulating the control flow graph. +* Loop Analysis and Representation:: Analysis and representation of loops +* Machine Desc:: How to write machine description instruction patterns. +* Target Macros:: How to write the machine description C macros and functions. +* Host Config:: Writing the @file{xm-@var{machine}.h} file. +* Fragments:: Writing the @file{t-@var{target}} and @file{x-@var{host}} files. +* Collect2:: How @code{collect2} works; how it finds @code{ld}. +* Header Dirs:: Understanding the standard header file directories. +* Type Information:: GCC's memory management; generating type information. +* Plugins:: Extending the compiler with plugins. +* LTO:: Using Link-Time Optimization. + +* Funding:: How to help assure funding for free software. +* GNU Project:: The GNU Project and GNU/Linux. + +* Copying:: GNU General Public License says + how you can copy and share GCC. +* GNU Free Documentation License:: How you can copy and share this manual. +* Contributors:: People who have contributed to GCC. + +* Option Index:: Index to command line options. +* Concept Index:: Index of concepts and symbol names. +@end menu + +@include contribute.texi +@include portability.texi +@include interface.texi +@include libgcc.texi +@include languages.texi +@include sourcebuild.texi +@include options.texi +@include passes.texi +@include rtl.texi +@include generic.texi +@include gimple.texi +@include tree-ssa.texi +@include loop.texi +@include cfg.texi +@include md.texi +@include tm.texi +@include hostconfig.texi +@include fragments.texi +@include collect2.texi +@include headerdirs.texi +@include gty.texi +@include plugins.texi +@include lto.texi + +@include funding.texi +@include gnu.texi +@include gpl_v3.texi + +@c --------------------------------------------------------------------- +@c GFDL +@c --------------------------------------------------------------------- + +@include fdl.texi + +@include contrib.texi + +@c --------------------------------------------------------------------- +@c Indexes +@c --------------------------------------------------------------------- + +@node Option Index +@unnumbered Option Index + +GCC's command line options are indexed here without any initial @samp{-} +or @samp{--}. Where an option has both positive and negative forms +(such as @option{-f@var{option}} and @option{-fno-@var{option}}), +relevant entries in the manual are indexed under the most appropriate +form; it may sometimes be useful to look up both forms. + +@printindex op + +@node Concept Index +@unnumbered Concept Index + +@printindex cp + +@c --------------------------------------------------------------------- +@c Epilogue +@c --------------------------------------------------------------------- + +@bye |