From 6c7492ee534e62a16f6b88a0b10385d92e51b102 Mon Sep 17 00:00:00 2001 From: Frederik Hennig <frederik.hennig@fau.de> Date: Thu, 7 Nov 2024 08:54:55 +0100 Subject: [PATCH] Fix AST cloning in loop vectorizer. Add missing docstring. --- src/pystencils/backend/ast/vector.py | 2 ++ src/pystencils/backend/transformations/loop_vectorizer.py | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/pystencils/backend/ast/vector.py b/src/pystencils/backend/ast/vector.py index 36217fa2c..84875c604 100644 --- a/src/pystencils/backend/ast/vector.py +++ b/src/pystencils/backend/ast/vector.py @@ -50,6 +50,8 @@ class PsVecMemAcc(PsExpression, PsLvalue, PsVectorOp): offset: Offset inside the memory region vector_entries: Number of elements to access stride: Optional integer step size for strided access, or ``None`` for contiguous access + aligned: For contiguous accesses, whether the access is guaranteed to be naturally aligned + according to the vector data type """ __match_args__ = ("pointer", "offset", "vector_entries", "stride", "aligned") diff --git a/src/pystencils/backend/transformations/loop_vectorizer.py b/src/pystencils/backend/transformations/loop_vectorizer.py index 9ee6ec366..e01e657e3 100644 --- a/src/pystencils/backend/transformations/loop_vectorizer.py +++ b/src/pystencils/backend/transformations/loop_vectorizer.py @@ -187,13 +187,13 @@ class LoopVectorizer: trailing_ctr = self._ctx.duplicate_symbol(scalar_ctr) trailing_loop_body = substitute_symbols( - loop.body, {scalar_ctr: PsExpression.make(trailing_ctr)} + loop.body.clone(), {scalar_ctr: PsExpression.make(trailing_ctr)} ) trailing_loop = PsLoop( PsExpression.make(trailing_ctr), PsExpression.make(trailing_start), - loop.stop, - loop.step, + loop.stop.clone(), + loop.step.clone(), trailing_loop_body, ) -- GitLab