tvm
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Enumerations | Functions
int_set.h File Reference

Integer set. More...

#include <tvm/ir/expr.h>
#include <tvm/ir/prim/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::sym::IntSetObj
 Base class of all Integer set containers. represent a set of integers in one dimension. More...
 
class  tvm::sym::IntSet
 Managed reference to IntSetObj. More...
 

Namespaces

namespace  tvm
 An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.
 
namespace  tvm::sym
 namespace of symbolic analysis.
 

Typedefs

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

Enumerations

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

Functions

ffi::Map< Var, IntSet > tvm::sym::ConvertDomMap (const std::unordered_map< const VarNode *, IntSet > &dom_map)
 Convert std::unordered_map<const VarNode*, IntSet> to ffi::Map<Var, IntSet>
 
IntSet tvm::sym::EvalSet (PrimExpr e, const ffi::Map< Var, IntSet > &dom_map)
 Find an symbolic integer set that contains all possible values of e given the domain of each variables.
 
IntSet tvm::sym::EvalSet (PrimExpr e, const std::unordered_map< const VarNode *, IntSet > &dom_map)
 Same as EvalSet, but takes unordered_map.
 
IntSet tvm::sym::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.
 
IntSet tvm::sym::EvalSet (Range r, const std::unordered_map< const VarNode *, IntSet > &dom_map)
 Same as EvalSet, but takes unordered_map.
 
ffi::Array< IntSet > tvm::sym::EvalSet (const ffi::Array< Range > &region, const ffi::Map< Var, IntSet > &dom_map)
 Same as EvalSet, but takes ffi::Array<Range>
 
ExprIntSetMap tvm::sym::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.
 
IntSet tvm::sym::Union (const ffi::Array< IntSet > &sets)
 Create a union set of all sets, possibly relaxed.
 
ffi::Array< IntSet > tvm::sym::UnionRegion (const ffi::Array< ffi::Array< IntSet > > &nd_int_sets)
 The union of N-dimensional integer sets.
 
IntSet tvm::sym::UnionLowerBound (const ffi::Array< IntSet > &sets)
 Create a lower-bound of union set, where some of the segments may be dropped.
 
ffi::Array< IntSet > tvm::sym::UnionRegionLowerBound (const ffi::Array< ffi::Array< IntSet > > &nd_int_sets)
 The union of N-dimensional integer sets.
 
IntSet tvm::sym::Intersect (const ffi::Array< IntSet > &sets)
 Create an intersected set of all sets.
 
TVM_TIRX_DLL IntSet tvm::sym::Intersect (const IntSet &lhs, const IntSet &rhs, const Analyzer &analyzer)
 Intersect two integer sets using the analyzer's bindings and constraints.
 
ffi::Map< Var, sym::IntSet > tvm::sym::AsIntSet (const ffi::Map< Var, Range > &var_dom)
 Converts the Ranges to IntSets.
 
TVM_TIRX_DLL ffi::Optional< ffi::Array< IntSet > > tvm::sym::EstimateRegionStrictBound (const ffi::Array< Range > &region, const ffi::Map< Var, Range > &var_dom, const PrimExpr &predicate, const sym::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.
 
TVM_TIRX_DLL ffi::Optional< ffi::Array< IntSet > > tvm::sym::EstimateRegionLowerBound (const ffi::Array< Range > &region, const ffi::Map< Var, Range > &var_dom, const PrimExpr &predicate, const sym::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.
 
TVM_TIRX_DLL ffi::Array< IntSet > tvm::sym::EstimateRegionUpperBound (const ffi::Array< Range > &region, const ffi::Map< Var, Range > &var_dom, const PrimExpr &predicate, const sym::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.
 

Detailed Description

Integer set.