81 hash_set<const char*> alreadyRegisteredOutputSockets;
83 for (
int i = 0; i < instructionData.
moveCount(); ++i) {
96 alreadyRegisteredOutputSockets.find(
98 alreadyRegisteredOutputSockets.end()) {
101 alreadyRegisteredOutputSockets.insert(
110 const std::string operationUpper =
113 const std::string fuName =
115 fus_[fuName] += execCount;
173 const std::string rfName =
235 const std::string& operationName)
const {
252 const std::string& fuName,
const std::string& operationName)
const {
271 const std::string& rfName,
272 int registerIndex)
const {
276 std::pair<ClockCycleCount, ClockCycleCount> >(
293 const std::string& rfName,
294 int registerIndex)
const {
298 std::pair<ClockCycleCount, ClockCycleCount> >(
315 const std::string& rfName,
316 int registerIndex)
const {
320 std::pair<ClockCycleCount, ClockCycleCount> >(
337 const std::string& fuName,
338 const std::string& fuPort)
const {
CycleCount ClockCycleCount
Alias for ClockCycleCount.
ClockCycleCount moveExecutionCount(std::size_t moveIndex) const
virtual TCEString name() const
FunctionUnit * parentUnit() const
virtual bool isTriggering() const =0
virtual TCEString name() const
virtual std::string name() const
int registerIndex() const
const RegisterFile * registerFile() const
const TTAMachine::Guard & guard() const
TTAMachine::Socket & destinationSocket() const
MoveGuard & guard() const
TTAMachine::Socket & sourceSocket() const
bool isUnconditional() const
Terminal & source() const
Terminal & destination() const
const TTAMachine::Bus & bus() const
virtual const TTAMachine::FunctionUnit & functionUnit() const
virtual int index() const
virtual Operation & operation() const
virtual bool isGPR() const
virtual bool isImmediateRegister() const
virtual const TTAMachine::Port & port() const
virtual bool isImmediate() const
virtual const TTAMachine::ImmediateUnit & immediateUnit() const
virtual const TTAMachine::RegisterFile & registerFile() const
virtual bool isFUPort() const
ComponentUtilizationIndex operations_
Operation utilizations (started operations).
std::map< std::string, ComponentUtilizationIndex > FUOperationUtilizationIndex
Index for connecting function unit and operations implemented in them to utilization counts.
int highestRegister_
The highest register index used. This is an uglish way to fetch register access info for sequential s...
int highestUsedRegisterIndex() const
FUOperationUtilizationIndex FUGuardAccesses() const
virtual ~UtilizationStats()
ClockCycleCount busWrites(const std::string &busName) const
ClockCycleCount operationExecutions(const std::string &operationName) const
FUOperationUtilizationIndex fuOperations_
Index for operation utilizations for each function unit.
ClockCycleCount triggerCount(const std::string &fuName) const
ComponentUtilizationIndex fus_
Function unit utilizations, i.e., total operation triggerings.
ClockCycleCount guardRegisterReads(const std::string &rfName, int registerIndex) const
ClockCycleCount registerReads(const std::string &rfName, int registerIndex) const
virtual void calculateForInstruction(const TTAProgram::Instruction &instructionData, const ExecutableInstruction &executionCounts)
RFRegisterUtilizationIndex guardRfAccesses_
Guard register accesses for each register in a RF.
ComponentUtilizationIndex sockets_
Socket write counts.
ClockCycleCount registerWrites(const std::string &rfName, int registerIndex) const
ComponentUtilizationIndex buses_
Bus write counts.
ClockCycleCount socketWrites(const std::string &socketName) const
RFRegisterUtilizationIndex rfAccesses_
Register read and write data for each register in each register file.
FUOperationUtilizationIndex guardFUAccesses_
Guard FU port accesses.