24 #ifndef TVM_RELAY_DATAFLOW_PATTERN_H_ 25 #define TVM_RELAY_DATAFLOW_PATTERN_H_ 42 static constexpr
const char*
_type_key =
"DFPatternNode";
53 DFPattern operator()(
const std::vector<DFPattern>& args)
const;
73 DFPattern HasDtype(
const std::string& dtype)
const;
90 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.ExprPattern";
123 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.VarPattern";
142 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.ConstantPattern";
172 v->Visit(
"args", &args);
175 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.CallPattern";
202 v->Visit(
"params", ¶ms);
203 v->Visit(
"body", &body);
206 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.FunctionPattern";
238 v->Visit(
"var", &var);
239 v->Visit(
"value", &value);
240 v->Visit(
"body", &body);
243 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.LetPattern";
273 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.TuplePattern";
293 v->Visit(
"tuple", &tuple);
294 v->Visit(
"index", &index);
297 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.TupleGetItemPattern";
306 v->Visit(
"cond", &cond);
307 v->Visit(
"true_branch", &true_branch);
308 v->Visit(
"false_branch", &false_branch);
311 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.IfPattern";
339 v->Visit(
"left", &left);
340 v->Visit(
"right", &right);
343 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.AltPattern";
363 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.WildcardPattern";
387 v->Visit(
"pattern", &pattern);
388 v->Visit(
"type", &type);
391 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.TypePattern";
416 v->Visit(
"pattern", &pattern);
417 v->Visit(
"shape", &shape);
420 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.ShapePattern";
445 v->Visit(
"pattern", &pattern);
446 v->Visit(
"dtype", &dtype);
449 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.DataTypePattern";
474 v->Visit(
"pattern", &pattern);
475 v->Visit(
"attrs", &attrs);
478 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.AttrPattern";
507 v->Visit(
"parent", &parent);
508 v->Visit(
"path", &path);
509 v->Visit(
"child", &child);
512 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.DominatorPattern";
542 #endif // TVM_RELAY_DATAFLOW_PATTERN_H_ Definition: dataflow_pattern.h:127
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:237
DFPattern IsExpr(const Expr &expr)
Syntatic Sugar for creating a ExprPattern.
DFPattern path
The path.
Definition: dataflow_pattern.h:502
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:506
A pattern which matches a literal expression.
Definition: dataflow_pattern.h:100
PrimExpr operator||(PrimExpr a, PrimExpr b)
or
DFPattern var
The variable we bind to.
Definition: dataflow_pattern.h:231
Pattern for Types.
Definition: dataflow_pattern.h:437
int index
which value to get
Definition: dataflow_pattern.h:290
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:338
DFPattern pattern
The pattern.
Definition: dataflow_pattern.h:411
DFPattern pattern
The pattern.
Definition: dataflow_pattern.h:382
Relay expression language.
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:140
runtime implementation for LibTorch/TorchScript.
Definition: analyzer.h:36
Pattern for Relay Expression.
Definition: dataflow_pattern.h:83
Definition: dataflow_pattern.h:301
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:386
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:361
Definition: dataflow_pattern.h:321
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:88
Definition: dataflow_pattern.h:146
DFPattern IsConstant()
Syntatic Sugar for creating a ConstantPattern.
DFPattern pattern
The pattern.
Definition: dataflow_pattern.h:440
A binding of a sub-network.
Definition: dataflow_pattern.h:228
Dominated Graph Pattern Pattern for fuzzy subgraphs where all outputs of the parent are used finally ...
Definition: dataflow_pattern.h:497
A pattern which matches a type in another pattern.
Definition: dataflow_pattern.h:427
DataType dtype
The type to match.
Definition: dataflow_pattern.h:442
Managed reference to DictAttrsNode.
Definition: attrs.h:227
base class of all object containers.
Definition: object.h:167
TVM_DECLARE_BASE_OBJECT_INFO(DFPatternNode, Object)
PrimExpr operator-(PrimExpr a, PrimExpr b)
subtraction operator
DictAttrs attrs
The attribute to match.
Definition: dataflow_pattern.h:471
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:415
Definition: dataflow_pattern.h:285
Pattern for Types.
Definition: dataflow_pattern.h:379
DFPattern tuple
The tuple Expression.
Definition: dataflow_pattern.h:288
A pattern which matches either of two patterns.
Definition: dataflow_pattern.h:350
Visitor class to get the attributes of an AST/IR node. The content is going to be called for each fie...
Definition: reflection.h:52
DFPattern value
The value we bind var to.
Definition: dataflow_pattern.h:233
Base type of all dataflow patterns.
Definition: dataflow_pattern.h:40
Pattern for Alternate Expressions.
Definition: dataflow_pattern.h:331
Managed reference to FunctionNode.
Definition: dataflow_pattern.h:214
String name
The name of the Var (optional).
Definition: dataflow_pattern.h:116
Runtime primitive data type.
Definition: data_type.h:41
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:121
DFPattern left
The left optional pattern.
Definition: dataflow_pattern.h:334
Pattern for Attributes.
Definition: dataflow_pattern.h:466
Array, container representing a contiguous sequence of ObjectRefs.
Definition: array.h:289
A pattern which matches a type in another pattern.
Definition: dataflow_pattern.h:398
A pattern which matches attributes in another pattern.
Definition: dataflow_pattern.h:485
A pattern which matches a type in another pattern.
Definition: dataflow_pattern.h:456
DFPattern right
The right optional pattern.
Definition: dataflow_pattern.h:336
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:170
CallPattern container.
Definition: dataflow_pattern.h:157
DFPattern body
The body of the let binding.
Definition: dataflow_pattern.h:235
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:305
DFPattern IsTuple(const Array< DFPattern > &fields)
Syntatic Sugar for creating a TuplePattern.
Reference to string objects.
Definition: string.h:98
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:201
Tensor shape(const Tensor &src, DataType dtype, const std::string name="T_shape", const std::string tag=kInjective)
Get the shape of input tensor.
Definition: transform.h:1768
Managed reference to RelayExprNode.
Definition: expr.h:433
Container for Constant.
Definition: dataflow_pattern.h:138
#define TVM_DEFINE_OBJECT_REF_METHODS(TypeName, ParentType, ObjectName)
Definition: object.h:713
tvm::Array< DFPattern > fields
the fields of the tuple
Definition: dataflow_pattern.h:269
Managed reference to dataflow patterns.
Definition: dataflow_pattern.h:50
Definition: dataflow_pattern.h:315
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:292
Var var(std::string name_hint, DataType t=DataType::Int(32))
Construct a new Var expression.
Base class of all object reference.
Definition: object.h:511
#define TVM_DEFINE_OBJECT_REF_COW_METHOD(ObjectName)
Define CopyOnWrite function in an ObjectRef.
Definition: object.h:785
Expr expr
The expression to match.
Definition: dataflow_pattern.h:86
const String & name_hint() const
Definition: dataflow_pattern.h:119
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:444
DFPattern IsWildcard()
Syntatic Sugar for creating a WildcardPattern.
A pattern which matches anything.
Definition: dataflow_pattern.h:370
PrimExpr operator*(PrimExpr a, PrimExpr b)
multiplication operator
Container for Var.
Definition: dataflow_pattern.h:111
Tuple container.
Definition: dataflow_pattern.h:266
#define TVM_DECLARE_FINAL_OBJECT_INFO(TypeName, ParentType)
helper macro to declare type information in a final class.
Definition: object.h:671
Definition: dataflow_pattern.h:179
Pattern for Shapes.
Definition: dataflow_pattern.h:408
Type type
The type to match.
Definition: dataflow_pattern.h:384
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:271
Map container of NodeRef->NodeRef in DSL graph. Map implements copy on write semantics, which means map is mutable but copy will happen when array is referenced in more than two places.
Definition: map.h:1271
DFPattern pattern
The pattern.
Definition: dataflow_pattern.h:469
PrimExpr operator/(PrimExpr a, PrimExpr b)
division operator
Optional container that to represent to a Nullable variant of T.
Definition: optional.h:51
Managed reference to TypeNode.
Definition: type.h:93
DFPattern IsTupleGetItem(const DFPattern tuple, int index=-1)
Syntatic Sugar for creating a TupleGetItemPattern.
DFPattern true_branch
Definition: dataflow_pattern.h:303
A pattern which matches a variable length dominator path.
Definition: dataflow_pattern.h:519
Array< PrimExpr > shape
The type to match.
Definition: dataflow_pattern.h:413
Definition: dataflow_pattern.h:277
DFPattern op
The operator(function) being invoked.
Definition: dataflow_pattern.h:165
Let binding that binds a local var.
Definition: dataflow_pattern.h:250
DFPattern IsOp(const String &op_name)
Syntatic Sugar for creating a ExprPattern base on an Op.
Relay Function container.
Definition: dataflow_pattern.h:189
DFPattern child
The child.
Definition: dataflow_pattern.h:504
Wildcard Pattern.
Definition: dataflow_pattern.h:359
tvm::Array< relay::DFPattern > args
The arguments(inputs) of the call.
Definition: dataflow_pattern.h:168
PrimExpr operator+(PrimExpr a, PrimExpr b)
add operator
DFPattern parent
The parent.
Definition: dataflow_pattern.h:500
static constexpr const char * _type_key
Definition: dataflow_pattern.h:42
DFPattern IsVar(const String &name)
Syntatic Sugar for creating a VarPattern with a name.
DFPattern body
The expression which represents the computation of the function, the expression may reference the par...
Definition: dataflow_pattern.h:199
tvm::Array< DFPattern > params
Function parameters.
Definition: dataflow_pattern.h:192
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:473