[pypy-svn] r51290 - pypy/dist/pypy/translator/llvm
arigo at codespeak.net
arigo at codespeak.net
Tue Feb 5 14:26:12 CET 2008
Author: arigo
Date: Tue Feb 5 14:26:11 2008
New Revision: 51290
Modified:
pypy/dist/pypy/translator/llvm/node.py
Log:
Revert r50061 as it breaks tests.
Modified: pypy/dist/pypy/translator/llvm/node.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/node.py (original)
+++ pypy/dist/pypy/translator/llvm/node.py Tue Feb 5 14:26:11 2008
@@ -1,16 +1,29 @@
from pypy.rpython.lltypesystem import lltype
-from pypy.translator.gensupp import NameManager
-
-NODE_NAMES = NameManager()
class Node(object):
__slots__ = "name".split()
prefix = '%'
+ nodename_count = {}
+ def mangle(self, name):
+ if name not in self.nodename_count:
+ self.nodename_count[name] = 1
+ return name
+ else:
+ result = '%s_%d' % (name, self.nodename_count[name])
+ self.nodename_count[name] += 1
+ # this ensures (a) doesn exist yet, and (b) adds it to the
+ # dictionary just to prevent some function called xxx_42() and clashing
+ return self.mangle(result)
+
def make_name(self, name=''):
" helper for creating names"
- name = self.prefix + NODE_NAMES.uniquename(name)
+ name = self.prefix + name
+ name = self.mangle(name)
+ if " " in name or "<" in name:
+ name = '"%s"' % name
+
self.name = name
def setup(self):
More information about the Pypy-commit
mailing list