Ignore:
Timestamp:
Dec 2, 2015, 11:15:33 AM (10 years ago)
Author:
[email protected]
Message:

Teach DFG that ArithSub can now clobber the heap (and other things).
https://bugs.webkit.org/show_bug.cgi?id=151733

Reviewed by Geoffrey Garen.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGPredictionPropagationPhase.cpp:

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGClobberize.h

    r192882 r192949  
    248248
    249249    case ArithAdd:
    250     case ArithSub:
    251250    case ArithNegate:
    252251    case ArithMul:
     
    257256        def(PureValue(node, node->arithMode()));
    258257        return;
     258
     259    case ArithSub:
     260        switch (node->binaryUseKind()) {
     261        case Int32Use:
     262#if USE(JSVALUE64)
     263        case Int52RepUse:
     264#endif
     265        case DoubleRepUse:
     266            def(PureValue(node, node->arithMode()));
     267            return;
     268        case UntypedUse:
     269            read(World);
     270            write(Heap);
     271            return;
     272        default:
     273            DFG_CRASH(graph, node, "Bad use kind");
     274        }
    259275
    260276    case ArithRound:
Note: See TracChangeset for help on using the changeset viewer.