[GHC] #2988: Improve float-in

GHC ghc-devs at haskell.org
Mon Jan 22 10:30:30 UTC 2018


#2988: Improve float-in
-------------------------------------+-------------------------------------
        Reporter:  simonpj           |                Owner:  (none)
            Type:  task              |               Status:  new
        Priority:  lowest            |            Milestone:
       Component:  Compiler          |              Version:  6.10.1
      Resolution:                    |             Keywords:  FloatInwards
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:                    |
-------------------------------------+-------------------------------------
Changes (by simonpj):

 * keywords:   => FloatInwards


Comment:

 No it's not fixed.  Here's a concrete test case
 {{{
 module T2988 where

 foo :: Int -> Bool -> String
 foo y b
     = let x1 = y+1
           x2 = x1 : []
           x3 = 1 : x2
           x4 = 2 : x3
           x5 = 3 : x4
           x6 = 4 : x5
       in case b of
         True  -> show x6
         False -> show (reverse x6)
 }}}
 We get a cascade of one-at-a-time inlinings.   Horrid.

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


More information about the ghc-tickets mailing list