-
Notifications
You must be signed in to change notification settings - Fork 231
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
compiler: Introduce symbolic fencing #2244
Changes from all commits
f3e5b40
eeb2851
28d45a0
feba247
685689c
21b418e
d3fc517
a042071
4d39624
7cb01cf
a0084f0
a000c49
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,6 +5,7 @@ | |
from devito.ir.clusters import Cluster, ClusterGroup, Queue, cluster_pass | ||
from devito.ir.support import (SEQUENTIAL, SEPARABLE, Scope, ReleaseLock, | ||
WaitLock, WithLock, FetchUpdate, PrefetchUpdate) | ||
from devito.passes.clusters.utils import in_critical_region | ||
from devito.symbolics import pow_to_mul | ||
from devito.tools import DAG, Stamp, as_tuple, flatten, frozendict, timed_pass | ||
from devito.types import Hyperplane | ||
|
@@ -44,8 +45,9 @@ def callback(self, clusters, prefix): | |
processed.append(c) | ||
continue | ||
|
||
# Synchronization operations prevent lifting | ||
if c.syncs.get(dim): | ||
# Synchronization prevents lifting | ||
if c.syncs.get(dim) or \ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Does this get too long as one line? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I do the splitting on purpose for clarity when I feel there's (relatively speaking) little correlation between the two operands of the relation |
||
in_critical_region(c, clusters): | ||
processed.append(c) | ||
continue | ||
|
||
|
@@ -262,7 +264,7 @@ def dump(): | |
|
||
groups, processed = processed, [] | ||
for group in groups: | ||
for flag, minigroup in groupby(group, key=lambda c: c.is_halo_touch): | ||
for flag, minigroup in groupby(group, key=lambda c: c.is_wild): | ||
if flag: | ||
processed.extend([(c,) for c in minigroup]) | ||
else: | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Extra f on "iff"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if and only if?