void OSR::runPass() { StlVector < Node* >nodes(mm); ControlFlowGraph& flowgraph = irManager.getFlowGraph(); flowgraph.getNodes(nodes); StlVector < Node* >::iterator iter = nodes.begin(), end = nodes.end(); for (; iter != end; iter++) { Node* node = *iter; Inst* last_inst = (Inst*) node->getLastInst(); for (Inst* iter1 = (Inst*) node->getFirstInst(); iter1 != last_inst; iter1 = iter1->getNextInst()) { writeInst(iter1); } } StlVector < reduceCand >::iterator viter = cands.begin(); StlVector < reduceCand >::iterator vend = cands.end(); for (; viter != vend; viter++) { reduceCand rcand = *viter; replace(rcand.dst, rcand.iv, rcand.rc); } StlVector < Node* >nnodes(mm); ControlFlowGraph& ffg = irManager.getFlowGraph(); ffg.getNodes(nnodes); replaceLinearFuncTest(nnodes); }
bool InterfaceElement::isSubProblemInterfaceElement(const CSubProblem* pSubProblem) const { //TODO: Allow the edgement with split-nodes to be //located at subproblem or mesh boundaries // for(std::vector<Node*>::size_type i=0; // i<nnodes();i++) for(int i=0;i<nnodes();i++) { if(pSubProblem->containsNode(get_nodelist()[i])==false) { return false; } } for(std::vector<Node*>::size_type i=0; i<nodelist2.size();i++) { if(pSubProblem->containsNode(nodelist2[i])==false) { return false; } } return true; }
const std::string *Element::repr() const { std::string *rep = new std::string(master.name()); for(int i=0; i<nnodes(); i++) *rep += " " + to_string(*nodelist[i]); return rep; }