From a7062e05e6048c7f817d784a5b94e3122e25b1ec Mon Sep 17 00:00:00 2001 From: Nicolas Geoffray Date: Thu, 22 May 2014 12:50:17 +0100 Subject: Add a linear scan register allocator to the optimizing compiler. This is a "by-the-book" implementation. It currently only deals with allocating registers, with no hint optimizations. The changes remaining to make it functional are: - Allocate spill slots. - Resolution and placements of Move instructions. - Connect it to the code generator. Change-Id: Ie0b2f6ba1b98da85425be721ce4afecd6b4012a4 --- compiler/utils/growable_array.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'compiler/utils/growable_array.h') diff --git a/compiler/utils/growable_array.h b/compiler/utils/growable_array.h index e703d8e25a..a1a3312576 100644 --- a/compiler/utils/growable_array.h +++ b/compiler/utils/growable_array.h @@ -169,6 +169,13 @@ class GrowableArray { num_used_--; }; + void DeleteAt(size_t index) { + for (size_t i = index; i < num_used_ - 1; i++) { + elem_list_[i] = elem_list_[i + 1]; + } + num_used_--; + }; + size_t GetNumAllocated() const { return num_allocated_; } size_t Size() const { return num_used_; } -- cgit v1.2.3-59-g8ed1b