mem: Add default initializers to the fields in Request.

This avoids having to have bunches of uninteresting initializers in the
Request constructors, and accidentally forgetting to initialize any of
them.

Change-Id: If7a91fdf4aa6cd774f6f53474f55034ed6eda5f0
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/26227
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
This commit is contained in:
Gabe Black
2020-03-04 00:48:15 -08:00
parent b383997d4a
commit 526b3c0485

View File

@@ -305,14 +305,14 @@ class Request
* The physical address of the request. Valid only if validPaddr
* is set.
*/
Addr _paddr;
Addr _paddr = 0;
/**
* The size of the request. This field must be set when vaddr or
* paddr is written via setVirt() or setPhys(), so it is always
* valid as long as one of the address fields is valid.
*/
unsigned _size;
unsigned _size = 0;
/** Byte-enable mask for writes. */
std::vector<bool> _byteEnable;
@@ -320,7 +320,7 @@ class Request
/** The requestor ID which is unique in the system for all ports
* that are capable of issuing a transaction
*/
MasterID _masterId;
MasterID _masterId = invldMasterId;
/** Flag structure for the request. */
Flags _flags;
@@ -336,12 +336,12 @@ class Request
* latencies. This field is set to curTick() any time paddr or vaddr
* is written.
*/
Tick _time;
Tick _time = 0;
/**
* The task id associated with this request
*/
uint32_t _taskId;
uint32_t _taskId = ContextSwitchTaskId::Unknown;
union {
struct {
@@ -362,28 +362,28 @@ class Request
};
/** The address space ID. */
uint64_t _asid;
uint64_t _asid = 0;
};
/** The virtual address of the request. */
Addr _vaddr;
Addr _vaddr = 0;
/**
* Extra data for the request, such as the return value of
* store conditional or the compare value for a CAS. */
uint64_t _extraData;
uint64_t _extraData = 0;
/** The context ID (for statistics, locks, and wakeups). */
ContextID _contextId;
ContextID _contextId = 0;
/** program counter of initiating access; for tracing/debugging */
Addr _pc;
Addr _pc = 0;
/** Sequence number of the instruction that creates the request */
InstSeqNum _reqInstSeqNum;
InstSeqNum _reqInstSeqNum = 0;
/** A pointer to an atomic operation */
AtomicOpFunctorPtr atomicOpFunctor;
AtomicOpFunctorPtr atomicOpFunctor = nullptr;
LocalAccessor _localAccessor;
@@ -394,21 +394,10 @@ class Request
* _flags and privateFlags are cleared by Flags default
* constructor.)
*/
Request()
: _paddr(0), _size(0), _masterId(invldMasterId), _time(0),
_taskId(ContextSwitchTaskId::Unknown), _asid(0), _vaddr(0),
_extraData(0), _contextId(0), _pc(0),
_reqInstSeqNum(0), atomicOpFunctor(nullptr), translateDelta(0),
accessDelta(0), depth(0)
{}
Request() {}
Request(Addr paddr, unsigned size, Flags flags, MasterID mid,
InstSeqNum seq_num, ContextID cid)
: _paddr(0), _size(0), _masterId(invldMasterId), _time(0),
_taskId(ContextSwitchTaskId::Unknown), _asid(0), _vaddr(0),
_extraData(0), _contextId(0), _pc(0),
_reqInstSeqNum(seq_num), atomicOpFunctor(nullptr), translateDelta(0),
accessDelta(0), depth(0)
InstSeqNum seq_num, ContextID cid) : _reqInstSeqNum(seq_num)
{
setPhys(paddr, size, flags, mid, curTick());
setContext(cid);
@@ -421,32 +410,17 @@ class Request
* These fields are adequate to perform a request.
*/
Request(Addr paddr, unsigned size, Flags flags, MasterID mid)
: _paddr(0), _size(0), _masterId(invldMasterId), _time(0),
_taskId(ContextSwitchTaskId::Unknown), _asid(0), _vaddr(0),
_extraData(0), _contextId(0), _pc(0),
_reqInstSeqNum(0), atomicOpFunctor(nullptr), translateDelta(0),
accessDelta(0), depth(0)
{
setPhys(paddr, size, flags, mid, curTick());
}
Request(Addr paddr, unsigned size, Flags flags, MasterID mid, Tick time)
: _paddr(0), _size(0), _masterId(invldMasterId), _time(0),
_taskId(ContextSwitchTaskId::Unknown), _asid(0), _vaddr(0),
_extraData(0), _contextId(0), _pc(0),
_reqInstSeqNum(0), atomicOpFunctor(nullptr), translateDelta(0),
accessDelta(0), depth(0)
{
setPhys(paddr, size, flags, mid, time);
}
Request(uint64_t asid, Addr vaddr, unsigned size, Flags flags,
MasterID mid, Addr pc, ContextID cid)
: _paddr(0), _size(0), _masterId(invldMasterId), _time(0),
_taskId(ContextSwitchTaskId::Unknown), _asid(0), _vaddr(0),
_extraData(0), _contextId(0), _pc(0),
_reqInstSeqNum(0), atomicOpFunctor(nullptr), translateDelta(0),
accessDelta(0), depth(0)
{
setVirt(asid, vaddr, size, flags, mid, pc);
setContext(cid);
@@ -592,19 +566,19 @@ class Request
/**
* Time for the TLB/table walker to successfully translate this request.
*/
Tick translateDelta;
Tick translateDelta = 0;
/**
* Access latency to complete this memory transaction not including
* translation time.
*/
Tick accessDelta;
Tick accessDelta = 0;
/**
* Level of the cache hierachy where this request was responded to
* (e.g. 0 = L1; 1 = L2).
*/
mutable int depth;
mutable int depth = 0;
/**
* Accessor for size.