public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "tbptbp at gmail dot com" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug target/21195] SSE intrinsics not inlined, sometimes. Date: Thu, 05 May 2005 23:58:00 -0000 [thread overview] Message-ID: <20050505235835.17436.qmail@sourceware.org> (raw) In-Reply-To: <20050424180253.21195.tbptbp@gmail.com> ------- Additional Comments From tbptbp at gmail dot com 2005-05-05 23:58 ------- For future reference, i'm including my end-user offline answer to Uros regarding always_inline usage. Here we go: > I was trying to take a quick look at your bugreport regarding > always_inline attrubite. Just a quick remark - using only a plain static > inline bool .... fixes the problem for me and at -O3 code looks like it Doesn't surprise me. > should. Is there a specific reason to have an attribute always_inline > declared for the function you would like to inline? (Please note, that > Jan Hubicka is currently working in this area.) Yes, because inline alone in practice is next to useless. You say below that reg<->mem movements are expensive, but my prime concern in a hot path is branches. And if you expect code to be inlined (or more precisely, you expect no function call) then you have no alternative but to use always_inline. Tho once you start using always_inline you upset the compiler and you step in a world of pain where you have to babysit it for dependant code with combo of always_inline/noinline. In fact, always_inline/noinline combo are the only kludge for a number of other problems: . when gcc gets nuts, they are useful containement measures (so the sillyness doesn't propagate) . as said earlier inline being an (ignored) hint, if you have, say a member function doing just one op (like those intrinsics in the testcase), it makes absolutely no sense to not inline them. Ever. Yet some times it happens. . gcc doesn't like long sequences of branchless vectorized code, which are quite common, and a static always_inline function is a way to tell it to look somewhere else. . those same static always_inline functions also are a way to tell it to look closer at some code portion and to try to map its working set into registers; it also has to do with the lack of an unroll pragma and generally the lack of any directive to tell the compiler to pay special attention to specific code. So in the hotpath my code typically ends up being a bunch of always_inline functions coalesced into a noinline. For the non speed critical path, i let it up to the compiler. In that regard, gcc4.x (and specifically gcc4.1) got a lot wiser, perhaps as good as icc, but obviously not failproof :) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21195
next prev parent reply other threads:[~2005-05-05 23:58 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2005-04-24 18:03 [Bug other/21195] New: " tbptbp at gmail dot com 2005-04-24 18:05 ` [Bug target/21195] " pinskia at gcc dot gnu dot org 2005-04-25 4:15 ` pinskia at gcc dot gnu dot org 2005-04-26 12:47 ` tbptbp at gmail dot com 2005-04-26 13:26 ` pinskia at gcc dot gnu dot org 2005-04-26 14:29 ` tbptbp at gmail dot com 2005-05-05 23:58 ` tbptbp at gmail dot com [this message] 2005-06-14 8:55 ` steven at gcc dot gnu dot org 2005-06-29 16:50 ` stuart at apple dot com 2005-07-21 8:35 ` uros at kss-loka dot si
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20050505235835.17436.qmail@sourceware.org \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).