Unary Class Reference

#include <include/exp.h>

Inheritance diagram for Unary:

Exp Binary FlagDef Location RefExp TypedExp Ternary List of all members.

Detailed Description

Definition at line 492 of file exp.h.

Public Member Functions

virtual Expaccept (ExpModifier *v)
virtual bool accept (ExpVisitor *v)
virtual void appendDotFile (std::ofstream &of)
virtual TypeascendType ()
virtual Expclone ()
virtual void descendType (Type *parentType, bool &ch, Statement *s)
void doSearchChildren (Exp *search, std::list< Exp ** > &li, bool once)
virtual ExpgenConstraints (Exp *restrictTo)
virtual int getArity ()
ExpgetSubExp1 ()
virtual bool match (const char *pattern, std::map< std::string, Exp * > &bindings)
virtual Expmatch (Exp *pattern)
virtual bool operator *= (Exp &o)
virtual bool operator< (const Exp &o) const
virtual bool operator== (const Exp &o) const
virtual ExppolySimplify (bool &bMod)
virtual void print (std::ostream &os, bool html=false)
virtual void printx (int ind)
Exp *& refSubExp1 ()
void setSubExp1 (Exp *e)
void setSubExp1ND (Exp *e)
ExpsimplifyAddr ()
ExpsimplifyArith ()
virtual ExpsimplifyConstraint ()
 Unary (Unary &o)
 Unary (OPER op, Exp *e)
virtual ~Unary ()

Protected Member Functions

 Unary (OPER op)

Protected Attributes

ExpsubExp1

Friends

class XMLProgParser


Constructor & Destructor Documentation

Unary::Unary OPER  op  )  [protected]
 

Definition at line 67 of file exp.cpp.

References subExp1.

Referenced by clone(), and RefExp::genConstraints().

Unary::Unary OPER  op,
Exp e
 

Definition at line 73 of file exp.cpp.

References subExp1.

Unary::Unary Unary o  ) 
 

Definition at line 78 of file exp.cpp.

References Exp::clone(), and subExp1.

Unary::~Unary  )  [virtual]
 

Definition at line 184 of file exp.cpp.

References subExp1.


Member Function Documentation

Exp * Unary::accept ExpModifier v  )  [virtual]
 

Implements Exp.

Reimplemented in Binary, Ternary, TypedExp, FlagDef, RefExp, and Location.

Definition at line 3686 of file exp.cpp.

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

bool Unary::accept ExpVisitor v  )  [virtual]
 

Implements Exp.

Reimplemented in Binary, Ternary, TypedExp, FlagDef, RefExp, and Location.

Definition at line 3595 of file exp.cpp.

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

void Unary::appendDotFile std::ofstream &  of  )  [virtual]
 

Implements Exp.

Reimplemented in Binary, Ternary, TypedExp, and FlagDef.

Definition at line 1112 of file exp.cpp.

References Exp::appendDotFile(), Exp::op, operStrings, and subExp1.

Type * Unary::ascendType  )  [virtual]
 

Reimplemented from Exp.

Reimplemented in Binary, Ternary, TypedExp, and RefExp.

Definition at line 1042 of file dfa.cpp.

References Exp::ascendType(), Type::asPointer(), PointerType::getPointsTo(), Exp::op, opAddrOf, opMemOf, Type::resolvesToPointer(), and subExp1.

Exp * Unary::clone  )  [virtual]
 

Implements Exp.

Reimplemented in Binary, Ternary, TypedExp, RefExp, and Location.

Definition at line 292 of file exp.cpp.

References Exp::clone(), Exp::op, subExp1, and Unary().

void Unary::descendType Type parentType,
bool &  ch,
Statement s
[virtual]
 

Reimplemented from Exp.

Reimplemented in Binary, Ternary, TypedExp, and RefExp.

Definition at line 1200 of file dfa.cpp.

References Const::ascendType(), Type::asCompound(), Type::asPointer(), DEBUG_TA, Const::descendType(), Exp::descendType(), Type::getCtype(), Const::getInt(), Exp::getOper(), Statement::getProc(), Proc::getProg(), Type::getSize(), Exp::getSubExp2(), Exp::isIntConst(), Exp::isLocation(), LOG, Prog::makeArrayType(), Exp::op, opMemOf, Type::resolvesToCompound(), Type::resolvesToPointer(), subExp1, and CompoundType::updateGenericMember().

void Unary::doSearchChildren Exp search,
std::list< Exp ** > &  li,
bool  once
[virtual]
 

Reimplemented from Exp.

Reimplemented in Binary, and Ternary.

Definition at line 1569 of file exp.cpp.

References Exp::doSearch(), Exp::op, opInitValueOf, Exp::search(), and subExp1.

Exp * Unary::genConstraints Exp restrictTo  )  [virtual]
 

Reimplemented from Exp.

Reimplemented in Binary, Ternary, and RefExp.

Definition at line 3257 of file exp.cpp.

References opTrue, and result.

virtual int Unary::getArity  )  [inline, virtual]
 

Reimplemented from Exp.

Reimplemented in Binary, and Ternary.

Definition at line 516 of file exp.h.

Exp * Unary::getSubExp1  )  [virtual]
 

Reimplemented from Exp.

Definition at line 230 of file exp.cpp.

References subExp1.

Referenced by CallStatement::bypassRef(), UserProc::checkLocalFor(), CallStatement::convertToDirect(), CallStatement::ellipsisProcessing(), LocationSet::findDifferentRef(), UserProc::findLocalFromRef(), findSwParams(), CallingConvention::StdC::SparcSignature::isAddrOfStackLocal(), Signature::isAddrOfStackLocal(), Exp::isAfpTerm(), Location::Location(), UserProc::lookupSymFromRef(), UserProc::lookupSymFromRefAny(), Ternary::operator *=(), Binary::operator *=(), RefExp::operator<(), Ternary::operator<(), Binary::operator<(), Ternary::operator==(), Binary::operator==(), polySimplify(), ExpSsaXformer::postVisit(), ExpCastInserter::postVisit(), ImplicitConverter::postVisit(), CallBypasser::postVisit(), ConstGlobalConverter::preVisit(), Statement::propagateTo(), simplifyAddr(), StatementTest::testLocationSet(), BadMemofFinder::visit(), ExpRegMapper::visit(), TempToLocalMapper::visit(), PrimitiveTester::visit(), UsedLocalFinder::visit(), and UsedLocsFinder::visit().

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

Reimplemented from Exp.

Reimplemented in Binary, Ternary, RefExp, and Location.

Definition at line 1384 of file exp.cpp.

References LOG, Exp::match(), Exp::op, opAddrOf, and subExp1.

Exp * Unary::match Exp pattern  )  [virtual]
 

Reimplemented from Exp.

Reimplemented in Binary, and RefExp.

Definition at line 1276 of file exp.cpp.

References Exp::getOper(), Exp::getSubExp1(), Exp::match(), Exp::op, and subExp1.

Referenced by RefExp::match().

bool Unary::operator *= Exp o  )  [virtual]
 

Implements Exp.

Reimplemented in Binary, Ternary, TypedExp, and RefExp.

Definition at line 516 of file exp.cpp.

References Exp::getOper(), Exp::getSubExp1(), Exp::op, opAddrOf, opMemOf, opRegOf, opSubscript, opWild, opWildAddrOf, opWildMemOf, opWildRegOf, and subExp1.

bool Unary::operator< const Exp o  )  const [virtual]
 

Implements Exp.

Reimplemented in Binary, Ternary, TypedExp, and RefExp.

Definition at line 449 of file exp.cpp.

References Exp::getOper(), Exp::getSubExp1(), Exp::op, and subExp1.

bool Unary::operator== const Exp o  )  const [virtual]
 

Implements Exp.

Reimplemented in Binary, Ternary, TypedExp, and RefExp.

Definition at line 357 of file exp.cpp.

References Exp::getSubExp1(), Exp::op, opAddrOf, opMemOf, opRegOf, opWild, opWildAddrOf, opWildMemOf, opWildRegOf, and subExp1.

Exp * Unary::polySimplify bool &  bMod  )  [virtual]
 

Reimplemented from Exp.

Reimplemented in Binary, Ternary, TypedExp, RefExp, and Location.

Definition at line 1922 of file exp.cpp.

References Exp::getOper(), getSubExp1(), Exp::getSubExp1(), opEquals, opGtr, opGtrEq, opGtrEqUns, opGtrUns, opLess, opLessEq, opLessEqUns, opLessUns, opLNot, opNot, opNotEqual, Exp::polySimplify(), Exp::setOper(), and subExp1.

Referenced by Location::polySimplify().

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

Implements Exp.

Reimplemented in Binary, Ternary, TypedExp, and RefExp.

Definition at line 792 of file exp.cpp.

References Exp::isIntConst(), Exp::isTemp(), Exp::op, opRegOf, and Exp::print().

Referenced by ExpTest::testUnaries().

void Unary::printx int  ind  )  [virtual]
 

Implements Exp.

Reimplemented in Binary, Ternary, TypedExp, and RefExp.

Definition at line 3768 of file exp.cpp.

References child(), operStrings, and subExp1.

Exp *& Unary::refSubExp1  )  [virtual]
 

Reimplemented from Exp.

Definition at line 234 of file exp.cpp.

References subExp1.

void Unary::setSubExp1 Exp e  )  [virtual]
 

Reimplemented from Exp.

Definition at line 209 of file exp.cpp.

References subExp1.

Referenced by Binary::Binary(), and ExpCastInserter::postVisit().

void Unary::setSubExp1ND Exp e  )  [inline]
 

Definition at line 525 of file exp.h.

References subExp1.

Exp * Unary::simplifyAddr  )  [virtual]
 

Reimplemented from Exp.

Reimplemented in Binary, and Ternary.

Definition at line 2944 of file exp.cpp.

References getSubExp1(), Exp::isAddrOf(), opMemOf, and subExp1.

Exp * Unary::simplifyArith  )  [virtual]
 

Reimplemented from Exp.

Reimplemented in Binary, and Ternary.

Definition at line 1748 of file exp.cpp.

References Exp::op, opAddrOf, opMemOf, opRegOf, opSubscript, Exp::simplifyArith(), and subExp1.

Exp * Unary::simplifyConstraint  )  [virtual]
 

Reimplemented from Exp.

Reimplemented in Binary.

Definition at line 3553 of file exp.cpp.

References Exp::simplifyConstraint(), and subExp1.


Friends And Related Function Documentation

friend class XMLProgParser [friend]
 

Reimplemented from Exp.

Reimplemented in Binary, Ternary, TypedExp, FlagDef, RefExp, and Location.

Definition at line 554 of file exp.h.


Member Data Documentation

Exp* Unary::subExp1 [protected]
 

Definition at line 494 of file exp.h.

Referenced by Location::accept(), RefExp::accept(), FlagDef::accept(), TypedExp::accept(), Ternary::accept(), Binary::accept(), accept(), FlagDef::appendDotFile(), TypedExp::appendDotFile(), Ternary::appendDotFile(), Binary::appendDotFile(), appendDotFile(), ascendType(), RefExp::ascendType(), Binary::ascendType(), Binary::Binary(), Location::clone(), RefExp::clone(), TypedExp::clone(), Ternary::clone(), Binary::clone(), clone(), Binary::commute(), Binary::constrainSub(), Ternary::descendType(), descendType(), RefExp::descendType(), Binary::descendType(), Ternary::doSearchChildren(), Binary::doSearchChildren(), doSearchChildren(), Binary::genConstraints(), RefExp::genConstraints(), Ternary::genConstraints(), Location::getDefinitions(), getSubExp1(), Binary::getSubExp2(), Ternary::getSubExp3(), Location::match(), RefExp::match(), Binary::match(), match(), RefExp::operator *=(), Ternary::operator *=(), Binary::operator *=(), operator *=(), RefExp::operator<(), TypedExp::operator<(), Ternary::operator<(), Binary::operator<(), operator<(), TypedExp::operator<<(), RefExp::operator==(), Ternary::operator==(), Binary::operator==(), operator==(), XMLProgParser::persistToXML(), RefExp::polySimplify(), TypedExp::polySimplify(), Ternary::polySimplify(), Binary::polySimplify(), polySimplify(), RefExp::print(), Binary::print(), Binary::printr(), RefExp::printx(), TypedExp::printx(), Ternary::printx(), Binary::printx(), printx(), refSubExp1(), Binary::refSubExp2(), Ternary::refSubExp3(), setSubExp1(), setSubExp1ND(), Binary::setSubExp2(), Ternary::setSubExp3(), Ternary::simplifyAddr(), Binary::simplifyAddr(), simplifyAddr(), Binary::simplifyArith(), Ternary::simplifyArith(), simplifyArith(), Binary::simplifyConstraint(), simplifyConstraint(), Ternary::Ternary(), TypedExp::TypedExp(), Unary(), and ~Unary().


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