summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/dfg/DFGNaturalLoops.cpp
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2016-04-10 09:28:39 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2016-04-10 09:28:39 +0000
commit32761a6cee1d0dee366b885b7b9c777e67885688 (patch)
treed6bec92bebfb216f4126356e55518842c2f476a1 /Source/JavaScriptCore/dfg/DFGNaturalLoops.cpp
parenta4e969f4965059196ca948db781e52f7cfebf19e (diff)
downloadWebKitGtk-tarball-32761a6cee1d0dee366b885b7b9c777e67885688.tar.gz
webkitgtk-2.4.11webkitgtk-2.4.11
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 89ca68b9c..848917f70 100644
--- a/Source/JavaScriptCore/dfg/DFGNaturalLoops.cpp
+++ b/Source/JavaScriptCore/dfg/DFGNaturalLoops.cpp
@@ -29,7 +29,6 @@
#if ENABLE(DFG_JIT)
#include "DFGGraph.h"
-#include "JSCInlines.h"
#include <wtf/CommaPrinter.h>
namespace JSC { namespace DFG {
@@ -42,10 +41,11 @@ void NaturalLoop::dump(PrintStream& out) const
out.print("]");
}
-NaturalLoops::NaturalLoops(Graph& graph)
-{
- ASSERT(graph.m_dominators);
+NaturalLoops::NaturalLoops() { }
+NaturalLoops::~NaturalLoops() { }
+void NaturalLoops::compute(Graph& graph)
+{
// 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,9 +56,11 @@ NaturalLoops::NaturalLoops(Graph& graph)
static const bool verbose = false;
+ graph.m_dominators.computeIfNecessary(graph);
+
if (verbose) {
dataLog("Dominators:\n");
- graph.m_dominators->dump(WTF::dataFile());
+ graph.m_dominators.dump(graph, WTF::dataFile());
}
m_loops.resize(0);
@@ -70,7 +72,7 @@ NaturalLoops::NaturalLoops(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--;) {
@@ -193,8 +195,6 @@ NaturalLoops::NaturalLoops(Graph& graph)
dataLog("Results: ", *this, "\n");
}
-NaturalLoops::~NaturalLoops() { }
-
Vector<const NaturalLoop*> NaturalLoops::loopsOf(BasicBlock* block) const
{
Vector<const NaturalLoop*> result;