changeset 632ad41ac489 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=632ad41ac489
description:
        inorder: object cleanup in destructors

diffstat:

10 files changed, 29 insertions(+), 7 deletions(-)
src/cpu/inorder/cpu.cc                      |    5 +++++
src/cpu/inorder/cpu.hh                      |    4 +++-
src/cpu/inorder/resource.cc                 |    1 +
src/cpu/inorder/resource_pool.cc            |   12 ++++++++++++
src/cpu/inorder/resource_pool.hh            |    2 +-
src/cpu/inorder/resources/cache_unit.hh     |    1 -
src/cpu/inorder/resources/execution_unit.hh |    1 -
src/cpu/inorder/resources/fetch_seq_unit.cc |    5 +++++
src/cpu/inorder/resources/fetch_seq_unit.hh |    4 ++--
src/cpu/inorder/resources/mult_div_unit.hh  |    1 -

diffs (136 lines):

diff -r 6327f5071027 -r 632ad41ac489 src/cpu/inorder/cpu.cc
--- a/src/cpu/inorder/cpu.cc    Sun Jan 31 18:29:59 2010 -0500
+++ b/src/cpu/inorder/cpu.cc    Sun Jan 31 18:30:08 2010 -0500
@@ -347,6 +347,11 @@
     scheduleTickEvent(0);
 }
 
+InOrderCPU::~InOrderCPU()
+{
+    delete resPool;
+}
+
 
 void
 InOrderCPU::regStats()
diff -r 6327f5071027 -r 632ad41ac489 src/cpu/inorder/cpu.hh
--- a/src/cpu/inorder/cpu.hh    Sun Jan 31 18:29:59 2010 -0500
+++ b/src/cpu/inorder/cpu.hh    Sun Jan 31 18:30:08 2010 -0500
@@ -93,7 +93,9 @@
   public:
     /** Constructs a CPU with the given parameters. */
     InOrderCPU(Params *params);
-
+    /* Destructor */
+    ~InOrderCPU();
+    
     /** CPU ID */
     int cpu_id;
 
diff -r 6327f5071027 -r 632ad41ac489 src/cpu/inorder/resource.cc
--- a/src/cpu/inorder/resource.cc       Sun Jan 31 18:29:59 2010 -0500
+++ b/src/cpu/inorder/resource.cc       Sun Jan 31 18:30:08 2010 -0500
@@ -47,6 +47,7 @@
 Resource::~Resource()
 {
     delete [] resourceEvent;
+    delete deniedReq;    
 }
 
 
diff -r 6327f5071027 -r 632ad41ac489 src/cpu/inorder/resource_pool.cc
--- a/src/cpu/inorder/resource_pool.cc  Sun Jan 31 18:29:59 2010 -0500
+++ b/src/cpu/inorder/resource_pool.cc  Sun Jan 31 18:30:08 2010 -0500
@@ -91,6 +91,18 @@
                                        0, _cpu, params));
 }
 
+ResourcePool::~ResourcePool()
+{
+    cout << "Deleting resources ..." << endl;
+    
+    for (int i=0; i < resources.size(); i++) {
+        DPRINTF(Resource, "Deleting resource: %s.\n", resources[i]->name());
+        
+        delete resources[i];
+    }    
+}
+
+
 void
 ResourcePool::init()
 {
diff -r 6327f5071027 -r 632ad41ac489 src/cpu/inorder/resource_pool.hh
--- a/src/cpu/inorder/resource_pool.hh  Sun Jan 31 18:29:59 2010 -0500
+++ b/src/cpu/inorder/resource_pool.hh  Sun Jan 31 18:30:08 2010 -0500
@@ -122,7 +122,7 @@
 
   public:
     ResourcePool(InOrderCPU *_cpu, ThePipeline::Params *params);
-    virtual ~ResourcePool() {}
+    ~ResourcePool();    
 
     std::string name();
 
diff -r 6327f5071027 -r 632ad41ac489 src/cpu/inorder/resources/cache_unit.hh
--- a/src/cpu/inorder/resources/cache_unit.hh   Sun Jan 31 18:29:59 2010 -0500
+++ b/src/cpu/inorder/resources/cache_unit.hh   Sun Jan 31 18:30:08 2010 -0500
@@ -62,7 +62,6 @@
   public:
     CacheUnit(std::string res_name, int res_id, int res_width,
               int res_latency, InOrderCPU *_cpu, ThePipeline::Params *params);
-    virtual ~CacheUnit() {}
 
     enum Command {
         InitiateFetch,
diff -r 6327f5071027 -r 632ad41ac489 src/cpu/inorder/resources/execution_unit.hh
--- a/src/cpu/inorder/resources/execution_unit.hh       Sun Jan 31 18:29:59 
2010 -0500
+++ b/src/cpu/inorder/resources/execution_unit.hh       Sun Jan 31 18:30:08 
2010 -0500
@@ -52,7 +52,6 @@
   public:
     ExecutionUnit(std::string res_name, int res_id, int res_width,
               int res_latency, InOrderCPU *_cpu, ThePipeline::Params *params);
-    virtual ~ExecutionUnit() {}
 
   public:
     virtual void regStats();
diff -r 6327f5071027 -r 632ad41ac489 src/cpu/inorder/resources/fetch_seq_unit.cc
--- a/src/cpu/inorder/resources/fetch_seq_unit.cc       Sun Jan 31 18:29:59 
2010 -0500
+++ b/src/cpu/inorder/resources/fetch_seq_unit.cc       Sun Jan 31 18:30:08 
2010 -0500
@@ -54,6 +54,11 @@
     }
 }
 
+FetchSeqUnit::~FetchSeqUnit()
+{
+    delete [] resourceEvent;
+}
+
 void
 FetchSeqUnit::init()
 {
diff -r 6327f5071027 -r 632ad41ac489 src/cpu/inorder/resources/fetch_seq_unit.hh
--- a/src/cpu/inorder/resources/fetch_seq_unit.hh       Sun Jan 31 18:29:59 
2010 -0500
+++ b/src/cpu/inorder/resources/fetch_seq_unit.hh       Sun Jan 31 18:30:08 
2010 -0500
@@ -54,8 +54,8 @@
   public:
     FetchSeqUnit(std::string res_name, int res_id, int res_width,
               int res_latency, InOrderCPU *_cpu, ThePipeline::Params *params);
-    virtual ~FetchSeqUnit() {}
-
+    virtual ~FetchSeqUnit();
+    
     virtual void init();
     virtual void activateThread(ThreadID tid);
     virtual void deactivateThread(ThreadID tid);
diff -r 6327f5071027 -r 632ad41ac489 src/cpu/inorder/resources/mult_div_unit.hh
--- a/src/cpu/inorder/resources/mult_div_unit.hh        Sun Jan 31 18:29:59 
2010 -0500
+++ b/src/cpu/inorder/resources/mult_div_unit.hh        Sun Jan 31 18:30:08 
2010 -0500
@@ -57,7 +57,6 @@
   public:
     MultDivUnit(std::string res_name, int res_id, int res_width,
               int res_latency, InOrderCPU *_cpu, ThePipeline::Params *params);
-    virtual ~MultDivUnit() {}
 
   public:
     /** Override default Resource getSlot(). Will only getSlot if
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to