Skip to content

Commit c9dfdf6

Browse files
add document
lint lint save save add more case save error lint lint commit do lint save fix lint wrap it back as func lint save remove dead comment fix style fix lint Update src/relay/pass/partial_eval.cc Co-Authored-By: MarisaKirisame <lolisa@marisa.moe> Update src/relay/pass/partial_eval.cc Co-Authored-By: MarisaKirisame <lolisa@marisa.moe> Update src/relay/pass/partial_eval.cc Co-Authored-By: MarisaKirisame <lolisa@marisa.moe> Update src/relay/pass/partial_eval.cc Co-Authored-By: MarisaKirisame <lolisa@marisa.moe> Update src/relay/pass/partial_eval.cc Co-Authored-By: MarisaKirisame <lolisa@marisa.moe> Update src/relay/pass/partial_eval.cc Co-Authored-By: MarisaKirisame <lolisa@marisa.moe> address review feedback pe now handle freevar. as a result preserving function is now trivial. test add basic test, implement pretty printing for generic function test lint fix segfault save save do test fix another error address comment commit save address review feedback add test for invalidate, fix error in lookup rename cont to boduy fix error and add regression test Update src/relay/pass/partial_eval.cc Co-Authored-By: MarisaKirisame <lolisa@marisa.moe> fix error, add test case fix lint remove extra line fix some error pe commit save save save save save (pe/dce broken) [DOCKER] Pin flatbuffers checkout to the last release tag (apache#2823). (apache#2879) [Relay][Text Format] Reverse CallNode Print Order (apache#2882) [NNPACK] Modernize test (apache#2868) [Relay] Add list update to prelude (apache#2866) Add missing sgx includes (apache#2878) Fix setting up hints for getaddrinfo (apache#2872) [ARITH] RewriteSimplifier: improved cmp simplification (apache#2851) do (apache#2883) [RELAY][Frontend][TF] decompile tf control flow (apache#2830) * decompile tf control flow * Add docs * remove import relay * move tests under tensorflow frontend * minor fix Enhance upsample operator to adapt onnx opset version 9 (apache#2840) Use version invariant rustfmt (apache#2886) [Relay][Op] Add group conv2d dispatch to topi function (apache#2870) * [Relay][Op] Add group conv2d dispatch to topi function * Rerun tests [Apps] [howto_deploy] fix cxx-flags order and build directory (apache#2888) fix prelu, now can use on 2d input and add one test (apache#2875) Add dense schedules to __init__ for cpu (apache#2855) * Add dense schedules to __init__ for cpu * Add documentation for topi::shape * Add additional imports to topi CPU __init__. [TESTS] Improve script robustness (apache#2893) A number of test scripts use the '|| exit 1' idiom. This has two issues, first process exit codes are defined to be in the range 0-255. Second, more importantly, the idiom is fragile because it requires that every possible failure point be explicitly coded. This patch removes the idiom in favour of "set -e" as used in the docker scripts as a more robust mechanism to ensure that script failures are always caught and propagated by default. [Relay] Fix name of bias in testing.mlp (apache#2892) winograd_nnpack (apache#2721) [Relay] Fix Relay ARM CPU depthwise spatial pack schedule alter op layout issue. (apache#2861) * Fix Relay ARM CPU spatial pack depthwise alter op layout issue. * Update tune_relay_arm.py [TESTS] Import script robustness (set -u) (apache#2896) Adopt the "set -u" idiom from the docker scripts as a mechanism to improve future robustness. [DOCKER] Upgrade ci-cpu to latest v0.50 (apache#2901) Allow linking against MKLML (apache#2902) [COMMUNITY] ASF mentors (apache#2906) [Relay] Allow converting keras.layers.Sequential (apache#2842) * Allow converting keras.layers.Sequential * Use existing new_var function * Only update expr when missing * Add test [Relay] clean up hd, change tl (apache#2917) Turn on USE_SORT by default (apache#2916) [TEST] Cache test data (apache#2921) Unified error handling in NNVM and Relay frontends (apache#2828) add support for mxnet smooth_l1 (apache#2905) [Relay] Add support for TupleGetItem in op fusion (apache#2914) [Relay, TOPI] Deformable conv2d (apache#2908) * [Relay, TOPI] Add deformable conv2d * Moved to op level2 * Fix lint * Moved to level2 & bug fix * Update comments * Disabled flaky test of conv2d TVM debugresult dump to Chrome Tracing (apache#2922) [Relay] add test for second order ad (apache#2754) * do second order * add comment * better name * use tvm assert all close * refire ci Revert "[Relay] add test for second order ad (apache#2754)" (apache#2926) This reverts commit f5ca991. [Tutorial] Cache the test data in tutorial (apache#2923) [AUTOTVM] Refactor measure build func (apache#2927) Fix intersect of modular set (apache#2904) Fix comment bugs and code style [Relay, OpFusion] Fix handling TupleGetItem for nested tuples (apache#2929) Consistent result of DetectLinearEquation() when an empy vars is passed (apache#2860) [FRONTEND][ONNX] Some bug fixes and Shape operator fixed for relay. (apache#2850) * [FRONTEND][ONNX] Some bug fixes and Shape operator fixed for relay. * * test cases * * ci error Outdated renaming for flatten in ONNX converter (apache#2843) [FRONTEND][TENSORFLOW] bug fix for tensorflow official slim models. (apache#2864) * [FRONTEND][TENSORFLOW] bug fix for tensorflow official slim models. * * review comments Fix vcvtph2ps codegen (apache#2925) Port changes More fixes save save Changes to schedules and mxnet importer
1 parent 0634778 commit c9dfdf6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+1392
-876
lines changed

include/tvm/relay/expr.h

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,26 @@ class VarNode : public ExprNode {
184184

185185
RELAY_DEFINE_NODE_REF(Var, VarNode, Expr);
186186

187+
/*! \brief Hash Var by it's id.
188+
* Different VarNode might has same vid, and they are considered to be the same var in such case.
189+
* Use VarHash to hash Var by id.
190+
*/
191+
struct VarHash {
192+
size_t operator()(const Var& v) const {
193+
return v->vid.hash();
194+
}
195+
};
196+
197+
/*! \brief Compare Var by it's id.
198+
* Different VarNode might has same vid, and they are considered to be the same var in such case.
199+
* Use VarEqual to compare Var by id.
200+
*/
201+
struct VarEqual {
202+
bool operator()(const Var& l, const Var& r) const {
203+
return l->vid.get() == r->vid.get();
204+
}
205+
};
206+
187207
/*!
188208
* \brief Global variable that leaves in the top-level module.
189209
* This is used to enable recursive calls between function.
@@ -521,7 +541,7 @@ RELAY_DEFINE_NODE_REF(RefWrite, RefWriteNode, Expr);
521541
* rewriting pass such as layout or type transformation.
522542
*
523543
* Subclass TempExprNode allows us to pattern match on
524-
* specific kind TempExpr and use them for expression rewriting.
544+
* specific kind of TempExpr and use them for expression rewriting.
525545
*
526546
* TempExpr should only be used within a pass,
527547
*/
@@ -539,6 +559,25 @@ class TempExprNode : public ExprNode {
539559

540560
RELAY_DEFINE_NODE_REF(TempExpr, TempExprNode, Expr);
541561

562+
class Annotate;
563+
class AnnotateNode : public ExprNode {
564+
public:
565+
Expr expr;
566+
NodeRef annotation;
567+
void VisitAttrs(tvm::AttrVisitor* v) final {
568+
v->Visit("expr", &expr);
569+
v->Visit("annotation", &annotation);
570+
v->Visit("_checked_type_", &checked_type_);
571+
}
572+
573+
TVM_DLL static Annotate make(Expr expr, NodeRef annotation);
574+
575+
static constexpr const char* _type_key = "relay.AnnotateNode";
576+
TVM_DECLARE_NODE_TYPE_INFO(AnnotateNode, ExprNode);
577+
};
578+
579+
RELAY_DEFINE_NODE_REF(Annotate, AnnotateNode, Expr);
580+
542581
// implementataions
543582
inline const Type& ExprNode::checked_type() const {
544583
CHECK(checked_type_.defined()) << "internal error: the type checker has "

include/tvm/relay/expr_functor.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ class ExprFunctor<R(const Expr& n, Args...)> {
116116
virtual R VisitExpr_(const RefWriteNode* op, Args... args) EXPR_FUNCTOR_DEFAULT;
117117
virtual R VisitExpr_(const ConstructorNode* op, Args... args) EXPR_FUNCTOR_DEFAULT;
118118
virtual R VisitExpr_(const MatchNode* op, Args... args) EXPR_FUNCTOR_DEFAULT;
119+
virtual R VisitExpr_(const AnnotateNode* op, Args... args) EXPR_FUNCTOR_DEFAULT;
119120
virtual R VisitExprDefault_(const Node* op, Args...) {
120121
throw Error(std::string("Do not have a default for ") + op->type_key());
121122
}
@@ -140,6 +141,7 @@ class ExprFunctor<R(const Expr& n, Args...)> {
140141
RELAY_EXPR_FUNCTOR_DISPATCH(RefWriteNode);
141142
RELAY_EXPR_FUNCTOR_DISPATCH(ConstructorNode);
142143
RELAY_EXPR_FUNCTOR_DISPATCH(MatchNode);
144+
RELAY_EXPR_FUNCTOR_DISPATCH(AnnotateNode);
143145
return vtable;
144146
}
145147
};
@@ -170,6 +172,7 @@ class ExprVisitor
170172
void VisitExpr_(const RefWriteNode* op) override;
171173
void VisitExpr_(const ConstructorNode* op) override;
172174
void VisitExpr_(const MatchNode* op) override;
175+
void VisitExpr_(const AnnotateNode* op) override;
173176
virtual void VisitType(const Type& t);
174177
virtual void VisitClause(const Clause& c);
175178
virtual void VisitPattern(const Pattern& c);
@@ -212,6 +215,7 @@ class ExprMutator
212215
Expr VisitExpr_(const RefWriteNode* op) override;
213216
Expr VisitExpr_(const ConstructorNode* op) override;
214217
Expr VisitExpr_(const MatchNode* op) override;
218+
Expr VisitExpr_(const AnnotateNode* op) override;
215219

216220
/*!
217221
* \brief Used to visit the types inside of expressions.

0 commit comments

Comments
 (0)