[pypy-commit] lang-smalltalk strategies-tagging: Removed rerased functionality completely, since it is only hindering the trace optimizer.
anton_gulenko
noreply at buildbot.pypy.org
Fri Mar 21 11:27:33 CET 2014
Author: Anton Gulenko <anton.gulenko at googlemail.com>
Branch: strategies-tagging
Changeset: r679:106d0c112fc1
Date: 2014-03-20 16:23 +0100
http://bitbucket.org/pypy/lang-smalltalk/changeset/106d0c112fc1/
Log: Removed rerased functionality completely, since it is only hindering
the trace optimizer.
diff --git a/spyvm/strategies.py b/spyvm/strategies.py
--- a/spyvm/strategies.py
+++ b/spyvm/strategies.py
@@ -1,7 +1,6 @@
import sys
from spyvm import model, shadow
-from rpython.rlib import rerased
from rpython.rlib.objectmodel import import_from_mixin
# Disables all optimized strategies, for debugging.
@@ -30,13 +29,13 @@
strategy_tag = 'abstract-list'
def storage(self, w_obj):
- return self.unerase(w_obj.list_storage)
+ return w_obj.list_storage
def set_initial_storage(self, space, w_obj, size):
- w_obj.list_storage = self.erase(self.initial_storage(space, size))
+ w_obj.list_storage = self.initial_storage(space, size)
def set_storage_for_list(self, space, w_obj, collection):
- w_obj.list_storage = self.erase(self.storage_for_list(space, collection))
+ w_obj.list_storage = self.storage_for_list(space, collection)
def set_storage_copied_from(self, space, w_obj, w_source_obj, reuse_storage=False):
- w_obj.list_storage = self.erase(self.copy_storage_from(space, w_source_obj, reuse_storage))
+ w_obj.list_storage = self.copy_storage_from(space, w_source_obj, reuse_storage)
def initial_storage(self, space, size):
raise NotImplementedError("Abstract base class")
@@ -54,13 +53,13 @@
strategy_tag = 'abstract-int'
def storage(self, w_obj):
- return self.unerase(w_obj.int_storage)
+ return w_obj.int_storage
def set_initial_storage(self, space, w_obj, size):
- w_obj.int_storage = self.erase(self.initial_storage(space, size))
+ w_obj.int_storage = self.initial_storage(space, size)
def set_storage_for_list(self, space, w_obj, collection):
- w_obj.int_storage = self.erase(self.storage_for_list(space, collection))
+ w_obj.int_storage = self.storage_for_list(space, collection)
def set_storage_copied_from(self, space, w_obj, w_source_obj, reuse_storage=False):
- w_obj.int_storage = self.erase(self.copy_storage_from(space, w_source_obj, reuse_storage))
+ w_obj.int_storage = self.copy_storage_from(space, w_source_obj, reuse_storage)
def initial_storage(self, space, size):
raise NotImplementedError("Abstract base class")
@@ -80,21 +79,11 @@
result.singleton = result()
return result
-use_rerased = False
-def setup_rerased_pair():
- # Small piece of metaprogramming stolen from rpython.rlib.objectmodel.import_from_mixin
- cls = sys._getframe(1).f_locals
- if use_rerased:
- cls["erase"], cls["unerase"] = rerased.new_static_erasing_pair("strategy-%s" % cls["strategy_tag"])
- else:
- cls["erase"], cls["unerase"] = lambda self, x: x, lambda self, x: x
-
# this is the typical "initial" storage strategy, for when every slot
# in an object is still nil. No storage is allocated.
class AllNilStorageStrategy(AbstractStorageStrategy):
__metaclass__ = SingletonMeta
strategy_tag = 'allnil'
- setup_rerased_pair()
def fetch(self, space, w_obj, n0):
return model.w_nil
@@ -121,7 +110,6 @@
class ListStorageStrategy(AbstractListStorageStrategy):
__metaclass__ = SingletonMeta
strategy_tag = 'list'
- setup_rerased_pair()
def fetch(self, space, w_obj, n0):
return self.storage(w_obj)[n0]
@@ -139,7 +127,6 @@
class TaggingSmallIntegerStorageStrategy(AbstractIntStorageStrategy):
__metaclass__ = SingletonMeta
strategy_tag = 'tagging-smallint'
- setup_rerased_pair()
needs_objspace = True
@staticmethod
More information about the pypy-commit
mailing list