Re: [PATCH 1/1] riscv: Enable compiler optimizations

From: Palmer Dabbelt
Date: Sun Jul 19 2020 - 00:45:27 EST


On Tue, 07 Jul 2020 22:43:54 PDT (-0700), maochenxi@xxxxxxxxx wrote:
Enable ARCH_HAS_FAST_MULTIPLIER and ARCH_SUPPORTS_INT128 for better
code generation.
These 2 configurations works fine on GCC-9.3 and GCC-10.1

Signed-off-by: Chenxi Mao <maochenxi@xxxxxxxxx>
---
arch/riscv/Kconfig | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 128192e14ff2..f21b7e5188ca 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -26,6 +26,8 @@ config RISCV
select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU
select ARCH_WANT_FRAME_POINTERS
select ARCH_WANT_HUGE_PMD_SHARE if 64BIT
+ select ARCH_HAS_FAST_MULTIPLIER
+ select ARCH_SUPPORTS_INT128 if GCC_VERSION >= 50000 || CC_IS_CLANG

IIRC int128 is only supported on 64-bit targets, and we already have this under
RV64I but with a different set of requirements. It looks like everyone has a
different set of requirements, but I feel like CC_HAS_INT128 is the right way
to go. I'm not sure why we have the version check there. Ard: do you know why
we would need both?

The fast multiplier one looks fine to me. They're supposed to stay
alphabetical, though.

select CLONE_BACKWARDS
select COMMON_CLK
select EDAC_SUPPORT