| Index: src/compiler/instruction-selector.h
|
| diff --git a/src/compiler/instruction-selector.h b/src/compiler/instruction-selector.h
|
| index 212a66eadb5e18b59429cd59b7594c97644089cf..2981f90a1c4fcd80bf088be62ba93272b7afc5ec 100644
|
| --- a/src/compiler/instruction-selector.h
|
| +++ b/src/compiler/instruction-selector.h
|
| @@ -49,6 +49,7 @@ class InstructionSelector final {
|
|
|
| enum SourcePositionMode { kCallSourcePositions, kAllSourcePositions };
|
| enum EnableScheduling { kDisableScheduling, kEnableScheduling };
|
| + enum EnableSerialization { kDisableSerialization, kEnableSerialization };
|
|
|
| InstructionSelector(
|
| Zone* zone, size_t node_count, Linkage* linkage,
|
| @@ -58,7 +59,8 @@ class InstructionSelector final {
|
| Features features = SupportedFeatures(),
|
| EnableScheduling enable_scheduling = FLAG_turbo_instruction_scheduling
|
| ? kEnableScheduling
|
| - : kDisableScheduling);
|
| + : kDisableScheduling,
|
| + EnableSerialization enable_serialization = kDisableSerialization);
|
|
|
| // Visit code for the entire graph with the included schedule.
|
| bool SelectInstructions();
|
| @@ -198,6 +200,11 @@ class InstructionSelector final {
|
| int GetVirtualRegister(const Node* node);
|
| const std::map<NodeId, int> GetVirtualRegistersForTesting() const;
|
|
|
| + // Check if we can generate loads and stores of ExternalConstants relative
|
| + // to the roots register, i.e. if both a root register is available for this
|
| + // compilation unit and the serializer is disabled.
|
| + bool CanAddressRelativeToRootsRegister() const;
|
| +
|
| Isolate* isolate() const { return sequence()->isolate(); }
|
|
|
| private:
|
| @@ -355,6 +362,7 @@ class InstructionSelector final {
|
| IntVector virtual_register_rename_;
|
| InstructionScheduler* scheduler_;
|
| EnableScheduling enable_scheduling_;
|
| + EnableSerialization enable_serialization_;
|
| Frame* frame_;
|
| bool instruction_selection_failed_;
|
| };
|
|
|