[GHC] #13104: runRW# ruins join points
GHC
ghc-devs at haskell.org
Wed Oct 24 08:30:40 UTC 2018
#13104: runRW# ruins join points
-------------------------------------+-------------------------------------
Reporter: lukemaurer | Owner: chessai
Type: bug | Status: new
Priority: normal | Milestone: 8.8.1
Component: Compiler | Version: 8.1
Resolution: | Keywords: JoinPoints
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: |
-------------------------------------+-------------------------------------
Comment (by sgraf):
Yes, I meant 'make runRW# a proper primop'. It's treated like one by Core
anyway. This mostly entails adding it to primops.txt.pp, but I'd suggest
grepping for mentions of another primop like `seq#` (lowered in STG, IIRC)
and handle it the same way.
> To be clear, while currently the demand signature of runRW# is <C(S),
C1(U)>, and you'd rather it be < L, C1(U)>? Why? How is this laziness
related to the problem related to the Note [runRW magic]?
I got the note wrong. I was referring to `Note [runRW arg]`, but that note
says that we ''should'' make `runRW#` strict and says that we do so in
`MkId`. I couldn't find any mention of runRW in there, so that may have
been a lie, not sure. So, it seems that `<C(S), C1(U)>` is actually the
correct demand signature.
Upon following Phab:D2444, I'm not so sure anymore we should actually
handle it as a primop, but rather like `lazy` or `unsafeCoerce#` entirely
in `MkId`. Reading wiki:Commentary/PrimOps and
wiki:Commentary/Compiler/WiredIn, it seems that currently `runRW#` is a
"known-key" thing, but we need it to become a "wired-in" thing to attach
useful `IdInfo` such as demand signatures. It should not become a prim-op,
because we know how to lower it in CoreToStg as opposed to StgToCmm
(effectively 'linking' to an appropriate implementation).
It would be great if someone more knowledgable could chime in and confirm
my last paragraph.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13104#comment:18>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list