• 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
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...