Transcript
GNU Compiler Collection Internals (GCC) GNU Compiler Collection Internals by Richard M. Stallman and the GCC Developer Community For GCC Version 4.0.2Copyright c 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,2003, 2004, 2005 Free Software Foundation, Inc.Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by theFree Software Foundation; with the Invariant Sections being “GNU General Public License”and “Funding Free Software”, the Front-Cover texts being (a) (see below), and with theBack-Cover Texts being (b) (see below). A copy of the license is included in the sectionentitled “GNU Free Documentation License”.(a) The FSF’s Front-Cover Text is:A GNU Manual(b) The FSF’s Back-Cover Text is:You have freedom to copy and modify this GNU Manual, like GNU software. Copiespublished by the Free Software Foundation raise funds for GNU development. i Short Contents Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Contributing to GCC Development . . . . . . . . . . . . . . . . . . . 32 GCC and Portability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Interfacing to GCC Output . . . . . . . . . . . . . . . . . . . . . . . . 74 The GCC low-level runtime library . . . . . . . . . . . . . . . . . . . 95 Language Front Ends in GCC . . . . . . . . . . . . . . . . . . . . . . 176 Source Tree Structure and Build System . . . . . . . . . . . . . . . 197 Passes and Files of the Compiler . . . . . . . . . . . . . . . . . . . . 458 Trees: The intermediate representation used by the C and C ++ front ends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 Analysis and Optimization of GIMPLE Trees . . . . . . . . . . . 8910 RTL Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10911 Control Flow Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15712 Machine Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . 16713 Target Description Macros and Functions . . . . . . . . . . . . . 25114 Host Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38915 Makefile Fragments . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39316 collect2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39717 Standard Header File Directories . . . . . . . . . . . . . . . . . . . 39918 Memory Management and Type Information . . . . . . . . . . . 401Funding Free Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407The GNU Project and GNU/Linux . . . . . . . . . . . . . . . . . . . . . 409GNU GENERAL PUBLIC LICENSE . . . . . . . . . . . . . . . . . . . 411GNU Free Documentation License . . . . . . . . . . . . . . . . . . . . . 417Contributors to GCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425Option Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439Concept Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441