
#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 tibbe): I've attached the Cmm for the biggest loss in the nofib run above, `cryptarithm1`. There's definitely more code generated with simonmar's patch (which nofib strangely doesn't report). Just to validate nofib's result, I reran this benchmark manually and grabbed the results for the best out of five runs: master: {{{ real 0m0.328s user 0m0.320s sys 0m0.007s }}} no-spill: {{{ real 0m0.333s user 0m0.325s sys 0m0.007s }}} That's a 1.5% runtime difference. Looking at the mutator time with `+RTS -s` (using five new runs), I can see no difference (`+RTS -s` has lower resolution). -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8905#comment:13 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler