Source

pypy / pypy / translator / transform.py

Author Commit Message Labels Comments Date
Alex Gaynor
make translator/transform use the new API
Branches
kill-someobject
Armin Rigo
More tests. Fix.
Armin Rigo
Remove the need for the RPython manual optimization of writing "x in (2, 3, 4, 5)" because it is more efficient than "x in [2, 3, 4, 5]".
Armin Rigo
Kill dependency on "isstartblock".
Armin Rigo
Kill old unused function.
Branches
invalidate-virtualrefs
Amaury Forgeot d'Arc
Merge from trunk: svn merge -r77543:78227 ../trunk/ .
Branches
fast-forward
Armin Rigo
(antocuni not currently there, arigo) Merge the getslice branch, where __{get,set,del}slice__ are implemented as real space operations and multimethods. This allows quite a bit of code to be simplified, notably in the translation toolchain, which now only needs to support the {get,set,del}slice operations instead of having to worry about slice objects and newslice/{get,set,del}item pairs of operations.
Armin Rigo
(fijal, arigo) Print the number of stack checks inserted.
Armin Rigo
(alexander, armin) Removed the remaining suggested primitives - the stack and stackless manipulation. We had to resolve circular imports by removing "import objspace" from pypy/objspace/flow/__init__.py. This required some other imports to be fixed. Improved the controllerentry logic for rstack.py. In translator/c/test/: it's not really possible to test stack_too_big() directly. We have other tests in test_type…
Armin Rigo
Merge the string formatting branch.
Carl Friedrich Bolz
moving rstack
Samuele Pedroni
(arre, pedronis) oops, should have gone with the previous checking about adding a extra_passes arg to annotator.simplify.
Anders Chrigström
Make it possible to force stack_check() at the begining of functions.
Armin Rigo
Replaced the many calls 'Constant(last_exception)' with a prebuilt 'c_last_exception'.
Armin Rigo
Merging, step 3: copy relevant files and directories from the branch. The branch should not be modified any more now.
Michael Hudson-Doyle
importfun vs translator/ (apart from js) haven't run all the tests yet, will do so on snake pronto.
Armin Rigo
Capturing stack frame tops: * yield_current_frame_to_caller() as described in http://codespeak.net/svn/pypy/extradoc/sprintinfo/paris/stackless-discussion.txt * the existing and the new RPython functions about stack manipulation are now in their own rpython/rstack.py * yield_current_frame_to_caller() turns into a low-level operation of the same name, which is special-cased by translator/c/stackless.py * moved the stac…
Samuele Pedroni
* type erasure for lists * doing that discovered a bug in the rtyper logic for splitting a llops block when the operation that can raise an exception is in the middle * support for attaching methods (ADT meths) to ll container types, should make the code for supporting fixed size list in the rtyper reasonable: if l is some kind of list it should be now possible to express generalized access to items or length as l.ll_it…
Amaury Forgeot d'Arc
(valentino, afa): corrections for stack checks + minor compilation warnings fixes
Valentino Volonghi
(valentino, afa, armin) activate stack_check and refactor a test to not randomly fail
Valentino Volonghi
generalize auto_stack_unwind to stack_check so that it can be used also when stackless mode is not enabled. It will raise a RuntimeError in that case [need test].
Adrien Di Mascio
(arigo, adim) automatically add stack_unwind() when recursion is detected
Armin Rigo
Ooooups. A typo in here, and rtyping was 2-3x slower. Additionally, let's revert to the previous version instead of using dict.fromkeys() on a huge list.
Armin Rigo
Who would have guessed that annotator.complete() would call getreturnvar() 39'439'040 times? Plus, let's use dict.fromkeys() more freely.
Armin Rigo
Profiling pretends that a huge amount of time is spend within annotate_lowlevel_helper() (not sub-calls, directly the function itself). I can only guess that this list comprehension kills us. Trying to remove it.
Armin Rigo
Optimizations of translate_pypy, motivated by a profiled run which you can see at the end of /tmp/PROFILE-out on the snake server: * LowLevelType.__hash__ is called 99 million times. Let's make it cache its result as best as possible. * transform.checkgraphs() calls checkgraph() too many times -- each graph was fully rechecked the same number of times as the number of blocks it contains.
Samuele Pedroni
fixing support for the combination of method call on variable instances and specialisation
Samuele Pedroni
in transform_graph check the graphs only of the touched blocks
holger krekel
(arigo, hpk with special consulting by pedronis) - support for specialcase:memo functions (like the often used pypy.tool.cache.Cache.getorbuild function). Currently, only one PBC argument is allowed for such functions. Somewhat unfortunately, the support is spread across a number of files but it works and doesn't really involve a large number of lines.
Armin Rigo
For '[a]*b': make transform_allocate() detect cases where between 'newlist' and 'mul' there are other operations, like 'getattr' to compute the expression 'b'.
  1. Prev
  2. 1
  3. 2
  4. 3
  5. Next