LLVM  6.0.0svn
Public Member Functions | Static Public Member Functions | List of all members
llvm::ValueLatticeElement Class Reference

#include "llvm/Analysis/ValueLattice.h"

Public Member Functions

 ValueLatticeElement ()
 
bool isUndefined () const
 
bool isConstant () const
 
bool isNotConstant () const
 
bool isConstantRange () const
 
bool isOverdefined () const
 
ConstantgetConstant () const
 
ConstantgetNotConstant () const
 
const ConstantRangegetConstantRange () const
 
Optional< APIntasConstantInteger () const
 
bool mergeIn (const ValueLatticeElement &RHS, const DataLayout &DL)
 Updates this object to approximate both this object and RHS. More...
 
ConstantIntgetConstantInt () const
 
bool satisfiesPredicate (CmpInst::Predicate Pred, const ValueLatticeElement &Other) const
 

Static Public Member Functions

static ValueLatticeElement get (Constant *C)
 
static ValueLatticeElement getNot (Constant *C)
 
static ValueLatticeElement getRange (ConstantRange CR)
 
static ValueLatticeElement getOverdefined ()
 

Detailed Description

Definition at line 27 of file ValueLattice.h.

Constructor & Destructor Documentation

◆ ValueLatticeElement()

llvm::ValueLatticeElement::ValueLatticeElement ( )
inline

Definition at line 59 of file ValueLattice.h.

Member Function Documentation

◆ asConstantInteger()

Optional<APInt> llvm::ValueLatticeElement::asConstantInteger ( ) const
inline

◆ get()

static ValueLatticeElement llvm::ValueLatticeElement::get ( Constant C)
inlinestatic

Definition at line 61 of file ValueLattice.h.

References C.

Referenced by getEdgeValueLocal(), getValueFromICmpCondition(), intersect(), and tryToReplaceWithConstantRange().

◆ getConstant()

Constant* llvm::ValueLatticeElement::getConstant ( ) const
inline

◆ getConstantInt()

ConstantInt* llvm::ValueLatticeElement::getConstantInt ( ) const
inline

Definition at line 220 of file ValueLattice.h.

References assert(), getConstant(), and isConstant().

◆ getConstantRange()

const ConstantRange& llvm::ValueLatticeElement::getConstantRange ( ) const
inline

◆ getNot()

static ValueLatticeElement llvm::ValueLatticeElement::getNot ( Constant C)
inlinestatic

◆ getNotConstant()

Constant* llvm::ValueLatticeElement::getNotConstant ( ) const
inline

Definition at line 95 of file ValueLattice.h.

References assert(), and isNotConstant().

Referenced by asConstantInteger(), getPredicateResult(), and llvm::operator<<().

◆ getOverdefined()

static ValueLatticeElement llvm::ValueLatticeElement::getOverdefined ( )
inlinestatic

◆ getRange()

static ValueLatticeElement llvm::ValueLatticeElement::getRange ( ConstantRange  CR)
inlinestatic

◆ isConstant()

bool llvm::ValueLatticeElement::isConstant ( ) const
inline

◆ isConstantRange()

bool llvm::ValueLatticeElement::isConstantRange ( ) const
inline

◆ isNotConstant()

bool llvm::ValueLatticeElement::isNotConstant ( ) const
inline

◆ isOverdefined()

bool llvm::ValueLatticeElement::isOverdefined ( ) const
inline

◆ isUndefined()

bool llvm::ValueLatticeElement::isUndefined ( ) const
inline

◆ mergeIn()

bool llvm::ValueLatticeElement::mergeIn ( const ValueLatticeElement RHS,
const DataLayout DL 
)
inline

Updates this object to approximate both this object and RHS.

Returns true if this object has been changed.

Definition at line 178 of file ValueLattice.h.

References assert(), getConstantRange(), isConstant(), isConstantRange(), llvm::ConstantRange::isFullSet(), isNotConstant(), isOverdefined(), isUndefined(), and llvm::ConstantRange::unionWith().

Referenced by isObjectDereferencedInBlock().

◆ satisfiesPredicate()

bool llvm::ValueLatticeElement::satisfiesPredicate ( CmpInst::Predicate  Pred,
const ValueLatticeElement Other 
) const
inline

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