[pypy-commit] pypy share-guard-info: kill the feature of removing guards for now, since it seems to be a bit too fragile
fijal
noreply at buildbot.pypy.org
Mon Sep 28 09:10:34 CEST 2015
Author: Maciej Fijalkowski <fijall at 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
More information about the pypy-commit
mailing list