Changeset 253263 in webkit for trunk/Source/JavaScriptCore/llint


Ignore:
Timestamp:
Dec 7, 2019, 2:25:18 PM (5 years ago)
Author:
[email protected]
Message:

Unreviewed. Roll out r253201. It was not a progression on any benchmarks, and was 8% slower on JetStream 2 ML.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/BytecodeList.rb:
  • bytecode/GetByValHistory.h: Added.

(JSC::GetByValHistory::observeNonUID):
(JSC::GetByValHistory::observe):
(JSC::GetByValHistory::count const):
(JSC::GetByValHistory::filter const):
(JSC::GetByValHistory::update):

  • bytecode/PointerHistory.h: Removed.
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseGetById):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGGraph.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetById):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):

  • generator/DSL.rb:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/OptionsList.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp

    r253201 r253263  
    641641    LLINT_BEGIN();
    642642    auto bytecode = pc->as<OpTryGetById>();
    643     auto& metadata = bytecode.metadata(codeBlock);
    644 
    645643    const Identifier& ident = codeBlock->identifier(bytecode.m_property);
    646644    JSValue baseValue = getOperand(callFrame, bytecode.m_base);
    647     if (metadata.m_seenStructures.count() <= Options::getByIdICMaxNumberOfStructures())
    648         metadata.m_seenStructures.observe(baseValue.structureOrNull());
    649645    PropertySlot slot(baseValue, PropertySlot::PropertySlot::InternalMethodType::VMInquiry);
    650646
     
    659655    LLINT_BEGIN();
    660656    auto bytecode = pc->as<OpGetByIdDirect>();
    661     auto& metadata = bytecode.metadata(codeBlock);
    662657    const Identifier& ident = codeBlock->identifier(bytecode.m_property);
    663658    JSValue baseValue = getOperand(callFrame, bytecode.m_base);
    664     if (metadata.m_seenStructures.count() <= Options::getByIdICMaxNumberOfStructures())
    665         metadata.m_seenStructures.observe(baseValue.structureOrNull());
    666659    PropertySlot slot(baseValue, PropertySlot::PropertySlot::InternalMethodType::GetOwnProperty);
    667660
     
    672665
    673666    if (!LLINT_ALWAYS_ACCESS_SLOW && slot.isCacheable() && !slot.isUnset()) {
     667        auto& metadata = bytecode.metadata(codeBlock);
    674668        {
    675669            StructureID oldStructureID = metadata.m_structureID;
     
    772766    const Identifier& ident = codeBlock->identifier(bytecode.m_property);
    773767    JSValue baseValue = getOperand(callFrame, bytecode.m_base);
    774 
    775     if (metadata.m_seenStructures.count() <= Options::getByIdICMaxNumberOfStructures())
    776         metadata.m_seenStructures.observe(baseValue.structureOrNull());
    777 
    778768    PropertySlot slot(baseValue, PropertySlot::PropertySlot::InternalMethodType::Get);
    779769
Note: See TracChangeset for help on using the changeset viewer.