On Feb, 11 2009 at 04:11:AM, Benjamin M. Schwartz <bmsch...@fas.harvard.edu> wrote:
> Brett Cannon wrote: >> On Tue, Feb 10, 2009 at 18:45, Benjamin Schwartz >> <bmsch...@fas.harvard.edu>wrote: >> > ... >>> According to ARM [4]: >>> >>> """Jazelle RCT can be used to significantly reduce the code bloat >>> associated >>> with AOT and JIT compilation, making AOT technology viable on mass-market >>> devices. It can also be used to support execution environments beyond Java, >>> such as Microsoft .NET Compact Framework, Python and others.""" >>> >>> """Jazelle RCT provides an excellent target for any run-time compilation >>> technology, including JIT and AOT for .NET MSIL, Python and Perl as well as >>> Java. ARM is working with leading software providers to enable solutions >>> ready for market with Jazelle RCT.""" > ... >>> Question: >>> ARM is specifically claiming that these instructions can be used to >>> accelerate Python interpretation. >> >> Wow, really? One of the links below mention that? > > Yes. The quotes above from [4], as well as the white paper [6]. No > specific data, just these broad claims. > >>> What would the process be to incorporate the use of ThumbEE instructions >>> into CPython? >>> >> >> Well, this all depends on how you try to integrate the instructions. If you >> hide it behind the macro or in a clean way that does not penalize skipping >> the instructions then you write a patch. But if this can't be done it would >> be better to maintain an external set of patches against trunk for this. > > Interesting. Sugar Labs will probably not attempt this if we would have > to maintain a patched interpreter forever. However, I hope it will be > possible to integrate into CPython in a manner that does not uglify the > code or affect other architectures. > > Anyone else interested in ARM? ThumbEE support would benefit anyone > running Python on recent ARM chips. Maybe we need to create a working > group/project team/whatever. > >>> [4] http://www.arm.com/products/multimedia/java/jazelle_architecture.html >>> [6] http://www.arm.com/pdfs/JazelleRCTWhitePaper_final1-0_.pdf It's not useful for CPython, since it's based on a loop which evaluates a bytecode at the time. You have to rewrite the virtual machine implementing a JIT compiler that generates Thumb-EE instructions. But it's a big effort, since ceval.c works in a completely different manner. I don't know if a form of JIT will be implemented in future CPython implementations, but if a step in this direction will be made, writing a back-end that uses Thumb-EE will be much easier. Cheers, Cesare _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com