I think the difference between the inlinable and specialize pragma is whether 
the specialization needs to be driven by the call site or not. If you have a 
handful of known types you want to specialize for up front, you can use the 
specialize pragma. If the set is large or unknown (like in the case of 
container keys/value, the inlinable pragma does the right thing.)
Correct!  And not well described anywhere.

If someone writes something, I’ll willingly review

S

From: Johan Tibell [mailto:[email protected]]
Sent: 28 January 2016 13:40
To: Simon Peyton Jones <[email protected]>
Cc: Conal Elliott <[email protected]>; [email protected]
Subject: Re: More aggressive dictionary removal?

I think the difference between the inlinable and specialize pragma is whether 
the specialization needs to be driven by the call site or not. If you have a 
handful of known types you want to specialize for up front, you can use the 
specialize pragma. If the set is large or unknown (like in the case of 
container keys/value, the inlinable pragma does the right thing.)

On Thu, Jan 28, 2016 at 1:54 PM, Simon Peyton Jones 
<[email protected]<mailto:[email protected]>> wrote:
Aggressive inlining is one way, but specialisation ought to get a long way, and 
makes fewer copies of the specialised code.

It’s hard to help without a concrete example

Simon

From: ghc-devs 
[mailto:[email protected]<mailto:[email protected]>] On 
Behalf Of Conal Elliott
Sent: 28 January 2016 00:05
To: [email protected]<mailto:[email protected]>
Subject: More aggressive dictionary removal?

I'm looking for pointers on getting GHC to eliminate more overloading & 
polymorphism. I think this sort of thing mainly happens in the Specialise 
module. The default GHC flag settings get me a couple levels of 
monomorphization and dictionary removal, but I want to go further. I've tried 
-fspecialise-aggressively, but it didn't seem to make a difference, and I 
haven't found this flag described in the GHC user's guide. Anyone have pointers 
to more information?
Thanks, - Conal

_______________________________________________
ghc-devs mailing list
[email protected]<mailto:[email protected]>
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs<https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2fmail.haskell.org%2fcgi-bin%2fmailman%2flistinfo%2fghc-devs&data=01%7c01%7csimonpj%40064d.mgd.microsoft.com%7c5939cd4041e84aa62b2408d327e89e34%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=sx95mmcTZxoS64z47uYAcR7n8iYq78JeMKFjdi%2bZDpw%3d>

_______________________________________________
ghc-devs mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to