OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_INTERMEDIATE_LANGUAGE_H_ | 5 #ifndef VM_INTERMEDIATE_LANGUAGE_H_ |
6 #define VM_INTERMEDIATE_LANGUAGE_H_ | 6 #define VM_INTERMEDIATE_LANGUAGE_H_ |
7 | 7 |
8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
9 #include "vm/ast.h" | 9 #include "vm/ast.h" |
10 #include "vm/growable_array.h" | 10 #include "vm/growable_array.h" |
(...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
354 // Returns true if the value represents constant null. | 354 // Returns true if the value represents constant null. |
355 virtual bool BindsToConstantNull() const = 0; | 355 virtual bool BindsToConstantNull() const = 0; |
356 | 356 |
357 // Assert if BindsToConstant() is false, otherwise returns constant. | 357 // Assert if BindsToConstant() is false, otherwise returns constant. |
358 virtual const Object& BoundConstant() const = 0; | 358 virtual const Object& BoundConstant() const = 0; |
359 | 359 |
360 // Reminder: The type of the constant null is the bottom type, which is more | 360 // Reminder: The type of the constant null is the bottom type, which is more |
361 // specific than any type. | 361 // specific than any type. |
362 bool CompileTypeIsMoreSpecificThan(const AbstractType& dst_type) const; | 362 bool CompileTypeIsMoreSpecificThan(const AbstractType& dst_type) const; |
363 | 363 |
| 364 // Compile time constants, Bool, Smi and Nulls do not need to update |
| 365 // the store buffer. |
| 366 bool NeedsStoreBuffer() const; |
| 367 |
364 virtual bool Equals(Value* other) const = 0; | 368 virtual bool Equals(Value* other) const = 0; |
365 | 369 |
366 virtual Value* CopyValue() = 0; | 370 virtual Value* CopyValue() = 0; |
367 | 371 |
368 private: | 372 private: |
369 DISALLOW_COPY_AND_ASSIGN(Value); | 373 DISALLOW_COPY_AND_ASSIGN(Value); |
370 }; | 374 }; |
371 | 375 |
372 | 376 |
373 // Functions defined in all concrete computation classes. | 377 // Functions defined in all concrete computation classes. |
(...skipping 2949 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3323 ForwardInstructionIterator* current_iterator_; | 3327 ForwardInstructionIterator* current_iterator_; |
3324 | 3328 |
3325 private: | 3329 private: |
3326 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); | 3330 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); |
3327 }; | 3331 }; |
3328 | 3332 |
3329 | 3333 |
3330 } // namespace dart | 3334 } // namespace dart |
3331 | 3335 |
3332 #endif // VM_INTERMEDIATE_LANGUAGE_H_ | 3336 #endif // VM_INTERMEDIATE_LANGUAGE_H_ |
OLD | NEW |