Ignore:
Timestamp:
Jun 12, 2015, 9:33:37 AM (10 years ago)
Author:
[email protected]
Message:

DFG Object Allocation Sinking should not consider GetClosureVar as escapes
https://bugs.webkit.org/show_bug.cgi?id=145904

Reviewed by Filip Pizlo.

The object allocation sinking phase is currently able to sink
CreateActivation nodes, but will consider any GetClosureVar node as
escaping.

This is not problematic in general as most of the GetClosureVar nodes
we would have been able to sink over will have been eliminated by CSE
anyway. Still, this is an oversight that we should fix since the
machinery is already in place.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):

  • dfg/DFGPromoteHeapAccess.h:

(JSC::DFG::promoteHeapAccess):

File:
1 edited

Legend:

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

    r184747 r185505  
    901901        }
    902902
     903        case GetClosureVar: {
     904            Node* target = node->child1().node();
     905            if (!target->isActivationAllocation())
     906                escape(target);
     907            break;
     908        }
     909
    903910        case PutClosureVar: {
    904911            Node* target = node->child1().node();
Note: See TracChangeset for help on using the changeset viewer.