LLVM 20.0.0git
|
A node in the call graph. More...
#include "llvm/Analysis/LazyCallGraph.h"
Public Member Functions | |
LazyCallGraph & | getGraph () const |
Function & | getFunction () const |
StringRef | getName () const |
bool | operator== (const Node &N) const |
Equality is defined as address equality. | |
bool | operator!= (const Node &N) const |
bool | isPopulated () const |
Tests whether the node has been populated with edges. | |
bool | isDead () const |
Tests whether this is actually a dead node and no longer valid. | |
EdgeSequence & | operator* () const |
EdgeSequence * | operator-> () const |
EdgeSequence & | populate () |
Populate the edges of this node if necessary. | |
Friends | |
class | LazyCallGraph |
class | LazyCallGraph::RefSCC |
raw_ostream & | operator<< (raw_ostream &OS, const Node &N) |
Print the name of this node's function. | |
A node in the call graph.
This represents a single node. Its primary roles are to cache the list of callees, de-duplicate and provide fast testing of whether a function is a callee, and facilitate iteration of child nodes in the graph.
The node works much like an optional in order to lazily populate the edges of each node. Until populated, there are no edges. Once populated, you can access the edges by dereferencing the node or using the ->
operator as if the node was an std::optional<EdgeSequence>
.
Definition at line 311 of file LazyCallGraph.h.
|
inline |
Definition at line 318 of file LazyCallGraph.h.
References F.
|
inline |
Definition at line 316 of file LazyCallGraph.h.
References G.
|
inline |
Definition at line 320 of file LazyCallGraph.h.
References F.
|
inline |
Tests whether this is actually a dead node and no longer valid.
Users rarely interact with nodes in this state and other methods are invalid. This is used to model a node in an edge list where the function has been completely removed.
Definition at line 334 of file LazyCallGraph.h.
|
inline |
Tests whether the node has been populated with edges.
Definition at line 327 of file LazyCallGraph.h.
Definition at line 324 of file LazyCallGraph.h.
References N, and operator==().
|
inline |
Definition at line 342 of file LazyCallGraph.h.
|
inline |
Definition at line 346 of file LazyCallGraph.h.
Equality is defined as address equality.
Definition at line 323 of file LazyCallGraph.h.
References N.
Referenced by operator!=().
|
inline |
Populate the edges of this node if necessary.
The first time this is called it will populate the edges for this node in the graph. It does this by scanning the underlying function, so once this is done, any changes to that function must be explicitly reflected in updates to the graph.
EdgeSequence
to simplify walking it.This will not update or re-scan anything if called repeatedly. Instead, the edge sequence is cached and returned immediately on subsequent calls.
Definition at line 360 of file LazyCallGraph.h.
|
friend |
Definition at line 312 of file LazyCallGraph.h.
|
friend |
Definition at line 313 of file LazyCallGraph.h.
|
friend |
Print the name of this node's function.
Definition at line 396 of file LazyCallGraph.h.