[pypy-commit] pypy kill-ootype: Kill get_funcobj() because it is now trivial
rlamy
noreply at buildbot.pypy.org
Tue Jul 23 14:11:30 CEST 2013
Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: kill-ootype
Changeset: r65554:4cd0c0e9db23
Date: 2013-07-23 14:10 +0200
http://bitbucket.org/pypy/pypy/changeset/4cd0c0e9db23/
Log: Kill get_funcobj() because it is now trivial
diff --git a/rpython/jit/backend/llsupport/support.py b/rpython/jit/backend/llsupport/support.py
--- a/rpython/jit/backend/llsupport/support.py
+++ b/rpython/jit/backend/llsupport/support.py
@@ -1,4 +1,3 @@
-from rpython.translator.simplify import get_funcobj
from rpython.rtyper.llinterp import LLInterpreter
from rpython.rtyper.lltypesystem import lltype, rffi
from rpython.rtyper.extregistry import ExtRegistryEntry
@@ -28,7 +27,7 @@
i += 1
return real_args
- funcobj = get_funcobj(fnptr)
+ funcobj = fnptr._obj
if hasattr(funcobj, 'graph'):
# cache the llinterp; otherwise the remember_malloc/remember_free
# done on the LLInterpreter don't match
diff --git a/rpython/jit/codewriter/call.py b/rpython/jit/codewriter/call.py
--- a/rpython/jit/codewriter/call.py
+++ b/rpython/jit/codewriter/call.py
@@ -8,7 +8,7 @@
from rpython.jit.codewriter.effectinfo import (VirtualizableAnalyzer,
QuasiImmutAnalyzer, RandomEffectsAnalyzer, effectinfo_from_writeanalyze,
EffectInfo, CallInfoCollection)
-from rpython.translator.simplify import get_funcobj, get_functype
+from rpython.translator.simplify import get_functype
from rpython.rtyper.lltypesystem import lltype, llmemory
from rpython.translator.backendopt.canraise import RaiseAnalyzer
from rpython.translator.backendopt.writeanalyze import ReadWriteAnalyzer
@@ -86,7 +86,7 @@
if is_candidate is None:
is_candidate = self.is_candidate
if op.opname == 'direct_call':
- funcobj = get_funcobj(op.args[0].value)
+ funcobj = op.args[0].value._obj
graph = funcobj.graph
if is_candidate(graph):
return [graph] # common case: look inside this graph
@@ -130,7 +130,7 @@
funcptr = op.args[0].value
if self.jitdriver_sd_from_portal_runner_ptr(funcptr) is not None:
return 'recursive'
- funcobj = get_funcobj(funcptr)
+ funcobj = funcptr._obj
if getattr(funcobj, 'graph', None) is None:
return 'residual'
targetgraph = funcobj.graph
@@ -222,7 +222,7 @@
loopinvariant = False
call_release_gil_target = llmemory.NULL
if op.opname == "direct_call":
- funcobj = get_funcobj(op.args[0].value)
+ funcobj = op.args[0].value._obj
assert getattr(funcobj, 'calling_conv', 'c') == 'c', (
"%r: getcalldescr() with a non-default call ABI" % (op,))
func = getattr(funcobj, '_callable', None)
diff --git a/rpython/jit/codewriter/jtransform.py b/rpython/jit/codewriter/jtransform.py
--- a/rpython/jit/codewriter/jtransform.py
+++ b/rpython/jit/codewriter/jtransform.py
@@ -14,7 +14,6 @@
from rpython.rlib.rgc import lltype_is_gc
from rpython.rtyper.lltypesystem import lltype, llmemory, rstr, rclass, rffi
from rpython.rtyper.rclass import IR_QUASIIMMUTABLE, IR_QUASIIMMUTABLE_ARRAY
-from rpython.translator.simplify import get_funcobj
from rpython.translator.unsimplify import varoftype
class UnsupportedMallocFlags(Exception):
@@ -1444,7 +1443,7 @@
# because functions that are neither nonneg nor fast don't have an
# oopspec any more
# xxx break of abstraction:
- func = get_funcobj(op.args[0].value)._callable
+ func = op.args[0].value._obj._callable
# base hints on the name of the ll function, which is a bit xxx-ish
# but which is safe for now
assert func.func_name.startswith('ll_')
diff --git a/rpython/jit/codewriter/support.py b/rpython/jit/codewriter/support.py
--- a/rpython/jit/codewriter/support.py
+++ b/rpython/jit/codewriter/support.py
@@ -15,7 +15,6 @@
from rpython.rtyper.lltypesystem import lltype, rclass, rffi, llmemory, rstr as ll_rstr, rdict as ll_rdict
from rpython.rtyper.lltypesystem.lloperation import llop
from rpython.rtyper.lltypesystem.module import ll_math
-from rpython.translator.simplify import get_funcobj
from rpython.translator.translator import TranslationContext
from rpython.translator.unsimplify import split_block
@@ -149,7 +148,7 @@
def maybe_on_top_of_llinterp(rtyper, fnptr):
# Run a generated graph on top of the llinterp for testing.
# When translated, this just returns the fnptr.
- funcobj = get_funcobj(fnptr)
+ funcobj = fnptr._obj
if hasattr(funcobj, 'graph'):
llinterp = LLInterpreter(rtyper) #, exc_data_ptr=exc_data_ptr)
def on_top_of_llinterp(*args):
@@ -772,7 +771,7 @@
def decode_builtin_call(op):
if op.opname == 'direct_call':
- fnobj = get_funcobj(op.args[0].value)
+ fnobj = op.args[0].value._obj
opargs = op.args[1:]
return get_call_oopspec_opargs(fnobj, opargs)
elif op.opname == 'gc_identityhash':
diff --git a/rpython/jit/metainterp/warmspot.py b/rpython/jit/metainterp/warmspot.py
--- a/rpython/jit/metainterp/warmspot.py
+++ b/rpython/jit/metainterp/warmspot.py
@@ -247,7 +247,7 @@
test_ajit::test_inline_jit_merge_point
"""
from rpython.translator.backendopt.inline import (
- get_funcobj, inlinable_static_callers, auto_inlining)
+ inlinable_static_callers, auto_inlining)
jmp_calls = {}
def get_jmp_call(graph, _inline_jit_merge_point_):
@@ -277,7 +277,7 @@
msg = ("The first operation of an _inline_jit_merge_point_ graph must be "
"a direct_call to the function passed to @jitdriver.inline()")
assert op_jmp_call.opname == 'direct_call', msg
- jmp_funcobj = get_funcobj(op_jmp_call.args[0].value)
+ jmp_funcobj = op_jmp_call.args[0].value._obj
assert jmp_funcobj._callable is _inline_jit_merge_point_, msg
jmp_block.operations.remove(op_jmp_call)
return op_jmp_call, jmp_funcobj.graph
diff --git a/rpython/rtyper/test/test_rlist.py b/rpython/rtyper/test/test_rlist.py
--- a/rpython/rtyper/test/test_rlist.py
+++ b/rpython/rtyper/test/test_rlist.py
@@ -1382,7 +1382,6 @@
assert res == True
def test_immutable_list_out_of_instance(self):
- from rpython.translator.simplify import get_funcobj
for immutable_fields in (["a", "b"], ["a", "b", "y[*]"]):
class A(object):
_immutable_fields_ = immutable_fields
@@ -1401,7 +1400,7 @@
block = graph.startblock
op = block.operations[-1]
assert op.opname == 'direct_call'
- func = get_funcobj(op.args[0].value)._callable
+ func = op.args[0].value._obj._callable
assert ('foldable' in func.func_name) == \
("y[*]" in immutable_fields)
diff --git a/rpython/translator/backendopt/canraise.py b/rpython/translator/backendopt/canraise.py
--- a/rpython/translator/backendopt/canraise.py
+++ b/rpython/translator/backendopt/canraise.py
@@ -3,7 +3,6 @@
from rpython.rtyper.lltypesystem.lloperation import LL_OPERATIONS
from rpython.tool.ansi_print import ansi_log
from rpython.translator.backendopt import graphanalyze
-from rpython.translator.simplify import get_funcobj
log = py.log.Producer("canraise")
py.log.setconsumer("canraise", ansi_log)
@@ -18,7 +17,7 @@
return True
def analyze_external_call(self, op, seen=None):
- fnobj = get_funcobj(op.args[0].value)
+ fnobj = op.args[0].value._obj
return getattr(fnobj, 'canraise', True)
def analyze_external_method(self, op, TYPE, meth):
diff --git a/rpython/translator/backendopt/graphanalyze.py b/rpython/translator/backendopt/graphanalyze.py
--- a/rpython/translator/backendopt/graphanalyze.py
+++ b/rpython/translator/backendopt/graphanalyze.py
@@ -1,4 +1,4 @@
-from rpython.translator.simplify import get_graph, get_funcobj
+from rpython.translator.simplify import get_graph
from rpython.tool.algo.unionfind import UnionFind
@@ -52,7 +52,7 @@
return self.bottom_result()
def analyze_external_call(self, op, seen=None):
- funcobj = get_funcobj(op.args[0].value)
+ funcobj = op.args[0].value._obj
result = self.bottom_result()
if hasattr(funcobj, '_callbacks'):
bk = self.translator.annotator.bookkeeper
diff --git a/rpython/translator/backendopt/inline.py b/rpython/translator/backendopt/inline.py
--- a/rpython/translator/backendopt/inline.py
+++ b/rpython/translator/backendopt/inline.py
@@ -8,7 +8,7 @@
from rpython.translator.backendopt import removenoops
from rpython.translator.backendopt.canraise import RaiseAnalyzer
from rpython.translator.backendopt.support import log, find_loop_blocks
-from rpython.translator.simplify import join_blocks, cleanup_graph, get_graph, get_funcobj
+from rpython.translator.simplify import join_blocks, cleanup_graph, get_graph
from rpython.translator.unsimplify import copyvar, split_block
@@ -63,7 +63,7 @@
for block in graph.iterblocks():
for i, op in enumerate(block.operations):
if op.opname == "direct_call":
- funcobj = get_funcobj(op.args[0].value)
+ funcobj = op.args[0].value._obj
elif op.opname == "oosend":
funcobj = get_meth_from_oosend(op)
if funcobj is None:
@@ -218,7 +218,7 @@
def get_graph_from_op(self, op):
assert op.opname in ('direct_call', 'oosend')
if op.opname == 'direct_call':
- return get_funcobj(self.op.args[0].value).graph
+ return self.op.args[0].value._obj.graph
else:
return get_meth_from_oosend(op).graph
@@ -246,7 +246,7 @@
d = {}
for i, op in enumerate(block.operations):
if op.opname == "direct_call":
- funcobj = get_funcobj(op.args[0].value)
+ funcobj = op.args[0].value._obj
elif op.opname == "oosend":
funcobj = get_meth_from_oosend(op)
if funcobj is None:
@@ -622,7 +622,7 @@
for block in parentgraph.iterblocks():
for op in block.operations:
if op.opname == "direct_call":
- funcobj = get_funcobj(op.args[0].value)
+ funcobj = op.args[0].value._obj
graph = getattr(funcobj, 'graph', None)
if graph is not None and graph in ok_to_call:
if getattr(getattr(funcobj, '_callable', None),
@@ -654,7 +654,7 @@
op = ops[i]
i -= 1
if op.opname == "direct_call":
- funcobj = get_funcobj(op.args[0].value)
+ funcobj = op.args[0].value._obj
graph = getattr(funcobj, 'graph', None)
if graph is not None:
if getattr(getattr(funcobj, '_callable', None),
diff --git a/rpython/translator/backendopt/test/test_canraise.py b/rpython/translator/backendopt/test/test_canraise.py
--- a/rpython/translator/backendopt/test/test_canraise.py
+++ b/rpython/translator/backendopt/test/test_canraise.py
@@ -1,6 +1,4 @@
-import py
from rpython.translator.translator import TranslationContext, graphof
-from rpython.translator.simplify import get_funcobj
from rpython.translator.backendopt.canraise import RaiseAnalyzer
from rpython.translator.backendopt.all import backend_optimizations
from rpython.conftest import option
@@ -144,7 +142,7 @@
# check that we fished the expected ops
def check_call(op, fname):
assert op.opname == "direct_call"
- assert get_funcobj(op.args[0].value)._name == fname
+ assert op.args[0].value._obj._name == fname
check_call(op_call_f, "f")
check_call(op_call_m, "m")
diff --git a/rpython/translator/backendopt/test/test_writeanalyze.py b/rpython/translator/backendopt/test/test_writeanalyze.py
--- a/rpython/translator/backendopt/test/test_writeanalyze.py
+++ b/rpython/translator/backendopt/test/test_writeanalyze.py
@@ -1,7 +1,5 @@
-import py
from rpython.rtyper.lltypesystem import lltype
from rpython.translator.translator import TranslationContext, graphof
-from rpython.translator.simplify import get_funcobj
from rpython.translator.backendopt.writeanalyze import WriteAnalyzer, top_set
from rpython.translator.backendopt.writeanalyze import ReadWriteAnalyzer
from rpython.translator.backendopt.all import backend_optimizations
@@ -159,7 +157,7 @@
# check that we fished the expected ops
def check_call(op, fname):
assert op.opname == "direct_call"
- assert get_funcobj(op.args[0].value)._name == fname
+ assert op.args[0].value._obj._name == fname
check_call(op_call_f, "f")
check_call(op_call_m, "m")
@@ -193,7 +191,6 @@
def test_llexternal(self):
from rpython.rtyper.lltypesystem.rffi import llexternal
- from rpython.rtyper.lltypesystem import lltype
z = llexternal('z', [lltype.Signed], lltype.Signed)
def f(x):
return z(x)
@@ -307,7 +304,7 @@
# check that we fished the expected ops
assert op_call_f.opname == "direct_call"
- assert get_funcobj(op_call_f.args[0].value)._name == 'A.f'
+ assert op_call_f.args[0].value._obj._name == 'A.f'
result = wa.analyze(op_call_f)
assert len(result) == 2
diff --git a/rpython/translator/simplify.py b/rpython/translator/simplify.py
--- a/rpython/translator/simplify.py
+++ b/rpython/translator/simplify.py
@@ -4,7 +4,6 @@
simplify_graph() applies all simplifications defined in this file.
"""
-
import py
from rpython.flowspace import operation
@@ -16,16 +15,6 @@
from rpython.rtyper.lltypesystem import lloperation, lltype
from rpython.rtyper.ootypesystem import ootype
-def get_funcobj(func):
- """
- Return an object which is supposed to have attributes such as graph and
- _callable
- """
- if hasattr(func, '_obj'):
- return func._obj # lltypesystem
- else:
- return func # ootypesystem
-
def get_functype(TYPE):
if isinstance(TYPE, lltype.Ptr):
return TYPE.TO
@@ -39,7 +28,7 @@
f = arg.value
if not isinstance(f, lltype._ptr) and not isinstance(f, ootype._callable):
return None
- funcobj = get_funcobj(f)
+ funcobj = f._obj
try:
callable = funcobj._callable
except (AttributeError, KeyError, AssertionError):
More information about the pypy-commit
mailing list