Skip to content
  • Ömer Sinan Ağacan's avatar
    Small optimization in the SRT algorithm · 304067a0
    Ömer Sinan Ağacan authored
    Noticed by @simonmar in !1362:
    
        If the srtEntry is Nothing, then it should be safe to omit
        references to this SRT from other SRTs, even if it is a static
        function.
    
    When updating SRT map we don't omit references to static functions (see
    Note [Invalid optimisation: shortcutting]), but there's no reason to add
    an SRT entry for a static function if the function is not CAFFY.
    
    (Previously we'd add SRT entries for static functions even when they're
    not CAFFY)
    
    Using 9151b99e I checked sizes of all SRTs when building GHC and
    containers:
    
    - GHC: 583736 (HEAD), 581695 (this patch). 2041 less SRT entries.
    - containers: 2457 (HEAD), 2381 (this patch). 76 less SRT entries.
    304067a0