]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/doc/gccint.texi
configure.ac: Add --with-pkgversion and --with-bugurl.
[thirdparty/gcc.git] / gcc / doc / gccint.texi
CommitLineData
b11cc610
JM
1\input texinfo @c -*-texinfo-*-
2@c %**start of header
3@setfilename gccint.info
4@c INTERNALS is used by md.texi to determine whether to include the
5@c whole of that file, in the internals manual, or only the part
6@c dealing with constraints, in the user manual.
7@set INTERNALS
8
9@c See miscellaneous notes in gcc.texi on checks/things to do.
10
11@include gcc-common.texi
12
13@settitle GNU Compiler Collection (GCC) Internals
14
15@c Create a separate index for command line options.
16@defcodeindex op
17@c Merge the standard indexes into a single one.
18@syncodeindex fn cp
19@syncodeindex vr cp
20@syncodeindex ky cp
21@syncodeindex pg cp
22@syncodeindex tp cp
23
061151d1
MS
24@paragraphindent 1
25
b11cc610
JM
26@c %**end of header
27
bdefb2ab 28@copying
b11cc610 29Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
2f41c1d6
PB
301999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
312007 Free Software Foundation, Inc.
bdefb2ab 32
b11cc610 33Permission is granted to copy, distribute and/or modify this document
b3a8389d 34under the terms of the GNU Free Documentation License, Version 1.2 or
b11cc610
JM
35any later version published by the Free Software Foundation; with the
36Invariant Sections being ``GNU General Public License'' and ``Funding
37Free Software'', the Front-Cover texts being (a) (see below), and with
38the Back-Cover Texts being (b) (see below). A copy of the license is
39included in the section entitled ``GNU Free Documentation License''.
40
41(a) The FSF's Front-Cover Text is:
42
43 A GNU Manual
44
45(b) The FSF's Back-Cover Text is:
46
47 You have freedom to copy and modify this GNU Manual, like GNU
48 software. Copies published by the Free Software Foundation raise
49 funds for GNU development.
bdefb2ab
JM
50@end copying
51@ifnottex
c3cb54c6 52@dircategory Software development
bdefb2ab
JM
53@direntry
54* gccint: (gccint). Internals of the GNU Compiler Collection.
55@end direntry
56This file documents the internals of the GNU compilers.
57@sp 1
bdefb2ab 58@insertcopying
061151d1 59@sp 1
b11cc610
JM
60@end ifnottex
61
62@setchapternewpage odd
63@titlepage
7771bb62
BM
64@title GNU Compiler Collection Internals
65@versionsubtitle
66@author Richard M. Stallman and the @sc{GCC} Developer Community
b11cc610
JM
67@page
68@vskip 0pt plus 1filll
bdefb2ab 69@insertcopying
b11cc610
JM
70@end titlepage
71@summarycontents
72@contents
73@page
74
75@node Top, Contributing,, (DIR)
76@top Introduction
77@cindex introduction
78
79This manual documents the internals of the GNU compilers, including
80how to port them to new targets and some information about how to
2f41c1d6
PB
81write front ends for new languages. It corresponds to the compilers
82@ifset VERSION_PACKAGE
83@value{VERSION_PACKAGE}
84@end ifset
85version @value{version-GCC}. The use of the GNU compilers is documented in a
b11cc610
JM
86separate manual. @xref{Top,, Introduction, gcc, Using the GNU
87Compiler Collection (GCC)}.
88
0a553c7e
JM
89This manual is mainly a reference manual rather than a tutorial. It
90discusses how to contribute to GCC (@pxref{Contributing}), the
91characteristics of the machines supported by GCC as hosts and targets
92(@pxref{Portability}), how GCC relates to the ABIs on such systems
93(@pxref{Interface}), and the characteristics of the languages for
94which GCC front ends are written (@pxref{Languages}). It then
95describes the GCC source tree structure and build system, some of the
96interfaces to GCC front ends, and how support for a target system is
97implemented in GCC@.
98
99Additional tutorial information is linked to from
100@uref{http://gcc.gnu.org/readings.html}.
101
b11cc610
JM
102@menu
103* Contributing:: How to contribute to testing and developing GCC.
b11cc610
JM
104* Portability:: Goals of GCC's portability features.
105* Interface:: Function-call interface of GCC output.
d2184e79 106* Libgcc:: Low-level runtime library used by GCC.
0a553c7e
JM
107* Languages:: Languages for which GCC front ends are written.
108* Source Tree:: GCC source tree structure and build system.
75685792 109* Options:: Option specification files.
b11cc610
JM
110* Passes:: Order of passes, what they do, and what each file is for.
111* Trees:: The source representation used by the C and C++ front ends.
112* RTL:: The intermediate representation that most passes work on.
6de9cd9a
DN
113* Control Flow:: Maintaining and manipulating the control flow graph.
114* Tree SSA:: Analysis and optimization of the tree representation.
821f6218 115* Loop Analysis and Representation:: Analysis and representation of loops
b11cc610
JM
116* Machine Desc:: How to write machine description instruction patterns.
117* Target Macros:: How to write the machine description C macros and functions.
807633e5 118* Host Config:: Writing the @file{xm-@var{machine}.h} file.
b11cc610 119* Fragments:: Writing the @file{t-@var{target}} and @file{x-@var{host}} files.
b11cc610
JM
120* Collect2:: How @code{collect2} works; how it finds @code{ld}.
121* Header Dirs:: Understanding the standard header file directories.
e2500fed 122* Type Information:: GCC's memory management; generating type information.
b11cc610
JM
123
124* Funding:: How to help assure funding for free software.
125* GNU Project:: The GNU Project and GNU/Linux.
126
127* Copying:: GNU General Public License says
128 how you can copy and share GCC.
129* GNU Free Documentation License:: How you can copy and share this manual.
130* Contributors:: People who have contributed to GCC.
131
132* Option Index:: Index to command line options.
061151d1 133* Concept Index:: Index of concepts and symbol names.
b11cc610
JM
134@end menu
135
136@include contribute.texi
b11cc610
JM
137@include portability.texi
138@include interface.texi
d2184e79 139@include libgcc.texi
0a553c7e
JM
140@include languages.texi
141@include sourcebuild.texi
75685792 142@include options.texi
b11cc610
JM
143@include passes.texi
144@include c-tree.texi
6de9cd9a 145@include tree-ssa.texi
01e0ef5a 146@include loop.texi
b11cc610 147@include rtl.texi
6de9cd9a 148@include cfg.texi
b11cc610
JM
149@include md.texi
150@include tm.texi
151@include hostconfig.texi
152@include fragments.texi
b11cc610
JM
153@include collect2.texi
154@include headerdirs.texi
e2500fed 155@include gty.texi
b11cc610
JM
156
157@include funding.texi
158@include gnu.texi
159@include gpl.texi
160
161@c ---------------------------------------------------------------------
162@c GFDL
163@c ---------------------------------------------------------------------
164
165@include fdl.texi
166
167@include contrib.texi
168
169@c ---------------------------------------------------------------------
170@c Indexes
171@c ---------------------------------------------------------------------
172
173@node Option Index
174@unnumbered Option Index
175
176GCC's command line options are indexed here without any initial @samp{-}
177or @samp{--}. Where an option has both positive and negative forms
178(such as @option{-f@var{option}} and @option{-fno-@var{option}}),
179relevant entries in the manual are indexed under the most appropriate
180form; it may sometimes be useful to look up both forms.
181
182@printindex op
183
061151d1
MS
184@node Concept Index
185@unnumbered Concept Index
b11cc610
JM
186
187@printindex cp
188
189@c ---------------------------------------------------------------------
190@c Epilogue
191@c ---------------------------------------------------------------------
192
193@bye