• brucedawson's avatar
    Reduce VC++ padding in IncrementalMarking class · f4a57545
    brucedawson authored
    IncrementalMarking has nine bytes of padding in 32-bit and 64-bit
    builds. Fixing 32-bit builds just requires moving the one-byte
    incremental_marking_job_ member. Fixing 64-bit requires moving the
    four-byte state_ member. This change reduces the padding to one byte.
    
    On 64-bit this reduces its size from 152 to 144. This also fits heap
    granularity better. On 32-bit it goes from 96 to 88 bytes.
    
    The initial padding was found with llvm-pdbdump.exe. The fix was
    verified by compiling v8/src/assembler.cc with the undocumented
    /d1reportSingleClassLayout option, like this:
    
        /d1reportSingleClassLayoutIncrementalMarking
    
    The savings should apply on all platforms, or at worst should make no
    difference except for improving alignment.
    
    Thanks to zturner@ for some llvm-pdbdump improvements.
    
    BUG=chromium:710933
    
    Review-Url: https://codereview.chromium.org/2808473003
    Cr-Commit-Position: refs/heads/master@{#44698}
    f4a57545
incremental-marking.cc 42.6 KB