LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

SCCPSolver Class Reference

Inheritance diagram for SCCPSolver:

Inheritance graph
[legend]
Collaboration diagram for SCCPSolver:

Collaboration graph
[legend]
List of all members.

Public Member Functions

void MarkBlockExecutable (BasicBlock *BB)
void Solve ()
std::set< BasicBlock * > & getExecutableBlocks ()
hash_map< Value *, LatticeVal > & getValueMapping ()

Friends

class InstVisitor< SCCPSolver >

Detailed Description

SCCPSolver - This class is a general purpose solver for Sparse Conditional Constant Propagation.

Definition at line 98 of file SCCP.cpp.


Member Function Documentation

std::set<BasicBlock*>& SCCPSolver::getExecutableBlocks  )  [inline]
 

getExecutableBlocks - Once we have solved for constants, return the set of blocks that is known to be executable.

Definition at line 139 of file SCCP.cpp.

hash_map<Value*, LatticeVal>& SCCPSolver::getValueMapping  )  [inline]
 

getValueMapping - Once we have solved for constants, return the mapping of LLVM values to LatticeVals.

Definition at line 145 of file SCCP.cpp.

void SCCPSolver::MarkBlockExecutable BasicBlock BB  )  [inline]
 

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.

Definition at line 127 of file SCCP.cpp.

References DEBUG, and llvm::Value::getName().

void SCCPSolver::Solve  ) 
 

Solve - Solve for constants and executable blocks.

Definition at line 739 of file SCCP.cpp.

References DEBUG, llvm::Value::use_begin(), llvm::Value::use_end(), and llvm::InstVisitor< SubClass, RetTy >::visit().


Friends And Related Function Documentation

friend class InstVisitor< SCCPSolver > [friend]
 

Definition at line 246 of file SCCP.cpp.


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