[commit: ghc] master: Allow multiple entry points when allocating recursive groups (#9303) (da70f9e)

git at git.haskell.org git at git.haskell.org
Thu Jul 31 07:55:50 UTC 2014


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/da70f9ef49a545707dc32db9662441b9c8845fba/ghc

>---------------------------------------------------------------

commit da70f9ef49a545707dc32db9662441b9c8845fba
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


>---------------------------------------------------------------

da70f9ef49a545707dc32db9662441b9c8845fba
 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 da70f9ef49a545707dc32db9662441b9c8845fba


More information about the ghc-commits mailing list