From: Jiri Slaby <jirislaby@gmail.com>
To: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: "Robert P. J. Day" <rpjday@crashcourse.ca>,
Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org, andi@firstfloor.org
Subject: Re: [PATCH] Make shr to divide by power of 2 (resend)
Date: Sat, 15 Aug 2009 22:42:23 +0200 [thread overview]
Message-ID: <4A871DAF.10609@gmail.com> (raw)
In-Reply-To: <20090815141212.GA7692@localdomain.by>
On 08/15/2009 04:12 PM, Sergey Senozhatsky wrote:
> On (08/15/09 09:49), Robert P. J. Day wrote:
>> Date: Sat, 15 Aug 2009 09:49:15 -0400 (EDT)
>> From: "Robert P. J. Day" <rpjday@crashcourse.ca>
>> To: Jiri Slaby <jirislaby@gmail.com>
>> cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
>> Andrew Morton <akpm@linux-foundation.org>,
>> linux-kernel@vger.kernel.org
>> Subject: Re: [PATCH] Make shr to divide by power of 2 (resend)
>> User-Agent: Alpine 2.00 (LFD 1167 2008-08-23)
>>
>> On Sat, 15 Aug 2009, Jiri Slaby wrote:
>>
>>> On 08/15/2009 03:43 PM, Sergey Senozhatsky wrote:
>>>> Make an arithmetic right shift to divide by power of 2.
>>>
>>> Why? Is out there a compiler not doing that?
>>>
>>> Seems like it should be rather converted to DIV_ROUND_UP.
>>>
>
>
> It was duscussed, so I'll just copy paste my answer.
> On (08/08/09 09:35), Andi Kleen wrote:
>> DIV should be always slower than a SHIFT.
>>
>> But it has nothing really to do with the CPU. The point is that the compiler
>> always selects a suitable one by itself. Rewriting x / 2 to x >> 1 is
>> one of the easiest exercises in compiler optimizations.
>>
>> The only case when the compiler cannot do this easily by itself is
>> when the dividend is not a constant.
I think Andi (Cced again) meant divisor. When a divisor is constant, you
can always transform division to some of subs/adds/muls/shifts.
> int width = (vc->vc_font.width + 7) >> 3;
>
>> That said -Os sometimes screws us up on this, but it's still not worth
>> doing this change manually.
>>
>
> My point is that it should 'look the same'.
> I mean there are 5
> int width = (vc->vc_font.width + 7) >> 3;
> *not exactly this one, but vc->vc_font.width (+ 7)? >> 3
>
> and _only_ one
> int width = (vc->vc_font.width + 7) / 8;
>
>
>> it does seem like a DIV_ROUND_UP would be better but perhaps another
>> solution would be to define a meaningful macro name for that
>> operation. if that conversion is going to be done regularly, a macro
>> with an informative name might be in order. if it's a one-shot
>> operation, though, not much point.
>>
>
> No, it's not a one-shot.
>
> grep -c '>>' bitblit.c
> 7
Then please use DIV_ROUND_UP macro (or whatever alias) all over the place.
next prev parent reply other threads:[~2009-08-15 20:42 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-15 13:43 [PATCH] Make shr to divide by power of 2 (resend) Sergey Senozhatsky
2009-08-15 13:48 ` Jiri Slaby
2009-08-15 13:49 ` Robert P. J. Day
2009-08-15 14:12 ` Sergey Senozhatsky
2009-08-15 20:42 ` Jiri Slaby [this message]
2009-08-16 9:14 ` Sergey Senozhatsky
2009-08-17 7:15 ` Jiri Slaby
2009-08-17 7:31 ` Sergey Senozhatsky
2009-08-17 7:48 ` [PATCH 1/1] VIDEO: console, use DIV_ROUND_UP Jiri Slaby
2009-08-17 8:00 ` Sergey Senozhatsky
2009-08-17 8:00 ` Jiri Slaby
2009-08-17 8:08 ` Sergey Senozhatsky
2009-08-17 8:11 ` Jiri Slaby
2009-08-15 14:26 ` [PATCH] Make shr to divide by power of 2 (resend) Sergey Senozhatsky
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=4A871DAF.10609@gmail.com \
--to=jirislaby@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rpjday@crashcourse.ca \
--cc=sergey.senozhatsky@gmail.com \
/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 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.