[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