LLVM 19.0.0git
Namespaces | Classes | Typedefs | Functions
llvm::PBQP Namespace Reference

Namespaces

namespace  RegAlloc
 

Classes

class  Graph
 PBQP Graph class. More...
 
class  GraphBase
 
class  Matrix
 PBQP Matrix class. More...
 
class  MDMatrix
 
class  MDVector
 
class  PoolCostAllocator
 
class  Solution
 Represents a solution to a PBQP problem. More...
 
class  ValuePool
 
class  Vector
 PBQP Vector class. More...
 

Typedefs

using PBQPNum = float
 

Functions

hash_code hash_value (const Vector &V)
 Return a hash_value for the given vector.
 
template<typename OStream >
OStream & operator<< (OStream &OS, const Vector &V)
 Output a textual representation of the given vector on the given output stream.
 
hash_code hash_value (const Matrix &M)
 Return a hash_code for the given matrix.
 
template<typename OStream >
OStream & operator<< (OStream &OS, const Matrix &M)
 Output a textual representation of the given matrix on the given output stream.
 
template<typename Metadata >
hash_code hash_value (const MDVector< Metadata > &V)
 
template<typename Metadata >
hash_code hash_value (const MDMatrix< Metadata > &M)
 
template<typename GraphT >
void applyR1 (GraphT &G, typename GraphT::NodeId NId)
 Reduce a node of degree one.
 
template<typename GraphT >
void applyR2 (GraphT &G, typename GraphT::NodeId NId)
 
template<typename VectorT >
bool hasRegisterOptions (const VectorT &V)
 
template<typename GraphT , typename StackT >
Solution backpropagate (GraphT &G, StackT stack)
 

Typedef Documentation

◆ PBQPNum

using llvm::PBQP::PBQPNum = typedef float

Definition at line 22 of file Math.h.

Function Documentation

◆ applyR1()

template<typename GraphT >
void llvm::PBQP::applyR1 ( GraphT &  G,
typename GraphT::NodeId  NId 
)

Reduce a node of degree one.

Propagate costs from the given node, which must be of degree one, to its neighbor. Notify the problem domain.

Definition at line 30 of file ReductionRules.h.

References assert(), llvm::CallingConv::C, and G.

◆ applyR2()

template<typename GraphT >
void llvm::PBQP::applyR2 ( GraphT &  G,
typename GraphT::NodeId  NId 
)

◆ backpropagate()

template<typename GraphT , typename StackT >
Solution llvm::PBQP::backpropagate ( GraphT &  G,
StackT  stack 
)

◆ hash_value() [1/4]

hash_code llvm::PBQP::hash_value ( const Matrix M)
inline

Return a hash_code for the given matrix.

Definition at line 237 of file Math.h.

◆ hash_value() [2/4]

template<typename Metadata >
hash_code llvm::PBQP::hash_value ( const MDMatrix< Metadata > &  M)
inline

Definition at line 284 of file Math.h.

References hash_value().

◆ hash_value() [3/4]

template<typename Metadata >
hash_code llvm::PBQP::hash_value ( const MDVector< Metadata > &  V)
inline

Definition at line 267 of file Math.h.

References hash_value().

◆ hash_value() [4/4]

hash_code llvm::PBQP::hash_value ( const Vector V)
inline

Return a hash_value for the given vector.

Definition at line 100 of file Math.h.

Referenced by hash_value().

◆ hasRegisterOptions()

template<typename VectorT >
bool llvm::PBQP::hasRegisterOptions ( const VectorT &  V)

Definition at line 151 of file ReductionRules.h.

Referenced by backpropagate().

◆ operator<<() [1/2]

template<typename OStream >
OStream & llvm::PBQP::operator<< ( OStream &  OS,
const Matrix M 
)

Output a textual representation of the given matrix on the given output stream.

Definition at line 247 of file Math.h.

References assert(), and OS.

◆ operator<<() [2/2]

template<typename OStream >
OStream & llvm::PBQP::operator<< ( OStream &  OS,
const Vector V 
)

Output a textual representation of the given vector on the given output stream.

Definition at line 109 of file Math.h.

References assert(), and OS.