• Georg Neis's avatar
    [turbofan] Get rid of HeapObjectType-related heap reads. · 253c2469
    Georg Neis authored
    This removes the last unconditional read accesses to the heap, but
    required a significant refactoring.
    
    - Remove HeapObjectRef::type().
    - Change HeapObjectData::Is* testers to look at the instance type
      in HeapObjectData::map().
    
    - Remove ObjectRef::oddball_type()
    - Add MapRef::oddball_type()
    - Add MapRef::is_undetectable().
    - Add MapRef::is_callable().
    
    - Remove JSHeapBroker::HeapObjectTypeFromMap()
    - Remove Type::For(JSHeapBroker*, Handle<Map>)
    - Add BitsetType::Lub(MapRef).
    - Add Type::For(MapRef).
    - Add Type::For(HeapObjectType).
    
    - Add HeapObjectRef::GetHeapObjectType(). THIS IS TEMPORARY.
    
    As the last item suggests, I couldn't actually remove the
    HeapObjectType class yet. See the explanation in the code.
    
    Bug: v8:7790
    Change-Id: I508e4bd5337277b0050f2204392fc36f41032fe9
    Reviewed-on: https://chromium-review.googlesource.com/1228033Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
    Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
    Commit-Queue: Georg Neis <neis@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#55994}
    253c2469
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni 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...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython 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...
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...