From 446868a34bb4220f194cd38b172c10e2f4dc6074 Mon Sep 17 00:00:00 2001
From: Rafael Ravedutti <rafaelravedutti@gmail.com>
Date: Tue, 25 Oct 2022 02:10:16 +0200
Subject: [PATCH] Fix inline expressions generated in pack/unpack routines

Signed-off-by: Rafael Ravedutti <rafaelravedutti@gmail.com>
---
 src/pairs/sim/comm.py                | 4 ++--
 src/pairs/transformations/devices.py | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/pairs/sim/comm.py b/src/pairs/sim/comm.py
index 5bd9e47..b2dd3c2 100644
--- a/src/pairs/sim/comm.py
+++ b/src/pairs/sim/comm.py
@@ -199,7 +199,7 @@ class PackGhostParticles(Lowerable):
 
         step_indexes = self.comm.dom_part.step_indexes(self.step)
         start = self.comm.send_offsets[step_indexes[0]]
-        for i in For(self.sim, start, start + sum([self.comm.nsend[j] for j in step_indexes])):
+        for i in For(self.sim, start, BinOp.inline(start + sum([self.comm.nsend[j] for j in step_indexes]))):
             p_offset = 0
             m = send_map[i]
             for p in self.prop_list:
@@ -239,7 +239,7 @@ class UnpackGhostParticles(Lowerable):
 
         step_indexes = self.comm.dom_part.step_indexes(self.step)
         start = self.comm.recv_offsets[step_indexes[0]]
-        for i in For(self.sim, start, start + sum([self.comm.nrecv[j] for j in step_indexes])):
+        for i in For(self.sim, start, BinOp.inline(start + sum([self.comm.nrecv[j] for j in step_indexes]))):
             p_offset = 0
             for p in self.prop_list:
                 if p.type() == Types.Vector:
diff --git a/src/pairs/transformations/devices.py b/src/pairs/transformations/devices.py
index b77a0d4..689a72c 100644
--- a/src/pairs/transformations/devices.py
+++ b/src/pairs/transformations/devices.py
@@ -116,6 +116,9 @@ class AddHostReferencesToModules(Mutator):
 
         return ast_node
 
+    def mutate_Decl(self, ast_node):
+        return ast_node
+
     def mutate_HostRef(self, ast_node):
         return ast_node
 
-- 
GitLab