From 6841ea3bafa1c669ccc4de41e707982c14c6e4ab Mon Sep 17 00:00:00 2001 From: George Hotz <72895+geohot@users.noreply.github.com> Date: Tue, 25 Jun 2024 18:47:29 -0700 Subject: [PATCH] don't allow duplicate variables (#5148) --- tinygrad/renderer/cstyle.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tinygrad/renderer/cstyle.py b/tinygrad/renderer/cstyle.py index db19f91180..f7131b3c01 100644 --- a/tinygrad/renderer/cstyle.py +++ b/tinygrad/renderer/cstyle.py @@ -105,6 +105,7 @@ class CStyleLanguage(Renderer): child_count = Counter(v for ru in uops for v in ru.src) + seen_vars = set() for u in uops: uop,dtype,src,args = u.op,u.dtype,u.src,u.arg # these four uops don't have output dtypes @@ -158,6 +159,8 @@ class CStyleLanguage(Renderer): kk(self.render_local(args[0], dtype, args[1])) r[u] = args[0] elif uop is UOps.DEFINE_VAR: + assert args.expr not in seen_vars, f"duplicate variable {args.expr}" + seen_vars.add(args.expr) bufs.append((args.expr, (dtype,False))) r[u] = args.expr elif uop is UOps.DEFINE_GLOBAL: