[GHC] #10218: GHC creates incorrect code which throws <<loop>>

GHC ghc-devs at haskell.org
Tue Apr 14 12:13:37 UTC 2015


#10218: GHC creates incorrect code which throws <<loop>>
-------------------------------------+-------------------------------------
        Reporter:  yongqli           |                   Owner:
            Type:  bug               |                  Status:  new
        Priority:  normal            |               Milestone:
       Component:  Compiler          |                 Version:  7.10.1
      Resolution:                    |                Keywords:
Operating System:  Unknown/Multiple  |            Architecture:
 Type of failure:  None/Unknown      |  Unknown/Multiple
      Blocked By:                    |               Test Case:  yes
 Related Tickets:                    |                Blocking:
                                     |  Differential Revisions:
-------------------------------------+-------------------------------------

Comment (by Simon Peyton Jones <simonpj@…>):

 In [changeset:"d261d4cbcc867405f71d7c9580628f52978e2267/ghc"]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="d261d4cbcc867405f71d7c9580628f52978e2267"
 Zap usage info in CSE (Trac #10218)

 Trac #10218 reports a subtle bug that turned out to be:

 - CSE invalidated the usage information computed
   by earlier demand analysis, by increasing sharing

 - that made a single-entry thunk into a multi-entry thunk

 - and with -feager-blackholing, that led to <<loop>>

 The patch fixes it by making the CSE pass zap usage information for
 let-bound identifiers.   It can be restored by -flate-dmd-anal.

 (But making -flate-dmd-anal the default needs some careful work;
 see Trac #7782.)
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10218#comment:13>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list