diff --git a/src/pystencils/backend/kernelcreation/cpu_optimization.py b/src/pystencils/backend/kernelcreation/cpu_optimization.py
index 21285a7fc9eb7a44e00dc03e7e8629071ab41f65..b0156c7e8ce0b9cac2c6f3be9f60bbeef41e1c51 100644
--- a/src/pystencils/backend/kernelcreation/cpu_optimization.py
+++ b/src/pystencils/backend/kernelcreation/cpu_optimization.py
@@ -3,7 +3,7 @@ from typing import cast
 
 from .context import KernelCreationContext
 from ..platforms import GenericCpu
-from ..transformations import HoistLoopInvariantDeclarations
+from ..transformations import CanonicalizeSymbols, HoistLoopInvariantDeclarations
 from ..ast.structural import PsBlock
 
 from ...config import CpuOptimConfig
@@ -17,6 +17,9 @@ def optimize_cpu(
 ) -> PsBlock:
     """Carry out CPU-specific optimizations according to the given configuration."""
 
+    canonicalize = CanonicalizeSymbols(ctx, True)
+    kernel_ast = cast(PsBlock, canonicalize(kernel_ast))
+
     hoist_invariants = HoistLoopInvariantDeclarations(ctx)
     kernel_ast = cast(PsBlock, hoist_invariants(kernel_ast))
 
diff --git a/src/pystencils/kernelcreation.py b/src/pystencils/kernelcreation.py
index 4fa7f98cf700be7f2ae332de293a336833c22ee1..0f6941cf52ca1c3745b5af9a1f0478f269fc8e4a 100644
--- a/src/pystencils/kernelcreation.py
+++ b/src/pystencils/kernelcreation.py
@@ -26,7 +26,6 @@ from .backend.kernelcreation.iteration_space import (
 
 from .backend.ast.analysis import collect_required_headers, collect_undefined_symbols
 from .backend.transformations import (
-    CanonicalizeSymbols,
     EliminateConstants,
     EraseAnonymousStructTypes,
     SelectFunctions,
@@ -99,9 +98,6 @@ def create_kernel(
     kernel_ast = platform.materialize_iteration_space(kernel_body, ispace)
 
     #   Simplifying transformations
-    canonicalize = CanonicalizeSymbols(ctx, True)
-    kernel_ast = cast(PsBlock, canonicalize(kernel_ast))
-
     elim_constants = EliminateConstants(ctx, extract_constant_exprs=True)
     kernel_ast = cast(PsBlock, elim_constants(kernel_ast))