changeset 5d3dad7a1b36 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=5d3dad7a1b36
description:
        inorder: replace schedEvent() code with reschedule().
        There were several copies of similar functions that looked
        like they all replicated reschedule(), so I replaced them
        with direct calls.  Keeping this separate from the previous
        cset since there may be some subtle functional differences
        if the code ever reschedules an event that is scheduled but
        not squashed (though none were detected in the regressions).

diffstat:

 src/cpu/inorder/cpu.cc           |   8 ++------
 src/cpu/inorder/cpu.hh           |   8 ++------
 src/cpu/inorder/resource.cc      |  10 +++-------
 src/cpu/inorder/resource_pool.cc |   9 ++-------
 4 files changed, 9 insertions(+), 26 deletions(-)

diffs (73 lines):

diff -r 94fdc8111d7b -r 5d3dad7a1b36 src/cpu/inorder/cpu.cc
--- a/src/cpu/inorder/cpu.cc    Fri Jan 07 21:50:29 2011 -0800
+++ b/src/cpu/inorder/cpu.cc    Fri Jan 07 21:50:29 2011 -0800
@@ -157,12 +157,8 @@
 void
 InOrderCPU::CPUEvent::scheduleEvent(int delay)
 {
-    Tick when = cpu->nextCycle(curTick + cpu->ticks(delay));
-
-    if (squashed())
-        cpu->reschedule(this, when);
-    else if (!scheduled())
-        cpu->schedule(this, when);
+    assert(!scheduled() || squashed());
+    cpu->reschedule(this, cpu->nextCycle(curTick + cpu->ticks(delay)), true);
 }
 
 void
diff -r 94fdc8111d7b -r 5d3dad7a1b36 src/cpu/inorder/cpu.hh
--- a/src/cpu/inorder/cpu.hh    Fri Jan 07 21:50:29 2011 -0800
+++ b/src/cpu/inorder/cpu.hh    Fri Jan 07 21:50:29 2011 -0800
@@ -156,12 +156,8 @@
     /** Schedule tick event, regardless of its current state. */
     void scheduleTickEvent(int delay)
     {
-        Tick when = nextCycle(curTick + ticks(delay));
-
-        if (tickEvent.squashed())
-            reschedule(&tickEvent, when);
-        else if (!tickEvent.scheduled())
-            schedule(&tickEvent, when);
+        assert(!tickEvent.scheduled() || tickEvent.squashed());
+        reschedule(&tickEvent, nextCycle(curTick + ticks(delay)), true);
     }
 
     /** Unschedule tick event, regardless of its current state. */
diff -r 94fdc8111d7b -r 5d3dad7a1b36 src/cpu/inorder/resource.cc
--- a/src/cpu/inorder/resource.cc       Fri Jan 07 21:50:29 2011 -0800
+++ b/src/cpu/inorder/resource.cc       Fri Jan 07 21:50:29 2011 -0800
@@ -502,11 +502,7 @@
 void
 ResourceEvent::scheduleEvent(int delay)
 {
-    InOrderCPU *cpu = resource->cpu;
-    Tick when = curTick + resource->ticks(delay);
-
-    if (squashed())
-        cpu->reschedule(this, when);
-    else if (!scheduled())
-        cpu->schedule(this, when);
+    assert(!scheduled() || squashed());
+    resource->cpu->reschedule(this,
+                              curTick + resource->ticks(delay), true);
 }
diff -r 94fdc8111d7b -r 5d3dad7a1b36 src/cpu/inorder/resource_pool.cc
--- a/src/cpu/inorder/resource_pool.cc  Fri Jan 07 21:50:29 2011 -0800
+++ b/src/cpu/inorder/resource_pool.cc  Fri Jan 07 21:50:29 2011 -0800
@@ -541,13 +541,8 @@
 ResourcePool::ResPoolEvent::scheduleEvent(int delay)
 {
     InOrderCPU *cpu = resPool->cpu;
-    Tick when = cpu->nextCycle(curTick + cpu->ticks(delay));
-
-    if (squashed()) {
-        cpu->reschedule(this, when);
-    } else if (!scheduled()) {
-        cpu->schedule(this, when);
-    }
+    assert(!scheduled() || squashed());
+    cpu->reschedule(this, cpu->nextCycle(curTick + cpu->ticks(delay)), true);
 }
 
 /** Unschedule resource event, regardless of its current state. */
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to