Skip to content

Commit 73616ee

Browse files
committed
Adds just the framework for integral loops
1 parent 0755385 commit 73616ee

File tree

6 files changed

+924
-395
lines changed

6 files changed

+924
-395
lines changed

dace/sdfg/infer_types.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def infer_connector_types(sdfg: SDFG):
6161
:param sdfg: The SDFG to infer.
6262
"""
6363
# Loop over states, and in a topological sort over each state's nodes
64-
for state in sdfg.nodes():
64+
for state in sdfg.states():
6565
for node in dfs_topological_sort(state):
6666
# Try to infer input connector type from node type or previous edges
6767
for e in state.in_edges(node):
@@ -167,7 +167,7 @@ def set_default_schedule_and_storage_types(scope: Union[SDFG, SDFGState, nodes.E
167167

168168
if isinstance(scope, SDFG):
169169
# Set device for default top-level schedules and storages
170-
for state in scope.nodes():
170+
for state in scope.states():
171171
set_default_schedule_and_storage_types(state,
172172
parent_schedules,
173173
use_parent_schedule=use_parent_schedule,

dace/sdfg/nodes.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -262,9 +262,8 @@ def label(self):
262262
def __label__(self, sdfg, state):
263263
return self.data
264264

265-
def desc(self, sdfg):
266-
from dace.sdfg import SDFGState, ScopeSubgraphView
267-
if isinstance(sdfg, (SDFGState, ScopeSubgraphView)):
265+
def desc(self, sdfg: Union['dace.sdfg.SDFG', 'dace.sdfg.SDFGState', 'dace.sdfg.ScopeSubgraphView']):
266+
if isinstance(sdfg, dace.sdfg.SDFG):
268267
sdfg = sdfg.parent
269268
return sdfg.arrays[self.data]
270269

dace/sdfg/replace.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -175,17 +175,18 @@ def replace_datadesc_names(sdfg, repl: Dict[str, str]):
175175
sdfg.constants_prop[repl[aname]] = sdfg.constants_prop[aname]
176176
del sdfg.constants_prop[aname]
177177

178-
# Replace in interstate edges
179-
for e in sdfg.edges():
180-
e.data.replace_dict(repl, replace_keys=False)
181-
182-
for state in sdfg.nodes():
183-
# Replace in access nodes
184-
for node in state.data_nodes():
185-
if node.data in repl:
186-
node.data = repl[node.data]
187-
188-
# Replace in memlets
189-
for edge in state.edges():
190-
if edge.data.data in repl:
191-
edge.data.data = repl[edge.data.data]
178+
for cf in sdfg.all_state_scopes_recursive():
179+
# Replace in interstate edges
180+
for e in cf.edges():
181+
e.data.replace_dict(repl, replace_keys=False)
182+
183+
for block in cf.nodes():
184+
if isinstance(block, dace.SDFGState):
185+
# Replace in access nodes
186+
for node in block.data_nodes():
187+
if node.data in repl:
188+
node.data = repl[node.data]
189+
# Replace in memlets
190+
for edge in block.edges():
191+
if edge.data.data in repl:
192+
edge.data.data = repl[edge.data.data]

0 commit comments

Comments
 (0)