Changeset 183073 in webkit


Ignore:
Timestamp:
Apr 21, 2015, 1:23:50 PM (10 years ago)
Author:
commit-queue@webkit.org
Message:

Remove AllocationProfileWatchpoint node
https://bugs.webkit.org/show_bug.cgi?id=143999

Patch by Basile Clement <basile_clement@apple.com> on 2015-04-21
Reviewed by Filip Pizlo.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasCellOperand):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGWatchpointCollectionPhase.cpp:

(JSC::DFG::WatchpointCollectionPhase::handle):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):

  • runtime/JSFunction.h:

(JSC::JSFunction::rareData):
(JSC::JSFunction::allocationProfileWatchpointSet): Deleted.

Location:
trunk/Source/JavaScriptCore
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r183072 r183073  
     12015-04-21  Basile Clement  <basile_clement@apple.com>
     2
     3        Remove AllocationProfileWatchpoint node
     4        https://bugs.webkit.org/show_bug.cgi?id=143999
     5
     6        Reviewed by Filip Pizlo.
     7
     8        * dfg/DFGAbstractInterpreterInlines.h:
     9        (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
     10        * dfg/DFGByteCodeParser.cpp:
     11        (JSC::DFG::ByteCodeParser::parseBlock):
     12        * dfg/DFGClobberize.h:
     13        (JSC::DFG::clobberize):
     14        * dfg/DFGDoesGC.cpp:
     15        (JSC::DFG::doesGC):
     16        * dfg/DFGFixupPhase.cpp:
     17        (JSC::DFG::FixupPhase::fixupNode):
     18        * dfg/DFGHeapLocation.cpp:
     19        (WTF::printInternal):
     20        * dfg/DFGHeapLocation.h:
     21        * dfg/DFGNode.h:
     22        (JSC::DFG::Node::hasCellOperand):
     23        * dfg/DFGNodeType.h:
     24        * dfg/DFGPredictionPropagationPhase.cpp:
     25        (JSC::DFG::PredictionPropagationPhase::propagate):
     26        * dfg/DFGSafeToExecute.h:
     27        (JSC::DFG::safeToExecute):
     28        * dfg/DFGSpeculativeJIT32_64.cpp:
     29        (JSC::DFG::SpeculativeJIT::compile):
     30        * dfg/DFGSpeculativeJIT64.cpp:
     31        (JSC::DFG::SpeculativeJIT::compile):
     32        * dfg/DFGWatchpointCollectionPhase.cpp:
     33        (JSC::DFG::WatchpointCollectionPhase::handle):
     34        * ftl/FTLCapabilities.cpp:
     35        (JSC::FTL::canCompile):
     36        * ftl/FTLLowerDFGToLLVM.cpp:
     37        (JSC::FTL::LowerDFGToLLVM::compileNode):
     38        * runtime/JSFunction.h:
     39        (JSC::JSFunction::rareData):
     40        (JSC::JSFunction::allocationProfileWatchpointSet): Deleted.
     41
    1422015-04-19  Filip Pizlo  <fpizlo@apple.com>
    243
  • trunk/Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h

    r182759 r183073  
    13481348    }
    13491349       
    1350     case AllocationProfileWatchpoint:
    1351         break;
    1352 
    13531350    case NewObject:
    13541351        ASSERT(node->structure());
  • trunk/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp

    r182995 r183073  
    26412641            bool alreadyEmitted = false;
    26422642            if (JSFunction* function = callee->dynamicCastConstant<JSFunction*>()) {
    2643                 if (Structure* structure = function->allocationStructure()) {
    2644                     addToGraph(AllocationProfileWatchpoint, OpInfo(m_graph.freeze(function)));
    2645                     // The callee is still live up to this point.
    2646                     addToGraph(Phantom, callee);
    2647                     set(VirtualRegister(currentInstruction[1].u.operand), addToGraph(NewObject, OpInfo(structure)));
    2648                     alreadyEmitted = true;
     2643                if (FunctionRareData* rareData = function->rareData()) {
     2644                    if (Structure* structure = rareData->allocationStructure()) {
     2645                        m_graph.freeze(rareData);
     2646                        m_graph.watchpoints().addLazily(rareData->allocationProfileWatchpointSet());
     2647                        // The callee is still live up to this point.
     2648                        addToGraph(Phantom, callee);
     2649                        set(VirtualRegister(currentInstruction[1].u.operand), addToGraph(NewObject, OpInfo(structure)));
     2650                        alreadyEmitted = true;
     2651                    }
    26492652                }
    26502653            }
  • trunk/Source/JavaScriptCore/dfg/DFGClobberize.h

    r182759 r183073  
    353353        return;
    354354
    355     case AllocationProfileWatchpoint:
    356         read(MiscFields);
    357         def(HeapLocation(AllocationProfileWatchpointLoc, MiscFields), node);
    358         return;
    359        
    360355    case IsObjectOrNull:
    361356        read(MiscFields);
  • trunk/Source/JavaScriptCore/dfg/DFGDoesGC.cpp

    r182498 r183073  
    107107    case CheckCell:
    108108    case CheckNotEmpty:
    109     case AllocationProfileWatchpoint:
    110109    case RegExpExec:
    111110    case RegExpTest:
  • trunk/Source/JavaScriptCore/dfg/DFGFixupPhase.cpp

    r182643 r183073  
    12011201        case NotifyWrite:
    12021202        case VarInjectionWatchpoint:
    1203         case AllocationProfileWatchpoint:
    12041203        case Call:
    12051204        case Construct:
  • trunk/Source/JavaScriptCore/dfg/DFGHeapLocation.cpp

    r181993 r183073  
    141141        return;
    142142       
    143     case AllocationProfileWatchpointLoc:
    144         out.print("AllocationProfileWatchpointLoc");
    145         return;
    146        
    147143    case StructureLoc:
    148144        out.print("StructureLoc");
  • trunk/Source/JavaScriptCore/dfg/DFGHeapLocation.h

    r181993 r183073  
    3737    InvalidLocationKind,
    3838   
    39     AllocationProfileWatchpointLoc,
    4039    ArrayLengthLoc,
    4140    ButterflyLoc,
  • trunk/Source/JavaScriptCore/dfg/DFGNode.h

    r182759 r183073  
    11911191    {
    11921192        switch (op()) {
    1193         case AllocationProfileWatchpoint:
    11941193        case CheckCell:
    11951194        case NativeConstruct:
  • trunk/Source/JavaScriptCore/dfg/DFGNodeType.h

    r183072 r183073  
    195195    macro(CheckNotEmpty, NodeMustGenerate) \
    196196    macro(CheckBadCell, NodeMustGenerate) \
    197     macro(AllocationProfileWatchpoint, NodeMustGenerate) \
    198197    macro(CheckInBounds, NodeMustGenerate) \
    199198    \
  • trunk/Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp

    r182498 r183073  
    638638        case PutStructure:
    639639        case VarInjectionWatchpoint:
    640         case AllocationProfileWatchpoint:
    641640        case Phantom:
    642641        case Check:
  • trunk/Source/JavaScriptCore/dfg/DFGSafeToExecute.h

    r182498 r183073  
    180180    case CheckBadCell:
    181181    case CheckNotEmpty:
    182     case AllocationProfileWatchpoint:
    183182    case RegExpExec:
    184183    case RegExpTest:
  • trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp

    r182899 r183073  
    35163516    }
    35173517
    3518     case AllocationProfileWatchpoint: {
    3519         noResult(node);
    3520         break;
    3521     }
    3522 
    35233518    case NewObject: {
    35243519        GPRTemporary result(this);
  • trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp

    r183072 r183073  
    35933593    }
    35943594       
    3595     case AllocationProfileWatchpoint: {
    3596         noResult(node);
    3597         break;
    3598     }
    3599 
    36003595    case NewObject: {
    36013596        GPRTemporary result(this);
  • trunk/Source/JavaScriptCore/dfg/DFGWatchpointCollectionPhase.cpp

    r182498 r183073  
    106106            break;
    107107           
    108         case AllocationProfileWatchpoint:
    109             addLazily(m_node->castOperand<JSFunction*>()->allocationProfileWatchpointSet());
    110             break;
    111            
    112108        case VarInjectionWatchpoint:
    113109            addLazily(globalObject()->varInjectionWatchpoint());
  • trunk/Source/JavaScriptCore/ftl/FTLCapabilities.cpp

    r182498 r183073  
    142142    case GetExecutable:
    143143    case GetScope:
    144     case AllocationProfileWatchpoint:
    145144    case GetCallee:
    146145    case GetArgumentCount:
  • trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp

    r183065 r183073  
    847847        case PhantomLocal:
    848848        case LoopHint:
    849         case AllocationProfileWatchpoint:
    850849        case MovHint:
    851850        case ZombieHint:
  • trunk/Source/JavaScriptCore/runtime/JSFunction.h

    r183069 r183073  
    117117    }
    118118
     119    FunctionRareData* rareData() { return m_rareData.get(); }
     120
    119121    Structure* allocationStructure()
    120122    {
     
    123125
    124126        return m_rareData.get()->allocationStructure();
    125     }
    126 
    127     InlineWatchpointSet& allocationProfileWatchpointSet()
    128     {
    129         ASSERT(m_rareData);
    130         return m_rareData.get()->allocationProfileWatchpointSet();
    131127    }
    132128
Note: See TracChangeset for help on using the changeset viewer.