diff options
| author | Simon Peyton Jones <simonpj@microsoft.com> | 2017-04-26 16:57:15 +0100 |
|---|---|---|
| committer | Simon Peyton Jones <simonpj@microsoft.com> | 2017-04-28 09:55:07 +0100 |
| commit | 25754c83c9be3bf843310b1c7877c42fa3f9f3c7 (patch) | |
| tree | 4ac5750df24cf3297a81dcd060df0a5e15168bca /compiler/codeGen/CodeGen | |
| parent | 03ec7927f050c203a43843d95938ededf6d2c8f9 (diff) | |
| download | haskell-25754c83c9be3bf843310b1c7877c42fa3f9f3c7.tar.gz | |
Eta expansion and join points
CoreArity.etaExpand tried to deal with eta-expanding expressions
with join points. For example
let j x = e in \y. b
But it is hard to eta-expand this in the "no-crap" way described in
Note [No crap in eta-expanded code], becuase it would mean pushing
the "apply to y" into the join RHS, and changing its type. And the
join might be recursive, and it might have an unfolding.
Moreover in elaborate cases like this I don't think we need the
no-crap thing. So for now I'm simplifying the code by generating
\z. (let j x = e in \y. b) z
Let's see if that gives rise to any problems.
See Note [Eta expansion for join points]
Diffstat (limited to 'compiler/codeGen/CodeGen')
0 files changed, 0 insertions, 0 deletions
