Cleanup baseline register allocator.
- Use three arrays for blocking regsters instead of
one and computing offsets in that array.]
- Don't pass blocked_registers_ to methods, just use the field.
Change-Id: Ib698564c31127c59b5a64c80f4262394b8394dc6
diff --git a/compiler/optimizing/register_allocator.cc b/compiler/optimizing/register_allocator.cc
index c9c3d03..8b32262 100644
--- a/compiler/optimizing/register_allocator.cc
+++ b/compiler/optimizing/register_allocator.cc
@@ -37,18 +37,18 @@
handled_(allocator, 0),
active_(allocator, 0),
inactive_(allocator, 0),
- physical_register_intervals_(allocator, codegen->GetNumberOfRegisters()),
+ physical_register_intervals_(allocator, codegen->GetNumberOfCoreRegisters()),
temp_intervals_(allocator, 4),
spill_slots_(allocator, kDefaultNumberOfSpillSlots),
safepoints_(allocator, 0),
processing_core_registers_(false),
number_of_registers_(-1),
registers_array_(nullptr),
- blocked_registers_(allocator->AllocArray<bool>(codegen->GetNumberOfRegisters())),
+ blocked_registers_(codegen->GetBlockedCoreRegisters()),
reserved_out_slots_(0),
maximum_number_of_live_registers_(0) {
- codegen->SetupBlockedRegisters(blocked_registers_);
- physical_register_intervals_.SetSize(codegen->GetNumberOfRegisters());
+ codegen->SetupBlockedRegisters();
+ physical_register_intervals_.SetSize(codegen->GetNumberOfCoreRegisters());
// Always reserve for the current method and the graph's max out registers.
// TODO: compute it instead.
reserved_out_slots_ = 1 + codegen->GetGraph()->GetMaximumNumberOfOutVRegs();