#include <location.h>
Inheritance diagram for Location::
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) |
|
|
|
|
|
|
|
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. |
|
Find a common parent location.
|
|
Reimplemented in Path. |
|
Interprocedure dominance test.
|
|
Reimplemented in Path. |
|
See if one location is a prefix of the other.
|
|
|
|
|
|
Reimplemented in Path. |
|
Reimplemented in stmtLocation, basicblockLocation, and procLocation. |
|
Reimplemented in stmtLocation, basicblockLocation, and procLocation. |
|
Find the enclosing procedure.
|
|
|
|
Interprocedure strict dominance test.
|
|
|
|
Reimplemented in Path. |
|
Reimplemented in Path. |
|
|
|
|
|
|
|
Reimplemented in Path. |
|
|
|
|
|
|
|
|