LLVM API Documentation

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

llvm::AbstractLatticeFunction Class Reference

#include <SparsePropagation.h>

Collaboration diagram for llvm::AbstractLatticeFunction:

Collaboration graph
[legend]
List of all members.

Public Types

typedef void * LatticeVal

Public Member Functions

 AbstractLatticeFunction (LatticeVal undefVal, LatticeVal overdefinedVal, LatticeVal untrackedVal)
virtual ~AbstractLatticeFunction ()
LatticeVal getUndefVal () const
LatticeVal getOverdefinedVal () const
LatticeVal getUntrackedVal () const
virtual bool IsUntrackedValue (Value *V)
virtual LatticeVal ComputeConstant (Constant *C)
virtual ConstantGetConstant (LatticeVal LV, Value *Val, SparseSolver &SS)
virtual LatticeVal ComputeArgument (Argument *I)
virtual LatticeVal MergeValues (LatticeVal X, LatticeVal Y)
virtual LatticeVal ComputeInstructionState (Instruction &I, SparseSolver &SS)
virtual void PrintValue (LatticeVal V, std::ostream &OS)
 PrintValue - Render the specified lattice value to the specified stream.

Detailed Description

AbstractLatticeFunction - This class is implemented by the dataflow instance to specify what the lattice values are and how they handle merges etc. This gives the client the power to compute lattice values from instructions, constants, etc. The requirement is that lattice values must all fit into a void*. If a void* is not sufficient, the implementation should use this pointer to be a pointer into a uniquing set or something.

Definition at line 42 of file SparsePropagation.h.


Member Typedef Documentation

typedef void* llvm::AbstractLatticeFunction::LatticeVal
 

Definition at line 44 of file SparsePropagation.h.


Constructor & Destructor Documentation

llvm::AbstractLatticeFunction::AbstractLatticeFunction LatticeVal  undefVal,
LatticeVal  overdefinedVal,
LatticeVal  untrackedVal
[inline]
 

Definition at line 48 of file SparsePropagation.h.

AbstractLatticeFunction::~AbstractLatticeFunction  )  [virtual]
 

Definition at line 27 of file SparsePropagation.cpp.


Member Function Documentation

virtual LatticeVal llvm::AbstractLatticeFunction::ComputeArgument Argument I  )  [inline, virtual]
 

ComputeArgument - Given a formal argument value, compute and return a lattice value corresponding to the specified argument.

Definition at line 82 of file SparsePropagation.h.

References LatticeVal.

Referenced by llvm::SparseSolver::getOrInitValueState().

virtual LatticeVal llvm::AbstractLatticeFunction::ComputeConstant Constant C  )  [inline, virtual]
 

ComputeConstant - Given a constant value, compute and return a lattice value corresponding to the specified constant.

Definition at line 69 of file SparsePropagation.h.

References LatticeVal.

Referenced by llvm::SparseSolver::getOrInitValueState().

virtual LatticeVal llvm::AbstractLatticeFunction::ComputeInstructionState Instruction I,
SparseSolver SS
[inline, virtual]
 

ComputeInstructionState - Given an instruction and a vector of its operand values, compute the result value of the instruction.

Definition at line 95 of file SparsePropagation.h.

References LatticeVal.

virtual Constant* llvm::AbstractLatticeFunction::GetConstant LatticeVal  LV,
Value Val,
SparseSolver SS
[inline, virtual]
 

GetConstant - If the specified lattice value is representable as an LLVM constant value, return it. Otherwise return null. The returned value must be in the same LLVM type as Val.

Definition at line 76 of file SparsePropagation.h.

LatticeVal llvm::AbstractLatticeFunction::getOverdefinedVal  )  const [inline]
 

Definition at line 57 of file SparsePropagation.h.

References LatticeVal.

Referenced by llvm::SparseSolver::getOrInitValueState().

LatticeVal llvm::AbstractLatticeFunction::getUndefVal  )  const [inline]
 

Definition at line 56 of file SparsePropagation.h.

References LatticeVal.

Referenced by llvm::SparseSolver::getOrInitValueState().

LatticeVal llvm::AbstractLatticeFunction::getUntrackedVal  )  const [inline]
 

Definition at line 58 of file SparsePropagation.h.

References LatticeVal.

Referenced by llvm::SparseSolver::getLatticeState(), and llvm::SparseSolver::getOrInitValueState().

virtual bool llvm::AbstractLatticeFunction::IsUntrackedValue Value V  )  [inline, virtual]
 

IsUntrackedValue - If the specified Value is something that is obviously uninteresting to the analysis (and would always return UntrackedVal), this function can return true to avoid pointless work.

Definition at line 63 of file SparsePropagation.h.

Referenced by llvm::SparseSolver::getOrInitValueState().

virtual LatticeVal llvm::AbstractLatticeFunction::MergeValues LatticeVal  X,
LatticeVal  Y
[inline, virtual]
 

MergeValues - Compute and return the merge of the two specified lattice values. Merging should only move one direction down the lattice to guarantee convergence (toward overdefined).

Definition at line 89 of file SparsePropagation.h.

References LatticeVal.

void AbstractLatticeFunction::PrintValue LatticeVal  V,
std::ostream &  OS
[virtual]
 

PrintValue - Render the specified lattice value to the specified stream.

Definition at line 30 of file SparsePropagation.cpp.

Referenced by llvm::SparseSolver::Print().


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


This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.