OpenASIP  2.0
BFRemoveLoopChecks.hh
Go to the documentation of this file.
1 #include "BFOptimization.hh"
2 #include "DataDependenceGraph.hh"
3 
5 public:
7  BFOptimization(sched) {}
8  bool operator()();
9  void undoOnlyMe();
10 private:
11 
12  typedef std::set<ProgramOperationPtr, ProgramOperationPtrComparator>
14 
15  void removePoFromQueue(
16  POSet& queuedToRemovePo, POSet& maybeRemovePo,
17  DataDependenceGraph::NodeSet& queuedToRemoveMove,
18  DataDependenceGraph::NodeSet& maybeRemoveMove);
19 
20  void checkMaybePos(
21  POSet& maybeRemove, POSet& queuedToRemove, POSet& finishedAlivePo);
22 
24  DataDependenceGraph::NodeSet& queuedToRemoveMove,
25  DataDependenceGraph::NodeSet& maybeRemoveMove,
26  POSet& queuedToRemovePo, POSet& maybeRemovePo);
27 
28  void checkMaybeMoves(
29  DataDependenceGraph::NodeSet& maybeRemove,
30  DataDependenceGraph::NodeSet& queuedToRemove,
31  DataDependenceGraph::NodeSet& aliveNodes);
32 
33  void checkAlivePO(
34  POSet& queuedAlivePo, POSet& finishedAlivePo,
35  DataDependenceGraph::NodeSet& queuedAliveMoves,
36  DataDependenceGraph::NodeSet& finishedAliveMoves);
37 
38  void checkAliveMove(DataDependenceGraph::NodeSet& queuedAliveMoves,
39  DataDependenceGraph::NodeSet& finishedAliveMoves,
40  POSet& queuedAlivePo, POSet& finishedAlivePo);
41 
42  void queueAliveMove(
43  MoveNode& mn,
44  POSet& queuedAlivePo, POSet& finishedAlivePo,
45  DataDependenceGraph::NodeSet& queuedAliveMoves,
46  DataDependenceGraph::NodeSet& finishedAliveMoves);
47 
49  std::set<ProgramOperationPtr, ProgramOperationPtrComparator> removedPOs_;
50 };
BFRemoveLoopChecksAndJump::BFRemoveLoopChecksAndJump
BFRemoveLoopChecksAndJump(BF2Scheduler &sched)
Definition: BFRemoveLoopChecks.hh:6
BFRemoveLoopChecksAndJump::checkAliveMove
void checkAliveMove(DataDependenceGraph::NodeSet &queuedAliveMoves, DataDependenceGraph::NodeSet &finishedAliveMoves, POSet &queuedAlivePo, POSet &finishedAlivePo)
Definition: BFRemoveLoopChecks.cc:157
BFRemoveLoopChecksAndJump::checkMaybePos
void checkMaybePos(POSet &maybeRemove, POSet &queuedToRemove, POSet &finishedAlivePo)
Definition: BFRemoveLoopChecks.cc:281
BoostGraph< MoveNode, DataDependenceEdge >::NodeSet
std::set< MoveNode *, typename MoveNode ::Comparator > NodeSet
Definition: BoostGraph.hh:86
BFRemoveLoopChecksAndJump::queueAliveMove
void queueAliveMove(MoveNode &mn, POSet &queuedAlivePo, POSet &finishedAlivePo, DataDependenceGraph::NodeSet &queuedAliveMoves, DataDependenceGraph::NodeSet &finishedAliveMoves)
Definition: BFRemoveLoopChecks.cc:127
BFRemoveLoopChecksAndJump::removeMoveFromQueue
void removeMoveFromQueue(DataDependenceGraph::NodeSet &queuedToRemoveMove, DataDependenceGraph::NodeSet &maybeRemoveMove, POSet &queuedToRemovePo, POSet &maybeRemovePo)
Definition: BFRemoveLoopChecks.cc:234
DataDependenceGraph.hh
MoveNode
Definition: MoveNode.hh:65
BFOptimization
Definition: BFOptimization.hh:73
BFRemoveLoopChecksAndJump::removePoFromQueue
void removePoFromQueue(POSet &queuedToRemovePo, POSet &maybeRemovePo, DataDependenceGraph::NodeSet &queuedToRemoveMove, DataDependenceGraph::NodeSet &maybeRemoveMove)
Definition: BFRemoveLoopChecks.cc:180
BFRemoveLoopChecksAndJump::removedPOs_
std::set< ProgramOperationPtr, ProgramOperationPtrComparator > removedPOs_
Definition: BFRemoveLoopChecks.hh:49
BFRemoveLoopChecksAndJump::removedMoves_
DataDependenceGraph::NodeSet removedMoves_
Definition: BFRemoveLoopChecks.hh:48
BF2Scheduler
Definition: BF2Scheduler.hh:74
BFRemoveLoopChecksAndJump::checkAlivePO
void checkAlivePO(POSet &queuedAlivePo, POSet &finishedAlivePo, DataDependenceGraph::NodeSet &queuedAliveMoves, DataDependenceGraph::NodeSet &finishedAliveMoves)
Definition: BFRemoveLoopChecks.cc:105
BFRemoveLoopChecksAndJump::undoOnlyMe
void undoOnlyMe()
Definition: BFRemoveLoopChecks.cc:301
BFRemoveLoopChecksAndJump::operator()
bool operator()()
Definition: BFRemoveLoopChecks.cc:7
BFRemoveLoopChecksAndJump
Definition: BFRemoveLoopChecks.hh:4
BFRemoveLoopChecksAndJump::checkMaybeMoves
void checkMaybeMoves(DataDependenceGraph::NodeSet &maybeRemove, DataDependenceGraph::NodeSet &queuedToRemove, DataDependenceGraph::NodeSet &aliveNodes)
Definition: BFRemoveLoopChecks.cc:289
BFOptimization.hh
BFRemoveLoopChecksAndJump::POSet
std::set< ProgramOperationPtr, ProgramOperationPtrComparator > POSet
Definition: BFRemoveLoopChecks.hh:13