void SimpleBinaryOperation::setOperation(Operator _o, Type const& _left, Type const& _right) { List<ValueDefiner*> l = findOperators(_o, _left, _right); if (l.size() && (m_symbolCache != l[0] || m_operator != _o)) { m_operator = _o; setDependency(m_symbolCache, l[0]); } }
void doStage(int isFirst, int *stall, int * cycles, int * counter) { if(pipelineInsts[4]->inst!=0){ if(debug)printf("DEBUG: writing back\n"); writeback(pipelineInsts[4]); } if(pipelineInsts[3]->inst!=0){ if(debug)printf("DEBUG: memorying\n"); memory(pipelineInsts[3]); } // if stall is being set, no need to call any of fowllowing functions if(!*stall){ if(debug)printf("DEBUG: no stall...........\n"); if(pipelineInsts[2]->inst!=0){ if(debug)printf("DEBUG: executing\n"); forwardData(pipelineInsts); // forward data before execute if(debug)printf("DEBUG: instruction is about to get executed: %s\n", pipelineInsts[2]->string); execute(pipelineInsts[2]); } if(pipelineInsts[1]->inst!=0){ if(debug)printf("DEBUG: decoding\n"); decode(pipelineInsts[1]); setDependency(pipelineInsts, stall); // set dependencies after decode // if cur inst is bge if(pipelineInsts[1]->signals.btype != 0){ if(debug)printf("DEBUG: calling doBranching\n"); doBranching(pipelineInsts, stall, cycles, counter); } } } if(pipelineInsts[0]->inst!=0 || isFirst){ if(debug)printf("DEBUG: fetching\n"); fetch(pipelineInsts[0]); if(*stall){ // when stall is being set, needs to defetch one instruction /*if(pipelineInsts[1]->signals.btype == 2){ if(pipelineInsts[2]->aluout >= 0) pc = pc + pipelineInsts[1]->imm + 1; }*/ defetch(pipelineInsts[0]); } } }
//------------------------- //object types //set type of eCopy according to type of eOrig void PlanRep::setCopyType(edge eCopy, edge eOrig) { OGDF_ASSERT(original(eCopy) == eOrig) m_eType[eCopy] = m_pGraphAttributes ? m_pGraphAttributes->type(eOrig) : Graph::association; if (eOrig) { switch (m_pGraphAttributes ? m_pGraphAttributes->type(eOrig) : Graph::association) { case Graph::generalization: setGeneralization(eCopy); break; case Graph::association: setAssociation(eCopy); break; case Graph::dependency: setDependency(eCopy); break; OGDF_NODEFAULT }//switch }//if original }//setCopyType