| Index: src/compiler/register-allocator.h
|
| diff --git a/src/compiler/register-allocator.h b/src/compiler/register-allocator.h
|
| index 2ea877c80423dba8fcd24e0dc63bcf44566fd008..4d94f1eac05532403898e14a654dee474c6afebc 100644
|
| --- a/src/compiler/register-allocator.h
|
| +++ b/src/compiler/register-allocator.h
|
| @@ -357,6 +357,11 @@ class V8_EXPORT_PRIVATE LiveRange : public NON_EXPORTED_BASE(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(
|
| @@ -773,12 +778,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_; }
|
| @@ -840,7 +857,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_;
|
| @@ -1058,6 +1077,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);
|
|
|