Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The method
dace.sdfg.graph.Graph.dfs_edges
avoids cycles by keeping track of visited nodes (SDFGStates). While iterating over the out-edges of a node, if the destination has already been visited, it skips it. However, the edge should still be yielded, otherwise, not all of them will be returned. For example, the former algorithm skips the back-edge leading from the body of a for-loop to its guard.UPDATE: To fix a (newly) failing test, this PR also amends
InterstateEdge.new_symbols
to return only newly defined symbols. For example, if the InterstateEdge consists of the assignmenti = i + 1
,InterstateEdge.new_symbols
will not returni
any longer. The method uses the same algorithm asInterstateEdge.free_symbols
to infer which symbols are actually defined.