powerpc-*-netbsd*
.-fprefetch-loop-arrays
has been fixed. Previously the
optimization prefetched random blocks of memory for most targets except for
i386.mips*-*-netbsd*
.mips*-*-netbsd*
.-traditional
C compiler option has been
deprecated and will be removed in GCC 3.3. (It remains possible to
preprocess non-C code with the traditional preprocessor.)Jan Hubicka, SuSE Labs, together with Richard Henderson, Red Hat, and Andreas Jaeger, SuSE Labs, has contributed infrastructure for profile driven optimizations.
Options -fprofile-arcs
and
-fbranch-probabilities
can now be used to improve speed of
the generated code by profiling the actual program behaviour on typical
runs. In the absence of profile info the compiler attempts to guess the
profile statically.
SPEC2000 and SPEC95 benchmark suites are now used daily to monitor performance of the generated code.
According to the SPECInt2000 results on an AMD Athlon CPU, the code
generated by GCC 3.1 is 6% faster on the average (8.2% faster with
profile feedback) compared to GCC 3.0. The code produced by GCC 3.0 is
about 2.1% faster compared to 2.95.3. Tests were done using the
-O2 -march=athlon
command-line options.
__builtin_prefetch
intrinsic is available to explicitly insert prefetch instructions and
experimental support for loop array prefetching has been added (see
-fprefetch-loop-array
documentation).
-g3
.
-fhonor-std
and -fno-honor-std
have been
removed. -fno-honor-std
was a workaround to allow std
compliant code to work with the non-std compliant libstdc++-v2.
libstdc++-v3 is std compliant.void (A::*)() const
is
mangled as "M1AKFvvE", rather than "MK1AFvvE" as before. This change
only affects pointer to cv-qualified member function types.The C++ ABI has been changed to correctly handle this code:
struct A { void operator delete[] (void *, size_t); }; struct B : public A { }; new B[10];
The amount of storage allocated for the array will be greater than
it was in 3.0, in order to store the number of elements in the
array, so that the correct size can be passed to
operator delete[]
when the array is deleted. Previously,
the value passed to operator delete[]
was unpredictable.
This change will only affect code that declares a two-argument
operator delete[]
with a second parameter of type
size_t
in a base class, and does not override that
definition in a derived class.
The C++ ABI has been changed so that:
struct A { void operator delete[] (void *, size_t); void operator delete[] (void *); };
does not cause unnecessary storage to be allocated when an array of
A
objects is allocated.
This change will only affect code that declares both of these
forms of operator delete[]
, and declared the two-argument
form before the one-argument form.
G++ now supports the "named return value optimization": for code like
A f () { A a; ... return a; }
G++ will allocate a
in the return value slot, so that the
return becomes a no-op. For this to work, all return statements in the
function must return the same variable.
Improvements to the C++ library are listed in the libstdc++-v3 FAQ.
java.lang.ref.*
,
javax.naming
, and javax.transaction
.gcj --resource
feature.Math.cos
.--no-store-checks
optimization option was added.
This can be used to omit runtime store checks for code which is known
not to throw ArrayStoreException
org.w3c.dom
and org.xml.sax
.java.security
has been merged with GNU
Classpath. The new package is now JDK 1.2 compliant, and much
more complete.java.lang.Character
was rewritten to comply with
the Unicode 3.0 standard, and improve performance.Fortran improvements are listed in the Fortran documentation.
AdaCore, has contributed its GNAT Ada 95 front end and associated tools. The GNAT compiler fully implements the Ada language as defined by the ISO/IEC 8652 standard.
Please note that the integration of the Ada front end is still work in progress.
-m64
enables it.#pragma
redefine_extname
has been implemented on Solaris.-mmmx
, -m3dnow
, -msse
,
and -msse2
will enable the respective instruction sets.
Intel C++ compatible MMX/3DNow!/SSE intrinsics are implemented. SSE2
intrinsics will be added in next major release.-march=
and
-mcpu=
options for details.-mfpmath=sse
will cause the compiler to generate SSE/SSE2 instructions for
floating point math instead of x87 instructions. Usually, this
will lead to quicker code — especially on the Pentium
4. Note that only scalar floating point instructions are used
and GCC does not exploit SIMD features yet.-maltivec
.Support for a number of older systems has been declared obsolete in GCC 3.1. Unless there is activity to revive them, the next release of GCC will have their sources permanently removed.
All configurations of the following processor architectures have been declared obsolete:
1750a-*-*
a29k-*-*
c*-convex-*
clipper-*-*
elxsi-*-*
i860-*-*
pj-*-*
and pjl-*-*
we32k-*-*
Most configurations of the following processor architectures have been declared obsolete, but we are preserving a few systems which may have active developers. It is unlikely that the remaining systems will survive much longer unless we see definite signs of port activity.
m88k-*-aout*
m88k-*-sysv4
m88k-*-openbsd*
ns32k-*-netbsd*
ns32k-*-openbsd*
.romp-*-openbsd*
.Finally, only some configurations of these processor architectures are being obsoleted.
alpha*-*-osf[123]*
.
(Digital Unix and Tru64 Unix, aka alpha*-*-osf[45]
,
are still supported.)arm-*-riscix*
.i?86-*-bsd*
i?86-*-chorusos*
i?86-*-dgux*
i?86-*-freebsd1.*
i?86-*-aix*
i?86-*-isc*
i?86-*-linux*oldld*
i?86-next-*
i?86-*-osf1*
and
i?86-*-osfrose*
i?86-*-rtemscoff*
i?86-go32-rtems*
i?86-sequent-bsd*
i?86-sequent-ptx[12]*
and
i?86-sequent-sysv3*
i?86-*-sunos*
m68[k0]*-altos-*
m68[k0]*-apollo-*
m68[k0]*-apple-*
m68[k0]*-bull-*
m68[k0]*-convergent-*
m68[k0]*-*-sysv3*
m68[k0]*-isi-*
m68[k0]*-*-lynxos*
m68[k0]*-next-*
m68[k0]*-*-rtemscoff*
m68[k0]*-sony-*
mips-*-ultrix*
and
mips-dec-*
mips-*-bsd*
mips-*-sysv*
mips-sgi-irix[1234]*
mips-*-riscos*
mips-sony-*
mips-tandem-*
sparc-*-rtemsaout*
.Copyright (C) Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
These pages are maintained by the GCC team. Last modified 2022-10-26.