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: Consistently use page_shift in sysdeps/unix/sysv/linux/mmap64.c


On Tue, 2013-07-02 at 12:52 +0000, Joseph S. Myers wrote:
> On Tue, 2 Jul 2013, Andreas Schwab wrote:
> 
> > "Joseph S. Myers" <joseph@codesourcery.com> writes:
> > 
> > > +      page_shift = __ffs (page_size) - 1;
> > 
> > This has the effect of using a function call instead of the builtin ffs.
> 
> True, but not in any way specific to this patch.  Rather, this is just one 
> instance of the general issue of the right way to call functions within 
> glibc such that both (a) any applicable compiler optimizations are applied 
> and (b) if a particular call does fall back to calling a function, that 
> function call is namespace-clean.  It doesn't make sense to do something 
> special for one particular __ffs call; any fix would be something that 
> makes all __ffs calls work right.  And optimization isn't really 
> significant for this particular code, executed (subject to races) at most 
> once in a program execution.  The point of using __ffs is to eliminate the 
> possibility of a race causing incorrect execution, not to optimize things.
> 

Why not use __builtin_ffs or __builtin_ctz here. Most systems now have
specific instructions for this and related operations and should be
inline.


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