| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/base/adapters.h" | 5 #include "src/base/adapters.h" |
| 6 #include "src/compiler/linkage.h" | 6 #include "src/compiler/linkage.h" |
| 7 #include "src/compiler/register-allocator.h" | 7 #include "src/compiler/register-allocator.h" |
| 8 #include "src/string-stream.h" | 8 #include "src/string-stream.h" |
| 9 | 9 |
| 10 namespace v8 { | 10 namespace v8 { |
| (...skipping 3255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3266 InstructionOperand spill_operand; | 3266 InstructionOperand spill_operand; |
| 3267 if (((range->HasSpillOperand() && | 3267 if (((range->HasSpillOperand() && |
| 3268 !range->GetSpillOperand()->IsConstant()) || | 3268 !range->GetSpillOperand()->IsConstant()) || |
| 3269 range->HasSpillRange())) { | 3269 range->HasSpillRange())) { |
| 3270 if (range->HasSpillOperand()) { | 3270 if (range->HasSpillOperand()) { |
| 3271 spill_operand = *range->GetSpillOperand(); | 3271 spill_operand = *range->GetSpillOperand(); |
| 3272 } else { | 3272 } else { |
| 3273 spill_operand = range->GetSpillRangeOperand(); | 3273 spill_operand = range->GetSpillRangeOperand(); |
| 3274 } | 3274 } |
| 3275 DCHECK(spill_operand.IsStackSlot()); | 3275 DCHECK(spill_operand.IsStackSlot()); |
| 3276 DCHECK_EQ(MachineRepresentation::kTagged, | 3276 DCHECK(CanBeTaggedPointer( |
| 3277 AllocatedOperand::cast(spill_operand).representation()); | 3277 AllocatedOperand::cast(spill_operand).representation())); |
| 3278 } | 3278 } |
| 3279 | 3279 |
| 3280 LiveRange* cur = range; | 3280 LiveRange* cur = range; |
| 3281 // Step through the safe points to see whether they are in the range. | 3281 // Step through the safe points to see whether they are in the range. |
| 3282 for (auto it = first_it; it != reference_maps->end(); ++it) { | 3282 for (auto it = first_it; it != reference_maps->end(); ++it) { |
| 3283 ReferenceMap* map = *it; | 3283 ReferenceMap* map = *it; |
| 3284 int safe_point = map->instruction_position(); | 3284 int safe_point = map->instruction_position(); |
| 3285 | 3285 |
| 3286 // The safe points are sorted so we can stop searching here. | 3286 // The safe points are sorted so we can stop searching here. |
| 3287 if (safe_point - 1 > end) break; | 3287 if (safe_point - 1 > end) break; |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3329 } | 3329 } |
| 3330 | 3330 |
| 3331 if (!cur->spilled()) { | 3331 if (!cur->spilled()) { |
| 3332 TRACE( | 3332 TRACE( |
| 3333 "Pointer in register for range %d:%d (start at %d) " | 3333 "Pointer in register for range %d:%d (start at %d) " |
| 3334 "at safe point %d\n", | 3334 "at safe point %d\n", |
| 3335 range->vreg(), cur->relative_id(), cur->Start().value(), | 3335 range->vreg(), cur->relative_id(), cur->Start().value(), |
| 3336 safe_point); | 3336 safe_point); |
| 3337 InstructionOperand operand = cur->GetAssignedOperand(); | 3337 InstructionOperand operand = cur->GetAssignedOperand(); |
| 3338 DCHECK(!operand.IsStackSlot()); | 3338 DCHECK(!operand.IsStackSlot()); |
| 3339 DCHECK_EQ(MachineRepresentation::kTagged, | 3339 DCHECK(CanBeTaggedPointer( |
| 3340 AllocatedOperand::cast(operand).representation()); | 3340 AllocatedOperand::cast(operand).representation())); |
| 3341 map->RecordReference(AllocatedOperand::cast(operand)); | 3341 map->RecordReference(AllocatedOperand::cast(operand)); |
| 3342 } | 3342 } |
| 3343 } | 3343 } |
| 3344 } | 3344 } |
| 3345 } | 3345 } |
| 3346 | 3346 |
| 3347 | 3347 |
| 3348 LiveRangeConnector::LiveRangeConnector(RegisterAllocationData* data) | 3348 LiveRangeConnector::LiveRangeConnector(RegisterAllocationData* data) |
| 3349 : data_(data) {} | 3349 : data_(data) {} |
| 3350 | 3350 |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3621 } | 3621 } |
| 3622 } | 3622 } |
| 3623 } | 3623 } |
| 3624 } | 3624 } |
| 3625 } | 3625 } |
| 3626 | 3626 |
| 3627 | 3627 |
| 3628 } // namespace compiler | 3628 } // namespace compiler |
| 3629 } // namespace internal | 3629 } // namespace internal |
| 3630 } // namespace v8 | 3630 } // namespace v8 |
| OLD | NEW |