17#ifndef LLVM_MCA_STAGES_EXECUTESTAGE_H
18#define LLVM_MCA_STAGES_EXECUTESTAGE_H
31 unsigned NumDispatchedOpcodes;
32 unsigned NumIssuedOpcodes;
35 bool EnablePressureEvents;
41 Error issueReadyInstructions();
52 : HWS(S), NumDispatchedOpcodes(0), NumIssuedOpcodes(0),
53 EnablePressureEvents(ShouldPerformBottleneckAnalysis) {}
Legalize the Machine IR a function s Machine IR
A scheduler for Processor Resource Units and Processor Resource Groups.
This file defines abstractions used by the Pipeline to model register reads, register writes and inst...
This file defines a stage.
Lightweight error class with error context and mandatory checking.
MutableArrayRef - Represent a mutable reference to an array (0 or more elements consecutively in memo...
void notifyResourceAvailable(const ResourceRef &RR) const
Error cycleStart() override
Called once at the start of each cycle.
bool isAvailable(const InstRef &IR) const override
Returns true if it can execute IR during this cycle.
bool hasWorkToComplete() const override
Returns true if some instructions are still executing this stage.
Error cycleEnd() override
Called once at the end of each cycle.
void notifyInstructionExecuted(const InstRef &IR) const
void notifyInstructionIssued(const InstRef &IR, MutableArrayRef< ResourceUse > Used) const
ExecuteStage(Scheduler &S)
void notifyReservedOrReleasedBuffers(const InstRef &IR, bool Reserved) const
ExecuteStage(Scheduler &S, bool ShouldPerformBottleneckAnalysis)
void notifyInstructionReady(const InstRef &IR) const
Error execute(InstRef &IR) override
The primary action that this stage performs on instruction IR.
void notifyInstructionPending(const InstRef &IR) const
An InstRef contains both a SourceMgr index and Instruction pair.
Class Scheduler is responsible for issuing instructions to pipeline resources.
std::pair< uint64_t, uint64_t > ResourceRef
A resource unit identifier.
This is an optimization pass for GlobalISel generic memory operations.