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

Reply via email to