| 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 #ifndef V8_COMPILER_INSTRUCTION_SELECTOR_H_ | 5 #ifndef V8_COMPILER_INSTRUCTION_SELECTOR_H_ |
| 6 #define V8_COMPILER_INSTRUCTION_SELECTOR_H_ | 6 #define V8_COMPILER_INSTRUCTION_SELECTOR_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 | 9 |
| 10 #include "src/compiler/common-operator.h" | 10 #include "src/compiler/common-operator.h" |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 197 // Gets the effect level of {node}. | 197 // Gets the effect level of {node}. |
| 198 int GetEffectLevel(Node* node) const; | 198 int GetEffectLevel(Node* node) const; |
| 199 | 199 |
| 200 int GetVirtualRegister(const Node* node); | 200 int GetVirtualRegister(const Node* node); |
| 201 const std::map<NodeId, int> GetVirtualRegistersForTesting() const; | 201 const std::map<NodeId, int> GetVirtualRegistersForTesting() const; |
| 202 | 202 |
| 203 // Check if we can generate loads and stores of ExternalConstants relative | 203 // Check if we can generate loads and stores of ExternalConstants relative |
| 204 // to the roots register, i.e. if both a root register is available for this | 204 // to the roots register, i.e. if both a root register is available for this |
| 205 // compilation unit and the serializer is disabled. | 205 // compilation unit and the serializer is disabled. |
| 206 bool CanAddressRelativeToRootsRegister() const; | 206 bool CanAddressRelativeToRootsRegister() const; |
| 207 // Check if we can use the roots register to access GC roots. |
| 208 bool CanUseRootsRegister() const; |
| 207 | 209 |
| 208 Isolate* isolate() const { return sequence()->isolate(); } | 210 Isolate* isolate() const { return sequence()->isolate(); } |
| 209 | 211 |
| 210 private: | 212 private: |
| 211 friend class OperandGenerator; | 213 friend class OperandGenerator; |
| 212 | 214 |
| 213 bool UseInstructionScheduling() const { | 215 bool UseInstructionScheduling() const { |
| 214 return (enable_scheduling_ == kEnableScheduling) && | 216 return (enable_scheduling_ == kEnableScheduling) && |
| 215 InstructionScheduler::SchedulerSupported(); | 217 InstructionScheduler::SchedulerSupported(); |
| 216 } | 218 } |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 365 EnableSerialization enable_serialization_; | 367 EnableSerialization enable_serialization_; |
| 366 Frame* frame_; | 368 Frame* frame_; |
| 367 bool instruction_selection_failed_; | 369 bool instruction_selection_failed_; |
| 368 }; | 370 }; |
| 369 | 371 |
| 370 } // namespace compiler | 372 } // namespace compiler |
| 371 } // namespace internal | 373 } // namespace internal |
| 372 } // namespace v8 | 374 } // namespace v8 |
| 373 | 375 |
| 374 #endif // V8_COMPILER_INSTRUCTION_SELECTOR_H_ | 376 #endif // V8_COMPILER_INSTRUCTION_SELECTOR_H_ |
| OLD | NEW |