[GHC] #14727: Unboxed sum performance surprisingly poor

GHC ghc-devs at haskell.org
Sat Jan 27 02:59:25 UTC 2018


#14727: Unboxed sum performance surprisingly poor
-------------------------------------+-------------------------------------
           Reporter:  dfeuer         |             Owner:  (none)
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:  8.6.1
          Component:  Compiler       |           Version:  8.2.2
           Keywords:  UnboxedSums    |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  Runtime
  Unknown/Multiple                   |  performance bug
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 I tried performing worker-wrapper manually on `Data.IntMap.lookup`:

 {{{#!hs
 lookup# :: Int -> IntMap a -> (# (# #) | a #)
 lookup# = -- The obvious modification of the current implementation

 lookup :: Int -> IntMap a -> Maybe a
 lookup k m = case lookup# k m of
   (# | a #) -> Just a
   _ -> Nothing
 }}}

 Unfortunately, the `lookup` benchmark ''slowed down''. I verified that the
 benchmark indeed performs an immediate case analysis on the result (with
 `fromMaybe`), so it ''should'' go faster. And yet it goes slower.

 Caveat: I have not yet gotten things set up to be able to check with 8.4,
 so if there have been improvements in `UnboxedSum` performance since
 `8.2.2`, this may all be silly.

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


More information about the ghc-tickets mailing list