[PATCH] Fix bootstrap issues with C++
Joseph S. Myers
joseph@codesourcery.com
Sun Jun 6 10:55:00 GMT 2010
On Sat, 5 Jun 2010, Gabriel Dos Reis wrote:
> Isn't it the case that designated initializers aren't part of ISO C90, which
> is what we currently require as a bootstrapping compiler?
Yes, they are something used optionally for performance, rather than
required. Similarly, various built-in functions such as __builtin_expect
and __builtin_clz are also used optionally for performance. (It's
recently been noticed that unfortunately unconditional uses of variadic
macros - which are in C99 and C++0x but not C90 or C++98 - had crept in,
though that feature was also meant to be used optionally only; PR 44426.)
For the use of designated initializers for optabs initialization, there is
a 5% startup performance improvement measured in
<http://gcc.gnu.org/ml/gcc-patches/2007-11/msg00266.html>, although that
is (I think) for that patch as a whole rather than isolating the effect of
designated initializers. Most of the other microoptimizations (not just
designated initializers, but built-in functions etc. as well) probably
don't have performance measurements, though the change in data size
associated with the use of a union rather than a struct in struct
insn_data is obvious (whether or not significant).
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Gcc-patches
mailing list