Skip to content

Commit 9a0b84b

Browse files
Merge pull request #2543 from devitocodes/hotfix-determinism
compiler: Fixup deterministic codegen
2 parents 8321193 + 11af483 commit 9a0b84b

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

devito/passes/iet/misc.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,11 +148,12 @@ def _generate_macros(iet, tracker=None, **kwargs):
148148
# Derive the Macros necessary for the FIndexeds
149149
iet = _generate_macros_findexeds(iet, tracker=tracker, **kwargs)
150150

151+
# NOTE: sorting is necessary to ensure deterministic code generation
151152
headers = [i.header for i in tracker.values()]
152153
headers = sorted((ccode(define), ccode(expr)) for define, expr in headers)
153154

154155
# Generate Macros from higher-level SymPy objects
155-
headers.extend(_generate_macros_math(iet))
156+
headers.extend(sorted(_generate_macros_math(iet), key=str))
156157

157158
# Remove redundancies while preserving the order
158159
headers = filter_ordered(headers)

0 commit comments

Comments
 (0)