Author: Maciej Fijalkowski <fij...@gmail.com> Branch: share-guard-info Changeset: r79875:18f9fb59e58b Date: 2015-09-28 09:10 +0200 http://bitbucket.org/pypy/pypy/changeset/18f9fb59e58b/
Log: kill the feature of removing guards for now, since it seems to be a bit too fragile diff --git a/rpython/jit/metainterp/optimizeopt/heap.py b/rpython/jit/metainterp/optimizeopt/heap.py --- a/rpython/jit/metainterp/optimizeopt/heap.py +++ b/rpython/jit/metainterp/optimizeopt/heap.py @@ -288,29 +288,7 @@ cf = submap[index] = ArrayCachedField(index) return cf - def emit_operation(self, op): - if op.is_guard(): - assert isinstance(op, GuardResOp) - origin_jitcode = self.optimizer.origin_jitcode - origin_pc = self.optimizer.origin_pc - if origin_jitcode is not None: - if (origin_jitcode is op.rd_frame_info_list.jitcode and - origin_pc == op.rd_frame_info_list.pc): - self.optimizer.origin_jitcode = None - self.optimizer.origin_pc = 0 - elif op.getopnum() == rop.GUARD_NO_OVERFLOW: - if self.postponed_op: - # XXX is this always the case? - assert self.postponed_op.is_ovf() - newop = self.optimizer.replace_op_with_no_ovf( - self.postponed_op) - self.postponed_op = newop - else: - self.optimizer.potentially_change_ovf_op_to_no_ovf(op) - return # we optimize the guard - elif op.getopnum() != rop.GUARD_OVERFLOW: - return - + def emit_operation(self, op): self.emitting_operation(op) self.emit_postponed_op() if (op.is_comparison() or op.is_call_may_force() diff --git a/rpython/jit/metainterp/optimizeopt/optimizer.py b/rpython/jit/metainterp/optimizeopt/optimizer.py --- a/rpython/jit/metainterp/optimizeopt/optimizer.py +++ b/rpython/jit/metainterp/optimizeopt/optimizer.py @@ -504,10 +504,6 @@ def propagate_all_forward(self, inputargs, ops, call_pure_results=None, rename_inputargs=True, flush=True, origin_jitcode=None, origin_pc=0): - #if origin_jitcode is not None: - # debug_print("looking for guard at %s %d" % (origin_jitcode.name, origin_pc)) - self.origin_jitcode = None # origin_jitcode - self.origin_pc = origin_pc if rename_inputargs: newargs = [] for inparg in inputargs: @@ -533,9 +529,6 @@ if extra_jump: self.first_optimization.propagate_forward(ops[-1]) self.resumedata_memo.update_counters(self.metainterp_sd.profiler) - - if self.origin_jitcode is not None: - raise Exception("Was looking for guard never foudnd it") return (BasicLoopInfo(newargs, self.quasi_immutable_deps), self._newoperations) diff --git a/rpython/jit/metainterp/pyjitpl.py b/rpython/jit/metainterp/pyjitpl.py --- a/rpython/jit/metainterp/pyjitpl.py +++ b/rpython/jit/metainterp/pyjitpl.py @@ -2473,10 +2473,6 @@ def prepare_resume_from_failure(self, deadframe, resumedescr): exception = self.cpu.grab_exc_value(deadframe) - if isinstance(resumedescr, compile.ResumeGuardDescr): - name = resumedescr.rd_frame_info_list.jitcode.name - pc = resumedescr.rd_frame_info_list.pc - #debug_print("resuming at %d %s %d" % (name, pc, compute_unique_id(resumedescr))) if isinstance(resumedescr, compile.ResumeGuardExcDescr): if exception: self.execute_ll_raised(lltype.cast_opaque_ptr(rclass.OBJECTPTR, diff --git a/rpython/jit/metainterp/test/test_loop.py b/rpython/jit/metainterp/test/test_loop.py --- a/rpython/jit/metainterp/test/test_loop.py +++ b/rpython/jit/metainterp/test/test_loop.py @@ -1089,9 +1089,9 @@ self.meta_interp(f, [30]) self.check_trace_count(3) -<<<<<<< local def test_sharing_guards(self): + py.test.skip("unimplemented") driver = JitDriver(greens = [], reds = 'auto') def f(i): @@ -1108,8 +1108,6 @@ self.meta_interp(f, [15]) # one guard_false got removed self.check_resops(guard_false=4, guard_true=5) -======= ->>>>>>> other class TestLLtype(LoopTest, LLJitMixin): pass _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit