[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