Re: [PATCH v3 RESEND 1/2] arm: lib: xor-neon: remove unnecessary GCC < 4.6 warning

From: Adrian Ratiu
Date: Mon Jan 18 2021 - 06:36:11 EST


On Mon, 18 Jan 2021, Arnd Bergmann <arnd@xxxxxxxxxx> wrote:
On Mon, Jan 18, 2021 at 11:56 AM Adrian Ratiu <adrian.ratiu@xxxxxxxxxxxxx> wrote:

From: Nathan Chancellor <natechancellor@xxxxxxxxx>
Drop warning because kernel now requires GCC >= v4.9 after commit 6ec4476ac825 ("Raise gcc version requirement to 4.9") and clarify that -ftree-vectorize now always needs enabling for GCC by directly testing the presence of CONFIG_CC_IS_GCC.
Another reason to remove the warning is that Clang exposes itself as GCC < 4.6 so it triggers the warning about GCC which doesn't make much sense and risks misleading users.
As a side-note remark, -fttree-vectorize is on by default in Clang, but it currently does not work (see linked issues).
Link: https://github.com/ClangBuiltLinux/linux/issues/496 Link: https://github.com/ClangBuiltLinux/linux/issues/503 Reported-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> Signed-off-by: Nathan Chancellor <natechancellor@xxxxxxxxx> Signed-off-by: Adrian Ratiu <adrian.ratiu@xxxxxxxxxxxxx>

Shouldn't there be a check for whatever minimum version of clang produces optimized code now? As I understand it, the warning was originally meant to complain about both old gcc and any version of clang, while waiting for a new version of clang to produce vectorized code.
Has that happened now?

No, clang does not produce vectorized code by default, not even with the -ftree-vectorize flag explicitely added like in the next patch in this series (that flag is enabled by default in clang anyway, so no effect).

Clang needs more investigation and testing because with additional code changes it can be "forced" to output vectorized code, but that is outside the scope of this series.

If you think it's a good idea I can add a warning only for Clang which makes more sense than telling clang users to upgrade their GCC, since now Clang is officially supported. What do you think?



Arnd