llvm::LazyCallGraph::Node

A node in the call graph.

Synopsis

Declared in <llvm/Analysis/LazyCallGraph.h>

class Node;

Description

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

Member Functions

NameDescription
getFunction Return the function represented by this node.
getGraph Return the lazy call graph that owns this node.
getName Return the name of the function represented by this node.
isDead Tests whether this is actually a dead node and no longer valid.
isPopulated Tests whether the node has been populated with edges.
operator* Return the populated edge sequence for this node.
operator-> Return a pointer to the populated edge sequence for this node.
populate Populate the edges of this node if necessary.
operator== Equality is defined as address equality.
operator!= Return true if this node is not the same object as N.

Friends

NameDescription
llvm::operator<<Print the name of this node's function.
llvm::LazyCallGraph::RefSCCA RefSCC of the call graph.
llvm::LazyCallGraphA lazily constructed view of the call graph of a module.