• Simon Marlow's avatar
    Save a word in the info table on x86_64 · 2b0918c9
    Simon Marlow authored
    Summary:
    An info table with an SRT normally looks like this:
    
        StgWord64 srt_offset
        StgClosureInfo layout
        StgWord32 layout
        StgWord32 has_srt
    
    But we only need 32 bits for srt_offset on x86_64, because the small
    memory model requires that code segments are at most 2GB. So we can
    optimise this to
    
        StgClosureInfo layout
        StgWord32 layout
        StgWord32 srt_offset
    
    saving a word.  We can tell whether the info table has an SRT or not,
    because zero is not a valid srt_offset, so zero still indicates that
    there's no SRT.
    
    Test Plan:
    * validate
    * For results, see D4632.
    
    Reviewers: bgamari, niteria, osa1, erikd
    
    Subscribers: thomie, carter
    
    Differential Revision: https://phabricator.haskell.org/D4634
    2b0918c9
Scav.c 61.6 KB