We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 3948ea7 + 80d1378 commit f42c7d3Copy full SHA for f42c7d3
1 file changed
devito/ir/support/syncs.py
@@ -3,6 +3,7 @@
3
"""
4
5
from collections import defaultdict
6
+from functools import cached_property
7
8
from devito.data import FULL
9
from devito.tools import Pickable, as_tuple, filter_ordered, frozendict
@@ -163,6 +164,21 @@ def update(self, ops):
163
164
m[d] = set(self.get(d, [])) | set(v)
165
return Ops(m)
166
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
182
183
def normalize_syncs(*args, strict=True):
184
if not args:
0 commit comments