Implement deterministic CallInfoSet
authorBartosz Nitka <niteria@gmail.com>
Mon, 6 Jun 2016 11:36:21 +0000 (04:36 -0700)
committerBartosz Nitka <niteria@gmail.com>
Mon, 6 Jun 2016 12:59:58 +0000 (05:59 -0700)
commit48e9a1f5521fa3185510d144dd28a87e452ce134
treed89510e09f6ff9316a8ba1a97d03cb6ca1cbf6e3
parent3042a9d8d55b4706d2ce366fee1712c7357d5a00
Implement deterministic CallInfoSet

We need CallInfoSet to be deterministic because it determines the
order that the binds get generated.

Currently it's not deterministic because it's keyed on
`CallKey = [Maybe Type]` and `Ord CallKey` is implemented
with `cmpType` which is nondeterministic.

See Note [CallInfoSet determinism] for more details.

Test Plan: ./validate

Reviewers: simonpj, bgamari, austin, simonmar

Reviewed By: simonmar

Subscribers: thomie

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

GHC Trac Issues: #4012
compiler/specialise/Specialise.hs