(Resending as text/plain) On 4/27/2016 5:34 PM, Arnd Bergmann wrote:
This won't help on TILE, which is the one architecture that sets ARCH_SUPPORTS_OPTIMIZED_INLINING but does not set ARCH_USE_BUILTIN_BSWAP. Chris Metcalf should be able to figure out whether we can just set ARCH_USE_BUILTIN_BSWAP for tile as well.
We certainly could enable ARCH_USE_BUILTIN_BSWAP. The only problem is that we never added explicit support for bswap16() in gcc, which is efficiently done on tilegx via the "revbytes" instruction and a 48-bit right-shift. So gcc instead does a generic thing with four instructions in three bundles, so really not as good as our asm/swab.h. I'm not sure how to weigh the implications of converting to builtin_bswap16 (and possibly upstreaming a better implementation to gcc), vs. disabling ARCH_SUPPORTS_OPTIMIZED_INLINING (which no one else but x86 uses anyway), vs. just ignoring the compiler bug and hoping it's not an issue in practice :-) -- Chris Metcalf, Mellanox Technologies http://www.mellanox.com -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html