LLVM API Documentation

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

VRPSolver Class Reference

VRPSolver calculates inferences from a new relationship. More...

Collaboration diagram for VRPSolver:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 VRPSolver (ValueNumbering &VN, InequalityGraph &IG, UnreachableBlocks &UB, ValueRanges &VR, DomTreeDFS *DTDFS, bool &modified, BasicBlock *TopBB)
 VRPSolver (ValueNumbering &VN, InequalityGraph &IG, UnreachableBlocks &UB, ValueRanges &VR, DomTreeDFS *DTDFS, bool &modified, Instruction *TopInst)
bool isRelatedBy (Value *V1, Value *V2, ICmpInst::Predicate Pred) const
void add (Value *V1, Value *V2, ICmpInst::Predicate Pred, Instruction *I=NULL)
 add - adds a new property to the work queue
void defToOps (Instruction *I)
void opsToDef (Instruction *I)
void solve ()
 solve - process the work queue

Friends

class ValueRanges

Detailed Description

VRPSolver calculates inferences from a new relationship.

VRPSolver keeps track of how changes to one variable affect other variables, and forwards changes along to the InequalityGraph. It also maintains the correct choice for "canonical" in the IG.

Definition at line 1367 of file PredicateSimplifier.cpp.


Constructor & Destructor Documentation

VRPSolver::VRPSolver ValueNumbering VN,
InequalityGraph IG,
UnreachableBlocks UB,
ValueRanges VR,
DomTreeDFS DTDFS,
bool &  modified,
BasicBlock TopBB
[inline]
 

Definition at line 1698 of file PredicateSimplifier.cpp.

VRPSolver::VRPSolver ValueNumbering VN,
InequalityGraph IG,
UnreachableBlocks UB,
ValueRanges VR,
DomTreeDFS DTDFS,
bool &  modified,
Instruction TopInst
[inline]
 

Definition at line 1714 of file PredicateSimplifier.cpp.


Member Function Documentation

void VRPSolver::add Value V1,
Value V2,
ICmpInst::Predicate  Pred,
Instruction I = NULL
[inline]
 

add - adds a new property to the work queue

Definition at line 1767 of file PredicateSimplifier.cpp.

void VRPSolver::defToOps Instruction I  )  [inline]
 

defToOps - Given an instruction definition that we've learned something new about, find any new relationships between its operands.

Definition at line 1785 of file PredicateSimplifier.cpp.

References add(), llvm::SelectInst::getCondition(), llvm::SelectInst::getFalseValue(), llvm::CastInst::getOpcode(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::GetElementPtrInst::getPointerOperand(), llvm::CmpInst::getPredicate(), llvm::CastInst::getSrcTy(), llvm::SelectInst::getTrueValue(), llvm::GetElementPtrInst::getType(), llvm::Value::getType(), llvm::ConstantInt::getValue(), llvm::GetElementPtrInst::idx_begin(), llvm::GetElementPtrInst::idx_end(), llvm::Type::isFPOrFPVector(), llvm::ConstantRange::isFullSet(), llvm::ConstantInt::isZero(), std::swap(), and llvm::ConstantRange::truncate().

bool VRPSolver::isRelatedBy Value V1,
Value V2,
ICmpInst::Predicate  Pred
const [inline]
 

Definition at line 1731 of file PredicateSimplifier.cpp.

void VRPSolver::opsToDef Instruction I  )  [inline]
 

opsToDef - A new relationship was discovered involving one of this instruction's operands. Find any new relationship involving the definition, or another operand.

Definition at line 1914 of file PredicateSimplifier.cpp.

References add(), llvm::SelectInst::getCondition(), llvm::CastInst::getDestTy(), llvm::SelectInst::getFalseValue(), llvm::CastInst::getOpcode(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::GetElementPtrInst::getPointerOperand(), llvm::CmpInst::getPredicate(), llvm::SelectInst::getTrueValue(), llvm::GetElementPtrInst::getType(), llvm::Value::getType(), llvm::GetElementPtrInst::idx_begin(), llvm::GetElementPtrInst::idx_end(), llvm::Type::isFPOrFPVector(), llvm::ConstantRange::isFullSet(), llvm::ConstantInt::isZero(), llvm::ConstantRange::signExtend(), std::swap(), llvm::ConstantRange::truncate(), and llvm::ConstantRange::zeroExtend().

void VRPSolver::solve  )  [inline]
 

solve - process the work queue

Definition at line 2104 of file PredicateSimplifier.cpp.


Friends And Related Function Documentation

friend class ValueRanges [friend]
 

Definition at line 1369 of file PredicateSimplifier.cpp.


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


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