From e2bfbed2bb647dc95d3f7e66d07dad0db1cb36b9 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Mon, 8 Aug 2022 09:06:28 -0700 Subject: [PATCH] [RISCV] Add ReadFStoreData as a SchedRead. The floating point stores use a different register class, it probably makes sense to have a different SchedRead. Reviewed By: monkchiang Differential Revision: https://reviews.llvm.org/D131379 --- llvm/lib/Target/RISCV/RISCVInstrInfoF.td | 2 +- llvm/lib/Target/RISCV/RISCVSchedRocket.td | 1 + llvm/lib/Target/RISCV/RISCVSchedSiFive7.td | 1 + llvm/lib/Target/RISCV/RISCVSchedule.td | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoF.td b/llvm/lib/Target/RISCV/RISCVInstrInfoF.td index c3e7f1f..d57e2dd 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoF.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoF.td @@ -160,7 +160,7 @@ class FPStore_r funct3, string opcodestr, RegisterClass rty, : RVInstS, - Sched<[sw, ReadStoreData, ReadFMemBase]>; + Sched<[sw, ReadFStoreData, ReadFMemBase]>; let hasSideEffects = 0, mayLoad = 0, mayStore = 0, mayRaiseFPException = 1, UseNamedOperandTable = 1, hasPostISelHook = 1, isCommutable = 1 in diff --git a/llvm/lib/Target/RISCV/RISCVSchedRocket.td b/llvm/lib/Target/RISCV/RISCVSchedRocket.td index 5a3c8de..1b1741b 100644 --- a/llvm/lib/Target/RISCV/RISCVSchedRocket.td +++ b/llvm/lib/Target/RISCV/RISCVSchedRocket.td @@ -201,6 +201,7 @@ def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; +def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; diff --git a/llvm/lib/Target/RISCV/RISCVSchedSiFive7.td b/llvm/lib/Target/RISCV/RISCVSchedSiFive7.td index cfbd972..92e6d94 100644 --- a/llvm/lib/Target/RISCV/RISCVSchedSiFive7.td +++ b/llvm/lib/Target/RISCV/RISCVSchedSiFive7.td @@ -188,6 +188,7 @@ def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; +def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; diff --git a/llvm/lib/Target/RISCV/RISCVSchedule.td b/llvm/lib/Target/RISCV/RISCVSchedule.td index 4971ca1..dc6608a 100644 --- a/llvm/lib/Target/RISCV/RISCVSchedule.td +++ b/llvm/lib/Target/RISCV/RISCVSchedule.td @@ -112,6 +112,7 @@ def ReadCSR : SchedRead; def ReadMemBase : SchedRead; def ReadFMemBase : SchedRead; def ReadStoreData : SchedRead; +def ReadFStoreData : SchedRead; def ReadIALU : SchedRead; def ReadIALU32 : SchedRead; // 32-bit integer ALU operations on RV64I def ReadShiftImm : SchedRead; -- 2.7.4