LLVM  4.0.0
Classes | Public Member Functions | Friends | List of all members
llvm::LazyCallGraph::postorder_ref_scc_iterator Class Reference

A post-order depth-first RefSCC iterator over the call graph. More...

#include <LazyCallGraph.h>

Inheritance diagram for llvm::LazyCallGraph::postorder_ref_scc_iterator:
[legend]
Collaboration diagram for llvm::LazyCallGraph::postorder_ref_scc_iterator:
[legend]

Public Member Functions

bool operator== (const postorder_ref_scc_iterator &Arg) const
 
reference operator* () const
 
postorder_ref_scc_iteratoroperator++ ()
 
- Public Member Functions inherited from llvm::iterator_facade_base< postorder_ref_scc_iterator, std::forward_iterator_tag, RefSCC >
postorder_ref_scc_iterator operator+ (std::ptrdiff_tn) const
 
postorder_ref_scc_iterator operator- (std::ptrdiff_tn) const
 
postorder_ref_scc_iterator & operator++ ()
 
postorder_ref_scc_iterator operator++ (int)
 
postorder_ref_scc_iterator & operator-- ()
 
postorder_ref_scc_iterator operator-- (int)
 
bool operator!= (const postorder_ref_scc_iterator &RHS) const
 
bool operator> (const postorder_ref_scc_iterator &RHS) const
 
bool operator<= (const postorder_ref_scc_iterator &RHS) const
 
bool operator>= (const postorder_ref_scc_iterator &RHS) const
 
RefSCC * operator-> () const
 
ReferenceProxy operator[] (std::ptrdiff_tn) const
 

Friends

class LazyCallGraph
 
class LazyCallGraph::Node
 

Additional Inherited Members

- Protected Types inherited from llvm::iterator_facade_base< postorder_ref_scc_iterator, std::forward_iterator_tag, RefSCC >
enum  
 

Detailed Description

A post-order depth-first RefSCC iterator over the call graph.

This iterator triggers the Tarjan DFS-based formation of the RefSCC (and SCC) DAG for the call graph, walking it lazily in depth-first post-order. That is, it always visits RefSCCs for the target of a reference edge prior to visiting the RefSCC for a source of the edge (when they are in different RefSCCs).

When forming each RefSCC, the call edges within it are used to form SCCs within it, so iterating this also controls the lazy formation of SCCs.

Definition at line 805 of file LazyCallGraph.h.

Member Function Documentation

reference llvm::LazyCallGraph::postorder_ref_scc_iterator::operator* ( ) const
inline

Definition at line 842 of file LazyCallGraph.h.

postorder_ref_scc_iterator& llvm::LazyCallGraph::postorder_ref_scc_iterator::operator++ ( )
inline

Definition at line 845 of file LazyCallGraph.h.

References assert().

bool llvm::LazyCallGraph::postorder_ref_scc_iterator::operator== ( const postorder_ref_scc_iterator Arg) const
inline

Definition at line 838 of file LazyCallGraph.h.

Friends And Related Function Documentation

friend class LazyCallGraph
friend

Definition at line 808 of file LazyCallGraph.h.

friend class LazyCallGraph::Node
friend

Definition at line 809 of file LazyCallGraph.h.


The documentation for this class was generated from the following file: