class LazyCallGraph::EdgeSequence

Declaration

class LazyCallGraph::EdgeSequence { /* full declaration omitted */ };

Description

The edge sequence object. This typically exists entirely within the node but is exposed as a separate type because a node doesn't initially have edges. An explicit population step is required to produce this sequence at first and it is then cached in the node. It is also used to represent edges entering the graph from outside the module to model the graph's roots. The sequence itself both iterable and indexable. The indexes remain stable even as the sequence mutates (including removal).

Declared at: llvm/include/llvm/Analysis/LazyCallGraph.h:182

Member Variables

private llvm::LazyCallGraph::EdgeSequence::VectorT Edges
private DenseMap<llvm::LazyCallGraph::Node*, int> EdgeIndexMap

Method Overview

  • private EdgeSequence()
  • public llvm::LazyCallGraph::EdgeSequence::iterator begin()
  • public llvm::LazyCallGraph::EdgeSequence::call_iterator call_begin()
  • public llvm::LazyCallGraph::EdgeSequence::call_iterator call_end()
  • public iterator_range<llvm::LazyCallGraph::EdgeSequence::call_iterator> calls()
  • public bool empty()
  • public llvm::LazyCallGraph::EdgeSequence::iterator end()
  • private void insertEdgeInternal(llvm::LazyCallGraph::Node & ChildN, Edge::Kind EK)
  • public llvm::LazyCallGraph::Edge * lookup(llvm::LazyCallGraph::Node & N)
  • private bool removeEdgeInternal(llvm::LazyCallGraph::Node & ChildN)
  • private void setEdgeKind(llvm::LazyCallGraph::Node & ChildN, Edge::Kind EK)

Methods

EdgeSequence()

Declared at: llvm/include/llvm/Analysis/LazyCallGraph.h:293

llvm::LazyCallGraph::EdgeSequence::iterator
begin()

Declared at: llvm/include/llvm/Analysis/LazyCallGraph.h:254

llvm::LazyCallGraph::EdgeSequence::call_iterator
call_begin()

Declared at: llvm/include/llvm/Analysis/LazyCallGraph.h:272

llvm::LazyCallGraph::EdgeSequence::call_iterator
call_end()

Declared at: llvm/include/llvm/Analysis/LazyCallGraph.h:275

iterator_range<llvm::LazyCallGraph::EdgeSequence::
                   call_iterator>
calls()

Declared at: llvm/include/llvm/Analysis/LazyCallGraph.h:277

bool empty()

Declared at: llvm/include/llvm/Analysis/LazyCallGraph.h:281

llvm::LazyCallGraph::EdgeSequence::iterator end()

Declared at: llvm/include/llvm/Analysis/LazyCallGraph.h:255

void insertEdgeInternal(
    llvm::LazyCallGraph::Node& ChildN,
    Edge::Kind EK)

Description

Internal helper to insert an edge to a node.

Declared at: llvm/include/llvm/Analysis/LazyCallGraph.h:296

Parameters

llvm::LazyCallGraph::Node& ChildN
Edge::Kind EK

llvm::LazyCallGraph::Edge* lookup(
    llvm::LazyCallGraph::Node& N)

Declared at: llvm/include/llvm/Analysis/LazyCallGraph.h:264

Parameters

llvm::LazyCallGraph::Node& N

bool removeEdgeInternal(
    llvm::LazyCallGraph::Node& ChildN)

Description

Internal helper to remove the edge to the given function.

Declared at: llvm/include/llvm/Analysis/LazyCallGraph.h:302

Parameters

llvm::LazyCallGraph::Node& ChildN

void setEdgeKind(
    llvm::LazyCallGraph::Node& ChildN,
    Edge::Kind EK)

Description

Internal helper to change an edge kind.

Declared at: llvm/include/llvm/Analysis/LazyCallGraph.h:299

Parameters

llvm::LazyCallGraph::Node& ChildN
Edge::Kind EK