[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