Revert "Make raiseIO# produce topRes" ghc-8.2.1-rc1
authorDavid Feuer <david.feuer@gmail.com>
Tue, 4 Apr 2017 02:25:55 +0000 (22:25 -0400)
committerBen Gamari <ben@smart-cactus.org>
Tue, 4 Apr 2017 02:27:50 +0000 (22:27 -0400)
commitd67f0471cd3584c5a548ff30c9023b599b598d3e
treef208dc70cf748d4c04c2482c795a48a042a68aff
parent8134f7d4ba2c14b2f24d2f4c1f5260fcaff3304a
Revert "Make raiseIO# produce topRes"

This reverts commit da4687f63ffe5a6162e3d7856aa53de048dd0f42.

It's not entirely trivial to clean up the dead code this patch
introduced. In particular, when we see

```
case raiseIO# m s of
  s' -> e
```

we want to know that `e` is dead. For scrutinees that are properly
bottom (which we don't want to consider `raiseIO# m s` to be, this
is handled by rewriting `bot` to `case bot of {}`. But if we do
that for `raiseIO#`, we end up with

```
case raiseIO# m s of {}
```

which looks a lot like bottom and could confuse demand analysis.
I think we need to wait with this change until we have a more
complete story.

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3413

(cherry picked from commit e83af07e3d0b65fe6f37806e86d07f3e8dc1b01e)
compiler/prelude/primops.txt.pp
testsuite/tests/stranal/should_run/all.T