Ignore:
Timestamp:
Jun 27, 2012, 4:16:10 PM (13 years ago)
Author:
[email protected]
Message:

DFG disassembly should be easier to read
https://bugs.webkit.org/show_bug.cgi?id=90106

Reviewed by Mark Hahnenberg.

Did a few things:

  • Options::showDFGDisassembly now shows OSR exit disassembly as well.


  • Phi node dumping doesn't attempt to do line wrapping since it just made the dump harder to read.


  • DFG graph disassembly view shows a few additional node types that turn out to be essential for understanding OSR exits.


Put together, these changes reinforce the philosophy that anything needed for computing
OSR exit is just as important as the machine code itself. Of course, we still don't take
that philosophy to its full extreme - for example Phantom nodes are not dumped. We may
revisit that in the future.

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::finalizeCodeWithDisassembly):

  • assembler/LinkBuffer.h:

(JSC):

  • dfg/DFGDisassembler.cpp:

(JSC::DFG::Disassembler::dump):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dumpBlockHeader):

  • dfg/DFGNode.h:

(JSC::DFG::Node::willHaveCodeGenOrOSR):

  • dfg/DFGOSRExitCompiler.cpp:
  • jit/JIT.cpp:

(JSC::JIT::privateCompile):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/assembler/LinkBuffer.h

    r120786 r121382  
    258258};
    259259
     260#define FINALIZE_CODE_IF(condition, linkBufferReference, dataLogArgumentsForHeading)  \
     261    (UNLIKELY((condition))                                              \
     262     ? ((linkBufferReference).finalizeCodeWithDisassembly dataLogArgumentsForHeading) \
     263     : (linkBufferReference).finalizeCodeWithoutDisassembly())
     264
    260265// Use this to finalize code, like so:
    261266//
     
    275280
    276281#define FINALIZE_CODE(linkBufferReference, dataLogArgumentsForHeading)  \
    277     (UNLIKELY(Options::showDisassembly)                                 \
    278      ? ((linkBufferReference).finalizeCodeWithDisassembly dataLogArgumentsForHeading) \
    279      : (linkBufferReference).finalizeCodeWithoutDisassembly())
     282    FINALIZE_CODE_IF(Options::showDisassembly, linkBufferReference, dataLogArgumentsForHeading)
    280283
    281284} // namespace JSC
Note: See TracChangeset for help on using the changeset viewer.