Ignore:
Timestamp:
Jul 3, 2017, 2:51:01 PM (8 years ago)
Author:
[email protected]
Message:

Add better crash logging for allocation sinking phase
https://bugs.webkit.org/show_bug.cgi?id=174102
<rdar://problem/33112092>

Rubber stamped by Filip Pizlo.

I'm trying to gather better information from crashlogs about why
we're crashing in the allocation sinking phase. I'm adding a allocation
sinking specific RELEASE_ASSERT as well as marking a few functions as
NEVER_INLINE to have the stack traces in the crash trace contain more
actionable information.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp

    r213939 r219098  
    4848
    4949namespace {
     50
     51NO_RETURN_DUE_TO_CRASH NEVER_INLINE void crash(const char*, int line, int)
     52{
     53    CRASH_WITH_SECURITY_IMPLICATION_AND_INFO(line);
     54}
     55
     56#undef RELEASE_ASSERT
     57#define RELEASE_ASSERT(assertion) do { \
     58    if (!(assertion)) { \
     59        WTFReportAssertionFailure(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, #assertion); \
     60        crash(__FILE__, __LINE__, __COUNTER__); \
     61    } \
     62} while (0)
    5063
    5164bool verbose = false;
     
    19071920    }
    19081921
    1909     Node* resolve(BasicBlock* block, PromotedHeapLocation location)
     1922    NEVER_INLINE Node* resolve(BasicBlock* block, PromotedHeapLocation location)
    19101923    {
    19111924        // If we are currently pointing to a single local allocation,
     
    19321945    }
    19331946
    1934     Node* resolve(BasicBlock* block, Node* node)
     1947    NEVER_INLINE Node* resolve(BasicBlock* block, Node* node)
    19351948    {
    19361949        // If we are currently pointing to a single local allocation,
     
    19461959    }
    19471960
    1948     Node* getMaterialization(BasicBlock* block, Node* identifier)
     1961    NEVER_INLINE Node* getMaterialization(BasicBlock* block, Node* identifier)
    19491962    {
    19501963        ASSERT(m_heap.isAllocation(identifier));
Note: See TracChangeset for help on using the changeset viewer.