| Index: src/lithium-allocator.cc
|
| diff --git a/src/lithium-allocator.cc b/src/lithium-allocator.cc
|
| index b23c86766a6fb71e86927aebefdd1b2034aab359..91a98112b61bd60a50b56d98f8ca4eebacdf01ff 100644
|
| --- a/src/lithium-allocator.cc
|
| +++ b/src/lithium-allocator.cc
|
| @@ -606,7 +606,7 @@ void LAllocator::AddInitialIntervals(HBasicBlock* block,
|
|
|
|
|
| int LAllocator::FixedDoubleLiveRangeID(int index) {
|
| - return -index - 1 - Register::kMaxNumAllocatableRegisters;
|
| + return -index - 1 - Register::kNumAllocatableRegisters;
|
| }
|
|
|
|
|
| @@ -638,7 +638,7 @@ LOperand* LAllocator::AllocateFixed(LUnallocated* operand,
|
|
|
|
|
| LiveRange* LAllocator::FixedLiveRangeFor(int index) {
|
| - ASSERT(index < Register::kMaxNumAllocatableRegisters);
|
| + ASSERT(index < Register::kNumAllocatableRegisters);
|
| LiveRange* result = fixed_live_ranges_[index];
|
| if (result == NULL) {
|
| result = new(zone_) LiveRange(FixedLiveRangeID(index), zone_);
|
| @@ -651,7 +651,7 @@ LiveRange* LAllocator::FixedLiveRangeFor(int index) {
|
|
|
|
|
| LiveRange* LAllocator::FixedDoubleLiveRangeFor(int index) {
|
| - ASSERT(index < DoubleRegister::NumAllocatableRegisters());
|
| + ASSERT(index < DoubleRegister::kNumAllocatableRegisters);
|
| LiveRange* result = fixed_double_live_ranges_[index];
|
| if (result == NULL) {
|
| result = new(zone_) LiveRange(FixedDoubleLiveRangeID(index), zone_);
|
| @@ -768,7 +768,6 @@ void LAllocator::AddConstraintsGapMove(int index,
|
| void LAllocator::MeetRegisterConstraints(HBasicBlock* block) {
|
| int start = block->first_instruction_index();
|
| int end = block->last_instruction_index();
|
| - if (start == -1) return;
|
| for (int i = start; i <= end; ++i) {
|
| if (IsGapAt(i)) {
|
| LInstruction* instr = NULL;
|
| @@ -947,8 +946,8 @@ void LAllocator::ProcessInstructions(HBasicBlock* block, BitVector* live) {
|
| Define(curr_position, output, NULL);
|
| }
|
|
|
| - if (instr->ClobbersRegisters()) {
|
| - for (int i = 0; i < Register::kMaxNumAllocatableRegisters; ++i) {
|
| + if (instr->IsMarkedAsCall()) {
|
| + for (int i = 0; i < Register::kNumAllocatableRegisters; ++i) {
|
| if (output == NULL || !output->IsRegister() ||
|
| output->index() != i) {
|
| LiveRange* range = FixedLiveRangeFor(i);
|
| @@ -959,8 +958,8 @@ void LAllocator::ProcessInstructions(HBasicBlock* block, BitVector* live) {
|
| }
|
| }
|
|
|
| - if (instr->ClobbersDoubleRegisters()) {
|
| - for (int i = 0; i < DoubleRegister::NumAllocatableRegisters(); ++i) {
|
| + if (instr->IsMarkedAsCall()) {
|
| + for (int i = 0; i < DoubleRegister::kNumAllocatableRegisters; ++i) {
|
| if (output == NULL || !output->IsDoubleRegister() ||
|
| output->index() != i) {
|
| LiveRange* range = FixedDoubleLiveRangeFor(i);
|
| @@ -990,7 +989,7 @@ void LAllocator::ProcessInstructions(HBasicBlock* block, BitVector* live) {
|
|
|
| for (TempIterator it(instr); !it.Done(); it.Advance()) {
|
| LOperand* temp = it.Current();
|
| - if (instr->ClobbersTemps()) {
|
| + if (instr->IsMarkedAsCall()) {
|
| if (temp->IsRegister()) continue;
|
| if (temp->IsUnallocated()) {
|
| LUnallocated* temp_unalloc = LUnallocated::cast(temp);
|
| @@ -1325,14 +1324,8 @@ void LAllocator::BuildLiveRanges() {
|
| while (!iterator.Done()) {
|
| found = true;
|
| int operand_index = iterator.Current();
|
| - if (chunk_->info()->IsStub()) {
|
| - CodeStub::Major major_key = chunk_->info()->code_stub()->MajorKey();
|
| - PrintF("Function: %s\n", CodeStub::MajorName(major_key, false));
|
| - } else {
|
| - ASSERT(chunk_->info()->IsOptimizing());
|
| - PrintF("Function: %s\n",
|
| - *chunk_->info()->function()->debug_name()->ToCString());
|
| - }
|
| + PrintF("Function: %s\n",
|
| + *chunk_->info()->function()->debug_name()->ToCString());
|
| PrintF("Value %d used before first definition!\n", operand_index);
|
| LiveRange* range = LiveRangeFor(operand_index);
|
| PrintF("First use is at %d\n", range->first_pos()->pos().Value());
|
| @@ -1478,14 +1471,14 @@ void LAllocator::ProcessOsrEntry() {
|
|
|
| void LAllocator::AllocateGeneralRegisters() {
|
| HPhase phase("L_Allocate general registers", this);
|
| - num_registers_ = Register::NumAllocatableRegisters();
|
| + num_registers_ = Register::kNumAllocatableRegisters;
|
| AllocateRegisters();
|
| }
|
|
|
|
|
| void LAllocator::AllocateDoubleRegisters() {
|
| HPhase phase("L_Allocate double registers", this);
|
| - num_registers_ = DoubleRegister::NumAllocatableRegisters();
|
| + num_registers_ = DoubleRegister::kNumAllocatableRegisters;
|
| mode_ = DOUBLE_REGISTERS;
|
| AllocateRegisters();
|
| }
|
| @@ -1764,14 +1757,14 @@ void LAllocator::InactiveToActive(LiveRange* range) {
|
|
|
| // TryAllocateFreeReg and AllocateBlockedReg assume this
|
| // when allocating local arrays.
|
| -STATIC_ASSERT(DoubleRegister::kMaxNumAllocatableRegisters >=
|
| - Register::kMaxNumAllocatableRegisters);
|
| +STATIC_ASSERT(DoubleRegister::kNumAllocatableRegisters >=
|
| + Register::kNumAllocatableRegisters);
|
|
|
|
|
| bool LAllocator::TryAllocateFreeReg(LiveRange* current) {
|
| - LifetimePosition free_until_pos[DoubleRegister::kMaxNumAllocatableRegisters];
|
| + LifetimePosition free_until_pos[DoubleRegister::kNumAllocatableRegisters];
|
|
|
| - for (int i = 0; i < DoubleRegister::kMaxNumAllocatableRegisters; i++) {
|
| + for (int i = 0; i < DoubleRegister::kNumAllocatableRegisters; i++) {
|
| free_until_pos[i] = LifetimePosition::MaxPosition();
|
| }
|
|
|
| @@ -1860,10 +1853,10 @@ void LAllocator::AllocateBlockedReg(LiveRange* current) {
|
| }
|
|
|
|
|
| - LifetimePosition use_pos[DoubleRegister::kMaxNumAllocatableRegisters];
|
| - LifetimePosition block_pos[DoubleRegister::kMaxNumAllocatableRegisters];
|
| + LifetimePosition use_pos[DoubleRegister::kNumAllocatableRegisters];
|
| + LifetimePosition block_pos[DoubleRegister::kNumAllocatableRegisters];
|
|
|
| - for (int i = 0; i < DoubleRegister::NumAllocatableRegisters(); i++) {
|
| + for (int i = 0; i < DoubleRegister::kNumAllocatableRegisters; i++) {
|
| use_pos[i] = block_pos[i] = LifetimePosition::MaxPosition();
|
| }
|
|
|
|
|