ROSE  0.9.6a
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ECRmap Class Reference

#include <steensgaard.h>

Inheritance diagram for ECRmap:

Classes

class  VariableAlreadyDefined
 

Public Member Functions

void x_eq_y (Variable x, Variable y)
 
void x_eq_addr_y (Variable x, Variable y)
 
void x_eq_deref_y (Variable x, Variable y)
 
void x_eq_op_y (Variable x, const std::list< Variable > &y)
 
void allocate (Variable x)
 
void deref_x_eq_y (Variable x, Variable y)
 
void function_def_x (Variable x, const std::list< Variable > &inParams, const std::list< Variable > &outParams)
 
void function_call_p (Variable p, const std::list< Variable > &x, const std::list< Variable > &y)
 
virtual void dump ()
 
int find_LOC (std::ostream &out, std::map< ECR *, int > &locmap, int &loc, ECR *p)
 
void outputLOC (std::ostream &out, std::map< ECR *, int > &locmap, int &loc, ECR *p)
 
void output (std::ostream &out)
 
bool mayAlias (Variable x, Variable y)
 
virtual ~ECRmap ()
 

Private Member Functions

ECRget_ECR (Variable x)
 
ECRnew_ECR ()
 
Lambdanew_Lambda ()
 
void set_lambda (Lambda *l, const std::list< Variable > &inParams, const std::list< Variable > &outParams)
 
void set_type (ECR *e, ECR *t)
 
void cjoin (ECR *e1, ECR *e2)
 
void unify_lambda (Lambda *l1, Lambda *l2)
 
void unify (ECR *t1, ECR *t2)
 
void join (ECR *e1, ECR *e2)
 

Private Attributes

std::map< Variable, ECR * > table
 
std::list< ECR * > ecrList
 
std::list< LambdalambdaList
 

Detailed Description

Definition at line 55 of file steensgaard.h.

Constructor & Destructor Documentation

virtual ECRmap::~ECRmap ( )
inlinevirtual

Definition at line 253 of file steensgaard.h.

References ecrList.

Member Function Documentation

void ECRmap::x_eq_y ( Variable  x,
Variable  y 
)
inline
void ECRmap::x_eq_addr_y ( Variable  x,
Variable  y 
)
inline

Definition at line 71 of file steensgaard.h.

References get_ECR(), ECR::get_type(), and join().

Referenced by SteensgaardPtrAnal::x_eq_addr_y().

void ECRmap::x_eq_deref_y ( Variable  x,
Variable  y 
)
inline

Definition at line 79 of file steensgaard.h.

References BOT, cjoin(), get_ECR(), ECR::get_type(), and set_type().

Referenced by SteensgaardPtrAnal::x_eq_deref_y().

void ECRmap::x_eq_op_y ( Variable  x,
const std::list< Variable > &  y 
)
inline

Definition at line 93 of file steensgaard.h.

References cjoin(), get_ECR(), and ECR::get_type().

Referenced by SteensgaardPtrAnal::x_eq_op_y().

void ECRmap::allocate ( Variable  x)
inline

Definition at line 102 of file steensgaard.h.

References BOT, get_ECR(), ECR::get_type(), new_ECR(), and set_type().

Referenced by SteensgaardPtrAnal::allocate_x().

void ECRmap::deref_x_eq_y ( Variable  x,
Variable  y 
)
inline

Definition at line 110 of file steensgaard.h.

References BOT, cjoin(), get_ECR(), ECR::get_type(), and set_type().

Referenced by SteensgaardPtrAnal::deref_x_eq_y().

void ECRmap::function_def_x ( Variable  x,
const std::list< Variable > &  inParams,
const std::list< Variable > &  outParams 
)
inline
void ECRmap::function_call_p ( Variable  p,
const std::list< Variable > &  x,
const std::list< Variable > &  y 
)
inline
virtual void ECRmap::dump ( )
inlinevirtual

Definition at line 185 of file steensgaard.h.

References output().

int ECRmap::find_LOC ( std::ostream &  out,
std::map< ECR *, int > &  locmap,
int &  loc,
ECR p 
)
inline

Definition at line 186 of file steensgaard.h.

Referenced by outputLOC().

void ECRmap::outputLOC ( std::ostream &  out,
std::map< ECR *, int > &  locmap,
int &  loc,
ECR p 
)
inline
void ECRmap::output ( std::ostream &  out)
inline

Definition at line 232 of file steensgaard.h.

References ECR::get_ecr(), outputLOC(), and table.

Referenced by dump(), and SteensgaardPtrAnal::output().

bool ECRmap::mayAlias ( Variable  x,
Variable  y 
)
inline

Definition at line 244 of file steensgaard.h.

References table.

Referenced by SteensgaardPtrAnal::may_alias().

ECR* ECRmap::get_ECR ( Variable  x)
inlineprivate
ECR* ECRmap::new_ECR ( )
inlineprivate

Definition at line 278 of file steensgaard.h.

References ecrList.

Referenced by allocate(), get_ECR(), and set_lambda().

Lambda* ECRmap::new_Lambda ( )
inlineprivate

Definition at line 282 of file steensgaard.h.

References lambdaList.

Referenced by function_call_p(), and function_def_x().

void ECRmap::set_lambda ( Lambda l,
const std::list< Variable > &  inParams,
const std::list< Variable > &  outParams 
)
inlineprivate
void ECRmap::set_type ( ECR e,
ECR t 
)
inlineprivate

Definition at line 303 of file steensgaard.h.

References BOT, ECR::get_pending(), ECR::get_type(), join(), and ECR::set_type().

Referenced by allocate(), deref_x_eq_y(), and x_eq_deref_y().

void ECRmap::cjoin ( ECR e1,
ECR e2 
)
inlineprivate

Definition at line 315 of file steensgaard.h.

References BOT, ECR::get_pending(), ECR::get_type(), and join().

Referenced by deref_x_eq_y(), x_eq_deref_y(), x_eq_op_y(), and x_eq_y().

void ECRmap::unify_lambda ( Lambda l1,
Lambda l2 
)
inlineprivate

Definition at line 323 of file steensgaard.h.

References Lambda::get_inParams(), Lambda::get_outParams(), and join().

Referenced by join(), and unify().

void ECRmap::unify ( ECR t1,
ECR t2 
)
inlineprivate

Definition at line 340 of file steensgaard.h.

References ECR::get_lambda(), join(), and unify_lambda().

Referenced by join().

Member Data Documentation

std::map<Variable, ECR*> ECRmap::table
private

Definition at line 261 of file steensgaard.h.

Referenced by get_ECR(), mayAlias(), and output().

std::list<ECR*> ECRmap::ecrList
private

Definition at line 262 of file steensgaard.h.

Referenced by new_ECR(), and ~ECRmap().

std::list<Lambda> ECRmap::lambdaList
private

Definition at line 263 of file steensgaard.h.

Referenced by new_Lambda().


The documentation for this class was generated from the following file: