On 07/07/2011 08:49, Max Bolingbroke wrote:
On 6 July 2011 17:48, Max Bolingbroke<[email protected]>  wrote:
On 6 July 2011 16:40, Simon Marlow<[email protected]>  wrote:
When the data type has more constructors than we have room for in the tag
bits, then the code for the alternatives will grab the tag from the info
table.  If the info table is IND_STATIC_info, this will go wrong.

I tried adding a new LambdaForm for indirections so that references to
the top level closure would not get pointer tagged but it still fails
somehow. Bah! This is too hard, I'm giving up (unless I get some flash
of insight).

I'm out of ideas I'm afraid.  You'll have to debug this the hard way.

In other news, I stopped exporting _info pointers for datacon workers,
which saved 1667 exports. This change only affects *non-nullary* data
constructors: as you can see, in GHC almost exactly 50% of data
constructors have no arguments, so special case treatment for them can
be important.

The total number of exports I've saved is now up to ~15k... lets see
if I can eliminate anything else.

Great - that should speed up linking too.

Cheers,
        Simon

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to