summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-mca/Backend.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvm-mca/Backend.h')
-rw-r--r--llvm/tools/llvm-mca/Backend.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/llvm/tools/llvm-mca/Backend.h b/llvm/tools/llvm-mca/Backend.h
index f38902b3439..79e5bba7f8d 100644
--- a/llvm/tools/llvm-mca/Backend.h
+++ b/llvm/tools/llvm-mca/Backend.h
@@ -16,6 +16,7 @@
#define LLVM_TOOLS_LLVM_MCA_BACKEND_H
#include "DispatchStage.h"
+#include "ExecuteStage.h"
#include "FetchStage.h"
#include "InstrBuilder.h"
#include "RegisterFile.h"
@@ -57,12 +58,13 @@ class Backend {
// The following are the simulated hardware components of the backend.
RetireControlUnit RCU;
RegisterFile PRF;
+ Scheduler HWS;
/// TODO: Eventually this will become a list of unique Stage* that this
/// backend pipeline executes.
std::unique_ptr<FetchStage> Fetch;
- std::unique_ptr<Scheduler> HWS;
std::unique_ptr<DispatchStage> Dispatch;
+ std::unique_ptr<ExecuteStage> Execute;
std::unique_ptr<RetireStage> Retire;
std::set<HWEventListener *> Listeners;
@@ -78,13 +80,13 @@ public:
unsigned StoreQueueSize = 0, bool AssumeNoAlias = false)
: RCU(Subtarget.getSchedModel()),
PRF(Subtarget.getSchedModel(), MRI, RegisterFileSize),
+ HWS(Subtarget.getSchedModel(), LoadQueueSize, StoreQueueSize,
+ AssumeNoAlias),
Fetch(std::move(InitialStage)),
- HWS(llvm::make_unique<Scheduler>(this, Subtarget.getSchedModel(), RCU,
- LoadQueueSize, StoreQueueSize,
- AssumeNoAlias)),
Dispatch(llvm::make_unique<DispatchStage>(
this, Subtarget, MRI, RegisterFileSize, DispatchWidth, RCU, PRF,
- HWS.get())),
+ HWS)),
+ Execute(llvm::make_unique<ExecuteStage>(this, RCU, HWS)),
Retire(llvm::make_unique<RetireStage>(this, RCU, PRF)), Cycles(0) {}
void run();
OpenPOWER on IntegriCloud