summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/dfg/DFGNaturalLoops.cpp
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2016-05-24 08:28:08 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2016-05-24 08:28:08 +0000
commita4e969f4965059196ca948db781e52f7cfebf19e (patch)
tree6ca352808c8fdc52006a0f33f6ae3c593b23867d /Source/JavaScriptCore/dfg/DFGNaturalLoops.cpp
parent41386e9cb918eed93b3f13648cbef387e371e451 (diff)
downloadWebKitGtk-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.cpp16
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;