[pypy-svn] r68141 - pypy/branch/floats-via-sse2/pypy/jit/backend/llsupport

arigo at codespeak.net arigo at codespeak.net
Sun Oct 4 11:24:24 CEST 2009


Author: arigo
Date: Sun Oct  4 11:24:22 2009
New Revision: 68141

Modified:
   pypy/branch/floats-via-sse2/pypy/jit/backend/llsupport/descr.py
Log:
Use a class attribute instead of overriding the method from
"return False" to "return True".


Modified: pypy/branch/floats-via-sse2/pypy/jit/backend/llsupport/descr.py
==============================================================================
--- pypy/branch/floats-via-sse2/pypy/jit/backend/llsupport/descr.py	(original)
+++ pypy/branch/floats-via-sse2/pypy/jit/backend/llsupport/descr.py	Sun Oct  4 11:24:22 2009
@@ -67,11 +67,14 @@
     def get_field_size(self, translate_support_code):
         raise NotImplementedError
 
+    _is_pointer_field = False   # unless overridden by GcPtrFieldDescr
+    _is_float_field = False     # unless overridden by FloatFieldDescr
+
     def is_pointer_field(self):
-        return False        # unless overridden by GcPtrFieldDescr
+        return self._is_pointer_field
 
     def is_float_field(self):
-        return False        # unless overridden by FloatFieldDescr
+        return self._is_float_field
 
     def repr_of_descr(self):
         return '<%s %s>' % (self._clsname, self.offset)
@@ -84,13 +87,12 @@
 
 class GcPtrFieldDescr(NonGcPtrFieldDescr):
     _clsname = 'GcPtrFieldDescr'
-    def is_pointer_field(self):
-        return True
+    _is_pointer_field = True
 
 def getFieldDescrClass(TYPE):
     return getDescrClass(TYPE, BaseFieldDescr, GcPtrFieldDescr,
                          NonGcPtrFieldDescr, 'Field', 'get_field_size',
-                         'is_float_field')
+                         '_is_float_field')
 
 def get_field_descr(gccache, STRUCT, fieldname):
     cache = gccache._cache_field
@@ -126,11 +128,14 @@
     def get_item_size(self, translate_support_code):
         raise NotImplementedError
 
+    _is_array_of_pointers = False      # unless overridden by GcPtrArrayDescr
+    _is_array_of_floats   = False      # unless overridden by FloatArrayDescr
+
     def is_array_of_pointers(self):
-        return False        # unless overridden by GcPtrArrayDescr
+        return self._is_array_of_pointers
 
     def is_array_of_floats(self):
-        return False        # unless overridden by FloatArrayDescr
+        return self._is_array_of_floats
 
     def repr_of_descr(self):
         return '<%s>' % self._clsname
@@ -143,13 +148,12 @@
 
 class GcPtrArrayDescr(NonGcPtrArrayDescr):
     _clsname = 'GcPtrArrayDescr'
-    def is_array_of_pointers(self):
-        return True
+    _is_array_of_pointers = True
 
 def getArrayDescrClass(ARRAY):
     return getDescrClass(ARRAY.OF, BaseArrayDescr, GcPtrArrayDescr,
                          NonGcPtrArrayDescr, 'Array', 'get_item_size',
-                         'is_array_of_floats')
+                         '_is_array_of_floats')
 
 def get_array_descr(gccache, ARRAY):
     cache = gccache._cache_array
@@ -188,11 +192,14 @@
             result.append(box)
         return result
 
+    _returns_a_pointer = False        # unless overridden by GcPtrCallDescr
+    _returns_a_float   = False        # unless overridden by FloatCallDescr
+
     def returns_a_pointer(self):
-        return False         # unless overridden by GcPtrCallDescr
+        return self._returns_a_pointer
 
     def returns_a_float(self):
-        return False         # unless overridden by FloatCallDescr
+        return self._returns_a_float
 
     def get_result_size(self, translate_support_code):
         raise NotImplementedError
@@ -234,8 +241,7 @@
 
 class GcPtrCallDescr(NonGcPtrCallDescr):
     _clsname = 'GcPtrCallDescr'
-    def returns_a_pointer(self):
-        return True
+    _returns_a_pointer = True
 
 class VoidCallDescr(NonGcPtrCallDescr):
     _clsname = 'VoidCallDescr'
@@ -247,7 +253,7 @@
         return VoidCallDescr
     return getDescrClass(RESULT, BaseCallDescr, GcPtrCallDescr,
                          NonGcPtrCallDescr, 'Call', 'get_result_size',
-                         'returns_a_float')
+                         '_returns_a_float')
 
 def get_call_descr(gccache, ARGS, RESULT):
     arg_classes = []
@@ -273,7 +279,7 @@
 # ____________________________________________________________
 
 def getDescrClass(TYPE, BaseDescr, GcPtrDescr, NonGcPtrDescr,
-                  nameprefix, methodname, floatcheckname, _cache={}):
+                  nameprefix, methodname, floatattrname, _cache={}):
     if isinstance(TYPE, lltype.Ptr):
         if TYPE.TO._gckind == 'gc':
             return GcPtrDescr
@@ -292,9 +298,7 @@
         setattr(Descr, methodname, method)
         #
         if TYPE is lltype.Float:
-            def is_float(self):
-                return True
-            setattr(Descr, floatcheckname, is_float)
+            setattr(Descr, floatattrname, True)
         #
         _cache[nameprefix, TYPE] = Descr
         return Descr



More information about the Pypy-commit mailing list