#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(). |