[commit: ghc] master: cmm/CBE: Collapse blocks equivalent up to alpha renaming of local registers (7920a7d)
git at git.haskell.org
git at git.haskell.org
Tue Sep 19 22:54:43 UTC 2017
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/7920a7d9c53083b234e060a3e72f00b601a46808/ghc
>---------------------------------------------------------------
commit 7920a7d9c53083b234e060a3e72f00b601a46808
Author: Ben Gamari <bgamari.foss at gmail.com>
Date: Tue Sep 19 16:57:41 2017 -0400
cmm/CBE: Collapse blocks equivalent up to alpha renaming of local registers
As noted in #14226, the common block elimination pass currently
implements an extremely strict equivalence relation, demanding that two
blocks are equivalent including the names of their local registers. This
is quite restrictive and severely hampers the effectiveness of the pass.
Here we allow the CBE pass to collapse blocks which are equivalent up to
alpha renaming of locally-bound local registers. This is completely safe
and catches many more duplicate blocks.
Test Plan: Validate
Reviewers: austin, simonmar, michalt
Reviewed By: michalt
Subscribers: rwbarton, thomie
GHC Trac Issues: #14226
Differential Revision: https://phabricator.haskell.org/D3973
>---------------------------------------------------------------
7920a7d9c53083b234e060a3e72f00b601a46808
compiler/cmm/CmmCommonBlockElim.hs | 237 ++++++++++++++++++++++++++++---------
compiler/cmm/Hoopl/Block.hs | 1 +
2 files changed, 180 insertions(+), 58 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 7920a7d9c53083b234e060a3e72f00b601a46808
More information about the ghc-commits
mailing list