[llvm] `InOrderIssueStage` for llvm-mca should be genric over LSUnitBase (PR #101534)
Chinmay Deshpande via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 1 10:52:24 PDT 2024
https://github.com/chinmaydd created https://github.com/llvm/llvm-project/pull/101534
Other HardwareUnits (such as the [Scheduler](https://github.com/llvm/llvm-project/blob/main/llvm/include/llvm/MCA/HardwareUnits/Scheduler.h#L71)) and Stages (such as [RetireStage](https://github.com/llvm/llvm-project/blob/main/llvm/include/llvm/MCA/Stages/RetireStage.h#L32)) are generic over `LSUnitBase` rather than the specialized `LSUnit`.
>From 77ec76d627ee89a2fb00cdaa4a1fbfd9da29f176 Mon Sep 17 00:00:00 2001
From: Chinmay <cddeshpa at uci.edu>
Date: Thu, 1 Aug 2024 10:43:15 -0700
Subject: [PATCH] InOrderIssueStage should be genric over LSUnitBase
---
llvm/include/llvm/MCA/Stages/InOrderIssueStage.h | 6 +++---
llvm/lib/MCA/Stages/InOrderIssueStage.cpp | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/llvm/include/llvm/MCA/Stages/InOrderIssueStage.h b/llvm/include/llvm/MCA/Stages/InOrderIssueStage.h
index f9286acef9006..7fa7c89ad394e 100644
--- a/llvm/include/llvm/MCA/Stages/InOrderIssueStage.h
+++ b/llvm/include/llvm/MCA/Stages/InOrderIssueStage.h
@@ -21,7 +21,7 @@
namespace llvm {
namespace mca {
-class LSUnit;
+class LSUnitBase;
class RegisterFile;
struct StallInfo {
@@ -56,7 +56,7 @@ class InOrderIssueStage final : public Stage {
RegisterFile &PRF;
ResourceManager RM;
CustomBehaviour &CB;
- LSUnit &LSU;
+ LSUnitBase &LSU;
/// Instructions that were issued, but not executed yet.
SmallVector<InstRef, 4> IssuedInst;
@@ -113,7 +113,7 @@ class InOrderIssueStage final : public Stage {
public:
InOrderIssueStage(const MCSubtargetInfo &STI, RegisterFile &PRF,
- CustomBehaviour &CB, LSUnit &LSU);
+ CustomBehaviour &CB, LSUnitBase &LSU);
unsigned getIssueWidth() const;
bool isAvailable(const InstRef &) const override;
diff --git a/llvm/lib/MCA/Stages/InOrderIssueStage.cpp b/llvm/lib/MCA/Stages/InOrderIssueStage.cpp
index 8f720dbd82a76..30def19b1879a 100644
--- a/llvm/lib/MCA/Stages/InOrderIssueStage.cpp
+++ b/llvm/lib/MCA/Stages/InOrderIssueStage.cpp
@@ -45,7 +45,7 @@ void StallInfo::cycleEnd() {
InOrderIssueStage::InOrderIssueStage(const MCSubtargetInfo &STI,
RegisterFile &PRF, CustomBehaviour &CB,
- LSUnit &LSU)
+ LSUnitBase &LSU)
: STI(STI), PRF(PRF), RM(STI.getSchedModel()), CB(CB), LSU(LSU),
NumIssued(), CarryOver(), Bandwidth(), LastWriteBackCycle() {}
More information about the llvm-commits
mailing list