Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions devito/passes/iet/misc.py
Original file line number Diff line number Diff line change
Expand Up @@ -347,9 +347,11 @@ def _(iet):
def _(iet):
# SubDimensions in the main loop nests
mapper = {}

trees = retrieve_iteration_tree(iet)
# Build a mapper replacing SubDimension names with respective root dimension
# names where possible
for tree in retrieve_iteration_tree(iet):
for tree in trees:
# Rename SubDimensions present as indices in innermost loop
mapper.update(_rename_subdims(tree.inner, tree.dimensions))

Expand All @@ -358,10 +360,12 @@ def _(iet):
dims = [d for d in dims if d.is_Incr and d.parent in mapper]
mapper.update({d: d._rebuild(parent=mapper[d.parent]) for d in dims})

# Update parents of CIRE-generated ModuloDimensions
dims = FindSymbols('dimensions').visit(tree)
dims = [d for d in dims if d.is_Modulo and d.parent in mapper]
mapper.update({d: d._rebuild(parent=mapper[d.parent]) for d in dims})
# Update parents of CIRE-generated ModuloDimensions
roots = {tree.root for tree in trees}
mds = {d for root in roots for d in FindSymbols('dimensions').visit(root)
if d.is_Modulo}
mapper.update({d: d._rebuild(parent=mapper[d.parent])
for d in mds if d.parent in mapper})

return Uxreplace(mapper, nested=True).visit(iet)

Expand Down
Loading