Author: Richard Plangger <r...@pasra.at> Branch: vecopt Changeset: r77957:3bc0e1fb8db8 Date: 2015-06-08 15:12 +0200 http://bitbucket.org/pypy/pypy/changeset/3bc0e1fb8db8/
Log: removed allocation of comparison objects to track guard comparisons. This is handled by the guard strengthing operation diff --git a/rpython/jit/metainterp/optimizeopt/dependency.py b/rpython/jit/metainterp/optimizeopt/dependency.py --- a/rpython/jit/metainterp/optimizeopt/dependency.py +++ b/rpython/jit/metainterp/optimizeopt/dependency.py @@ -810,7 +810,7 @@ class IntegralForwardModification(object): - """ Calculates integral modifications on an integer box. """ + """ Calculates integral modifications on integer boxes. """ def __init__(self, memory_refs, index_vars, comparison_vars, invariant_vars): self.index_vars = index_vars self.comparison_vars = comparison_vars @@ -828,21 +828,6 @@ var = self.index_vars[arg] = IndexVar(arg) return var - bool_func_source = """ - def operation_{name}(self, op, node): - box_a0 = op.getarg(0) - box_a1 = op.getarg(1) - left = self.index_vars.get(box_a0, None) - right = self.index_vars.get(box_a1, None) - box_r = op.result - self.comparison_vars[box_r] = CompareOperation(op.getopnum(), left, right) - """ - for name in ['INT_LT', 'INT_LE', 'INT_EQ', 'INT_NE', 'INT_NE', - 'INT_GT', 'INT_GE', 'UINT_LT', 'UINT_LE', 'UINT_GT', - 'UINT_GE']: - exec py.code.Source(bool_func_source.format(name=name)).compile() - del bool_func_source - additive_func_source = """ def operation_{name}(self, op, node): box_r = op.result @@ -923,25 +908,6 @@ IntegralForwardModification.inspect_operation = integral_dispatch_opt del integral_dispatch_opt -class CompareOperation(object): - def __init__(self, opnum, lindex_var, rindex_var): - self.opnum = opnum - self.lindex_var = lindex_var - self.rindex_var = rindex_var - - def getindex_vars(self): - if self.lindex_var and self.rindex_var: - return (self.lindex_var, self.rindex_var) - elif self.lindex_var: - return (self.lindex_var, None) - elif self.rindex_var: - return (self.rindex_var, None) - else: - return (None, None) - - def adapt_operation(self, op): - pass - class IndexVar(AbstractValue): """ IndexVar is an AbstractValue only to ensure that a box can be assigned to the same variable as an index var. _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit