I'm trying to optimize the FFI functionality in Pixie, and I'm not sure how to proceed. From what I understand, the JIT generator is able to optimize away calls to jit_libffi and simply replace them with bare calls to the c functions. However, not matter how I hint or mark things as immutable, I seem to always have a call to "jit_ffi_call_int". What exactly triggers the JIT to remove that call? The part of the trace involved in the jit call looks like this: https://gist.github.com/halgari/31b188e8e4757ccb3218 Any ideas? Thanks, Timothy
I would expect cif_description to need to be constant (in your example it's i126, which I don't know where it comes from, but it's definitely not a constant). Simple promote should do the trick? On Tue, Dec 30, 2014 at 9:22 PM, Timothy Baldridge <tbaldridge@gmail.com> wrote:
I'm trying to optimize the FFI functionality in Pixie, and I'm not sure how to proceed. From what I understand, the JIT generator is able to optimize away calls to jit_libffi and simply replace them with bare calls to the c functions. However, not matter how I hint or mark things as immutable, I seem to always have a call to "jit_ffi_call_int". What exactly triggers the JIT to remove that call?
The part of the trace involved in the jit call looks like this:
https://gist.github.com/halgari/31b188e8e4757ccb3218
Any ideas?
Thanks,
Timothy
_______________________________________________ pypy-dev mailing list pypy-dev@python.org https://mail.python.org/mailman/listinfo/pypy-dev
That did it! My traces are nice and small now. Thanks! Timothy On Tue, Dec 30, 2014 at 12:34 PM, Maciej Fijalkowski <fijall@gmail.com> wrote:
I would expect cif_description to need to be constant (in your example it's i126, which I don't know where it comes from, but it's definitely not a constant). Simple promote should do the trick?
I'm trying to optimize the FFI functionality in Pixie, and I'm not sure how to proceed. From what I understand, the JIT generator is able to optimize away calls to jit_libffi and simply replace them with bare calls to the c functions. However, not matter how I hint or mark things as immutable, I seem to always have a call to "jit_ffi_call_int". What exactly triggers
On Tue, Dec 30, 2014 at 9:22 PM, Timothy Baldridge <tbaldridge@gmail.com> wrote: the
JIT to remove that call?
The part of the trace involved in the jit call looks like this:
https://gist.github.com/halgari/31b188e8e4757ccb3218
Any ideas?
Thanks,
Timothy
_______________________________________________ pypy-dev mailing list pypy-dev@python.org https://mail.python.org/mailman/listinfo/pypy-dev
-- “One of the main causes of the fall of the Roman Empire was that–lacking zero–they had no way to indicate successful termination of their C programs.” (Robert Firth)
participants (2)
-
Maciej Fijalkowski -
Timothy Baldridge