• Andres Freund's avatar
    Extend & revamp pg_bswap.h infrastructure. · 510b8cbf
    Andres Freund authored
    Upcoming patches are going to address performance issues that involve
    slow system provided ntohs/htons etc. To address that expand
    pg_bswap.h to provide pg_ntoh{16,32,64}, pg_hton{16,32,64} and
    optimize their respective implementations by using compiler intrinsics
    for gcc compatible compilers and msvc. Fall back to manual
    implementations using shifts etc otherwise.
    
    Additionally remove multiple evaluation hazards from the existing
    BSWAP32/64 macros, by replacing them with inline functions when
    necessary. In the course of that the naming scheme is changed to
    pg_bswap16/32/64.
    
    Author: Andres Freund
    Discussion: https://postgr.es/m/20170927172019.gheidqy6xvlxb325@alap3.anarazel.de
    510b8cbf
pg_config.h.in 26.7 KB