[commit: ghc] master: Discard reflexive casts during Simplify (7bb7f99)
git at git.haskell.org
git at git.haskell.org
Tue Apr 10 15:37:28 UTC 2018
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/7bb7f991e2b04b7daed079bab9e63884404802a0/ghc
>---------------------------------------------------------------
commit 7bb7f991e2b04b7daed079bab9e63884404802a0
Author: Richard Eisenberg <rae at cs.brynmawr.edu>
Date: Tue Apr 10 10:23:42 2018 -0400
Discard reflexive casts during Simplify
Trac #14735 (derived from Trac #11735) found that 75% of compile
time was being spent in simplCast. This patch is the first in a series
to deal with that problem.
This particular patch actually has very little effect on performance; it
just refactors simplCast so that it builds Refl coercions less often.
Refl coercions require us to compute the type to put inside them, and
even if that's done lazily it is still work and code. Instead we use
Maybe Coercion with Nothing for Refl. This change also percolates to
pushCoTyArg and pushValArg.
Reviewers: goldfire, bgamari, simonpj
Reviewed By: simonpj
Subscribers: rwbarton, thomie, carter
GHC Trac Issues: #14737
Differential Revision: https://phabricator.haskell.org/D4395
>---------------------------------------------------------------
7bb7f991e2b04b7daed079bab9e63884404802a0
compiler/coreSyn/CoreOpt.hs | 48 +++++++++++++----------
compiler/simplCore/Simplify.hs | 89 +++++++++++++++++++++++-------------------
2 files changed, 76 insertions(+), 61 deletions(-)
Diff suppressed because of size. To see it, use:
git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc 7bb7f991e2b04b7daed079bab9e63884404802a0
More information about the ghc-commits
mailing list