Author: Richard Plangger <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit