diff options
Diffstat (limited to 'src/cpu')
-rw-r--r-- | src/cpu/activity.cc | 5 | ||||
-rw-r--r-- | src/cpu/activity.hh | 1 | ||||
-rw-r--r-- | src/cpu/base.cc | 3 | ||||
-rw-r--r-- | src/cpu/o3/regfile.hh | 12 |
4 files changed, 21 insertions, 0 deletions
diff --git a/src/cpu/activity.cc b/src/cpu/activity.cc index 13613cffc..87875c683 100644 --- a/src/cpu/activity.cc +++ b/src/cpu/activity.cc @@ -46,6 +46,11 @@ ActivityRecorder::ActivityRecorder(const string &name, int num_stages, std::memset(stageActive, 0, numStages); } +ActivityRecorder::~ActivityRecorder() +{ + delete[] stageActive; +} + void ActivityRecorder::activity() { diff --git a/src/cpu/activity.hh b/src/cpu/activity.hh index f119c95cc..7913bf5e7 100644 --- a/src/cpu/activity.hh +++ b/src/cpu/activity.hh @@ -54,6 +54,7 @@ class ActivityRecorder public: ActivityRecorder(const std::string &name, int num_stages, int longest_latency, int count); + ~ActivityRecorder(); /** Records that there is activity this cycle. */ void activity(); diff --git a/src/cpu/base.cc b/src/cpu/base.cc index c942cad44..4017140a5 100644 --- a/src/cpu/base.cc +++ b/src/cpu/base.cc @@ -243,6 +243,9 @@ BaseCPU::enableFunctionTrace() BaseCPU::~BaseCPU() { + delete profileEvent; + delete[] comLoadEventQueue; + delete[] comInstEventQueue; } void diff --git a/src/cpu/o3/regfile.hh b/src/cpu/o3/regfile.hh index 117c955c2..d0f50c85c 100644 --- a/src/cpu/o3/regfile.hh +++ b/src/cpu/o3/regfile.hh @@ -75,6 +75,11 @@ class PhysRegFile PhysRegFile(O3CPU *_cpu, unsigned _numPhysicalIntRegs, unsigned _numPhysicalFloatRegs); + /** + * Destructor to free resources + */ + ~PhysRegFile(); + //Everything below should be pretty well identical to the normal //register file that exists within AlphaISA class. //The duplication is unfortunate but it's better than having @@ -197,4 +202,11 @@ PhysRegFile<Impl>::PhysRegFile(O3CPU *_cpu, unsigned _numPhysicalIntRegs, memset(floatRegFile, 0, sizeof(PhysFloatReg) * numPhysicalFloatRegs); } +template <class Impl> +PhysRegFile<Impl>::~PhysRegFile() +{ + delete intRegFile; + delete floatRegFile; +} + #endif |