From a9e7bb198078414bb5fd18d67c0dc55b625769fb Mon Sep 17 00:00:00 2001
From: Alexandru Fikl <alexfikl@gmail.com>
Date: Mon, 11 Apr 2022 15:12:22 -0500
Subject: [PATCH] m2l: add dependencies for inlined e2e kernel

---
 sumpy/e2e.py | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/sumpy/e2e.py b/sumpy/e2e.py
index 8bcd346e..eba1e581 100644
--- a/sumpy/e2e.py
+++ b/sumpy/e2e.py
@@ -424,8 +424,9 @@ class M2LUsingTranslationClassesDependentData(E2EFromCSR):
                                 {id=read_src_ibox}
                         <> translation_class = \
                                 m2l_translation_classes_lists[isrc_box]
-                        <> translation_class_rel = translation_class - \
-                                                    translation_classes_level_start
+                        <> translation_class_rel = \
+                                translation_class - translation_classes_level_start \
+                                {id=translation_offset}
                         [icoeff_tgt]: coeffs[icoeff_tgt] = e2e(
                             [icoeff_tgt]: coeffs[icoeff_tgt],
                             [icoeff_src]: src_expansions[src_ibox - src_base_ibox,
@@ -465,7 +466,7 @@ class M2LUsingTranslationClassesDependentData(E2EFromCSR):
                         offset=lp.auto),
                     lp.ValueArg("ntranslation_classes, ntranslation_classes_lists",
                         np.int32),
-                    "..."
+                    ...
                 ] + gather_loopy_arguments([self.src_expansion,
                                             self.tgt_expansion]),
                 name=self.name,
@@ -481,6 +482,10 @@ class M2LUsingTranslationClassesDependentData(E2EFromCSR):
 
         loopy_knl = lp.merge([translation_knl, loopy_knl])
         loopy_knl = lp.inline_callable_kernel(loopy_knl, "e2e")
+        loopy_knl = lp.add_dependency(
+                loopy_knl, "id:e2e_insn*", "read_src_ibox")
+        loopy_knl = lp.add_dependency(
+                loopy_knl, "id:e2e_insn*", "translation_offset")
 
         for knl in [self.src_expansion.kernel, self.tgt_expansion.kernel]:
             loopy_knl = knl.prepare_loopy_kernel(loopy_knl)
-- 
GitLab