Re: [GHC] #6084: Add stg_ap_pnnv and related call patterns

#6084: Add stg_ap_pnnv and related call patterns ---------------------------------+------------------------------------------ Reporter: SimonMeier | Owner: simonmar Type: feature request | Status: infoneeded Priority: normal | Milestone: 7.8.1 Component: Runtime System | Version: 7.4.1 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ Comment(by simonmar): I don't think they're orthogonal: both ways avoid building the intermediate PAP(s). The tradeoffs are: * with extra call patterns, we have to predict which patterns we need, and we can easily get it wrong (e.g. we're talking here about needing `ppnnnv`, which is quite obscure) * extra call patterns take up static code space in the RTS whether we use them or not. * Generating the saturation check at the call site means extra code, but it works for any pattern, and you don't pay for it if you don't need it (the case in the codegen was not triggered at all in nofib, and was only triggered once in the codeGen tests, unless I did something wrong). The short-cut isn't the same as generating a fresh slow-call pattern at the call site. It only does the saturation check, and delegates everything else to the existing slow call patterns. I think it should be exactly what's needed in these cases, but I'd like to see some benchmarks. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/6084#comment:9 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC