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...

procLocationprocedure (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