Improving the Int/Word story inside GHC

Edward Z. Yang ezyang at
Thu Aug 7 11:16:44 UTC 2014

If it's strictly just in the codegen (and not affecting user code),
seems fine to me.


Excerpts from Johan Tibell's message of 2014-08-07 12:10:37 +0100:
> Inside GHC we mostly use Int instead of Word, even when we want to
> represent non-negative values, such as sizes of things or indices into
> things. This is now causing some grief in
>, where an allocation boundary
> case test fails with a segfault because a n < m Int comparison overflows.
> I tried to fix the issue by changing the type of maxInlineAllocSize, which
> is used on one side of the above comparison, to Word. However, that
> unravels a bunch of other issues, such as wordsToBytes, ByteOff, etc are
> all Int-valued quantities.
> I could perhaps work around these problems by judicious use of fromIntegral
> in StgCmmPrim, but I'm a bit unhappy about it because it 1) makes the code
> uglier and 2) needs to be done in quite a few places.
> How much work would it be to try to switch the codegen to use Word for most
> of these quantities instead?
> -- Johan

More information about the ghc-devs mailing list