Commit f2ad8c9d authored by Craig Topper's avatar Craig Topper
Browse files

[RISCV] Remove experimental-b extension that includes all Zb* extensions

At this point it looks like a B extension will never exist. Instead
Zba, Zbb, Zbc, and Zbs are individual extensions being ratified
together as a package. Unknown at this time when or if the other
Zb* extensions will be ratified.

This patch removes references to the B extension. I've updated and
split tests accordingly.

This has been split from D110669 to make review a little easier.

Differential Revision: https://reviews.llvm.org/D111338
parent 7c1171a0
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -176,11 +176,6 @@ void RISCVTargetInfo::getTargetDefines(const LangOptions &Opts,
    Builder.defineMacro("__riscv_compressed");
  }

  if (HasB) {
    Builder.defineMacro("__riscv_b", "93000");
    Builder.defineMacro("__riscv_bitmanip");
  }

  if (HasV) {
    Builder.defineMacro("__riscv_v", "10000");
    Builder.defineMacro("__riscv_vector");
@@ -262,7 +257,6 @@ bool RISCVTargetInfo::hasFeature(StringRef Feature) const {
      .Case("f", HasF)
      .Case("d", HasD)
      .Case("c", HasC)
      .Case("experimental-b", HasB)
      .Case("experimental-v", HasV)
      .Case("experimental-zba", HasZba)
      .Case("experimental-zbb", HasZbb)
@@ -294,8 +288,6 @@ bool RISCVTargetInfo::handleTargetFeatures(std::vector<std::string> &Features,
      HasD = true;
    else if (Feature == "+c")
      HasC = true;
    else if (Feature == "+experimental-b")
      HasB = true;
    else if (Feature == "+experimental-v")
      HasV = true;
    else if (Feature == "+experimental-zba")
+0 −1
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@ protected:
  bool HasF = false;
  bool HasD = false;
  bool HasC = false;
  bool HasB = false;
  bool HasV = false;
  bool HasZba = false;
  bool HasZbb = false;
+3 −16
Original line number Diff line number Diff line
@@ -58,9 +58,9 @@ static StringRef getExtensionType(StringRef Ext) {
// extension that the compiler currently supports.
static Optional<RISCVExtensionVersion>
isExperimentalExtension(StringRef Ext) {
  if (Ext == "b" || Ext == "zba" || Ext == "zbb" || Ext == "zbc" ||
      Ext == "zbe" || Ext == "zbf" || Ext == "zbm" || Ext == "zbp" ||
      Ext == "zbr" || Ext == "zbs" || Ext == "zbt")
  if (Ext == "zba" || Ext == "zbb" || Ext == "zbc" || Ext == "zbe" ||
      Ext == "zbf" || Ext == "zbm" || Ext == "zbp" || Ext == "zbr" ||
      Ext == "zbs" || Ext == "zbt")
    return RISCVExtensionVersion{"0", "93"};
  if (Ext == "v" || Ext == "zvamo" || Ext == "zvlsseg")
    return RISCVExtensionVersion{"0", "10"};
@@ -417,19 +417,6 @@ static bool getArchFeatures(const Driver &D, StringRef MArch,
    case 'c':
      Features.push_back("+c");
      break;
    case 'b':
      Features.push_back("+experimental-b");
      Features.push_back("+experimental-zba");
      Features.push_back("+experimental-zbb");
      Features.push_back("+experimental-zbc");
      Features.push_back("+experimental-zbe");
      Features.push_back("+experimental-zbf");
      Features.push_back("+experimental-zbm");
      Features.push_back("+experimental-zbp");
      Features.push_back("+experimental-zbr");
      Features.push_back("+experimental-zbs");
      Features.push_back("+experimental-zbt");
      break;
    case 'v':
      Features.push_back("+experimental-v");
      Features.push_back("+experimental-zvlsseg");
+0 −19
Original line number Diff line number Diff line
@@ -382,25 +382,6 @@
// RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV64-TARGET %s
// RV64-TARGET: "-triple" "riscv64-unknown-unknown-elf"

// RUN: %clang -target riscv32-unknown-elf -march=rv32ib -### %s \
// RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-EXPERIMENTAL-NOFLAG %s
// RV32-EXPERIMENTAL-NOFLAG: error: invalid arch name 'rv32ib'
// RV32-EXPERIMENTAL-NOFLAG: requires '-menable-experimental-extensions'

// RUN: %clang -target riscv32-unknown-elf -march=rv32ib -menable-experimental-extensions -### %s \
// RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-EXPERIMENTAL-NOVERS %s
// RV32-EXPERIMENTAL-NOVERS: error: invalid arch name 'rv32ib'
// RV32-EXPERIMENTAL-NOVERS: experimental extension requires explicit version number

// RUN: %clang -target riscv32-unknown-elf -march=rv32ib0p1 -menable-experimental-extensions -### %s \
// RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-EXPERIMENTAL-BADVERS %s
// RV32-EXPERIMENTAL-BADVERS: error: invalid arch name 'rv32ib0p1'
// RV32-EXPERIMENTAL-BADVERS: unsupported version number 0.1 for experimental extension

// RUN: %clang -target riscv32-unknown-elf -march=rv32ib0p93 -menable-experimental-extensions -### %s \
// RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-EXPERIMENTAL-GOODVERS %s
// RV32-EXPERIMENTAL-GOODVERS: "-target-feature" "+experimental-b"

// RUN: %clang -target riscv32-unknown-elf -march=rv32izbb -### %s \
// RUN: -fsyntax-only 2>&1 | FileCheck -check-prefix=RV32-EXPERIMENTAL-ZBB-NOFLAG %s
// RV32-EXPERIMENTAL-ZBB-NOFLAG: error: invalid arch name 'rv32izbb'
+0 −19
Original line number Diff line number Diff line
@@ -99,25 +99,6 @@
// CHECK-C-EXT: __riscv_c 2000000
// CHECK-C-EXT: __riscv_compressed 1

// RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions \
// RUN: -march=rv32ib0p93 -x c -E -dM %s \
// RUN: -o - | FileCheck --check-prefix=CHECK-B-EXT %s
// RUN: %clang -target riscv64-unknown-linux-gnu -menable-experimental-extensions \
// RUN: -march=rv64ib0p93 -x c -E -dM %s \
// RUN: -o - | FileCheck --check-prefix=CHECK-B-EXT %s
// CHECK-B-EXT: __riscv_b 93000
// CHECK-B-EXT: __riscv_bitmanip 1
// CHECK-B-EXT: __riscv_zba 93000
// CHECK-B-EXT: __riscv_zbb 93000
// CHECK-B-EXT: __riscv_zbc 93000
// CHECK-B-EXT: __riscv_zbe 93000
// CHECK-B-EXT: __riscv_zbf 93000
// CHECK-B-EXT: __riscv_zbm 93000
// CHECK-B-EXT: __riscv_zbp 93000
// CHECK-B-EXT: __riscv_zbr 93000
// CHECK-B-EXT: __riscv_zbs 93000
// CHECK-B-EXT: __riscv_zbt 93000

// RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions \
// RUN: -march=rv32izba0p93 -x c -E -dM %s \
// RUN: -o - | FileCheck --check-prefix=CHECK-ZBA-EXT %s
Loading