[pypy-svn] r48799 - in pypy/dist/pypy/translator/llvm: . test
rxe at codespeak.net
rxe at codespeak.net
Mon Nov 19 16:32:13 CET 2007
Author: rxe
Date: Mon Nov 19 16:32:12 2007
New Revision: 48799
Modified:
pypy/dist/pypy/translator/llvm/arraynode.py
pypy/dist/pypy/translator/llvm/buildllvm.py
pypy/dist/pypy/translator/llvm/codewriter.py
pypy/dist/pypy/translator/llvm/gc.py
pypy/dist/pypy/translator/llvm/genllvm.py
pypy/dist/pypy/translator/llvm/modwrapper.py
pypy/dist/pypy/translator/llvm/opaquenode.py
pypy/dist/pypy/translator/llvm/opwriter.py
pypy/dist/pypy/translator/llvm/test/runtest.py
Log:
resolve some XXXs - mostly by just removing them.
Modified: pypy/dist/pypy/translator/llvm/arraynode.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/arraynode.py (original)
+++ pypy/dist/pypy/translator/llvm/arraynode.py Mon Nov 19 16:32:12 2007
@@ -21,7 +21,6 @@
self.get_typerepr(),
self.name,
index)
- #XXX probably why we are failing anyways
return 'bitcast(i8* %s to [0 x i8]*)' % x
def writeglobalconstants(self, codewriter):
Modified: pypy/dist/pypy/translator/llvm/buildllvm.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/buildllvm.py (original)
+++ pypy/dist/pypy/translator/llvm/buildllvm.py Mon Nov 19 16:32:12 2007
@@ -79,7 +79,6 @@
self.cmds.append("llvm-as < %s.ll | opt %s -f -o %s.bc" % (base, opts, base))
def cmds_objects(self, base):
- # XXX why this hack???
use_gcc = self.genllvm.config.translation.llvm_via_c
if use_gcc:
self.cmds.append("llc %s.bc -march=c -f -o %s.c" % (base, base))
@@ -88,6 +87,7 @@
self.cmds.append("llc -relocation-model=pic %s.bc -f -o %s.s" % (base, base))
self.cmds.append("as %s.s -o %s.o" % (base, base))
+# XXX support profile?
# if (self.genllvm.config.translation.profopt is not None and
# not self.genllvm.config.translation.noprofopt):
# cmd = "gcc -fprofile-generate %s.c -c -O3 -pipe -o %s.o" % (base, base)
Modified: pypy/dist/pypy/translator/llvm/codewriter.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/codewriter.py (original)
+++ pypy/dist/pypy/translator/llvm/codewriter.py Mon Nov 19 16:32:12 2007
@@ -192,7 +192,7 @@
self._indent("%s = alloca %s" % (targetvar, vartype))
def malloc(self, targetvar, vartype, numelements=1):
- XXX
+ XXX # we should use this for raw malloc (unless it is slow)
if numelements == 1:
self._indent("%s = malloc %s" % (targetvar, vartype))
else:
@@ -203,6 +203,7 @@
def free(self, vartype, varref):
+ XXX # we should use this for raw malloc (unless it is slow)
self._indent("free %s %s" % (vartype, varref))
def debug_print(self, s):
Modified: pypy/dist/pypy/translator/llvm/gc.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/gc.py (original)
+++ pypy/dist/pypy/translator/llvm/gc.py Mon Nov 19 16:32:12 2007
@@ -150,8 +150,6 @@
self.db = db
def genextern_code(self):
- # XXX
- # This is not finished: we must call the gc init function!
r = ''
r += '#define __GC_STARTUP_CODE__\n'
r += '#define __GC_SETUP_CODE__\n'
Modified: pypy/dist/pypy/translator/llvm/genllvm.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/genllvm.py (original)
+++ pypy/dist/pypy/translator/llvm/genllvm.py Mon Nov 19 16:32:12 2007
@@ -89,9 +89,7 @@
c_db = cbuild.generate_graphs_for_llinterp()
self.db = Database(self, self.translator)
-
- # XXX hardcoded for now
- self.db.gcpolicy = GcPolicy.new(self.db, 'boehm')
+ self.db.gcpolicy = GcPolicy.new(self.db, self.config.translation.gc)
# get entry point
entry_point = self.get_entry_point(func)
Modified: pypy/dist/pypy/translator/llvm/modwrapper.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/modwrapper.py (original)
+++ pypy/dist/pypy/translator/llvm/modwrapper.py Mon Nov 19 16:32:12 2007
@@ -1,4 +1,4 @@
-" XXX THIS IS ONLY FOR TESTING XXX "
+" THIS IS ONLY FOR TESTING "
import py
import ctypes
Modified: pypy/dist/pypy/translator/llvm/opaquenode.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/opaquenode.py (original)
+++ pypy/dist/pypy/translator/llvm/opaquenode.py Mon Nov 19 16:32:12 2007
@@ -8,7 +8,6 @@
self.name = "null"
def writeglobalconstants(self, codewriter):
- # XXX Dummy - not sure what what we want
pass
class ExtOpaqueNode(ConstantNode):
@@ -37,7 +36,6 @@
return ref
def writeglobalconstants(self, codewriter):
- # XXX Dummy - not sure what what we want
pass
def constantvalue(self):
Modified: pypy/dist/pypy/translator/llvm/opwriter.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/opwriter.py (original)
+++ pypy/dist/pypy/translator/llvm/opwriter.py Mon Nov 19 16:32:12 2007
@@ -41,7 +41,6 @@
class OpWriter(object):
shift_operations = {
- # ZZZ i guessed rshifts - ashr or lshr ??????
'int_lshift': 'shl',
'int_rshift': 'lshr',
@@ -90,7 +89,6 @@
for oo in 'lt le eq ne ge gt'.split():
binary_operations['%s_%s' % (tt, oo)] = 'fcmp o%s' % oo
- # ZZZ check that operation should be checking unsigned
binary_operations.update({'char_lt': 'icmp ult',
'char_le': 'icmp ule',
'char_eq': 'icmp eq',
@@ -207,14 +205,7 @@
op = opr.op
name = self.shift_operations[op.opname]
- var = opr.argrefs[1]
- # ZZZ why did we do this???
- #if isinstance(op.args[1], Constant):
- # var = opr.argrefs[1]
- #else:
- # var = self._tmp()
- # self.codewriter.cast(var, opr.argtypes[1], opr.argrefs[1], 'i8')
-
+ var = opr.argrefs[1]
self.codewriter.shiftop(name, opr.retref, opr.argtypes[0], opr.argrefs[0], var)
def cast_primitive(self, opr):
@@ -325,8 +316,8 @@
indices = []
for arg in args:
name = None
- # XXX this is because FixedSizeArray can sometimes be accessed
- # like an Array and then sometimes a Struct
+ # this is because FixedSizeArray can sometimes be accessed like an
+ # Array and then sometimes a Struct
if arg.concretetype is lltype.Void:
name = arg.value
assert name in list(TYPE._names)
@@ -406,9 +397,7 @@
lengthref = self._tmp()
self.codewriter.getelementptr(lengthref, opr.argtypes[0], opr.argrefs[0], indices)
else:
- assert isinstance(TYPE, lltype.FixedSizeArray)
- lengthref = TYPE.length
- XXX # no tests for this - is it valid even since known at compile time ????
+ assert False, "known at compile time"
self.codewriter.load(opr.retref, opr.rettype, lengthref)
@@ -418,7 +407,6 @@
def direct_fieldptr(self, opr):
from pypy.translator.llvm.structnode import getindexhelper
- # XXX use to_getelementptr ?
op = opr.op
assert opr.rettype != "void"
index = getindexhelper(op.args[1].value,
@@ -434,7 +422,6 @@
self.codewriter.cast(opr.retref, element_type, tmpvar, opr.rettype)
def direct_arrayitems(self, opr):
- # XXX use to_getelementptr ?
assert opr.rettype != "void"
array = opr.argrefs[0]
@@ -504,9 +491,6 @@
def adr_ge(self, opr):
self._op_adr_cmp(opr, "icmp sge")
- # XXX Not sure any of this makes sense - maybe seperate policy for
- # different flavours of mallocs? Well it depend on what happens the GC
- # developments
def raw_malloc(self, opr):
self.codewriter.call(opr.retref, opr.rettype, "@raw_malloc",
opr.argtypes, opr.argrefs)
Modified: pypy/dist/pypy/translator/llvm/test/runtest.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/test/runtest.py (original)
+++ pypy/dist/pypy/translator/llvm/test/runtest.py Mon Nov 19 16:32:12 2007
@@ -117,12 +117,13 @@
def genllvm_compile(function,
annotation,
+ gcpolicy='boehm',
# debug options
debug=True,
logging=False,
isolate=True,
-
+
# pass to compile
optimize=True,
extra_opts={}):
@@ -138,7 +139,7 @@
'translation.llvm.logging': logging,
'translation.llvm.isolate': isolate,
'translation.backendopt.none': not optimize,
- 'translation.gc': 'boehm',
+ 'translation.gc': gcpolicy,
'translation.llvm_via_c' : not native_llvm_backend
}
More information about the Pypy-commit
mailing list