(x86_64-linux-gnu-gccint-10.info)Top


Next: Contributing Up: (dir)
Enter node , (file) or (file)node

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 (Ubuntu
10.5.0-1ubuntu1~22.04) version 10.5.0.  The use of the GNU compilers is
documented in a separate manual.  *Note Introduction:
(x86_64-linux-gnu-gcc-10)Top.

 This manual is mainly a reference manual rather than a tutorial.  It
discusses how to contribute to GCC (Note: Contributing), the
characteristics of the machines supported by GCC as hosts and targets
(Note: Portability), how GCC relates to the ABIs on such systems
(Note: Interface), and the characteristics of the languages for which
GCC front ends are written (Note: 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
<http://gcc.gnu.org/readings.html>.

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.
poly_int
Representation of runtime sizes and offsets.
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 'xm-MACHINE.h' file.
Fragments
Writing the 't-TARGET' and 'x-HOST' files.
Collect2
How 'collect2' works; how it finds '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.
Match and Simplify
How to write expression simplification patterns for GIMPLE and GENERIC
Static Analyzer
Working with the static analyzer.
User Experience Guidelines
Guidelines for implementing diagnostics and options.
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.