Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages  

Location Class Reference

#include <location.h>

Inheritance diagram for Location::

PerClassHeap< PointersHeap > basicblockLocation Path procLocation stmtLocation List of all members.

Public Types

enum  LocationKind { Statement, BasicBlock, Procedure }

Public Methods

 Location (Location *parent, LocationKind kind)
int depth () const
LocationKind kind () const
Location * parent () const
int dominates_exit () const
virtual void adjust_depth ()=0
 Adjust depths. More...

virtual void print (ostream &o) const=0
virtual void print_path (ostream &o) const=0
virtual ~Location ()

Static Public Methods

bool dominates (const Location *dom, const Location *cur)
 Interprocedure dominance test. More...

bool strictly_dominates (const Location *dom, const Location *cur)
 Interprocedure strict dominance test. More...

Location * common_parent (Location *one, Location *two)
 Find a common parent location. More...

procLocation * procedure (Location *where)
 Find the enclosing procedure. More...

bool is_prefix (const Location *prefix, const Location *longer)
 See if one location is a prefix of the other. More...

void stats ()

Static Public Attributes

unsigned int stmt_count = 0
unsigned int block_count = 0
unsigned int proc_count = 0
unsigned int dom_calls = 0

Protected Attributes

Location * _parent
int _depth:16
int _kind:4
int _dominates_exit:1
int _not_basicblock:1
int _not_procedure:1

Private Methods

Location & operator= (const Location &other)

Friends

ostream & operator<< (ostream &o, const Location &loc)

Member Enumeration Documentation

enum Location::LocationKind
 

Enumeration values:
Statement 
BasicBlock 
Procedure 


Constructor & Destructor Documentation

Location::Location (  Location *    parent,
LocationKind    kind
) 
 

Location::~Location (    )  [virtual]
 


Member Function Documentation

virtual void Location::adjust_depth (    )  [pure virtual]
 

Adjust depths.

These methods are needed to fix the depths of all Location nodes during a context-insensitive reparenting.

Reimplemented in stmtLocation, basicblockLocation, and procLocation.

Location * Location::common_parent (  Location *    one,
Location *    two
)  [static]
 

Find a common parent location.

int Location::depth (    )  const [inline]
 

Reimplemented in Path.

bool Location::dominates (  const Location *    dom,
const Location *    cur
)  [static]
 

Interprocedure dominance test.

int Location::dominates_exit (    )  const [inline]
 

Reimplemented in Path.

bool Location::is_prefix (  const Location *    prefix,
const Location *    longer
)  [static]
 

See if one location is a prefix of the other.

LocationKind Location::kind (    )  const [inline]
 

Location& Location::operator= (  const Location &    other )  [inline, private]
 

Location* Location::parent (    )  const [inline]
 

Reimplemented in Path.

virtual void Location::print (  ostream &    o )  const [pure virtual]
 

Reimplemented in stmtLocation, basicblockLocation, and procLocation.

virtual void Location::print_path (  ostream &    o )  const [pure virtual]
 

Reimplemented in stmtLocation, basicblockLocation, and procLocation.

procLocation * Location::procedure (  Location *    where )  [static]
 

Find the enclosing procedure.

void Location::stats (    )  [static]
 

bool Location::strictly_dominates (  const Location *    dom,
const Location *    cur
)  [static]
 

Interprocedure strict dominance test.


Friends And Related Function Documentation

ostream& operator<< (  ostream &    o,
const Location &    loc
)  [friend]
 


Member Data Documentation

int Location::_depth [protected]
 

Reimplemented in Path.

int Location::_dominates_exit [protected]
 

Reimplemented in Path.

int Location::_kind [protected]
 

int Location::_not_basicblock [protected]
 

int Location::_not_procedure [protected]
 

Location* Location::_parent [protected]
 

Reimplemented in Path.

unsigned int Location::block_count = 0 [static]
 

unsigned int Location::dom_calls = 0 [static]
 

unsigned int Location::proc_count = 0 [static]
 

unsigned int Location::stmt_count = 0 [static]
 


The documentation for this class was generated from the following files:
Generated on Thu Jan 10 12:06:30 2002 for C-Breeze by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001