提交 26f5b30b authored 作者: slefrancois's avatar slefrancois

add comp_args option to compiler try_ methods

上级 15a1693b
...@@ -1713,7 +1713,8 @@ class Compiler(object): ...@@ -1713,7 +1713,8 @@ class Compiler(object):
@classmethod @classmethod
def _try_compile_tmp(cls, src_code, tmp_prefix='', flags=(), def _try_compile_tmp(cls, src_code, tmp_prefix='', flags=(),
try_run=False, output=False, compiler=None): try_run=False, output=False, compiler=None,
comp_args=True):
""" """
Try to compile (and run) a test program. Try to compile (and run) a test program.
...@@ -1727,12 +1728,17 @@ class Compiler(object): ...@@ -1727,12 +1728,17 @@ class Compiler(object):
If try_run is True, returns a (compile_status, run_status) pair. If try_run is True, returns a (compile_status, run_status) pair.
If output is there, we append the stdout and stderr to the output. If output is there, we append the stdout and stderr to the output.
Compile arguments from the Compiler's compile_args() method are added
if comp_args=True.
""" """
if not compiler: if not compiler:
return False return False
flags = list(flags) flags = list(flags)
# Get compile arguments from compiler method # Get compile arguments from compiler method if required
if comp_args:
args = cls.compile_args() args = cls.compile_args()
else:
args = []
compilation_ok = True compilation_ok = True
run_ok = False run_ok = False
out, err = None, None out, err = None, None
...@@ -1784,13 +1790,17 @@ class Compiler(object): ...@@ -1784,13 +1790,17 @@ class Compiler(object):
@classmethod @classmethod
def _try_flags(cls, flag_list, preambule="", body="", def _try_flags(cls, flag_list, preambule="", body="",
try_run=False, output=False, compiler=None): try_run=False, output=False, compiler=None,
comp_args=True):
""" """
Try to compile a dummy file with these flags. Try to compile a dummy file with these flags.
Returns True if compilation was successful, False if there Returns True if compilation was successful, False if there
were errors. were errors.
Compile arguments from the Compiler's compile_args() method are added
if comp_args=True.
""" """
if not compiler: if not compiler:
return False return False
...@@ -1805,7 +1815,8 @@ class Compiler(object): ...@@ -1805,7 +1815,8 @@ class Compiler(object):
""" % locals()) """ % locals())
return cls._try_compile_tmp(code, tmp_prefix='try_flags_', return cls._try_compile_tmp(code, tmp_prefix='try_flags_',
flags=flag_list, try_run=try_run, flags=flag_list, try_run=try_run,
output=output, compiler=compiler) output=output, compiler=compiler,
comp_args=comp_args)
def try_march_flag(flags): def try_march_flag(flags):
...@@ -2161,16 +2172,16 @@ class GCC_compiler(Compiler): ...@@ -2161,16 +2172,16 @@ class GCC_compiler(Compiler):
@classmethod @classmethod
def try_compile_tmp(cls, src_code, tmp_prefix='', flags=(), def try_compile_tmp(cls, src_code, tmp_prefix='', flags=(),
try_run=False, output=False): try_run=False, output=False, comp_args=True):
return cls._try_compile_tmp(src_code, tmp_prefix, flags, return cls._try_compile_tmp(src_code, tmp_prefix, flags,
try_run, output, try_run, output, theano.config.cxx,
theano.config.cxx) comp_args)
@classmethod @classmethod
def try_flags(cls, flag_list, preambule="", body="", def try_flags(cls, flag_list, preambule="", body="",
try_run=False, output=False): try_run=False, output=False, comp_args=True):
return cls._try_flags(flag_list, preambule, body, try_run, output, return cls._try_flags(flag_list, preambule, body, try_run, output,
theano.config.cxx) theano.config.cxx, comp_args)
@staticmethod @staticmethod
def compile_str(module_name, src_code, location=None, def compile_str(module_name, src_code, location=None,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论