Skip to content
  • fpizlo@apple.com's avatar
    There is no facility for profiling how the write barrier is used · aec7e0c4
    fpizlo@apple.com authored
    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.
    
    * GNUmakefile.list.am:
    * JavaScriptCore.exp:
    * JavaScriptCore.pro:
    * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
    * JavaScriptCore.xcodeproj/project.pbxproj:
    * dfg/DFGJITCodeGenerator.cpp:
    (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):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@93698 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    aec7e0c4