Author: Alex Gaynor <alex.gay...@gmail.com> Branch: inline-virtualref Changeset: r60267:81cea2b96fd7 Date: 2013-01-20 21:46 -0800 http://bitbucket.org/pypy/pypy/changeset/81cea2b96fd7/
Log: try to pass stuff that's really the right type, except now it fails for another (more obscure reasons) diff --git a/rpython/jit/backend/llgraph/runner.py b/rpython/jit/backend/llgraph/runner.py --- a/rpython/jit/backend/llgraph/runner.py +++ b/rpython/jit/backend/llgraph/runner.py @@ -1,19 +1,21 @@ -import py, weakref +import weakref + +import py + from rpython.jit.backend import model from rpython.jit.backend.llgraph import support -from rpython.jit.metainterp.history import AbstractDescr -from rpython.jit.metainterp.history import Const, getkind -from rpython.jit.metainterp.history import INT, REF, FLOAT, VOID -from rpython.jit.metainterp.resoperation import rop from rpython.jit.codewriter import longlong, heaptracker from rpython.jit.codewriter.effectinfo import EffectInfo - +from rpython.jit.metainterp.history import (AbstractDescr, Const, getkind, INT, + REF, FLOAT, VOID) +from rpython.jit.metainterp.resoperation import rop from rpython.rtyper.llinterp import LLInterpreter, LLException from rpython.rtyper.lltypesystem import lltype, llmemory, rffi, rclass, rstr - +from rpython.rlib.objectmodel import compute_unique_id from rpython.rlib.rarithmetic import ovfcheck, r_uint, r_ulonglong from rpython.rlib.rtimer import read_timestamp + class LLTrace(object): has_been_freed = False invalid = False @@ -171,6 +173,7 @@ self.rtyper = rtyper self.llinterp = LLInterpreter(rtyper) self.descrs = {} + self.token_to_frame = {} class MiniStats: pass self.stats = stats or MiniStats() @@ -262,7 +265,7 @@ return gcref def force(self, force_token): - frame = force_token + frame = self.token_to_frame[force_token] assert isinstance(frame, LLFrame) assert frame.forced_deadframe is None values = [] @@ -905,7 +908,8 @@ return self.cpu.bh_new_with_vtable(vtable, descr) def execute_force_token(self, _): - return self + self.cpu.token_to_frame[compute_unique_id(self)] = self + return compute_unique_id(self) def execute_cond_call_gc_wb(self, descr, a, b): py.test.skip("cond_call_gc_wb not supported") diff --git a/rpython/jit/metainterp/virtualref.py b/rpython/jit/metainterp/virtualref.py --- a/rpython/jit/metainterp/virtualref.py +++ b/rpython/jit/metainterp/virtualref.py @@ -1,7 +1,7 @@ from rpython.annotator import model as annmodel from rpython.jit.codewriter import heaptracker from rpython.jit.metainterp import history -from rpython.rlib.jit import InvalidVirtualRef +from rpython.rlib.jit import InvalidVirtualRef, look_inside_iff from rpython.rtyper.annlowlevel import MixLevelHelperAnnotator from rpython.rtyper.lltypesystem import lltype, llmemory, rclass from rpython.rtyper.rmodel import inputconst, log diff --git a/rpython/rtyper/lltypesystem/rffi.py b/rpython/rtyper/lltypesystem/rffi.py --- a/rpython/rtyper/lltypesystem/rffi.py +++ b/rpython/rtyper/lltypesystem/rffi.py @@ -1,26 +1,26 @@ +import os +import sys + import py + from rpython.annotator import model as annmodel -from rpython.rtyper.lltypesystem import lltype, rstr -from rpython.rtyper.lltypesystem import ll2ctypes -from rpython.rtyper.lltypesystem.llmemory import cast_ptr_to_adr -from rpython.rtyper.lltypesystem.llmemory import itemoffsetof, raw_memcopy from rpython.annotator.model import lltype_to_annotation +from rpython.rlib import rarithmetic, rgc, jit +from rpython.rlib.objectmodel import (Symbolic, keepalive_until_here, + enforceargs, we_are_translated) +from rpython.rlib.rarithmetic import maxint, LONG_BIT +from rpython.rlib.rstring import StringBuilder, UnicodeBuilder, assert_str0 +from rpython.rlib.unroll import unrolling_iterable +from rpython.rtyper.annlowlevel import llhelper +from rpython.rtyper.extregistry import ExtRegistryEntry +from rpython.rtyper.lltypesystem import lltype, ll2ctypes, llmemory +from rpython.rtyper.lltypesystem.llmemory import (cast_ptr_to_adr, itemoffsetof, + raw_memcopy) +from rpython.rtyper.tool.rfficache import platform, sizeof_c_type from rpython.tool.sourcetools import func_with_new_name -from rpython.rlib.objectmodel import Symbolic -from rpython.rlib.objectmodel import keepalive_until_here, enforceargs -from rpython.rlib import rarithmetic, rgc -from rpython.rtyper.extregistry import ExtRegistryEntry -from rpython.rlib.unroll import unrolling_iterable -from rpython.rtyper.tool.rfficache import platform, sizeof_c_type +from rpython.translator.platform import CompilationError from rpython.translator.tool.cbuild import ExternalCompilationInfo -from rpython.rtyper.annlowlevel import llhelper -from rpython.rlib.objectmodel import we_are_translated -from rpython.rlib.rstring import StringBuilder, UnicodeBuilder, assert_str0 -from rpython.rlib import jit -from rpython.rtyper.lltypesystem import llmemory -from rpython.rlib.rarithmetic import maxint, LONG_BIT -from rpython.translator.platform import CompilationError -import os, sys + class CConstant(Symbolic): """ A C-level constant, maybe #define, rendered directly. _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit