Constraints Class Reference

#include <include/constraint.h>

List of all members.


Detailed Description

Definition at line 94 of file constraint.h.

Public Member Functions

void addConstraints (LocationSet &con)
void alphaSubst ()
 Constraints ()
LocationSetgetConstraints ()
void print (std::ostream &os)
char * prints ()
bool solve (std::list< ConstraintMap > &solns)
void substIntoDisjuncts (ConstraintMap &in)
void substIntoEquates (ConstraintMap &in)
 ~Constraints ()

Private Member Functions

bool doSolve (std::list< Exp * >::iterator it, ConstraintMap &extra, std::list< ConstraintMap > &solns)
bool unify (Exp *x, Exp *y, ConstraintMap &extra)

Private Attributes

LocationSet conSet
std::list< Exp * > disjunctions
EquateMap equates
ConstraintMap fixed


Constructor & Destructor Documentation

Constraints::Constraints  )  [inline]
 

Definition at line 104 of file constraint.h.

Constraints::~Constraints  ) 
 

Definition at line 154 of file constraint.cpp.

References LocationSet::begin(), conSet, and LocationSet::end().


Member Function Documentation

void Constraints::addConstraints LocationSet con  )  [inline]
 

Definition at line 111 of file constraint.h.

References conSet, and LocationSet::makeUnion().

Referenced by UserProc::conTypeAnalysis().

void Constraints::alphaSubst  ) 
 

Definition at line 505 of file constraint.cpp.

References disjunctions, Exp::getSubExp1(), Exp::getSubExp2(), Exp::isEquality(), Type::isPointerToAlpha(), Exp::isTypeVal(), nextConjunct(), and NULL.

bool Constraints::doSolve std::list< Exp * >::iterator  it,
ConstraintMap extra,
std::list< ConstraintMap > &  solns
[private]
 

Definition at line 386 of file constraint.cpp.

References disjunctions, fixed, LOG, ConstraintMap::makeUnion(), and ConstraintMap::prints().

LocationSet& Constraints::getConstraints  )  [inline]
 

Definition at line 110 of file constraint.h.

References conSet.

void Constraints::print std::ostream &  os  ) 
 

Definition at line 555 of file constraint.cpp.

References disjunctions, equates, fixed, EquateMap::print(), ConstraintMap::print(), EquateMap::size(), and ConstraintMap::size().

Referenced by prints().

char * Constraints::prints  ) 
 

Definition at line 567 of file constraint.cpp.

References debug_buffer, DEBUG_BUFSIZE, and print().

bool Constraints::solve std::list< ConstraintMap > &  solns  ) 
 

Definition at line 269 of file constraint.cpp.

References LocationSet::begin(), conSet, LocationSet::end(), Exp::getSubExp1(), Exp::getSubExp2(), LocationSet::insert(), Exp::isAddrOf(), Type::isPointer(), Exp::isTypeOf(), Exp::isTypeVal(), LOG, NULL, LocationSet::print(), LocationSet::remove(), and LocationSet::size().

void Constraints::substIntoDisjuncts ConstraintMap in  ) 
 

Definition at line 162 of file constraint.cpp.

References ConstraintMap::begin(), disjunctions, ConstraintMap::end(), and to.

void Constraints::substIntoEquates ConstraintMap in  ) 
 

Definition at line 178 of file constraint.cpp.

References ConstraintMap::begin(), ConstraintMap::clear(), DEBUG_TA, EquateMap::end(), ConstraintMap::end(), equates, ConstraintMap::find(), EquateMap::find(), fixed, LOG, ConstraintMap::size(), unify(), and VERBOSE.

bool Constraints::unify Exp x,
Exp y,
ConstraintMap extra
[private]
 

Definition at line 461 of file constraint.cpp.

References ConstraintMap::constrain(), Type::isPointer(), Exp::isTypeVal(), and LOG.

Referenced by substIntoEquates().


Member Data Documentation

LocationSet Constraints::conSet [private]
 

Definition at line 95 of file constraint.h.

Referenced by addConstraints(), getConstraints(), solve(), and ~Constraints().

std::list<Exp*> Constraints::disjunctions [private]
 

Definition at line 96 of file constraint.h.

Referenced by alphaSubst(), doSolve(), print(), and substIntoDisjuncts().

EquateMap Constraints::equates [private]
 

Definition at line 101 of file constraint.h.

Referenced by print(), and substIntoEquates().

ConstraintMap Constraints::fixed [private]
 

Definition at line 99 of file constraint.h.

Referenced by doSolve(), print(), and substIntoEquates().


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