
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:

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:
-- “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)

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:

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:
-- “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