LLVM 22.0.0git
|
#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. |
Definition at line 23 of file ConstraintSystem.h.
|
inline |
Definition at line 67 of file ConstraintSystem.h.
Definition at line 68 of file ConstraintSystem.h.
References llvm::ArrayRef< T >::size().
|
inline |
Definition at line 74 of file ConstraintSystem.h.
References size().
Definition at line 77 of file ConstraintSystem.h.
References llvm::all_of(), llvm::ArrayRef(), assert(), llvm::CallingConv::C, llvm::SmallVectorImpl< T >::emplace_back(), and llvm::enumerate().
Referenced by addVariableRowFill().
Definition at line 101 of file ConstraintSystem.h.
References addVariableRow(), llvm::all_of(), llvm::ArrayRef(), and llvm::CallingConv::C.
Referenced by dumpConstraint().
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().
|
inline |
Definition at line 149 of file ConstraintSystem.h.
References assert().
Definition at line 96 of file ConstraintSystem.h.
Definition at line 97 of file ConstraintSystem.h.
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().
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.
|
inlinestatic |
Definition at line 114 of file ConstraintSystem.h.
References llvm::AddOverflow(), and negateOrEqual().
Referenced by isConditionImplied().
|
inlinestatic |
Multiplies each coefficient in the given vector by -1.
Does not modify the original vector.
R | The vector of coefficients to be negated. |
Definition at line 127 of file ConstraintSystem.h.
References llvm::CallingConv::C, and llvm::MulOverflow().
Referenced by negate().
|
inline |
Definition at line 157 of file ConstraintSystem.h.
|
inline |
Definition at line 158 of file ConstraintSystem.h.
|
inline |
Returns the number of rows in the constraint system.
Definition at line 164 of file ConstraintSystem.h.
Referenced by ConstraintSystem().
|
inlinestatic |
Converts the given vector to form a strict less than inequality.
Does not modify the original vector.
R | The vector of coefficients to be converted. |
Definition at line 139 of file ConstraintSystem.h.
References llvm::SubOverflow().