Changing prefetch primops to have a seq-like interface
The current primops for prefetching do not properly work in pure code;
namely, the primops are not 'hoisted' into the correct call sites based
on when arguments are evaluated. Instead, they should use a seq-like
interface, which will cause it to be evaluated when the needed term is.
See Trac #9353 for the full discussion.
Test Plan: updated tests for pure prefetch in T8256 to reflect the design changes in Trac #9353
Reviewers: simonmar, hvr, ekmett, austin
Reviewed By: ekmett, austin
Subscribers: merijn, thomie, carter, simonmar
Differential Revision: https://phabricator.haskell.org/D350
GHC Trac Issues: Trac #9353