[GHC] #12425: With -O1 and above causes ghc to use all available memory before being killed by OOM killer
GHC
ghc-devs at haskell.org
Mon Aug 29 20:35:51 UTC 2016
#12425: With -O1 and above causes ghc to use all available memory before being
killed by OOM killer
-------------------------------------+-------------------------------------
Reporter: erikd | Owner:
Type: bug | Status: new
Priority: high | Milestone: 8.0.2
Component: Compiler | Version: 8.0.1
Resolution: | Keywords: Inlining
Operating System: Unknown/Multiple | Architecture:
Type of failure: Compile-time | Unknown/Multiple
performance bug | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by bgamari):
Indeed there does appear to be some sort of loop here. `-ddump-inlinings`
shows long repeated runs of,
{{{
...
Inlining done: Control.Monad.Trans.State.Lazy.$fMonadStateT1
Inlining done: Control.Monad.Trans.State.Lazy.$fMonadStateT_$c>>=
Inlining done: GHC.Base.$
Inlining done: Control.Monad.Trans.State.Lazy.runStateT
Inlining done: Control.Monad.Trans.State.Lazy.runStateT1
Inlining done: Control.Monad.Trans.State.Lazy.runStateT
Inlining done: Control.Monad.Trans.State.Lazy.runStateT1
Inlining done: GHC.Base.liftM
Inlining done:
Control.Monad.Trans.State.Lazy.$fMonadStateT_$creturn
...
}}}
These runs are punctuated by runs of,
{{{
...
Inlining done: GHC.Base.$fApplicativeMaybe_$sliftM
...
}}}
The runs appear to get longer as the simplifier progresses. It indeed
seems plausible that all of these bindings have INLINE pragmas attached.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12425#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list