| Index: src/compiler/register-allocator.h
|
| diff --git a/src/compiler/register-allocator.h b/src/compiler/register-allocator.h
|
| index 5c425345ccf06df401da536fd331ddcbd3a60369..776b95d9c198832d1390e9902cc3544c7eba5ce0 100644
|
| --- a/src/compiler/register-allocator.h
|
| +++ b/src/compiler/register-allocator.h
|
| @@ -354,6 +354,11 @@ class LiveRange : public ZoneObject {
|
| UsePosition* NextUsePositionRegisterIsBeneficial(
|
| LifetimePosition start) const;
|
|
|
| + // Returns lifetime position for which register is beneficial in this live
|
| + // range and which follows both start and last processed use position.
|
| + LifetimePosition NextLifetimePositionRegisterIsBeneficial(
|
| + const LifetimePosition& start) const;
|
| +
|
| // Returns use position for which register is beneficial in this live
|
| // range and which precedes start.
|
| UsePosition* PreviousUsePositionRegisterIsBeneficial(
|
| @@ -771,12 +776,24 @@ class RegisterAllocationData final : public ZoneObject {
|
| ZoneVector<TopLevelLiveRange*>& fixed_live_ranges() {
|
| return fixed_live_ranges_;
|
| }
|
| + ZoneVector<TopLevelLiveRange*>& fixed_float_live_ranges() {
|
| + return fixed_float_live_ranges_;
|
| + }
|
| + const ZoneVector<TopLevelLiveRange*>& fixed_float_live_ranges() const {
|
| + return fixed_float_live_ranges_;
|
| + }
|
| ZoneVector<TopLevelLiveRange*>& fixed_double_live_ranges() {
|
| return fixed_double_live_ranges_;
|
| }
|
| const ZoneVector<TopLevelLiveRange*>& fixed_double_live_ranges() const {
|
| return fixed_double_live_ranges_;
|
| }
|
| + ZoneVector<TopLevelLiveRange*>& fixed_simd128_live_ranges() {
|
| + return fixed_simd128_live_ranges_;
|
| + }
|
| + const ZoneVector<TopLevelLiveRange*>& fixed_simd128_live_ranges() const {
|
| + return fixed_simd128_live_ranges_;
|
| + }
|
| ZoneVector<BitVector*>& live_in_sets() { return live_in_sets_; }
|
| ZoneVector<BitVector*>& live_out_sets() { return live_out_sets_; }
|
| ZoneVector<SpillRange*>& spill_ranges() { return spill_ranges_; }
|
| @@ -838,7 +855,9 @@ class RegisterAllocationData final : public ZoneObject {
|
| ZoneVector<BitVector*> live_out_sets_;
|
| ZoneVector<TopLevelLiveRange*> live_ranges_;
|
| ZoneVector<TopLevelLiveRange*> fixed_live_ranges_;
|
| + ZoneVector<TopLevelLiveRange*> fixed_float_live_ranges_;
|
| ZoneVector<TopLevelLiveRange*> fixed_double_live_ranges_;
|
| + ZoneVector<TopLevelLiveRange*> fixed_simd128_live_ranges_;
|
| ZoneVector<SpillRange*> spill_ranges_;
|
| DelayedReferences delayed_references_;
|
| BitVector* assigned_registers_;
|
| @@ -1056,6 +1075,8 @@ class LinearScanAllocator final : public RegisterAllocator {
|
| const Vector<LifetimePosition>& free_until_pos);
|
| bool TryAllocatePreferredReg(LiveRange* range,
|
| const Vector<LifetimePosition>& free_until_pos);
|
| + void GetFPRegisterSet(MachineRepresentation rep, int* num_regs,
|
| + int* num_codes, const int** codes) const;
|
| void FindFreeRegistersForRange(LiveRange* range,
|
| Vector<LifetimePosition> free_until_pos);
|
| void ProcessCurrentRange(LiveRange* current);
|
|
|