diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2019-11-29 17:43:58 +0000 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2019-12-06 21:21:14 -0500 |
commit | 0a4ca9eb152c6bfbc3aad71c180a38bbfeca5bfb (patch) | |
tree | da325d83503a19c97ac9459f5c3943f752d67e42 /utils | |
parent | ee07421fcf99189de6506cf8d17185ed540ea2b3 (diff) | |
download | haskell-0a4ca9eb152c6bfbc3aad71c180a38bbfeca5bfb.tar.gz |
Split up coercionKind
This patch implements the idea in #17515, splitting `coercionKind` into:
* `coercion{Left,Right}Kind`, which computes the left/right side of the
pair
* `coercionKind`, which computes the pair of coercible types
This is reduces allocation since we frequently only need only one side
of the pair. Specifically, we see the following improvements on x86-64
Debian 9:
| test | new | old | relative chg. |
| :------- | ---------: | ------------: | ------------: |
| T5030 | 695537752 | 747641152.0 | -6.97% |
| T5321Fun | 449315744 | 474009040.0 | -5.21% |
| T9872a | 2611071400 | 2645040952.0 | -1.28% |
| T9872c | 2957097904 | 2994260264.0 | -1.24% |
| T12227 | 773435072 | 812367768.0 | -4.79% |
| T12545 | 3142687224 | 3215714752.0 | -2.27% |
| T14683 | 9392407664 | 9824775000.0 | -4.40% |
Metric Decrease:
T12545
T9872a
T14683
T5030
T12227
T9872c
T5321Fun
T9872b
Diffstat (limited to 'utils')
0 files changed, 0 insertions, 0 deletions