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/dfg/DFGNode.h

    r120834 r121382  
    732732    }
    733733   
    734     bool willHaveCodeGen()
    735     {
    736         return shouldGenerate() && op() != Phantom && op() != Nop;
     734    bool willHaveCodeGenOrOSR()
     735    {
     736        switch (op()) {
     737        case SetLocal:
     738        case Int32ToDouble:
     739        case ValueToInt32:
     740        case UInt32ToNumber:
     741        case DoubleAsInt32:
     742            return true;
     743        case Phantom:
     744        case Nop:
     745            return false;
     746        default:
     747            return shouldGenerate();
     748        }
    737749    }
    738750
Note: See TracChangeset for help on using the changeset viewer.