GotoStatement Class Reference

#include <include/statement.h>

Inheritance diagram for GotoStatement:

Statement BranchStatement CallStatement CaseStatement List of all members.

Detailed Description

Definition at line 799 of file statement.h.

Public Member Functions

virtual bool accept (StmtPartModifier *visitor)
virtual bool accept (StmtModifier *visitor)
virtual bool accept (StmtExpVisitor *visitor)
virtual bool accept (StmtVisitor *visitor)
void adjustFixedDest (int delta)
virtual Statementclone ()
virtual void generateCode (HLLCode *hll, BasicBlock *pbb, int indLevel)
virtual ExpgetDest ()
ADDRESS getFixedDest ()
 GotoStatement (ADDRESS jumpDest)
 GotoStatement ()
bool isComputed ()
virtual bool isDefinition ()
virtual void print (std::ostream &os=std::cout, bool html=false)
virtual bool search (Exp *, Exp *&)
virtual bool searchAll (Exp *search, std::list< Exp * > &result)
virtual bool searchAndReplace (Exp *search, Exp *replace, bool cc=false)
void setDest (ADDRESS addr)
void setDest (Exp *pd)
void setIsComputed (bool b=true)
virtual void simplify ()
virtual bool usesExp (Exp *)
virtual ~GotoStatement ()

Protected Attributes

bool m_isComputed
ExppDest

Friends

class XMLProgParser


Constructor & Destructor Documentation

GotoStatement::GotoStatement  ) 
 

Definition at line 987 of file statement.cpp.

References Statement::kind, and STMT_GOTO.

Referenced by clone().

GotoStatement::GotoStatement ADDRESS  jumpDest  ) 
 

Definition at line 998 of file statement.cpp.

References Statement::kind, pDest, and STMT_GOTO.

GotoStatement::~GotoStatement  )  [virtual]
 

Definition at line 1009 of file statement.cpp.

References pDest.


Member Function Documentation

bool GotoStatement::accept StmtPartModifier visitor  )  [virtual]
 

Implements Statement.

Reimplemented in BranchStatement, CaseStatement, and CallStatement.

Definition at line 4027 of file statement.cpp.

References Exp::accept(), StmtPartModifier::mod, pDest, and StmtPartModifier::visit().

bool GotoStatement::accept StmtModifier visitor  )  [virtual]
 

Implements Statement.

Reimplemented in BranchStatement, CaseStatement, and CallStatement.

Definition at line 3915 of file statement.cpp.

References Exp::accept(), StmtModifier::mod, pDest, and StmtModifier::visit().

bool GotoStatement::accept StmtExpVisitor visitor  )  [virtual]
 

Implements Statement.

Reimplemented in BranchStatement, CaseStatement, and CallStatement.

Definition at line 3786 of file statement.cpp.

References Exp::accept(), StmtExpVisitor::ev, pDest, and StmtExpVisitor::visit().

bool GotoStatement::accept StmtVisitor visitor  )  [virtual]
 

Implements Statement.

Reimplemented in BranchStatement, CaseStatement, and CallStatement.

Definition at line 1184 of file statement.cpp.

References StmtVisitor::visit().

Referenced by RtlTest::testVisitor().

void GotoStatement::adjustFixedDest int  delta  ) 
 

Definition at line 1072 of file statement.cpp.

References Exp::getOper(), LOG, opIntConst, and pDest.

Referenced by SparcFrontEnd::case_SCDAN(), and SparcFrontEnd::case_SD().

Statement * GotoStatement::clone  )  [virtual]
 

Implements Statement.

Reimplemented in BranchStatement, CaseStatement, and CallStatement.

Definition at line 1172 of file statement.cpp.

References Exp::clone(), GotoStatement(), m_isComputed, Statement::number, Statement::pbb, pDest, and Statement::proc.

void GotoStatement::generateCode HLLCode hll,
BasicBlock pbb,
int  indLevel
[virtual]
 

Implements Statement.

Reimplemented in BranchStatement, CaseStatement, and CallStatement.

Definition at line 1188 of file statement.cpp.

Exp * GotoStatement::getDest  )  [virtual]
 

Definition at line 1059 of file statement.cpp.

References pDest.

Referenced by BasicBlock::getDest(), CallStatement::rangeAnalysis(), StmtSsaXformer::visit(), StmtSubscripter::visit(), and UsedLocsVisitor::visit().

ADDRESS GotoStatement::getFixedDest  ) 
 

Definition at line 1022 of file statement.cpp.

References Exp::getOper(), NO_ADDRESS, opIntConst, and pDest.

Referenced by UserProc::assignProcsToCalls(), SparcFrontEnd::case_SCD(), SparcFrontEnd::case_SCDAN(), SparcFrontEnd::case_SD(), BranchStatement::getFallBB(), BranchStatement::getRangesForOutEdgeTo(), BranchStatement::getTakenBB(), BranchStatement::print(), print(), FrontEnd::processProc(), BranchStatement::setFallBB(), and BranchStatement::setTakenBB().

bool GotoStatement::isComputed  ) 
 

Definition at line 1162 of file statement.cpp.

References m_isComputed.

Referenced by UserProc::assignProcsToCalls(), CallStatement::generateCode(), and simplify().

virtual bool GotoStatement::isDefinition  )  [inline, virtual]
 

Implements Statement.

Reimplemented in CallStatement.

Definition at line 856 of file statement.h.

void GotoStatement::print std::ostream &  os = std::cout,
bool  html = false
[virtual]
 

Implements Statement.

Reimplemented in BranchStatement, CaseStatement, and CallStatement.

Definition at line 1125 of file statement.cpp.

References getFixedDest(), Exp::getOper(), NULL, Statement::number, opIntConst, pDest, and Exp::print().

bool GotoStatement::search Exp ,
Exp *& 
[virtual]
 

Implements Statement.

Reimplemented in BranchStatement, and CallStatement.

Definition at line 1081 of file statement.cpp.

References NULL, pDest, result, and Exp::search().

Referenced by CallStatement::search(), CaseStatement::searchAll(), searchAll(), CaseStatement::searchAndReplace(), and searchAndReplace().

bool GotoStatement::searchAll Exp search,
std::list< Exp * > &  result
[virtual]
 

Implements Statement.

Reimplemented in BranchStatement, CaseStatement, and CallStatement.

Definition at line 1112 of file statement.cpp.

References pDest, search(), and Exp::searchAll().

Referenced by CallStatement::searchAll(), and CaseStatement::searchAll().

bool GotoStatement::searchAndReplace Exp search,
Exp replace,
bool  cc = false
[virtual]
 

Implements Statement.

Reimplemented in BranchStatement, CaseStatement, and CallStatement.

Definition at line 1096 of file statement.cpp.

References pDest, search(), and Exp::searchReplaceAll().

Referenced by CallStatement::searchAndReplace(), CaseStatement::searchAndReplace(), and BranchStatement::searchAndReplace().

void GotoStatement::setDest ADDRESS  addr  ) 
 

Definition at line 1043 of file statement.cpp.

References NULL, and pDest.

void GotoStatement::setDest Exp pd  ) 
 

Definition at line 1033 of file statement.cpp.

References pDest.

Referenced by NJMCDecoder::computedCall(), NJMCDecoder::computedJump(), ST20Decoder::decodeInstruction(), SparcDecoder::decodeInstruction(), PPCDecoder::decodeInstruction(), PentiumDecoder::decodeInstruction(), genBSFR(), FrontEnd::processProc(), StatementTest::testAddUsedLocsAssign(), StatementTest::testAddUsedLocsBranch(), StatementTest::testAddUsedLocsCall(), StatementTest::testAddUsedLocsCase(), StatementTest::testSubscriptVars(), toBranches(), NJMCDecoder::unconditionalJump(), StmtSsaXformer::visit(), and StmtSubscripter::visit().

void GotoStatement::setIsComputed bool  b = true  ) 
 

Definition at line 1150 of file statement.cpp.

References m_isComputed.

Referenced by NJMCDecoder::computedCall(), NJMCDecoder::computedJump(), ST20Decoder::decodeInstruction(), SparcDecoder::decodeInstruction(), PPCDecoder::decodeInstruction(), and PentiumDecoder::decodeInstruction().

void GotoStatement::simplify  )  [virtual]
 

Implements Statement.

Reimplemented in BranchStatement, CaseStatement, and CallStatement.

Definition at line 1192 of file statement.cpp.

References isComputed(), pDest, Exp::simplify(), and Exp::simplifyArith().

Referenced by CallStatement::simplify().

bool GotoStatement::usesExp Exp  )  [virtual]
 

Implements Statement.

Reimplemented in BranchStatement, CaseStatement, and CallStatement.

Definition at line 2330 of file statement.cpp.

References pDest, and Exp::search().

Referenced by CallStatement::usesExp().


Friends And Related Function Documentation

friend class XMLProgParser [friend]
 

Reimplemented from Statement.

Reimplemented in BranchStatement, CaseStatement, and CallStatement.

Definition at line 859 of file statement.h.


Member Data Documentation

bool GotoStatement::m_isComputed [protected]
 

Definition at line 803 of file statement.h.

Referenced by CallStatement::clone(), CaseStatement::clone(), BranchStatement::clone(), clone(), CallStatement::convertToDirect(), isComputed(), CallStatement::rangeAnalysis(), and setIsComputed().

Exp* GotoStatement::pDest [protected]
 

Definition at line 801 of file statement.h.

Referenced by CallStatement::accept(), CaseStatement::accept(), BranchStatement::accept(), accept(), adjustFixedDest(), CallStatement::clone(), CaseStatement::clone(), BranchStatement::clone(), clone(), CallStatement::convertToDirect(), CallStatement::generateCode(), getDest(), getFixedDest(), GotoStatement(), CaseStatement::print(), BranchStatement::print(), print(), CallStatement::rangeAnalysis(), search(), searchAll(), searchAndReplace(), setDest(), CaseStatement::simplify(), simplify(), usesExp(), CaseStatement::usesExp(), and ~GotoStatement().


The documentation for this class was generated from the following files:
Generated on Tue Sep 19 21:18:42 2006 for Boomerang by  doxygen 1.4.6