tvm
Classes | Namespaces | Typedefs | Enumerations | Functions
int_set.h File Reference

Integer set. More...

#include <tvm/ir/expr.h>
#include <tvm/tir/expr.h>
#include <unordered_map>
Include dependency graph for int_set.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  tvm::arith::IntSetNode
 Base class of all Integer set containers. represent a set of integers in one dimension. More...
 
class  tvm::arith::IntSet
 Managed reference to IntSetNode. More...
 

Namespaces

 tvm
 runtime implementation for LibTorch/TorchScript.
 
 tvm::arith
 namespace of arithmetic analysis.
 

Typedefs

using tvm::arith::ExprIntSetMap = std::unordered_map< PrimExpr, IntSet, ObjectPtrHash, ObjectPtrEqual >
 Map from Expr to IntSet. More...
 

Enumerations

enum  tvm::arith::SignType {
  tvm::arith::kPositive , tvm::arith::kNegative , tvm::arith::kZero , tvm::arith::kUnknown ,
  tvm::arith::kUnknown = 7
}
 Sign type of an integer expression. More...
 

Functions

Map< Var, IntSet > tvm::arith::ConvertDomMap (const std::unordered_map< const VarNode *, IntSet > &dom_map)
 Convert std::unordered_map<const VarNode*, IntSet> to Map<Var, IntSet> More...
 
IntSet tvm::arith::EvalSet (PrimExpr e, const Map< IterVar, IntSet > &dom_map)
 Find an symbolic integer set that contains all possible values of e given the domain of each iteration variables. More...
 
IntSet tvm::arith::EvalSet (PrimExpr e, const Map< Var, IntSet > &dom_map)
 Find an symbolic integer set that contains all possible values of e given the domain of each variables. More...
 
IntSet tvm::arith::EvalSet (PrimExpr e, const std::unordered_map< const tir::VarNode *, IntSet > &dom_map)
 Same as EvalSet, but takes unordered_map. More...
 
IntSet tvm::arith::EvalSet (Range r, const Map< IterVar, IntSet > &dom_map)
 Find an symbolic integer set that contains is union over all the possible conditional values in dom_map. More...
 
IntSet tvm::arith::EvalSet (IntSet s, const std::unordered_map< const VarNode *, IntSet > &dom_map)
 Find an symbolic integer set that contains is union over all the possible conditional values in dom_map. More...
 
IntSet tvm::arith::EvalSet (Range r, const std::unordered_map< const VarNode *, IntSet > &dom_map)
 Same as EvalSet, but takes unordered_map. More...
 
Array< IntSet > tvm::arith::EvalSet (const Array< Range > &region, const Map< Var, IntSet > &dom_map)
 Same as EvalSet, but takes Array<Range> More...
 
ExprIntSetMap tvm::arith::EvalSetForEachSubExpr (PrimExpr e, const std::unordered_map< const VarNode *, IntSet > &dom_map)
 Find the integer set of every sub-expression, given the domain of each iteration variables. More...
 
IntSet tvm::arith::Union (const Array< IntSet > &sets)
 Create a union set of all sets, possibly relaxed. More...
 
Array< IntSet > tvm::arith::UnionRegion (const Array< Array< IntSet >> &nd_int_sets)
 The union of N-dimensional integer sets. More...
 
IntSet tvm::arith::UnionLowerBound (const Array< IntSet > &sets)
 Create a lower-bound of union set, where some of the segments may be dropped. More...
 
Array< IntSet > tvm::arith::UnionRegionLowerBound (const Array< Array< IntSet >> &nd_int_sets)
 The union of N-dimensional integer sets. More...
 
IntSet tvm::arith::Intersect (const Array< IntSet > &sets)
 Create an intersected set of all sets. More...
 
Map< Var, arith::IntSet > tvm::arith::AsIntSet (const Map< Var, Range > &var_dom)
 Converts the Ranges to IntSets. More...
 
Optional< Array< IntSet > > tvm::arith::EstimateRegionStrictBound (const Array< Range > &region, const Map< Var, Range > &var_dom, const PrimExpr &predicate, arith::Analyzer *analyzer)
 Analyze the region with affine map, given the domain of variables and their predicate. The result should be strict, i.e. no region is discarded or relaxed. More...
 
Optional< Array< IntSet > > tvm::arith::EstimateRegionLowerBound (const Array< Range > &region, const Map< Var, Range > &var_dom, const PrimExpr &predicate, arith::Analyzer *analyzer)
 Analyze the region with affine map, given the domain of variables and their predicate. Some subregion may be discarded during the lower-bound analysis. More...
 
Array< IntSet > tvm::arith::EstimateRegionUpperBound (const Array< Range > &region, const Map< Var, Range > &var_dom, const PrimExpr &predicate, arith::Analyzer *analyzer)
 Analyze the region with affine map, given the domain of variables and their predicate Relaxation of the region may be used in upper-bound analysis, i.e. some extra region may be added to the result. More...
 

Detailed Description

Integer set.