[pypy-commit] pypy llvm-translation-backend: Minor refactoring: slightly change the way struct names are handled.

Manuel Jacob noreply at buildbot.pypy.org
Mon Jul 7 07:38:39 CEST 2014


Author: Manuel Jacob
Branch: llvm-translation-backend
Changeset: r72377:e3796537464c
Date: 2014-07-07 07:37 +0200
http://bitbucket.org/pypy/pypy/changeset/e3796537464c/

Log:	Minor refactoring: slightly change the way struct names are handled.

diff --git a/rpython/translator/llvm/genllvm.py b/rpython/translator/llvm/genllvm.py
--- a/rpython/translator/llvm/genllvm.py
+++ b/rpython/translator/llvm/genllvm.py
@@ -51,7 +51,7 @@
         return self.typestr
 
     def repr_of_type(self):
-        return self.repr_type()
+        return self.typestr
 
     def is_zero(self, value):
         raise NotImplementedError("Override in subclass.")
@@ -438,21 +438,21 @@
     def setup_from_lltype(self, db, type):
         if (type._hints.get('typeptr', False) and
             db.genllvm.translator.config.translation.gcremovetypeptr):
-            self.setup('%' + type._name, [], True)
+            self.setup(type._name, [], True)
             return
         fields = ((db.get_type(type._flds[f]), f) for f in type._names)
         is_gc = type._gckind == 'gc'
         needs_gc_header = is_gc and type._first_struct() == (None, None)
-        self.setup('%' + type._name, fields, needs_gc_header)
+        self.setup(type._name, fields, needs_gc_header)
 
     def repr_type(self, extra_len=None):
         if extra_len not in self.size_variants:
             if extra_len is not None:
-                name = self.name + '_plus_{}'.format(extra_len)
+                name = '%{}_plus_{}'.format(self.name, extra_len)
             elif self.varsize:
-                name = self.name + '_varsize'
+                name = '%{}_varsize'.format(self.name)
             else:
-                name = self.name
+                name = '%{}'.format(self.name)
             self.size_variants[extra_len] = name = database.unique_name(name)
             lastname = self.fldnames_wo_voids[-1]
             tmp = ('    {semicolon}{fldtype}{comma} ; {fldname}\n'.format(
@@ -465,7 +465,7 @@
         return self.size_variants[extra_len]
 
     def repr_of_type(self):
-        return self.name[1:]
+        return self.name
 
     def is_zero(self, value):
         if self.needs_gc_header:
@@ -586,7 +586,7 @@
         self.bare_array_type.setup(of, None)
         self.struct_type = StructType()
         fields = [(LLVMSigned, 'len'), (self.bare_array_type, 'items')]
-        self.struct_type.setup('%array_of_' + of.repr_of_type(), fields, is_gc)
+        self.struct_type.setup('array_of_' + of.repr_of_type(), fields, is_gc)
 
     def setup_from_lltype(self, db, type):
         self.setup(db.get_type(type.OF), type._gckind == 'gc')
@@ -648,7 +648,7 @@
                     'getelementptr inbounds({}* {}, i64 0, i32 {})'
                     .format(self.typestr, groupname, i))
         struct_type = StructType()
-        struct_type.setup(self.typestr, fields, False)
+        struct_type.setup('group_' + obj.name, fields, False)
         database.f.write('{} = global {}\n'.format(
                 groupname, struct_type.repr_type_and_value(group)))
 


More information about the pypy-commit mailing list