Author: Richard Plangger <planri...@gmail.com> Branch: vecopt-merge Changeset: r79823:a79a0fc8b3ea Date: 2015-09-25 15:43 +0200 http://bitbucket.org/pypy/pypy/changeset/a79a0fc8b3ea/
Log: translation issues resolved, should compile now diff --git a/rpython/jit/backend/x86/vector_ext.py b/rpython/jit/backend/x86/vector_ext.py --- a/rpython/jit/backend/x86/vector_ext.py +++ b/rpython/jit/backend/x86/vector_ext.py @@ -67,7 +67,7 @@ def _blend_unused_slots(self, loc, arg, temp): select = 0 - bits_used = (arg.item_count * arg.item_size * 8) + bits_used = (arg.count * arg.bytesize * 8) index = bits_used // 16 while index < 8: select |= (1 << index) @@ -637,11 +637,11 @@ args = op.getarglist() srcloc = self.make_sure_var_in_reg(op.getarg(0), args) if op.is_vector(): - resloc = self.xrm.force_result_in_reg(op.result, op.getarg(0), args) + resloc = self.xrm.force_result_in_reg(op, op.getarg(0), args) size = op.bytesize else: # unpack into iX box - resloc = self.force_allocate_reg(op.result, args) + resloc = self.force_allocate_reg(op, args) arg = op.getarg(0) size = arg.bytesize residx = 0 diff --git a/rpython/jit/metainterp/optimizeopt/dependency.py b/rpython/jit/metainterp/optimizeopt/dependency.py --- a/rpython/jit/metainterp/optimizeopt/dependency.py +++ b/rpython/jit/metainterp/optimizeopt/dependency.py @@ -189,8 +189,7 @@ def exits_early(self): if self.op.is_guard(): descr = self.op.getdescr() - return isinstance(descr, compile.ResumeAtLoopHeaderDescr) or \ - isinstance(descr, compile.CompileLoopVersionDescr) + return isinstance(descr, compile.CompileLoopVersionDescr) return False def loads_from_complex_object(self): @@ -724,8 +723,7 @@ self.guard_argument_protection(guard_node, tracker) # descr = guard_op.getdescr() - if isinstance(descr, compile.ResumeAtLoopHeaderDescr) or \ - isinstance(descr, compile.CompileLoopVersionDescr): + if isinstance(descr, compile.CompileLoopVersionDescr): return # handle fail args if guard_op.getfailargs(): diff --git a/rpython/jit/metainterp/optimizeopt/test/test_dependency.py b/rpython/jit/metainterp/optimizeopt/test/test_dependency.py --- a/rpython/jit/metainterp/optimizeopt/test/test_dependency.py +++ b/rpython/jit/metainterp/optimizeopt/test/test_dependency.py @@ -6,7 +6,6 @@ from rpython.jit.metainterp.history import TargetToken, JitCellToken, TreeLoop from rpython.jit.metainterp.optimizeopt.dependency import (DependencyGraph, Dependency, IndexVar, MemoryRef, Node) -from rpython.jit.metainterp.compile import ResumeAtLoopHeaderDescr from rpython.jit.metainterp.optimizeopt.vector import VectorLoop from rpython.jit.metainterp.resoperation import rop, ResOperation from rpython.jit.backend.llgraph.runner import ArrayDescr @@ -55,10 +54,6 @@ jump = loop.operations[-1] loop = VectorLoop(label, loop.operations[0:-1], jump) loop.jump.setdescr(token) - # TODO - for op in loop.operations: - if op.getopnum() == rop.GUARD_EARLY_EXIT and op.getdescr() is None: - op.setdescr(ResumeAtLoopHeaderDescr()) return loop def parse_trace(self, source, inc_label_jump=True, pargs=2, iargs=10, diff --git a/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py b/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py --- a/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py +++ b/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py @@ -97,12 +97,6 @@ unroll_factor = opt.get_unroll_count(ARCH_VEC_REG_SIZE) print "" print "unroll factor: ", unroll_factor, opt.smallest_type_bytes - # TODO if opt.loop.find_first_index(rop.GUARD_EARLY_EXIT) == -1: - # idx = loop.find_first_index(rop.LABEL) - # guard = ResOperation(rop.GUARD_EARLY_EXIT, [], None) - # guard.setfailargs([]) - # guard.setdescr(compile.ResumeAtLoopHeaderDescr()) - # loop.operations.insert(idx+1, guard) self.show_dot_graph(DependencyGraph(loop), "original_" + self.test_name) graph = opt.analyse_index_calculations(loop) if graph is not None: diff --git a/rpython/jit/metainterp/optimizeopt/vector.py b/rpython/jit/metainterp/optimizeopt/vector.py --- a/rpython/jit/metainterp/optimizeopt/vector.py +++ b/rpython/jit/metainterp/optimizeopt/vector.py @@ -11,8 +11,8 @@ from rpython.jit.metainterp.resume import Snapshot from rpython.jit.metainterp.jitexc import NotAVectorizeableLoop, NotAProfitableLoop #from rpython.jit.metainterp.optimizeopt.unroll import optimize_unroll -from rpython.jit.metainterp.compile import (ResumeAtLoopHeaderDescr, - CompileLoopVersionDescr, invent_fail_descr_for_op, ResumeGuardDescr) +from rpython.jit.metainterp.compile import (CompileLoopVersionDescr, + invent_fail_descr_for_op, ResumeGuardDescr) from rpython.jit.metainterp.history import (INT, FLOAT, VECTOR, ConstInt, ConstFloat, TargetToken, JitCellToken, AbstractFailDescr) from rpython.jit.metainterp.optimizeopt.optimizer import Optimizer, Optimization diff --git a/rpython/jit/metainterp/optimizeopt/version.py b/rpython/jit/metainterp/optimizeopt/version.py --- a/rpython/jit/metainterp/optimizeopt/version.py +++ b/rpython/jit/metainterp/optimizeopt/version.py @@ -7,7 +7,8 @@ class LoopVersionInfo(BasicLoopInfo): def __init__(self, info): - self.target_token = info.target_token + assert isinstance(info, BasicLoopInfo) + #self.target_token = info.target_token self.label_op = info.label_op self.extra_same_as = info.extra_same_as self.quasi_immutable_deps = info.quasi_immutable_deps @@ -81,7 +82,7 @@ param = compiled[version] cpu.stitch_bridge(descr, param) - self.versions = None # dismiss versions + self.versions = [] # dismiss versions class LoopVersion(object): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit