1 #ifndef PARTITIONED_ANALYSIS_H
2 #define PARTITIONED_ANALYSIS_H
56 std::string
str(std::string indent=
"")
58 std::ostringstream oss;
60 oss << indent <<
"[partSplit:\n";
61 oss << indent <<
" splitSet = <";
62 for(std::set<IntraPartitionDataflow*>::iterator it=
splitSet.begin(); it!=
splitSet.end(); )
69 oss << indent <<
" master = "<<
master <<
"]\n";
91 std::map<IntraPartitionDataflow*, std::list<partSplit*> >
parts2splits;
95 std::map<IntraPartitionDataflow*, IntraPartitionDataflowCheckpoint*>
parts2chkpts;
123 std::set<IntraPartitionDataflow*>
split(
IntraPartitionDataflow* origA, std::vector<IntraPartitionDataflowCheckpoint*> partitionChkpts,
143 const std::map<IntraPartitionDataflow*, IntraPartitionDataflowCheckpoint*>&
parts2chkpts)=0;
184 for(std::set<Analysis*>::iterator it = unionSet.begin(); it!=unionSet.end(); it++)
185 { this->unionSet.insert(*it); }
196 std::set<IntraPartitionDataflow*>
tgtA;
206 for(std::set<IntraPartitionDataflow*>::iterator it =
tgtA.begin(); it!=
tgtA.end(); it++)
277 const std::vector<Lattice*>& dfInfo,
const std::vector<NodeFact*>& facts,
318 dfChkpt(dfChkpt), func(func)
324 this->curNode = NULL;
338 std::string
str(std::string indent=
"")
340 std::ostringstream outs;
341 outs << indent <<
"[IntraPartitionDataflowCheckpoint : \n";
342 outs << indent <<
" dfChkpt = \n"<<
dfChkpt.
str(indent+
" ")<<
"\n";
346 outs << indent <<
" curNode = NULL\n";
349 outs << indent <<
" joinNodes = None\n";
352 outs << indent <<
" joinNodes = \n";
354 { outs << indent <<
" <"<<(*it).getNode()->class_name()<<
" | "<<(*it).getNode()->unparseToString()<<
">\n"; }
357 outs << indent <<
" partitionCond = \n"<<
partitionCond->
str(indent+
" ")<<
"\n";
360 outs << indent <<
" partitionIndex = descendant "<<
partitionIndex<<
"]";
362 outs << indent <<
" partitionIndex = all descendants ("<<partitionIndex<<
")]";
410 splitType& splitAnalysis, std::vector</*LogicalCond*/printable*>& splitConditions,
bool& joinNode)=0;
432 const std::vector<Lattice*>& dfInfoBelow,
bool& splitPart, std::set<DataflowNode>& joinNodes,
438 const std::vector<Lattice*>& curNodeState,
DataflowNode curDFNode,
int nodeIndex,
439 const std::vector<Lattice*>& nextNodeState,
DataflowNode nextDFNode);