Ignore:
Timestamp:
Mar 14, 2017, 2:37:41 PM (8 years ago)
Author:
[email protected]
Message:

Record the HashSet/HashMap operations in DFG/FTL/B3 and replay them in a benchmark
https://bugs.webkit.org/show_bug.cgi?id=169590

Reviewed by Saam Barati.

Source/JavaScriptCore:

Adds code to support logging some hashtable stuff in the DFG.

  • dfg/DFGAvailabilityMap.cpp:

(JSC::DFG::AvailabilityMap::pruneHeap):

  • dfg/DFGCombinedLiveness.cpp:

(JSC::DFG::liveNodesAtHead):
(JSC::DFG::CombinedLiveness::CombinedLiveness):

  • dfg/DFGCombinedLiveness.h:
  • dfg/DFGLivenessAnalysisPhase.cpp:

(JSC::DFG::LivenessAnalysisPhase::run):
(JSC::DFG::LivenessAnalysisPhase::processBlock):

  • dfg/DFGNode.cpp:
  • dfg/DFGNode.h:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:

Source/WTF:

This adds LoggingHashSet and LoggingHashMap, which are drop-in replacements for HashSet and
HashMap that log everything that they do, so that you can replay it later.

This also adds a benchmark (HashSetDFGReplay) based on doing a recording of some of the HashSets
in the DFG compiler.

  • WTF.xcodeproj/project.pbxproj:
  • benchmarks/HashSetDFGReplay.cpp: Added.

(benchmark):
(main):

  • wtf/CMakeLists.txt:
  • wtf/GlobalVersion.cpp: Added.

(WTF::newGlobalVersion):

  • wtf/GlobalVersion.h: Added.
  • wtf/HashMap.h:

(WTF::X>::swap):

  • wtf/HashSet.h:

(WTF::V>::addVoid):

  • wtf/LoggingHashID.h: Added.

(WTF::LoggingHashID::LoggingHashID):
(WTF::LoggingHashID::dump):

  • wtf/LoggingHashMap.h: Added.
  • wtf/LoggingHashSet.h: Added.
  • wtf/LoggingHashTraits.h: Added.

(WTF::LoggingHashKeyTraits::print):
(WTF::LoggingHashValueTraits::print):

File:
1 edited

Legend:

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