| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 6312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6323 virtual bool CanDeoptimize() const { return true; } | 6323 virtual bool CanDeoptimize() const { return true; } |
| 6324 | 6324 |
| 6325 Value* value() const { return inputs_[0]; } | 6325 Value* value() const { return inputs_[0]; } |
| 6326 | 6326 |
| 6327 const ICData& unary_checks() const { return unary_checks_; } | 6327 const ICData& unary_checks() const { return unary_checks_; } |
| 6328 | 6328 |
| 6329 virtual Instruction* Canonicalize(FlowGraph* flow_graph); | 6329 virtual Instruction* Canonicalize(FlowGraph* flow_graph); |
| 6330 | 6330 |
| 6331 virtual void PrintOperandsTo(BufferFormatter* f) const; | 6331 virtual void PrintOperandsTo(BufferFormatter* f) const; |
| 6332 | 6332 |
| 6333 void set_null_check(bool flag) { null_check_ = flag; } | 6333 bool IsNullCheck() const; |
| 6334 | |
| 6335 bool null_check() const { return null_check_; } | |
| 6336 | 6334 |
| 6337 virtual bool AllowsCSE() const { return true; } | 6335 virtual bool AllowsCSE() const { return true; } |
| 6338 virtual EffectSet Effects() const { return EffectSet::None(); } | 6336 virtual EffectSet Effects() const { return EffectSet::None(); } |
| 6339 virtual EffectSet Dependencies() const; | 6337 virtual EffectSet Dependencies() const; |
| 6340 virtual bool AttributesEqual(Instruction* other) const; | 6338 virtual bool AttributesEqual(Instruction* other) const; |
| 6341 | 6339 |
| 6342 virtual bool MayThrow() const { return false; } | 6340 virtual bool MayThrow() const { return false; } |
| 6343 | 6341 |
| 6344 private: | 6342 private: |
| 6345 const ICData& unary_checks_; | 6343 const ICData& unary_checks_; |
| 6346 | 6344 |
| 6347 bool null_check_; | |
| 6348 | |
| 6349 DISALLOW_COPY_AND_ASSIGN(CheckClassInstr); | 6345 DISALLOW_COPY_AND_ASSIGN(CheckClassInstr); |
| 6350 }; | 6346 }; |
| 6351 | 6347 |
| 6352 | 6348 |
| 6353 class CheckSmiInstr : public TemplateInstruction<1> { | 6349 class CheckSmiInstr : public TemplateInstruction<1> { |
| 6354 public: | 6350 public: |
| 6355 CheckSmiInstr(Value* value, intptr_t original_deopt_id) { | 6351 CheckSmiInstr(Value* value, intptr_t original_deopt_id) { |
| 6356 ASSERT(original_deopt_id != Isolate::kNoDeoptId); | 6352 ASSERT(original_deopt_id != Isolate::kNoDeoptId); |
| 6357 SetInputAt(0, value); | 6353 SetInputAt(0, value); |
| 6358 deopt_id_ = original_deopt_id; | 6354 deopt_id_ = original_deopt_id; |
| (...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6642 ForwardInstructionIterator* current_iterator_; | 6638 ForwardInstructionIterator* current_iterator_; |
| 6643 | 6639 |
| 6644 private: | 6640 private: |
| 6645 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); | 6641 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); |
| 6646 }; | 6642 }; |
| 6647 | 6643 |
| 6648 | 6644 |
| 6649 } // namespace dart | 6645 } // namespace dart |
| 6650 | 6646 |
| 6651 #endif // VM_INTERMEDIATE_LANGUAGE_H_ | 6647 #endif // VM_INTERMEDIATE_LANGUAGE_H_ |
| OLD | NEW |