summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp')
-rw-r--r--Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp13
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);
}