#include <include/statement.h>
Inheritance diagram for Assignment:

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 Statement * | clone ()=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 Exp * | getLeft () | 
| int | getMemDepth () | 
| virtual Type * | getTypeFor (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 | |
| Exp * | lhs | 
| Friends | |
| class | XMLProgParser | 
| 
 | 
| 
 Definition at line 3132 of file statement.cpp. References Statement::getProc(), Exp::getSubExp1(), Exp::isRegOf(), lhs, and TypingStatement::type. | 
| 
 | ||||||||||||
| 
 Definition at line 3141 of file statement.cpp. | 
| 
 | 
| 
 Definition at line 3142 of file statement.cpp. | 
| 
 | 
| 
 Implements Statement. Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign. | 
| 
 | 
| 
 Implements Statement. Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign. | 
| 
 | 
| 
 Implements Statement. Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign. | 
| 
 | 
| 
 Implements Statement. Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign. | 
| 
 | 
| 
 Implements Statement. Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign. | 
| 
 | 
| 
 Reimplemented from Statement. Definition at line 4223 of file statement.cpp. References Exp::getOper(), lhs, and opAt. Referenced by UserProc::removeUnusedLocals(). | 
| 
 | 
| 
 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(). | 
| 
 | 
| 
 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(). | 
| 
 | ||||||||||||||||
| 
 Implements Statement. Reimplemented in Assign, and BoolAssign. Definition at line 460 of file statement.h. | 
| 
 | 
| 
 Reimplemented from Statement. Reimplemented in BoolAssign. Definition at line 3389 of file statement.cpp. References Exp::getOper(), LocationSet::insert(), lhs, opAt, opCF, and opZF. | 
| 
 | 
| 
 | 
| 
 Reimplemented in Assign. | 
| 
 | 
| 
 Reimplemented from Statement. Definition at line 2581 of file statement.cpp. References TypingStatement::type. Referenced by UserProc::searchRegularLocals(). | 
| 
 | 
| 
 Implements Statement. Reimplemented in Assign, and BoolAssign. Definition at line 439 of file statement.h. | 
| 
 | 
| 
 Definition at line 423 of file statement.h. References lhs. | 
| 
 | ||||||||||||
| 
 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(). | 
| 
 | ||||||||||||
| 
 Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign. Referenced by print(). | 
| 
 | ||||||||||||
| 
 Implements Statement. Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign. | 
| 
 | ||||||||||||
| 
 Implements Statement. Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign. | 
| 
 | ||||||||||||||||
| 
 Implements Statement. Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign. | 
| 
 | 
| 
 Definition at line 448 of file statement.h. References lhs. Referenced by StmtSsaXformer::commonLhs(), StatementTest::testSubscriptVars(), and StmtImplicitConverter::visit(). | 
| 
 | ||||||||||||
| 
 Reimplemented from Statement. Definition at line 445 of file statement.h. References lhs. | 
| 
 | ||||||||||||
| 
 Reimplemented from Statement. Definition at line 2586 of file statement.cpp. References DEBUG_TA, Type::getCtype(), LOG, and TypingStatement::type. | 
| 
 | 
| 
 Implements Statement. Implemented in Assign, PhiAssign, ImplicitAssign, and BoolAssign. | 
| 
 | 
| 
 Reimplemented from Statement. Reimplemented in Assign. Definition at line 3294 of file statement.cpp. References lhs, and Exp::simplifyAddr(). | 
| 
 | 
| 
 Implements Statement. Reimplemented in Assign, and BoolAssign. Definition at line 3481 of file statement.cpp. References Exp::isMemOf(), Exp::isRegOf(), and lhs. | 
| 
 | 
| 
 Reimplemented from Statement. Reimplemented in Assign, PhiAssign, and BoolAssign. Definition at line 474 of file statement.h. | 
| 
 | 
 1.4.6
 1.4.6