xref: /netbsd-src/external/gpl3/gcc.old/dist/gcc/doc/gccint.texi (revision 8feb0f0b7eaff0608f8350bbfa3098827b4bb91b)
11debfc3dSmrg\input texinfo  @c -*-texinfo-*-
21debfc3dSmrg@c %**start of header
31debfc3dSmrg@setfilename gccint.info
41debfc3dSmrg@c INTERNALS is used by md.texi to determine whether to include the
51debfc3dSmrg@c whole of that file, in the internals manual, or only the part
61debfc3dSmrg@c dealing with constraints, in the user manual.
71debfc3dSmrg@set INTERNALS
81debfc3dSmrg
91debfc3dSmrg@c See miscellaneous notes in gcc.texi on checks/things to do.
101debfc3dSmrg
111debfc3dSmrg@include gcc-common.texi
121debfc3dSmrg
131debfc3dSmrg@settitle GNU Compiler Collection (GCC) Internals
141debfc3dSmrg
151debfc3dSmrg@c Create a separate index for command line options.
161debfc3dSmrg@defcodeindex op
171debfc3dSmrg@c Merge the standard indexes into a single one.
181debfc3dSmrg@syncodeindex fn cp
191debfc3dSmrg@syncodeindex vr cp
201debfc3dSmrg@syncodeindex ky cp
211debfc3dSmrg@syncodeindex pg cp
221debfc3dSmrg@syncodeindex tp cp
231debfc3dSmrg
241debfc3dSmrg@paragraphindent 1
251debfc3dSmrg
261debfc3dSmrg@c %**end of header
271debfc3dSmrg
281debfc3dSmrg@copying
29*8feb0f0bSmrgCopyright @copyright{} 1988-2020 Free Software Foundation, Inc.
301debfc3dSmrg
311debfc3dSmrgPermission is granted to copy, distribute and/or modify this document
321debfc3dSmrgunder the terms of the GNU Free Documentation License, Version 1.3 or
331debfc3dSmrgany later version published by the Free Software Foundation; with the
341debfc3dSmrgInvariant Sections being ``Funding Free Software'', the Front-Cover
351debfc3dSmrgTexts being (a) (see below), and with the Back-Cover Texts being (b)
361debfc3dSmrg(see below).  A copy of the license is included in the section entitled
371debfc3dSmrg``GNU Free Documentation License''.
381debfc3dSmrg
391debfc3dSmrg(a) The FSF's Front-Cover Text is:
401debfc3dSmrg
411debfc3dSmrg     A GNU Manual
421debfc3dSmrg
431debfc3dSmrg(b) The FSF's Back-Cover Text is:
441debfc3dSmrg
451debfc3dSmrg     You have freedom to copy and modify this GNU Manual, like GNU
461debfc3dSmrg     software.  Copies published by the Free Software Foundation raise
471debfc3dSmrg     funds for GNU development.
481debfc3dSmrg@end copying
491debfc3dSmrg@ifnottex
501debfc3dSmrg@dircategory Software development
511debfc3dSmrg@direntry
521debfc3dSmrg* gccint: (gccint).            Internals of the GNU Compiler Collection.
531debfc3dSmrg@end direntry
541debfc3dSmrgThis file documents the internals of the GNU compilers.
551debfc3dSmrg@sp 1
561debfc3dSmrg@insertcopying
571debfc3dSmrg@sp 1
581debfc3dSmrg@end ifnottex
591debfc3dSmrg
601debfc3dSmrg@setchapternewpage odd
611debfc3dSmrg@titlepage
621debfc3dSmrg@title GNU Compiler Collection Internals
631debfc3dSmrg@versionsubtitle
641debfc3dSmrg@author Richard M. Stallman and the @sc{GCC} Developer Community
651debfc3dSmrg@page
661debfc3dSmrg@vskip 0pt plus 1filll
671debfc3dSmrg@insertcopying
681debfc3dSmrg@end titlepage
691debfc3dSmrg@summarycontents
701debfc3dSmrg@contents
711debfc3dSmrg@page
721debfc3dSmrg
731debfc3dSmrg@node Top, Contributing
741debfc3dSmrg@top Introduction
751debfc3dSmrg@cindex introduction
761debfc3dSmrg
771debfc3dSmrgThis manual documents the internals of the GNU compilers, including
781debfc3dSmrghow to port them to new targets and some information about how to
791debfc3dSmrgwrite front ends for new languages.  It corresponds to the compilers
801debfc3dSmrg@ifset VERSION_PACKAGE
811debfc3dSmrg@value{VERSION_PACKAGE}
821debfc3dSmrg@end ifset
831debfc3dSmrgversion @value{version-GCC}.  The use of the GNU compilers is documented in a
841debfc3dSmrgseparate manual.  @xref{Top,, Introduction, gcc, Using the GNU
851debfc3dSmrgCompiler Collection (GCC)}.
861debfc3dSmrg
871debfc3dSmrgThis manual is mainly a reference manual rather than a tutorial.  It
881debfc3dSmrgdiscusses how to contribute to GCC (@pxref{Contributing}), the
891debfc3dSmrgcharacteristics of the machines supported by GCC as hosts and targets
901debfc3dSmrg(@pxref{Portability}), how GCC relates to the ABIs on such systems
911debfc3dSmrg(@pxref{Interface}), and the characteristics of the languages for
921debfc3dSmrgwhich GCC front ends are written (@pxref{Languages}).  It then
931debfc3dSmrgdescribes the GCC source tree structure and build system, some of the
941debfc3dSmrginterfaces to GCC front ends, and how support for a target system is
951debfc3dSmrgimplemented in GCC@.
961debfc3dSmrg
971debfc3dSmrgAdditional tutorial information is linked to from
981debfc3dSmrg@uref{http://gcc.gnu.org/readings.html}.
991debfc3dSmrg
1001debfc3dSmrg@menu
1011debfc3dSmrg* Contributing::    How to contribute to testing and developing GCC.
1021debfc3dSmrg* Portability::     Goals of GCC's portability features.
1031debfc3dSmrg* Interface::       Function-call interface of GCC output.
1041debfc3dSmrg* Libgcc::          Low-level runtime library used by GCC.
1051debfc3dSmrg* Languages::       Languages for which GCC front ends are written.
1061debfc3dSmrg* Source Tree::     GCC source tree structure and build system.
1071debfc3dSmrg* Testsuites::      GCC testsuites.
1081debfc3dSmrg* Options::         Option specification files.
1091debfc3dSmrg* Passes::          Order of passes, what they do, and what each file is for.
110a2dc1f3fSmrg* poly_int::        Representation of runtime sizes and offsets.
1111debfc3dSmrg* GENERIC::         Language-independent representation generated by Front Ends
1121debfc3dSmrg* GIMPLE::          Tuple representation used by Tree SSA optimizers
1131debfc3dSmrg* Tree SSA::        Analysis and optimization of GIMPLE
1141debfc3dSmrg* RTL::             Machine-dependent low-level intermediate representation.
1151debfc3dSmrg* Control Flow::    Maintaining and manipulating the control flow graph.
1161debfc3dSmrg* Loop Analysis and Representation:: Analysis and representation of loops
1171debfc3dSmrg* Machine Desc::    How to write machine description instruction patterns.
1181debfc3dSmrg* Target Macros::   How to write the machine description C macros and functions.
1191debfc3dSmrg* Host Config::     Writing the @file{xm-@var{machine}.h} file.
1201debfc3dSmrg* Fragments::       Writing the @file{t-@var{target}} and @file{x-@var{host}} files.
1211debfc3dSmrg* Collect2::        How @code{collect2} works; how it finds @code{ld}.
1221debfc3dSmrg* Header Dirs::     Understanding the standard header file directories.
1231debfc3dSmrg* Type Information:: GCC's memory management; generating type information.
1241debfc3dSmrg* Plugins::         Extending the compiler with plugins.
1251debfc3dSmrg* LTO::             Using Link-Time Optimization.
1261debfc3dSmrg
1271debfc3dSmrg* Match and Simplify:: How to write expression simplification patterns for GIMPLE and GENERIC
128*8feb0f0bSmrg* Static Analyzer:: Working with the static analyzer.
129c0a68be4Smrg* User Experience Guidelines:: Guidelines for implementing diagnostics and options.
1301debfc3dSmrg* Funding::         How to help assure funding for free software.
1311debfc3dSmrg* GNU Project::     The GNU Project and GNU/Linux.
1321debfc3dSmrg
1331debfc3dSmrg* Copying::         GNU General Public License says
1341debfc3dSmrg                    how you can copy and share GCC.
1351debfc3dSmrg* GNU Free Documentation License:: How you can copy and share this manual.
1361debfc3dSmrg* Contributors::    People who have contributed to GCC.
1371debfc3dSmrg
1381debfc3dSmrg* Option Index::    Index to command line options.
1391debfc3dSmrg* Concept Index::   Index of concepts and symbol names.
1401debfc3dSmrg@end menu
1411debfc3dSmrg
1421debfc3dSmrg@include contribute.texi
1431debfc3dSmrg@include portability.texi
1441debfc3dSmrg@include interface.texi
1451debfc3dSmrg@include libgcc.texi
1461debfc3dSmrg@include languages.texi
1471debfc3dSmrg@include sourcebuild.texi
1481debfc3dSmrg@include options.texi
1491debfc3dSmrg@include passes.texi
150a2dc1f3fSmrg@include poly-int.texi
1511debfc3dSmrg@include generic.texi
1521debfc3dSmrg@include gimple.texi
1531debfc3dSmrg@include tree-ssa.texi
1541debfc3dSmrg@include rtl.texi
1551debfc3dSmrg@include cfg.texi
1561debfc3dSmrg@include loop.texi
1571debfc3dSmrg@include md.texi
1581debfc3dSmrg@include tm.texi
1591debfc3dSmrg@include hostconfig.texi
1601debfc3dSmrg@include fragments.texi
1611debfc3dSmrg@include collect2.texi
1621debfc3dSmrg@include headerdirs.texi
1631debfc3dSmrg@include gty.texi
1641debfc3dSmrg@include plugins.texi
1651debfc3dSmrg@include lto.texi
1661debfc3dSmrg@include match-and-simplify.texi
167*8feb0f0bSmrg@include analyzer.texi
168c0a68be4Smrg@include ux.texi
1691debfc3dSmrg
1701debfc3dSmrg@include funding.texi
1711debfc3dSmrg@include gnu.texi
1721debfc3dSmrg@include gpl_v3.texi
1731debfc3dSmrg
1741debfc3dSmrg@c ---------------------------------------------------------------------
1751debfc3dSmrg@c GFDL
1761debfc3dSmrg@c ---------------------------------------------------------------------
1771debfc3dSmrg
1781debfc3dSmrg@include fdl.texi
1791debfc3dSmrg
1801debfc3dSmrg@include contrib.texi
1811debfc3dSmrg
1821debfc3dSmrg@c ---------------------------------------------------------------------
1831debfc3dSmrg@c Indexes
1841debfc3dSmrg@c ---------------------------------------------------------------------
1851debfc3dSmrg
1861debfc3dSmrg@node Option Index
1871debfc3dSmrg@unnumbered Option Index
1881debfc3dSmrg
1891debfc3dSmrgGCC's command line options are indexed here without any initial @samp{-}
1901debfc3dSmrgor @samp{--}.  Where an option has both positive and negative forms
1911debfc3dSmrg(such as @option{-f@var{option}} and @option{-fno-@var{option}}),
1921debfc3dSmrgrelevant entries in the manual are indexed under the most appropriate
1931debfc3dSmrgform; it may sometimes be useful to look up both forms.
1941debfc3dSmrg
1951debfc3dSmrg@printindex op
1961debfc3dSmrg
1971debfc3dSmrg@node Concept Index
1981debfc3dSmrg@unnumbered Concept Index
1991debfc3dSmrg
2001debfc3dSmrg@printindex cp
2011debfc3dSmrg
2021debfc3dSmrg@c ---------------------------------------------------------------------
2031debfc3dSmrg@c Epilogue
2041debfc3dSmrg@c ---------------------------------------------------------------------
2051debfc3dSmrg
2061debfc3dSmrg@bye
207