Redundancy elimination, and how to prevent bindings from being floated.

Ben Lippmeier benl at ouroborus.net
Mon Feb 21 08:30:29 CET 2011


On 18/02/2011, at 9:41 PM, Roman Leshchinskiy wrote:

> Ben Lippmeier wrote:
>> 
>> Another idea would be to add some primops like the following:
>> 
>> 
>> noopInt#   :: Int#   -> State# s -> State# s
>> noopFloat# :: Float# -> State# s -> State# s
>> ...
> 
> Have a look at GHC.Prim.touch#. Note that it's special and can be
> instantiated with unboxed types, too.

Great thanks, That's done the trick.

However, I was doing this on i386, and have now run out of registers. The gains I made due to sharing of indexing computations have been taken back by spill/reloads. I'll try on x86_64 next and let you know how it goes.

Ben.




More information about the Cvs-ghc mailing list