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.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGDriver.cpp b/Source/JavaScriptCore/dfg/DFGDriver.cpp
index 205e94e6b..f583a8d63 100644
--- a/Source/JavaScriptCore/dfg/DFGDriver.cpp
+++ b/Source/JavaScriptCore/dfg/DFGDriver.cpp
@@ -58,6 +58,12 @@ inline bool compile(CompileMode compileMode, JSGlobalData& globalData, CodeBlock
if (compileMode == CompileFunction)
dfg.predictArgumentTypes();
+
+ // By this point the DFG bytecode parser will have potentially mutated various tables
+ // in the CodeBlock. This is a good time to perform an early shrink, which is more
+ // powerful than a late one. It's safe to do so because we haven't generated any code
+ // that references any of the tables directly, yet.
+ codeBlock->shrinkToFit(CodeBlock::EarlyShrink);
performRedundantPhiElimination(dfg);
performPredictionPropagation(dfg);