When does GHC produce unlifted `let` bindings?

Sebastian Graf sgraf1337 at gmail.com
Sun Oct 29 21:06:49 UTC 2017

Hi folks,

I was debugging a Core-to-Core transform for TEST=spec-inline
was wondering (yet again) why GHC produces unlifted `let` bindings in Core
like it seems supposed to be doing

   - Why doesn't this use `case` instead?
   - Is there a semantic difference?
   - Can `case` be used with unlifted types?
   - And if not, why can `let`?

Unlifted `let` seems much close to `case` than to `let`. Some GHC passes
seem to agree.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20171029/bcf22388/attachment.html>

More information about the ghc-devs mailing list