+2013-09-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data.c (POPCOUNT_STATIC_INLINE): New macro, as a hack for popcount.
+ This is ugly, but it should fix the performance problem for older
+ GCC versions in the short run. I'll look into integrating the
+ Gnulib module for popcount, as a better fix.
+ See the thread starting in:
+ http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00474.html
+ (popcount_size_t_generic) [NEED_GENERIC_POPCOUNT]:
+ (popcount_size_t_msc) [USE_MSC_POPCOUNT]:
+ (popcount_size_t_gcc) [USE_GCC_POPCOUNT]:
+ (popcount_size_t): Use it.
+
2013-09-24 Daniel Colascione <dancol@dancol.org>
* process.c (Fnetwork_interface_info): Fix build break due to
#if _MSC_VER >= 1500 && (defined _M_IX86 || defined _M_X64)
# define USE_MSC_POPCOUNT
+# define POPCOUNT_STATIC_INLINE static inline
#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
# define USE_GCC_POPCOUNT
+# if 199901L <= __STDC_VERSION__ || !__STRICT_ANSI__
+# define POPCOUNT_STATIC_INLINE static inline
+# endif
#else
# define NEED_GENERIC_POPCOUNT
#endif
+#ifndef POPCOUNT_STATIC_INLINE
+# define POPCOUNT_STATIC_INLINE static
+#endif
#ifdef USE_MSC_POPCOUNT
-#define NEED_GENERIC_POPCOUNT
+# define NEED_GENERIC_POPCOUNT
#endif
#ifdef NEED_GENERIC_POPCOUNT
-static unsigned int
+POPCOUNT_STATIC_INLINE unsigned int
popcount_size_t_generic (size_t val)
{
unsigned short j;
#endif
#ifdef USE_MSC_POPCOUNT
-static unsigned int
+POPCOUNT_STATIC_INLINE unsigned int
popcount_size_t_msc (size_t val)
{
unsigned int count;
#endif /* USE_MSC_POPCOUNT */
#ifdef USE_GCC_POPCOUNT
-static unsigned int
+POPCOUNT_STATIC_INLINE unsigned int
popcount_size_t_gcc (size_t val)
{
# if BITS_PER_SIZE_T == 64
}
#endif /* USE_GCC_POPCOUNT */
-static unsigned int
+POPCOUNT_STATIC_INLINE unsigned int
popcount_size_t (size_t val)
{
#if defined USE_MSC_POPCOUNT