Ignore:
Timestamp:
Aug 24, 2011, 2:50:40 AM (14 years ago)
Author:
[email protected]
Message:

There is no facility for profiling how the write barrier is used
https://bugs.webkit.org/show_bug.cgi?id=66747

Reviewed by Geoffrey Garen.

Added facilities for the JIT to specify the kind of write barrier
being executed. Added code for profiling the number of each kind
of barrier encountered.

(JSC::DFG::JITCodeGenerator::writeBarrier):
(JSC::DFG::JITCodeGenerator::cachedPutById):

  • dfg/DFGJITCodeGenerator.h:
  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::emitCount):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::emitCount):

  • dfg/DFGNonSpeculativeJIT.cpp:

(JSC::DFG::NonSpeculativeJIT::compile):

  • dfg/DFGRepatch.cpp:

(JSC::DFG::tryCachePutByID):

  • dfg/DFGSpeculativeJIT.cpp:

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

  • heap/Heap.h:

(JSC::Heap::writeBarrier):

  • heap/WriteBarrierSupport.cpp: Added.

(JSC::WriteBarrierCounters::initialize):

  • heap/WriteBarrierSupport.h: Added.

(JSC::WriteBarrierCounters::WriteBarrierCounters):
(JSC::WriteBarrierCounters::jitCounterFor):
(JSC::WriteBarrierCounters::countWriteBarrier):

  • jit/JIT.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::privateCompilePutByIdTransition):
(JSC::JIT::emit_op_put_scoped_var):
(JSC::JIT::emit_op_put_global_var):
(JSC::JIT::emitWriteBarrier):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::privateCompilePutByIdTransition):
(JSC::JIT::emit_op_put_scoped_var):
(JSC::JIT::emit_op_put_global_var):
(JSC::JIT::emitWriteBarrier):

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreadingOnce):

  • runtime/WriteBarrier.h:

(JSC::WriteBarrierBase::setWithoutWriteBarrier):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/JavaScriptCore.exp

    r93378 r93698  
    211211__ZN3JSC20MarkedArgumentBuffer10slowAppendENS_7JSValueE
    212212__ZN3JSC20createReferenceErrorEPNS_9ExecStateERKNS_7UStringE
     213__ZN3JSC20WriteBarrierCounters22usesWithBarrierFromCppE
     214__ZN3JSC20WriteBarrierCounters25usesWithoutBarrierFromCppE
    213215__ZN3JSC22globalMemoryStatisticsEv
    214216__ZN3JSC22objectConstructorTableE
Note: See TracChangeset for help on using the changeset viewer.