[pypy-svn] r21208 - pypy/dist/pypy/translator/goal

ac at codespeak.net ac at codespeak.net
Fri Dec 16 11:36:44 CET 2005


Author: ac
Date: Fri Dec 16 11:36:44 2005
New Revision: 21208

Modified:
   pypy/dist/pypy/translator/goal/driver.py
   pypy/dist/pypy/translator/goal/translate_pypy.py
Log:
Add option for merging if-blocks.

Modified: pypy/dist/pypy/translator/goal/driver.py
==============================================================================
--- pypy/dist/pypy/translator/goal/driver.py	(original)
+++ pypy/dist/pypy/translator/goal/driver.py	Fri Dec 16 11:36:44 2005
@@ -24,7 +24,8 @@
   'insist': False,
   'backend': 'c',
   'lowmem': False,
-  'fork_before': None
+  'fork_before': None,
+  'merge_if_blocks': False
 })
 
 def taskdef(taskfunc, deps, title, new_state=None, expected_states=[], idemp=False):
@@ -182,7 +183,8 @@
     def task_backendopt(self):
         from pypy.translator.backendopt.all import backend_optimizations
         opt = self.options
-        backend_optimizations(self.translator, ssa_form=opt.backend != 'llvm')
+        backend_optimizations(self.translator, ssa_form=opt.backend != 'llvm',
+                              merge_if_blocks_to_switch=opt.merge_if_blocks)
     #
     task_backendopt = taskdef(task_backendopt, 
                                         ['rtype'], "Back-end optimisations") 

Modified: pypy/dist/pypy/translator/goal/translate_pypy.py
==============================================================================
--- pypy/dist/pypy/translator/goal/translate_pypy.py	(original)
+++ pypy/dist/pypy/translator/goal/translate_pypy.py	Fri Dec 16 11:36:44 2005
@@ -50,6 +50,7 @@
 
     '2_gc': [OPT(('--gc',), "Garbage collector", ['boehm', 'ref', 'none'])],
     '3_stackless': [OPT(('--stackless',), "Stackless code generation", True)],
+    '4_merge_if_blocks': [OPT(('--merge_if_blocks',), "Merge if ... elif ... chains and use a switch statement for them.", True)],
     },
 
 
@@ -101,6 +102,7 @@
     'gc': 'boehm',
     'backend': 'c',
     'stackless': False,
+    'merge_if_blocks': False,
     
     'batch': False,
     'text': False,



More information about the Pypy-commit mailing list