OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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_HYDROGEN_INSTRUCTIONS_H_ | 5 #ifndef V8_HYDROGEN_INSTRUCTIONS_H_ |
6 #define V8_HYDROGEN_INSTRUCTIONS_H_ | 6 #define V8_HYDROGEN_INSTRUCTIONS_H_ |
7 | 7 |
8 #include <iosfwd> | 8 #include <iosfwd> |
9 | 9 |
10 #include "src/v8.h" | 10 #include "src/v8.h" |
(...skipping 5294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5305 | 5305 |
5306 unsigned index() const { return index_; } | 5306 unsigned index() const { return index_; } |
5307 ParameterKind kind() const { return kind_; } | 5307 ParameterKind kind() const { return kind_; } |
5308 | 5308 |
5309 virtual std::ostream& PrintDataTo(std::ostream& os) const OVERRIDE; // NOLINT | 5309 virtual std::ostream& PrintDataTo(std::ostream& os) const OVERRIDE; // NOLINT |
5310 | 5310 |
5311 virtual Representation RequiredInputRepresentation(int index) OVERRIDE { | 5311 virtual Representation RequiredInputRepresentation(int index) OVERRIDE { |
5312 return Representation::None(); | 5312 return Representation::None(); |
5313 } | 5313 } |
5314 | 5314 |
| 5315 virtual Representation KnownOptimalRepresentation() OVERRIDE { |
| 5316 // If a parameter is an input to a phi, that phi should not |
| 5317 // choose any more optimistic representation than Tagged. |
| 5318 return Representation::Tagged(); |
| 5319 } |
| 5320 |
5315 DECLARE_CONCRETE_INSTRUCTION(Parameter) | 5321 DECLARE_CONCRETE_INSTRUCTION(Parameter) |
5316 | 5322 |
5317 private: | 5323 private: |
5318 explicit HParameter(unsigned index, | 5324 explicit HParameter(unsigned index, |
5319 ParameterKind kind = STACK_PARAMETER) | 5325 ParameterKind kind = STACK_PARAMETER) |
5320 : index_(index), | 5326 : index_(index), |
5321 kind_(kind) { | 5327 kind_(kind) { |
5322 set_representation(Representation::Tagged()); | 5328 set_representation(Representation::Tagged()); |
5323 } | 5329 } |
5324 | 5330 |
(...skipping 2586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7911 }; | 7917 }; |
7912 | 7918 |
7913 | 7919 |
7914 | 7920 |
7915 #undef DECLARE_INSTRUCTION | 7921 #undef DECLARE_INSTRUCTION |
7916 #undef DECLARE_CONCRETE_INSTRUCTION | 7922 #undef DECLARE_CONCRETE_INSTRUCTION |
7917 | 7923 |
7918 } } // namespace v8::internal | 7924 } } // namespace v8::internal |
7919 | 7925 |
7920 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ | 7926 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ |
OLD | NEW |