PhiAssign Class Reference

#include <include/statement.h>

Inheritance diagram for PhiAssign:

Assignment TypingStatement Statement List of all members.

Detailed Description

Definition at line 579 of file statement.h.

Public Types

typedef std::vector< PhiInfo > Definitions
typedef Definitions::iterator iterator

Public Member Functions

virtual bool accept (StmtPartModifier *visitor)
virtual bool accept (StmtModifier *visitor)
virtual bool accept (StmtExpVisitor *visitor)
virtual bool accept (StmtVisitor *visitor)
iterator begin ()
virtual Statement * clone ()
void convertToAssign (Exp *rhs)
void dfaTypeAnalysis (bool &ch)
iterator end ()
void enumerateParams (std::list< Exp * > &le)
iterator erase (iterator it)
virtual void genConstraints (LocationSet &cons)
PhiInfo & getAt (int idx)
Definitions & getDefs ()
virtual int getNumDefs ()
virtual Exp * getRight ()
Statement * getStmtAt (int idx)
bool hasGlobalFuncParam ()
 PhiAssign (Assign &o)
 PhiAssign (Type *ty, Exp *lhs)
 PhiAssign (Exp *lhs)
virtual void printCompact (std::ostream &os, bool html=false)
void putAt (int idx, Statement *d, Exp *e)
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)
virtual void simplify ()
void simplifyRefs ()
virtual ~PhiAssign ()

Private Attributes

Definitions defVec

Friends

class XMLProgParser


Member Typedef Documentation

typedef std::vector<PhiInfo> PhiAssign::Definitions
 

Definition at line 581 of file statement.h.

typedef Definitions::iterator PhiAssign::iterator
 

Definition at line 582 of file statement.h.


Constructor & Destructor Documentation

PhiAssign::PhiAssign (  Exp *  lhs  )  [inline]
 

Definition at line 587 of file statement.h.

References Statement::kind, and STMT_PHIASSIGN.

Referenced by clone().

PhiAssign::PhiAssign (  Type *  ty,
Exp *  lhs
)  [inline]
 

Definition at line 590 of file statement.h.

References Statement::kind, and STMT_PHIASSIGN.

PhiAssign::PhiAssign (  Assign &  o  ) 
 

virtual PhiAssign::~PhiAssign (   )  [inline, virtual]
 

Definition at line 595 of file statement.h.

Referenced by convertToAssign().


Member Function Documentation

bool PhiAssign::accept (  StmtPartModifier *  visitor  )  [virtual]
 

Implements Assignment.

Definition at line 4002 of file statement.cpp.

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

bool PhiAssign::accept (  StmtModifier *  visitor  )  [virtual]
 

Implements Assignment.

Definition at line 3883 of file statement.cpp.

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

bool PhiAssign::accept (  StmtExpVisitor *  visitor  )  [virtual]
 

Implements Assignment.

Definition at line 3762 of file statement.cpp.

References RefExp::accept(), Exp::accept(), defVec, StmtExpVisitor::ev, Assignment::lhs, NULL, and StmtExpVisitor::visit().

bool PhiAssign::accept (  StmtVisitor *  visitor  )  [virtual]
 

Implements Assignment.

Definition at line 3207 of file statement.cpp.

References StmtVisitor::visit().

Referenced by accept(), and UserProc::mapTempsToLocals().

iterator PhiAssign::begin (   )  [inline]
 

Definition at line 641 of file statement.h.

References defVec.

Referenced by BasicBlock::decodeIndirectJmp(), enumerateParams(), UserProc::findPhiUnites(), UserProc::nameParameterPhis(), StmtSsaXformer::visit(), and StmtImplicitConverter::visit().

Statement * PhiAssign::clone (   )  [virtual]
 

Implements Assignment.

Definition at line 3186 of file statement.cpp.

References defVec, Assignment::lhs, PhiAssign(), and TypingStatement::type.

void PhiAssign::convertToAssign (  Exp *  rhs  ) 
 

Definition at line 4147 of file statement.cpp.

References Assignment::lhs, Statement::number, Statement::proc, Exp::propagateAll(), Statement::setBB(), Statement::setNumber(), Statement::setProc(), TypingStatement::type, and ~PhiAssign().

void PhiAssign::dfaTypeAnalysis (  bool &  ch  )  [virtual]
 

Reimplemented from Assignment.

Definition at line 774 of file dfa.cpp.

References defVec, Assignment::lhs, and NULL.

iterator PhiAssign::end (   )  [inline]
 

Definition at line 642 of file statement.h.

References defVec.

Referenced by BasicBlock::decodeIndirectJmp(), enumerateParams(), UserProc::findPhiUnites(), UserProc::nameParameterPhis(), UserProc::prover(), StmtSsaXformer::visit(), and StmtImplicitConverter::visit().

void PhiAssign::enumerateParams (  std::list< Exp * > &  le  ) 
 

Definition at line 5025 of file statement.cpp.

References begin(), end(), and NULL.

iterator PhiAssign::erase (  iterator  it  )  [inline]
 

Definition at line 643 of file statement.h.

References defVec.

void PhiAssign::genConstraints (  LocationSet &  cons  )  [virtual]
 

Reimplemented from Assignment.

Definition at line 3563 of file statement.cpp.

References defVec, LocationSet::insert(), Assignment::lhs, opEquals, opTypeOf, and result.

PhiInfo& PhiAssign::getAt (  int  idx  )  [inline]
 

Definition at line 633 of file statement.h.

References defVec.

Definitions& PhiAssign::getDefs (   )  [inline]
 

Definition at line 637 of file statement.h.

References defVec.

virtual int PhiAssign::getNumDefs (   )  [inline, virtual]
 

Definition at line 636 of file statement.h.

References defVec.

virtual Exp* PhiAssign::getRight (   )  [inline, virtual]
 

Definition at line 601 of file statement.h.

References NULL.

Referenced by CallStatement::genConstraints().

Statement* PhiAssign::getStmtAt (  int  idx  )  [inline]
 

Definition at line 632 of file statement.h.

References defVec.

Referenced by BasicBlock::getLiveOut().

bool PhiAssign::hasGlobalFuncParam (   ) 
 

void PhiAssign::printCompact (  std::ostream &  os,
bool  html = false
)  [virtual]
 

Implements Assignment.

Definition at line 3326 of file statement.cpp.

References defVec, Assignment::lhs, NULL, Exp::print(), and TypingStatement::type.

void PhiAssign::putAt (  int  idx,
Statement *  d,
Exp *  e
) 
 

Definition at line 4209 of file statement.cpp.

References defVec.

Referenced by StatementTest::testAddUsedLocsBool().

bool PhiAssign::search (  Exp *  search,
Exp *&  result
)  [virtual]
 

Implements Assignment.

Definition at line 3406 of file statement.cpp.

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

Referenced by searchAll(), and searchAndReplace().

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

Implements Assignment.

Definition at line 3434 of file statement.cpp.

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

bool PhiAssign::searchAndReplace (  Exp *  search,
Exp *  replace,
bool  cc = false
)  [virtual]
 

Implements Assignment.

Definition at line 3449 of file statement.cpp.

References defVec, Assignment::lhs, NULL, search(), and Exp::searchReplaceAll().

void PhiAssign::simplify (   )  [virtual]
 

Implements Assignment.

Definition at line 4168 of file statement.cpp.

References defVec, Assignment::lhs, and Exp::simplify().

void PhiAssign::simplifyRefs (   ) 
 


Friends And Related Function Documentation

friend class XMLProgParser [friend]
 

Reimplemented from Assignment.

Definition at line 652 of file statement.h.


Member Data Documentation

Definitions PhiAssign::defVec [private]
 

Definition at line 584 of file statement.h.

Referenced by accept(), begin(), clone(), dfaTypeAnalysis(), end(), erase(), genConstraints(), getAt(), getDefs(), getNumDefs(), getStmtAt(), printCompact(), putAt(), search(), searchAndReplace(), and simplify().


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