[commit: ghc] wip/tdammers/D4395-new: Discard reflexive casts during Simplify (6531dd3)
git at git.haskell.org
git at git.haskell.org
Tue Apr 3 10:43:27 UTC 2018
Repository : ssh://git@git.haskell.org/ghc
On branch : wip/tdammers/D4395-new
Link : http://ghc.haskell.org/trac/ghc/changeset/6531dd38db014ac9b9325f4ae854bbd923cf8cf5/ghc
>---------------------------------------------------------------
commit 6531dd38db014ac9b9325f4ae854bbd923cf8cf5
Author: Richard Eisenberg <rae at cs.brynmawr.edu>
Date: Fri Jan 26 22:42:46 2018 -0500
Discard reflexive casts during Simplify
Previously, we went to great lengths to build just the right
reflexive casts, only to discard them shortly later. Now, just
skip creating reflexive casts altogether.
Details discussed in https://ghc.haskell.org/trac/ghc/ticket/11735
This should theoretically improve performance, or at least set the stage
for more efficient handling of coercions. Profiling shows that
performance does not actually improve, because we are now spending a
lot of time in simplCast; however, the improved code structure is still
good to have, and the change does not make performance worse either.
As a starting point for profiling, the Grammar.hs example from #11735
can be used:
https://ghc.haskell.org/trac/ghc/attachment/ticket/14683/Grammar.hs
On the test system, compilation times for both GHC HEAD and GHC HEAD
with this patch applied are around 20 seconds for this input file.
Further performance improvements to be handled in future patches and
tickets.
>---------------------------------------------------------------
6531dd38db014ac9b9325f4ae854bbd923cf8cf5
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 6531dd38db014ac9b9325f4ae854bbd923cf8cf5
More information about the ghc-commits
mailing list