Index: src/compiler/greedy-allocator.cc |
diff --git a/src/compiler/greedy-allocator.cc b/src/compiler/greedy-allocator.cc |
index e1f13a64d4d8173850a7c8370071ca0260378410..44f2d4f8160a4893cc3964e21fc0ecb6dd7629e5 100644 |
--- a/src/compiler/greedy-allocator.cc |
+++ b/src/compiler/greedy-allocator.cc |
@@ -164,8 +164,12 @@ void GreedyAllocator::PreallocateFixedRanges() { |
void GreedyAllocator::ScheduleAllocationCandidates() { |
for (auto range : data()->live_ranges()) { |
- if (CanProcessRange(range) && !range->spilled()) { |
- scheduler().Schedule(range); |
+ if (CanProcessRange(range)) { |
+ for (LiveRange* child = range; child != nullptr; child = child->next()) { |
+ if (!child->spilled()) { |
+ scheduler().Schedule(child); |
+ } |
+ } |
} |
} |
} |