35#include "debug/GPUSRF.hh"
40#include "params/ScalarRegisterFile.hh"
54 for (
const auto& srcScalarOp : ii->srcScalarRegOperands()) {
55 for (
const auto& physIdx : srcScalarOp.physIndices()) {
57 DPRINTF(GPUSRF,
"RAW stall: WV[%d]: %s: physReg[%d]\n",
58 w->wfDynId, ii->disassemble(), physIdx);
59 w->stats.numTimesBlockedDueRAWDependencies++;
65 for (
const auto& dstScalarOp : ii->dstScalarRegOperands()) {
66 for (
const auto& physIdx : dstScalarOp.physIndices()) {
68 DPRINTF(GPUSRF,
"WAX stall: WV[%d]: %s: physReg[%d]\n",
69 w->wfDynId, ii->disassemble(), physIdx);
70 w->stats.numTimesBlockedDueWAXDependencies++;
82 for (
const auto& dstScalarOp : ii->dstScalarRegOperands()) {
83 for (
const auto& physIdx : dstScalarOp.physIndices()) {
95 if (!ii->isLoad() && !(ii->isAtomic() || ii->isMemSync())) {
99 for (
const auto& dstScalarOp : ii->dstScalarRegOperands()) {
100 for (
const auto& physIdx : dstScalarOp.physIndices()) {
113 assert(ii->isLoad() || ii->isAtomicRet());
114 for (
const auto& dstScalarOp : ii->dstScalarRegOperands()) {
115 for (
const auto& physIdx : dstScalarOp.physIndices()) {
Tick cyclesToTicks(Cycles c) const
int scalarPipeLength() const
Cycles is a wrapper class for representing cycle counts, i.e.
gem5::RegisterFile::RegisterFileStats stats
virtual bool regBusy(int idx) const
virtual void markReg(int regIdx, bool value)
virtual void enqRegFreeEvent(uint32_t regIdx, uint64_t delay)
ComputeUnit * computeUnit
virtual void scheduleWriteOperandsFromLoad(Wavefront *w, GPUDynInstPtr ii) override
ScalarRegisterFile(const ScalarRegisterFileParams &p)
virtual bool operandsReady(Wavefront *w, GPUDynInstPtr ii) const override
virtual void scheduleWriteOperands(Wavefront *w, GPUDynInstPtr ii) override
std::vector< ScalarRegU32 > regFile
virtual void waveExecuteInst(Wavefront *w, GPUDynInstPtr ii) override
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
std::shared_ptr< GPUDynInst > GPUDynInstPtr
uint64_t Tick
Tick count type.
statistics::Scalar registerReads
statistics::Scalar registerWrites