Ignore:
Timestamp:
Jul 24, 2013, 9:01:20 PM (12 years ago)
Author:
[email protected]
Message:

fourthTier: It should be possible to record heap operations (both FastMalloc and JSC GC)
https://bugs.webkit.org/show_bug.cgi?id=116848

Source/JavaScriptCore:

Reviewed by Mark Hahnenberg.

Record GC heap operations if ENABLE(ALLOCATION_LOGGING).

  • API/JSManagedValue.mm:
  • dfg/DFGOperations.cpp:
  • heap/Heap.cpp:

(JSC::Heap::collect):

  • heap/Heap.h:

(Heap):
(JSC::Heap::allocateWithNormalDestructor):
(JSC::Heap::allocateWithImmortalStructureDestructor):
(JSC::Heap::allocateWithoutDestructor):
(JSC::Heap::tryAllocateStorage):
(JSC::Heap::tryReallocateStorage):
(JSC):
(JSC::Heap::ascribeOwner):

  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::append):
(JSC::SlotVisitor::internalAppend):

  • heap/SlotVisitor.h:

(SlotVisitor):

  • heap/SlotVisitorInlines.h:

(JSC::SlotVisitor::append):
(JSC::SlotVisitor::appendUnbarrieredPointer):
(JSC::SlotVisitor::appendUnbarrieredValue):
(JSC::SlotVisitor::appendUnbarrieredWeak):
(JSC::SlotVisitor::internalAppend):
(JSC):
(JSC::SlotVisitor::appendValues):

  • jit/JITWriteBarrier.h:

(JSC::SlotVisitor::append):

  • llint/LLIntCommon.h:
  • runtime/Butterfly.h:

(Butterfly):

  • runtime/ButterflyInlines.h:

(JSC::Butterfly::createUninitialized):
(JSC::Butterfly::create):
(JSC::Butterfly::growPropertyStorage):
(JSC::Butterfly::createOrGrowArrayRight):
(JSC):
(JSC::Butterfly::growArrayRight):
(JSC::Butterfly::resizeArray):

  • runtime/JSArray.cpp:

(JSC::createArrayButterflyInDictionaryIndexingMode):
(JSC::JSArray::unshiftCountSlowCase):

  • runtime/JSArray.h:

(JSC::createContiguousArrayButterfly):
(JSC::createArrayButterfly):
(JSC):
(JSC::JSArray::create):
(JSC::JSArray::tryCreateUninitialized):

  • runtime/JSObject.cpp:

(JSC::JSObject::enterDictionaryIndexingModeWhenArrayStorageAlreadyExists):
(JSC::JSObject::createInitialIndexedStorage):
(JSC::JSObject::createArrayStorage):
(JSC::JSObject::constructConvertedArrayStorageWithoutCopyingElements):
(JSC::JSObject::increaseVectorLength):
(JSC::JSObject::ensureLengthSlow):
(JSC::JSObject::growOutOfLineStorage):

  • runtime/JSObject.h:

(JSC::JSObject::JSObject):

  • runtime/Operations.h:
  • runtime/RegExpMatchesArray.cpp:

(JSC::RegExpMatchesArray::create):

  • runtime/StructureInlines.h:

(JSC):

  • runtime/WriteBarrier.h:

(JSC):

Source/WTF:

Reviewed by Mark Hahnenberg.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/DataLog.cpp:

(WTF):
(WTF::initializeLogFileOnce):

  • wtf/FastMalloc.cpp:

(WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):

  • wtf/Platform.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/runtime/StructureInlines.h

    r153169 r153189  
    110110}
    111111
    112 ALWAYS_INLINE void SlotVisitor::internalAppend(JSCell* cell)
    113 {
    114     ASSERT(!m_isCheckingForDefaultMarkViolation);
    115     if (!cell)
    116         return;
    117 #if ENABLE(GC_VALIDATION)
    118     validate(cell);
    119 #endif
    120     if (Heap::testAndSetMarked(cell) || !cell->structure())
    121         return;
    122 
    123     m_visitCount++;
    124        
    125     MARK_LOG_CHILD(*this, cell);
    126 
    127     // Should never attempt to mark something that is zapped.
    128     ASSERT(!cell->isZapped());
    129        
    130     m_stack.append(cell);
    131 }
    132 
    133112inline bool Structure::transitivelyTransitionedFrom(Structure* structureToFind)
    134113{
Note: See TracChangeset for help on using the changeset viewer.