• 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
js-context-specialization.cc 7.89 KB