Assign Class Reference

#include <include/statement.h>

Inheritance diagram for Assign:

Assignment TypingStatement Statement List of all members.

Detailed Description

Definition at line 479 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)
 Assign (Assign &o)
 Assign ()
 Assign (Type *ty, Exp *lhs, Exp *rhs, Exp *guard=NULL)
 Assign (Exp *lhs, Exp *rhs, Exp *guard=NULL)
virtual Statementclone ()
void dfaTypeAnalysis (bool &ch)
virtual void fixSuccessor ()
virtual void genConstraints (LocationSet &cons)
virtual void generateCode (HLLCode *hll, BasicBlock *pbb, int indLevel)
ExpgetGuard ()
int getMemDepth ()
virtual ExpgetRight ()
Exp *& getRightRef ()
virtual bool isDefinition ()
bool isGuarded ()
bool match (const char *pattern, std::map< std::string, Exp * > &bindings)
virtual void printCompact (std::ostream &os, bool html=false)
void rangeAnalysis (std::list< Statement * > &execution_paths)
virtual bool search (Exp *search, Exp *&result)
virtual bool searchAll (Exp *search, std::list< Exp * > &result)
virtual bool searchAndReplace (Exp *search, Exp *replace, bool cc=false)
void setGuard (Exp *g)
void setRight (Exp *e)
virtual void simplify ()
virtual void simplifyAddr ()
virtual bool usesExp (Exp *e)
 ~Assign ()

Private Attributes

Expguard
Exprhs

Friends

class XMLProgParser


Constructor & Destructor Documentation

Assign::Assign Exp lhs,
Exp rhs,
Exp guard = NULL
 

Definition at line 3144 of file statement.cpp.

References Statement::kind, and STMT_ASSIGN.

Assign::Assign Type ty,
Exp lhs,
Exp rhs,
Exp guard = NULL
 

Definition at line 3149 of file statement.cpp.

References Statement::kind, and STMT_ASSIGN.

Assign::Assign  )  [inline]
 

Definition at line 489 of file statement.h.

Referenced by clone().

Assign::Assign Assign o  ) 
 

Definition at line 3154 of file statement.cpp.

References Type::clone(), Exp::clone(), guard, Statement::kind, NULL, rhs, STMT_ASSIGN, and TypingStatement::type.

Assign::~Assign  )  [inline]
 

Definition at line 493 of file statement.h.


Member Function Documentation

bool Assign::accept StmtPartModifier visitor  )  [virtual]
 

Implements Assignment.

Definition at line 3990 of file statement.cpp.

References accept(), ExpModifier::clearMod(), Exp::isMemOf(), Assignment::lhs, StmtPartModifier::mod, and StmtPartModifier::visit().

bool Assign::accept StmtModifier visitor  )  [virtual]
 

Implements Assignment.

Definition at line 3873 of file statement.cpp.

References Exp::accept(), ExpModifier::clearMod(), ExpModifier::isMod(), Assignment::lhs, LOG, StmtModifier::mod, rhs, and StmtModifier::visit().

bool Assign::accept StmtExpVisitor visitor  )  [virtual]
 

Implements Assignment.

Definition at line 3750 of file statement.cpp.

References Exp::accept(), StmtExpVisitor::ev, Assignment::lhs, rhs, and StmtExpVisitor::visit().

bool Assign::accept StmtVisitor visitor  )  [virtual]
 

Implements Assignment.

Definition at line 3204 of file statement.cpp.

References StmtVisitor::visit().

Referenced by accept(), UserProc::propagateStatements(), and RtlTest::testVisitor().

Statement * Assign::clone  )  [virtual]
 

Implements Assignment.

Definition at line 3176 of file statement.cpp.

References Assign(), Exp::clone(), Type::clone(), guard, Assignment::lhs, NULL, Statement::number, Statement::pbb, Statement::proc, rhs, and TypingStatement::type.

Referenced by StatementTest::testClone().

void Assign::dfaTypeAnalysis bool &  ch  )  [virtual]
 

Reimplemented from Assignment.

Definition at line 794 of file dfa.cpp.

References Exp::ascendType(), Exp::descendType(), Assignment::dfaTypeAnalysis(), Type::meetWith(), rhs, and TypingStatement::type.

void Assign::fixSuccessor  )  [virtual]
 

Reimplemented from Statement.

Definition at line 3299 of file statement.cpp.

References Exp::fixSuccessor(), Assignment::lhs, and rhs.

void Assign::genConstraints LocationSet cons  )  [virtual]
 

Reimplemented from Assignment.

Definition at line 3555 of file statement.cpp.

References Exp::clone(), Exp::genConstraints(), Assignment::genConstraints(), LocationSet::insert(), Assignment::lhs, opTypeOf, and rhs.

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

Reimplemented from Assignment.

Definition at line 3468 of file statement.cpp.

References HLLCode::AddAssignmentStatement().

Exp* Assign::getGuard  )  [inline]
 

Definition at line 517 of file statement.h.

References guard.

int Assign::getMemDepth  ) 
 

Reimplemented from Assignment.

Definition at line 3473 of file statement.cpp.

References Exp::getMemDepth(), Assignment::lhs, and rhs.

virtual Exp* Assign::getRight  )  [inline, virtual]
 

Definition at line 499 of file statement.h.

References rhs.

Referenced by CHLLCode::AddAssignmentStatement(), PentiumDecoder::decodeInstruction(), PentiumFrontEnd::isAssignFromTern(), PentiumFrontEnd::isDecAh(), PentiumFrontEnd::isSetX(), Statement::propagateTo(), Statement::replaceRef(), LocationSet::substitute(), StmtSsaXformer::visit(), StmtSubscripter::visit(), UsedLocsVisitor::visit(), and StmtConscriptSetter::visit().

Exp*& Assign::getRightRef  )  [inline]
 

Definition at line 500 of file statement.h.

References rhs.

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

Reimplemented from Assignment.

Definition at line 521 of file statement.h.

bool Assign::isGuarded  )  [inline]
 

Definition at line 518 of file statement.h.

References guard, and NULL.

bool Assign::match const char *  pattern,
std::map< std::string, Exp * > &  bindings
 

void Assign::printCompact std::ostream &  os,
bool  html = false
[virtual]
 

Implements Assignment.

Definition at line 3318 of file statement.cpp.

References guard, Assignment::lhs, Exp::print(), rhs, and TypingStatement::type.

void Assign::rangeAnalysis std::list< Statement * > &  execution_paths  )  [virtual]
 

Reimplemented from Statement.

Definition at line 204 of file statement.cpp.

References RangeMap::addRange(), Exp::clone(), Statement::getInputRanges(), Exp::getSubExp1(), Exp::getSubExp2(), Exp::isFlagCall(), Exp::isFlags(), Exp::isMemOf(), Exp::isTerminal(), Assignment::lhs, rhs, Exp::setSubExp1(), and RangeMap::substInto().

bool Assign::search Exp search,
Exp *&  result
[virtual]
 

Implements Assignment.

Definition at line 3401 of file statement.cpp.

References Assignment::lhs, result, rhs, and Exp::search().

Referenced by searchAll(), and searchAndReplace().

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

Implements Assignment.

Definition at line 3422 of file statement.cpp.

References Assignment::lhs, rhs, search(), and Exp::searchAll().

Referenced by UserProc::searchRegularLocals().

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

Implements Assignment.

Definition at line 3441 of file statement.cpp.

References guard, Assignment::lhs, rhs, search(), and Exp::searchReplaceAll().

void Assign::setGuard Exp g  )  [inline]
 

Definition at line 516 of file statement.h.

References guard.

void Assign::setRight Exp e  )  [inline]
 

Definition at line 503 of file statement.h.

References rhs.

Referenced by StmtSsaXformer::visit(), and StmtSubscripter::visit().

void Assign::simplify  )  [virtual]
 

Implements Assignment.

Definition at line 3214 of file statement.cpp.

References Boomerang::get(), Exp::getOper(), Exp::getSubExp1(), guard, Exp::isIntConst(), Exp::isTrue(), Assignment::lhs, NULL, opCF, opMemOf, opNF, opOF, opZF, rhs, Exp::setSubExp1(), Exp::simplify(), and Exp::simplifyArith().

Referenced by ExpTest::testSimplifyBinary().

void Assign::simplifyAddr  )  [virtual]
 

Reimplemented from Assignment.

Definition at line 3289 of file statement.cpp.

References Assignment::lhs, rhs, and Exp::simplifyAddr().

bool Assign::usesExp Exp e  )  [virtual]
 

Reimplemented from Assignment.

Definition at line 3486 of file statement.cpp.

References Exp::isMemOf(), Exp::isRegOf(), Assignment::lhs, rhs, and Exp::search().


Friends And Related Function Documentation

friend class XMLProgParser [friend]
 

Reimplemented from Assignment.

Definition at line 557 of file statement.h.


Member Data Documentation

Exp* Assign::guard [private]
 

Definition at line 481 of file statement.h.

Referenced by Assign(), clone(), getGuard(), isGuarded(), printCompact(), searchAndReplace(), setGuard(), and simplify().

Exp* Assign::rhs [private]
 

Definition at line 480 of file statement.h.

Referenced by accept(), Assign(), clone(), dfaTypeAnalysis(), fixSuccessor(), genConstraints(), getMemDepth(), getRight(), getRightRef(), printCompact(), rangeAnalysis(), search(), searchAll(), searchAndReplace(), setRight(), simplify(), simplifyAddr(), and usesExp().


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