More builtins and optimizations for stdio.h, string.h and old
BSD functions, as well as for ISO C99 functions.
New builtin __builtin_expect for giving hints to the branch
predictor.
New Languages and Language specific improvements
The GNU Compiler for the Java(TM) language (GCJ)
is now integrated and supported, including the run-time library
containing most common non-GUI Java classes, a bytecode interpreter,
and the Boehm conservative garbage collector.
Many bugs have been fixed.
GCJ can compile Java source or Java bytecodes to either native code
or Java class files, and supports native methods written in either
the standard JNI or the more efficient and convenient CNI.
Rewritten C preprocessor, integrated into the C, C++ and
Objective C compilers, with very many improvements including
ISO C99 support and improvements to dependency
generation.
Many improvements to support for checking calls to format
functions such as printf and scanf,
including support for ISO C99 format features, extensions from
the Single Unix Specification and GNU libc 2.2, checking of
strfmon formats and features to assist in
auditing for format string security bugs.
New warnings for C code that may have undefined semantics
because of violations of sequence point rules in the C
standard (such as a = a++;, a[n] =
b[n++]; and a[i++] = i;), included in
-Wall.
Support for a generic i386-elf target contributed.
New option to emit x86 assembly code using Intel style syntax
(-mintel-syntax).
HPUX 11 support contributed.
Improved PowerPC code generation, including scheduled
prologue and epilogue.
Port of GCC to Intel's IA-64 processor contributed.
Port of GCC to Motorola's MCore 210 and 340 contributed.
New unified back-end for Arm, Thumb and StrongArm contributed.
Port of GCC to Intel's XScale processor contributed.
Port of GCC to Atmel's AVR microcontrollers contributed.
Port of GCC to Mitsubishi's D30V processor contributed.
Port of GCC to Matsushita's AM33 processor (a member
of the MN10300 processor family) contributed.
Port of GCC to Fujitsu's FR30 processor contributed.
Port of GCC to Motorola's 68HC11 and 68HC12 processors
contributed.
Port of GCC to Sun's picoJava processor core contributed.
Documentation improvements
Substantially rewritten and improved C preprocessor
manual.
Many improvements to other documentation.
Manpages for gcc, cpp and
gcov are now generated automatically from the
master Texinfo manual, eliminating the problem of manpages
being out of date. (The generated manpages are only extracts
from the full manual, which is provided in Texinfo form, from
which info, HTML, other formats and a printed manual can be
generated.)
Generated info files are included in the release tarballs
alongside their Texinfo sources, avoiding problems on some
platforms with building makeinfo as part of the
GCC distribution.
Other significant improvements
Garbage collection used internally by the compiler for most memory
allocation instead of obstacks.
Lengauer and Tarjan algorithm used for computing dominators in
the CFG. This algorithm can be significantly faster and more
space efficient than our older algorithm.
gccbug script provided to assist in submitting
bug reports to our bug tracking system. (Bug reports previously
submitted directly to our mailing lists, for which you received
no bug tracking number, should be submitted again using
gccbug if you can reproduce the problem with GCC 3.0.)
Extensive testsuite included with GCC, with many new
tests. In addition to tests for GCC bugs that have been
fixed, many tests have been added for language features,
compiler warnings and builtin functions.
Additional language-independent warning options
-Wpacked, -Wpadded,
-Wunreachable-code and
-Wdisabled-optimization.
Target-independent options -falign-functions,
-falign-loops and -falign-jumps.