Skip to content

Commit f42c7d3

Browse files
Merge pull request #2576 from devitocodes/hotfix-parlang-lowering
compiler: Enrich Ops data structure
2 parents 3948ea7 + 80d1378 commit f42c7d3

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

devito/ir/support/syncs.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"""
44

55
from collections import defaultdict
6+
from functools import cached_property
67

78
from devito.data import FULL
89
from devito.tools import Pickable, as_tuple, filter_ordered, frozendict
@@ -163,6 +164,21 @@ def update(self, ops):
163164
m[d] = set(self.get(d, [])) | set(v)
164165
return Ops(m)
165166

167+
def _get_sync(self, cls, dims=None):
168+
if dims is None:
169+
dims = list(self)
170+
for d in dims:
171+
for s in self.get(d, []):
172+
if isinstance(s, cls):
173+
# NOTE: Remember there can only be one SyncOp of a given
174+
# type per `Ops` object
175+
return s
176+
return None
177+
178+
@cached_property
179+
def initarray(self):
180+
return self._get_sync(InitArray)
181+
166182

167183
def normalize_syncs(*args, strict=True):
168184
if not args:

0 commit comments

Comments
 (0)