MLIR  17.0.0git
Functions
PWMAFunction.cpp File Reference
#include "mlir/Analysis/Presburger/PWMAFunction.h"
#include "mlir/Analysis/Presburger/Simplex.h"
#include <optional>

Go to the source code of this file.

Functions

static SmallVector< MPInt, 8 > subtractExprs (ArrayRef< MPInt > vecA, ArrayRef< MPInt > vecB)
 
template<OrderingKind comp>
static PresburgerSet tiebreakLex (const PWMAFunction::Piece &pieceA, const PWMAFunction::Piece &pieceB)
 A tiebreak function which breaks ties by comparing the outputs lexicographically based on the given comparison operator. More...
 
static void addDivisionConstraints (IntegerRelation &rel, const DivisionRepr &divs)
 Adds division constraints corresponding to local variables, given a relation and division representations of the local variables in the relation. More...
 

Function Documentation

◆ addDivisionConstraints()

static void addDivisionConstraints ( IntegerRelation rel,
const DivisionRepr divs 
)
static

◆ subtractExprs()

static SmallVector<MPInt, 8> subtractExprs ( ArrayRef< MPInt vecA,
ArrayRef< MPInt vecB 
)
static

Definition at line 33 of file PWMAFunction.cpp.

Referenced by mlir::presburger::MultiAffineFunction::getLexSet().

◆ tiebreakLex()

template<OrderingKind comp>
static PresburgerSet tiebreakLex ( const PWMAFunction::Piece pieceA,
const PWMAFunction::Piece pieceB 
)
static

A tiebreak function which breaks ties by comparing the outputs lexicographically based on the given comparison operator.

This is templated since it is passed as a lambda.

Definition at line 358 of file PWMAFunction.cpp.

References mlir::presburger::PWMAFunction::Piece::domain, mlir::presburger::MultiAffineFunction::getLexSet(), mlir::presburger::PresburgerSet::intersect(), and mlir::presburger::PWMAFunction::Piece::output.