LLVM: llvm::PBQP::RegAlloc::PBQPRAGraph Class Reference (original) (raw)

Public Member Functions

PBQPRAGraph (GraphMetadata Metadata)

void

dump () const

Dump this graph to dbgs().

void

dump (raw_ostream &OS) const

Dump this graph to an output stream.

void

printDot (raw_ostream &OS) const

Print a representation of this graph in DOT format.

Public Member Functions inherited from llvm::PBQP::Graph< RegAllocSolverImpl >

Graph ()=default

Construct an empty PBQP graph.

Graph (GraphMetadata Metadata)

Construct an empty PBQP graph with the given graph metadata.

GraphMetadata &

getMetadata ()

Get a reference to the graph metadata.

const GraphMetadata &

getMetadata () const

Get a const-reference to the graph metadata.

void

setSolver (RegAllocSolverImpl &S)

Lock this graph to the given solver instance in preparation for running the solver.

void

unsetSolver ()

Release from solver instance.

NodeId

addNode (OtherVectorT Costs)

Add a node with the given costs.

NodeId

addNodeBypassingCostAllocator (OtherVectorPtrT Costs)

Add a node bypassing the cost allocator.

EdgeId

addEdge (NodeId N1Id, NodeId N2Id, OtherVectorT Costs)

Add an edge between the given nodes with the given costs.

NodeId

addEdgeBypassingCostAllocator (NodeId N1Id, NodeId N2Id, OtherMatrixPtrT Costs)

Add an edge bypassing the cost allocator.

bool

empty () const

Returns true if the graph is empty.

NodeIdSet

nodeIds () const

EdgeIdSet

edgeIds () const

AdjEdgeIdSet

adjEdgeIds (NodeId NId)

unsigned

getNumNodes () const

Get the number of nodes in the graph.

unsigned

getNumEdges () const

Get the number of edges in the graph.

void

setNodeCosts (NodeId NId, OtherVectorT Costs)

Set a node's cost vector.

const VectorPtr &

getNodeCostsPtr (NodeId NId) const

Get a VectorPtr to a node's cost vector.

const Vector &

getNodeCosts (NodeId NId) const

Get a node's cost vector.

NodeMetadata &

getNodeMetadata (NodeId NId)

const NodeMetadata &

getNodeMetadata (NodeId NId) const

NodeEntry::AdjEdgeList::size_type

getNodeDegree (NodeId NId) const

void

updateEdgeCosts (EdgeId EId, OtherMatrixT Costs)

Update an edge's cost matrix.

const MatrixPtr &

getEdgeCostsPtr (EdgeId EId) const

Get a MatrixPtr to a node's cost matrix.

const Matrix &

getEdgeCosts (EdgeId EId) const

Get an edge's cost matrix.

EdgeMetadata &

getEdgeMetadata (EdgeId EId)

const EdgeMetadata &

getEdgeMetadata (EdgeId EId) const

NodeId

getEdgeNode1Id (EdgeId EId) const

Get the first node connected to this edge.

NodeId

getEdgeNode2Id (EdgeId EId) const

Get the second node connected to this edge.

NodeId

getEdgeOtherNodeId (EdgeId EId, NodeId NId)

Get the "other" node connected to this edge.

EdgeId

findEdge (NodeId N1Id, NodeId N2Id)

Get the edge connecting two nodes.

void

removeNode (NodeId NId)

Remove a node from the graph.

void

disconnectEdge (EdgeId EId, NodeId NId)

Disconnect an edge from the given node.

void

disconnectAllNeighborsFromNode (NodeId NId)

Convenience method to disconnect all neighbours from the given node.

void

reconnectEdge (EdgeId EId, NodeId NId)

Re-attach an edge to its nodes.

void

removeEdge (EdgeId EId)

Remove an edge from the graph.

void

clear ()

Remove all nodes and edges from the graph.

Definition at line 501 of file RegAllocPBQP.h.