From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: Taylor Blau <me@ttaylorr.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH] block-sha1: remove use of assembly
Date: Tue, 8 Mar 2022 02:20:37 +0000 [thread overview]
Message-ID: <Yia9dQ32uYCCpIsm@camp.crustytoothpaste.net> (raw)
In-Reply-To: <YiaWGrBNuk1+j89z@nand.local>
[-- Attachment #1: Type: text/plain, Size: 1866 bytes --]
On 2022-03-07 at 23:32:42, Taylor Blau wrote:
> On Mon, Mar 07, 2022 at 11:25:52PM +0000, brian m. carlson wrote:
> > In the block SHA-1 code, we have special assembly code for i386 and
> > amd64 to perform rotations with assembly. This is supposed to help pick
> > the correct rotation operation depending on which rotation is smaller,
> > which can help some systems perform slightly better, since any circular
> > rotation can be specified as either a rotate left or a rotate right.
> > However, this isn't needed, so we should remove it.
>
> At -O1 or higher (at least on GCC) this optimization is indeed
> performed. Here's a Godbolt example that shows this:
>
> https://godbolt.org/z/9zMP93hr1
>
> so I agree that this code isn't helping us at all. And in the
> meantime...
Thanks for providing a link. I also did a similar test there with
slightly different code (and unfortunately closed the window before
saving the link) but it demonstrated the same thing: that the compiler
can optimize this case adequately. My (substantially) past experience
with testing GCC in this case has shown the same thing.
> > The downside of using this code, however, is that it uses a GCC
> > extension, which makes the compiler complain when using -pedantic unless
> > it's prefixed with __extension__. We could fix that, but since it's
> > not needed, let's just remove it. We haven't noticed this because
> > almost everyone uses the SHA1DC code instead, but it still shows up for
> > some people.
>
> ...it makes it impossible to compile git if you have
> `BLK_SHA1=YesPlease` and `DEVELOPER=1` in your environment. So I am
> happy to see this go.
>
> On another note: missing Signed-off-by?
I'll send an otherwise unchanged v2 with that in a second.
--
brian m. carlson (he/him or they/them)
Toronto, Ontario, CA
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 262 bytes --]
next prev parent reply other threads:[~2022-03-08 2:20 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-07 23:25 [PATCH] block-sha1: remove use of assembly brian m. carlson
2022-03-07 23:32 ` Taylor Blau
2022-03-08 2:20 ` brian m. carlson [this message]
2022-03-08 2:22 ` [PATCH v2] " brian m. carlson
2022-03-08 13:38 ` Ævar Arnfjörð Bjarmason
2022-03-09 22:10 ` brian m. carlson
2022-03-09 22:32 ` Taylor Blau
2022-03-09 23:52 ` Ævar Arnfjörð Bjarmason
2022-03-10 1:59 ` Carlo Marcelo Arenas Belón
2022-03-10 2:34 ` Taylor Blau
2022-03-10 17:47 ` [PATCH v3] block-sha1: remove use of obsolete x86 assembly brian m. carlson
2022-03-10 19:18 ` Junio C Hamano
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=Yia9dQ32uYCCpIsm@camp.crustytoothpaste.net \
--to=sandals@crustytoothpaste.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=me@ttaylorr.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.