Skip to content

Useful optimisation for set-cost-centre

If you compile, for example, drvrun014 with -prof -auto-all, you'll see stuff like

    (scc "c" (dataToTag#)) y

This generates bad code, because we end up eta-expaning dataToTag, which allocates an extra function closure.

We think that in general

   (scc "c" e) y  = scc "c" (e y)

to within a small constant factor. So maybe the simplifier, or CorePrep, or both, should do this transformation.

Edited by Simon Peyton Jones
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information