[GHC] #6084: Add stg_ap_pnnv and related call patterns
GHC
cvs-ghc at haskell.org
Mon Feb 25 17:47:49 CET 2013
#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
More information about the ghc-tickets
mailing list