As the 'restrict' keyword is recognized in C99, this patchset is to add a wrapper defining '__rte_restrict' which can be supported by all compilers. Then replace the existing 'restrict' and '__restrict' in different vpmds, and optimize vhost/virtio with restricted pointer aliasing for more aggressive loops vectorization.
The vhost/virtio optimization patches were benchmarked by running PVP case on ThunderX2 platform and showed positive performance results. v3: 1.Correct the compiling issue on GCC 4.8.5. 2.Squash the replacement patches and wrapper definition into one patch.(suggested by David Marchand) v2: Add a common wrapper for restricted pointer aliasing to be supported by all compilers.(suggested by Maxime Coquelin) Joyce Kong (3): lib/eal: add a common wrapper for restricted pointers net/virtio: restrict pointer aliasing for NEON vpmd lib/vhost: restrict pointer aliasing for packed vpmd drivers/net/i40e/i40e_rxtx_vec_neon.c | 17 +- drivers/net/mlx5/mlx5_rxtx.c | 208 +++++++++--------- drivers/net/virtio/virtio_rxtx_simple_neon.c | 5 +- .../pthread_shim/pthread_shim.c | 12 +- lib/librte_eal/include/rte_common.h | 10 + lib/librte_vhost/virtio_net.c | 14 +- 6 files changed, 139 insertions(+), 127 deletions(-) -- 2.27.0