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

Reply via email to