git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v7 0/1] refs.c: SSE4.2 optimizations for check_refname_component

From
David Turner <dturner@twopensource.com>
Date
Jun 9, 2014, 22:39 UTC
Message-ID
<1402353543.18134.203.camel@stross>
In-Reply-To
<xmqqfvjdenk5.fsf@gitster.dls.corp.google.com>
On Mon, 2014-06-09 at 15:16 -0700, Junio C Hamano wrote:
Show 13 quoted lines
> David Turner <dturner@twopensource.com> writes:
> 
> > Since Junio has picked up the first patch from previous versions of
> > this series, I'm just going to send the second (SSE) one.  I decided
> > not to s/NO_SSE42/!HAVE_SSE42/ because it looks like git mostly uses
> > the former convention (for instance, that's what GIT_PARSE_WITH
> > generates).
> 
> Yeah but NO_FROTZ is used only when FROTZ is something everybody is
> expected to have (e.g. it's in posix, people ought to have it, but
> we do support those who don't), isn't it?  For a very arch specific
> stuff like sse42, I'd feel better to make it purely opt-in by
> forcing people to explicitly say HAVE_SSE42 to enable it.
The patch now has two kinds of autodetection:
1. At build-time, we check for the compiler supporting -msse4.2.  If it
does, and if the user has not explicitly done --without-sse, then we
build with SSE support.  This does not mean that the SSE code will
necessarily be used because:
2. At run-time, if we have built with SSE support, we check cpuid to
choose a version of the function that will run on the current CPU.

So I think we never hit a case where we try to use SSE and fail, which is the major reason I see to make it non-default.

To me, this means that we should not require people to explicitly request SSE, because we generally want to try to provide the most-efficient version of git that will work everywhere. In fact, I am not sure we need a --without-sse option at all, since all it saves is a cpuid instruction. But I don't need to remove the option, in case there's a use for it I'm not thinking of.

Previous: Junio C HamanoNext: Junio C Hamano
Message 6 of 12 in “refs.c: SSE4.2 optimizations for check_refname_component”
  1. 0/1 refs.c: SSE4.2 optimizations for check_refname_componentDavid Turner, Jun 5, 2014
  2. 1/1 refs.c: SSE4.2 optimizations for check_refname_componentDavid Turner, Jun 5, 2014
  3. Ondřej BílkaJun 14, 2014
  4. David TurnerJun 15, 2014
  5. Junio C HamanoJun 9, 2014
  6. David TurnerJun 9, 2014
  7. Junio C HamanoJun 9, 2014
  8. Johannes SixtJun 10, 2014
  9. Junio C HamanoJun 10, 2014
  10. David TurnerJun 13, 2014
  11. Torsten BögershausenJun 13, 2014
  12. Philip OakleyJun 14, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.