OA_ptr<DataFlowSet> CFGDFProblem::solve(OA_ptr<CFG::CFGInterface> cfg) { // remove all mappings from statements to in and out sets // mStmtInSetMap.clear(); // mStmtOutSetMap.clear(); mNodeInSetMap.clear(); mNodeOutSetMap.clear(); mNodeInitTransApp.clear(); mTop = initializeTop(); //mBottom = initializeBottom(); DataFlow::DGraphIterativeDFP::solve(cfg, ((mDirection==Forward) ? DGraph::DEdgeOrg : DGraph::DEdgeRev)); // if forward then return DataFlowSet for exit if (mDirection==Forward) { OA_ptr<CFG::CFGInterface::NodeInterface> exitnode = cfg->getExit(); return mNodeInSetMap[exitnode]; // if backward then return DataFlowSet for entry } else { OA_ptr<CFG::CFGInterface::NodeInterface> entrynode = cfg->getEntry(); return mNodeOutSetMap[entrynode]; } }
void CylinderGeometryHelper::initialize() { initializeShield(); initializeBottom(); initializeTop(); }