Go to the documentation of this file.
32 #ifndef TTA_EXECUTION_TRACE_HH
33 #define TTA_EXECUTION_TRACE_HH
40 #include "boost/tuple/tuple.hpp"
102 typedef boost::tuple<
112 typedef boost::tuple<OperationID, OperationTriggerCount>
126 const std::string& procedureName);
138 const std::vector<MAU>* data = NULL);
ProcedureEntryType
a type for storing procedure entry type (entry/exit)
ClockCycleCount socketWriteCount(SocketID socket) const
std::string AddressSpaceID
a type for storing address space identifiers
UInt32 InstructionAddress
ClockCycleCount OperationTriggerCount
a type for operation trigger counts
void addBusWriteCount(BusID socket, ClockCycleCount count)
unsigned int MemoryAddress
a type for storing memory addresses
const std::string & fileName_
Filename of the trace database (sqlite file).
ExecutionTrace(const std::string &fileName, bool readOnly)
static SimValue & instance()
std::list< FUOperationTriggerCount > FUOperationTriggerCountList
type to be used for lists of function operation execution counts
@ PT_ENTRY
procedure entry
void addRegisterAccessCount(RegisterFileID registerFile, RegisterID registerIndex, ClockCycleCount reads, ClockCycleCount writes)
SimValue MAU
a type for storing data of size of the minimum addressable unit
std::string RegisterFileID
a type for storing register file identifiers
void addFunctionUnitOperationTriggerCount(FunctionUnitID functionUnit, OperationID operation, OperationTriggerCount count)
std::string SocketID
a type for storing socket identifiers
std::fstream instructionProfile_
The instruction profile file.
ClockCycleCount busWriteCount(BusID bus) const
void addBasicBlockStart(ClockCycleCount cycle, InstructionAddress address)
virtual ~ExecutionTrace()
void addProcedureEntry(ClockCycleCount cycle, InstructionAddress address)
std::string BusID
a type for storing bus identifiers
RelationalDB * db_
Handle to the sqlite trace database.
std::string OperationID
a type for storing operation identifiers
InstructionExecution & instructionExecutions()
std::string SegmentID
a type for storing bus segment identifiers
void addInstructionExecution(ClockCycleCount cycle, InstructionAddress address)
InstructionExecution * instructionExecution_
Handle object for the queries of instruction executions.
bool readOnly_
Is the database access mode read-only?
FUOperationTriggerCountList * functionUnitOperationTriggerCounts(FunctionUnitID functionUnit) const
void addProcedureExit(ClockCycleCount cycle, InstructionAddress address)
std::string FunctionUnitID
a type for storing function unit identifiers
ConcurrentRFAccessCountList * registerFileAccessCounts(RegisterFileID registerFile) const
void addConcurrentRegisterFileAccessCount(RegisterFileID registerFile, RegisterAccessCount reads, RegisterAccessCount writes, ClockCycleCount count)
void addProcedureAddressRange(InstructionAddress firstAddress, InstructionAddress lastAddress, const std::string &procedureName)
void addLockedCycle(ClockCycleCount cycle)
void addMemoryAccess(ClockCycleCount cycle, const AddressSpaceID &addressSpace, MemoryAddress address, bool write, std::size_t size, const std::vector< MAU > *data=NULL)
ClockCycleCount simulatedCycleCount() const
void addBusActivity(ClockCycleCount cycle, const BusID &busId, const SegmentID &segmentId, bool squash, const SimValue &data=NullSimValue::instance())
void addInstructionExecutionCount(InstructionAddress address, ClockCycleCount count)
boost::tuple< RegisterAccessCount, RegisterAccessCount, ClockCycleCount > ConcurrentRFAccessCount
type to be used as a key for storing concurrent RF access info
std::fstream callTrace_
The call trace file.
void addProcedureTransfer(ClockCycleCount cycle, InstructionAddress address, InstructionAddress sourceAddress, ProcedureEntryType type)
CycleCount ClockCycleCount
Alias for ClockCycleCount.
std::list< ConcurrentRFAccessCount > ConcurrentRFAccessCountList
type to be used for a list of concurrent RF accesses
int RegisterID
a type for storing register ids
boost::tuple< OperationID, OperationTriggerCount > FUOperationTriggerCount
type to be used as a key for storing function unit operation execution counts
RelationalDBConnection * dbConnection_
Handle to the database connection;.
std::size_t RegisterAccessCount
a type for register access counts
void setSimulatedCycleCount(ClockCycleCount count)
void addSocketWriteCount(SocketID socket, ClockCycleCount)