This patch series adds support for -march=native. It detects the supported
extensions through hwprobe and /proc/cpuinfo, and includes /proc/cpuinfo data
from several real machines in the tests.

Kito Cheng (3):
  RISC-V: Move the hwprobe interface description into a .def file
  RISC-V: Support -march=native on Linux hosts
  RISC-V: Fall back on /proc/cpuinfo when hwprobe is unavailable

 gcc/common/config/riscv/riscv-common.cc       |  15 +-
 gcc/common/config/riscv/riscv-hwprobe.def     | 146 +++++++
 gcc/common/config/riscv/riscv-hwprobe.h       |  91 +++++
 gcc/config.host                               |   8 +
 gcc/config/riscv/driver-riscv.cc              | 378 ++++++++++++++++++
 gcc/config/riscv/riscv-subset.h               |   1 +
 gcc/config/riscv/riscv.h                      |  19 +-
 gcc/config/riscv/x-riscv                      |   6 +
 gcc/doc/invoke.texi                           |  10 +
 .../gcc.target/riscv/cpunative/info_0         |  20 +
 .../gcc.target/riscv/cpunative/info_1         |  10 +
 .../gcc.target/riscv/cpunative/info_2         |  39 ++
 .../gcc.target/riscv/cpunative/info_3         |  71 ++++
 .../gcc.target/riscv/cpunative/info_4         | 287 +++++++++++++
 .../gcc.target/riscv/cpunative/native_cpu_0.c |  17 +
 .../gcc.target/riscv/cpunative/native_cpu_1.c |  17 +
 .../gcc.target/riscv/cpunative/native_cpu_2.c |  14 +
 .../gcc.target/riscv/cpunative/native_cpu_3.c |  18 +
 .../gcc.target/riscv/cpunative/native_cpu_4.c |  17 +
 .../gcc.target/riscv/cpunative/native_cpu_5.c |  16 +
 .../gcc.target/riscv/cpunative/native_cpu_6.c |  22 +
 .../riscv/cpunative/riscv-cpunative.exp       |  35 ++
 .../gcc.target/riscv/march-native-1.c         |  21 +
 gcc/testsuite/lib/target-supports.exp         |  14 +
 libgcc/config/riscv/feature_bits.c            | 194 +--------
 25 files changed, 1293 insertions(+), 193 deletions(-)
 create mode 100644 gcc/common/config/riscv/riscv-hwprobe.def
 create mode 100644 gcc/common/config/riscv/riscv-hwprobe.h
 create mode 100644 gcc/config/riscv/driver-riscv.cc
 create mode 100644 gcc/config/riscv/x-riscv
 create mode 100644 gcc/testsuite/gcc.target/riscv/cpunative/info_0
 create mode 100644 gcc/testsuite/gcc.target/riscv/cpunative/info_1
 create mode 100644 gcc/testsuite/gcc.target/riscv/cpunative/info_2
 create mode 100644 gcc/testsuite/gcc.target/riscv/cpunative/info_3
 create mode 100644 gcc/testsuite/gcc.target/riscv/cpunative/info_4
 create mode 100644 gcc/testsuite/gcc.target/riscv/cpunative/native_cpu_0.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/cpunative/native_cpu_1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/cpunative/native_cpu_2.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/cpunative/native_cpu_3.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/cpunative/native_cpu_4.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/cpunative/native_cpu_5.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/cpunative/native_cpu_6.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/cpunative/riscv-cpunative.exp
 create mode 100644 gcc/testsuite/gcc.target/riscv/march-native-1.c

-- 
2.53.0

Reply via email to