diff options
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp')
-rw-r--r-- | Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp b/Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp index 71d526159..7415acde4 100644 --- a/Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp +++ b/Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp @@ -30,7 +30,7 @@ #include "DFGGraph.h" #include "DFGScoreBoard.h" -#include "JSCellInlines.h" +#include "JSCInlines.h" #include "StackAlignment.h" #include <wtf/StdLibExtras.h> @@ -45,6 +45,8 @@ public: bool run() { + DFG_ASSERT(m_graph, nullptr, m_graph.m_form == ThreadedCPS); + ScoreBoard scoreBoard(m_graph.m_nextMachineLocal); scoreBoard.assertClear(); for (size_t blockIndex = 0; blockIndex < m_graph.numBlocks(); ++blockIndex) { @@ -53,9 +55,11 @@ public: continue; if (!block->isReachable) continue; - for (size_t indexInBlock = 0; indexInBlock < block->size(); ++indexInBlock) { - Node* node = block->at(indexInBlock); - + if (!ASSERT_DISABLED) { + // Force usage of highest-numbered virtual registers. + scoreBoard.sortFree(); + } + for (auto* node : *block) { if (!node->shouldGenerate()) continue; @@ -107,7 +111,6 @@ public: bool performVirtualRegisterAllocation(Graph& graph) { - SamplingRegion samplingRegion("DFG Virtual Register Allocation Phase"); return runPhase<VirtualRegisterAllocationPhase>(graph); } |