[commit: ghc] ghc-7.8: Allow multiple entry points when allocating recursive groups (#9303) (13a651d)
git at git.haskell.org
git at git.haskell.org
Mon Aug 4 13:21:09 UTC 2014
Repository : ssh://git@git.haskell.org/ghc
On branch : ghc-7.8
Link : http://ghc.haskell.org/trac/ghc/changeset/13a651df7b6cf3a26e9a41e4a9d84c1015408af5/ghc
>---------------------------------------------------------------
commit 13a651df7b6cf3a26e9a41e4a9d84c1015408af5
Author: Simon Marlow <marlowsd at gmail.com>
Date: Tue Jul 22 12:04:32 2014 +0100
Allow multiple entry points when allocating recursive groups (#9303)
Summary:
In this example we ended up with some code that was only reachable via
an info table, because a branch had been optimised away by the native
code generator. The register allocator then got confused because it
was only considering the first block of the proc to be an entry point,
when actually any of the info tables are entry points.
Test Plan: validate
Reviewers: simonpj, austin
Subscribers: simonmar, relrod, carter
Differential Revision: https://phabricator.haskell.org/D88
(cherry picked from commit da70f9ef49a545707dc32db9662441b9c8845fba)
>---------------------------------------------------------------
13a651df7b6cf3a26e9a41e4a9d84c1015408af5
compiler/nativeGen/RegAlloc/Linear/Main.hs | 48 ++++++++++++-------------
compiler/nativeGen/RegAlloc/Liveness.hs | 26 ++++++++------
testsuite/tests/codeGen/should_compile/T9303.hs | 10 ++++++
testsuite/tests/codeGen/should_compile/all.T | 1 +
4 files changed, 50 insertions(+), 35 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 13a651df7b6cf3a26e9a41e4a9d84c1015408af5
More information about the ghc-commits
mailing list