[pypy-dev] alias for --allopts?

Armin Rigo arigo at tunes.org
Sun Jul 13 23:19:01 CEST 2008


Hi Holger,

On Sun, Jul 13, 2008 at 06:00:37PM +0200, holger krekel wrote:
> would be good to rename the --faassen option sometime soon
> Martijn asked us multiple times already for it.  What about
> "--cheetah" or "--falcon"?  other suggestions?  

"--allopts" is already an alias for it, and I changed the docs
to mention it instead of --faassen.

I also came up with some suggestion for the optimization options.
What about introducing the --opt translation option (applying to all
translations, not just targetpypystandalone) with the following possible
values, which roughly correspond to the scheme used by gcc:

 --opt=0: all backendopt and other optimizations off; gc=boehm
 --opt=1: default backendopts, low inlining threadhold; gc=boehm
 --opt=size: same as opt=1 + remove_asserts
 --opt=mem: same as opt=size + gc=marknsweep (or some future low-ram gc)
 --opt=2: default backendopts; smallfuncset=5; gc=hybrid
 --opt=3: same as opt=2 + remove_asserts

During a PyPy translation, we would control which pypy-specific options
to use with the same scheme: a --pypyopt option (whose value is by
default equal to the --opt option in order to reduce surprizes)
according to a table like the following one:

   pypyopt                option
   ===================================

         2 3              ("objspace.opcodes.CALL_LIKELY_BUILTIN", True),
         2 3              ("objspace.opcodes.CALL_METHOD", True),
           3              ("translation.profopt", "..."),
         2 3              ("objspace.std.withmultidict", True),
         2 3              ("objspace.std.withshadowtracking", True),
     mem                  ("objspace.std.withsmallint", True),
     mem 2 3              ("objspace.std.withrangelist", True),
         2 3              ("objspace.std.withmethodcache", True),
     mem 2 3              ("objspace.std.withprebuiltchar", True),
         2 3              ("objspace.std.builtinshortcut", True),
         2 3              ("objspace.std.optimized_list_getitem", True),
         2 3              ("objspace.std.getattributeshortcut", True),
     mem                  ("objspace.std.withsharingdict", True),

So this would generalize the --faassen and --allopts options.  The
fastest results would be obtained with --opt=3, --opt=size would try to
minimize the executable size, --opt=mem would try to minimize run-time
RAM usage.


A bientot,

Armin.



More information about the Pypy-dev mailing list