Author: Maciej Fijalkowski <fij...@gmail.com> Branch: jitframe-on-heap Changeset: r60140:51eb72e9c8fc Date: 2013-01-17 20:08 +0200 http://bitbucket.org/pypy/pypy/changeset/51eb72e9c8fc/
Log: cleanup I think\ \ diff --git a/pypy/jit/backend/x86/regalloc.py b/pypy/jit/backend/x86/regalloc.py --- a/pypy/jit/backend/x86/regalloc.py +++ b/pypy/jit/backend/x86/regalloc.py @@ -242,6 +242,8 @@ var = op.getarg(i) if var is not None: # xxx kludgy self.possibly_free_var(var) + if op.result: + self.possibly_free_var(op.result) def possibly_free_vars(self, vars): for var in vars: @@ -349,8 +351,6 @@ self.xrm.position += 1 self.assembler.regalloc_perform_with_guard(op, guard_op, faillocs, arglocs, result_loc) - if op.result is not None: - self.possibly_free_var(op.result) self.possibly_free_vars(guard_op.getfailargs()) def perform_guard(self, guard_op, arglocs, result_loc): @@ -413,8 +413,7 @@ self._consider_force_spill(op) else: oplist[op.getopnum()](self, op) - if op.result is not None: - self.possibly_free_var(op.result) + self.possibly_free_vars_for_op(op) self.rm._check_invariants() self.xrm._check_invariants() i += 1 @@ -445,7 +444,6 @@ def _consider_guard(self, op): loc = self.rm.make_sure_var_in_reg(op.getarg(0)) self.perform_guard(op, [loc], None) - self.rm.possibly_free_var(op.getarg(0)) consider_guard_true = _consider_guard consider_guard_false = _consider_guard @@ -463,8 +461,6 @@ else: locs = [imm(fail_descr)] self.Perform(op, locs, None) - if op.numargs() == 1: - self.possibly_free_var(op.getarg(0)) def consider_guard_no_exception(self, op): self.perform_guard(op, [], None) @@ -490,7 +486,6 @@ else: resloc = None self.perform_guard(op, [loc, loc1], resloc) - self.rm.possibly_free_vars_for_op(op) self.rm.possibly_free_var(box) consider_guard_no_overflow = consider_guard_no_exception @@ -500,14 +495,12 @@ x = self.make_sure_var_in_reg(op.getarg(0)) y = self.loc(op.getarg(1)) self.perform_guard(op, [x, y], None) - self.possibly_free_vars_for_op(op) def consider_guard_class(self, op): assert isinstance(op.getarg(0), Box) x = self.rm.make_sure_var_in_reg(op.getarg(0)) y = self.loc(op.getarg(1)) self.perform_guard(op, [x, y], None) - self.rm.possibly_free_vars_for_op(op) consider_guard_nonnull_class = consider_guard_class @@ -522,7 +515,6 @@ def _consider_binop(self, op): loc, argloc = self._consider_binop_part(op) self.Perform(op, [loc, argloc], loc) - self.possibly_free_var(op.getarg(0)) def _consider_lea(self, op, loc): argloc = self.loc(op.getarg(1)) @@ -575,7 +567,6 @@ args = op.getarglist() loc1 = self.rm.force_result_in_reg(op.result, op.getarg(0), args) self.Perform(op, [loc1, loc2], loc1) - self.rm.possibly_free_vars_for_op(op) consider_int_rshift = consider_int_lshift consider_uint_rshift = consider_int_lshift @@ -591,7 +582,6 @@ assert l0 is eax assert l1 is ecx assert l2 is resultreg - self.rm.possibly_free_vars_for_op(op) self.rm.possibly_free_var(tmpvar) def consider_int_mod(self, op): @@ -640,7 +630,6 @@ args = op.getarglist() loc0 = self.xrm.force_result_in_reg(op.result, op.getarg(0), args) self.Perform(op, [loc0, loc1], loc0) - self.xrm.possibly_free_vars_for_op(op) consider_float_add = _consider_float_op consider_float_sub = _consider_float_op @@ -674,7 +663,6 @@ def _consider_float_unary_op(self, op): loc0 = self.xrm.force_result_in_reg(op.result, op.getarg(0)) self.Perform(op, [loc0], loc0) - self.xrm.possibly_free_var(op.getarg(0)) consider_float_neg = _consider_float_unary_op consider_float_abs = _consider_float_unary_op @@ -683,13 +671,11 @@ loc0 = self.xrm.make_sure_var_in_reg(op.getarg(0)) loc1 = self.rm.force_allocate_reg(op.result) self.Perform(op, [loc0], loc1) - self.xrm.possibly_free_var(op.getarg(0)) def consider_cast_int_to_float(self, op): loc0 = self.rm.make_sure_var_in_reg(op.getarg(0)) loc1 = self.xrm.force_allocate_reg(op.result) self.Perform(op, [loc0], loc1) - self.rm.possibly_free_var(op.getarg(0)) def consider_cast_float_to_singlefloat(self, op): loc0 = self.xrm.make_sure_var_in_reg(op.getarg(0)) @@ -707,26 +693,22 @@ loc0 = self.xrm.make_sure_var_in_reg(op.getarg(0)) loc1 = self.rm.force_allocate_reg(op.result) self.Perform(op, [loc0], loc1) - self.xrm.possibly_free_var(op.getarg(0)) else: arg0 = op.getarg(0) loc0 = self.xrm.loc(arg0) loc1 = self.xrm.force_allocate_reg(op.result, forbidden_vars=[arg0]) self.Perform(op, [loc0], loc1) - self.xrm.possibly_free_var(arg0) def consider_convert_longlong_bytes_to_float(self, op): if longlong.is_64_bit: loc0 = self.rm.make_sure_var_in_reg(op.getarg(0)) loc1 = self.xrm.force_allocate_reg(op.result) self.Perform(op, [loc0], loc1) - self.rm.possibly_free_var(op.getarg(0)) else: arg0 = op.getarg(0) loc0 = self.xrm.make_sure_var_in_reg(arg0) loc1 = self.xrm.force_allocate_reg(op.result, forbidden_vars=[arg0]) self.Perform(op, [loc0], loc1) - self.xrm.possibly_free_var(arg0) def _consider_llong_binop_xx(self, op): # must force both arguments into xmm registers, because we don't @@ -736,7 +718,6 @@ loc1 = self.load_xmm_aligned_16_bytes(args[1]) loc0 = self.xrm.force_result_in_reg(op.result, args[0], args) self.PerformLLong(op, [loc0, loc1], loc0) - self.xrm.possibly_free_vars(args) def _consider_llong_eq_ne_xx(self, op): # must force both arguments into xmm registers, because we don't @@ -750,7 +731,6 @@ self.xrm.possibly_free_var(tmpxvar) loc0 = self.rm.force_allocate_reg(op.result, need_lower_byte=True) self.PerformLLong(op, [loc1, loc2, loc3], loc0) - self.xrm.possibly_free_vars(args) def _maybe_consider_llong_lt(self, op): # XXX just a special case for now @@ -773,7 +753,6 @@ loc1 = self.xrm.loc(op.getarg(1)) loc0 = self.rm.force_allocate_reg(op.result) self.PerformLLong(op, [loc1], loc0) - self.xrm.possibly_free_var(op.getarg(1)) def _loc_of_const_longlong(self, value64): c = ConstFloat(value64) @@ -792,19 +771,16 @@ loc2 = self.xrm.force_allocate_reg(tmpxvar, [op.result]) self.xrm.possibly_free_var(tmpxvar) self.PerformLLong(op, [loc1, loc2], loc0) - self.rm.possibly_free_var(box) def _consider_llong_from_uint(self, op): assert IS_X86_32 loc0 = self.xrm.force_allocate_reg(op.result) loc1 = self.rm.make_sure_var_in_reg(op.getarg(1)) self.PerformLLong(op, [loc1], loc0) - self.rm.possibly_free_vars_for_op(op) def _consider_math_sqrt(self, op): loc0 = self.xrm.force_result_in_reg(op.result, op.getarg(1)) self.PerformMath(op, [loc0], loc0) - self.xrm.possibly_free_var(op.getarg(1)) def _call(self, op, arglocs, force_store=[], guard_not_forced_op=None): # we need to save registers on the stack: @@ -852,7 +828,6 @@ self._call(op, [imm(size), sign_loc] + [self.loc(op.getarg(i)) for i in range(op.numargs())], guard_not_forced_op=guard_not_forced_op) - self.possibly_free_vars(op.getarglist()) def consider_call(self, op): effectinfo = op.getdescr().get_extra_info() @@ -904,7 +879,6 @@ xxx self._call(op, [frame_loc, self.loc(op.getarg(0))], guard_not_forced_op=guard_op) - self.possibly_free_var(op.getarg(0)) def consider_cond_call_gc_wb(self, op): assert op.result is None @@ -916,7 +890,6 @@ arglocs = [self.rm.make_sure_var_in_reg(op.getarg(i), args) for i in range(N)] self.PerformDiscard(op, arglocs) - self.rm.possibly_free_vars_for_op(op) consider_cond_call_gc_wb_array = consider_cond_call_gc_wb @@ -952,7 +925,6 @@ base_loc = self.rm.make_sure_var_in_reg(op.getarg(0), args) value_loc = self.make_sure_var_in_reg(op.getarg(1), args, need_lower_byte=need_lower_byte) - self.possibly_free_vars(args) self.PerformDiscard(op, [base_loc, ofs_loc, size_loc, value_loc]) consider_setfield_raw = consider_setfield_gc @@ -998,7 +970,6 @@ ofs_loc = self.rm.make_sure_var_in_reg(op.getarg(1), args) value_loc = self.rm.make_sure_var_in_reg(op.getarg(2), args, need_lower_byte=True) - self.rm.possibly_free_vars_for_op(op) self.PerformDiscard(op, [base_loc, ofs_loc, value_loc]) consider_unicodesetitem = consider_strsetitem @@ -1014,7 +985,6 @@ value_loc = self.make_sure_var_in_reg(op.getarg(2), args, need_lower_byte=need_lower_byte) ofs_loc = self.rm.make_sure_var_in_reg(op.getarg(1), args) - self.possibly_free_vars(args) self.PerformDiscard(op, [base_loc, ofs_loc, value_loc, imm(itemsize), imm(ofs)]) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit