Ignore:
Timestamp:
Nov 16, 2011, 4:49:50 PM (14 years ago)
Author:
[email protected]
Message:

JSC::CodeBlock should know which references generated by the DFG are weak
https://bugs.webkit.org/show_bug.cgi?id=72563

Reviewed by Geoff Garen.

CodeBlock::m_dfgData now tracks weak references and weak reference transitions
(like ephemerons) generated by the DFG. The DFG makes sure to notify the
CodeBlock of all uses of weak references and weak reference transitions.
CodeBlock currently marks them strongly, since the weak marking logic is not
in place, yet.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::visitAggregate):
(JSC::CodeBlock::stronglyVisitWeakReferences):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::appendWeakReference):
(JSC::CodeBlock::shrinkWeakReferencesToFit):
(JSC::CodeBlock::appendWeakReferenceTransition):
(JSC::CodeBlock::shrinkWeakReferenceTransitionsToFit):
(JSC::CodeBlock::WeakReferenceTransition::WeakReferenceTransition):

  • bytecode/CodeOrigin.h:

(JSC::CodeOrigin::codeOriginOwner):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleCall):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::addWeakReference):
(JSC::DFG::JITCompiler::addWeakReferenceTransition):
(JSC::DFG::JITCompiler::branchWeakPtr):

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

File:
1 edited

Legend:

Unmodified
Added
Removed
Note: See TracChangeset for help on using the changeset viewer.