[pypy-svn] r56730 - in pypy/branch/oo-jit/pypy/jit/codegen/cli: . test

antocuni at codespeak.net antocuni at codespeak.net
Wed Jul 23 10:23:22 CEST 2008


Author: antocuni
Date: Wed Jul 23 10:23:17 2008
New Revision: 56730

Added:
   pypy/branch/oo-jit/pypy/jit/codegen/cli/methodfactory.py
      - copied, changed from r56658, pypy/branch/oo-jit/pypy/jit/codegen/cli/methodbuilder.py
Removed:
   pypy/branch/oo-jit/pypy/jit/codegen/cli/methodbuilder.py
Modified:
   pypy/branch/oo-jit/pypy/jit/codegen/cli/operation.py
   pypy/branch/oo-jit/pypy/jit/codegen/cli/rgenop.py
   pypy/branch/oo-jit/pypy/jit/codegen/cli/test/test_rgenop.py
Log:
finally fix a design that grew badly for historical reasons:

  - rename GraphBuilder and MethodBuilder to GraphGenerator and
    MethodGenerator; they are no longer GenBuilder now

  - the only subclass of GenBuilder is BranchBuilder;
    rgenop.newgraph() returns the first branch of the GraphGenerator

  - rename methbuilder.py to methfactory.py, and inside the module
    AbstractMethodBuilder to AbstractMethodWrapper etc.; there where
    confusion because there is a .NET class whose name is exactly
    MethodBuilder

  - rename methbuilder to meth everywhere




Modified: pypy/branch/oo-jit/pypy/jit/codegen/cli/operation.py
==============================================================================
--- pypy/branch/oo-jit/pypy/jit/codegen/cli/operation.py	(original)
+++ pypy/branch/oo-jit/pypy/jit/codegen/cli/operation.py	Wed Jul 23 10:23:17 2008
@@ -17,7 +17,7 @@
         if self._gv_res is None:
             restype = self.restype()
             if restype is not None:
-                loc = self.methbuilder.il.DeclareLocal(restype)
+                loc = self.meth.il.DeclareLocal(restype)
                 self._gv_res = GenLocalVar(loc)
         return self._gv_res
 
@@ -28,38 +28,38 @@
         raise NotImplementedError
 
     def storeResult(self):
-        self.gv_res().store(self.methbuilder)
+        self.gv_res().store(self.meth)
 
 
 class UnaryOp(Operation):
-    def __init__(self, methbuilder, gv_x):
-        self.methbuilder = methbuilder
+    def __init__(self, meth, gv_x):
+        self.meth = meth
         self.gv_x = gv_x
 
     def pushAllArgs(self):
-        self.gv_x.load(self.methbuilder)
+        self.gv_x.load(self.meth)
 
     def emit(self):
         self.pushAllArgs()
-        self.methbuilder.il.Emit(self.getOpCode())
+        self.meth.il.Emit(self.getOpCode())
         self.storeResult()
 
     def getOpCode(self):
         raise NotImplementedError
 
 class BinaryOp(Operation):
-    def __init__(self, methbuilder, gv_x, gv_y):
-        self.methbuilder = methbuilder
+    def __init__(self, meth, gv_x, gv_y):
+        self.meth = meth
         self.gv_x = gv_x
         self.gv_y = gv_y
 
     def pushAllArgs(self):
-        self.gv_x.load(self.methbuilder)
-        self.gv_y.load(self.methbuilder)
+        self.gv_x.load(self.meth)
+        self.gv_y.load(self.meth)
 
     def emit(self):
         self.pushAllArgs()
-        self.methbuilder.il.Emit(self.getOpCode())
+        self.meth.il.Emit(self.getOpCode())
         self.storeResult()
 
     def getOpCode(self):
@@ -69,25 +69,25 @@
 class SameAs(UnaryOp):
     def emit(self):
         gv_res = self.gv_res()
-        self.gv_x.load(self.methbuilder)
-        self.gv_res().store(self.methbuilder)
+        self.gv_x.load(self.meth)
+        self.gv_res().store(self.meth)
 
 class MarkLabel(Operation):
 
-    def __init__(self, methbuilder, label):
-        self.methbuilder = methbuilder
+    def __init__(self, meth, label):
+        self.meth = meth
         self.label = label
 
     def restype(self):
         return None
 
     def emit(self):
-        self.methbuilder.il.MarkLabel(self.label)
+        self.meth.il.MarkLabel(self.label)
         
 class FollowLink(Operation):
     
-    def __init__(self, methbuilder, outputargs_gv, inputargs_gv, label):
-        self.methbuilder = methbuilder
+    def __init__(self, meth, outputargs_gv, inputargs_gv, label):
+        self.meth = meth
         self.outputargs_gv = outputargs_gv
         self.inputargs_gv = inputargs_gv
         self.label = label
@@ -97,15 +97,15 @@
 
     def emit(self):
         for i in range(len(self.outputargs_gv)):
-            self.outputargs_gv[i].load(self.methbuilder)
-            self.inputargs_gv[i].store(self.methbuilder)
-        self.methbuilder.il.Emit(OpCodes.Br, self.label)
+            self.outputargs_gv[i].load(self.meth)
+            self.inputargs_gv[i].store(self.meth)
+        self.meth.il.Emit(OpCodes.Br, self.label)
 
 
 class Branch(Operation):
     
-    def __init__(self, methbuilder, gv_cond, opcode, label):
-        self.methbuilder = methbuilder
+    def __init__(self, meth, gv_cond, opcode, label):
+        self.meth = meth
         self.gv_cond = gv_cond
         self.opcode = opcode
         self.label = label
@@ -115,31 +115,31 @@
 
     def emit(self):
         if self.gv_cond is not None:
-            self.gv_cond.load(self.methbuilder)
-        self.methbuilder.il.Emit(self.opcode, self.label)
+            self.gv_cond.load(self.meth)
+        self.meth.il.Emit(self.opcode, self.label)
 
 class Return(Operation):
 
-    def __init__(self, methbuilder, gv_x):
-        self.methbuilder = methbuilder
+    def __init__(self, meth, gv_x):
+        self.meth = meth
         self.gv_x = gv_x
 
     def restype(self):
         return None
 
     def emit(self):
-        retvar = self.methbuilder.retvar
-        retlabel = self.methbuilder.retlabel
+        retvar = self.meth.retvar
+        retlabel = self.meth.retlabel
         if self.gv_x is not None:
-            self.gv_x.load(self.methbuilder)
-            self.methbuilder.il.Emit(OpCodes.Stloc, retvar)
-        self.methbuilder.il.Emit(OpCodes.Br, retlabel)
+            self.gv_x.load(self.meth)
+            self.meth.il.Emit(OpCodes.Stloc, retvar)
+        self.meth.il.Emit(OpCodes.Br, retlabel)
 
 class Call(Operation):
 
-    def __init__(self, methbuilder, sigtoken, gv_fnptr, args_gv):
+    def __init__(self, meth, sigtoken, gv_fnptr, args_gv):
         from pypy.jit.codegen.cli.rgenop import class2type
-        self.methbuilder = methbuilder
+        self.meth = meth
         self.sigtoken = sigtoken
         self.gv_fnptr = gv_fnptr
         self.args_gv = args_gv
@@ -152,18 +152,18 @@
         from pypy.jit.codegen.cli.rgenop import class2type
         delegate_type = class2type(self.sigtoken.funcclass)
         meth_invoke = delegate_type.GetMethod('Invoke')
-        self.gv_fnptr.load(self.methbuilder)
-        self.methbuilder.il.Emit(OpCodes.Castclass, delegate_type)
+        self.gv_fnptr.load(self.meth)
+        self.meth.il.Emit(OpCodes.Castclass, delegate_type)
         for gv_arg in self.args_gv:
-            gv_arg.load(self.methbuilder)
-        self.methbuilder.il.EmitCall(OpCodes.Callvirt, meth_invoke, None)
+            gv_arg.load(self.meth)
+        self.meth.il.EmitCall(OpCodes.Callvirt, meth_invoke, None)
         self.storeResult()
 
 
 class GetField(Operation):
 
-    def __init__(self, methbuilder, gv_obj, fieldname):
-        self.methbuilder = methbuilder
+    def __init__(self, meth, gv_obj, fieldname):
+        self.meth = meth
         self.gv_obj = gv_obj
         clitype = gv_obj.getCliType()
         self.fieldinfo = clitype.GetField(fieldname)
@@ -172,15 +172,15 @@
         return self.fieldinfo.get_FieldType()
 
     def emit(self):
-        self.gv_obj.load(self.methbuilder)
-        self.methbuilder.il.Emit(OpCodes.Ldfld, self.fieldinfo)
+        self.gv_obj.load(self.meth)
+        self.meth.il.Emit(OpCodes.Ldfld, self.fieldinfo)
         self.storeResult()
 
 
 class SetField(Operation):
 
-    def __init__(self, methbuilder, gv_obj, gv_value, fieldname):
-        self.methbuilder = methbuilder
+    def __init__(self, meth, gv_obj, gv_value, fieldname):
+        self.meth = meth
         self.gv_obj = gv_obj
         self.gv_value = gv_value
         clitype = gv_obj.getCliType()
@@ -190,14 +190,14 @@
         return None
 
     def emit(self):
-        self.gv_obj.load(self.methbuilder)
-        self.gv_value.load(self.methbuilder)
-        self.methbuilder.il.Emit(OpCodes.Stfld, self.fieldinfo)
+        self.gv_obj.load(self.meth)
+        self.gv_value.load(self.meth)
+        self.meth.il.Emit(OpCodes.Stfld, self.fieldinfo)
 
 class DoFlexSwitch(Operation):
 
-    def __init__(self, methbuilder, gv_flexswitch, gv_exitswitch, args_gv):
-        self.methbuilder = methbuilder
+    def __init__(self, meth, gv_flexswitch, gv_exitswitch, args_gv):
+        self.meth = meth
         self.gv_flexswitch = gv_flexswitch
         self.gv_exitswitch = gv_exitswitch
         self.args_gv = args_gv # XXX: remove duplicates
@@ -206,7 +206,7 @@
         return None
 
     def emit(self):
-        mbuilder = self.methbuilder
+        mbuilder = self.meth
         il = mbuilder.il
         # get MethodInfo for LowLevelFlexSwitch.execute
         clitype = self.gv_flexswitch.flexswitch.GetType()
@@ -228,16 +228,16 @@
 
 class InputArgsManager:
 
-    def __init__(self, methbuilder, args_gv):
-        self.inputargs_var = methbuilder.inputargs_var
-        self.inputargs_clitype = methbuilder.inputargs_clitype
+    def __init__(self, meth, args_gv):
+        self.inputargs_var = meth.inputargs_var
+        self.inputargs_clitype = meth.inputargs_clitype
         self.args_gv = args_gv
 
     def basename_from_type(self, clitype):
         return clitype.get_Name()
 
-    def copy_from_args(self, methbuilder):
-        il = methbuilder.methbuilder.il
+    def copy_from_args(self, meth):
+        il = meth.meth.il
         inputargs_var = self.inputargs_var
         inputargs_clitype = self.inputargs_clitype
         counters = {}
@@ -255,15 +255,15 @@
 
 class WriteLine(Operation):
 
-    def __init__(self, methbuilder, message):
-        self.methbuilder = methbuilder
+    def __init__(self, meth, message):
+        self.meth = meth
         self.message = message
 
     def restype(self):
         return None
 
     def emit(self):
-        self.methbuilder.il.EmitWriteLine(self.message)
+        self.meth.il.EmitWriteLine(self.message)
 
 def opcode2attrname(opcode):
     if opcode == 'ldc.r8 0':
@@ -327,7 +327,7 @@
             if 'call' in step:
                 return # XXX, fix this
             attrname = opcode2attrname(step)
-            body.append('self.methbuilder.il.Emit(OpCodes.%s)' % attrname)
+            body.append('self.meth.il.Emit(OpCodes.%s)' % attrname)
         elif isinstance(step, cli_opcodes.MapException):
             return # XXX, TODO
         else:

Modified: pypy/branch/oo-jit/pypy/jit/codegen/cli/rgenop.py
==============================================================================
--- pypy/branch/oo-jit/pypy/jit/codegen/cli/rgenop.py	(original)
+++ pypy/branch/oo-jit/pypy/jit/codegen/cli/rgenop.py	Wed Jul 23 10:23:17 2008
@@ -7,7 +7,7 @@
 from pypy.jit.codegen.model import GenVarOrConst, GenVar, GenConst
 from pypy.jit.codegen.model import CodeGenSwitch
 from pypy.jit.codegen.cli import operation as ops
-from pypy.jit.codegen.cli.methodbuilder import get_methodbuilder
+from pypy.jit.codegen.cli.methodfactory import get_method_wrapper
 from pypy.translator.cli.dotnet import CLR, typeof, new_array, init_array
 from pypy.translator.cli.dotnet import box, unbox, clidowncast, classof
 from pypy.translator.cli import dotnet
@@ -60,20 +60,20 @@
     def getCliType(self):
         return self.cliType
 
-    def load(self, methbuilder):
+    def load(self, meth):
         if self.index == 0:
-            methbuilder.il.Emit(OpCodes.Ldarg_0)
+            meth.il.Emit(OpCodes.Ldarg_0)
         elif self.index == 1:
-            methbuilder.il.Emit(OpCodes.Ldarg_1)
+            meth.il.Emit(OpCodes.Ldarg_1)
         elif self.index == 2:
-            methbuilder.il.Emit(OpCodes.Ldarg_2)
+            meth.il.Emit(OpCodes.Ldarg_2)
         elif self.index == 3:
-            methbuilder.il.Emit(OpCodes.Ldarg_3)
+            meth.il.Emit(OpCodes.Ldarg_3)
         else:
-            methbuilder.il.Emit(OpCodes.Ldarg, self.index)
+            meth.il.Emit(OpCodes.Ldarg, self.index)
 
-    def store(self, methbuilder):
-        methbuilder.il.Emit(OpCodes.Starg, self.index)
+    def store(self, meth):
+        meth.il.Emit(OpCodes.Starg, self.index)
 
     def __repr__(self):
         return "GenArgVar(%d)" % self.index
@@ -85,11 +85,11 @@
     def getCliType(self):
         return self.v.get_LocalType()
 
-    def load(self, methbuilder):
-        methbuilder.il.Emit(OpCodes.Ldloc, self.v)
+    def load(self, meth):
+        meth.il.Emit(OpCodes.Ldloc, self.v)
 
-    def store(self, methbuilder):
-        methbuilder.il.Emit(OpCodes.Stloc, self.v)
+    def store(self, meth):
+        meth.il.Emit(OpCodes.Stloc, self.v)
 
 
 class IntConst(GenConst):
@@ -109,8 +109,8 @@
     def getCliType(self):
         return class2type(self.cliclass)
 
-    def load(self, methbuilder):
-        methbuilder.il.Emit(OpCodes.Ldc_I4, self.value)
+    def load(self, meth):
+        meth.il.Emit(OpCodes.Ldc_I4, self.value)
 
     def __repr__(self):
         return "int const=%s" % self.value
@@ -130,28 +130,28 @@
     def getCliType(self):
         return typeof(System.Double)
 
-    def load(self, methbuilder):
-        methbuilder.il.Emit(OpCodes.Ldc_R8, self.value)
+    def load(self, meth):
+        meth.il.Emit(OpCodes.Ldc_R8, self.value)
 
     def __repr__(self):
         return "float const=%s" % self.value
 
 class BaseConst(GenConst):
 
-    def _get_index(self, methbuilder):
+    def _get_index(self, meth):
         # check whether there is already an index associated to this const
         try:
-            index = methbuilder.genconsts[self]
+            index = meth.genconsts[self]
         except KeyError:
-            index = len(methbuilder.genconsts)
-            methbuilder.genconsts[self] = index
+            index = len(meth.genconsts)
+            meth.genconsts[self] = index
         return index
 
-    def _load_from_array(self, methbuilder, index, clitype):
-        methbuilder.il.Emit(OpCodes.Ldarg_0)
-        methbuilder.il.Emit(OpCodes.Ldc_I4, index)
-        methbuilder.il.Emit(OpCodes.Ldelem_Ref)
-        methbuilder.il.Emit(OpCodes.Castclass, clitype)
+    def _load_from_array(self, meth, index, clitype):
+        meth.il.Emit(OpCodes.Ldarg_0)
+        meth.il.Emit(OpCodes.Ldc_I4, index)
+        meth.il.Emit(OpCodes.Ldelem_Ref)
+        meth.il.Emit(OpCodes.Castclass, clitype)
 
     def getobj(self):
         raise NotImplementedError
@@ -170,7 +170,7 @@
     def getobj(self):
         return self.obj
 
-    def load(self, methbuilder):
+    def load(self, meth):
         assert False, 'XXX'
 ##        import pdb;pdb.set_trace()
 ##        index = self._get_index(builder)
@@ -201,14 +201,14 @@
         #return ootype.ooupcast(OBJECT, self.holder)
         return self.holder
 
-    def load(self, methbuilder):
+    def load(self, meth):
         holdertype = box(self.holder).GetType()
         funcfield = holdertype.GetField('func')
         delegatetype = self.delegatetype
-        index = self._get_index(methbuilder)
-        self._load_from_array(methbuilder, index, holdertype)
-        methbuilder.il.Emit(OpCodes.Ldfld, funcfield)
-        methbuilder.il.Emit(OpCodes.Castclass, delegatetype)
+        index = self._get_index(meth)
+        self._load_from_array(meth, index, holdertype)
+        meth.il.Emit(OpCodes.Ldfld, funcfield)
+        meth.il.Emit(OpCodes.Castclass, delegatetype)
 
     @specialize.arg(1)
     def revealconst(self, T):
@@ -227,9 +227,9 @@
     def getobj(self):
         return self.flexswitch
 
-    def load(self, methbuilder):
-        index = self._get_index(methbuilder)
-        self._load_from_array(methbuilder, index, self.flexswitch.GetType())
+    def load(self, meth):
+        index = self._get_index(meth)
+        self._load_from_array(meth, index, self.flexswitch.GetType())
 
 
 class Label(GenLabel):
@@ -335,21 +335,22 @@
             args[i+1] = class2type(argsclass[i])
         restype = class2type(sigtoken.res)
         delegatetype = class2type(sigtoken.funcclass)
-        builder = GraphBuilder(self, name, restype, args, delegatetype)
-        return builder, builder.gv_entrypoint, builder.inputargs_gv[:]
+        graph = GraphGenerator(self, name, restype, args, delegatetype)
+        builder = graph.branches[0]
+        return builder, graph.gv_entrypoint, graph.inputargs_gv[:]
 
 
 class GraphInfo:
     def __init__(self):
         self.has_flexswitches = False
-        self.blocks = [] # blockid -> (methbuilder, label)
+        self.blocks = [] # blockid -> (meth, label)
 
-class MethodBuilder(GenBuilder):
+class MethodGenerator:
     
     def __init__(self, rgenop, name, restype, args, delegatetype, graphinfo):
         self.rgenop = rgenop
-        self.meth = get_methodbuilder(name, restype, args)
-        self.il = self.meth.get_il_generator()
+        self.meth_wrapper = get_method_wrapper(name, restype, args)
+        self.il = self.meth_wrapper.get_il_generator()
         self.inputargs_gv = []
         # we start from 1 because the 1st arg is an Object[] containing the genconsts
         for i in range(1, len(args)):
@@ -368,63 +369,7 @@
     def appendbranch(self, branchbuilder):
         self.branches.append(branchbuilder)
 
-    def start_writing(self):
-        self.branches[0].start_writing()
-
-    def pause_writing(self, args_gv):
-        return self.branches[0].pause_writing(args_gv)
- 
-    def finish_and_return(self, sigtoken, gv_returnvar):
-        return self.branches[0].finish_and_return(sigtoken,
-                                                  gv_returnvar)
-
-    def finish_and_goto(self, outputargs_gv, target):
-        return self.branches[0].finish_and_goto(outputargs_gv, target)
-
-    def enter_next_block(self, args_gv):
-        return self.branches[0].enter_next_block(args_gv)
-
-    def jump_if_false(self, gv_condition, args_for_jump_gv):
-        return self.branches[0].jump_if_false(gv_condition,
-                                              args_for_jump_gv)
-
-    def jump_if_true(self, gv_condition, args_for_jump_gv):
-        return self.branches[0].jump_if_true(gv_condition,
-                                             args_for_jump_gv)
-
-    @specialize.arg(1)
-    def genop1(self, opname, gv_arg):
-        return self.branches[0].genop1(opname, gv_arg)
-    
-    @specialize.arg(1)
-    def genop2(self, opname, gv_arg1, gv_arg2):
-        return self.branches[0].genop2(opname, gv_arg1, gv_arg2)
-
-    def genop_call(self, sigtoken, gv_fnptr, args_gv):
-        return self.branches[0].genop_call(sigtoken, gv_fnptr, args_gv)
-
-    def genop_same_as(self, gv_x):
-        return self.branches[0].genop_same_as(gv_x)
-
-    def genop_oogetfield(self, fieldtoken, gv_obj):
-        return self.branches[0].genop_oogetfield(fieldtoken, gv_obj)
-
-    def genop_oosetfield(self, fieldtoken, gv_obj, gv_value):
-        return self.branches[0].genop_oosetfield(fieldtoken, gv_obj, gv_value)
-
-    def genop_oonewarray(self, alloctoken, gv_length):
-        raise NotImplementedError
-        
-    def genop_oononnull(self, gv_obj):
-        raise NotImplementedError
-    
-    def genop_ooisnull(self, gv_obj):
-        raise NotImplementedError
-
-    def flexswitch(self, gv_exitswitch, args_gv):
-        return self.branches[0].flexswitch(gv_exitswitch, args_gv)
-
-    def end(self):
+    def emit_code(self):
         # emit initialization code
         self.emit_preamble()
         
@@ -446,7 +391,7 @@
         for gv_const, i in self.genconsts.iteritems():
             consts[i] = gv_const.getobj()
         # build the delegate
-        myfunc = self.meth.create_delegate(self.delegatetype, consts)
+        myfunc = self.meth_wrapper.create_delegate(self.delegatetype, consts)
         self.gv_entrypoint.holder.SetFunc(myfunc)
 
     def emit_preamble(self):
@@ -456,10 +401,10 @@
         pass
 
 
-class GraphBuilder(MethodBuilder):
+class GraphGenerator(MethodGenerator):
     def __init__(self, rgenop, name, restype, args, delegatetype):
         graphinfo = GraphInfo()
-        MethodBuilder.__init__(self, rgenop, name, restype, args, delegatetype, graphinfo)
+        MethodGenerator.__init__(self, rgenop, name, restype, args, delegatetype, graphinfo)
 
     def setup_flexswitches(self):
         if self.graphinfo.has_flexswitches:
@@ -502,30 +447,28 @@
         self.il.Emit(OpCodes.Call, meth)
 
 
-
-
 class BranchBuilder(GenBuilder):
 
-    def __init__(self, methbuilder, label):
-        self.methbuilder = methbuilder
-        self.rgenop = methbuilder.rgenop
+    def __init__(self, meth, label):
+        self.meth = meth
+        self.rgenop = meth.rgenop
         self.label = label
         self.operations = []
         self.is_open = False
-        self.genconsts = methbuilder.genconsts
+        self.genconsts = meth.genconsts
 
     def start_writing(self):
         self.is_open = True
 
     def finish_and_return(self, sigtoken, gv_returnvar):
-        op = ops.Return(self.methbuilder, gv_returnvar)
+        op = ops.Return(self.meth, gv_returnvar)
         self.appendop(op)
         self.is_open = False
 
     def finish_and_goto(self, outputargs_gv, target):
         inputargs_gv = target.inputargs_gv
         assert len(inputargs_gv) == len(outputargs_gv)
-        op = ops.FollowLink(self.methbuilder, outputargs_gv,
+        op = ops.FollowLink(self.meth, outputargs_gv,
                             inputargs_gv, target.label)
         self.appendop(op)
         self.is_open = False
@@ -533,7 +476,7 @@
     @specialize.arg(1)
     def genop1(self, opname, gv_arg):
         opcls = ops.getopclass1(opname)
-        op = opcls(self.methbuilder, gv_arg)
+        op = opcls(self.meth, gv_arg)
         self.appendop(op)
         gv_res = op.gv_res()
         return gv_res
@@ -541,28 +484,28 @@
     @specialize.arg(1)
     def genop2(self, opname, gv_arg1, gv_arg2):
         opcls = ops.getopclass2(opname)
-        op = opcls(self.methbuilder, gv_arg1, gv_arg2)
+        op = opcls(self.meth, gv_arg1, gv_arg2)
         self.appendop(op)
         gv_res = op.gv_res()
         return gv_res
 
     def genop_call(self, sigtoken, gv_fnptr, args_gv):
-        op = ops.Call(self.methbuilder, sigtoken, gv_fnptr, args_gv)
+        op = ops.Call(self.meth, sigtoken, gv_fnptr, args_gv)
         self.appendop(op)
         return op.gv_res()
 
     def genop_same_as(self, gv_x):
-        op = ops.SameAs(self.methbuilder, gv_x)
+        op = ops.SameAs(self.meth, gv_x)
         self.appendop(op)
         return op.gv_res()
 
     def genop_oogetfield(self, fieldtoken, gv_obj):
-        op = ops.GetField(self.methbuilder, gv_obj, fieldtoken)
+        op = ops.GetField(self.meth, gv_obj, fieldtoken)
         self.appendop(op)
         return op.gv_res()
 
     def genop_oosetfield(self, fieldtoken, gv_obj, gv_value):
-        op = ops.SetField(self.methbuilder, gv_obj, gv_value, fieldtoken)
+        op = ops.SetField(self.meth, gv_obj, gv_value, fieldtoken)
         self.appendop(op)
 
     def enter_next_block(self, args_gv):
@@ -570,28 +513,28 @@
         for i in range(len(args_gv)):
             gv = args_gv[i]
             if isinstance(gv, GenConst) or gv in seen:
-                op = ops.SameAs(self.methbuilder, gv)
+                op = ops.SameAs(self.meth, gv)
                 self.appendop(op)
                 args_gv[i] = op.gv_res()
             else:
                 seen[gv] = None
-        label = self.methbuilder.il.DefineLabel()
-        self.appendop(ops.MarkLabel(self.methbuilder, label))
+        label = self.meth.il.DefineLabel()
+        self.appendop(ops.MarkLabel(self.meth, label))
         return self.create_label(label, args_gv)
 
     def create_label(self, label, args_gv):
-        blocks = self.methbuilder.graphinfo.blocks
+        blocks = self.meth.graphinfo.blocks
         blockid = len(blocks)
         result = Label(blockid, label, args_gv)
-        blocks.append((self.methbuilder, result))
+        blocks.append((self.meth, result))
         return result
 
     def _jump_if(self, gv_condition, opcode):
-        label = self.methbuilder.il.DefineLabel()
-        op = ops.Branch(self.methbuilder, gv_condition, opcode, label)
+        label = self.meth.il.DefineLabel()
+        op = ops.Branch(self.meth, gv_condition, opcode, label)
         self.appendop(op)
-        branch = BranchBuilder(self.methbuilder, label)
-        self.methbuilder.appendbranch(branch)
+        branch = BranchBuilder(self.meth, label)
+        self.meth.appendbranch(branch)
         return branch
 
     def jump_if_false(self, gv_condition, args_for_jump_gv):
@@ -601,18 +544,18 @@
         return self._jump_if(gv_condition, OpCodes.Brtrue)
 
     def flexswitch(self, gv_exitswitch, args_gv):
-        # XXX: this code is valid only for Methbuilder
-        self.methbuilder.setup_flexswitches()
+        # XXX: this code is valid only for Meth
+        self.meth.setup_flexswitches()
         flexswitch = IntFlexSwitch()
-        flexswitch.xxxbuilder = BranchBuilder(self.methbuilder, self.methbuilder.il.DefineLabel())
+        flexswitch.xxxbuilder = BranchBuilder(self.meth, self.meth.il.DefineLabel())
         gv_flexswitch = flexswitch.gv_flexswitch
-        lbl = self.methbuilder.il.DefineLabel()
+        lbl = self.meth.il.DefineLabel()
         default_label = self.create_label(lbl, args_gv)
         flexswitch.llflexswitch.set_default_blockid(default_label.blockid)
-        op = ops.DoFlexSwitch(self.methbuilder, gv_flexswitch, gv_exitswitch, args_gv)
+        op = ops.DoFlexSwitch(self.meth, gv_flexswitch, gv_exitswitch, args_gv)
         self.appendop(op)
-        default_builder = BranchBuilder(self.methbuilder, default_label.label)
-        self.methbuilder.appendbranch(default_builder)
+        default_builder = BranchBuilder(self.meth, default_label.label)
+        self.meth.appendbranch(default_builder)
         self.is_open = False
         return flexswitch, default_builder
 
@@ -620,11 +563,11 @@
         self.operations.append(op)
 
     def end(self):
-        self.methbuilder.end()
+        self.meth.emit_code()
 
     def replayops(self):
         assert not self.is_open
-        il = self.methbuilder.il
+        il = self.meth.il
         il.MarkLabel(self.label)
         for op in self.operations:
             op.emit()

Modified: pypy/branch/oo-jit/pypy/jit/codegen/cli/test/test_rgenop.py
==============================================================================
--- pypy/branch/oo-jit/pypy/jit/codegen/cli/test/test_rgenop.py	(original)
+++ pypy/branch/oo-jit/pypy/jit/codegen/cli/test/test_rgenop.py	Wed Jul 23 10:23:17 2008
@@ -105,25 +105,25 @@
 
     def test_dump_assembly(self):
         import os
-        from pypy.jit.codegen.cli import methodbuilder
+        from pypy.jit.codegen.cli import methodfactory
 
         # clear the global state, setup env
-        methodbuilder.assemblyData = methodbuilder.AssemblyData()
+        methodfactory.assemblyData = methodfactory.AssemblyData()
         oldenv = os.environ.get('PYPYJITLOG')
         os.environ['PYPYJITLOG'] = 'generated.dll'
         try:
             self.test_adder_compile()
         finally:
             # reset the global state, clear env
-            methodbuilder.assemblyData = methodbuilder.AssemblyData()
+            methodfactory.assemblyData = methodfactory.AssemblyData()
             if oldenv:
                 os.environ['PYPYJITLOG'] = oldenv
             else:
                 del os.environ['PYPYJITLOG']
 
-            f = py.path.local('generated.dll')
-            assert f.check()
-            f.remove()
+        f = py.path.local('generated.dll')
+        assert f.check()
+        f.remove()
 
     def test_largedummy_compile(self):
         py.test.skip('it works only if we increase .maxstack')



More information about the Pypy-commit mailing list