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