[pypy-svn] r52080 - in pypy/branch/jit-refactoring/pypy/translator: . goal

cfbolz at codespeak.net cfbolz at codespeak.net
Mon Mar 3 00:32:21 CET 2008


Author: cfbolz
Date: Mon Mar  3 00:32:19 2008
New Revision: 52080

Modified:
   pypy/branch/jit-refactoring/pypy/translator/driver.py
   pypy/branch/jit-refactoring/pypy/translator/goal/translate.py
Log:
fix the driver and translate.py to use the rainbow interpreter instead of the
timeshifter


Modified: pypy/branch/jit-refactoring/pypy/translator/driver.py
==============================================================================
--- pypy/branch/jit-refactoring/pypy/translator/driver.py	(original)
+++ pypy/branch/jit-refactoring/pypy/translator/driver.py	Mon Mar  3 00:32:19 2008
@@ -135,7 +135,7 @@
                 task, postfix = parts
                 if task in ('rtype', 'backendopt', 'llinterpret',
                             'prehannotatebackendopt', 'hintannotate',
-                            'timeshift'):
+                            'rainbow'):
                     if ts:
                         if ts == postfix:
                             expose_task(task, explicit_task)
@@ -386,14 +386,14 @@
         get_portal = self.extra['portal']
         PORTAL, POLICY = get_portal(self)
         t = self.translator
-        self.portal_graph = graphof(t, PORTAL)
+        self.orig_portal_graph = graphof(t, PORTAL)
 
         hannotator = HintAnnotator(base_translator=t, policy=POLICY)
         self.hint_translator = hannotator.translator
-        hs = hannotator.build_types(self.portal_graph,
+        hs = hannotator.build_types(self.orig_portal_graph,
                                     [SomeLLAbstractConstant(v.concretetype,
                                                             {OriginFlags(): True})
-                                     for v in self.portal_graph.getargs()])
+                                     for v in self.orig_portal_graph.getargs()])
         count = hannotator.bookkeeper.nonstuboriggraphcount
         stubcount = hannotator.bookkeeper.stuboriggraphcount
         self.log.info("The hint-annotator saw %d graphs"
@@ -401,14 +401,16 @@
         n = len(list(hannotator.translator.graphs[0].iterblocks()))
         self.log.info("portal has %d blocks" % n)
         self.hannotator = hannotator
+        self.portal_graph = graphof(hannotator.translator, PORTAL)
     #
     task_hintannotate_lltype = taskdef(task_hintannotate_lltype,
                                        ['prehannotatebackendopt_lltype'],
                                        "Hint-annotate")
 
-    def task_timeshift_lltype(self):
-        from pypy.jit.timeshifter.hrtyper import HintRTyper
+    def task_rainbow_lltype(self):
         from pypy.jit.codegen import detect_cpu
+        from pypy.jit.rainbow.codewriter import BytecodeWriter
+        from pypy.jit.rainbow.portal import PortalRewriter
         cpu = detect_cpu.autodetect()
         if cpu == 'i386':
             from pypy.jit.codegen.i386.rgenop import RI386GenOp as RGenOp
@@ -422,13 +424,19 @@
         del self.hint_translator
         ha = self.hannotator
         t = self.translator
-        # make the timeshifted graphs
-        hrtyper = HintRTyper(ha, t.rtyper, RGenOp)
-        hrtyper.specialize(origportalgraph=self.portal_graph, view=False)
+        rtyper = t.rtyper
+        # make the bytecode and the rainbow interp
+        writer = BytecodeWriter(t, ha, RGenOp)
+        jitcode = writer.make_bytecode(self.portal_graph)
+        rewriter = PortalRewriter(self.hannotator, rtyper, RGenOp,
+                                  writer, True)
+        rewriter.rewrite(origportalgraph=self.orig_portal_graph,
+                         portalgraph=self.portal_graph,
+                         view=False)
     #
-    task_timeshift_lltype = taskdef(task_timeshift_lltype,
+    task_rainbow_lltype = taskdef(task_rainbow_lltype,
                              ["hintannotate_lltype"],
-                             "Timeshift")
+                             "Create Rainbow-Interpreter")
 
     def task_backendopt_lltype(self):
         from pypy.translator.backendopt.all import backend_optimizations
@@ -436,7 +444,7 @@
     #
     task_backendopt_lltype = taskdef(task_backendopt_lltype,
                                      [RTYPE,
-                                      '??timeshift_lltype'],
+                                      '??rainbow_lltype'],
                                      "lltype back-end optimisations")
     BACKENDOPT = 'backendopt_lltype'
 

Modified: pypy/branch/jit-refactoring/pypy/translator/goal/translate.py
==============================================================================
--- pypy/branch/jit-refactoring/pypy/translator/goal/translate.py	(original)
+++ pypy/branch/jit-refactoring/pypy/translator/goal/translate.py	Mon Mar  3 00:32:19 2008
@@ -20,7 +20,7 @@
         ("prehannotatebackendopt", "backend optimize before hint-annotating",
          "--prehannotatebackendopt", ""),
         ("hintannotate", "hint-annotate", "--hintannotate", ""),
-        ("timeshift", "timeshift (jit generation)", "--timeshift", ""),
+        ("rainbow", "rainbow interpreter (jit generation)", "--rainbow", ""),
         ("backendopt", "do backend optimizations", "--backendopt", ""),
         ("source", "create source", "-s --source", ""),
         ("compile", "compile", "-c --compile", " (default goal)"),
@@ -259,7 +259,7 @@
         if translateconfig.goal_options.jit:
             if 'portal' not in targetspec_dic:
                raise Exception('target has no portal defined.') 
-            drv.set_extra_goals(['timeshift'])
+            drv.set_extra_goals(['rainbow'])
         log_config(config.translation, "translation configuration")
         pdb_plus_show.expose({'drv': drv, 'prof': prof})
 


More information about the pypy-svn mailing list