summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/dfg/DFGDriver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGDriver.cpp')
-rw-r--r--Source/JavaScriptCore/dfg/DFGDriver.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGDriver.cpp b/Source/JavaScriptCore/dfg/DFGDriver.cpp
index 124d7e637..a0af3e6ad 100644
--- a/Source/JavaScriptCore/dfg/DFGDriver.cpp
+++ b/Source/JavaScriptCore/dfg/DFGDriver.cpp
@@ -34,6 +34,7 @@
#include "DFGCSEPhase.h"
#include "DFGJITCompiler.h"
#include "DFGPredictionPropagationPhase.h"
+#include "DFGRedundantPhiEliminationPhase.h"
#include "DFGVirtualRegisterAllocationPhase.h"
namespace JSC { namespace DFG {
@@ -58,6 +59,7 @@ inline bool compile(CompileMode compileMode, JSGlobalData& globalData, CodeBlock
if (compileMode == CompileFunction)
dfg.predictArgumentTypes();
+ performRedundantPhiElimination(dfg);
performArithNodeFlagsInference(dfg);
performPredictionPropagation(dfg);
performCSE(dfg);
@@ -70,18 +72,19 @@ inline bool compile(CompileMode compileMode, JSGlobalData& globalData, CodeBlock
#endif
JITCompiler dataFlowJIT(dfg);
+ bool result;
if (compileMode == CompileFunction) {
ASSERT(jitCodeWithArityCheck);
- dataFlowJIT.compileFunction(jitCode, *jitCodeWithArityCheck);
+ result = dataFlowJIT.compileFunction(jitCode, *jitCodeWithArityCheck);
} else {
ASSERT(compileMode == CompileOther);
ASSERT(!jitCodeWithArityCheck);
- dataFlowJIT.compile(jitCode);
+ result = dataFlowJIT.compile(jitCode);
}
- return true;
+ return result;
}
bool tryCompile(JSGlobalData& globalData, CodeBlock* codeBlock, JITCode& jitCode)