#include "llvm/MCA/Stages/DispatchStage.h"
#include "llvm/MCA/HWEventListener.h"
#include "llvm/MCA/HardwareUnits/Scheduler.h"
#include "llvm/Support/Debug.h"
#define DEBUG_TYPE …
namespace llvm {
namespace mca {
DispatchStage::DispatchStage(const MCSubtargetInfo &Subtarget,
const MCRegisterInfo &MRI,
unsigned MaxDispatchWidth, RetireControlUnit &R,
RegisterFile &F)
: … { … }
void DispatchStage::notifyInstructionDispatched(const InstRef &IR,
ArrayRef<unsigned> UsedRegs,
unsigned UOps) const { … }
bool DispatchStage::checkPRF(const InstRef &IR) const { … }
bool DispatchStage::checkRCU(const InstRef &IR) const { … }
bool DispatchStage::canDispatch(const InstRef &IR) const { … }
Error DispatchStage::dispatch(InstRef IR) { … }
Error DispatchStage::cycleStart() { … }
bool DispatchStage::isAvailable(const InstRef &IR) const { … }
Error DispatchStage::execute(InstRef &IR) { … }
#ifndef NDEBUG
void DispatchStage::dump() const {
PRF.dump();
RCU.dump();
}
#endif
}
}