[GHC] #14567: OccAnal loop-breaker scoring for NOINLINE things
#14567: OccAnal loop-breaker scoring for NOINLINE things -------------------------------------+------------------------------------- Reporter: simonpj | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- When working on #14566 I found a case where the occurrence analyser generated {{{ Rec { {-# NOINLINE f #-} f = e1[g] ; g {-# LOOPBREAKER #-} = e2[f] } }}} That is, even though `f` is marked `NOINLINE` we chose `g` to be the loop breaker. Stupid! If `f` is marked `NOINLINE` it would be a much better loop breaker. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14567> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#14567: OccAnal loop-breaker scoring for NOINLINE things -------------------------------------+------------------------------------- Reporter: simonpj | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by Simon Peyton Jones <simonpj@…>): In [changeset:"5695f462f604fc63cbb45a7f3073bc114f9b475f/ghc" 5695f462/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="5695f462f604fc63cbb45a7f3073bc114f9b475f" Occurrrence analysis improvements for NOINLINE functions This patch fixes #14567. The idea is simple: if a function is marked NOINLINE then it makes a great candidate for a loop breaker. Implementation is easy too, but it needs a little extra plubming, notably the occ_unf_act field in OccEnv }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14567#comment:1> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#14567: OccAnal loop-breaker scoring for NOINLINE things -------------------------------------+------------------------------------- Reporter: simonpj | Owner: (none) Type: bug | Status: closed Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: fixed | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by simonpj): * status: new => closed * resolution: => fixed -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14567#comment:2> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
participants (1)
-
GHC