Skip to content

Commit 2a80009

Browse files
committed
make py module independent
1 parent 598bf33 commit 2a80009

File tree

5 files changed

+15
-6
lines changed

5 files changed

+15
-6
lines changed

src/kirin/analysis/forward.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ def __init__(
2727
dialects: ir.DialectGroup | Iterable[ir.Dialect],
2828
*,
2929
fuel: int | None = None,
30+
save_all_ssa: bool = False,
3031
max_depth: int = 128,
3132
max_python_recursion_depth: int = 8192,
3233
):
@@ -36,7 +37,8 @@ def __init__(
3637
max_depth=max_depth,
3738
max_python_recursion_depth=max_python_recursion_depth,
3839
)
39-
self.results = {}
40+
self.save_all_ssa = save_all_ssa
41+
self.results: dict[ir.SSAValue, LatticeElemType] = {}
4042

4143
def set_values(
4244
self,
@@ -55,7 +57,10 @@ def finalize(
5557
frame: ForwardFrame[LatticeElemType, ExtraType],
5658
results: MethodResult[LatticeElemType],
5759
) -> MethodResult[LatticeElemType]:
58-
self.results = frame.entries
60+
if self.save_all_ssa:
61+
self.results.update(frame.entries)
62+
else:
63+
self.results = frame.entries
5964
return results
6065

6166
def new_frame(self, code: ir.Statement) -> ForwardFrame[LatticeElemType, ExtraType]:

src/kirin/decl/emit/from_python_call.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from kirin.lowering import Result, LoweringState
77
from kirin.decl.base import BaseModifier, StatementOptions
88
from kirin.exceptions import DialectLoweringError
9-
from kirin.dialects.py import data
109

1110
from ._create_fn import create_fn
1211
from ._set_new_attribute import set_new_attribute
@@ -29,6 +28,8 @@ class EmitFromPythonCall(BaseModifier):
2928
_AST_CONSTANT = "_kirin_ast_Constant"
3029

3130
def __init__(self, cls: type, **kwargs: Unpack[StatementOptions]) -> None:
31+
from kirin.dialects.py import data
32+
3233
super().__init__(cls, **kwargs)
3334
self.globals[self._KIRIN_RESULT] = Result
3435
self.globals[self._KIRIN_PYATTR] = data.PyAttr

src/kirin/decl/emit/init.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from kirin import ir
77
from kirin.decl import info
88
from kirin.decl.base import BaseModifier, StatementOptions
9-
from kirin.dialects.py.data import PyAttr
109

1110
from ._create_fn import create_fn
1211
from ._set_new_attribute import set_new_attribute
@@ -30,6 +29,8 @@ class EmitInit(BaseModifier):
3029

3130
def __init__(self, cls: type, **kwargs: Unpack[StatementOptions]) -> None:
3231
super().__init__(cls, **kwargs)
32+
from kirin.dialects.py.data import PyAttr
33+
3334
self._init_params: list[str] = []
3435
self._init_body: list[str] = []
3536
self._init_locals: dict[str, Any] = {}

src/kirin/decl/emit/property.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from kirin import ir
22
from kirin.decl import info
3-
from kirin.dialects.py import data
43
from kirin.decl.emit.init import BaseModifier
54

65
from ._create_fn import create_fn
@@ -112,6 +111,8 @@ def _emit_result_property(self, index: int, f: info.ResultField):
112111
return getter, setter
113112

114113
def _emit_attribute_property(self, f: info.AttributeField):
114+
from kirin.dialects.py import data
115+
115116
storage = "properties" if f.property else "attributes"
116117
attr = f"{self._self_name}.{storage}['{f.name}']"
117118
getter = create_fn(

src/kirin/dialects/py/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
# from . import data as data, stmts as stmts
1+
from . import data as data, stmts as stmts
2+
23
# from kirin.dialects.pytypes import types as types
34
# from kirin.dialects.pytypes.data import PyAttr as PyAttr
45
# from kirin.dialects.pytypes.types.base import (

0 commit comments

Comments
 (0)