diff options
author | Adam Gundry <adam@well-typed.com> | 2023-05-13 18:43:16 +0200 |
---|---|---|
committer | sheaf <sam.derbyshire@gmail.com> | 2023-05-13 18:43:16 +0200 |
commit | 6bb5d279e5132e73ad1823d645b10c451264aa78 (patch) | |
tree | fbee06f32e51b3b1a290f60dfdbddc4aa53c1bbe /compiler/GHC/Core/Opt/Pipeline.hs | |
parent | a175170c5a124e952760d6aef5a50a4f038aeda2 (diff) | |
download | haskell-wip/amg/dcoercion.tar.gz |
Directed coercionswip/amg/dcoercion
This patch introduces a slimmer version of coercions, directed coercions,
which store fewer types within them. This more compact representation
considerably speeds up programs which involve many type family
reductions, as the coercion size no longer grows quadratically in
the number of reduction steps.
-------------------------
Metric Decrease:
LargeRecord
T12227
T12545
T13386
T3064
T5030
T8095
T9872a
T9872b
T9872b_defer
T9872c
T9872d
Metric Increase:
CoOpt_Singletons
T18223
T9872a
T9872b
T9872c
T9872d
-------------------------
Diffstat (limited to 'compiler/GHC/Core/Opt/Pipeline.hs')
-rw-r--r-- | compiler/GHC/Core/Opt/Pipeline.hs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/GHC/Core/Opt/Pipeline.hs b/compiler/GHC/Core/Opt/Pipeline.hs index 0761691f84..7e626bb374 100644 --- a/compiler/GHC/Core/Opt/Pipeline.hs +++ b/compiler/GHC/Core/Opt/Pipeline.hs @@ -199,7 +199,7 @@ getCoreToDo dflags hpt_rule_base extra_vars runWhen (profiling && gopt Opt_ProfLateInlineCcs dflags) $ CoreAddLateCcs core_todo = - [ + [ -- We want to do the static argument transform before full laziness as it -- may expose extra opportunities to float things outwards. However, to fix -- up the output of the transformation we need at do at least one simplify |