[m-dev.] argument packing

Zoltan Somogyi zoltan.somogyi at runbox.com
Tue May 15 20:04:09 AEST 2018


I committed the diff that enabled the packing of sub-word-sized
integers and dummies in heap cells about a week ago. Have you
guys tried out those features (after turning them on, since they are
OFF by default)?

The reason I ask is that traditionally, we computed the offset of each
argument into the memory cell when we generated code for a unification.
Since repeating this work for *every* unification is wasted work, that diff
added code to compute these offsets just once, when the representation
of each function symbol is decided, but it also left the old code in place,
with assertions checking that the new method yields the exact same offset
as the old method. I would like to delete the code that calculates the offsets
the old way, along with the assertions, before I start work on my next
diff involving argument packing. However, I would not want to take
that step until those assertions have passed your toughest tests.

So if you have compiled the Mercury programs you are working on
with an installed compiler which has had its default values of
allow_packing_ints and allow_packing_dummies set to `yes',
and had those programs pass all their tests, please tell me.
If you haven't, then please do so and tell me.
And if you had any failures, please tell me as well.

Zoltan.


More information about the developers mailing list