Skip to content
  • Sylvain Henry's avatar
    3981db0c
    Add more canned GC functions for common register patterns (#27142) · 3981db0c
    Sylvain Henry authored and Marge Bot's avatar Marge Bot committed
    
    
    Based on analysis of heap-check sites across the GHC compiler and Cabal,
    the following patterns were not covered by existing canned GC functions
    but occurred frequently enough to warrant specialisation:
    
      stg_gc_ppppp  -- 5 GC pointers
      stg_gc_ip     -- unboxed word + GC pointer
      stg_gc_pi     -- GC pointer + unboxed word
      stg_gc_ii     -- two unboxed words
      stg_gc_bpp    -- byte (I8) + two GC pointers
    
    Adding these reduces the fraction of heap-check sites falling back to
    the generic GC path from ~1.4% to ~0.4% when compiling GHC itself.
    
    Co-Authored-By: default avatarClaude Sonnet 4.6 <noreply@anthropic.com>
    3981db0c
    Add more canned GC functions for common register patterns (#27142)
    Sylvain Henry authored and Marge Bot's avatar Marge Bot committed
    
    
    Based on analysis of heap-check sites across the GHC compiler and Cabal,
    the following patterns were not covered by existing canned GC functions
    but occurred frequently enough to warrant specialisation:
    
      stg_gc_ppppp  -- 5 GC pointers
      stg_gc_ip     -- unboxed word + GC pointer
      stg_gc_pi     -- GC pointer + unboxed word
      stg_gc_ii     -- two unboxed words
      stg_gc_bpp    -- byte (I8) + two GC pointers
    
    Adding these reduces the fraction of heap-check sites falling back to
    the generic GC path from ~1.4% to ~0.4% when compiling GHC itself.
    
    Co-Authored-By: default avatarClaude Sonnet 4.6 <noreply@anthropic.com>
Loading