1 1 Introduction 1 ************ 1 1 This manual documents the internals of the GNU compilers, including how 1 to port them to new targets and some information about how to write 1 front ends for new languages. It corresponds to the compilers (GCC) 1 version 8.5.0. The use of the GNU compilers is documented in a separate 1 manual. ⇒Introduction (gcc)Top. 1 1 This manual is mainly a reference manual rather than a tutorial. It 1 discusses how to contribute to GCC (⇒Contributing), the 1 characteristics of the machines supported by GCC as hosts and targets 1 (⇒Portability), how GCC relates to the ABIs on such systems 1 (⇒Interface), and the characteristics of the languages for which 1 GCC front ends are written (⇒Languages). It then describes the 1 GCC source tree structure and build system, some of the interfaces to 1 GCC front ends, and how support for a target system is implemented in 1 GCC. 1 1 Additional tutorial information is linked to from 1 <http://gcc.gnu.org/readings.html>. 1
1 · 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. 1 · Match and Simplify How to write expression simplification patterns for GIMPLE and GENERIC · Funding How to help assure funding for free software. · GNU Project The GNU Project and GNU/Linux. 1 · Copying GNU General Public License says 1 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. 1 · Option Index Index to command line options. · Concept Index Index of concepts and symbol names. 1