[PATCH:libXext] Use __builtin_popcountl if available to replace Ones() in XSecurity.c

Alan Coopersmith alan.coopersmith at oracle.com
Fri Feb 26 19:11:50 UTC 2016

BTW, someone with more time than I have to test the X server could
try making a very similar change there in include/misc.h:

  extern _X_EXPORT int Ones(unsigned long /*mask */ );

+# define Ones __builtin_popcountl

but since Ones() there is part of the exported ABI, you want to leave
the original function in place and exported for use by modules, so
they don't depend on which compiler was used to build the core server.

As Keith & I noted on IRC, while this is probably much faster code for
this operation on many modern CPU's, it's also probably lost in the
noise to the actual user since Ones() isn't called that often in the
hot paths.

	-Alan Coopersmith-              alan.coopersmith at oracle.com
	 Oracle Solaris Engineering - http://blogs.oracle.com/alanc

More information about the xorg-devel mailing list