ROSE
0.9.6a
|
#include <ConstrGraph.h>
Classes | |
class | geIterator |
class | leIterator |
class | NodeDesc |
Public Types | |
enum | levels { uninitialized = 0, bottom, constrKnown, top } |
enum | constrTypes { unknown, conj, negConj, inconsistent } |
Public Member Functions | |
ConstrGraph (const Function &func, const DataflowNode &n, const NodeState &state, LiveDeadVarsAnalysis *ldva, FiniteVarsExprsProductLattice *divL, bool initialized=true, std::string indent="") | |
ConstrGraph (const Function &func, const DataflowNode &n, const NodeState &state, LiveDeadVarsAnalysis *ldva, const std::map< std::pair< std::string, void * >, FiniteVarsExprsProductLattice * > &divL, bool initialized=true, std::string indent="") | |
ConstrGraph (const Function &func, const std::set< NodeDesc > &nodes, const NodeState &state, LiveDeadVarsAnalysis *ldva, const std::map< std::pair< std::string, void * >, FiniteVarsExprsProductLattice * > &divL, bool initialized=true, std::string indent="") | |
ConstrGraph (ConstrGraph &that, bool initialized=true, std::string indent="") | |
ConstrGraph (const ConstrGraph *that, bool initialized=true, std::string indent="") | |
ConstrGraph (const std::set< varAffineInequality > &ineqs, const Function &func, const DataflowNode &n, const NodeState &state, LiveDeadVarsAnalysis *ldva, FiniteVarsExprsProductLattice *divL, std::string indent="") | |
ConstrGraph (const std::set< varAffineInequality > &ineqs, const Function &func, const DataflowNode &n, const NodeState &state, LiveDeadVarsAnalysis *ldva, const std::map< std::pair< std::string, void * >, FiniteVarsExprsProductLattice * > &divL, std::string indent="") | |
~ConstrGraph () | |
void | initialize (std::string indent="") |
void | initialize () |
FiniteVarsExprsProductLattice * | getDivLattice (const varID &var, std::string indent="") |
std::string | DivLattices2Str (std::string indent="") |
bool | addVar (const varID &scalar, std::string indent="") |
bool | removeVar (const varID &scalar, std::string indent="") |
const varIDSet & | getVars () const |
varIDSet & | getVarsMod () |
void | copy (Lattice *that) |
Lattice * | copy () const |
bool | copyFrom (ConstrGraph &that, std::string indent="") |
bool | copyFromReplace (ConstrGraph &that, varID varTo, varID varFrom, std::string indent="") |
bool | copyVar (const ConstrGraph &that, const varID &var) |
bool | copyConstraints (ConstrGraph &that, std::string indent="") |
bool | copyConstraintsReplace (ConstrGraph &that, varID varTo, varID varFrom, std::string indent="") |
void | eraseConstraints (bool noBottomCheck=false, std::string indent="") |
bool | eraseVarConstr (const varID &eraseVar, bool noConsistencyCheck=false, std::string indent="") |
bool | eraseVarConstrNoDiv (const varID &eraseVar, bool noConsistencyCheck=false, std::string indent="") |
bool | eraseVarConstrNoDivVars (const varID &eraseVar, bool noConsistencyCheck=false, std::string indent="") |
bool | replaceVar (const varID &origVar, const varID &newVar, bool noConsistencyCheck=false, std::string indent="") |
bool | copyAnnotVars (std::string srcAnnotName, void *srcAnnotVal, std::string tgtAnnotName, void *tgtAnnotVal, const std::set< std::pair< std::string, void * > > &noCopyAnnots, const std::set< varID > &noCopyVars, std::string indent="") |
bool | mergeAnnotVars (const std::string &finalAnnotName, void *finalAnnotVal, const std::string &remAnnotName, void *remAnnotVal, const std::set< std::pair< std::string, void * > > &noCopyAnnots, const std::set< varID > &noCopyVars, std::string indent="") |
void | remapVars (const std::map< varID, varID > &varNameMap, const Function &newFunc) |
void | incorporateVars (Lattice *that) |
Lattice * | project (SgExpression *expr) |
bool | unProject (SgExpression *expr, Lattice *exprState) |
ConstrGraph * | getProjection (const varIDSet &focusVars, std::string indent="") |
bool | removeVarAnnot (std::string annotName, void *annot, std::string indent="") |
bool | replaceVarAnnot (std::string oldAnnotName, void *oldAnnot, std::string newAnnotName, void *newAnnot, std::string indent="") |
bool | addVarAnnot (std::string tgtAnnotName, void *tgtAnnotVal, std::string newAnnotName, void *newAnnotVal, std::string indent="") |
bool | negate (std::string indent="") |
bool | assign (const varAffineInequality &cond, std::string indent="") |
bool | assign (varID x, varID y, const affineInequality &ineq, std::string indent="") |
bool | assign (varID x, varID y, int a, int b, int c, std::string indent="") |
bool | assignBot (varID var, std::string indent="") |
bool | assignTop (varID var, std::string indent="") |
bool | assertCond (const varAffineInequality &cond, std::string indent="") |
bool | assertCond (const varID &x, const varID &y, const affineInequality &ineq, std::string indent="") |
bool | assertCond (const varID &x, const varID &y, int a, int b, int c, std::string indent="") |
bool | assertEq (const varAffineInequality &cond, std::string indent="") |
bool | assertEq (varID x, varID y, const affineInequality &ineq, std::string indent="") |
bool | assertEq (const varID &x, const varID &y, int a=1, int b=1, int c=0, std::string indent="") |
affineInequality::signs | getVarSign (const varID &var, std::string indent="") |
bool | isEqZero (const varID &var, std::string indent="") |
bool | eqVars (const varID &v1, const varID &v2, int a=1, int b=1, int c=0, std::string indent="") |
bool | eqVars (const varID &v1, const varID &v2, std::string indent="") |
bool | isEqVars (const varID &v1, const varID &v2, int &a, int &b, int &c, std::string indent="") |
std::map< varID, affineInequality > | getEqVars (varID var, std::string indent="") |
bool | lteVars (const varID &v1, const varID &v2, int a=1, int b=1, int c=0, std::string indent="") |
bool | ltVars (const varID &v1, const varID &v2, int a=1, int b=1, int c=0, std::string indent="") |
leIterator | leBegin (const varID &y) |
leIterator | leEnd () |
geIterator | geBegin (const varID &y) |
geIterator | geEnd () |
bool | widenUpdate (InfiniteLattice *that, std::string indent="") |
bool | widenUpdate (InfiniteLattice *that) |
bool | widenUpdateLimitToThat (InfiniteLattice *that, std::string indent="") |
bool | widenUpdate_ex (InfiniteLattice *that_arg, bool limitToThat, std::string indent="") |
bool | meetUpdate (Lattice *that, std::string indent="") |
bool | meetUpdate (Lattice *that) |
bool | meetUpdateLimitToThat (InfiniteLattice *that, std::string indent="") |
bool | meetUpdate_ex (Lattice *that_arg, bool limitToThat, std::string indent="") |
bool | orUpd (LogicalCond &that, std::string indent="") |
bool | orUpd (LogicalCond &that) |
bool | andUpd (LogicalCond &that, std::string indent="") |
bool | andUpd (LogicalCond &that) |
bool | andUpd (ConstrGraph *that, std::string indent="") |
bool | andUpd (ConstrGraph *that) |
bool | OrAndWidenUpdate (ConstrGraph *that, bool meet, bool OR, bool limitToThat, std::string indent="") |
void | OrAndWidenUpdate_XinThisNotThat (bool OR, bool limitToThat, std::map< varID, std::map< varID, affineInequality > >::iterator &itThisX, bool &modified, std::string indent="") |
void | OrAndWidenUpdate_XinThatNotThis (bool OR, bool limitToThat, ConstrGraph *that, std::map< varID, std::map< varID, affineInequality > >::iterator &itThatX, std::map< varID, std::map< varID, affineInequality > > &additionsToThis, bool &modified, std::string indent="") |
void | OrAndWidenUpdate_YinThisNotThat (bool OR, bool limitToThat, std::map< varID, std::map< varID, affineInequality > >::iterator &itThisX, std::map< varID, affineInequality >::iterator &itThisY, bool &modified, std::string indent="") |
void | OrAndWidenUpdate_YinThatNotThis (bool OR, bool limitToThat, std::map< varID, std::map< varID, affineInequality > >::iterator &itThatX, std::map< varID, affineInequality >::iterator &itThatY, std::map< varID, affineInequality > &additionsToThis, bool &modified, std::string indent="") |
bool | transitiveClosure (std::string indent="") |
bool | localTransClosure (const varID &tgtVar, std::string indent="") |
bool | addDivL (FiniteVarsExprsProductLattice *divLattice, std::string annotName, void *annot, std::string indent="") |
bool | containsVar (const varID &var, std::string indent="") |
affineInequality * | getVal (varID x, varID y, std::string indent="") |
bool | setVal (varID x, varID y, int a, int b, int c, std::string indent="") |
bool | setVal (varID x, varID y, const affineInequality &ineq, std::string indent="") |
bool | setToUninitialized_KeepState (std::string indent="") |
bool | setToBottom (std::string indent="") |
bool | setToConstrKnown (constrTypes ct, bool eraseCurConstr=true, std::string indent="") |
bool | setToInconsistent (std::string indent="") |
bool | setToTop (bool onlyIfNotInit=false, std::string indent="") |
std::pair< levels, constrTypes > | getLevel (bool noConsistencyCheck=false, std::string indent="") |
bool | isSelfConsistent (bool noConsistencyCheck=false, std::string indent="") |
bool | hasConsistentConstraints (bool noConsistencyCheck=false, std::string indent="") |
bool | isMaximalState (bool noConsistencyCheck=false, std::string indent="") |
std::string | str (std::string indent="") |
void | varSetStatusToStream (const std::set< varID > &vars, std::ostringstream &outs, bool &needEndl, std::string indent="") |
std::string | str (std::string indent, bool useIsBottom) |
std::string | toDOT (std::string graphName) |
std::string | toDOT (std::string graphName, std::set< varID > &focusVars) |
bool | operator!= (ConstrGraph &that) |
bool | operator== (ConstrGraph &that) |
bool | operator== (Lattice *that) |
bool | operator<<= (ConstrGraph &that) |
bool | mustOutsideRange (varID x, int b, int c, varID y, std::string indent="") |
bool | mayTrue (std::string indent="") |
bool | mayTrue () |
void | beginTransaction (std::string indent="") |
void | endTransaction (std::string indent="") |
Public Member Functions inherited from InfiniteLattice | |
bool | finiteLattice () |
Check if this lattice is finite or not. More... | |
Public Member Functions inherited from Lattice | |
bool | operator!= (Lattice *that) |
bool | operator== (Lattice &that) |
bool | operator!= (Lattice &that) |
Public Member Functions inherited from printable | |
virtual | ~printable () |
Public Member Functions inherited from dottable | |
virtual | ~dottable () |
Static Public Member Functions | |
static bool | varHasAnnot (const varID &var, const std::set< std::pair< std::string, void * > > &annots, std::string indent="") |
static bool | varHasAnnot (const varID &var, std::string annotName, void *annotVal, std::string indent="") |
static ConstrGraph * | joinCG (ConstrGraph *cg1, void *cg1Annot, ConstrGraph *cg2, void *cg2Annot, std::string annotName, const varIDSet &noAnnot, std::string indent="") |
Protected Member Functions | |
ConstrGraph (const Function &func, const DataflowNode &n, const NodeState &state, bool initialized=false, std::string indent="") | |
void | initCG (const Function &func, const std::set< NodeDesc > &nodes, bool initialized, std::string indent="") |
bool | diffConstraints (ConstrGraph &that, std::string indent="") |
bool | annotInterestingVar (const varID &var, const std::set< std::pair< std::string, void * > > &noCopyAnnots, const std::set< varID > &noCopyVars, const std::string &annotName, void *annotVal, std::string indent="") |
bool | unionXYsubMap (std::map< varID, affineInequality > &subMap, const varID &y, const affineInequality &ineq, std::string indent="") |
bool | mergeAnnotVarsSubMap (std::map< varID, affineInequality > &subMap, std::string finalAnnotName, void *finalAnnotVal, std::string remAnnotName, void *remAnnotVal, const std::set< std::pair< std::string, void * > > &noCopyAnnots, const std::set< varID > &noCopyVars, std::string indent="") |
bool | mergeAnnotVarsSet (std::set< varID > varsSet, std::string finalAnnotName, void *finalAnnotVal, std::string remAnnotName, void *remAnnotVal, const std::set< std::pair< std::string, void * > > &noCopyAnnots, const std::set< varID > &noCopyVars, std::string indent="") |
bool | transitiveClosureDiv (std::string indent="") |
void | transitiveClosureY (const varID &x, const varID &y, bool &modified, int &numSteps, int &numInfers, bool &iterModified, std::string indent="") |
void | transitiveClosureZ (const varID &x, const varID &y, const varID &z, bool &modified, int &numSteps, int &numInfers, bool &iterModified, std::string indent="") |
bool | checkSelfConsistency (std::string indent="") |
Static Protected Member Functions | |
static void | joinCG_copyState (ConstrGraph *tgtCG, ConstrGraph *srcCG, void *annot, std::string annotName, const varIDSet &noAnnot, std::string indent="") |
Protected Attributes | |
levels | level |
constrTypes | constrType |
const Function & | func |
const NodeState & | state |
std::map< varID, std::map < varID, affineInequality > > | vars2Value |
LiveDeadVarsAnalysis * | ldva |
bool | inTransaction |
std::map< std::pair < std::string, void * > , FiniteVarsExprsProductLattice * > | divL |
std::set< varID > | vars |
bool | constrChanged |
std::set< varID > | modifiedVars |
Definition at line 38 of file ConstrGraph.h.
enum ConstrGraph::levels |
Enumerator | |
---|---|
uninitialized | |
bottom | |
constrKnown | |
top |
Definition at line 42 of file ConstrGraph.h.
Enumerator | |
---|---|
unknown | |
conj | |
negConj | |
inconsistent |
Definition at line 63 of file ConstrGraph.h.
|
protected |
ConstrGraph::ConstrGraph | ( | const Function & | func, |
const DataflowNode & | n, | ||
const NodeState & | state, | ||
LiveDeadVarsAnalysis * | ldva, | ||
FiniteVarsExprsProductLattice * | divL, | ||
bool | initialized = true , |
||
std::string | indent = "" |
||
) |
ConstrGraph::ConstrGraph | ( | const Function & | func, |
const DataflowNode & | n, | ||
const NodeState & | state, | ||
LiveDeadVarsAnalysis * | ldva, | ||
const std::map< std::pair< std::string, void * >, FiniteVarsExprsProductLattice * > & | divL, | ||
bool | initialized = true , |
||
std::string | indent = "" |
||
) |
ConstrGraph::ConstrGraph | ( | const Function & | func, |
const std::set< NodeDesc > & | nodes, | ||
const NodeState & | state, | ||
LiveDeadVarsAnalysis * | ldva, | ||
const std::map< std::pair< std::string, void * >, FiniteVarsExprsProductLattice * > & | divL, | ||
bool | initialized = true , |
||
std::string | indent = "" |
||
) |
ConstrGraph::ConstrGraph | ( | ConstrGraph & | that, |
bool | initialized = true , |
||
std::string | indent = "" |
||
) |
ConstrGraph::ConstrGraph | ( | const ConstrGraph * | that, |
bool | initialized = true , |
||
std::string | indent = "" |
||
) |
ConstrGraph::ConstrGraph | ( | const std::set< varAffineInequality > & | ineqs, |
const Function & | func, | ||
const DataflowNode & | n, | ||
const NodeState & | state, | ||
LiveDeadVarsAnalysis * | ldva, | ||
FiniteVarsExprsProductLattice * | divL, | ||
std::string | indent = "" |
||
) |
ConstrGraph::ConstrGraph | ( | const std::set< varAffineInequality > & | ineqs, |
const Function & | func, | ||
const DataflowNode & | n, | ||
const NodeState & | state, | ||
LiveDeadVarsAnalysis * | ldva, | ||
const std::map< std::pair< std::string, void * >, FiniteVarsExprsProductLattice * > & | divL, | ||
std::string | indent = "" |
||
) |
ConstrGraph::~ConstrGraph | ( | ) |
|
protected |
void ConstrGraph::initialize | ( | std::string | indent = "" ) |
|
inlinevirtual |
Implements Lattice.
Definition at line 204 of file ConstrGraph.h.
FiniteVarsExprsProductLattice* ConstrGraph::getDivLattice | ( | const varID & | var, |
std::string | indent = "" |
||
) |
std::string ConstrGraph::DivLattices2Str | ( | std::string | indent = "" ) |
bool ConstrGraph::addVar | ( | const varID & | scalar, |
std::string | indent = "" |
||
) |
bool ConstrGraph::removeVar | ( | const varID & | scalar, |
std::string | indent = "" |
||
) |
const varIDSet& ConstrGraph::getVars | ( | ) | const |
varIDSet& ConstrGraph::getVarsMod | ( | ) |
bool ConstrGraph::copyFrom | ( | ConstrGraph & | that, |
std::string | indent = "" |
||
) |
bool ConstrGraph::copyFromReplace | ( | ConstrGraph & | that, |
varID | varTo, | ||
varID | varFrom, | ||
std::string | indent = "" |
||
) |
bool ConstrGraph::copyVar | ( | const ConstrGraph & | that, |
const varID & | var | ||
) |
|
protected |
bool ConstrGraph::copyConstraints | ( | ConstrGraph & | that, |
std::string | indent = "" |
||
) |
bool ConstrGraph::copyConstraintsReplace | ( | ConstrGraph & | that, |
varID | varTo, | ||
varID | varFrom, | ||
std::string | indent = "" |
||
) |
void ConstrGraph::eraseConstraints | ( | bool | noBottomCheck = false , |
std::string | indent = "" |
||
) |
bool ConstrGraph::eraseVarConstr | ( | const varID & | eraseVar, |
bool | noConsistencyCheck = false , |
||
std::string | indent = "" |
||
) |
bool ConstrGraph::eraseVarConstrNoDiv | ( | const varID & | eraseVar, |
bool | noConsistencyCheck = false , |
||
std::string | indent = "" |
||
) |
bool ConstrGraph::eraseVarConstrNoDivVars | ( | const varID & | eraseVar, |
bool | noConsistencyCheck = false , |
||
std::string | indent = "" |
||
) |
bool ConstrGraph::replaceVar | ( | const varID & | origVar, |
const varID & | newVar, | ||
bool | noConsistencyCheck = false , |
||
std::string | indent = "" |
||
) |
|
protected |
bool ConstrGraph::copyAnnotVars | ( | std::string | srcAnnotName, |
void * | srcAnnotVal, | ||
std::string | tgtAnnotName, | ||
void * | tgtAnnotVal, | ||
const std::set< std::pair< std::string, void * > > & | noCopyAnnots, | ||
const std::set< varID > & | noCopyVars, | ||
std::string | indent = "" |
||
) |
bool ConstrGraph::mergeAnnotVars | ( | const std::string & | finalAnnotName, |
void * | finalAnnotVal, | ||
const std::string & | remAnnotName, | ||
void * | remAnnotVal, | ||
const std::set< std::pair< std::string, void * > > & | noCopyAnnots, | ||
const std::set< varID > & | noCopyVars, | ||
std::string | indent = "" |
||
) |
|
protected |
|
protected |
|
protected |
|
static |
|
static |
|
inlinevirtual |
Reimplemented from Lattice.
Definition at line 404 of file ConstrGraph.h.
|
inlinevirtual |
Reimplemented from Lattice.
Definition at line 411 of file ConstrGraph.h.
|
inlinevirtual |
|
inlinevirtual |
ConstrGraph* ConstrGraph::getProjection | ( | const varIDSet & | focusVars, |
std::string | indent = "" |
||
) |
|
static |
|
staticprotected |
bool ConstrGraph::removeVarAnnot | ( | std::string | annotName, |
void * | annot, | ||
std::string | indent = "" |
||
) |
bool ConstrGraph::replaceVarAnnot | ( | std::string | oldAnnotName, |
void * | oldAnnot, | ||
std::string | newAnnotName, | ||
void * | newAnnot, | ||
std::string | indent = "" |
||
) |
bool ConstrGraph::addVarAnnot | ( | std::string | tgtAnnotName, |
void * | tgtAnnotVal, | ||
std::string | newAnnotName, | ||
void * | newAnnotVal, | ||
std::string | indent = "" |
||
) |
bool ConstrGraph::negate | ( | std::string | indent = "" ) |
bool ConstrGraph::assign | ( | const varAffineInequality & | cond, |
std::string | indent = "" |
||
) |
bool ConstrGraph::assign | ( | varID | x, |
varID | y, | ||
const affineInequality & | ineq, | ||
std::string | indent = "" |
||
) |
bool ConstrGraph::assignBot | ( | varID | var, |
std::string | indent = "" |
||
) |
bool ConstrGraph::assignTop | ( | varID | var, |
std::string | indent = "" |
||
) |
bool ConstrGraph::assertCond | ( | const varAffineInequality & | cond, |
std::string | indent = "" |
||
) |
bool ConstrGraph::assertCond | ( | const varID & | x, |
const varID & | y, | ||
const affineInequality & | ineq, | ||
std::string | indent = "" |
||
) |
bool ConstrGraph::assertCond | ( | const varID & | x, |
const varID & | y, | ||
int | a, | ||
int | b, | ||
int | c, | ||
std::string | indent = "" |
||
) |
bool ConstrGraph::assertEq | ( | const varAffineInequality & | cond, |
std::string | indent = "" |
||
) |
bool ConstrGraph::assertEq | ( | varID | x, |
varID | y, | ||
const affineInequality & | ineq, | ||
std::string | indent = "" |
||
) |
bool ConstrGraph::assertEq | ( | const varID & | x, |
const varID & | y, | ||
int | a = 1 , |
||
int | b = 1 , |
||
int | c = 0 , |
||
std::string | indent = "" |
||
) |
affineInequality::signs ConstrGraph::getVarSign | ( | const varID & | var, |
std::string | indent = "" |
||
) |
bool ConstrGraph::isEqZero | ( | const varID & | var, |
std::string | indent = "" |
||
) |
bool ConstrGraph::eqVars | ( | const varID & | v1, |
const varID & | v2, | ||
int | a = 1 , |
||
int | b = 1 , |
||
int | c = 0 , |
||
std::string | indent = "" |
||
) |
Referenced by eqVars().
Definition at line 527 of file ConstrGraph.h.
References eqVars().
bool ConstrGraph::isEqVars | ( | const varID & | v1, |
const varID & | v2, | ||
int & | a, | ||
int & | b, | ||
int & | c, | ||
std::string | indent = "" |
||
) |
std::map<varID, affineInequality> ConstrGraph::getEqVars | ( | varID | var, |
std::string | indent = "" |
||
) |
bool ConstrGraph::lteVars | ( | const varID & | v1, |
const varID & | v2, | ||
int | a = 1 , |
||
int | b = 1 , |
||
int | c = 0 , |
||
std::string | indent = "" |
||
) |
bool ConstrGraph::ltVars | ( | const varID & | v1, |
const varID & | v2, | ||
int | a = 1 , |
||
int | b = 1 , |
||
int | c = 0 , |
||
std::string | indent = "" |
||
) |
leIterator ConstrGraph::leBegin | ( | const varID & | y) |
leIterator ConstrGraph::leEnd | ( | ) |
geIterator ConstrGraph::geBegin | ( | const varID & | y) |
geIterator ConstrGraph::geEnd | ( | ) |
bool ConstrGraph::widenUpdate | ( | InfiniteLattice * | that, |
std::string | indent = "" |
||
) |
|
inlinevirtual |
Implements InfiniteLattice.
Definition at line 620 of file ConstrGraph.h.
References widenUpdate().
Referenced by widenUpdate().
bool ConstrGraph::widenUpdateLimitToThat | ( | InfiniteLattice * | that, |
std::string | indent = "" |
||
) |
bool ConstrGraph::widenUpdate_ex | ( | InfiniteLattice * | that_arg, |
bool | limitToThat, | ||
std::string | indent = "" |
||
) |
bool ConstrGraph::meetUpdate | ( | Lattice * | that, |
std::string | indent = "" |
||
) |
Referenced by unProject().
|
inlinevirtual |
Implements Lattice.
Definition at line 636 of file ConstrGraph.h.
References meetUpdate().
Referenced by meetUpdate().
bool ConstrGraph::meetUpdateLimitToThat | ( | InfiniteLattice * | that, |
std::string | indent = "" |
||
) |
bool ConstrGraph::meetUpdate_ex | ( | Lattice * | that_arg, |
bool | limitToThat, | ||
std::string | indent = "" |
||
) |
bool ConstrGraph::orUpd | ( | LogicalCond & | that, |
std::string | indent = "" |
||
) |
Referenced by orUpd().
|
inline |
Definition at line 648 of file ConstrGraph.h.
References orUpd().
bool ConstrGraph::andUpd | ( | LogicalCond & | that, |
std::string | indent = "" |
||
) |
Referenced by andUpd().
|
inline |
Definition at line 653 of file ConstrGraph.h.
References andUpd().
bool ConstrGraph::andUpd | ( | ConstrGraph * | that, |
std::string | indent = "" |
||
) |
|
inline |
Definition at line 657 of file ConstrGraph.h.
References andUpd().
bool ConstrGraph::OrAndWidenUpdate | ( | ConstrGraph * | that, |
bool | meet, | ||
bool | OR, | ||
bool | limitToThat, | ||
std::string | indent = "" |
||
) |
void ConstrGraph::OrAndWidenUpdate_XinThisNotThat | ( | bool | OR, |
bool | limitToThat, | ||
std::map< varID, std::map< varID, affineInequality > >::iterator & | itThisX, | ||
bool & | modified, | ||
std::string | indent = "" |
||
) |
void ConstrGraph::OrAndWidenUpdate_XinThatNotThis | ( | bool | OR, |
bool | limitToThat, | ||
ConstrGraph * | that, | ||
std::map< varID, std::map< varID, affineInequality > >::iterator & | itThatX, | ||
std::map< varID, std::map< varID, affineInequality > > & | additionsToThis, | ||
bool & | modified, | ||
std::string | indent = "" |
||
) |
void ConstrGraph::OrAndWidenUpdate_YinThisNotThat | ( | bool | OR, |
bool | limitToThat, | ||
std::map< varID, std::map< varID, affineInequality > >::iterator & | itThisX, | ||
std::map< varID, affineInequality >::iterator & | itThisY, | ||
bool & | modified, | ||
std::string | indent = "" |
||
) |
void ConstrGraph::OrAndWidenUpdate_YinThatNotThis | ( | bool | OR, |
bool | limitToThat, | ||
std::map< varID, std::map< varID, affineInequality > >::iterator & | itThatX, | ||
std::map< varID, affineInequality >::iterator & | itThatY, | ||
std::map< varID, affineInequality > & | additionsToThis, | ||
bool & | modified, | ||
std::string | indent = "" |
||
) |
bool ConstrGraph::transitiveClosure | ( | std::string | indent = "" ) |
|
protected |
|
protected |
|
protected |
bool ConstrGraph::localTransClosure | ( | const varID & | tgtVar, |
std::string | indent = "" |
||
) |
|
protected |
bool ConstrGraph::addDivL | ( | FiniteVarsExprsProductLattice * | divLattice, |
std::string | annotName, | ||
void * | annot, | ||
std::string | indent = "" |
||
) |
bool ConstrGraph::containsVar | ( | const varID & | var, |
std::string | indent = "" |
||
) |
affineInequality* ConstrGraph::getVal | ( | varID | x, |
varID | y, | ||
std::string | indent = "" |
||
) |
bool ConstrGraph::setVal | ( | varID | x, |
varID | y, | ||
const affineInequality & | ineq, | ||
std::string | indent = "" |
||
) |
bool ConstrGraph::setToUninitialized_KeepState | ( | std::string | indent = "" ) |
bool ConstrGraph::setToBottom | ( | std::string | indent = "" ) |
bool ConstrGraph::setToConstrKnown | ( | constrTypes | ct, |
bool | eraseCurConstr = true , |
||
std::string | indent = "" |
||
) |
bool ConstrGraph::setToInconsistent | ( | std::string | indent = "" ) |
bool ConstrGraph::setToTop | ( | bool | onlyIfNotInit = false , |
std::string | indent = "" |
||
) |
std::pair<levels, constrTypes> ConstrGraph::getLevel | ( | bool | noConsistencyCheck = false , |
std::string | indent = "" |
||
) |
bool ConstrGraph::isSelfConsistent | ( | bool | noConsistencyCheck = false , |
std::string | indent = "" |
||
) |
bool ConstrGraph::hasConsistentConstraints | ( | bool | noConsistencyCheck = false , |
std::string | indent = "" |
||
) |
bool ConstrGraph::isMaximalState | ( | bool | noConsistencyCheck = false , |
std::string | indent = "" |
||
) |
|
virtual |
Implements printable.
void ConstrGraph::varSetStatusToStream | ( | const std::set< varID > & | vars, |
std::ostringstream & | outs, | ||
bool & | needEndl, | ||
std::string | indent = "" |
||
) |
std::string ConstrGraph::str | ( | std::string | indent, |
bool | useIsBottom | ||
) |
|
virtual |
Implements dottable.
std::string ConstrGraph::toDOT | ( | std::string | graphName, |
std::set< varID > & | focusVars | ||
) |
bool ConstrGraph::operator!= | ( | ConstrGraph & | that) |
bool ConstrGraph::operator== | ( | ConstrGraph & | that) |
bool ConstrGraph::operator<<= | ( | ConstrGraph & | that) |
bool ConstrGraph::mayTrue | ( | std::string | indent = "" ) |
|
inline |
void ConstrGraph::beginTransaction | ( | std::string | indent = "" ) |
void ConstrGraph::endTransaction | ( | std::string | indent = "" ) |
|
protected |
Definition at line 60 of file ConstrGraph.h.
|
protected |
Definition at line 74 of file ConstrGraph.h.
|
protected |
Definition at line 78 of file ConstrGraph.h.
|
protected |
Definition at line 80 of file ConstrGraph.h.
|
protected |
Definition at line 84 of file ConstrGraph.h.
|
protected |
Definition at line 88 of file ConstrGraph.h.
|
protected |
Definition at line 93 of file ConstrGraph.h.
|
protected |
Definition at line 100 of file ConstrGraph.h.
|
protected |
Definition at line 110 of file ConstrGraph.h.
|
protected |
Definition at line 117 of file ConstrGraph.h.
|
protected |
Definition at line 121 of file ConstrGraph.h.