Current GDC experience and questions
Artur Skawina
art.08.09 at gmail.com
Fri Mar 8 10:07:55 PST 2013
On 03/08/13 16:18, Iain Buclaw wrote:
> On 8 March 2013 14:36, Artur Skawina <art.08.09 at gmail.com <mailto:art.08.09 at gmail.com>> wrote:
>
> On 03/08/13 13:40, jerro wrote:
> >> I tried modifying some trivial sources, which were using only
> >> 'pragma(attribute, noinline)', but couldn't get them to work; the compiler keeps
> >> complaining, 'cc1d: error: unknown attribute noinline'.
> >> Is 'import gcc.attribute; @attribute("noinline") void f() {}' supposed to work?
> >
> > It isn't. When the syntax was changed to @attribute, all the gcc attributes were disabled. If I understood correctly, the reason was that those were only meant for internal GDC use. AFAIK, noinline was removed even before that.
> >
> > Iain did say something about adding supported attributes one by one as they are needed. So I guess you need to talk to him about adding noinline.
>
> I need them all. If D is to be an alternative to C/C++ it must support everything
> that's already available for those languages.
>
>
> Yet not all attributes that GCC offers actually make sense to have in D. We certainly need to have a review of each one and discuss what is most important to have. Also defining our own unique attributes along the way. :o)
A missing attribute is a blocker. For example I've since tried to get my program
to build using the gcc47 branch, just to see how much performance is lost w/o LTO.
Only to see pages of "'flatten|always_inline|noinline' attribute directive ignored"
warnings... The resulting binary is *three times slower* and 50% larger than one
built with the old compiler (caused mostly by the lack of inlining, the LTO impact
should be much smaller). So I can't really upgrade.
> In the specific case i tested with i need @flatten to get decent performance, and
> @noinline to have compile times measured in minutes and not hours (literally, as
> @flatten can otherwise result in practically infinite recursive inlining).
>
> artur
>
>
>
> Raise a bug report to get those added so no one forgets.
Done. I should have probably also mentioned "always_inline", which isn't as critical,
but still very useful.
artur
More information about the D.gnu
mailing list