Author: Armin Rigo <[email protected]>
Branch: continulet-jit-2
Changeset: r53023:137a6bd449b0
Date: 2012-02-29 18:19 +0100
http://bitbucket.org/pypy/pypy/changeset/137a6bd449b0/

Log:    A different attempt: change jit/backend/x86. If stacklets are
        actually used (as detected by a quasi-immutable field read), we
        generate backend code that uses malloc()/realloc()/free() instead of
        storing stuff in the stack. This might solve most of the problems
        that we get so far by accessing 'vable_token' and 'virtual_token':
        they would become heap pointers, and so remain valid even if the
        stack is moved away.

        The performance impact should be null as long as we don't use
        stacklets, but when we do, we have to consider:

         * calls to malloc()/realloc()/free() whose result goes into 'ebp';
        maybe later we can use a custom version of these functions,
        particularly for realloc() at the start of every bridge.

         * on the other hand, it makes the stack much smaller if everything
        is JITted, which is good for programs that heavily switch().

_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to