From 4e8c0eeaae42d947d8022ad0d7107e819a6fa80c Mon Sep 17 00:00:00 2001
From: Stephan Seitz <stephan.seitz@fau.de>
Date: Fri, 11 Sep 2020 09:17:45 +0200
Subject: [PATCH] Try to generate more swaps

---
 src/pystencils_autodiff/graph_datahandling.py | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/pystencils_autodiff/graph_datahandling.py b/src/pystencils_autodiff/graph_datahandling.py
index 8768edc..b6d0340 100644
--- a/src/pystencils_autodiff/graph_datahandling.py
+++ b/src/pystencils_autodiff/graph_datahandling.py
@@ -93,9 +93,18 @@ class Communication(DataTransfer):
 
 class KernelCall:
     def __init__(self, kernel: pystencils.kernel_wrapper.KernelWrapper, kwargs, tmp_field_swaps=[]):
+        tmp = None
+        src = None
+        for f in kernel.ast.fields_accessed:
+            if 'pdfTmp' in f.name:
+                tmp = f
+            if 'pdfSrc' in f.name:
+                src = f
         self.kernel = kernel
         self.kwargs = kwargs
         self.tmp_field_swaps = tmp_field_swaps
+        if tmp and src:
+            self.tmp_field_swaps.append((src, tmp))
 
     def __str__(self):
         return "Call " + str(self.kernel.ast.function_name)
-- 
GitLab