Clean up/shift some code around.
src/cpu/base_dyn_inst.cc:
Clean up some code and update.
src/cpu/base_dyn_inst.hh:
Clean up some code and update with more descriptive function names.
src/cpu/o3/alpha_cpu_builder.cc:
src/cpu/o3/alpha_params.hh:
src/cpu/o3/commit.hh:
Remove unused parameters.
src/cpu/o3/commit_impl.hh:
Remove unused parameters, also set squashCounter directly to the counted number of squashes.
src/cpu/o3/fetch_impl.hh:
Update for function name changes.
src/cpu/o3/iew.hh:
src/cpu/o3/iew_impl.hh:
Remove unused parameter, move some code into a function.
--HG--
extra : convert_revision : 45abd77ad43dde2e93c2e53c4738c90ba8352a1d
This commit is contained in:
@@ -72,7 +72,6 @@ DefaultCommit<Impl>::DefaultCommit(Params *params)
|
||||
renameToROBDelay(params->renameToROBDelay),
|
||||
fetchToCommitDelay(params->commitToFetchDelay),
|
||||
renameWidth(params->renameWidth),
|
||||
iewWidth(params->executeWidth),
|
||||
commitWidth(params->commitWidth),
|
||||
numThreads(params->numberOfThreads),
|
||||
switchPending(false),
|
||||
@@ -434,7 +433,7 @@ DefaultCommit<Impl>::setNextStatus()
|
||||
}
|
||||
}
|
||||
|
||||
assert(squashes == squashCounter);
|
||||
squashCounter = squashes;
|
||||
|
||||
// If commit is currently squashing, then it will have activity for the
|
||||
// next cycle. Set its next status as active.
|
||||
@@ -539,8 +538,6 @@ DefaultCommit<Impl>::squashFromTrap(unsigned tid)
|
||||
|
||||
commitStatus[tid] = ROBSquashing;
|
||||
cpu->activityThisCycle();
|
||||
|
||||
++squashCounter;
|
||||
}
|
||||
|
||||
template <class Impl>
|
||||
@@ -558,8 +555,6 @@ DefaultCommit<Impl>::squashFromTC(unsigned tid)
|
||||
cpu->activityThisCycle();
|
||||
|
||||
tcSquash[tid] = false;
|
||||
|
||||
++squashCounter;
|
||||
}
|
||||
|
||||
template <class Impl>
|
||||
@@ -585,10 +580,12 @@ DefaultCommit<Impl>::tick()
|
||||
|
||||
if (rob->isDoneSquashing(tid)) {
|
||||
commitStatus[tid] = Running;
|
||||
--squashCounter;
|
||||
} else {
|
||||
DPRINTF(Commit,"[tid:%u]: Still Squashing, cannot commit any"
|
||||
"insts this cycle.\n", tid);
|
||||
rob->doSquash(tid);
|
||||
toIEW->commitInfo[tid].robSquashing = true;
|
||||
wroteToTimeBuffer = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -694,29 +691,7 @@ DefaultCommit<Impl>::commit()
|
||||
|
||||
while (threads != (*activeThreads).end()) {
|
||||
unsigned tid = *threads++;
|
||||
/*
|
||||
if (fromFetch->fetchFault && commitStatus[0] != TrapPending) {
|
||||
// Record the fault. Wait until it's empty in the ROB.
|
||||
// Then handle the trap. Ignore it if there's already a
|
||||
// trap pending as fetch will be redirected.
|
||||
fetchFault = fromFetch->fetchFault;
|
||||
fetchFaultTick = curTick + fetchTrapLatency;
|
||||
commitStatus[0] = FetchTrapPending;
|
||||
DPRINTF(Commit, "Fault from fetch recorded. Will trap if the "
|
||||
"ROB empties without squashing the fault.\n");
|
||||
fetchTrapWait = 0;
|
||||
}
|
||||
|
||||
// Fetch may tell commit to clear the trap if it's been squashed.
|
||||
if (fromFetch->clearFetchFault) {
|
||||
DPRINTF(Commit, "Received clear fetch fault signal\n");
|
||||
fetchTrapWait = 0;
|
||||
if (commitStatus[0] == FetchTrapPending) {
|
||||
DPRINTF(Commit, "Clearing fault from fetch\n");
|
||||
commitStatus[0] = Running;
|
||||
}
|
||||
}
|
||||
*/
|
||||
// Not sure which one takes priority. I think if we have
|
||||
// both, that's a bad sign.
|
||||
if (trapSquash[tid] == true) {
|
||||
@@ -744,8 +719,6 @@ DefaultCommit<Impl>::commit()
|
||||
|
||||
commitStatus[tid] = ROBSquashing;
|
||||
|
||||
++squashCounter;
|
||||
|
||||
// If we want to include the squashing instruction in the squash,
|
||||
// then use one older sequence number.
|
||||
InstSeqNum squashed_inst = fromIEW->squashedSeqNum[tid];
|
||||
|
||||
Reference in New Issue
Block a user