[llvm] fd94cfe - [RISCV] Move scheduling resources for B into a separate file (NFC)

Evandro Menezes via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 29 18:38:23 PDT 2021


Author: Evandro Menezes
Date: 2021-03-29T20:37:22-05:00
New Revision: fd94cfeeb5d29340f46a46862720e53bd9106c1f

URL: https://github.com/llvm/llvm-project/commit/fd94cfeeb5d29340f46a46862720e53bd9106c1f
DIFF: https://github.com/llvm/llvm-project/commit/fd94cfeeb5d29340f46a46862720e53bd9106c1f.diff

LOG: [RISCV] Move scheduling resources for B into a separate file (NFC)

Differential Revision: https://reviews.llvm.org/D99557

Added: 
    llvm/lib/Target/RISCV/RISCVScheduleB.td

Modified: 
    llvm/lib/Target/RISCV/RISCVSchedule.td

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/RISCV/RISCVSchedule.td b/llvm/lib/Target/RISCV/RISCVSchedule.td
index 4882aa809266..d5b28a3a1033 100644
--- a/llvm/lib/Target/RISCV/RISCVSchedule.td
+++ b/llvm/lib/Target/RISCV/RISCVSchedule.td
@@ -105,24 +105,6 @@ def WriteFST16        : SchedWrite;    // Floating point sp store
 def WriteFST32        : SchedWrite;    // Floating point sp store
 def WriteFST64        : SchedWrite;    // Floating point dp store
 
-// Zba extension
-def WriteSHXADD      : SchedWrite; // sh1add/sh2add/sh3add
-def WriteSHXADD32    : SchedWrite; // sh1add.uw/sh2add.uw/sh3add.uw
-
-// Zbb extension
-def WriteRotateImm   : SchedWrite;
-def WriteRotateImm32 : SchedWrite;
-def WriteRotateReg   : SchedWrite;
-def WriteRotateReg32 : SchedWrite;
-def WriteCLZ         : SchedWrite;
-def WriteCLZ32       : SchedWrite;
-def WriteCTZ         : SchedWrite;
-def WriteCTZ32       : SchedWrite;
-def WriteCPOP        : SchedWrite;
-def WriteCPOP32      : SchedWrite;
-def WriteREV8        : SchedWrite;
-def WriteORCB        : SchedWrite;
-
 /// Define scheduler resources associated with use operands.
 def ReadJmp         : SchedRead;
 def ReadJalr        : SchedRead;
@@ -200,60 +182,5 @@ def ReadFClass16         : SchedRead;
 def ReadFClass32         : SchedRead;
 def ReadFClass64         : SchedRead;
 
-// Zba extension
-def ReadSHXADD      : SchedRead; // sh1add/sh2add/sh3add
-def ReadSHXADD32    : SchedRead; // sh1add.uw/sh2add.uw/sh3add.uw
-
-// Zbb extension
-def ReadRotateImm   : SchedRead;
-def ReadRotateImm32 : SchedRead;
-def ReadRotateReg   : SchedRead;
-def ReadRotateReg32 : SchedRead;
-def ReadCLZ         : SchedRead;
-def ReadCLZ32       : SchedRead;
-def ReadCTZ         : SchedRead;
-def ReadCTZ32       : SchedRead;
-def ReadCPOP        : SchedRead;
-def ReadCPOP32      : SchedRead;
-def ReadREV8        : SchedRead;
-def ReadORCB        : SchedRead;
-
-multiclass UnsupportedSchedZba {
-let Unsupported = true in {
-def : WriteRes<WriteSHXADD, []>;
-def : WriteRes<WriteSHXADD32, []>;
-
-def : ReadAdvance<ReadSHXADD, 0>;
-def : ReadAdvance<ReadSHXADD32, 0>;
-}
-}
-
-multiclass UnsupportedSchedZbb {
-let Unsupported = true in {
-def : WriteRes<WriteRotateImm, []>;
-def : WriteRes<WriteRotateImm32, []>;
-def : WriteRes<WriteRotateReg, []>;
-def : WriteRes<WriteRotateReg32, []>;
-def : WriteRes<WriteCLZ, []>;
-def : WriteRes<WriteCLZ32, []>;
-def : WriteRes<WriteCTZ, []>;
-def : WriteRes<WriteCTZ32, []>;
-def : WriteRes<WriteCPOP, []>;
-def : WriteRes<WriteCPOP32, []>;
-def : WriteRes<WriteREV8, []>;
-def : WriteRes<WriteORCB, []>;
-
-def : ReadAdvance<ReadRotateImm, 0>;
-def : ReadAdvance<ReadRotateImm32, 0>;
-def : ReadAdvance<ReadRotateReg, 0>;
-def : ReadAdvance<ReadRotateReg32, 0>;
-def : ReadAdvance<ReadCLZ, 0>;
-def : ReadAdvance<ReadCLZ32, 0>;
-def : ReadAdvance<ReadCTZ, 0>;
-def : ReadAdvance<ReadCTZ32, 0>;
-def : ReadAdvance<ReadCPOP, 0>;
-def : ReadAdvance<ReadCPOP32, 0>;
-def : ReadAdvance<ReadREV8, 0>;
-def : ReadAdvance<ReadORCB, 0>;
-}
-}
+// Include the scheduler resources for other instruction extensions.
+include "RISCVScheduleB.td"

diff  --git a/llvm/lib/Target/RISCV/RISCVScheduleB.td b/llvm/lib/Target/RISCV/RISCVScheduleB.td
new file mode 100644
index 000000000000..b668b0acd719
--- /dev/null
+++ b/llvm/lib/Target/RISCV/RISCVScheduleB.td
@@ -0,0 +1,89 @@
+//===-- RISCVScheduleB.td - RISCV Scheduling Definitions B -*- tablegen -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+/// Define scheduler resources associated with def operands.
+
+// Zba extension
+def WriteSHXADD      : SchedWrite; // sh1add/sh2add/sh3add
+def WriteSHXADD32    : SchedWrite; // sh1add.uw/sh2add.uw/sh3add.uw
+
+// Zbb extension
+def WriteRotateImm   : SchedWrite;
+def WriteRotateImm32 : SchedWrite;
+def WriteRotateReg   : SchedWrite;
+def WriteRotateReg32 : SchedWrite;
+def WriteCLZ         : SchedWrite;
+def WriteCLZ32       : SchedWrite;
+def WriteCTZ         : SchedWrite;
+def WriteCTZ32       : SchedWrite;
+def WriteCPOP        : SchedWrite;
+def WriteCPOP32      : SchedWrite;
+def WriteREV8        : SchedWrite;
+def WriteORCB        : SchedWrite;
+
+/// Define scheduler resources associated with use operands.
+
+// Zba extension
+def ReadSHXADD      : SchedRead; // sh1add/sh2add/sh3add
+def ReadSHXADD32    : SchedRead; // sh1add.uw/sh2add.uw/sh3add.uw
+
+// Zbb extension
+def ReadRotateImm   : SchedRead;
+def ReadRotateImm32 : SchedRead;
+def ReadRotateReg   : SchedRead;
+def ReadRotateReg32 : SchedRead;
+def ReadCLZ         : SchedRead;
+def ReadCLZ32       : SchedRead;
+def ReadCTZ         : SchedRead;
+def ReadCTZ32       : SchedRead;
+def ReadCPOP        : SchedRead;
+def ReadCPOP32      : SchedRead;
+def ReadREV8        : SchedRead;
+def ReadORCB        : SchedRead;
+
+/// Define default scheduler resources for B.
+
+multiclass UnsupportedSchedZba {
+let Unsupported = true in {
+def : WriteRes<WriteSHXADD, []>;
+def : WriteRes<WriteSHXADD32, []>;
+
+def : ReadAdvance<ReadSHXADD, 0>;
+def : ReadAdvance<ReadSHXADD32, 0>;
+}
+}
+
+multiclass UnsupportedSchedZbb {
+let Unsupported = true in {
+def : WriteRes<WriteRotateImm, []>;
+def : WriteRes<WriteRotateImm32, []>;
+def : WriteRes<WriteRotateReg, []>;
+def : WriteRes<WriteRotateReg32, []>;
+def : WriteRes<WriteCLZ, []>;
+def : WriteRes<WriteCLZ32, []>;
+def : WriteRes<WriteCTZ, []>;
+def : WriteRes<WriteCTZ32, []>;
+def : WriteRes<WriteCPOP, []>;
+def : WriteRes<WriteCPOP32, []>;
+def : WriteRes<WriteREV8, []>;
+def : WriteRes<WriteORCB, []>;
+
+def : ReadAdvance<ReadRotateImm, 0>;
+def : ReadAdvance<ReadRotateImm32, 0>;
+def : ReadAdvance<ReadRotateReg, 0>;
+def : ReadAdvance<ReadRotateReg32, 0>;
+def : ReadAdvance<ReadCLZ, 0>;
+def : ReadAdvance<ReadCLZ32, 0>;
+def : ReadAdvance<ReadCTZ, 0>;
+def : ReadAdvance<ReadCTZ32, 0>;
+def : ReadAdvance<ReadCPOP, 0>;
+def : ReadAdvance<ReadCPOP32, 0>;
+def : ReadAdvance<ReadREV8, 0>;
+def : ReadAdvance<ReadORCB, 0>;
+}
+}


        


More information about the llvm-commits mailing list