From: Ingo Schwarze <schwarze@usta.de>
To: tech@mdocml.bsd.lv
Subject: Re: roff.c question
Date: Fri, 10 Dec 2010 22:10:20 +0100 [thread overview]
Message-ID: <20101210211020.GC18607@iris.usta.de> (raw)
In-Reply-To: <20101210205203.GA30244@britannica.bec.de>
Hi Joerg,
Joerg Sonnenberger wrote on Fri, Dec 10, 2010 at 09:52:03PM +0100:
> On Fri, Dec 10, 2010 at 09:45:13PM +0100, Ingo Schwarze wrote:
>> If we want to go into micro-optimization, we could do this:
>>
>> for (cp = *bufp + pos; *cp; cp++) {
>> if ('\\' != *cp)
>> continue;
> ... or use a single strchr() call to start the search.
Sure, that would be correct, and not even obfuscation.
> For the typical case of medium long lines and no \, strchr
> can operate mostly on dwords...
Here is our implementation of strchr():
char *
strchr(const char *p, int ch)
{
for (;; ++p) {
if (*p == ch)
return((char *)p);
if (!*p)
return((char *)NULL);
}
/* NOTREACHED */
}
You mean, the compiler will optimize that into dword
comparisons, but will not optimize this code:
for (cp = *bufp + pos; *cp; cp++) {
if ('\\' != *cp)
continue;
And the difference will buy us enough to warrant the extra
function call?
I doubt any of this is relevant, but i'm tempted to do some
measurements...
Yours,
Ingo
--
To unsubscribe send an email to tech+unsubscribe@mdocml.bsd.lv
next prev parent reply other threads:[~2010-12-10 21:10 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-01 16:33 exit_status persistence Kristaps Dzonsons
2010-12-01 16:41 ` Kristaps Dzonsons
2010-12-01 21:28 ` Ingo Schwarze
2010-12-02 10:51 ` exit_status persistence (now: roff.c question) Kristaps Dzonsons
2010-12-02 13:29 ` Kristaps Dzonsons
2010-12-02 22:50 ` roff.c question Ingo Schwarze
2010-12-03 21:49 ` Ingo Schwarze
2010-12-05 15:15 ` Kristaps Dzonsons
2010-12-08 1:05 ` Ingo Schwarze
2010-12-10 9:40 ` Kristaps Dzonsons
2010-12-10 20:45 ` Ingo Schwarze
2010-12-10 20:52 ` Joerg Sonnenberger
2010-12-10 21:10 ` Ingo Schwarze [this message]
2010-12-10 21:17 ` Joerg Sonnenberger
2010-12-10 23:12 ` Ingo Schwarze
2010-12-03 23:31 ` Ingo Schwarze
2010-12-05 15:17 ` Kristaps Dzonsons
2010-12-09 23:45 ` Ingo Schwarze
2010-12-10 9:32 ` Kristaps Dzonsons
2010-12-02 20:54 ` Ingo Schwarze
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=20101210211020.GC18607@iris.usta.de \
--to=schwarze@usta.de \
--cc=tech@mdocml.bsd.lv \
/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.
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 NNTP newsgroup(s).