const StlVectorSet<VarOpnd *> *getChangedVarsSet() { if (changedVars.empty()) { return 0; } else { if (removedPhiRecently) { changedVarsSet.clear(); changedVarsSet.insert(changedVars.begin(), changedVars.end()); removedPhiRecently = false; } return &changedVarsSet; } };
U_32 CfgCodeSelector::genDispatchNode(U_32 numInEdges,U_32 numOutEdges, const StlVector<MethodDesc*>& inlineEndMarkers, double cnt) { assert(nextNodeId < numNodes); U_32 nodeId = nextNodeId++; Node* node = irManager.getFlowGraph()->createDispatchNode(); node->setExecCount(cnt); nodes[nodeId] = node; hasDispatchNodes = true; for (StlVector<MethodDesc*>::const_iterator it = inlineEndMarkers.begin(), end = inlineEndMarkers.end(); it!=end; ++it) { MethodDesc* desc = *it; node->appendInst(irManager.newMethodEndPseudoInst(desc)); } return nodeId; }