[GHC] #8905: Function arguments are always spilled/reloaded if scrutinee is already in WHNF

GHC ghc-devs at haskell.org
Mon Mar 17 14:30:33 UTC 2014


#8905: Function arguments are always spilled/reloaded if scrutinee is already in
WHNF
--------------------------------------------+------------------------------
        Reporter:  tibbe                    |            Owner:
            Type:  bug                      |           Status:  new
        Priority:  normal                   |        Milestone:
       Component:  Compiler                 |          Version:  7.9
      Resolution:                           |         Keywords:
Operating System:  Unknown/Multiple         |     Architecture:
 Type of failure:  Runtime performance bug  |  Unknown/Multiple
       Test Case:                           |       Difficulty:  Unknown
        Blocking:                           |       Blocked By:
                                            |  Related Tickets:
--------------------------------------------+------------------------------

Comment (by simonmar):

 Oh, I just remembered one thing: when we are splitting proc points, then
 the "faster" sequence is actually worse because it generates two separate
 proc points, one for the call-return and one for the joint point.  If we
 always do the copyout, then the call-return can be the join point too,
 which means we only need one proc point.

 However, we now don't generate proc points (when using the NCG), so we can
 probably use the faster sequence with only a small increase in code size.
 Someone needs to measure.  And figure out whether we still want to do this
 when using LLVM or not.

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


More information about the ghc-tickets mailing list