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 |