seq_put_decimal_* optimization

From: Ulrich Drepper
Date: Sat Mar 24 2012 - 08:53:08 EST


If we want to squeeze out the last drop of slack from the /proc text
generation, shouldn't we then avoid code like

+ seq_put_decimal_ull(m, ' ', 0);

which is worse than what was there before? I realize that the code
actually becomes more readable like this. So how about automatically
optimizing the code by adding something like the following to
seq_file.h:

#define seq_put_decimal_ull(m, delimiter, num) \
(__builtin_constant_p(num) && \
__builtin_constant_p(delimiter) && (delimiter) == ' ' \
? seq_write(m, " " #num, sizeof(" " #num) - 1) \
: seq_put_decimal_ull(m, delimiter, num))

Completely untested and it is a minimal change. It could be written
using an inline function and probably made more general that way
(e.g., handle more delimiters). But this code should handle the case
that exist today and lead to a (very small) improvement without any
real costs to maintenance.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/