LLVM  8.0.1
Public Member Functions | List of all members
llvm::PBQP::RegAlloc::PBQPRAGraph Class Reference

#include "llvm/CodeGen/RegAllocPBQP.h"

Inheritance diagram for llvm::PBQP::RegAlloc::PBQPRAGraph:
Inheritance graph
[legend]
Collaboration diagram for llvm::PBQP::RegAlloc::PBQPRAGraph:
Collaboration graph
[legend]

Public Member Functions

 PBQPRAGraph (GraphMetadata Metadata)
 
void dump () const
 Dump this graph to dbgs(). More...
 
void dump (raw_ostream &OS) const
 Dump this graph to an output stream. More...
 
void printDot (raw_ostream &OS) const
 Print a representation of this graph in DOT format. More...
 
- Public Member Functions inherited from llvm::PBQP::Graph< RegAllocSolverImpl >
 Graph ()=default
 Construct an empty PBQP graph. More...
 
 Graph (GraphMetadata Metadata)
 Construct an empty PBQP graph with the given graph metadata. More...
 
GraphMetadatagetMetadata ()
 Get a reference to the graph metadata. More...
 
const GraphMetadatagetMetadata () const
 Get a const-reference to the graph metadata. More...
 
void setSolver (RegAllocSolverImpl &S)
 Lock this graph to the given solver instance in preparation for running the solver. More...
 
void unsetSolver ()
 Release from solver instance. More...
 
NodeId addNode (OtherVectorT Costs)
 Add a node with the given costs. More...
 
NodeId addNodeBypassingCostAllocator (OtherVectorPtrT Costs)
 Add a node bypassing the cost allocator. More...
 
EdgeId addEdge (NodeId N1Id, NodeId N2Id, OtherVectorT Costs)
 Add an edge between the given nodes with the given costs. More...
 
NodeId addEdgeBypassingCostAllocator (NodeId N1Id, NodeId N2Id, OtherMatrixPtrT Costs)
 Add an edge bypassing the cost allocator. More...
 
bool empty () const
 Returns true if the graph is empty. More...
 
NodeIdSet nodeIds () const
 
EdgeIdSet edgeIds () const
 
AdjEdgeIdSet adjEdgeIds (NodeId NId)
 
unsigned getNumNodes () const
 Get the number of nodes in the graph. More...
 
unsigned getNumEdges () const
 Get the number of edges in the graph. More...
 
void setNodeCosts (NodeId NId, OtherVectorT Costs)
 Set a node's cost vector. More...
 
const VectorPtrgetNodeCostsPtr (NodeId NId) const
 Get a VectorPtr to a node's cost vector. More...
 
const VectorgetNodeCosts (NodeId NId) const
 Get a node's cost vector. More...
 
NodeMetadatagetNodeMetadata (NodeId NId)
 
const NodeMetadatagetNodeMetadata (NodeId NId) const
 
NodeEntry::AdjEdgeList::size_type getNodeDegree (NodeId NId) const
 
void updateEdgeCosts (EdgeId EId, OtherMatrixT Costs)
 Update an edge's cost matrix. More...
 
const MatrixPtrgetEdgeCostsPtr (EdgeId EId) const
 Get a MatrixPtr to a node's cost matrix. More...
 
const MatrixgetEdgeCosts (EdgeId EId) const
 Get an edge's cost matrix. More...
 
EdgeMetadatagetEdgeMetadata (EdgeId EId)
 
const EdgeMetadatagetEdgeMetadata (EdgeId EId) const
 
NodeId getEdgeNode1Id (EdgeId EId) const
 Get the first node connected to this edge. More...
 
NodeId getEdgeNode2Id (EdgeId EId) const
 Get the second node connected to this edge. More...
 
NodeId getEdgeOtherNodeId (EdgeId EId, NodeId NId)
 Get the "other" node connected to this edge. More...
 
EdgeId findEdge (NodeId N1Id, NodeId N2Id)
 Get the edge connecting two nodes. More...
 
void removeNode (NodeId NId)
 Remove a node from the graph. More...
 
void disconnectEdge (EdgeId EId, NodeId NId)
 Disconnect an edge from the given node. More...
 
void disconnectAllNeighborsFromNode (NodeId NId)
 Convenience method to disconnect all neighbours from the given node. More...
 
void reconnectEdge (EdgeId EId, NodeId NId)
 Re-attach an edge to its nodes. More...
 
void removeEdge (EdgeId EId)
 Remove an edge from the graph. More...
 
void clear ()
 Remove all nodes and edges from the graph. More...
 

Additional Inherited Members

- Public Types inherited from llvm::PBQP::Graph< RegAllocSolverImpl >
using RawVector = typename RegAllocSolverImpl ::RawVector
 
using RawMatrix = typename RegAllocSolverImpl ::RawMatrix
 
using Vector = typename RegAllocSolverImpl ::Vector
 
using Matrix = typename RegAllocSolverImpl ::Matrix
 
using VectorPtr = typename CostAllocator::VectorPtr
 
using MatrixPtr = typename CostAllocator::MatrixPtr
 
using NodeMetadata = typename RegAllocSolverImpl ::NodeMetadata
 
using EdgeMetadata = typename RegAllocSolverImpl ::EdgeMetadata
 
using GraphMetadata = typename RegAllocSolverImpl ::GraphMetadata
 
using AdjEdgeItr = typename NodeEntry::AdjEdgeItr
 
- Public Types inherited from llvm::PBQP::GraphBase
using NodeId = unsigned
 
using EdgeId = unsigned
 
- Static Public Member Functions inherited from llvm::PBQP::GraphBase
static NodeId invalidNodeId ()
 Returns a value representing an invalid (non-existent) node. More...
 
static EdgeId invalidEdgeId ()
 Returns a value representing an invalid (non-existent) edge. More...
 

Detailed Description

Definition at line 501 of file RegAllocPBQP.h.

Constructor & Destructor Documentation

◆ PBQPRAGraph()

llvm::PBQP::RegAlloc::PBQPRAGraph::PBQPRAGraph ( GraphMetadata  Metadata)
inline

Definition at line 506 of file RegAllocPBQP.h.

References llvm::dump().

Member Function Documentation

◆ dump() [1/2]

LLVM_DUMP_METHOD void PBQP::RegAlloc::PBQPRAGraph::dump ( ) const

Dump this graph to dbgs().

Definition at line 910 of file RegAllocPBQP.cpp.

References llvm::dbgs(), and llvm::dump().

Referenced by normalizePBQPSpillWeight().

◆ dump() [2/2]

LLVM_DUMP_METHOD void PBQP::RegAlloc::PBQPRAGraph::dump ( raw_ostream OS) const

Dump this graph to an output stream.

Parameters
OSOutput stream to print on.

Definition at line 889 of file RegAllocPBQP.cpp.

References assert(), and PrintNodeInfo().

◆ printDot()

void PBQP::RegAlloc::PBQPRAGraph::printDot ( raw_ostream OS) const

Print a representation of this graph in DOT format.

Parameters
OSOutput stream to print on.

Definition at line 915 of file RegAllocPBQP.cpp.

References PrintNodeInfo().


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