This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 01/10] Add vectorized getenv for glibc use


On Fri, May 17, 2013 at 05:48:54PM +0200, Andi Kleen wrote:
> On Fri, May 17, 2013 at 09:37:51AM +0200, OndÅej BÃlka wrote:
> > On Thu, May 16, 2013 at 07:12:46PM -0700, Andi Kleen wrote:
> > > From: Andi Kleen <ak@linux.intel.com>
> > > 
> > > This adds a general "vectorized getenv" for glibc internal use.
> > > The motivation is to allow subsystems to access environment variables
> > > cheaply without having to rescan the environment completely.
> > > 
> > 
> > > +      if (__builtin_expect ((*current)[0] == 'G', 0)
> > > +	  && (*current)[1] == 'L' && (*current)[2] == 'I'
> > > +	  && (*current)[3] == 'B' && (*current)[4] == 'C'
> > > +	  && (*current)[5] == '_')
> > This pattern repeats few times. A memcmp(current,"GLIBC",5) is shorter.
> 
> Just copied this from the dynamic linker.
> 
> Don't really care about "short" just that the first character 
> comparison is fast. In principle this could be all vectorized
> too at least on x86 to compare 32 or 64bits, but I was slightly
> worried about overrunning the end.
> 
> If you want to fix it I think it should be a indepdendent followup all over
> the tree. Most likely it would be a candidate for coccinelle script.
> 
I learned about nice tool, thanks.

> So I'll just leave it as is for now.
> 
I will leave it and post followup.

Ondra.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]