From: Eli Zaretskii <eliz@gnu.org>
To: Paul Eggert <eggert@cs.ucla.edu>
Cc: 12541@debbugs.gnu.org
Subject: bug#12541: Prefer plain 'static' to 'static inline'.
Date: Sun, 30 Sep 2012 20:33:04 +0200 [thread overview]
Message-ID: <83y5jrcqe7.fsf@gnu.org> (raw)
In-Reply-To: <50688861.2090306@cs.ucla.edu>
> Date: Sun, 30 Sep 2012 10:58:57 -0700
> From: Paul Eggert <eggert@cs.ucla.edu>
> CC: 12541@debbugs.gnu.org
>
> On my platform (GCC 4.7.2 -O3, x86-64, Fedora 17, trunk bzr 110287)
> GCC does not always inline 'bidi_char_at_pos': in a couple of cases
> the function is only partly inlined.
Is this so with either 'static inline' or with 'static'? More
generally, is there any difference, in terms of generated code, that
you see between using and not using 'inline' for these functions?
If you don't see any difference, I guess modern platforms are fast
enough to make non-inlined versions fast enough, or else people would
have complained long ago.
> With the proposed change, the set of functions that are not always
> inlined expands to bidi_cache_iterator_state, bidi_char_at_pos, and
> bidi_fetch_char, and (if we also include functions that are partially
> inlined) bidi_cache_search and bidi_get_type.
Were they also not inlined before the change?
> I don't offhand see how this would slow down Emacs significantly,
> as these functions are fairly large.
They are in the innermost loops of the display engine. They are
called whenever the display engine needs to examine the next character
for display.
> Is there some benchmark I could try out, to see the performance
> effects that are of concern here?
My old benchmark was to run the reordering engine, as a stand-alone
program, on a large text file. But that was long ago (10 years), so
perhaps my conclusions from those runs are no longer valid.
next prev parent reply other threads:[~2012-09-30 18:33 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-30 8:00 bug#12541: Prefer plain 'static' to 'static inline' Paul Eggert
2012-09-30 9:49 ` Eli Zaretskii
2012-09-30 14:18 ` Jason Rumney
2012-09-30 15:57 ` Eli Zaretskii
2012-09-30 17:58 ` Paul Eggert
2012-09-30 18:33 ` Eli Zaretskii [this message]
2012-09-30 18:48 ` Paul Eggert
2012-10-01 6:38 ` Paul Eggert
2012-10-01 17:14 ` Eli Zaretskii
2012-10-02 7:00 ` Paul Eggert
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=83y5jrcqe7.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=12541@debbugs.gnu.org \
--cc=eggert@cs.ucla.edu \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.