diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-05-24 08:28:08 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-05-24 08:28:08 +0000 |
commit | a4e969f4965059196ca948db781e52f7cfebf19e (patch) | |
tree | 6ca352808c8fdc52006a0f33f6ae3c593b23867d /Source/JavaScriptCore/dfg/DFGNaturalLoops.cpp | |
parent | 41386e9cb918eed93b3f13648cbef387e371e451 (diff) | |
download | WebKitGtk-tarball-a4e969f4965059196ca948db781e52f7cfebf19e.tar.gz |
webkitgtk-2.12.3webkitgtk-2.12.3
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGNaturalLoops.cpp')
-rw-r--r-- | Source/JavaScriptCore/dfg/DFGNaturalLoops.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGNaturalLoops.cpp b/Source/JavaScriptCore/dfg/DFGNaturalLoops.cpp index 848917f70..89ca68b9c 100644 --- a/Source/JavaScriptCore/dfg/DFGNaturalLoops.cpp +++ b/Source/JavaScriptCore/dfg/DFGNaturalLoops.cpp @@ -29,6 +29,7 @@ #if ENABLE(DFG_JIT) #include "DFGGraph.h" +#include "JSCInlines.h" #include <wtf/CommaPrinter.h> namespace JSC { namespace DFG { @@ -41,11 +42,10 @@ void NaturalLoop::dump(PrintStream& out) const out.print("]"); } -NaturalLoops::NaturalLoops() { } -NaturalLoops::~NaturalLoops() { } - -void NaturalLoops::compute(Graph& graph) +NaturalLoops::NaturalLoops(Graph& graph) { + ASSERT(graph.m_dominators); + // Implement the classic dominator-based natural loop finder. The first // step is to find all control flow edges A -> B where B dominates A. // Then B is a loop header and A is a backward branching block. We will @@ -56,11 +56,9 @@ void NaturalLoops::compute(Graph& graph) static const bool verbose = false; - graph.m_dominators.computeIfNecessary(graph); - if (verbose) { dataLog("Dominators:\n"); - graph.m_dominators.dump(graph, WTF::dataFile()); + graph.m_dominators->dump(WTF::dataFile()); } m_loops.resize(0); @@ -72,7 +70,7 @@ void NaturalLoops::compute(Graph& graph) for (unsigned i = block->numSuccessors(); i--;) { BasicBlock* successor = block->successor(i); - if (!graph.m_dominators.dominates(successor, block)) + if (!graph.m_dominators->dominates(successor, block)) continue; bool found = false; for (unsigned j = m_loops.size(); j--;) { @@ -195,6 +193,8 @@ void NaturalLoops::compute(Graph& graph) dataLog("Results: ", *this, "\n"); } +NaturalLoops::~NaturalLoops() { } + Vector<const NaturalLoop*> NaturalLoops::loopsOf(BasicBlock* block) const { Vector<const NaturalLoop*> result; |