提交 d621b81a authored 作者: Frederic Bastien's avatar Frederic Bastien

Add by default the ReplaceValidate env feature. This make the code 10% faster in DebugMode.

上级 de2fba8d
...@@ -98,6 +98,7 @@ class Env(utils.object2): ...@@ -98,6 +98,7 @@ class Env(utils.object2):
for f in features: for f in features:
self.extend(f) self.extend(f)
self.extend(toolbox.ReplaceValidate())
for input in self.inputs: for input in self.inputs:
if input.owner is not None: if input.owner is not None:
......
...@@ -92,7 +92,9 @@ class FromFunctionOptimizer(Optimizer): ...@@ -92,7 +92,9 @@ class FromFunctionOptimizer(Optimizer):
def __init__(self, fn): def __init__(self, fn):
self.apply = fn self.apply = fn
def add_requirements(self, env): def add_requirements(self, env):
env.extend(toolbox.ReplaceValidate()) # Added by default
#env.extend(toolbox.ReplaceValidate())
pass
def print_summary(self, stream=sys.stdout, level=0): def print_summary(self, stream=sys.stdout, level=0):
print >> stream, "%s%s id=%i" %(' '*level, print >> stream, "%s%s id=%i" %(' '*level,
...@@ -252,7 +254,9 @@ class MergeOptimizer(Optimizer): ...@@ -252,7 +254,9 @@ class MergeOptimizer(Optimizer):
self.skip_const_merge = skip_const_merge self.skip_const_merge = skip_const_merge
def add_requirements(self, env): def add_requirements(self, env):
env.extend(toolbox.ReplaceValidate()) # Added by default
#env.extend(toolbox.ReplaceValidate())
pass
def apply_constant_merge(self, env): def apply_constant_merge(self, env):
seen_constants = set() seen_constants = set()
...@@ -421,7 +425,9 @@ class LocalOptimizer(object): ...@@ -421,7 +425,9 @@ class LocalOptimizer(object):
def add_requirements(self, env): def add_requirements(self, env):
"""If this local optimization wants to add some requirements to the env, """If this local optimization wants to add some requirements to the env,
This is the place to do it.""" This is the place to do it."""
env.extend(toolbox.ReplaceValidate()) # Added by default
#env.extend(toolbox.ReplaceValidate())
pass
def print_summary(self, stream=sys.stdout, level=0): def print_summary(self, stream=sys.stdout, level=0):
print >> stream, "%s%s id=%i" %(' '*level, self.__class__.__name__, id(self)) print >> stream, "%s%s id=%i" %(' '*level, self.__class__.__name__, id(self))
...@@ -908,7 +914,8 @@ class NavigatorOptimizer(Optimizer): ...@@ -908,7 +914,8 @@ class NavigatorOptimizer(Optimizer):
def add_requirements(self, env): def add_requirements(self, env):
super(NavigatorOptimizer, self).add_requirements(env) super(NavigatorOptimizer, self).add_requirements(env)
env.extend(toolbox.ReplaceValidate()) # Added by default
#env.extend(toolbox.ReplaceValidate())
if self.local_opt: if self.local_opt:
self.local_opt.add_requirements(env) self.local_opt.add_requirements(env)
...@@ -989,7 +996,7 @@ class OpKeyOptimizer(NavigatorOptimizer): ...@@ -989,7 +996,7 @@ class OpKeyOptimizer(NavigatorOptimizer):
""" """
Requires the following features: Requires the following features:
- NodeFinder - NodeFinder
- ReplaceValidate - ReplaceValidate(Added by default)
""" """
super(OpKeyOptimizer, self).add_requirements(env) super(OpKeyOptimizer, self).add_requirements(env)
env.extend(toolbox.NodeFinder()) env.extend(toolbox.NodeFinder())
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论