J
Jianli Shen
const DInst *stopAtDst = 0;
while (dinst->hasPending()) {
if (stopAtDst == dinst->getFirstPending())
break; ///////break? break? break? is this break outof the whole
while loop and never in the loop again???????????????????????
DInst *dstReady = dinst->getNextPending();
if (!dstReady->isIssued()) {
// Accross processor dependence
if (dstReady->hasDepsAtRetire())
dstReady->clearDepsAtRetire();
continue; //////continue?? continue?? continu?? is this continue
means finish this iteration of the loop and continue working on the next
iteration of the loop if any
}
if (dstReady->isExecuted()) {
if (!dstReady->hasDeps())
dstReady->scrap(); //dInstPool.in(this)
continue;
}
if (dstReady->hasDepsAtRetire() && dinst->getInst()->isStore()) {
dosomething;
}
}
while (dinst->hasPending()) {
if (stopAtDst == dinst->getFirstPending())
break; ///////break? break? break? is this break outof the whole
while loop and never in the loop again???????????????????????
DInst *dstReady = dinst->getNextPending();
if (!dstReady->isIssued()) {
// Accross processor dependence
if (dstReady->hasDepsAtRetire())
dstReady->clearDepsAtRetire();
continue; //////continue?? continue?? continu?? is this continue
means finish this iteration of the loop and continue working on the next
iteration of the loop if any
}
if (dstReady->isExecuted()) {
if (!dstReady->hasDeps())
dstReady->scrap(); //dInstPool.in(this)
continue;
}
if (dstReady->hasDepsAtRetire() && dinst->getInst()->isStore()) {
dosomething;
}
}