[pypy-svn] r21020 - pypy/dist/pypy/translator/llvm

rxe at codespeak.net rxe at codespeak.net
Sun Dec 11 11:27:56 CET 2005


Author: rxe
Date: Sun Dec 11 11:27:54 2005
New Revision: 21020

Modified:
   pypy/dist/pypy/translator/llvm/arraynode.py
   pypy/dist/pypy/translator/llvm/database.py
   pypy/dist/pypy/translator/llvm/gc.py
   pypy/dist/pypy/translator/llvm/structnode.py
   pypy/dist/pypy/translator/llvm/varsize.py
Log:
Keep memset() ing of memory for now - lets llvm compile again. 



Modified: pypy/dist/pypy/translator/llvm/arraynode.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/arraynode.py	(original)
+++ pypy/dist/pypy/translator/llvm/arraynode.py	Sun Dec 11 11:27:54 2005
@@ -70,17 +70,6 @@
 
     def writedatatypedecl(self, codewriter):
         codewriter.typedef(self.ref, self.db.get_machine_word())
-
-
-class StrArrayTypeNode(ArrayTypeNode):
-    def writeimpl(self, codewriter):
-        log.writeimpl(self.ref)
-        varsize.write_constructor(self.db, codewriter, self.ref, 
-                                  self.constructor_decl,
-                                  self.array,
-                                  atomic=self.array._is_atomic(),
-                                  is_str=True)
-
         
 class ArrayNode(ConstantLLVMNode):
     """ An arraynode.  Elements can be

Modified: pypy/dist/pypy/translator/llvm/database.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/database.py	(original)
+++ pypy/dist/pypy/translator/llvm/database.py	Sun Dec 11 11:27:54 2005
@@ -7,7 +7,7 @@
 from pypy.translator.llvm.structnode import StructNode, StructVarsizeNode, \
      StructTypeNode, StructVarsizeTypeNode
 from pypy.translator.llvm.arraynode import ArrayNode, StrArrayNode, \
-     VoidArrayNode, ArrayTypeNode, StrArrayTypeNode, VoidArrayTypeNode
+     VoidArrayNode, ArrayTypeNode, VoidArrayTypeNode
 from pypy.translator.llvm.opaquenode import OpaqueNode, ExtOpaqueNode, \
      OpaqueTypeNode, ExtOpaqueTypeNode
 from pypy.rpython.lltypesystem import lltype
@@ -155,8 +155,6 @@
         elif isinstance(type_, lltype.Array): 
             if type_.OF is lltype.Void:
                 self.addpending(type_, VoidArrayTypeNode(self, type_))
-            elif type_.OF is lltype.Char:
-                self.addpending(type_, StrArrayTypeNode(self, type_))
             else:
                 self.addpending(type_, ArrayTypeNode(self, type_))
 

Modified: pypy/dist/pypy/translator/llvm/gc.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/gc.py	(original)
+++ pypy/dist/pypy/translator/llvm/gc.py	Sun Dec 11 11:27:54 2005
@@ -68,10 +68,10 @@
 %(targetvar)s = cast sbyte* %%malloc_Ptr%(cnt)s to %(type_)s*
 ''' % locals()
 
-        #if is_atomic:
-        #    t += '''
-        #call ccc void %%llvm.memset(sbyte* %%malloc_Ptr%(cnt)s, ubyte 0, uint %%malloc_SizeU%(cnt)s, uint 0)
-        #''' % locals()
+        if is_atomic:
+            t += '''
+        call ccc void %%llvm.memset(sbyte* %%malloc_Ptr%(cnt)s, ubyte 0, uint %%malloc_SizeU%(cnt)s, uint 0)
+        ''' % locals()
         return t
 
     def pyrex_code(self):

Modified: pypy/dist/pypy/translator/llvm/structnode.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/structnode.py	(original)
+++ pypy/dist/pypy/translator/llvm/structnode.py	Sun Dec 11 11:27:54 2005
@@ -77,7 +77,8 @@
                                   self.constructor_decl,
                                   current, 
                                   indices_to_array,
-                                  self.struct._is_atomic())
+                                  self.struct._is_atomic(),
+                                  is_str=self.struct._name == "rpy_string")
 
 class StructNode(ConstantLLVMNode):
     """ A struct constant.  Can simply contain

Modified: pypy/dist/pypy/translator/llvm/varsize.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/varsize.py	(original)
+++ pypy/dist/pypy/translator/llvm/varsize.py	Sun Dec 11 11:27:54 2005
@@ -34,17 +34,19 @@
                              *indices_to_arraylength)
     codewriter.store(lentype, "%len", "%arraylength")
 
-    if is_str:
-        indices_to_hash = (("uint", 0),)
-        codewriter.getelementptr("%xxx1", ref + "*", 
-                                 "%result", 
-                                 *indices_to_hash)
-        codewriter.store("int", "0", "%arraylength")
-
-        codewriter.getelementptr("%xxx2", ref + "*", 
-                                 "%result", 
-                                 *elemindices)
-        codewriter.store(elemtype, "0", "%xxx2")
+    #if is_str:
+    #    indices_to_hash = (("uint", 0),)
+    #    codewriter.getelementptr("%ptrhash", ref + "*", 
+    #                             "%result", 
+    #                             *indices_to_hash)
+    #    codewriter.store("int", "0", "%ptrhash")
+
+
+    #if ARRAY is STR.chars:
+    #    codewriter.getelementptr("%ptrendofchar", ref + "*", 
+    #                             "%result", 
+    #                             *elemindices)
+    #    codewriter.store(elemtype, "0", "%ptrendofchar")
 
 
 



More information about the Pypy-commit mailing list