#include <include/basicblock.h>
Definition at line 129 of file basicblock.h.
| Public Types | |
| typedef std::list< Exp * >::iterator | elit | 
| typedef std::list< RTL * >::iterator | rtlit | 
| Get first/next statement this BB Somewhat intricate because of the post call semantics; these funcs save a lot of duplicated, easily-bugged code. | |
| typedef std::list< RTL * >::reverse_iterator | rtlrit | 
| Public Member Functions | |
| void | addInEdge (PBB newInEdge) | 
| BasicBlock (const BasicBlock &bb) | |
| BasicBlock () | |
| bool | calcLiveness (ConnectionGraph &ig, UserProc *proc) | 
| bool | decodeIndirectJmp (UserProc *proc) | 
| void | deleteEdge (PBB edge) | 
| void | deleteInEdge (PBB edge) | 
| void | deleteInEdge (std::vector< PBB >::iterator &it) | 
| unsigned | DFTOrder (int &first, int &last) | 
| void | dump () | 
| int | findNumCases () | 
| void | generateBodyCode (HLLCode &hll, bool dup=false) | 
| void | generateCode (HLLCode *hll, int indLevel, PBB latch, std::list< PBB > &followSet, std::list< PBB > &gotoSet, UserProc *proc) | 
| ADDRESS | getCallDest () | 
| Proc * | getCallDestProc () | 
| Exp * | getCond () throw (LastStatementNotABranchError) | 
| PBB | getCorrectOutEdge (ADDRESS a) | 
| Exp * | getDest () throw (LastStatementNotAGotoError) | 
| Proc * | getDestProc () | 
| Statement * | getFirstStmt () | 
| Statement * | getFirstStmt (rtlit &rit, StatementList::iterator &sit) | 
| ADDRESS | getHiAddr () | 
| std::vector< PBB > & | getInEdges () | 
| int | getLabel () | 
| std::string & | getLabelStr () | 
| RTL * | getLastRtl () | 
| Statement * | getLastStmt () | 
| Statement * | getLastStmt (rtlrit &rit, StatementList::reverse_iterator &sit) | 
| void | getLiveOut (LocationSet &live, LocationSet &phiLocs) | 
| BasicBlock * | getLoopBody () | 
| ADDRESS | getLowAddr () | 
| Statement * | getNextStmt (rtlit &rit, StatementList::iterator &sit) | 
| int | getNumInEdges () | 
| int | getNumOutEdges () | 
| PBB | getOutEdge (unsigned int i) | 
| std::vector< PBB > & | getOutEdges () | 
| Statement * | getPrevStmt (rtlrit &rit, StatementList::reverse_iterator &sit) | 
| std::list< RTL * > * | getRTLs () | 
| RTL * | getRTLWithStatement (Statement *stmt) | 
| void | getStatements (StatementList &stmts) | 
| char * | getStmtNumber () | 
| Get the statement number for the first BB as a character array. | |
| BBTYPE | getType () | 
| bool | isBackEdge (int inEdge) | 
| bool | isCaseOption () | 
| bool | isJmpZ (PBB dest) | 
| bool | isJumpReqd () | 
| bool | isLabelNeeded () | 
| bool | isPostCall () | 
| bool | isTraversed () | 
| void | prependStmt (Statement *s, UserProc *proc) | 
| void | print (std::ostream &os, bool html=false) | 
| char * | prints () | 
| void | printToLog () | 
| void | processSwitch (UserProc *proc) | 
| void | resetDFASets () | 
| unsigned | RevDFTOrder (int &first, int &last) | 
| void | setCond (Exp *e) throw (LastStatementNotABranchError) | 
| void | setInEdge (int i, PBB newIn) | 
| void | setJumpReqd () | 
| void | setLabelNeeded (bool b) | 
| void | setLabelStr (std::string &s) | 
| void | setOutEdge (int i, PBB newInEdge) | 
| void | setTraversed (bool bTraversed) | 
| void | simplify () | 
| bool | undoComputedBB (Statement *stmt) | 
| void | updateType (BBTYPE bbType, int iNumOutEdges) | 
| int | whichPred (PBB pred) | 
| ~BasicBlock () | |
| Static Public Member Functions | |
| static void | doAvail (StatementSet &s, PBB inEdge) | 
| static bool | lessAddress (PBB bb1, PBB bb2) | 
| static bool | lessFirstDFT (PBB bb1, PBB bb2) | 
| static bool | lessLastDFT (PBB bb1, PBB bb2) | 
| Public Attributes | |
| PBB | m_caseHead | 
| PBB | m_condFollow | 
| int | m_DFTfirst | 
| int | m_DFTlast | 
| int | m_DFTrevfirst | 
| int | m_DFTrevlast | 
| PBB | m_latchNode | 
| SBBTYPE | m_loopCondType | 
| PBB | m_loopFollow | 
| PBB | m_loopHead | 
| SBBTYPE | m_structType | 
| bool | overlappedRegProcessingDone | 
| Protected Member Functions | |
| void | addLiveIn (Exp *e) | 
| void | addOutEdge (PBB bb) | 
| void | addRTL (RTL *rtl) | 
| bool | allParentsGenerated () | 
| void | emitGotoAndLabel (HLLCode *hll, int indLevel, PBB dest) | 
| PBB | getCaseHead () | 
| PBB | getCondFollow () | 
| condType | getCondType () | 
| PBB | getLatchNode () | 
| PBB | getLoopFollow () | 
| PBB | getLoopHead () | 
| loopType | getLoopType () | 
| structType | getStructType () | 
| unstructType | getUnstructType () | 
| bool | hasBackEdge () | 
| bool | hasBackEdgeTo (BasicBlock *dest) | 
| char * | indent (int indLevel, int extra=0) | 
| bool | inLoop (PBB header, PBB latch) | 
| bool | isAncestorOf (BasicBlock *other) | 
| bool | isIn (std::list< PBB > &set, PBB bb) | 
| bool | isLatchNode () | 
| void | setCaseHead (PBB head, PBB follow) | 
| void | setCondFollow (PBB other) | 
| void | setCondType (condType l) | 
| void | setLatchNode (PBB latch) | 
| void | setLoopFollow (PBB other) | 
| void | setLoopHead (PBB head) | 
| void | setLoopStamps (int &time, std::vector< PBB > &order) | 
| void | setLoopType (loopType l) | 
| void | setRevLoopStamps (int &time) | 
| void | setRevOrder (std::vector< PBB > &order) | 
| void | setStructType (structType s) | 
| void | setUnstructType (unstructType us) | 
| void | WriteBB (HLLCode *hll, int indLevel) | 
| Protected Attributes | |
| PBB | caseHead | 
| PBB | condFollow | 
| condType | cType | 
| bool | hllLabel | 
| PBB | immPDom | 
| int | indentLevel | 
| int | inEdgesVisited | 
| char * | labelStr | 
| PBB | latchNode | 
| LocationSet | liveIn | 
| PBB | loopFollow | 
| PBB | loopHead | 
| int | loopStamps [2] | 
| loopType | lType | 
| bool | m_bIncomplete | 
| bool | m_bJumpReqd | 
| int | m_iLabelNum | 
| std::vector< PBB > | m_InEdges | 
| int | m_iNumInEdges | 
| int | m_iNumOutEdges | 
| bool | m_iTraversed | 
| bool | m_labelneeded | 
| std::string | m_labelStr | 
| BBTYPE | m_nodeType | 
| std::vector< PBB > | m_OutEdges | 
| std::list< RTL * > * | m_pRtls | 
| int | numForwardInEdges | 
| int | ord | 
| int | revLoopStamps [2] | 
| int | revOrd | 
| structType | sType | 
| travType | traversed | 
| unstructType | usType | 
| Private Member Functions | |
| BasicBlock (std::list< RTL * > *pRtls, BBTYPE bbType, int iNumOutEdges) | |
| void | setRTLs (std::list< RTL * > *rtls) | 
| Friends | |
| class | Cfg | 
| class | XMLProgParser | 
| Classes | |
| class | LastStatementNotABranchError | 
| class | LastStatementNotAGotoError | 
| 
 | 
| 
 Definition at line 412 of file basicblock.h. | 
| 
 | 
| Get first/next statement this BB Somewhat intricate because of the post call semantics; these funcs save a lot of duplicated, easily-bugged code. 
 Definition at line 410 of file basicblock.h. | 
| 
 | 
| 
 Definition at line 411 of file basicblock.h. | 
| 
 | 
| 
 Definition at line 64 of file basicblock.cpp. | 
| 
 | 
| 
 Definition at line 95 of file basicblock.cpp. | 
| 
 | 
| 
 Definition at line 120 of file basicblock.cpp. | 
| 
 | ||||||||||||||||
| 
 Definition at line 154 of file basicblock.cpp. References m_OutEdges, and setRTLs(). | 
| 
 | 
| 
 | 
| 
 Definition at line 550 of file basicblock.h. References LocationSet::insert(), and liveIn. | 
| 
 | 
| 
 Definition at line 544 of file basicblock.h. References m_OutEdges. | 
| 
 | 
| 
 Definition at line 545 of file basicblock.h. | 
| 
 | 
| 
 Definition at line 986 of file basicblock.cpp. References DFS_CODEGEN, hasBackEdgeTo(), m_InEdges, and traversed. Referenced by generateCode(). | 
| 
 | ||||||||||||
| 
 Definition at line 1644 of file basicblock.cpp. References LocationSet::addSubscript(), checkForOverlap(), DEBUG_LIVENESS, getLiveOut(), LOG, m_pRtls, LocationSet::makeDiff(), and LocationSet::prints(). Referenced by Cfg::findInterferences(). | 
| 
 | 
| 
 Definition at line 2005 of file basicblock.cpp. References PhiAssign::begin(), StatementSet::begin(), PhiAssign::end(), StatementSet::exists(), getFirstStmt(), getNextStmt(), Statement::getNumber(), StatementSet::insert(), Statement::isPhi(), NULL, and StatementSet::remove(). | 
| 
 | 
| 
 Definition at line 551 of file basicblock.cpp. References deleteInEdge(), m_iNumOutEdges, and m_OutEdges. | 
| 
 | 
| 
 Definition at line 541 of file basicblock.cpp. References deleteInEdge(), and m_InEdges. | 
| 
 | 
| 
 Definition at line 536 of file basicblock.cpp. References m_InEdges, and m_iNumInEdges. Referenced by deleteEdge(), and deleteInEdge(). | 
| 
 | ||||||||||||
| 
 Definition at line 571 of file basicblock.cpp. References child(), m_DFTfirst, m_iTraversed, and m_OutEdges. Referenced by Cfg::establishDFTOrder(). | 
| 
 | ||||||||||||
| 
 | 
| 
 | 
| 
 Definition at line 297 of file basicblock.cpp. References print(). | 
| 
 | ||||||||||||||||
| 
 Definition at line 999 of file basicblock.cpp. References HLLCode::AddBreak(), HLLCode::AddContinue(), HLLCode::AddGoto(), hllLabel, loopFollow, loopHead, and ord. Referenced by generateCode(). | 
| 
 | 
| 
 Definition at line 1960 of file basicblock.cpp. References Exp::getArity(), Exp::getOper(), Exp::isIntConst(), m_InEdges, opGtr, opGtrEq, opGtrEqUns, opGtrUns, opLess, opLessEq, opLessEqUns, opLessUns, and TWOWAY. | 
| 
 | ||||||||||||
| 
 | 
| 
 | ||||||||||||||||||||||||||||
| 
 | 
| 
 Definition at line 662 of file basicblock.cpp. References CALL, RTL::getList(), m_nodeType, m_pRtls, and STMT_CALL. | 
| 
 | 
| 
 Definition at line 677 of file basicblock.cpp. References CALL, RTL::getList(), m_nodeType, m_pRtls, and STMT_CALL. | 
| 
 | 
| 
 Definition at line 466 of file basicblock.h. References caseHead. | 
| 
 | 
| 
 Definition at line 800 of file basicblock.cpp. References BranchStatement::getCondExpr(), RTL::getHlStmt(), Statement::getKind(), LOG, m_pRtls, STMT_BRANCH, and VERBOSE. Referenced by generateCode(). | 
| 
 | 
| 
 Definition at line 485 of file basicblock.h. References condFollow. Referenced by Cfg::findLoopFollow(). | 
| 
 | 
| 
 Definition at line 1564 of file basicblock.cpp. | 
| 
 | 
| 
 Definition at line 505 of file basicblock.cpp. References m_OutEdges. | 
| 
 | 
| 
 Definition at line 814 of file basicblock.cpp. References GotoStatement::getDest(), RTL::getHlStmt(), CaseStatement::getSwitchInfo(), LOG, m_pRtls, SWITCH_INFO::pSwitchVar, and VERBOSE. Referenced by SparcFrontEnd::case_DD(). | 
| 
 | 
| 
 Definition at line 1420 of file basicblock.cpp. References CallStatement::getDestProc(), Statement::getKind(), m_pRtls, NULL, and STMT_CALL. | 
| 
 | 
| 
 Definition at line 745 of file basicblock.cpp. Referenced by decodeIndirectJmp(), and getStmtNumber(). | 
| 
 | ||||||||||||
| 
 Definition at line 695 of file basicblock.cpp. Referenced by FrontEnd::createReturnBlock(), DataFlow::findLiveAtDomPhi(), DataFlow::placePhiFunctions(), UserProc::rangeAnalysis(), DataFlow::renameBlockVars(), and Statement::updateRanges(). | 
| 
 | 
| 
 Definition at line 405 of file basicblock.cpp. Referenced by Cfg::label(), print(), and UserProc::processDecodedICTs(). | 
| 
 | 
| 
 Definition at line 439 of file basicblock.cpp. References m_InEdges. Referenced by dumpBB(), UserProc::isNoReturn(), JunctionStatement::rangeAnalysis(), and updateWorkListRev(). | 
| 
 | 
| 
 Definition at line 188 of file basicblock.cpp. References m_iLabelNum. | 
| 
 | 
| 
 Definition at line 162 of file basicblock.h. References m_labelStr. | 
| 
 | 
| 
 Definition at line 419 of file basicblock.h. Referenced by UserProc::processDecodedICTs(). | 
| 
 | 
| 
 Definition at line 759 of file basicblock.cpp. | 
| 
 | ||||||||||||
| 
 Definition at line 732 of file basicblock.cpp. Referenced by UserProc::markAsNonChildless(), UserProc::processDecodedICTs(), and UserProc::updateForUseChange(). | 
| 
 | 
| 
 Definition at line 465 of file basicblock.h. References latchNode. Referenced by Cfg::determineLoopType(), Cfg::findLoopFollow(), and Cfg::tagNodesInLoop(). | 
| 
 | ||||||||||||
| 
 Definition at line 1706 of file basicblock.cpp. References LocationSet::clear(), Exp::clone(), DEBUG_LIVENESS, Assignment::getLeft(), RTL::getList(), getLowAddr(), PhiAssign::getStmtAt(), LocationSet::insert(), LOG, m_OutEdges, LocationSet::makeUnion(), and NULL. Referenced by calcLiveness(). | 
| 
 | 
| 
 Definition at line 880 of file basicblock.cpp. References ENDLESSLOOP, m_iNumOutEdges, m_loopFollow, m_OutEdges, m_structType, POSTTESTLOOP, and PRETESTLOOP. | 
| 
 | 
| 
 Definition at line 482 of file basicblock.h. References loopFollow. | 
| 
 | 
| 
 Definition at line 462 of file basicblock.h. References loopHead. Referenced by Cfg::findLoopFollow(). | 
| 
 | 
| 
 Definition at line 1554 of file basicblock.cpp. References Loop, LoopCond, lType, and sType. Referenced by Cfg::findLoopFollow(). | 
| 
 | 
| 
 Definition at line 382 of file basicblock.cpp. Referenced by Cfg::commonPDom(), UserProc::decompile(), getLiveOut(), BranchStatement::getRangesForOutEdgeTo(), Cfg::label(), lessAddress(), print(), BlockSyntaxNode::printAST(), UserProc::setEntryBB(), CfgTest::testDominators(), CfgTest::testSemiDominators(), Statement::updateRanges(), Cfg::wellFormCfg(), and WriteBB(). | 
| 
 | ||||||||||||
| 
 Definition at line 708 of file basicblock.cpp. Referenced by decodeIndirectJmp(), DataFlow::findLiveAtDomPhi(), DataFlow::placePhiFunctions(), and DataFlow::renameBlockVars(). | 
| 
 | 
| 
 Definition at line 224 of file basicblock.h. References m_iNumInEdges. Referenced by Statement::getInputRanges(), UserProc::initStatements(), UserProc::isNoReturn(), and JunctionStatement::rangeAnalysis(). | 
| 
 | 
| 
 Definition at line 246 of file basicblock.h. References m_iNumOutEdges. Referenced by BlockSyntaxNode::getNumOutEdges(), and Statement::updateRanges(). | 
| 
 | 
| 
 Definition at line 491 of file basicblock.cpp. References m_OutEdges. Referenced by PostTestedLoopSyntaxNode::getOutEdge(), PretestedLoopSyntaxNode::getOutEdge(), IfThenSyntaxNode::getOutEdge(), BlockSyntaxNode::getOutEdge(), isCaseOption(), IfThenSyntaxNode::printAST(), and Statement::updateRanges(). | 
| 
 | 
| 
 Definition at line 449 of file basicblock.cpp. References m_OutEdges. Referenced by DataFlow::computeDF(), DataFlow::DFS(), Cfg::findImmedPDom(), Cfg::findLoopFollow(), isCaseOption(), and Cfg::joinBB(). | 
| 
 | ||||||||||||
| 
 Definition at line 720 of file basicblock.cpp. | 
| 
 | 
| 
 Definition at line 416 of file basicblock.cpp. References m_pRtls. Referenced by UserProc::assignProcsToCalls(), UserProc::decompile(), UserProc::finalSimplify(), getStatements(), UserProc::insertAssignAfter(), UserProc::insertStatementAfter(), PentiumFrontEnd::processFloatCode(), PentiumFrontEnd::processStringInst(), and UserProc::setImplicitRef(). | 
| 
 | 
| 
 Definition at line 420 of file basicblock.cpp. | 
| 
 | 
| 
 Definition at line 774 of file basicblock.cpp. References StatementList::append(), getRTLs(), and NULL. | 
| 
 | 
| Get the statement number for the first BB as a character array. If not possible (e.g. because the BB has no statements), return a unique string (e.g. bb8048c10) Definition at line 1586 of file basicblock.cpp. References getFirstStmt(), and Statement::getNumber(). | 
| 
 | 
| 
 Definition at line 469 of file basicblock.h. References sType. Referenced by Cfg::findLoopFollow(). | 
| 
 | 
| 
 Definition at line 240 of file basicblock.cpp. References m_nodeType. Referenced by UserProc::decompile(), Cfg::determineLoopType(), generateCode(), SyntaxNode::isBranch(), SyntaxNode::isGoto(), BlockSyntaxNode::printAST(), setCaseHead(), and setStructType(). | 
| 
 | 
| 
 Definition at line 1539 of file basicblock.cpp. | 
| 
 | 
| 
 Definition at line 491 of file basicblock.h. References hasBackEdgeTo(), and m_OutEdges. | 
| 
 | 
| 
 Definition at line 979 of file basicblock.cpp. References isAncestorOf(). Referenced by allParentsGenerated(), hasBackEdge(), and setCaseHead(). | 
| 
 | ||||||||||||
| 
 | 
| 
 | ||||||||||||
| 
 Definition at line 1569 of file basicblock.cpp. References latchNode, loopStamps, and revLoopStamps. | 
| 
 | 
| 
 Definition at line 888 of file basicblock.cpp. References loopStamps, and revLoopStamps. Referenced by hasBackEdgeTo(). | 
| 
 | 
| 
 Definition at line 361 of file basicblock.cpp. References m_DFTfirst, m_DFTlast, and m_InEdges. | 
| 
 | 
| 
 Definition at line 192 of file basicblock.cpp. References caseHead, getOutEdge(), and getOutEdges(). | 
| 
 | ||||||||||||
| 
 Definition at line 507 of file basicblock.h. Referenced by generateCode(). | 
| 
 | 
| 
 Definition at line 854 of file basicblock.cpp. References BRANCH_JE, BRANCH_JNE, RTL::getList(), m_OutEdges, m_pRtls, and STMT_BRANCH. | 
| 
 | 
| 
 Definition at line 275 of file basicblock.cpp. References m_bJumpReqd. | 
| 
 | 
| 
 Definition at line 164 of file basicblock.h. References m_labelneeded. | 
| 
 | 
| 
 Definition at line 464 of file basicblock.h. References latchNode, and loopHead. Referenced by generateCode(). | 
| 
 | 
| 
 | 
| 
 | 
| 
 Definition at line 206 of file basicblock.cpp. References m_iTraversed. | 
| 
 | ||||||||||||
| 
 Definition at line 626 of file basicblock.cpp. References getLowAddr(). Referenced by Cfg::sortByAddress(). | 
| 
 | ||||||||||||
| 
 Definition at line 638 of file basicblock.cpp. References m_DFTfirst. Referenced by Cfg::sortByFirstDFT(). | 
| 
 | ||||||||||||
| 
 Definition at line 651 of file basicblock.cpp. References m_DFTlast. Referenced by Cfg::sortByLastDFT(). | 
| 
 | ||||||||||||
| 
 Definition at line 1599 of file basicblock.cpp. References m_pRtls, Statement::setBB(), and Statement::setProc(). Referenced by Cfg::findImplicitAssign(). | 
| 
 | ||||||||||||
| 
 Definition at line 308 of file basicblock.cpp. References CALL, COMPCALL, COMPJUMP, FALL, getHiAddr(), getLowAddr(), INVALID, m_iLabelNum, m_InEdges, m_nodeType, m_OutEdges, m_pRtls, NWAY, ONEWAY, RET, and TWOWAY. Referenced by dump(), generateCode(), printBB(), prints(), printToLog(), and FrontSparcTest::testDelaySlot(). | 
| 
 | 
| 
 Definition at line 287 of file basicblock.cpp. References debug_buffer, DEBUG_BUFSIZE, and print(). Referenced by Cfg::splitForBranch(). | 
| 
 | 
| 
 Definition at line 355 of file basicblock.cpp. | 
| 
 | 
| 
 Definition at line 2302 of file basicblock.cpp. References SWITCH_INFO::chForm, Boomerang::get(), UserProc::getCFG(), RTL::getHlStmt(), Proc::getProg(), CaseStatement::getSwitchInfo(), SWITCH_INFO::iLower, SWITCH_INFO::iNumTable, SWITCH_INFO::iUpper, LOG, m_pRtls, NWAY, Prog::readNative4(), updateType(), and SWITCH_INFO::uTable. Referenced by SparcFrontEnd::case_DD(). | 
| 
 | 
| 
 | 
| 
 | ||||||||||||
| 
 Definition at line 598 of file basicblock.cpp. References m_DFTrevfirst, m_InEdges, and m_iTraversed. Referenced by Cfg::establishRevDFTOrder(). | 
| 
 | ||||||||||||
| 
 Definition at line 1490 of file basicblock.cpp. References caseHead, condFollow, DFS_CASE, getType(), hasBackEdgeTo(), m_OutEdges, NWAY, setCaseHead(), and traversed. Referenced by setCaseHead(). | 
| 
 | 
| 
 Definition at line 836 of file basicblock.cpp. References RTL::getList(), and STMT_BRANCH. | 
| 
 | 
| 
 Definition at line 484 of file basicblock.h. References condFollow. | 
| 
 | 
| 
 Definition at line 1559 of file basicblock.cpp. | 
| 
 | ||||||||||||
| 
 Definition at line 461 of file basicblock.cpp. References m_InEdges. | 
| 
 | 
| 
 Definition at line 265 of file basicblock.cpp. References m_bJumpReqd. Referenced by SparcFrontEnd::case_SCDAN(), and case_SCDAN_NCT(). | 
| 
 | 
| 
 Definition at line 165 of file basicblock.h. References m_labelneeded. | 
| 
 | 
| 
 Definition at line 163 of file basicblock.h. References m_labelStr. | 
| 
 | 
| 
 Definition at line 463 of file basicblock.h. References latchNode. | 
| 
 | 
| 
 Definition at line 481 of file basicblock.h. References loopFollow. Referenced by Cfg::findLoopFollow(). | 
| 
 | 
| 
 Definition at line 461 of file basicblock.h. References loopHead. | 
| 
 | ||||||||||||
| 
 Definition at line 1432 of file basicblock.cpp. References DFS_LNUM, loopStamps, m_OutEdges, and traversed. Referenced by Cfg::setTimeStamps(). | 
| 
 | 
| 
 Definition at line 1544 of file basicblock.cpp. References latchNode, Loop, LoopCond, lType, PostTested, PreTested, and sType. Referenced by Cfg::determineLoopType(). | 
| 
 | ||||||||||||
| 
 Definition at line 474 of file basicblock.cpp. References m_OutEdges. Referenced by FrontEnd::appendSyntheticReturn(), StatementTest::testEndlessLoop(), StatementTest::testFlow(), StatementTest::testKill(), StatementTest::testRecursion(), StatementTest::testUse(), StatementTest::testUseKill(), StatementTest::testUseOverBB(), and StatementTest::testUseOverKill(). | 
| 
 | 
| 
 Definition at line 1457 of file basicblock.cpp. References DFS_RNUM, m_OutEdges, revLoopStamps, and traversed. Referenced by Cfg::setTimeStamps(). | 
| 
 | 
| 
 Definition at line 1474 of file basicblock.cpp. References DFS_PDOM, m_InEdges, revOrd, and traversed. Referenced by Cfg::setTimeStamps(). | 
| 
 | 
| 
 Definition at line 227 of file basicblock.cpp. References m_pRtls. Referenced by BasicBlock(), and Cfg::newBB(). | 
| 
 | 
| 
 Definition at line 1517 of file basicblock.cpp. References BELSE, BTHEN, Case, Cond, condFollow, cType, getType(), IfElse, IfThen, IfThenElse, m_OutEdges, NWAY, and sType. Referenced by Cfg::determineLoopType(). | 
| 
 | 
| 
 Definition at line 216 of file basicblock.cpp. References m_iTraversed. | 
| 
 | 
| 
 Definition at line 1534 of file basicblock.cpp. | 
| 
 | 
| 
 Definition at line 898 of file basicblock.cpp. References FALL, RTL::getNumStmt(), m_nodeType, m_pRtls, NULL, ONEWAY, and TWOWAY. Referenced by UserProc::finalSimplify(). | 
| 
 | 
| 
 Definition at line 2388 of file basicblock.cpp. References CALL, RTL::getList(), LOG, m_nodeType, and m_pRtls. | 
| 
 | ||||||||||||
| 
 Definition at line 252 of file basicblock.cpp. References m_iNumOutEdges, and m_nodeType. Referenced by processSwitch(). | 
| 
 | 
| 
 Definition at line 1738 of file basicblock.cpp. References m_InEdges. | 
| 
 | ||||||||||||
| 
 Definition at line 1014 of file basicblock.cpp. References HLLCode::AddLabel(), DEBUG_GEN, getLowAddr(), LOG, m_pRtls, and ord. Referenced by generateCode(). | 
| 
 | 
| 
 Definition at line 133 of file basicblock.h. | 
| 
 | 
| 
 Definition at line 543 of file basicblock.h. | 
| 
 | 
| 
 Definition at line 446 of file basicblock.h. Referenced by getCaseHead(), isCaseOption(), XMLProgParser::persistToXML(), and setCaseHead(). | 
| 
 | 
| 
 Definition at line 447 of file basicblock.h. Referenced by generateCode(), getCondFollow(), XMLProgParser::persistToXML(), setCaseHead(), setCondFollow(), and setStructType(). | 
| 
 | 
| 
 Definition at line 455 of file basicblock.h. Referenced by generateCode(), getCondType(), getUnstructType(), XMLProgParser::persistToXML(), setCondType(), setStructType(), and setUnstructType(). | 
| 
 | 
| 
 Definition at line 439 of file basicblock.h. Referenced by emitGotoAndLabel(), generateCode(), and XMLProgParser::persistToXML(). | 
| 
 | 
| 
 Definition at line 444 of file basicblock.h. Referenced by Cfg::commonPDom(), Cfg::findImmedPDom(), and XMLProgParser::persistToXML(). | 
| 
 | 
| 
 Definition at line 441 of file basicblock.h. Referenced by generateCode(), and XMLProgParser::persistToXML(). | 
| 
 | 
| 
 Definition at line 435 of file basicblock.h. Referenced by XMLProgParser::persistToXML(). | 
| 
 | 
| 
 Definition at line 440 of file basicblock.h. Referenced by XMLProgParser::persistToXML(). | 
| 
 | 
| 
 Definition at line 449 of file basicblock.h. Referenced by generateCode(), getLatchNode(), inLoop(), isLatchNode(), XMLProgParser::persistToXML(), setLatchNode(), and setLoopType(). | 
| 
 | 
| 
 Definition at line 397 of file basicblock.h. Referenced by addLiveIn(), and XMLProgParser::persistToXML(). | 
| 
 | 
| 
 Definition at line 448 of file basicblock.h. Referenced by emitGotoAndLabel(), generateCode(), getLoopFollow(), XMLProgParser::persistToXML(), and setLoopFollow(). | 
| 
 | 
| 
 Definition at line 445 of file basicblock.h. Referenced by emitGotoAndLabel(), generateCode(), getLoopHead(), isLatchNode(), XMLProgParser::persistToXML(), and setLoopHead(). | 
| 
 | 
| 
 Definition at line 437 of file basicblock.h. Referenced by inLoop(), isAncestorOf(), XMLProgParser::persistToXML(), and setLoopStamps(). | 
| 
 | 
| 
 Definition at line 454 of file basicblock.h. Referenced by generateCode(), getLoopType(), XMLProgParser::persistToXML(), and setLoopType(). | 
| 
 | 
| 
 Definition at line 384 of file basicblock.h. Referenced by Cfg::isIncomplete(), Cfg::isOrphan(), Cfg::label(), Cfg::newBB(), and XMLProgParser::persistToXML(). | 
| 
 | 
| 
 Definition at line 385 of file basicblock.h. Referenced by Cfg::addNewOutEdge(), Cfg::compressCfg(), isJumpReqd(), XMLProgParser::persistToXML(), and setJumpReqd(). | 
| 
 | 
| 
 Definition at line 372 of file basicblock.h. Referenced by XMLProgParser::persistToXML(). | 
| 
 | 
| 
 Definition at line 373 of file basicblock.h. Referenced by XMLProgParser::persistToXML(). | 
| 
 | 
| 
 Definition at line 345 of file basicblock.h. Referenced by DFTOrder(), isBackEdge(), lessFirstDFT(), and XMLProgParser::persistToXML(). | 
| 
 | 
| 
 Definition at line 346 of file basicblock.h. Referenced by isBackEdge(), lessLastDFT(), and XMLProgParser::persistToXML(). | 
| 
 | 
| 
 Definition at line 347 of file basicblock.h. Referenced by XMLProgParser::persistToXML(), and RevDFTOrder(). | 
| 
 | 
| 
 Definition at line 348 of file basicblock.h. Referenced by XMLProgParser::persistToXML(). | 
| 
 | 
| 
 Definition at line 381 of file basicblock.h. Referenced by getLabel(), XMLProgParser::persistToXML(), print(), and Cfg::setLabel(). | 
| 
 | 
| 
 Definition at line 388 of file basicblock.h. Referenced by addInEdge(), Cfg::addOutEdge(), allParentsGenerated(), Cfg::completeMerge(), deleteInEdge(), findNumCases(), getInEdges(), isBackEdge(), Cfg::mergeBBs(), XMLProgParser::persistToXML(), print(), RevDFTOrder(), setInEdge(), setRevOrder(), Cfg::wellFormCfg(), and whichPred(). | 
| 
 | 
| 
 Definition at line 390 of file basicblock.h. Referenced by addInEdge(), Cfg::addOutEdge(), Cfg::completeMerge(), deleteInEdge(), getNumInEdges(), and Cfg::mergeBBs(). | 
| 
 | 
| 
 Definition at line 391 of file basicblock.h. Referenced by Cfg::addNewOutEdge(), deleteEdge(), getLoopBody(), getNumOutEdges(), Cfg::mergeBBs(), Cfg::newBB(), and updateType(). | 
| 
 | 
| 
 Definition at line 394 of file basicblock.h. Referenced by DFTOrder(), isTraversed(), XMLProgParser::persistToXML(), RevDFTOrder(), and setTraversed(). | 
| 
 | 
| 
 Definition at line 383 of file basicblock.h. Referenced by isLabelNeeded(), XMLProgParser::persistToXML(), and setLabelNeeded(). | 
| 
 | 
| 
 Definition at line 382 of file basicblock.h. Referenced by getLabelStr(), XMLProgParser::persistToXML(), and setLabelStr(). | 
| 
 | 
| 
 Definition at line 375 of file basicblock.h. Referenced by XMLProgParser::persistToXML(). | 
| 
 | 
| 
 Definition at line 370 of file basicblock.h. Referenced by XMLProgParser::persistToXML(). | 
| 
 | 
| 
 Definition at line 374 of file basicblock.h. Referenced by getLoopBody(), and XMLProgParser::persistToXML(). | 
| 
 | 
| 
 Definition at line 371 of file basicblock.h. Referenced by XMLProgParser::persistToXML(). | 
| 
 | 
| 
 Definition at line 379 of file basicblock.h. Referenced by generateCode(), getCallDest(), getCallDestProc(), getType(), Cfg::newBB(), XMLProgParser::persistToXML(), print(), simplify(), undoComputedBB(), and updateType(). | 
| 
 | 
| 
 Definition at line 389 of file basicblock.h. Referenced by Cfg::addNewOutEdge(), Cfg::addOutEdge(), addOutEdge(), BasicBlock(), deleteEdge(), DFTOrder(), generateCode(), getCorrectOutEdge(), getLiveOut(), getLoopBody(), getOutEdge(), getOutEdges(), hasBackEdge(), isJmpZ(), Cfg::mergeBBs(), XMLProgParser::persistToXML(), print(), setCaseHead(), setLoopStamps(), setOutEdge(), setRevLoopStamps(), setStructType(), and Cfg::wellFormCfg(). | 
| 
 | 
| 
 Definition at line 380 of file basicblock.h. Referenced by addRTL(), BasicBlock(), calcLiveness(), Cfg::findInterferences(), generateCode(), getCallDest(), getCallDestProc(), getCond(), getDest(), getDestProc(), getFirstStmt(), getHiAddr(), getLastStmt(), getLowAddr(), getNextStmt(), getPrevStmt(), getRTLs(), getRTLWithStatement(), isJmpZ(), Cfg::isOrphan(), Cfg::joinBB(), prependStmt(), print(), processSwitch(), setRTLs(), simplify(), Cfg::splitBB(), Cfg::splitForBranch(), undoComputedBB(), WriteBB(), and ~BasicBlock(). | 
| 
 | 
| 
 Definition at line 369 of file basicblock.h. Referenced by getLoopBody(), and XMLProgParser::persistToXML(). | 
| 
 | 
| 
 Definition at line 436 of file basicblock.h. Referenced by XMLProgParser::persistToXML(). | 
| 
 | 
| 
 Definition at line 433 of file basicblock.h. Referenced by emitGotoAndLabel(), Cfg::findLoopFollow(), XMLProgParser::persistToXML(), Cfg::structLoops(), Cfg::tagNodesInLoop(), and WriteBB(). | 
| 
 | 
| 
 Definition at line 540 of file basicblock.h. | 
| 
 | 
| 
 Definition at line 437 of file basicblock.h. Referenced by inLoop(), isAncestorOf(), XMLProgParser::persistToXML(), and setRevLoopStamps(). | 
| 
 | 
| 
 Definition at line 434 of file basicblock.h. Referenced by Cfg::commonPDom(), Cfg::findImmedPDom(), XMLProgParser::persistToXML(), and setRevOrder(). | 
| 
 | 
| 
 Definition at line 452 of file basicblock.h. Referenced by generateCode(), getCondType(), getLoopType(), getStructType(), getUnstructType(), XMLProgParser::persistToXML(), setCondType(), setLoopType(), setStructType(), and setUnstructType(). | 
| 
 | 
| 
 Definition at line 438 of file basicblock.h. Referenced by allParentsGenerated(), generateCode(), XMLProgParser::persistToXML(), setCaseHead(), setLoopStamps(), setRevLoopStamps(), and setRevOrder(). | 
| 
 | 
| 
 Definition at line 453 of file basicblock.h. Referenced by generateCode(), getUnstructType(), XMLProgParser::persistToXML(), and setUnstructType(). | 
 1.4.6
 1.4.6