#include <include/dataflow.h>
Definition at line 44 of file dataflow.h.
| Public Member Functions | |
| int | ancestorWithLowestSemi (int v) | 
| bool | canRename (Exp *e, UserProc *proc) | 
| bool | canRenameLocalsParams () | 
| void | clearA_phi () | 
| void | computeDF (int n) | 
| void | convertImplicits (Cfg *cfg) | 
| DataFlow () | |
| void | DFS (int p, int n) | 
| bool | doesDominate (int n, int w) | 
| void | dominators (Cfg *cfg) | 
| void | dumpA_orig () | 
| void | dumpA_phi () | 
| void | dumpDefsites () | 
| void | dumpStacks () | 
| void | findLiveAtDomPhi (int n, LocationSet &usedByDomPhi, LocationSet &usedByDomPhi0, std::map< Exp *, PhiAssign *, lessExpStar > &defdByPhi) | 
| std::set< int > & | getA_phi (Exp *e) | 
| std::set< int > & | getDF (int node) | 
| int | getIdom (int node) | 
| int | getSemi (int node) | 
| void | Link (int p, int n) | 
| PBB | nodeToBB (int node) | 
| int | pbbToNode (PBB bb) | 
| bool | placePhiFunctions (UserProc *proc) | 
| bool | renameBlockVars (UserProc *proc, int n, bool clearStacks=false) | 
| void | setDominanceNums (int n, int &currNum) | 
| void | setRenameLocalsParams (bool b) | 
| Private Attributes | |
| std::vector< std::set< Exp *, lessExpStar > > | A_orig | 
| std::map< Exp *, std::set< int >, lessExpStar > | A_phi | 
| std::vector< int > | ancestor | 
| std::vector< PBB > | BBs | 
| std::vector< int > | best | 
| std::vector< std::set< int > > | bucket | 
| std::set< int > | defallsites | 
| std::map< Exp *, std::set< int >, lessExpStar > | defsites | 
| std::map< Exp *, Statement *, lessExpStar > | defStmts | 
| std::vector< std::set< int > > | DF | 
| std::vector< int > | dfnum | 
| std::vector< int > | idom | 
| std::map< PBB, int > | indices | 
| int | N | 
| std::vector< int > | parent | 
| bool | renameLocalsAndParams | 
| std::vector< int > | samedom | 
| std::vector< int > | semi | 
| std::map< Exp *, std::stack< Statement * >, lessExpStar > | Stacks | 
| std::vector< int > | vertex | 
| 
 | 
| 
 Definition at line 94 of file dataflow.h. | 
| 
 | 
| 
 Definition at line 135 of file dataflow.cpp. | 
| 
 | ||||||||||||
| 
 Definition at line 194 of file dataflow.cpp. References Exp::getSubExp1(), UserProc::isAddressEscapedVar(), Exp::isFlags(), Exp::isLocal(), UserProc::isLocalOrParamPattern(), Exp::isMainFlag(), Exp::isMemOf(), Exp::isRegOf(), Exp::isSubscript(), Exp::isTemp(), and renameLocalsAndParams. Referenced by UserProc::canRename(), and placePhiFunctions(). | 
| 
 | 
| 
 Definition at line 109 of file dataflow.h. References renameLocalsAndParams. | 
| 
 | 
| 
 Definition at line 118 of file dataflow.h. References A_phi. | 
| 
 | 
| 
 Definition at line 160 of file dataflow.cpp. References BBs, BasicBlock::getOutEdges(), idom, and indices. | 
| 
 | 
| 
 Definition at line 740 of file dataflow.cpp. References A_phi. | 
| 
 | ||||||||||||
| 
 Definition at line 38 of file dataflow.cpp. References BBs, dfnum, BasicBlock::getOutEdges(), indices, N, parent, and vertex. | 
| 
 | ||||||||||||
| 
 Definition at line 151 of file dataflow.cpp. References idom. | 
| 
 | 
| 
 Definition at line 53 of file dataflow.cpp. References ancestor, BBs, Cfg::begin(), best, bucket, DF, dfnum, Cfg::end(), Cfg::getEntryBB(), Cfg::getNumBBs(), idom, indices, N, parent, samedom, semi, and vertex. Referenced by UserProc::initialiseDecompile(), StatementTest::testBypass(), CfgTest::testDominators(), CfgTest::testPlacePhi(), CfgTest::testPlacePhi2(), CfgTest::testRenameVars(), and CfgTest::testSemiDominators(). | 
| 
 | 
| 
 Definition at line 581 of file dataflow.cpp. References A_orig. | 
| 
 | 
| 
 Definition at line 215 of file dataflow.cpp. References A_phi. | 
| 
 | 
| 
 Definition at line 569 of file dataflow.cpp. References defsites. | 
| 
 | 
| 
 Definition at line 556 of file dataflow.cpp. References Stacks. | 
| 
 | ||||||||||||||||||||
| 
 Definition at line 791 of file dataflow.cpp. References BBs, BasicBlock::getFirstStmt(), BasicBlock::getNextStmt(), LocationSet::insert(), and Statement::isPhi(). Referenced by UserProc::findLiveAtDomPhi(). | 
| 
 | 
| 
 Definition at line 126 of file dataflow.h. References A_phi. Referenced by CfgTest::testPlacePhi(), and CfgTest::testPlacePhi2(). | 
| 
 | 
| 
 Definition at line 122 of file dataflow.h. References DF. | 
| 
 | 
| 
 Definition at line 124 of file dataflow.h. References idom. | 
| 
 | 
| 
 Definition at line 125 of file dataflow.h. References semi. | 
| 
 | ||||||||||||
| 
 Definition at line 146 of file dataflow.cpp. | 
| 
 | 
| 
 Definition at line 123 of file dataflow.h. References BBs. | 
| 
 | 
| 
 Definition at line 121 of file dataflow.h. References indices. | 
| 
 | 
| 
 Definition at line 230 of file dataflow.cpp. References A_orig, ancestor, BBs, best, bucket, canRename(), defallsites, defsites, defStmts, dfnum, UserProc::getCFG(), BasicBlock::getFirstStmt(), BasicBlock::getNextStmt(), Cfg::getNumBBs(), indices, parent, samedom, semi, and vertex. Referenced by UserProc::earlyDecompile(), UserProc::middleDecompile(), UserProc::placePhiFunctions(), UserProc::remUnusedStmtEtc(), CfgTest::testPlacePhi(), CfgTest::testPlacePhi2(), and CfgTest::testRenameVars(). | 
| 
 | ||||||||||||||||
| 
 Definition at line 345 of file dataflow.cpp. References Exp::addUsedLocs(), BBs, Exp::clone(), BasicBlock::getFirstStmt(), BasicBlock::getNextStmt(), Exp::getSubExp1(), Exp::isMemOf(), Statement::isPhi(), Exp::isRegOf(), and Stacks. Referenced by UserProc::doRenameBlockVars(), StatementTest::testBypass(), and CfgTest::testRenameVars(). | 
| 
 | ||||||||||||
| 
 | 
| 
 | 
| 
 Definition at line 108 of file dataflow.h. References renameLocalsAndParams. | 
| 
 | 
| 
 Definition at line 71 of file dataflow.h. Referenced by dumpA_orig(), and placePhiFunctions(). | 
| 
 | 
| 
 Definition at line 77 of file dataflow.h. Referenced by clearA_phi(), convertImplicits(), dumpA_phi(), and getA_phi(). | 
| 
 | 
| 
 Definition at line 57 of file dataflow.h. Referenced by ancestorWithLowestSemi(), dominators(), Link(), and placePhiFunctions(). | 
| 
 | 
| 
 Definition at line 48 of file dataflow.h. Referenced by computeDF(), DFS(), dominators(), findLiveAtDomPhi(), nodeToBB(), placePhiFunctions(), and renameBlockVars(). | 
| 
 | 
| 
 Definition at line 62 of file dataflow.h. Referenced by ancestorWithLowestSemi(), dominators(), Link(), and placePhiFunctions(). | 
| 
 | 
| 
 Definition at line 63 of file dataflow.h. Referenced by dominators(), and placePhiFunctions(). | 
| 
 | 
| 
 Definition at line 75 of file dataflow.h. Referenced by placePhiFunctions(). | 
| 
 | 
| 
 Definition at line 73 of file dataflow.h. Referenced by dumpDefsites(), and placePhiFunctions(). | 
| 
 | 
| 
 Definition at line 79 of file dataflow.h. Referenced by placePhiFunctions(). | 
| 
 | 
| 
 Definition at line 65 of file dataflow.h. Referenced by dominators(), and getDF(). | 
| 
 | 
| 
 Definition at line 55 of file dataflow.h. Referenced by ancestorWithLowestSemi(), DFS(), dominators(), and placePhiFunctions(). | 
| 
 | 
| 
 Definition at line 58 of file dataflow.h. Referenced by computeDF(), doesDominate(), dominators(), and getIdom(). | 
| 
 | 
| 
 Definition at line 49 of file dataflow.h. Referenced by computeDF(), DFS(), dominators(), pbbToNode(), and placePhiFunctions(). | 
| 
 | 
| 
 Definition at line 64 of file dataflow.h. Referenced by DFS(), and dominators(). | 
| 
 | 
| 
 Definition at line 61 of file dataflow.h. Referenced by DFS(), dominators(), and placePhiFunctions(). | 
| 
 | 
| 
 Definition at line 91 of file dataflow.h. Referenced by canRename(), canRenameLocalsParams(), and setRenameLocalsParams(). | 
| 
 | 
| 
 Definition at line 59 of file dataflow.h. Referenced by dominators(), and placePhiFunctions(). | 
| 
 | 
| 
 Definition at line 56 of file dataflow.h. Referenced by ancestorWithLowestSemi(), dominators(), getSemi(), and placePhiFunctions(). | 
| 
 | 
| 
 Definition at line 86 of file dataflow.h. Referenced by dumpStacks(), and renameBlockVars(). | 
| 
 | 
| 
 Definition at line 60 of file dataflow.h. Referenced by DFS(), dominators(), and placePhiFunctions(). | 
 1.4.6
 1.4.6