tvm
Classes | Namespaces | Functions
dataflow_pattern.h File Reference

A pattern language for matching dataflow properties. More...

#include <tvm/ir/expr.h>
#include <tvm/relax/expr.h>
#include <tvm/relax/type.h>
#include <tvm/runtime/container/array.h>
#include <tvm/runtime/container/optional.h>
#include <tvm/support/with.h>
#include <cstdint>
#include <functional>
#include <map>
#include <memory>
#include <string>
#include <tuple>
#include <utility>
#include <vector>
Include dependency graph for dataflow_pattern.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  tvm::relax::DFPatternNode
 Base type of all dataflow patterns. More...
 
class  tvm::relax::DFPattern
 Managed reference to dataflow patterns. More...
 
struct  tvm::relax::PairCons
 Constraint of a DFPattern edge (producer -> consumer) in graph-level matching. More...
 
class  tvm::relax::DFConstraintNode
 Additional constraints on the graph. More...
 
class  tvm::relax::DFConstraint
 
class  tvm::relax::PatternSeqNode
 A sequence of DFPatterns that the previous DFPattern is connected to the next one. More...
 
class  tvm::relax::PatternSeq
 Managed reference to pattern sequences. More...
 
class  tvm::relax::PatternContextNode
 A context to manage the graph-level pattern matching. More...
 
class  tvm::relax::PatternContext
 Managed reference to a pattern context. More...
 
class  tvm::relax::ExprPatternNode
 Pattern for Relax Expression. More...
 
class  tvm::relax::ExprPattern
 Managed reference to an ExprPattern. More...
 
class  tvm::relax::VarPatternNode
 A Pattern to Match a Relax Variable. More...
 
class  tvm::relax::VarPattern
 Managed reference to a VarPattern. More...
 
class  tvm::relax::DataflowVarPatternNode
 A Pattern to Match a Relax Dataflow Variable. More...
 
class  tvm::relax::DataflowVarPattern
 Managed reference to a DataflowVarPattern. More...
 
class  tvm::relax::GlobalVarPatternNode
 A Pattern to Match a Relax Global Variable. More...
 
class  tvm::relax::GlobalVarPattern
 Managed reference to a GlobalVarPattern. More...
 
class  tvm::relax::ConstantPatternNode
 A Pattern to Match a Relax Constant. More...
 
class  tvm::relax::ConstantPattern
 Managed reference to a ConstantPattern. More...
 
class  tvm::relax::CallPatternNode
 A pattern to match a callable node in Relax. More...
 
class  tvm::relax::CallPattern
 
class  tvm::relax::PrimArrPatternNode
 A pattern to match an array of PrimExpr. More...
 
class  tvm::relax::PrimArrPattern
 Managed reference to a PrimArrPattern. More...
 
class  tvm::relax::FunctionPatternNode
 A pattern to match a Relax Function. More...
 
class  tvm::relax::FunctionPattern
 Managed reference to FunctionPatternNode. More...
 
class  tvm::relax::TuplePatternNode
 Pattern to match a tuple of ordered expressions. More...
 
class  tvm::relax::TuplePattern
 Managed reference to TuplePatternNode. More...
 
class  tvm::relax::UnorderedTuplePatternNode
 A pattern to match multiple expressions unorderedly. More...
 
class  tvm::relax::UnorderedTuplePattern
 Managed reference to UnorderedTuplePatternNode. More...
 
class  tvm::relax::TupleGetItemPatternNode
 A pattern to match n'th indexing to a tuple. More...
 
class  tvm::relax::TupleGetItemPattern
 Managed reference to TupleGetItemPatternNode. More...
 
class  tvm::relax::AndPatternNode
 Match a conjunction of other patterns. More...
 
class  tvm::relax::AndPattern
 Managed reference to AndPatternNode. More...
 
class  tvm::relax::OrPatternNode
 Match a disjunction of other patterns. More...
 
class  tvm::relax::OrPattern
 Managed reference to OrPatternNode. More...
 
class  tvm::relax::NotPatternNode
 Pattern for rejecting a certain pattern. More...
 
class  tvm::relax::NotPattern
 Managed reference to NotPatternNode. More...
 
class  tvm::relax::WildcardPatternNode
 Wildcard Pattern is a pattern that can match anything. More...
 
class  tvm::relax::WildcardPattern
 Managed reference to WildcardPatternNode. More...
 
class  tvm::relax::TypePatternNode
 Pattern for matching a certain type. More...
 
class  tvm::relax::TypePattern
 Managed reference to TypePatternNode. More...
 
class  tvm::relax::StructInfoPatternNode
 Pattern for matching a certain struct info. More...
 
class  tvm::relax::StructInfoPattern
 
class  tvm::relax::ShapePatternNode
 A pattern that asserting a root pattern has a certain shape. More...
 
class  tvm::relax::ShapePattern
 Managed reference to ShapePatternNode. More...
 
class  tvm::relax::SameShapeConstraintNode
 A pattern that asserting multiple root patterns have the same shape. More...
 
class  tvm::relax::SameShapeConstraint
 Managed reference to SameShapePatternNode. More...
 
class  tvm::relax::DataTypePatternNode
 A pattern that asserting a root pattern has a certain data type. More...
 
class  tvm::relax::DataTypePattern
 Managed reference to DataTypePatternNode. More...
 
class  tvm::relax::AttrPatternNode
 A pattern that asserting a root pattern has certain attributes. More...
 
class  tvm::relax::AttrPattern
 Managed reference to AttrPatternNode. More...
 
class  tvm::relax::ExternFuncPatternNode
 A pattern of external function. More...
 
class  tvm::relax::ExternFuncPattern
 Managed reference to ExternFuncPatternNode. More...
 

Namespaces

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

Functions

PatternSeq tvm::relax::UsedBy (const PatternSeq &lhs, const PatternSeq &rhs, int index=-1)
 Create used-by relationship between lhs[-1] and rhs[0], with [*lhs, *rhs] returned. More...
 
PatternSeq tvm::relax::operator^ (const PatternSeq &lhs, const PatternSeq &rhs)
 Syntax sugar of UsedBy(lhs, rhs, -1). More...
 
PatternSeq tvm::relax::OnlyUsedBy (const PatternSeq &lhs, const PatternSeq &rhs, int index=-1)
 Create only-used-by relationship between lhs[-1] and rhs[0], with [*lhs, *rhs] returned. More...
 
PatternSeq tvm::relax::operator>> (const PatternSeq &lhs, const PatternSeq &rhs)
 Syntax sugar of OnlyUsedBy(lhs, rhs, -1). More...
 
VarPattern tvm::relax::IsVar (const String &name)
 Syntatic Sugar for creating a VarPattern with a name. More...
 
ConstantPattern tvm::relax::IsConst ()
 Syntatic Sugar for creating a ConstantPattern. More...
 
WildcardPattern tvm::relax::Wildcard ()
 Syntatic Sugar for creating a WildcardPattern. More...
 
ExprPattern tvm::relax::IsExpr (const Expr &expr)
 Syntatic Sugar for creating a ExprPattern. More...
 
ExprPattern tvm::relax::IsOp (const String &op_name)
 Syntatic Sugar for creating a ExprPattern base on an Op. More...
 
CallPattern tvm::relax::IsCallTIR (const String &name, Optional< TuplePattern > args=NullOpt)
 Syntatic Sugar for call_tir (return a tensor) More...
 
CallPattern tvm::relax::IsCallTIR (const String &name, TuplePattern var_args)
 Syntatic Sugar for call_tir (return a tuple of tensor) More...
 
CallPattern tvm::relax::IsCallDPSPacked (const String &name, Optional< TuplePattern > args=NullOpt)
 Syntatic Sugar for call_dps_packed (return a tensor) More...
 
CallPattern tvm::relax::IsCallDPSPacked (const String &name, TuplePattern var_args)
 Syntatic Sugar for call_dps_packed (return a tuple of tensor) More...
 
DFPattern tvm::relax::IsTuple (const Array< DFPattern > &fields, bool unordered=false)
 Syntatic Sugar for creating TuplePattern or UnorderedTuplePattern (unordered=true) More...
 
TupleGetItemPattern tvm::relax::IsTupleGetItem (const DFPattern tuple, int index=-1)
 Syntatic Sugar for creating a TupleGetItemPattern. More...
 

Detailed Description

A pattern language for matching dataflow properties.