From 7e6eb7ce58e2e5a346e5c27e8d9a6a5155640724 Mon Sep 17 00:00:00 2001 From: JanLJL Date: Tue, 7 Mar 2023 17:05:31 +0100 Subject: [PATCH] bugfix, resolved #90 --- osaca/semantics/kernel_dg.py | 4 +--- tests/test_files/kernel_aarch64.s | 1 + tests/test_semantics.py | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/osaca/semantics/kernel_dg.py b/osaca/semantics/kernel_dg.py index 8424177..7ea8fd3 100755 --- a/osaca/semantics/kernel_dg.py +++ b/osaca/semantics/kernel_dg.py @@ -272,9 +272,7 @@ class KernelDG(nx.DiGraph): # print(" TO", instr_form.line, register_changes) if "register" in dst: # read of register - if self.is_read(dst.register, instr_form) and not ( - dst.get("pre_indexed", False) or dst.get("post_indexed", False) - ): + if self.is_read(dst.register, instr_form): yield instr_form, [] # write to register -> abort if self.is_written(dst.register, instr_form): diff --git a/tests/test_files/kernel_aarch64.s b/tests/test_files/kernel_aarch64.s index 7e4b87a..22d2bc7 100644 --- a/tests/test_files/kernel_aarch64.s +++ b/tests/test_files/kernel_aarch64.s @@ -23,3 +23,4 @@ // OSACA-END fmov s1, #2.0e+2f prfm pldl1keep, [x26, #2112] + add x11, x11, x11 diff --git a/tests/test_semantics.py b/tests/test_semantics.py index 35daf47..7d539a9 100755 --- a/tests/test_semantics.py +++ b/tests/test_semantics.py @@ -369,7 +369,7 @@ class TestSemanticTools(unittest.TestCase): self.assertTrue(nx.algorithms.dag.is_directed_acyclic_graph(dg.dg)) self.assertEqual(set(dg.get_dependent_instruction_forms(line_number=3)), {7, 8}) self.assertEqual(set(dg.get_dependent_instruction_forms(line_number=4)), {9, 10}) - self.assertEqual(set(dg.get_dependent_instruction_forms(line_number=5)), {7, 8}) + self.assertEqual(set(dg.get_dependent_instruction_forms(line_number=5)), {6, 7, 8}) self.assertEqual(set(dg.get_dependent_instruction_forms(line_number=6)), {9, 10}) self.assertEqual(next(dg.get_dependent_instruction_forms(line_number=7)), 13) self.assertEqual(next(dg.get_dependent_instruction_forms(line_number=8)), 14) @@ -438,7 +438,7 @@ class TestSemanticTools(unittest.TestCase): self.semantics_tx2, ) lc_deps = dg.get_loopcarried_dependencies() - self.assertEqual(len(lc_deps), 2) + self.assertEqual(len(lc_deps), 4) # based on line 6 self.assertEqual(lc_deps[6]["latency"], 28.0) self.assertEqual(