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:
- include/llvm/Analysis/SparsePropagation.h