Lines Matching refs:ElasticTrace
48 #include "debug/ElasticTrace.hh"
51 ElasticTrace::ElasticTrace(const ElasticTraceParams* params)
95 Callback* cb = new MakeCallback<ElasticTrace,
96 &ElasticTrace::flushTraces>(this);
101 ElasticTrace::regProbeListeners()
118 ElasticTrace::regEtraceListeners()
125 listeners.push_back(new ProbeListenerArg<ElasticTrace, RequestPtr>(this,
126 "FetchRequest", &ElasticTrace::fetchReqTrace));
127 listeners.push_back(new ProbeListenerArg<ElasticTrace,
129 &ElasticTrace::recordExecTick));
130 listeners.push_back(new ProbeListenerArg<ElasticTrace,
132 &ElasticTrace::recordToCommTick));
133 listeners.push_back(new ProbeListenerArg<ElasticTrace,
135 &ElasticTrace::updateRegDep));
136 listeners.push_back(new ProbeListenerArg<ElasticTrace, SeqNumRegPair>(this,
137 "SquashInRename", &ElasticTrace::removeRegDepMapEntry));
138 listeners.push_back(new ProbeListenerArg<ElasticTrace,
140 &ElasticTrace::addSquashedInst));
141 listeners.push_back(new ProbeListenerArg<ElasticTrace,
143 &ElasticTrace::addCommittedInst));
148 ElasticTrace::fetchReqTrace(const RequestPtr &req)
151 DPRINTFR(ElasticTrace, "Fetch Req %i,(%lli,%lli,%lli),%i,%i,%lli\n",
170 ElasticTrace::recordExecTick(const DynInstConstPtr& dyn_inst)
179 DPRINTFR(ElasticTrace, "[sn:%lli] Ignoring in execute as instruction \
186 DPRINTFR(ElasticTrace, "[sn:%lli] Execute Tick = %i\n", dyn_inst->seqNum,
207 ElasticTrace::recordToCommTick(const DynInstConstPtr& dyn_inst)
215 DPRINTFR(ElasticTrace, "recordToCommTick: [sn:%lli] Not in temp store,"
220 DPRINTFR(ElasticTrace, "[sn:%lli] To Commit Tick = %i\n", dyn_inst->seqNum,
228 ElasticTrace::updateRegDep(const DynInstConstPtr& dyn_inst)
252 DPRINTFR(ElasticTrace, "[sn:%lli] Check map for src reg"
285 DPRINTFR(ElasticTrace, "[sn:%lli] Update map for dest reg"
296 ElasticTrace::removeRegDepMapEntry(const SeqNumRegPair &inst_reg_pair)
298 DPRINTFR(ElasticTrace, "Remove Map entry for Reg %i\n",
306 ElasticTrace::addSquashedInst(const DynInstConstPtr& head_inst)
317 DPRINTFR(ElasticTrace, "Attempt to add squashed inst [sn:%lli]\n",
334 ElasticTrace::addCommittedInst(const DynInstConstPtr& head_inst)
336 DPRINTFR(ElasticTrace, "Attempt to add committed inst [sn:%lli]\n",
348 DPRINTFR(ElasticTrace, "addCommittedInst: [sn:%lli] Not in temp "
370 DPRINTF(ElasticTrace, "%s [sn:%lli] has faulted so "
375 DPRINTF(ElasticTrace, "Load/store [sn:%lli] has no request so "
378 DPRINTF(ElasticTrace, "%s [sn:%lli] is predicated false so "
393 ElasticTrace::addDepTraceRecord(const DynInstConstPtr& head_inst,
434 DPRINTF(ElasticTrace, "Added first inst record %lli to DepTrace.\n",
455 DPRINTF(ElasticTrace, "Inst %lli has register dependency on "
472 DPRINTF(ElasticTrace, "Inst %lli has register dependency on "
501 DPRINTF(ElasticTrace, "Added %s inst %lli to DepTrace.\n",
509 DPRINTF(ElasticTrace, "Writing out trace...\n");
522 ElasticTrace::updateCommitOrderDep(TraceInfo* new_record,
563 ElasticTrace::updateIssueOrderDep(TraceInfo* new_record)
609 ElasticTrace::assignRobDep(TraceInfo* past_record, TraceInfo* new_record) {
610 DPRINTF(ElasticTrace, "%s %lli has ROB dependency on %lli\n",
625 ElasticTrace::hasStoreCommitted(TraceInfo* past_record,
632 ElasticTrace::hasLoadCompleted(TraceInfo* past_record,
640 ElasticTrace::hasLoadBeenSent(TraceInfo* past_record,
649 ElasticTrace::hasCompCompleted(TraceInfo* past_record,
656 ElasticTrace::clearTempStoreUntil(const DynInstConstPtr& head_inst)
678 ElasticTrace::compDelayRob(TraceInfo* past_record, TraceInfo* new_record)
686 DPRINTF(ElasticTrace, "Seq num %lli has ROB dependency on seq num %lli.\n",
707 DPRINTF(ElasticTrace, "Computational delay is %lli - %lli = %lli\n",
716 DPRINTF(ElasticTrace, "Final computational delay = %lli.\n",
721 ElasticTrace::compDelayPhysRegDep(TraceInfo* past_record,
730 DPRINTF(ElasticTrace, "Seq. num %lli has register dependency on seq. num"
748 DPRINTF(ElasticTrace, "Computational delay is %lli - %lli = %lli\n",
757 DPRINTF(ElasticTrace, "Final computational delay = %lli.\n",
762 ElasticTrace::TraceInfo::getExecuteTick() const
780 ElasticTrace::writeDepTrace(uint32_t num_to_write)
804 DPRINTFR(ElasticTrace, "Instruction with seq. num %lli "
807 DPRINTFR(ElasticTrace, "\tis a %s\n", temp_ptr->typeToStr());
808 DPRINTFR(ElasticTrace, "\thas a request with phys addr %i, "
812 DPRINTFR(ElasticTrace, "\tis a %s\n", temp_ptr->typeToStr());
824 DPRINTFR(ElasticTrace, "\thas computational delay %lli\n",
845 DPRINTFR(ElasticTrace, "\thas no order (rob) dependencies\n");
848 DPRINTFR(ElasticTrace, "\thas order (rob) dependency on %lli\n",
854 DPRINTFR(ElasticTrace, "\thas no register dependencies\n");
857 DPRINTFR(ElasticTrace, "\thas register dependency on %lli\n",
887 ElasticTrace::regStats() {
942 ElasticTrace::TraceInfo::typeToStr() const
948 ElasticTrace::name() const
954 ElasticTrace::flushTraces()
963 ElasticTrace*
966 return new ElasticTrace(this);