Links and Selected Readings
GCC-specific Literature
- An Introduction to GCC by Brian J. Gough (e-book).
- GNU C Compiler Internals (Wikibook), numerous contributors.
- Compilation of Functional Programming Languages using GCC -- Tail Calls by Andreas Bauer.
- Using, Maintaining and Enhancing COBOL for the GNU Compiler Collection (GCC) by Joachim Nadler and Tim Josling <tej@melbpc.org.au>.
- The V3 multi-vendor standard C++ ABI is used in GCC releases 3.0 and above.
- Compiling and testing complete gcc/glibc cross-toolchains for Linux targets by Dan Kegel.
Chip Documentation
The list below is based on the subdirectory names of the gcc/config directory, which typically matches with the CPU name in the configuration name. In some cases, different (but similar) CPUs are put into one directory; the names in parentheses list such similar CPU names.
- AArch64
The 64-bit execution state of the ARM Architecture, first introduced by the ARMv8-A architecture.
Manufacturer: Various, by license from ARM.
ARM Documentation - andes (nds32)
Manufacturer: Various licenses of Andes Technology Corporation.
CPUs include: AndesCore families N7, N8, SN8, N9, N10, N12 and N13.
Andes Documentation
GDB includes a simulator for all CPUs. - arc
Manufacturer: Synopsys Inc (as Synopsys DesignWare softcore)
CPUs include: ARC600, ARC700
ARC Documentation - ARM
Manufacturer: Various, by license from ARM.
CPUs include: ARM7TDMI, and the Cortex-A, Cortex-R and Cortex-M series.
ARM Documentation
Application Binary Interface (ABI) for the ARM Architecture - AVR 8-bit microcontrollers
AVR documentation
avr-gcc Wiki - Blackfin
Manufacturer: Analog Devices
Blackfin Documentation - c4x
Manufacturer: Texas Instruments
Exact chip name: TMS320C4X - C6X
Manufacturer: Texas Instruments
Exact chip name: TMS320C6X - CR16
Manufacturer: National Semiconductor
Acronym stands for: CompactRISC 16-bit
GDB includes a simulator - CRIS
Manufacturer: Axis Communications
Acronym stands for: Code Reduced Instruction Set
The CRIS architecture is used in the ETRAX system-on-a-chip series.
Programmer's Manual for CRIS v10 - C-SKY
Manufacturer: C-SKY Microsystems
C-SKY Documentation - Epiphany
Manufacturer: Adapteva
Manufacturer's website with additional information about the Epiphany architecture. - fr30
Manufacturer: Fujitsu
Acronym stands for: Fujitsu RISC
GDB includes a CGEN generated simulator. - h8300
Manufacturer: Renesas
Exact chip name: H8/300
GDB includes a simulator.
H8/300 Application Binary Interface for GCC. - i386 (i486, i586, i686, i786)
Manufacturer: Intel
Some information about optimizing for x86 processors, links to x86 manuals and documentation:
https://www.agner.org/optimize/
www.sandpile.org: Christian Ludloff's technical x86 processor information. - i860
Manufacturer: Intel - m32c
Manufacturer: Renesas
Renesas M16C Family (R32C/M32C/M16C) Site
GDB includes a simulator. - m32r
Manufacturer: Renesas
GDB includes a CGEN generated simulator. - m68hc11 (m68hc12)
Manufacturer: Motorola
GDB includes a 68HC11 and a 68HC12 simulator. - m68k
Manufacturer: Motorola - mcore
Manufacturer: Motorola
GDB includes a simulator. - MeP
Manufacturer: Toshiba
SID includes a MeP simulator. - MicroBlaze
Manufacturer: AMD
MicroBlaze Soft Processor Design Hub
GDB includes a simulator for an earlier version of the processor. - mips (mipsel, mips64, mips64el)
The *el variants are little-endian configurations. - MMIX
Manufacturer: none. There is a simulator, see links below.
Acronym stands for: Roman numeral for 2009, pronounced [EM-micks]. The number stands for the average of numbers of "14 actual computers very similar to MMIX". The name may also be due to a predecessor appropriately named MIX.
MMIX is used in program examples in Donald E. Knuth'sThe Art of Computer Programming (ISBN 0-201-89683-4).
The MMIX page has more information about MMIX. Knuth also wrote abook specifically about MMIX (MMIXware, ISBN 3-540-66938-8). - mn10300
Manufacturer: Matsushita
Alternate chip name: AM30
GDB includes a simulator. - msp430
Manufacturer: Texas Instruments
GDB includes a simulator. - Nios II
Manufacturer: Intel (formerly Altera)
Nios II Processor Documentation - OpenRISC
Manufacturer: Many (community built architecture)
OpenRISC Project
Architecture Specification - pa
Manufacturer: HP
PA-RISC is preferred over the older HPPA acronym (Hewlett-Packard Precision Architecture).
parisc.docs.kernel.org is another good source of PA-RISC documention. - pdp11
Manufacturer: DEC
Simulators - pru
Manufacturer: Texas Instruments
PRU Assembly Instruction User Guide.
TI ABI Specification (see chapter 6).
Community PRU Documentation - riscv
Manufacturer: Many (open ISA standard)
RISC-V Foundation
ISA Specifications - rs6000 (powerpc, powerpcle)
Manufacturer: IBM, Motorola
OpenPOWER Foundation
64-Bit ELF V2 ABI - OpenPOWER ABI
AIX 7.2 Assembler Language Reference - rx
Manufacturer: Renesas
RX610 landing page - sh
Manufacturer: Renesas, various licensees.
CPUs include: SH1, SH2, SH2-DSP, SH3, SH3-DSP, SH4, SH4A, SH5 series.
Renesas SuperH Processors
SuperH Instruction Set Summary
GDB includes a simulator. - sparc (sparclite, sparc64)
Manufacturer: Sun
Acronym stands for: Scalable Processor ARChitecture - tilegx, tilepro
Manufacturer: Mellanox - v850
Manufacturer: NEC - vax
Manufacturer: DEC - xtensa
Manufacturer: Tensilica - z/Architecture (S/390)
Manufacturer: IBM
z/Architecture Principles of Operation
ESA/390 Principles of Operation
Linux for z Systems ABI
Linux for S/390 ABI
Collected Papers/Sites on Standards, Compilers, Optimization, Etc.
C information
- C standards information:
- Sequence point rules in C:
- C historical information:
- The Development of the C Language, by Dennis M. Ritchie (also inPDF).
C++ information
- ISO Committee homepage (defects list, etc)
- STLport homepage
- Template Numeric Toolkit
- The Boost C++ Libraries
- Internet sites for C++ users
- Nathan Myers' locale page
- Nicolai Josuttis' Standard Library book
Fortran information
- Fortran standards information:
- Fortran standards committee (includes references to the current draft of the Fortran standard)
- FORTRAN 77 Standard
- Testing and Validation - Some packages aimed at Fortran compiler validation.
- The g77 testsuite (which is part of GCC).
- Test suite offtnchek, included in its distribution. It contains some illegal code and therefore makes it possible to stress the compiler error handling.
- Checking properties of the compiler and the run-time environment by Arjen Markus (source provided).
- gdbf95 testsuite.
- Tests of run-time checking capabilities
* Polyhedron tests
- Other resources:
- Michel Olagnon's Fortran 90 List contains a "Tests and Benchmarks" section mentioning commercial testsuites.
- Complying with Fortran 90, How does the current crop of Fortran 90 compilers measure up to the standard?, Steven Baker, Dr Dobb's, January 1995. It described the results of several commercial testsuites.
- Historical material - for your enjoyment.
Ada information
- Ada standards information:
- WG9 (Ada standards committee):
* Ada Issues - List of Ada standards (Ada Information Clearinghouse):
* Annotated Ada 2005 Reference Manual
* Ada 2005 Reference Manual
* Ada 2005 Rationale
* Annotated Ada 95 Reference Manual
* Ada 95 Reference Manual
* Ada 95 Rationale
* Ada 83 Reference Manual
* Ada 83 Rationale
- WG9 (Ada standards committee):
- Related standards:
- Compiler validation:
- Other resources:
Go information
D information
Modula 2 information
- Programming in Modula-2 (Edition 2)
- Programming in Modula-2 (Edition 4)
- ISO Modula-2 standards (base language, OO and generic language extensions)
Modula 3 information
Miscellaneous information
- What Every Computer Scientist Should Know about Floating-Point Arithmetic by David Goldberg, including Doug Priest's supplement (PDF format)
- Differences Among IEEE 754 Implementations by Doug Priest (included in the PostScript-format document above)
- IEEE 754r, an ongoing revision to the IEEE 754 floating point standard.
- IBM Journal of Research and Development
- System V PowerPC ABI
- DWARF Workgroup
- Links related to many compiler topics
- comp.compilers archive
- Steven Muchnick (1997) "Advanced Compiler Design and Implementation". 880pp. ISBN: 1-55860-320-4.
- Robert Morgan (1998) "Building an Optimizing Compiler". 300pp. ISBN: 1-55558-179-X.
- The Open Group has quite a bit on POSIX and friends.
- Unicode and Unicode Normalization Forms.
Chip Documentation of Obsolete Ports
Below is the list of ports that GCC used to support.
- a29k
Manufacturer: AMD - clipper
Manufacturer: Intergraph
Exact machine name: CLIPPER - convex (c1, c2, c3[248])
Manufacturer: Convex (HP) - d30v
Manufacturer: Mitsubishi
There is no longer any reference to this chip anywhere on the manufacturer's web site; it may be dead.
GDB includes a simulator. - dsp16xx
Manufacturer: AT&T - m88k
Manufacturer: Motorola - mn10200
Manufacturer: Matsushita
GDB includes a simulator. - pj (picoJava)
Manufacturer: Sun - romp
Manufacturer: IBM
Acronym stands for: Research/Office Products MicroProcessor
The ROMP was the processor inside the IBM PC/RT.