tech@mandoc.bsd.lv
 help / color / mirror / Atom feed
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

  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).