LLVM: llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo (original) (raw)

SparseSolver - This class is a general purpose solver for Sparse Conditional Propagation with a programmable lattice function. More...

#include "[llvm/Analysis/SparsePropagation.h](SparsePropagation%5F8h%5Fsource.html)"

Public Member Functions
SparseSolver (AbstractLatticeFunction< LatticeKey, LatticeVal > *Lattice)
SparseSolver (const SparseSolver &)=delete
SparseSolver & operator= (const SparseSolver &)=delete
void Solve ()
Solve - Solve for constants and executable blocks.
void Print (raw_ostream &OS) const
LatticeVal getExistingValueState (LatticeKey Key) const
getExistingValueState - Return the LatticeVal object corresponding to the given value from the ValueState map.
LatticeVal getValueState (LatticeKey Key)
getValueState - Return the LatticeVal object corresponding to the given value from the ValueState map.
bool isEdgeFeasible (BasicBlock *From, BasicBlock *To, bool AggressiveUndef=false)
isEdgeFeasible - Return true if the control flow edge from the 'From' basic block to the 'To' basic block is currently feasible.
bool isBlockExecutable (BasicBlock *BB) const
isBlockExecutable - Return true if there are any known feasible edges into the basic block.
void MarkBlockExecutable (BasicBlock *BB)
MarkBlockExecutable - This method can be used by clients to mark all of the blocks that are known to be intrinsically live in the processed unit.

template<class LatticeKey, class LatticeVal, class KeyInfo>
class llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >

SparseSolver - This class is a general purpose solver for Sparse Conditional Propagation with a programmable lattice function.

Definition at line 112 of file SparsePropagation.h.

template<class LatticeKey, class LatticeVal, class KeyInfo>

SparseSolver() [2/2]

template<class LatticeKey, class LatticeVal, class KeyInfo>

getExistingValueState()

template<class LatticeKey, class LatticeVal, class KeyInfo>

LatticeVal llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::getExistingValueState ( LatticeKey Key) const inline

getValueState()

template<class LatticeKey, class LatticeVal, class KeyInfo>

LatticeVal llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::getValueState ( LatticeKey Key )

isBlockExecutable()

template<class LatticeKey, class LatticeVal, class KeyInfo>

isBlockExecutable - Return true if there are any known feasible edges into the basic block.

This is generally only useful when querying the lattice.

Definition at line 172 of file SparsePropagation.h.

isEdgeFeasible()

MarkBlockExecutable()

template<class LatticeKey, class LatticeVal, class KeyInfo>

void llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::MarkBlockExecutable ( BasicBlock * BB )

operator=()

template<class LatticeKey, class LatticeVal, class KeyInfo>

Print()

template<class LatticeKey, class LatticeVal, class KeyInfo>

void llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::Print ( raw_ostream & OS ) const

Solve()

template<class LatticeKey, class LatticeVal, class KeyInfo>

void llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::Solve ( )

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