From 57aedc85cd589ac468fb87083e697a34cfefb065 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Thu, 10 May 2012 00:33:43 -0400
Subject: [PATCH] CSE-on-creation: Don't create variables aliasing other
 variables.

---
 loopy/creation.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/loopy/creation.py b/loopy/creation.py
index 0337f7c8b..28be2b095 100644
--- a/loopy/creation.py
+++ b/loopy/creation.py
@@ -35,9 +35,11 @@ class CSEToAssignmentMapper(IdentityMapper):
                 dtype = None
 
             child = self.rec(expr.child)
+            from pymbolic.primitives import Variable
+            if isinstance(child, Variable):
+                return child
 
             var_name = self.add_assignment(expr.prefix, child, dtype)
-            from pymbolic.primitives import Variable
             var = Variable(var_name)
             self.expr_to_var[expr.child] = var
             return var
-- 
GitLab