summaryrefslogtreecommitdiff
path: root/libraries/integer-simple
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2017-06-07 12:03:51 +0100
committerSimon Peyton Jones <simonpj@microsoft.com>2017-06-07 13:27:14 +0100
commit2b74bd9d8b4c6b20f3e8d9ada12e7db645cc3c19 (patch)
tree8b2df37023fa2868c0c2666ab00fb46cb7cdb323 /libraries/integer-simple
parent92a4f908f2599150bec0530d688997f03780646e (diff)
downloadhaskell-2b74bd9d8b4c6b20f3e8d9ada12e7db645cc3c19.tar.gz
Stop the specialiser generating loopy code
This patch fixes a bad bug in the specialiser, which showed up as Trac #13429. When specialising an imported DFun, the specialiser could generate a recusive loop where none existed in the original program. It's all rather tricky, and I've documented it at some length in Note [Avoiding loops] We'd encoutered exactly this before (Trac #3591) but I had failed to realise that the very same thing could happen for /imported/ DFuns. I did quite a bit of refactoring. The compiler seems to get a tiny bit faster on deriving/perf/T10858 but almost all the gain had occurred before now; this patch just pushed it over the line.
Diffstat (limited to 'libraries/integer-simple')
0 files changed, 0 insertions, 0 deletions