-
oliver@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=116630 Reviewed by Mark Hahnenberg. This gives us the ability to use more compiler threads, but doesn't actually enable the functionality because it isn't a speed-up on any benchmark. It can even be a slow-down. This also adds the ability to disable concurrent compilation if we're on a uniprocessor machine, and adds more logging to the worklist code to allow us to investigate how many threads are active. It appears that even on the most compiler-heavy benchmarks, we never have enough work for more than 4 threads, and even then the 4 threads are all active for a short time. Something that having more threads does accomplish is that it shakes out bugs. This patch fixes a bug with Watchpoint not being thread-safe ref-counted, which enabling 7 compilation threads did catch. As it stands, this patch is performance-neutral and just fixes bugs and adds some options. * bytecode/Watchpoint.h: * dfg/DFGCommon.h: (JSC::DFG::enableConcurrentJIT): * dfg/DFGWorklist.cpp: (JSC::DFG::Worklist::Worklist): (JSC::DFG::Worklist::~Worklist): (JSC::DFG::Worklist::finishCreation): (JSC::DFG::Worklist::create): (JSC::DFG::Worklist::enqueue): (JSC::DFG::Worklist::waitUntilAllPlansForVMAreReady): (JSC::DFG::Worklist::dump): (JSC::DFG::Worklist::runThread): (JSC::DFG::initializeGlobalWorklistOnce): * dfg/DFGWorklist.h: * runtime/Options.cpp: (JSC::computeNumberOfWorkerThreads): (JSC): (JSC::computeNumberOfGCMarkers): * runtime/Options.h: (JSC): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153175 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2102d1a1