RefExp Class Reference

#include <include/exp.h>

Inheritance diagram for RefExp:

Unary Exp List of all members.

Detailed Description

Definition at line 771 of file exp.h.

Public Member Functions

virtual Exp * accept (ExpModifier *v)
virtual bool accept (ExpVisitor *v)
Exp * addSubscript (Statement *def)
virtual Type * ascendType ()
virtual Exp * clone ()
virtual void descendType (Type *parentType, bool &ch, Statement *s)
virtual Exp * genConstraints (Exp *restrictTo)
Statement * getDef ()
bool isImplicitDef ()
virtual bool match (const char *pattern, std::map< std::string, Exp * > &bindings)
virtual Exp * match (Exp *pattern)
virtual bool operator *= (Exp &o)
virtual bool operator< (const Exp &o) const
virtual bool operator== (const Exp &o) const
virtual Exp * polySimplify (bool &bMod)
virtual void print (std::ostream &os, bool html=false)
virtual void printx (int ind)
bool references (Statement *s)
 RefExp (Exp *e, Statement *def)
void setDef (Statement *def)

Protected Member Functions

 RefExp ()

Private Attributes

Statement * def

Friends

class XMLProgParser


Constructor & Destructor Documentation

RefExp::RefExp (  Exp *  e,
Statement *  def
) 
 

Definition at line 134 of file exp.cpp.

RefExp::RefExp (   )  [inline, protected]
 

Definition at line 808 of file exp.h.

Referenced by clone().


Member Function Documentation

Exp * RefExp::accept (  ExpModifier *  v  )  [virtual]
 

Reimplemented from Unary.

Definition at line 3721 of file exp.cpp.

References Exp::accept(), ExpModifier::postVisit(), ExpModifier::preVisit(), and Unary::subExp1.

bool RefExp::accept (  ExpVisitor *  v  )  [virtual]
 

Reimplemented from Unary.

Definition at line 3635 of file exp.cpp.

References Exp::accept(), Unary::subExp1, and ExpVisitor::visit().

Referenced by PhiAssign::accept(), StmtRegMapper::common(), Exp::fromSSAleft(), and CallBypasser::postVisit().

Exp* RefExp::addSubscript (  Statement *  def  )  [inline]
 

Definition at line 788 of file exp.h.

References def.

Type * RefExp::ascendType (   )  [virtual]
 

Reimplemented from Unary.

Definition at line 987 of file dfa.cpp.

References def, Statement::getTypeFor(), NULL, and Unary::subExp1.

Exp * RefExp::clone (   )  [virtual]
 

Reimplemented from Unary.

Definition at line 318 of file exp.cpp.

References Exp::clone(), def, RefExp(), and Unary::subExp1.

void RefExp::descendType (  Type *  parentType,
bool &  ch,
Statement *  s
)  [virtual]
 

Reimplemented from Unary.

Definition at line 1170 of file dfa.cpp.

References def, Exp::descendType(), Statement::meetWithFor(), and Unary::subExp1.

Exp * RefExp::genConstraints (  Exp *  restrictTo  )  [virtual]
 

Reimplemented from Unary.

Definition at line 3342 of file exp.cpp.

References Exp::getOper(), opGlobal, opLocal, opParam, opRegOf, opTrue, result, Unary::subExp1, and Unary::Unary().

Statement* RefExp::getDef (   )  [inline]
 

Definition at line 787 of file exp.h.

References def.

Referenced by UserProc::checkLocalFor(), UserProc::countRefs(), UserProc::findLocalFromRef(), UserProc::lookupSymFromRef(), UserProc::lookupSymFromRefAny(), ExpCastInserter::postVisit(), ImplicitConverter::postVisit(), CallBypasser::postVisit(), ConstGlobalConverter::preVisit(), UserProc::printUseGraph(), UserProc::reverseStrengthReduction(), and PrimitiveTester::visit().

bool RefExp::isImplicitDef (   ) 
 

Definition at line 3873 of file exp.cpp.

References def, Statement::getKind(), NULL, and STMT_IMPASSIGN.

Referenced by operator==().

bool RefExp::match (  const char *  pattern,
std::map< std::string, Exp * > &  bindings
)  [virtual]
 

Reimplemented from Unary.

Definition at line 1463 of file exp.cpp.

References def, end(), Statement::getNumber(), LOG, Exp::match(), NULL, and Unary::subExp1.

Exp * RefExp::match (  Exp *  pattern  )  [virtual]
 

Reimplemented from Unary.

Definition at line 1317 of file exp.cpp.

References Unary::match().

bool RefExp::operator *= (  Exp &  o  )  [virtual]
 

Reimplemented from Unary.

Definition at line 560 of file exp.cpp.

References Exp::getOper(), Exp::getSubExp1(), opSubscript, and Unary::subExp1.

bool RefExp::operator< (  const Exp &  o  )  const [virtual]
 

Reimplemented from Unary.

Definition at line 488 of file exp.cpp.

References def, Exp::getOper(), Unary::getSubExp1(), opSubscript, and Unary::subExp1.

bool RefExp::operator== (  const Exp &  o  )  const [virtual]
 

Reimplemented from Unary.

Definition at line 398 of file exp.cpp.

References def, Statement::isImplicit(), isImplicitDef(), NULL, Exp::op, opSubscript, opWild, and Unary::subExp1.

Exp * RefExp::polySimplify (  bool &  bMod  )  [virtual]
 

Reimplemented from Unary.

Definition at line 2902 of file exp.cpp.

References def, Exp::getOper(), NULL, opDF, Exp::polySimplify(), Unary::subExp1, and tmp.

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

Reimplemented from Unary.

Definition at line 1005 of file exp.cpp.

References def, Statement::getNumber(), Exp::print(), Statement::printNum(), and Unary::subExp1.

void RefExp::printx (  int  ind  )  [virtual]
 

Reimplemented from Unary.

Definition at line 3822 of file exp.cpp.

References child(), def, Statement::getNumber(), operStrings, and Unary::subExp1.

bool RefExp::references (  Statement *  s  )  [inline]
 

Definition at line 791 of file exp.h.

References def.

void RefExp::setDef (  Statement *  def  )  [inline]
 

Definition at line 789 of file exp.h.

References def.

Referenced by ImplicitConverter::postVisit().


Friends And Related Function Documentation

friend class XMLProgParser [friend]
 

Reimplemented from Unary.

Definition at line 809 of file exp.h.


Member Data Documentation

Statement* RefExp::def [private]
 

Definition at line 772 of file exp.h.

Referenced by addSubscript(), ascendType(), clone(), descendType(), getDef(), isImplicitDef(), match(), operator<(), operator==(), XMLProgParser::persistToXML(), polySimplify(), print(), printx(), references(), and setDef().


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