[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