in src/sim/sim_tlpp.cc [99:130]
bool TlppVerify::InsnDependencyCheck(const VTAGenericInsn *insn,
bool before_run) {
const VTAMemInsn* mem = reinterpret_cast<const VTAMemInsn*>(insn);
bool pop_prev = mem->pop_prev_dep;
bool pop_next = mem->pop_next_dep;
bool push_prev = mem->push_prev_dep;
bool push_next = mem->push_next_dep;
CORE_TYPE core_type = GetCoreType(GetOperationCode(insn), insn);
bool bcheck = false;
switch (core_type) {
case COREGEMM:
bcheck = DependencyProcess(before_run, pop_prev,
pop_next, push_prev, push_next,
&l2g_q_, &s2g_q_, &g2l_q_, &g2s_q_, CORELOAD, CORESTORE);
break;
case CORELOAD:
bcheck = DependencyProcess(before_run, pop_prev,
pop_next, push_prev, push_next,
nullptr, &g2l_q_, nullptr, &l2g_q_, COREMAX, COREGEMM);
break;
case CORESTORE:
bcheck = DependencyProcess(before_run, pop_prev,
pop_next, push_prev, push_next,
&g2s_q_, nullptr, &s2g_q_, nullptr, COREGEMM, COREMAX);
break;
case COREMAX:
assert(0);
break;
}
return bcheck;
}