changeset 855cafd64da1 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=855cafd64da1
description:
cpu: remove conditional check (count > 0) on o3 IQ squashes
The o3 cpu instruction queue model uses the count variable to track the
number
of unissued instructions in the queue. Previously, the squash method
used
this variable to avoid executing the doSquash method when there were no
unissued instructions in the pipeline. A corner case problem exists
when
only issued instructions exist in the pipeline and a squash occurs; the
doSquash code is not invoked and subsequently does not clean up state
properly.
diffstat:
src/cpu/o3/inst_queue_impl.hh | 5 +----
1 files changed, 1 insertions(+), 4 deletions(-)
diffs (15 lines):
diff -r 5bcba8001c7e -r 855cafd64da1 src/cpu/o3/inst_queue_impl.hh
--- a/src/cpu/o3/inst_queue_impl.hh Wed Apr 22 07:51:27 2015 -0700
+++ b/src/cpu/o3/inst_queue_impl.hh Wed Apr 22 07:52:03 2015 -0700
@@ -1164,10 +1164,7 @@
// time buffer.
squashedSeqNum[tid] = fromCommit->commitInfo[tid].doneSeqNum;
- // Call doSquash if there are insts in the IQ
- if (count[tid] > 0) {
- doSquash(tid);
- }
+ doSquash(tid);
// Also tell the memory dependence unit to squash.
memDepUnit[tid].squash(squashedSeqNum[tid], tid);
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev