Information about the Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Time to Compile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Subprocess Switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Verbose Compiler Debugging Information . . . . . . . . . . . . . 366
Information about Files and Directories . . . . . . . . . . . . . . . . . . . . . . . 370
19 Implementing a Language . . . . . . . . . . . . . . . . . . . . . . . . 371
From Front to Back . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
Lexical Scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
A Simple Lex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
Lex with Regular Expressions . . . . . . . . . . . . . . . . . . . . . . . . 374
Parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Creating the Parse Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Connecting the Back to the Front . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
20 Register Transfer Language . . . . . . . . . . . . . . . . . . . . . . . 387
RTL Insns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
The Six Fundamental Expression Codes . . . . . . . . . . . . . . . 388
The Type and Content of Insns . . . . . . . . . . . . . . . . . . . . . . . 388
Modes and Mode Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
21 Machine-Specific Compiler Options . . . . . . . . . . . . . . . . 419
The Machine List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
The GCC Command-Line Options . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Alpha Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Alpha/VMS Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
ARC Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
ARM Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
AVR Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
CRIS Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
D30V Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
H8/300 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
HPPA Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
IA-64 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
Intel 386 and AMD x86-64 Options . . . . . . . . . . . . . . . . . . . . 441
Intel 960 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
M32R/D Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
M680x0 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
M68HClx Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
M88K Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
MCore Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
MIPS Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Contents
xvii