提交 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): ...@@ -599,7 +599,9 @@ class ReplaceValidate(History, Validator):
raise raise
if verbose: 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 # The return is needed by replace_all_validate_remove
return chk return chk
......
...@@ -513,7 +513,9 @@ class FunctionGraph(MetaObject): ...@@ -513,7 +513,9 @@ class FunctionGraph(MetaObject):
if verbose is None: if verbose is None:
verbose = config.optimizer_verbose verbose = config.optimizer_verbose
if 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) new_var = var.type.filter_variable(new_var, allow_convert=True)
......
...@@ -1274,7 +1274,9 @@ class LocalOptGroup(LocalOptimizer): ...@@ -1274,7 +1274,9 @@ class LocalOptGroup(LocalOptimizer):
new_vars = list(new_repl.values()) new_vars = list(new_repl.values())
if config.optimizer_verbose: 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: if self.profile:
self.node_created[opt] += len( self.node_created[opt] += len(
......
...@@ -102,7 +102,10 @@ class TestReplaceValidate: ...@@ -102,7 +102,10 @@ class TestReplaceValidate:
capres = capsys.readouterr() capres = capsys.readouterr()
assert capres.err == "" 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): class TestFeature(Feature):
def validate(self, *args): def validate(self, *args):
......
...@@ -267,7 +267,10 @@ class TestFunctionGraph: ...@@ -267,7 +267,10 @@ class TestFunctionGraph:
capres = capsys.readouterr() capres = capsys.readouterr()
assert capres.err == "" 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): def test_replace_circular(self):
"""`FunctionGraph` allows cycles--for better or worse.""" """`FunctionGraph` allows cycles--for better or worse."""
......
...@@ -701,11 +701,11 @@ class TestLocalOptGroup: ...@@ -701,11 +701,11 @@ class TestLocalOptGroup:
capres = capsys.readouterr() capres = capsys.readouterr()
assert capres.err == "" assert capres.err == ""
assert ( 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 in capres.out
) )
assert ( 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 in capres.out
) )
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论