#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. |
|
|
|
|
|
|
|
|
|
|
|
|
1.2.13.1 written by Dimitri van Heesch,
© 1997-2001