Author: Richard Plangger <r...@pasra.at> Branch: memoryerror Changeset: r79184:e967b7cba547 Date: 2015-08-24 10:51 +0200 http://bitbucket.org/pypy/pypy/changeset/e967b7cba547/
Log: some more changes diff --git a/rpython/jit/metainterp/compile.py b/rpython/jit/metainterp/compile.py --- a/rpython/jit/metainterp/compile.py +++ b/rpython/jit/metainterp/compile.py @@ -532,7 +532,7 @@ class ResumeGuardDescr(ResumeDescr): _attrs_ = ('rd_numb', 'rd_count', 'rd_consts', 'rd_virtuals', 'rd_frame_info_list', 'rd_pendingfields', 'rd_accum_list', - 'status') + 'status', 'version') rd_numb = lltype.nullptr(NUMBERING) rd_count = 0 @@ -543,6 +543,7 @@ rd_accum_list = None status = r_uint(0) + version = None def copy_all_attributes_from(self, other): assert isinstance(other, ResumeGuardDescr) @@ -747,11 +748,6 @@ class CompileLoopVersionDescr(ResumeGuardDescr): guard_opnum = rop.GUARD_EARLY_EXIT - operations = None - inputargs = None - faillocs = None - version = None - def handle_fail(self, deadframe, metainterp_sd, jitdriver_sd): assert 0, "this guard must never fail" diff --git a/rpython/jit/metainterp/history.py b/rpython/jit/metainterp/history.py --- a/rpython/jit/metainterp/history.py +++ b/rpython/jit/metainterp/history.py @@ -893,6 +893,7 @@ # self.operations = self.operations[:-1] + loop.operations self.versions = loop.versions + loop.versions = None if loop.quasi_immutable_deps: self.quasi_immutable_deps.update(loop.quasi_immutable_deps) @@ -910,10 +911,6 @@ return None def snapshot(self): - if len(self.versions) == 0: - # create a root version, simplyfies the code in compile.py - self.versions.append(LoopVersion(None)) - root_version = self.versions[0] version = LoopVersion(self) self.versions.append(version) return version diff --git a/rpython/jit/metainterp/optimizeopt/vectorize.py b/rpython/jit/metainterp/optimizeopt/vectorize.py --- a/rpython/jit/metainterp/optimizeopt/vectorize.py +++ b/rpython/jit/metainterp/optimizeopt/vectorize.py @@ -42,7 +42,9 @@ if user_code and user_loop_bail_fast_path(loop, warmstate): return # the original loop (output of optimize_unroll) + loop.versions.append(LoopVersion(None)) version = loop.snapshot() + old_loop_len = len(loop.operations) try: debug_start("vec-opt-loop") metainterp_sd.logger_noopt.log_loop(loop.inputargs, loop.operations, -2, None, None, "pre vectorize") @@ -65,7 +67,7 @@ # nano = int((end-start)*10.0**9) debug_print("# vecopt factor: %d opcount: (%d -> %d) took %dns" % \ - (opt.unroll_count+1, len(version.operations), len(loop.operations), nano)) + (opt.unroll_count+1, old_loop_len, len(loop.operations), nano)) debug_stop("vec-opt-loop") # except NotAVectorizeableLoop: @@ -87,8 +89,7 @@ from rpython.rtyper.lltypesystem import lltype from rpython.rtyper.lltypesystem.lloperation import llop llop.debug_print_traceback(lltype.Void) - else: - raise + raise e def user_loop_bail_fast_path(loop, warmstate): """ In a fast path over the trace loop: try to prevent vecopt @@ -628,7 +629,8 @@ descr = None guard_true_false = tgt_op.getopnum() in (rop.GUARD_TRUE, rop.GUARD_FALSE) if guard_true_false: - descr = CompileLoopVersionDescr() + #descr = CompileLoopVersionDescr() + descr = ResumeAtLoopHeaderDescr() else: descr = ResumeAtLoopHeaderDescr() if olddescr: _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit