summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2007-06-21 13:50:35 -0400
committerAli Saidi <saidi@eecs.umich.edu>2007-06-21 13:50:35 -0400
commit5195500cdf7dc99b5367f91387eef4e9f5b65bfe (patch)
tree39573620fb33e212cd5887b78b786453838ae016
parent77aa98d0f84343445588b3c137463e4eba4c2909 (diff)
downloadgem5-5195500cdf7dc99b5367f91387eef4e9f5b65bfe.tar.xz
Use FastAlloc for Packet, Request, CoherenceState, and SenderState so we don't spend so much time calling malloc()
--HG-- extra : convert_revision : a946564eee46ed7d2aed41c32d488ca7f036c32f
-rw-r--r--src/mem/packet.hh7
-rw-r--r--src/mem/request.hh5
2 files changed, 8 insertions, 4 deletions
diff --git a/src/mem/packet.hh b/src/mem/packet.hh
index c1e6a1e7f..fb077901e 100644
--- a/src/mem/packet.hh
+++ b/src/mem/packet.hh
@@ -43,6 +43,7 @@
#include <bitset>
#include "base/compiler.hh"
+#include "base/fast_alloc.hh"
#include "base/misc.hh"
#include "mem/request.hh"
#include "sim/host.hh"
@@ -182,7 +183,7 @@ class MemCmd
* ultimate destination and back, possibly being conveyed by several
* different Packets along the way.)
*/
-class Packet
+class Packet : public FastAlloc
{
public:
@@ -257,7 +258,7 @@ class Packet
/** A virtual base opaque structure used to hold coherence-related
* state. A specific subclass would be derived from this to
* carry state specific to a particular coherence protocol. */
- class CoherenceState {
+ class CoherenceState : public FastAlloc {
public:
virtual ~CoherenceState() {}
};
@@ -274,7 +275,7 @@ class Packet
* needed to process it. A specific subclass would be derived
* from this to carry state specific to a particular sending
* device. */
- class SenderState {
+ class SenderState : public FastAlloc {
public:
virtual ~SenderState() {}
};
diff --git a/src/mem/request.hh b/src/mem/request.hh
index d2ebc91d3..e08593f0d 100644
--- a/src/mem/request.hh
+++ b/src/mem/request.hh
@@ -39,6 +39,7 @@
#ifndef __MEM_REQUEST_HH__
#define __MEM_REQUEST_HH__
+#include "base/fast_alloc.hh"
#include "sim/host.hh"
#include "sim/core.hh"
@@ -76,7 +77,7 @@ const uint32_t MEM_SWAP = 0x100000;
const uint32_t MEM_SWAP_COND = 0x200000;
-class Request
+class Request : public FastAlloc
{
private:
/**
@@ -153,6 +154,8 @@ class Request
setVirt(_asid, _vaddr, _size, _flags, _pc);
}
+ ~Request() {} // for FastAlloc
+
/**
* Set up CPU and thread numbers. */
void setThreadContext(int _cpuNum, int _threadNum)