acos
, acosh
,
asin
, asinh
, atan
,
atan2
, atanh
, cbrt
,
cos
, cosh
, erf
,
erfc
, exp
, exp10
,
exp2
, expm1
, fdim
,
fma
, fmax
, fmin
,
hypot
, log
, log10
,
log1p
, log2
, pow
,
pow10
, sin
, sincos
,
sinh
, tan
, tanh
and
tgamma
. The float
and long
double
variants of these functions (e.g. sinf
and sinl
) are also handled. The sqrt
and cabs
functions with constant arguments were
already optimized in prior GCC releases. Now they also use MPFR. -frecord-gcc-switches
has been
added to GCC, although it is only enabled for some targets. The switch
causes the command line that was used to invoke the compiler to be recorded
into the object file that is being created. The exact format of this
recording is target and binary file format dependent, but it usually takes
the form of a note section containing ASCII text. The switch is related to
the -fverbose-asm
switch, but that one only records the
information in the assembler output file as comments, so the information
never reaches the object file.
--param large-stack-frame
and --param large-stack-frame-growth
can be used to limit stack frame size growth caused by inlining.memcpy
, memset
and bzero
functions operate on is discovered and for cases of commonly used small
sizes, specialized inline code is generated.__builtin_expect
no longer requires its argument to be
a compile time constant.int
may not be implicitly converted to a vector
type with element type unsigned int
.)
This restriction, which is in line with specifications for SIMD
architectures such as AltiVec, may be relaxed using the
flag -flax-vector-conversions
.
This flag is intended only as a compatibility measure and should not
be used for new code.
-Warray-bounds
has been added and is now enabled by
default for -Wall
. It produces warnings for array
subscripts that can be determined at compile time to be always
out of bounds. -Wno-array-bounds
will disable the
warning.
constructor
and destructor
function
attributes now accept optional priority arguments which control
the order in which the constructor and destructor functions are
run.
-std=c++0x
or -std=gnu++0x
compiler
options. The following C++0x features are enabled by this
experimental mode:
-Wc++0x-compat
has been added and is now enabled by
default for -Wall
. It produces warnings for constructs
whose meaning differs between ISO C++ 1998 and C++0x.-Wparentheses
option now works for C++ as it
does for C. It warns if parentheses are omitted when operators with
confusing precedence are nested. It also warns about ambiguous else
statements. Since -Wparentheses
is enabled by
-Wall
, this may cause additional warnings with existing
C++ code which uses -Wall
. These new warnings may be
disabled by using -Wall -Wno-parentheses
.-Wmissing-declarations
now works for C++ as it
does for C.
-fexternal-blas
option has been added, which
generates calls to BLAS routines for intrinsic matrix operations such
as matmul
rather than using the built-in algorithms.VOLATILE
and IMPORT
ISO_ENV_FORTRAN
jv-scan
tool has been
removed. gcjh
has been replaced by the new
gjavah
, which has similar functionality but
different command line options. grmic
and
grmiregistry
have been rewritten. The new tools
gjar
, gjarsigner
,
gkeytool
, gorbd
, grmid
,
gserialver
, and gtnameserv
are now
installed. -mtune=core2
and -march=core2
.-mtune=geode
and -march=geode
.memcpy
) and block set
(memset
) was rewritten. GCC can now pick the best
algorithm (loop, unrolled loop, instruction with rep
prefix or a library call) based on the size of the block being
copied and the CPU being optimized for. A new option
-minline-stringops-dynamically
has been added. With
this option string operations of unknown size are expanded such
that small blocks are copied by in-line code, while for
large blocks a library call is used. This results in faster code than
-minline-all-stringops
when the library implementation is
capable of using cache hierarchy hints. The heuristic choosing
the particular algorithm can be overwritten via
-mstringop-strategy
. Newly also memset
of
values different from 0 is inlined.cld
instruction before string
operations. Both i386 and x86-64 ABI documents mandate the direction
flag to be clear at the entry of a function. It is now invalid to
set the flag in asm
statement without reseting it
afterward.-mssse3
.The compiler's --help
command line option has
been extended so that it now takes an optional set of arguments.
These arguments restrict the information displayed to specific
classes of command line options, and possibly only a subset of
those options. It is also now possible to replace the descriptive
text associated with each displayed option with an indication of
its current value, or for binary options, whether it has been
enabled or disabled.
Here are some examples. The following will display all the options controlling warning messages:
--help=warnings
Whereas this will display all the undocumented, target specific options:
--help=target,undocumented
This sequence of commands will display the binary
optimizations that are enabled by -O3
:
gcc -c -Q -O3 --help=optimizers > /tmp/O3-opts gcc -c -Q -O2 --help=optimizers > /tmp/O2-opts diff /tmp/O2-opts /tmp/O3-opts | grep enabled
Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF.
These pages are maintained by the GCC team.
For questions related to the use of GCC, please consult these web pages and the GCC manuals. If that fails, the gcc-help@gcc.gnu.org mailing list might help.Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA.
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
Last modified 2007-02-26 |