Initialize mem dep unit properly.
src/cpu/o3/mem_dep_unit_impl.hh: Initialize mem dep unit properly, add debug output. --HG-- extra : convert_revision : 3c56dedfa57de1edc4b1c8f8d9bc94e18002eff2
This commit is contained in:
parent
bf3223d7ce
commit
d9f159a3b9
2 changed files with 14 additions and 1 deletions
|
@ -69,7 +69,7 @@ class MemDepUnit {
|
|||
typedef typename Impl::DynInstPtr DynInstPtr;
|
||||
|
||||
/** Empty constructor. Must call init() prior to using in this case. */
|
||||
MemDepUnit() {}
|
||||
MemDepUnit();
|
||||
|
||||
/** Constructs a MemDepUnit with given parameters. */
|
||||
MemDepUnit(Params *params);
|
||||
|
|
|
@ -33,6 +33,13 @@
|
|||
#include "cpu/o3/inst_queue.hh"
|
||||
#include "cpu/o3/mem_dep_unit.hh"
|
||||
|
||||
template <class MemDepPred, class Impl>
|
||||
MemDepUnit<MemDepPred, Impl>::MemDepUnit()
|
||||
: loadBarrier(false), loadBarrierSN(0), storeBarrier(false),
|
||||
storeBarrierSN(0), iqPtr(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
template <class MemDepPred, class Impl>
|
||||
MemDepUnit<MemDepPred, Impl>::MemDepUnit(Params *params)
|
||||
: depPred(params->SSITSize, params->LFSTSize), loadBarrier(false),
|
||||
|
@ -160,8 +167,12 @@ MemDepUnit<MemDepPred, Impl>::insert(DynInstPtr &inst)
|
|||
// producing memrefs/stores.
|
||||
InstSeqNum producing_store;
|
||||
if (inst->isLoad() && loadBarrier) {
|
||||
DPRINTF(MemDepUnit, "Load barrier [sn:%lli] in flight\n",
|
||||
loadBarrierSN);
|
||||
producing_store = loadBarrierSN;
|
||||
} else if (inst->isStore() && storeBarrier) {
|
||||
DPRINTF(MemDepUnit, "Store barrier [sn:%lli] in flight\n",
|
||||
storeBarrierSN);
|
||||
producing_store = storeBarrierSN;
|
||||
} else {
|
||||
producing_store = depPred.checkInst(inst->readPC());
|
||||
|
@ -171,10 +182,12 @@ MemDepUnit<MemDepPred, Impl>::insert(DynInstPtr &inst)
|
|||
|
||||
// If there is a producing store, try to find the entry.
|
||||
if (producing_store != 0) {
|
||||
DPRINTF(MemDepUnit, "Searching for producer\n");
|
||||
MemDepHashIt hash_it = memDepHash.find(producing_store);
|
||||
|
||||
if (hash_it != memDepHash.end()) {
|
||||
store_entry = (*hash_it).second;
|
||||
DPRINTF(MemDepUnit, "Proucer found\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue