acl: fix build with GCC 11
authorKonstantin Ananyev <konstantin.ananyev@intel.com>
Mon, 26 Apr 2021 13:35:19 +0000 (14:35 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 5 May 2021 10:10:15 +0000 (12:10 +0200)
commit8e2dd74f0afd3ef3358f1cca05afb20bda670207
treed6fb8b2ebc7f0743b2dee476fab06275c1dbe312
parent8a3d58c189fdc562871461e400d49ca32d92ff3c
acl: fix build with GCC 11

gcc 11 with '-O2' complains about some variables being used without
being initialized:

In function ‘start_flow_avx512x8’,
    inlined from ‘search_trie_avx512x8.constprop’ at acl_run_avx512_common.h:317:
lib/librte_acl/acl_run_avx512_common.h:210:13: warning:
    ‘pdata’ is used uninitialized [-Wuninitialized]
In function ‘search_trie_avx512x8.constprop’:
lib/librte_acl/acl_run_avx512_common.h:314:32: note: ‘pdata’ declared here
...

Indeed, these variables are not explicitly initialized,
but this is done intentionally.
We rely on constant mask value that we pass to start_flow*() functions
as a parameter to mask out uninitialized values.
Note that '-O3' doesn't produce this warning.
Anyway, to support clean build with gcc-11 this patch adds
explicit initialization for these variables.
I checked the output binary: with '-O3' both clang and gcc 10/11
generate no extra code for it.
Also performance test didn't reveal any regressions.

Bugzilla ID: 673
Fixes: b64c2295f7fc ("acl: add 256-bit AVX512 classify method")
Fixes: 45da22e42ec3 ("acl: add 512-bit AVX512 classify method")
Cc: stable@dpdk.org
Reported-by: Ali Alnubani <alialnu@nvidia.com>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
lib/acl/acl_run_avx512_common.h