Skip to content
Commit 0a4ca9eb authored by Simon Peyton Jones's avatar Simon Peyton Jones Committed by Marge Bot
Browse files

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
parent ee07421f
Loading
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment