Paul Eggert <egg...@cs.ucla.edu> writes: > I recently added a bunch of static inline functions to Emacs, > and just for fun I tried changing them to plain 'static' to > see how much that would hurt performance. To my surprise, it > made Emacs 14% faster on my standard Lisp benchmark (taking the nth > element of a long list). It also shrank the size of the text segment > by 1.7%, which was not as much of a surprise. > > Clearly I've been using 'static inline' too much. Come to think of > it, these days there's little need for 'static inline' as opposed to > 'static', since GCC and other modern compilers will inline 'static' > functions for you. And apparently they do a better job if they're not > given bad advice by people who use the 'inline' keyword. > > I'd like to install some changes to gnulib, so that its code does > not use 'static inline' in the modules that Emacs uses. This is part > of a similar, larger change to Emacs proper. These patches won't > affect extern inline functions, just static ones. > > There are more opportunities for changes like this to gnulib, but > I thought I'd do these first and ask for comments.
+1 I have always found inline to be a waste of maintainer time due to all portability issues. If performance is critical, you are usually better of moving to hand-written assembler with a fall-back to a portable C implementation. /Simon