Assignment Class Reference

#include <include/statement.h>

Inheritance diagram for Assignment:

TypingStatement Statement Assign BoolAssign ImplicitAssign PhiAssign List of all members.

Detailed Description

Definition at line 406 of file statement.h.

Public Member Functions

virtual bool accept (StmtPartModifier *visitor)=0
virtual bool accept (StmtModifier *visitor)=0
virtual bool accept (StmtExpVisitor *visitor)=0
virtual bool accept (StmtVisitor *visitor)=0
 Assignment (Type *ty, Exp *lhs)
 Assignment (Exp *lhs)
virtual Statementclone ()=0
virtual bool definesLoc (Exp *loc)
void dfaTypeAnalysis (bool &ch)
virtual void genConstraints (LocationSet &cons)
void generateCode (HLLCode *hll, BasicBlock *pbb, int indLevel)
virtual void getDefinitions (LocationSet &defs)
virtual ExpgetLeft ()
int getMemDepth ()
virtual TypegetTypeFor (Exp *e)
virtual bool isDefinition ()
bool operator< (const Assignment &o)
virtual void print (std::ostream &os, bool html=false)
virtual void printCompact (std::ostream &os, bool html=false)=0
virtual bool search (Exp *search, Exp *&result)=0
virtual bool searchAll (Exp *search, std::list< Exp * > &result)=0
virtual bool searchAndReplace (Exp *search, Exp *replace, bool cc=false)=0
void setLeft (Exp *e)
virtual void setLeftFor (Exp *forExp, Exp *newExp)
virtual void setTypeFor (Exp *e, Type *ty)
virtual void simplify ()=0
virtual void simplifyAddr ()
virtual bool usesExp (Exp *e)
virtual ~Assignment ()

Protected Attributes

Explhs

Friends

class XMLProgParser


Constructor & Destructor Documentation

Assignment::Assignment Exp lhs  ) 
 

Definition at line 3132 of file statement.cpp.

References Statement::getProc(), Exp::getSubExp1(), Exp::isRegOf(), lhs, and TypingStatement::type.

Assignment::Assignment Type ty,
Exp lhs
 

Definition at line 3141 of file statement.cpp.

Assignment::~Assignment  )  [virtual]
 

Definition at line 3142 of file statement.cpp.


Member Function Documentation

virtual bool Assignment::accept StmtPartModifier visitor  )  [pure virtual]
 

Implements Statement.

Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign.

virtual bool Assignment::accept StmtModifier visitor  )  [pure virtual]
 

Implements Statement.

Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign.

virtual bool Assignment::accept StmtExpVisitor visitor  )  [pure virtual]
 

Implements Statement.

Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign.

virtual bool Assignment::accept StmtVisitor visitor  )  [pure virtual]
 

Implements Statement.

Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign.

virtual Statement* Assignment::clone  )  [pure virtual]
 

Implements Statement.

Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign.

bool Assignment::definesLoc Exp loc  )  [virtual]
 

Reimplemented from Statement.

Definition at line 4223 of file statement.cpp.

References Exp::getOper(), lhs, and opAt.

Referenced by UserProc::removeUnusedLocals().

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

Reimplemented from Statement.

Reimplemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign.

Definition at line 802 of file dfa.cpp.

References addr(), Type::asPointer(), PointerType::getPointsTo(), Proc::getProg(), Proc::getSignature(), Exp::isMemOf(), Signature::isStackLocal(), lhs, Type::meetWith(), Statement::proc, Type::resolvesToPointer(), and TypingStatement::type.

Referenced by BoolAssign::dfaTypeAnalysis(), ImplicitAssign::dfaTypeAnalysis(), and Assign::dfaTypeAnalysis().

void Assignment::genConstraints LocationSet cons  )  [virtual]
 

Reimplemented from Statement.

Reimplemented in Assign, and PhiAssign.

Definition at line 3544 of file statement.cpp.

References LocationSet::insert(), lhs, opEquals, opTypeOf, and TypingStatement::type.

Referenced by Assign::genConstraints().

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

Implements Statement.

Reimplemented in Assign, and BoolAssign.

Definition at line 460 of file statement.h.

void Assignment::getDefinitions LocationSet defs  )  [virtual]
 

Reimplemented from Statement.

Reimplemented in BoolAssign.

Definition at line 3389 of file statement.cpp.

References Exp::getOper(), LocationSet::insert(), lhs, opAt, opCF, and opZF.

virtual Exp* Assignment::getLeft  )  [inline, virtual]
 

Definition at line 444 of file statement.h.

References lhs.

Referenced by CHLLCode::AddAssignmentStatement(), CallingConvention::StdC::SparcSignature::argumentCompare(), CallingConvention::StdC::PentiumSignature::argumentCompare(), Signature::argumentCompare(), StmtCastInserter::common(), StmtRegMapper::common(), StmtSsaXformer::commonLhs(), UserProc::findPhiUnites(), BoolAssign::getDefinitions(), BasicBlock::getLiveOut(), DefCollector::insert(), PentiumFrontEnd::isSetX(), UserProc::nameParameterPhis(), lessAssign::operator()(), lessAssignment::operator()(), CallStatement::print(), Statement::propagateTo(), CallStatement::removeDefine(), UserProc::remUnusedStmtEtc(), Statement::replaceRef(), CallingConvention::StdC::SparcSignature::returnCompare(), CallingConvention::StdC::PentiumSignature::returnCompare(), Signature::returnCompare(), LocationSet::substitute(), ReturnStatement::updateReturns(), StmtImplicitConverter::visit(), StmtSubscripter::visit(), UsedLocsVisitor::visit(), and StmtConscriptSetter::visit().

int Assignment::getMemDepth  ) 
 

Reimplemented in Assign.

Type * Assignment::getTypeFor Exp e  )  [virtual]
 

Reimplemented from Statement.

Definition at line 2581 of file statement.cpp.

References TypingStatement::type.

Referenced by UserProc::searchRegularLocals().

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

Implements Statement.

Reimplemented in Assign, and BoolAssign.

Definition at line 439 of file statement.h.

bool Assignment::operator< const Assignment o  )  [inline]
 

Definition at line 423 of file statement.h.

References lhs.

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

Implements Statement.

Definition at line 3304 of file statement.cpp.

References RangeMap::empty(), Statement::number, RangeMap::print(), printCompact(), and Statement::ranges.

Referenced by StatementTest::testClone(), StatementTest::testIsAssign(), StatementTest::testIsFlagAssgn(), ExpTest::testParen(), and ExpTest::testSimplifyBinary().

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

Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign.

Referenced by print().

virtual bool Assignment::search Exp search,
Exp *&  result
[pure virtual]
 

Implements Statement.

Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign.

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

Implements Statement.

Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign.

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

Implements Statement.

Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign.

void Assignment::setLeft Exp e  )  [inline]
 

Definition at line 448 of file statement.h.

References lhs.

Referenced by StmtSsaXformer::commonLhs(), StatementTest::testSubscriptVars(), and StmtImplicitConverter::visit().

virtual void Assignment::setLeftFor Exp forExp,
Exp newExp
[inline, virtual]
 

Reimplemented from Statement.

Definition at line 445 of file statement.h.

References lhs.

void Assignment::setTypeFor Exp e,
Type ty
[virtual]
 

Reimplemented from Statement.

Definition at line 2586 of file statement.cpp.

References DEBUG_TA, Type::getCtype(), LOG, and TypingStatement::type.

virtual void Assignment::simplify  )  [pure virtual]
 

Implements Statement.

Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign.

void Assignment::simplifyAddr  )  [virtual]
 

Reimplemented from Statement.

Reimplemented in Assign.

Definition at line 3294 of file statement.cpp.

References lhs, and Exp::simplifyAddr().

bool Assignment::usesExp Exp e  )  [virtual]
 

Implements Statement.

Reimplemented in Assign, and BoolAssign.

Definition at line 3481 of file statement.cpp.

References Exp::isMemOf(), Exp::isRegOf(), and lhs.


Friends And Related Function Documentation

friend class XMLProgParser [friend]
 

Reimplemented from Statement.

Reimplemented in Assign, PhiAssign, and BoolAssign.

Definition at line 474 of file statement.h.


Member Data Documentation

Exp* Assignment::lhs [protected]
 

Definition at line 408 of file statement.h.

Referenced by BoolAssign::accept(), ImplicitAssign::accept(), PhiAssign::accept(), Assign::accept(), Assignment(), ImplicitAssign::clone(), PhiAssign::clone(), Assign::clone(), PhiAssign::convertToAssign(), definesLoc(), dfaTypeAnalysis(), PhiAssign::dfaTypeAnalysis(), Assign::fixSuccessor(), PhiAssign::genConstraints(), Assign::genConstraints(), genConstraints(), BoolAssign::generateCode(), getDefinitions(), getLeft(), Assign::getMemDepth(), operator<(), ImplicitAssign::printCompact(), PhiAssign::printCompact(), Assign::printCompact(), BoolAssign::printCompact(), Assign::rangeAnalysis(), ImplicitAssign::search(), PhiAssign::search(), Assign::search(), BoolAssign::search(), ImplicitAssign::searchAll(), PhiAssign::searchAll(), Assign::searchAll(), BoolAssign::searchAll(), ImplicitAssign::searchAndReplace(), PhiAssign::searchAndReplace(), Assign::searchAndReplace(), BoolAssign::searchAndReplace(), setLeft(), setLeftFor(), BoolAssign::setLeftFromList(), PhiAssign::simplify(), Assign::simplify(), simplifyAddr(), Assign::simplifyAddr(), Assign::usesExp(), usesExp(), and BoolAssign::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