Jlm
Public Member Functions | Private Attributes | List of all members
jlm::llvm::ControlFlowGraphEdge Class Referencefinal

#include <cfg-node.hpp>

Collaboration diagram for jlm::llvm::ControlFlowGraphEdge:
Collaboration graph
[legend]

Public Member Functions

 ~ControlFlowGraphEdge () noexcept=default
 
 ControlFlowGraphEdge (ControlFlowGraphNode *source, ControlFlowGraphNode *sink, size_t index) noexcept
 
 ControlFlowGraphEdge (const ControlFlowGraphEdge &other)=delete
 
 ControlFlowGraphEdge (ControlFlowGraphEdge &&other)=default
 
ControlFlowGraphEdgeoperator= (const ControlFlowGraphEdge &other)=delete
 
ControlFlowGraphEdgeoperator= (ControlFlowGraphEdge &&other)=default
 
void divert (ControlFlowGraphNode *new_sink)
 
BasicBlocksplit ()
 
ControlFlowGraphNodesource () const noexcept
 
ControlFlowGraphNodesink () const noexcept
 
size_t index () const noexcept
 
bool is_selfloop () const noexcept
 

Private Attributes

ControlFlowGraphNodesource_
 
ControlFlowGraphNodesink_
 
size_t index_
 
friend ControlFlowGraphNode
 

Detailed Description

Definition at line 24 of file cfg-node.hpp.

Constructor & Destructor Documentation

◆ ~ControlFlowGraphEdge()

jlm::llvm::ControlFlowGraphEdge::~ControlFlowGraphEdge ( )
defaultnoexcept

◆ ControlFlowGraphEdge() [1/3]

jlm::llvm::ControlFlowGraphEdge::ControlFlowGraphEdge ( ControlFlowGraphNode source,
ControlFlowGraphNode sink,
size_t  index 
)
noexcept

Definition at line 13 of file cfg-node.cpp.

◆ ControlFlowGraphEdge() [2/3]

jlm::llvm::ControlFlowGraphEdge::ControlFlowGraphEdge ( const ControlFlowGraphEdge other)
delete

◆ ControlFlowGraphEdge() [3/3]

jlm::llvm::ControlFlowGraphEdge::ControlFlowGraphEdge ( ControlFlowGraphEdge &&  other)
default

Member Function Documentation

◆ divert()

void jlm::llvm::ControlFlowGraphEdge::divert ( ControlFlowGraphNode new_sink)

Definition at line 23 of file cfg-node.cpp.

◆ index()

size_t jlm::llvm::ControlFlowGraphEdge::index ( ) const
inlinenoexcept
Returns
the index of this edge among the source's out edges

Definition at line 66 of file cfg-node.hpp.

◆ is_selfloop()

bool jlm::llvm::ControlFlowGraphEdge::is_selfloop ( ) const
inlinenoexcept

Definition at line 72 of file cfg-node.hpp.

◆ operator=() [1/2]

ControlFlowGraphEdge& jlm::llvm::ControlFlowGraphEdge::operator= ( const ControlFlowGraphEdge other)
delete

◆ operator=() [2/2]

ControlFlowGraphEdge& jlm::llvm::ControlFlowGraphEdge::operator= ( ControlFlowGraphEdge &&  other)
default

◆ sink()

ControlFlowGraphNode* jlm::llvm::ControlFlowGraphEdge::sink ( ) const
inlinenoexcept

Definition at line 57 of file cfg-node.hpp.

◆ source()

ControlFlowGraphNode* jlm::llvm::ControlFlowGraphEdge::source ( ) const
inlinenoexcept

Definition at line 51 of file cfg-node.hpp.

◆ split()

BasicBlock * jlm::llvm::ControlFlowGraphEdge::split ( )

Definition at line 34 of file cfg-node.cpp.

Member Data Documentation

◆ ControlFlowGraphNode

friend jlm::llvm::ControlFlowGraphEdge::ControlFlowGraphNode
private

Definition at line 82 of file cfg-node.hpp.

◆ index_

size_t jlm::llvm::ControlFlowGraphEdge::index_
private

Definition at line 80 of file cfg-node.hpp.

◆ sink_

ControlFlowGraphNode* jlm::llvm::ControlFlowGraphEdge::sink_
private

Definition at line 79 of file cfg-node.hpp.

◆ source_

ControlFlowGraphNode* jlm::llvm::ControlFlowGraphEdge::source_
private

Definition at line 78 of file cfg-node.hpp.


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