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

Reply via email to