gccint.texi revision 90075
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 24@c %**end of header 25 26@c Use with @@smallbook. 27 28@c Cause even numbered pages to be printed on the left hand side of 29@c the page and odd numbered pages to be printed on the right hand 30@c side of the page. Using this, you can print on both sides of a 31@c sheet of paper and have the text on the same part of the sheet. 32 33@c The text on right hand pages is pushed towards the right hand 34@c margin and the text on left hand pages is pushed toward the left 35@c hand margin. 36@c (To provide the reverse effect, set bindingoffset to -0.75in.) 37 38@c @tex 39@c \global\bindingoffset=0.75in 40@c \global\normaloffset =0.75in 41@c @end tex 42 43@c Change the font used for @def... commands, since the default 44@c proportional one used is bad for names starting __. 45@tex 46\global\setfont\defbf\ttbshape{10}{\magstep1} 47@end tex 48 49@macro copyrightnotice 50Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 511999, 2000, 2001, 2002 Free Software Foundation, Inc. 52@end macro 53@ifnottex 54@dircategory Programming 55@direntry 56* gccint: (gccint). Internals of the GNU Compiler Collection. 57@end direntry 58This file documents the internals of the GNU compilers. 59@sp 1 60Published by the Free Software Foundation@* 6159 Temple Place - Suite 330@* 62Boston, MA 02111-1307 USA 63@sp 1 64@copyrightnotice{} 65@sp 1 66Permission is granted to copy, distribute and/or modify this document 67under the terms of the GNU Free Documentation License, Version 1.1 or 68any later version published by the Free Software Foundation; with the 69Invariant Sections being ``GNU General Public License'' and ``Funding 70Free Software'', the Front-Cover texts being (a) (see below), and with 71the Back-Cover Texts being (b) (see below). A copy of the license is 72included in the section entitled ``GNU Free Documentation License''. 73 74(a) The FSF's Front-Cover Text is: 75 76 A GNU Manual 77 78(b) The FSF's Back-Cover Text is: 79 80 You have freedom to copy and modify this GNU Manual, like GNU 81 software. Copies published by the Free Software Foundation raise 82 funds for GNU development. 83@end ifnottex 84 85@setchapternewpage odd 86@titlepage 87@center @titlefont{GNU Compiler Collection Internals} 88@sp 2 89@center Richard M. Stallman 90@sp 3 91@center Last updated 10 January 2002 92@sp 1 93 94@center for GCC @value{version-GCC} 95@page 96@vskip 0pt plus 1filll 97@copyrightnotice{} 98@sp 2 99For GCC Version @value{version-GCC}@* 100@sp 1 101Published by the Free Software Foundation @* 10259 Temple Place---Suite 330@* 103Boston, MA 02111-1307, USA@* 104Last printed April, 1998.@* 105Printed copies are available for $50 each.@* 106@c Update this ISBN when printing a new edition. 107@ifset FSFPRINT 108ISBN 1-882114-37-X 109@end ifset 110@sp 1 111Permission is granted to copy, distribute and/or modify this document 112under the terms of the GNU Free Documentation License, Version 1.1 or 113any later version published by the Free Software Foundation; with the 114Invariant Sections being ``GNU General Public License'', the Front-Cover 115texts being (a) (see below), and with the Back-Cover Texts being (b) 116(see below). A copy of the license is included in the section entitled 117``GNU Free Documentation License''. 118 119(a) The FSF's Front-Cover Text is: 120 121 A GNU Manual 122 123(b) The FSF's Back-Cover Text is: 124 125 You have freedom to copy and modify this GNU Manual, like GNU 126 software. Copies published by the Free Software Foundation raise 127 funds for GNU development. 128@end titlepage 129@summarycontents 130@contents 131@page 132 133@node Top, Contributing,, (DIR) 134@top Introduction 135@cindex introduction 136 137This manual documents the internals of the GNU compilers, including 138how to port them to new targets and some information about how to 139write front ends for new languages. It corresponds to GCC version 140@value{version-GCC}. The use of the GNU compilers is documented in a 141separate manual. @xref{Top,, Introduction, gcc, Using the GNU 142Compiler Collection (GCC)}. 143 144This manual is mainly a reference manual rather than a tutorial. It 145discusses how to contribute to GCC (@pxref{Contributing}), the 146characteristics of the machines supported by GCC as hosts and targets 147(@pxref{Portability}), how GCC relates to the ABIs on such systems 148(@pxref{Interface}), and the characteristics of the languages for 149which GCC front ends are written (@pxref{Languages}). It then 150describes the GCC source tree structure and build system, some of the 151interfaces to GCC front ends, and how support for a target system is 152implemented in GCC@. 153 154Additional tutorial information is linked to from 155@uref{http://gcc.gnu.org/readings.html}. 156 157@menu 158* Contributing:: How to contribute to testing and developing GCC. 159* Portability:: Goals of GCC's portability features. 160* Interface:: Function-call interface of GCC output. 161* Languages:: Languages for which GCC front ends are written. 162* Source Tree:: GCC source tree structure and build system. 163* Passes:: Order of passes, what they do, and what each file is for. 164* Trees:: The source representation used by the C and C++ front ends. 165* RTL:: The intermediate representation that most passes work on. 166* Machine Desc:: How to write machine description instruction patterns. 167* Target Macros:: How to write the machine description C macros and functions. 168* Host Config:: Writing the @file{xm-@var{machine}.h} file. 169* Fragments:: Writing the @file{t-@var{target}} and @file{x-@var{host}} files. 170* Collect2:: How @code{collect2} works; how it finds @code{ld}. 171* Header Dirs:: Understanding the standard header file directories. 172 173* Funding:: How to help assure funding for free software. 174* GNU Project:: The GNU Project and GNU/Linux. 175 176* Copying:: GNU General Public License says 177 how you can copy and share GCC. 178* GNU Free Documentation License:: How you can copy and share this manual. 179* Contributors:: People who have contributed to GCC. 180 181* Option Index:: Index to command line options. 182* Index:: Index of concepts and symbol names. 183@end menu 184 185@include contribute.texi 186@include portability.texi 187@include interface.texi 188@include languages.texi 189@include sourcebuild.texi 190@include passes.texi 191@include c-tree.texi 192@include rtl.texi 193@include md.texi 194@include tm.texi 195@include hostconfig.texi 196@include fragments.texi 197@include collect2.texi 198@include headerdirs.texi 199 200@include funding.texi 201@include gnu.texi 202@include gpl.texi 203 204@c --------------------------------------------------------------------- 205@c GFDL 206@c --------------------------------------------------------------------- 207 208@include fdl.texi 209 210@include contrib.texi 211 212@c --------------------------------------------------------------------- 213@c Indexes 214@c --------------------------------------------------------------------- 215 216@node Option Index 217@unnumbered Option Index 218 219GCC's command line options are indexed here without any initial @samp{-} 220or @samp{--}. Where an option has both positive and negative forms 221(such as @option{-f@var{option}} and @option{-fno-@var{option}}), 222relevant entries in the manual are indexed under the most appropriate 223form; it may sometimes be useful to look up both forms. 224 225@printindex op 226 227@node Index 228@unnumbered Index 229 230@printindex cp 231 232@c --------------------------------------------------------------------- 233@c Epilogue 234@c --------------------------------------------------------------------- 235 236@bye 237