コード例 #1
0
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);

}
コード例 #2
0
ファイル: element.C プロジェクト: shkeshavarz/OOF2
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;
}
コード例 #3
0
ファイル: element.C プロジェクト: shkeshavarz/OOF2
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;
}