提交 42d0d661 authored 作者: Ricardo Vieira's avatar Ricardo Vieira 提交者: Ricardo Vieira

Define more linker requirements

上级 1963f39b
......@@ -283,6 +283,9 @@ class PerformLinker(LocalLinker):
"""
required_rewrites: tuple[str, ...] = ("minimum_compile", "py_only")
incompatible_rewrites: tuple[str, ...] = ("cxx",)
def __init__(
self, allow_gc: bool | None = None, schedule: Callable | None = None
) -> None:
......@@ -584,6 +587,9 @@ class JITLinker(PerformLinker):
"""
required_rewrites: tuple[str, ...] = ("minimum_compile",)
incompatible_rewrites: tuple[str, ...] = ()
@abstractmethod
def fgraph_convert(
self, fgraph, order, input_storage, output_storage, storage_map, **kwargs
......
......@@ -812,6 +812,10 @@ class VMLinker(LocalLinker):
"""
# We can only set these correctly after `__init__`, as it depends on `c_thunks`
required_rewrites: tuple[str, ...] = ("minimum_compile",)
incompatible_rewrites: tuple[str, ...] = ()
def __init__(
self,
allow_gc=None,
......@@ -834,6 +838,9 @@ class VMLinker(LocalLinker):
self.lazy = lazy
if c_thunks is None:
c_thunks = bool(config.cxx)
if not c_thunks:
self.required_rewrites: tuple[str, ...] = ("minimum_compile", "py_only")
self.incompatible_rewrites: tuple[str, ...] = ("cxx",)
self.c_thunks = c_thunks
self.allow_partial_eval = allow_partial_eval
self.updated_vars = {}
......
......@@ -56,11 +56,12 @@ def test_NoOutputFromInplace():
def test_including():
mode = Mode(linker="py", optimizer="merge")
assert set(mode._optimizer.include) == {"minimum_compile", "merge"}
assert set(mode._optimizer.include) == {"minimum_compile", "py_only", "merge"}
new_mode = mode.including("fast_compile")
assert set(new_mode._optimizer.include) == {
"minimum_compile",
"py_only",
"merge",
"fast_compile",
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论