
#8319: Simplifier ticks exhausted (need -fsimpl-tick-factor=955) ---------------------------------------+----------------------------------- Reporter: ruudkoot | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.6.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time crash | Unknown/Multiple Test Case: | Difficulty: Unknown Blocking: | Blocked By: | Related Tickets: ---------------------------------------+----------------------------------- Comment (by simonpj): I've found out what is going on. (What follows is an aide-memoire for me.) There is a huge function of this form: {{{ f = \x -> let BIG BIG BIG in case ... of p1 -> (# a, b, c, d #) p2 -> (# a, b, c, d #) ... p2 -> (# a, b, c, d #) }}} As things stand, in `CoreUnfold`, unboxed tuples don't count towards the size of the express, but DO count towards the result discount. See `Note [Unboxed tuple size and result discount]`. As a result, functions like `f` can be very big, but have a massive result discount, and hence can be inlined like crazy. This blows up the size of the test program. The obvious solution is to nuke the discount, but I need check performance runs carefully. This comment just records my progress. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8319#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler