LLVM 22.0.0git
llvm::ConstraintSystem Class Reference

#include "llvm/Analysis/ConstraintSystem.h"

Public Member Functions

 ConstraintSystem ()
 ConstraintSystem (ArrayRef< Value * > FunctionArgs)
 ConstraintSystem (const DenseMap< Value *, unsigned > &Value2Index)
bool addVariableRow (ArrayRef< int64_t > R)
DenseMap< Value *, unsigned > & getValue2Index ()
const DenseMap< Value *, unsigned > & getValue2Index () const
bool addVariableRowFill (ArrayRef< int64_t > R)
LLVM_ABI bool mayHaveSolution ()
 Returns true if there may be a solution for the constraints in the system.
LLVM_ABI bool isConditionImplied (SmallVector< int64_t, 8 > R) const
SmallVector< int64_t > getLastConstraint () const
void popLastConstraint ()
void popLastNVariables (unsigned N)
unsigned size () const
 Returns the number of rows in the constraint system.
LLVM_ABI void dump () const
 Print the constraints in the system.

Static Public Member Functions

static SmallVector< int64_t, 8 > negate (SmallVector< int64_t, 8 > R)
static SmallVector< int64_t, 8 > negateOrEqual (SmallVector< int64_t, 8 > R)
 Multiplies each coefficient in the given vector by -1.
static SmallVector< int64_t, 8 > toStrictLessThan (SmallVector< int64_t, 8 > R)
 Converts the given vector to form a strict less than inequality.

Detailed Description

Definition at line 23 of file ConstraintSystem.h.

Constructor & Destructor Documentation

◆ ConstraintSystem() [1/3]

llvm::ConstraintSystem::ConstraintSystem ( )
inline

Definition at line 67 of file ConstraintSystem.h.

◆ ConstraintSystem() [2/3]

llvm::ConstraintSystem::ConstraintSystem ( ArrayRef< Value * > FunctionArgs)
inline

Definition at line 68 of file ConstraintSystem.h.

References llvm::ArrayRef< T >::size().

◆ ConstraintSystem() [3/3]

llvm::ConstraintSystem::ConstraintSystem ( const DenseMap< Value *, unsigned > & Value2Index)
inline

Definition at line 74 of file ConstraintSystem.h.

References size().

Member Function Documentation

◆ addVariableRow()

bool llvm::ConstraintSystem::addVariableRow ( ArrayRef< int64_t > R)
inline

◆ addVariableRowFill()

bool llvm::ConstraintSystem::addVariableRowFill ( ArrayRef< int64_t > R)
inline

Definition at line 101 of file ConstraintSystem.h.

References addVariableRow(), llvm::all_of(), llvm::ArrayRef(), and llvm::CallingConv::C.

Referenced by dumpConstraint().

◆ dump()

void ConstraintSystem::dump ( ) const

Print the constraints in the system.

Definition at line 180 of file ConstraintSystem.cpp.

References llvm::dbgs(), llvm::join(), LLVM_DEBUG, and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by dumpConstraint(), and mayHaveSolution().

◆ getLastConstraint()

SmallVector< int64_t > llvm::ConstraintSystem::getLastConstraint ( ) const
inline

Definition at line 149 of file ConstraintSystem.h.

References assert().

◆ getValue2Index() [1/2]

DenseMap< Value *, unsigned > & llvm::ConstraintSystem::getValue2Index ( )
inline

Definition at line 96 of file ConstraintSystem.h.

◆ getValue2Index() [2/2]

const DenseMap< Value *, unsigned > & llvm::ConstraintSystem::getValue2Index ( ) const
inline

Definition at line 97 of file ConstraintSystem.h.

◆ isConditionImplied()

bool ConstraintSystem::isConditionImplied ( SmallVector< int64_t, 8 > R) const

Definition at line 215 of file ConstraintSystem.cpp.

References llvm::all_of(), llvm::ArrayRef(), llvm::CallingConv::C, and negate().

◆ mayHaveSolution()

bool ConstraintSystem::mayHaveSolution ( )

Returns true if there may be a solution for the constraints in the system.

Definition at line 207 of file ConstraintSystem.cpp.

References llvm::dbgs(), dump(), and LLVM_DEBUG.

◆ negate()

SmallVector< int64_t, 8 > llvm::ConstraintSystem::negate ( SmallVector< int64_t, 8 > R)
inlinestatic

Definition at line 114 of file ConstraintSystem.h.

References llvm::AddOverflow(), and negateOrEqual().

Referenced by isConditionImplied().

◆ negateOrEqual()

SmallVector< int64_t, 8 > llvm::ConstraintSystem::negateOrEqual ( SmallVector< int64_t, 8 > R)
inlinestatic

Multiplies each coefficient in the given vector by -1.

Does not modify the original vector.

Parameters
RThe vector of coefficients to be negated.

Definition at line 127 of file ConstraintSystem.h.

References llvm::CallingConv::C, and llvm::MulOverflow().

Referenced by negate().

◆ popLastConstraint()

void llvm::ConstraintSystem::popLastConstraint ( )
inline

Definition at line 157 of file ConstraintSystem.h.

◆ popLastNVariables()

void llvm::ConstraintSystem::popLastNVariables ( unsigned N)
inline

Definition at line 158 of file ConstraintSystem.h.

References assert(), and N.

◆ size()

unsigned llvm::ConstraintSystem::size ( ) const
inline

Returns the number of rows in the constraint system.

Definition at line 164 of file ConstraintSystem.h.

Referenced by ConstraintSystem().

◆ toStrictLessThan()

SmallVector< int64_t, 8 > llvm::ConstraintSystem::toStrictLessThan ( SmallVector< int64_t, 8 > R)
inlinestatic

Converts the given vector to form a strict less than inequality.

Does not modify the original vector.

Parameters
RThe vector of coefficients to be converted.

Definition at line 139 of file ConstraintSystem.h.

References llvm::SubOverflow().


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