LLVM  8.0.1
Namespaces | Classes | Typedefs | Functions
llvm::PBQP Namespace Reference

Namespaces

 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. More...
 
template<typename OStream >
OStream & operator<< (OStream &OS, const Vector &V)
 Output a textual representation of the given vector on the given output stream. More...
 
hash_code hash_value (const Matrix &M)
 Return a hash_code for the given matrix. More...
 
template<typename OStream >
OStream & operator<< (OStream &OS, const Matrix &M)
 Output a textual representation of the given matrix on the given output stream. More...
 
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. More...
 
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 23 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 31 of file ReductionRules.h.

References assert(), C, and Matrix.

Referenced by llvm::PBQP::RegAlloc::RegAllocSolverImpl::handleUpdateCosts().

◆ 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 Vector V)
inline

Return a hash_value for the given vector.

Definition at line 101 of file Math.h.

References llvm::hash_combine(), and llvm::hash_combine_range().

◆ hash_value() [2/4]

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

Return a hash_code for the given matrix.

Definition at line 238 of file Math.h.

References llvm::hash_combine(), and llvm::hash_combine_range().

◆ hash_value() [3/4]

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

Definition at line 268 of file Math.h.

References llvm::PBQP::Vector::hash_value.

◆ hash_value() [4/4]

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

Definition at line 285 of file Math.h.

References llvm::PBQP::Vector::hash_value.

◆ hasRegisterOptions()

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

Definition at line 152 of file ReductionRules.h.

Referenced by backpropagate().

◆ operator<<() [1/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 110 of file Math.h.

References assert(), and llvm::PBQP::Vector::getLength().

◆ operator<<() [2/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 248 of file Math.h.

References assert(), llvm::PBQP::Matrix::getRowAsVector(), and llvm::PBQP::Matrix::getRows().