Ignore:
Timestamp:
Dec 19, 2011, 12:22:31 PM (13 years ago)
Author:
[email protected]
Message:

Unreviewed, rolling out r103250.
http://trac.webkit.org/changeset/103250
https://bugs.webkit.org/show_bug.cgi?id=74877

it still breaks codegen (Requested by olliej on #webkit).

Patch by Sheriff Bot <[email protected]> on 2011-12-19

  • dfg/DFGAbstractState.cpp:

(JSC::DFG::AbstractState::execute):

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGNode.h:
  • dfg/DFGPropagator.cpp:

(JSC::DFG::Propagator::propagateArithNodeFlags):
(JSC::DFG::Propagator::fixupNode):
(JSC::DFG::Propagator::byValIsPure):
(JSC::DFG::Propagator::clobbersWorld):
(JSC::DFG::Propagator::getByValLoadElimination):
(JSC::DFG::Propagator::checkStructureLoadElimination):
(JSC::DFG::Propagator::getByOffsetLoadElimination):
(JSC::DFG::Propagator::getPropertyStorageLoadElimination):
(JSC::DFG::Propagator::getIndexedPropertyStorageLoadElimination):
(JSC::DFG::Propagator::performNodeCSE):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePutByValForByteArray):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
(JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

File:
1 edited

Legend:

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

    r103250 r103255  
    494494    case PutByVal:
    495495    case PutByValAlias: {
    496         NodeIndex child1 = m_graph.m_varArgChildren[node.firstChild()];
    497         NodeIndex child2 = m_graph.m_varArgChildren[node.firstChild() + 1];
    498         NodeIndex child3 = m_graph.m_varArgChildren[node.firstChild() + 2];
    499         PredictedType indexPrediction = m_graph[child2].prediction();
     496        PredictedType indexPrediction = m_graph[node.child2()].prediction();
    500497        if (!(indexPrediction & PredictInt32) && indexPrediction) {
    501498            clobberStructures(nodeIndex);
     
    503500            break;
    504501        }
    505         if (m_graph[child1].shouldSpeculateByteArray()) {
    506             forNode(child1).filter(PredictByteArray);
    507             forNode(child2).filter(PredictInt32);
    508             forNode(child3).filter(PredictNumber);
    509             break;
    510         }
    511        
    512         if (m_graph[child1].shouldSpeculateInt8Array()) {
    513             forNode(child1).filter(PredictInt8Array);
    514             forNode(child2).filter(PredictInt32);
    515             forNode(child3).filter(PredictNumber);
    516             break;
    517         }
    518         if (m_graph[child1].shouldSpeculateInt16Array()) {
    519             forNode(child1).filter(PredictInt16Array);
    520             forNode(child2).filter(PredictInt32);
    521             forNode(child3).filter(PredictNumber);
    522             break;
    523         }
    524         if (m_graph[child1].shouldSpeculateInt32Array()) {
    525             forNode(child1).filter(PredictInt32Array);
    526             forNode(child2).filter(PredictInt32);
    527             forNode(child3).filter(PredictNumber);
    528             break;
    529         }
    530         if (m_graph[child1].shouldSpeculateUint8Array()) {
    531             forNode(child1).filter(PredictUint8Array);
    532             forNode(child2).filter(PredictInt32);
    533             forNode(child3).filter(PredictNumber);
    534             break;
    535         }
    536         if (m_graph[child1].shouldSpeculateUint16Array()) {
    537             forNode(child1).filter(PredictUint16Array);
    538             forNode(child2).filter(PredictInt32);
    539             forNode(child3).filter(PredictNumber);
    540             break;
    541         }
    542         if (m_graph[child1].shouldSpeculateUint32Array()) {
    543             forNode(child1).filter(PredictUint32Array);
    544             forNode(child2).filter(PredictInt32);
    545             forNode(child3).filter(PredictNumber);
    546             break;
    547         }
    548         if (m_graph[child1].shouldSpeculateFloat32Array()) {
    549             forNode(child1).filter(PredictFloat32Array);
    550             forNode(child2).filter(PredictInt32);
    551             forNode(child3).filter(PredictNumber);
    552             break;
    553         }
    554         if (m_graph[child1].shouldSpeculateFloat64Array()) {
    555             forNode(child1).filter(PredictFloat64Array);
    556             forNode(child2).filter(PredictInt32);
    557             forNode(child3).filter(PredictNumber);
    558             break;
    559         }
    560            
    561         forNode(child1).filter(PredictArray);
    562         forNode(child2).filter(PredictInt32);
     502        if (m_graph[node.child1()].shouldSpeculateByteArray()) {
     503            forNode(node.child1()).filter(PredictByteArray);
     504            forNode(node.child2()).filter(PredictInt32);
     505            forNode(node.child3()).filter(PredictNumber);
     506            break;
     507        }
     508       
     509        if (m_graph[node.child1()].shouldSpeculateInt8Array()) {
     510            forNode(node.child1()).filter(PredictInt8Array);
     511            forNode(node.child2()).filter(PredictInt32);
     512            forNode(node.child3()).filter(PredictNumber);
     513            break;
     514        }
     515        if (m_graph[node.child1()].shouldSpeculateInt16Array()) {
     516            forNode(node.child1()).filter(PredictInt16Array);
     517            forNode(node.child2()).filter(PredictInt32);
     518            forNode(node.child3()).filter(PredictNumber);
     519            break;
     520        }
     521        if (m_graph[node.child1()].shouldSpeculateInt32Array()) {
     522            forNode(node.child1()).filter(PredictInt32Array);
     523            forNode(node.child2()).filter(PredictInt32);
     524            forNode(node.child3()).filter(PredictNumber);
     525            break;
     526        }
     527        if (m_graph[node.child1()].shouldSpeculateUint8Array()) {
     528            forNode(node.child1()).filter(PredictUint8Array);
     529            forNode(node.child2()).filter(PredictInt32);
     530            forNode(node.child3()).filter(PredictNumber);
     531            break;
     532        }
     533        if (m_graph[node.child1()].shouldSpeculateUint16Array()) {
     534            forNode(node.child1()).filter(PredictUint16Array);
     535            forNode(node.child2()).filter(PredictInt32);
     536            forNode(node.child3()).filter(PredictNumber);
     537            break;
     538        }
     539        if (m_graph[node.child1()].shouldSpeculateUint32Array()) {
     540            forNode(node.child1()).filter(PredictUint32Array);
     541            forNode(node.child2()).filter(PredictInt32);
     542            forNode(node.child3()).filter(PredictNumber);
     543            break;
     544        }
     545        if (m_graph[node.child1()].shouldSpeculateFloat32Array()) {
     546            forNode(node.child1()).filter(PredictFloat32Array);
     547            forNode(node.child2()).filter(PredictInt32);
     548            forNode(node.child3()).filter(PredictNumber);
     549            break;
     550        }
     551        if (m_graph[node.child1()].shouldSpeculateFloat64Array()) {
     552            forNode(node.child1()).filter(PredictFloat64Array);
     553            forNode(node.child2()).filter(PredictInt32);
     554            forNode(node.child3()).filter(PredictNumber);
     555            break;
     556        }
     557           
     558        forNode(node.child1()).filter(PredictArray);
     559        forNode(node.child2()).filter(PredictInt32);
    563560        break;
    564561    }
Note: See TracChangeset for help on using the changeset viewer.