[GHC] #9353: prefetch primops are not currently useful

GHC ghc-devs at haskell.org
Sun Oct 19 05:07:26 UTC 2014


#9353: prefetch primops are not currently useful
-------------------------------------+-------------------------------------
              Reporter:              |            Owner:  carter
  MikeIzbicki                        |           Status:  patch
                  Type:  bug         |        Milestone:  7.10.1
              Priority:  normal      |          Version:  7.8.2
             Component:  Compiler    |         Keywords:
            Resolution:              |     Architecture:  Unknown/Multiple
      Operating System:              |       Difficulty:  Unknown
  Unknown/Multiple                   |       Blocked By:
       Type of failure:              |  Related Tickets:
  None/Unknown                       |
             Test Case:              |
              Blocking:              |
Differential Revisions:  D350        |
-------------------------------------+-------------------------------------

Comment (by carter):

 So one complication that came up is that to provide the refitted pure
 prefetch operations as a naive primop is that the types need to be of the
 shape ` Addr# -> Int# -> a -> (# a #)`
 For some reason, the more "obvious" type ` Addr# -> Int# -> a -> a` will
 make GHC panic!

 Looking at how seq is defined, another option to consider would be to take
 a page from seq and define the prefetch operations in the pseudo op style
 like seq, ie
 `prefetchSeq addr offset b = case prefetch# addr offset of _ -> b`
 This would allow giving it the type `Addr# -> Int# -> a -> a`, with the
 prefetch# operation itself then having a type like `Addr# -> Int# ->
 State#` and the `has_side_effects=True` attribute

 Luite has helped sketch out this new design, and has pointed out how the
 semantics of touch# and seq and seq# relate to this.

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


More information about the ghc-tickets mailing list