I just split the "library code" (data types and instances) and the client
code (type-specialized use) into two modules. Same great results, as long
as both modules are compiled with -O (not even -O2). Sweet!

On Thu, Jan 28, 2016 at 10:12 AM, Conal Elliott <[email protected]> wrote:

> Hah! I had misread the signatures in the Core output. I'm getting exactly
> the dictionary removal I wanted. Fantastic!
>
> I'm attaching my sample source code and the Core it produces.
>
> Sorry for the misdirection, and kudos for specialis/zation in GHC!
>
> -- Conal
>
> On Thu, Jan 28, 2016 at 4:54 AM, Simon Peyton Jones <[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]] *On Behalf Of *Conal
>> Elliott
>> *Sent:* 28 January 2016 00:05
>> *To:* [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]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to