Ignore:
Timestamp:
Aug 24, 2017, 6:55:53 PM (8 years ago)
Author:
[email protected]
Message:

Unreviewed, rolling out r221119, r221124, and r221143.
https://bugs.webkit.org/show_bug.cgi?id=175973

"I think it regressed JSBench by 20%" (Requested by saamyjoon
on #webkit).

Reverted changesets:

"Support compiling catch in the DFG"
https://bugs.webkit.org/show_bug.cgi?id=174590
http://trac.webkit.org/changeset/221119

"Unreviewed, build fix in GTK port"
https://bugs.webkit.org/show_bug.cgi?id=174590
http://trac.webkit.org/changeset/221124

"DFG::JITCode::osrEntry should get sorted since we perform a
binary search on it"
https://bugs.webkit.org/show_bug.cgi?id=175893
http://trac.webkit.org/changeset/221143

File:
1 edited

Legend:

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

    r221119 r221176  
    4242BasicBlock* createPreHeader(Graph& graph, BlockInsertionSet& insertionSet, BasicBlock* block)
    4343{
    44     ASSERT_WITH_MESSAGE(!graph.isEntrypoint(block), "An entrypoint should not be in a loop");
    45 
    4644    // FIXME: If we run this utility on SSA IR, then we may end up with a bizarre arrangement of
    4745    // Upsilons and Phis, like:
     
    7270    float frequency = 0;
    7371    for (BasicBlock* predecessor : block->predecessors) {
    74         ASSERT(graph.m_form != SSA);
    75         if (graph.m_cpsDominators->dominates(block, predecessor))
     72        if (graph.m_dominators->dominates(block, predecessor))
    7673            continue;
    7774        frequency = std::max(frequency, predecessor->executionCount);
     
    107104    for (unsigned predecessorIndex = 0; predecessorIndex < block->predecessors.size(); predecessorIndex++) {
    108105        BasicBlock* predecessor = block->predecessors[predecessorIndex];
    109         if (graph.m_cpsDominators->dominates(block, predecessor))
     106        if (graph.m_dominators->dominates(block, predecessor))
    110107            continue;
    111108        block->predecessors[predecessorIndex--] = block->predecessors.last();
     
    134131    bool run()
    135132    {
    136         m_graph.ensureCPSDominators();
    137         m_graph.ensureCPSNaturalLoops();
     133        m_graph.ensureDominators();
     134        m_graph.ensureNaturalLoops();
    138135       
    139         for (unsigned loopIndex = m_graph.m_cpsNaturalLoops->numLoops(); loopIndex--;) {
    140             const CPSNaturalLoop& loop = m_graph.m_cpsNaturalLoops->loop(loopIndex);
    141             BasicBlock* existingPreHeader = nullptr;
     136        for (unsigned loopIndex = m_graph.m_naturalLoops->numLoops(); loopIndex--;) {
     137            const NaturalLoop& loop = m_graph.m_naturalLoops->loop(loopIndex);
     138            BasicBlock* existingPreHeader = 0;
    142139            bool needsNewPreHeader = false;
    143             for (unsigned predecessorIndex = loop.header().node()->predecessors.size(); predecessorIndex--;) {
    144                 BasicBlock* predecessor = loop.header().node()->predecessors[predecessorIndex];
    145                 if (m_graph.m_cpsDominators->dominates(loop.header().node(), predecessor))
     140            for (unsigned predecessorIndex = loop.header()->predecessors.size(); predecessorIndex--;) {
     141                BasicBlock* predecessor = loop.header()->predecessors[predecessorIndex];
     142                if (m_graph.m_dominators->dominates(loop.header(), predecessor))
    146143                    continue;
    147144                if (!existingPreHeader) {
     
    169166            // if the terminal of the existing pre-header doesn't allow for exit, but the first
    170167            // origin of the loop header does, then we should create a new pre-header.
    171             if (!needsNewPreHeader && loop.header().node()->at(0)->origin.exitOK
     168            if (!needsNewPreHeader && loop.header()->at(0)->origin.exitOK
    172169                && !existingPreHeader->terminal()->origin.exitOK)
    173170                needsNewPreHeader = true;
     
    176173                continue;
    177174           
    178             createPreHeader(m_graph, m_insertionSet, loop.header().node());
     175            createPreHeader(m_graph, m_insertionSet, loop.header());
    179176        }
    180177       
Note: See TracChangeset for help on using the changeset viewer.