| Ok, should it be INLINE[n] or NOINLINE[n], and what is the right value
| of n?
Well it depends on the rules. The offending ones are below
libraries/parallel/Control/Parallel/Strategies.hs:513:2: warning:
Rule "parList/rseq" may never fire
because 'rseq' might inline first
Probable fix: add an INLINE[n] or NOINLINE[n] pragma for 'rseq'
libraries/parallel/Control/Parallel/Strategies.hs:582:1: warning:
Rule "evalBuffer/rseq" may never fire
because 'rseq' might inline first
Probable fix: add an INLINE[n] or NOINLINE[n] pragma for 'rseq'
libraries/parallel/Control/Parallel/Strategies.hs:583:1: warning:
Rule "parBuffer/rseq" may never fire
because 'rseq' might inline first
Probable fix: add an INLINE[n] or NOINLINE[n] pragma for 'rseq'
All three appear to be always-active, and hence will run in the first phase
(2). So delaying inlining rseq to phase 1 (phases count downwards) would do.
So INLINE[1] or NOINLINE[1]
| (I always have to look up the documentation for these, just a
| suggestion but maybe it would be better to call them INLINEAFTER[n]
| and INLINEBEFORE[n], or something?)
Maybe. But NOINLINE[n] means "do not inline until phase n; and you are free to
do what you like thereafter" So it would have to be NOINLINEUNTIL[n]. But
yes, that'd be quite do-able.
Simon
|
| Cheers
| Simon
_______________________________________________
ghc-devs mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs