On 26/04/13 06:32, Johan Tibell wrote:
On Thu, Apr 25, 2013 at 9:51 PM, Bryan O'Sullivan <[email protected]> wrote:
On Thu, Apr 25, 2013 at 4:01 PM, Johan Tibell <[email protected]>
wrote:

I think you could make up a case where it is a loss. It would boil down to
repeated reboxing of a value pulled out of a strict field. In practice I
think it's pretty hard.


I've seen this in real-world code, though it is indeed rare in my
experience.

If you remember where it would be great to see an example. There's
also NOUNPACK nowadays so you can opt out in these specific cases.

I'm probably a bit late to the party here, but I've seen UNPACK make things worse a lot inside GHC itself. I think it would be a good idea to measure this change on GHC, if you haven't already.

One particular example I remember recently was that when trying to make the code generator faster I tried unpacking various fields in the Cmm data type (and its children). Some of them resulted in improvements, and I've left those in, while others made things worse. In some cases it made runtime worse but heap residency better, as you might expect because the representation is smaller.

Cheers,
        Simon



_______________________________________________
ghc-devs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/ghc-devs

Reply via email to