Commit e23913f5 by Josh Pollock Committed by Tianqi Chen

[Relay][Text Format] Reverse CallNode Print Order (#2882)

parent 8a7f41ce
......@@ -416,11 +416,13 @@ class PrettyPrinter :
Doc VisitExpr_(const CallNode* op) final {
Doc doc;
doc << Print(op->op);
// visit args first so they are lifted before the op
// this places op closer to its call site
std::vector<Doc> args;
for (Expr arg : op->args) {
args.push_back(Print(arg));
}
doc << Print(op->op);
return doc << "(" << PrintVec(args) << PrintAttrs(op->attrs, op->op) << ")";
}
......
......@@ -3,9 +3,10 @@ import tvm.relay.testing
import numpy as np
from tvm import relay
do_print = [False]
SEMVER = "v0.0.1\n"
def show(text):
if do_print[0]:
print("---------------------------")
......@@ -152,6 +153,19 @@ def test_densenet():
net, params = tvm.relay.testing.densenet.get_workload(batch_size=1)
net.astext()
def test_call_node_order():
x = relay.var("x")
y = relay.var("y")
assert relay.Call(relay.Function([x], x), [relay.Call(relay.Function([y], y), [relay.const(1)])]).astext() == SEMVER + \
("%0 = fn (%y) {\n"
" %y\n"
"}\n"
"%1 = %0(1)\n"
"%2 = fn (%x) {\n"
" %x\n"
"}\n"
"%3 = %2(%1)\n"
"%3")
if __name__ == "__main__":
do_print[0] = True
......@@ -170,3 +184,4 @@ if __name__ == "__main__":
test_call_attrs()
test_let_if_scope()
test_variable_name()
test_call_node_order()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment