提交 dd6da53d authored 作者: Brandon T. Willard's avatar Brandon T. Willard 提交者: Brandon T. Willard

Print nodes in verbose optimization output

上级 8509cd13
......@@ -599,7 +599,9 @@ class ReplaceValidate(History, Validator):
raise
if verbose:
print(f"optimizer: rewrite {reason} replaces {r} with {new_r}")
print(
f"optimizer: rewrite {reason} replaces {r} of {r.owner} with {new_r} of {new_r.owner}"
)
# The return is needed by replace_all_validate_remove
return chk
......
......@@ -513,7 +513,9 @@ class FunctionGraph(MetaObject):
if verbose is None:
verbose = config.optimizer_verbose
if verbose:
print(f"optimizer: rewrite {reason} replaces {var} with {new_var}")
print(
f"optimizer: rewrite {reason} replaces {var} of {var.owner} with {new_var} of {new_var.owner}"
)
new_var = var.type.filter_variable(new_var, allow_convert=True)
......
......@@ -1274,7 +1274,9 @@ class LocalOptGroup(LocalOptimizer):
new_vars = list(new_repl.values())
if config.optimizer_verbose:
print(f"optimizer: rewrite {opt} replaces {node} with {new_repl}")
print(
f"optimizer: rewrite {opt} replaces node {node} with {new_repl}"
)
if self.profile:
self.node_created[opt] += len(
......
......@@ -102,7 +102,10 @@ class TestReplaceValidate:
capres = capsys.readouterr()
assert capres.err == ""
assert "optimizer: rewrite test-reason replaces Op1.0 with var1" in capres.out
assert (
"optimizer: rewrite test-reason replaces Op1.0 of Op1(var2, var1) with var1 of None"
in capres.out
)
class TestFeature(Feature):
def validate(self, *args):
......
......@@ -267,7 +267,10 @@ class TestFunctionGraph:
capres = capsys.readouterr()
assert capres.err == ""
assert "optimizer: rewrite test-reason replaces Op1.0 with var1" in capres.out
assert (
"optimizer: rewrite test-reason replaces Op1.0 of Op1(var2, var1) with var1 of None"
in capres.out
)
def test_replace_circular(self):
"""`FunctionGraph` allows cycles--for better or worse."""
......
......@@ -701,11 +701,11 @@ class TestLocalOptGroup:
capres = capsys.readouterr()
assert capres.err == ""
assert (
"optimizer: rewrite local_opt_1 replaces Op1(x, y) with [Op2.0]"
"optimizer: rewrite local_opt_1 replaces node Op1(x, y) with [Op2.0]"
in capres.out
)
assert (
"optimizer: rewrite local_opt_2 replaces Op2(y, y) with [Op2.0]"
"optimizer: rewrite local_opt_2 replaces node Op2(y, y) with [Op2.0]"
in capres.out
)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论