| 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 RUNTIME_VM_INTERMEDIATE_LANGUAGE_H_ | 5 #ifndef RUNTIME_VM_INTERMEDIATE_LANGUAGE_H_ |
| 6 #define RUNTIME_VM_INTERMEDIATE_LANGUAGE_H_ | 6 #define RUNTIME_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 915 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 926 void Unsupported(FlowGraphCompiler* compiler); | 926 void Unsupported(FlowGraphCompiler* compiler); |
| 927 | 927 |
| 928 protected: | 928 protected: |
| 929 // GetDeoptId and/or CopyDeoptIdFrom. | 929 // GetDeoptId and/or CopyDeoptIdFrom. |
| 930 friend class CallSiteInliner; | 930 friend class CallSiteInliner; |
| 931 friend class LICM; | 931 friend class LICM; |
| 932 friend class ComparisonInstr; | 932 friend class ComparisonInstr; |
| 933 friend class Scheduler; | 933 friend class Scheduler; |
| 934 friend class BlockEntryInstr; | 934 friend class BlockEntryInstr; |
| 935 friend class CatchBlockEntryInstr; // deopt_id_ | 935 friend class CatchBlockEntryInstr; // deopt_id_ |
| 936 friend class DebugStepCheckInstr; // deopt_id_ |
| 937 friend class StrictCompareInstr; // deopt_id_ |
| 936 | 938 |
| 937 // Fetch deopt id without checking if this computation can deoptimize. | 939 // Fetch deopt id without checking if this computation can deoptimize. |
| 938 intptr_t GetDeoptId() const { return deopt_id_; } | 940 intptr_t GetDeoptId() const { return deopt_id_; } |
| 939 | 941 |
| 940 void CopyDeoptIdFrom(const Instruction& instr) { | 942 void CopyDeoptIdFrom(const Instruction& instr) { |
| 941 deopt_id_ = instr.deopt_id_; | 943 deopt_id_ = instr.deopt_id_; |
| 942 } | 944 } |
| 943 | 945 |
| 944 private: | 946 private: |
| 945 friend class BranchInstr; // For RawSetInputAt. | 947 friend class BranchInstr; // For RawSetInputAt. |
| (...skipping 2675 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3621 bool is_auto_scope_; | 3623 bool is_auto_scope_; |
| 3622 bool link_lazily_; | 3624 bool link_lazily_; |
| 3623 const TokenPosition token_pos_; | 3625 const TokenPosition token_pos_; |
| 3624 | 3626 |
| 3625 DISALLOW_COPY_AND_ASSIGN(NativeCallInstr); | 3627 DISALLOW_COPY_AND_ASSIGN(NativeCallInstr); |
| 3626 }; | 3628 }; |
| 3627 | 3629 |
| 3628 | 3630 |
| 3629 class DebugStepCheckInstr : public TemplateInstruction<0, NoThrow> { | 3631 class DebugStepCheckInstr : public TemplateInstruction<0, NoThrow> { |
| 3630 public: | 3632 public: |
| 3631 DebugStepCheckInstr(TokenPosition token_pos, RawPcDescriptors::Kind stub_kind) | 3633 DebugStepCheckInstr(TokenPosition token_pos, |
| 3632 : token_pos_(token_pos), stub_kind_(stub_kind) {} | 3634 RawPcDescriptors::Kind stub_kind, |
| 3635 intptr_t deopt_id) |
| 3636 : TemplateInstruction<0, NoThrow>(deopt_id), |
| 3637 token_pos_(token_pos), |
| 3638 stub_kind_(stub_kind) {} |
| 3633 | 3639 |
| 3634 DECLARE_INSTRUCTION(DebugStepCheck) | 3640 DECLARE_INSTRUCTION(DebugStepCheck) |
| 3635 | 3641 |
| 3636 virtual TokenPosition token_pos() const { return token_pos_; } | 3642 virtual TokenPosition token_pos() const { return token_pos_; } |
| 3637 virtual bool ComputeCanDeoptimize() const { return false; } | 3643 virtual bool ComputeCanDeoptimize() const { return false; } |
| 3638 virtual EffectSet Effects() const { return EffectSet::All(); } | 3644 virtual EffectSet Effects() const { return EffectSet::All(); } |
| 3639 virtual Instruction* Canonicalize(FlowGraph* flow_graph); | 3645 virtual Instruction* Canonicalize(FlowGraph* flow_graph); |
| 3640 | 3646 |
| 3641 private: | 3647 private: |
| 3642 const TokenPosition token_pos_; | 3648 const TokenPosition token_pos_; |
| (...skipping 4586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8229 LocationSummary* Name::MakeLocationSummary(Zone* zone, bool opt) const { \ | 8235 LocationSummary* Name::MakeLocationSummary(Zone* zone, bool opt) const { \ |
| 8230 UNIMPLEMENTED(); \ | 8236 UNIMPLEMENTED(); \ |
| 8231 return NULL; \ | 8237 return NULL; \ |
| 8232 } \ | 8238 } \ |
| 8233 void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); } | 8239 void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); } |
| 8234 | 8240 |
| 8235 | 8241 |
| 8236 } // namespace dart | 8242 } // namespace dart |
| 8237 | 8243 |
| 8238 #endif // RUNTIME_VM_INTERMEDIATE_LANGUAGE_H_ | 8244 #endif // RUNTIME_VM_INTERMEDIATE_LANGUAGE_H_ |
| OLD | NEW |